« Tüm yayınlar

AI Kod Asistanına Neden Önce Statik Analiz Gerekli

BrassCoders, deterministik statik tarama sonuçlarını LLM'e vererek kod incelemesinde hem hız hem isabet kazandırıyor; 2025 araştırmaları bu ikiliyi doğruluyor.

BrassCoders adlı araç, AI destekli kod incelemesinde statik analiz araçlarıyla dil modellerini rakip değil tamamlayıcı olarak konumlandırıyor. Araç, Python projelerinde 12 statik tarayıcı çalıştırıp bulguları önem sırasına göre .brass/ai_instructions.yaml dosyasına yazıyor; editördeki AI asistanı oturuma başlamadan bu dosyayı okuyarak dosya yolu, satır numarası ve düzeltme yönergesi içeren bulgularla işe başlıyor. Böylece model, SQL enjeksiyonu veya sabit kodlanmış kimlik bilgisi gibi yapısal sorunları sıfırdan keşfetmek yerine doğrulamakla uğraşıyor.

2025'te yayımlanan iki araştırma bu yaklaşımı destekliyor: Gnieciak ve Szandala'nın çalışması LLM'lerin geniş bağlamsal tespitte daha başarılı ama satır-sütun düzeyinde konumlamada zayıf olduğunu, statik araçların ise tam tersini gösterdiğini ortaya koyuyor. ZeroFalse araştırması ise statik tarayıcı çıktısını LLM'e değerlendirtme yöntemiyle OWASP ve OpenVuln veri setlerinde yüzde 90'ın üzerinde kesinlik ve duyarlılık elde etmiş. BrassCoders'ın kendi kıyaslamasında 15 dosyalık bir Python örnekleminde 53 bulgudan 9 dosyada gerçek sorun doğrulanmış; büyük bir Django projesinde ise 1.500 ham bulgu, ücretli zenginleştirme aşamasıyla 200-300 önceliğe indirilmiş.

Modelin hâlâ üstün olduğu tek alan, yapısal işaret bırakmayan mantık hatalarıdır: örneğin boş liste kontrolü olmadan yapılan bir bölme işlemi, hiçbir statik kural tarafından yakalanamayan ama model tarafından çözümlenen tipik bir örnek. Bu da pre-pass'in modelin yerini almadığını, sadece onun zamanını yapısal değil yargısal sorunlara ayırmasını sağladığını gösteriyor. Mühendisler için pratik sonuç net: brasscoders --offline scan komutunu çalıştırıp editördeki AI asistanına bu bulgu dosyasını bağlam olarak sunmak, hem taramayı hızlandırıyor hem de modelin doğrulama sürecini güçlendiriyor.