Claude ile Kod Denetimi: Üretimde Bulunan 15 Güvenlik Açığı
Bir LLM kullanılarak yapılan güvenlik denetiminde SQL/NoSQL injection, IDOR, path traversal gibi 15 OWASP açığı ve düzeltmeleri örnek kodlarla incelendi.
Geleneksel güvenlik denetimleri genellikle 2-3 hafta sürüp 10.000 doları aşan maliyetlere yol açarken, bir LLM aynı işi birkaç saatte gerçekleştirebiliyor çünkü belirli CVE'ler yerine kod desenlerini tarıyor. Bu yaklaşımla üretim kodu üzerinde yapılan bir denetimde, OWASP Top 10 (2021) sınıflandırmasına göre 15 güvenlik açığı tespit edildi ve her biri zafiyetli kod, düzeltilmiş versiyon ile saldırı vektörü açıklamasıyla belgelendi.
Denetim üç aşamalı bir metodolojiyle yürütülüyor: geniş kapsamlı ilk tarama, ardından her bulgunun middleware, ORM ve framework bağlamında derinlemesine analizi, son olarak da yanlış pozitifleri elemek için manuel doğrulama. En sık rastlanan bulgular arasında ORM kullanılsa bile karmaşık filtreler için ham sorgulara geçildiğinde ortaya çıkan SQL injection, MongoDB'de $ne operatörüyle kimlik doğrulamayı atlatan NoSQL injection, exec() ile shell komutlarına kullanıcı girdisi enjekte edilmesiyle oluşan command injection yer alıyor.
Erişim kontrolü kategorisinde ise sıralı ID'lerle başka kullanıcıların kayıtlarına erişilmesini sağlayan IDOR, dosya yollarında dizin gezinme (path traversal) ve API üzerinden rol gibi hassas alanların manipüle edilmesine imkan veren mass assignment zafiyetleri öne çıkıyor. Her bulgu için önerilen çözümler; parametreli sorgular, whitelist tabanlı doğrulama, execFile kullanımı, sahiplik kontrolleri ve alan bazlı whitelist'ler gibi somut mühendislik pratiklerine dayanıyor.
Mühendisler için bu çalışma, LLM destekli güvenlik taramalarının hızlı ve ölçeklenebilir bir ilk filtre olarak kullanılabileceğini, ancak yanlış pozitifler nedeniyle manuel doğrulamanın vazgeçilmez kaldığını gösteriyor. Yapılandırılmış prompt tasarımı (kategori önceliklendirme, çıktı formatı belirleme) denetimin kalitesini doğrudan etkiliyor.