Kafayı yemek üzereydim, ciddi ciddi söylüyorum. Takım olarak verimlilik için AI destekli bir kod review botu (SonarQube + bir AI eklentisi) entegre etmiştik. Meğer kendi elimizle "commit engeli"ni yaratmışız. Bot, yazdığım her kodu potansiyel bir saldırı vektörü olarak görmeye başladı.
Botun Paranoyak Modu
Basit bir kullanıcı input'u temizleme fonksiyonu yazmıştım. html.escape() kullanıyorum, gayet standart. AI bot, "Burada potansiyel XSS açığı olabilir" diye flag'ledi. Tamam, belki anlarım. Ama olay burada bitmedi.
Yukarıdaki masum string formatlama işlemi için bile "Kullanıcı kontrollü veri dosya isminde kullanılıyor, Path Traversal riski" uyarısı aldım. Dostum, burada user_id integer ve bizim veritabanından gelen bir değer! Bot sanki her input'u doğrudan $_GET'ten gelmiş gibi varsayıyordu.
Benimle Savaşan Commit Mesajları
Her commit'te "1 Critical Issue Found" yazısını görünce tansiyonum fırladı. Sürekli "False Positive" diye işaretlemekten ve manuel override etmekten git log'larım şişti. Takım arkadaşlarımın PR'ları da aynı kaderi paylaşıyordu. Geliştirme akışımız resmen durma noktasına geldi. "Acaba gerçekten gözden kaçırdığım bir şey mi var?" diye sorgulamaya başladım, StackOverflow'da bile böyle bir saçmalık görmemiştim.
Çözüm (Bir Nebze)
Sonunda botun konfigürasyonuna daldık. Meğerse AI modeli, kuralları aşırı geniş yorumluyormuş ve güvenlik konusunda paranoyak bir "strict mode"da çalışıyormuş. Yapabildiklerimiz:
1. False positive'ları işaretleyerek modeli eğitmeye başladık.
2. Risk seviyesi düşük olan bazı kural kategorilerini (sadece bizim kod yapımıza özel) devre dışı bıraktık.
3. En önemlisi, botu "gatekeeper" (geçişi engelleyen) değil, "advisor" (danışman) konumuna çektik. Artık uyarı veriyor ama merge'i bloke etmiyor.
Şaka gibi ama, bir güvenlik aracı bizi neredeyse güvenli olmayan bir şey yapmaya itecekti: kodu review etmeden merge etmek! AI botları akıl gibi, ama henüz sağduyuya sahip değiller. Her uyarıyı mutlak gerçek sanmamak gerekiyor.
Siz de böyle aşırı titiz, paranoyak AI asistanlarıyla uğraşıyor musunuz? Bu botları daha "akıllı" hale getirmenin, bağlamı anlamasını sağlamanın bir yolu var mı? Yoksa sadece kural bazlı eski usul araçlara mı dönmeliyiz?
Basit bir kullanıcı input'u temizleme fonksiyonu yazmıştım. html.escape() kullanıyorum, gayet standart. AI bot, "Burada potansiyel XSS açığı olabilir" diye flag'ledi. Tamam, belki anlarım. Ama olay burada bitmedi.
Python:
def generate_report_filename(user_id):
return f"report_{user_id}.pdf"
Yukarıdaki masum string formatlama işlemi için bile "Kullanıcı kontrollü veri dosya isminde kullanılıyor, Path Traversal riski" uyarısı aldım. Dostum, burada user_id integer ve bizim veritabanından gelen bir değer! Bot sanki her input'u doğrudan $_GET'ten gelmiş gibi varsayıyordu.
Her commit'te "1 Critical Issue Found" yazısını görünce tansiyonum fırladı. Sürekli "False Positive" diye işaretlemekten ve manuel override etmekten git log'larım şişti. Takım arkadaşlarımın PR'ları da aynı kaderi paylaşıyordu. Geliştirme akışımız resmen durma noktasına geldi. "Acaba gerçekten gözden kaçırdığım bir şey mi var?" diye sorgulamaya başladım, StackOverflow'da bile böyle bir saçmalık görmemiştim.
Sonunda botun konfigürasyonuna daldık. Meğerse AI modeli, kuralları aşırı geniş yorumluyormuş ve güvenlik konusunda paranoyak bir "strict mode"da çalışıyormuş. Yapabildiklerimiz:
1. False positive'ları işaretleyerek modeli eğitmeye başladık.
2. Risk seviyesi düşük olan bazı kural kategorilerini (sadece bizim kod yapımıza özel) devre dışı bıraktık.
3. En önemlisi, botu "gatekeeper" (geçişi engelleyen) değil, "advisor" (danışman) konumuna çektik. Artık uyarı veriyor ama merge'i bloke etmiyor.
Şaka gibi ama, bir güvenlik aracı bizi neredeyse güvenli olmayan bir şey yapmaya itecekti: kodu review etmeden merge etmek! AI botları akıl gibi, ama henüz sağduyuya sahip değiller. Her uyarıyı mutlak gerçek sanmamak gerekiyor.
Siz de böyle aşırı titiz, paranoyak AI asistanlarıyla uğraşıyor musunuz? Bu botları daha "akıllı" hale getirmenin, bağlamı anlamasını sağlamanın bir yolu var mı? Yoksa sadece kural bazlı eski usul araçlara mı dönmeliyiz?