Yapay Zeka ile Kod Geliştirirken Güvenlik Açıklarından Nasıl Korunuruz?
Yazılım dünyasında vites yükselttiğimiz bir dönemdeyiz. GitHub Copilot, ChatGPT veya Claude gibi araçlar artık birer asistan değil, adeta birer "pair programmer" gibi yanımızda. Ancak madalyonun öteki yüzünde ciddi bir risk var: Yapay zeka kodu saniyeler içinde yazar ama bu kodun sadece "çalışıyor" olması, onun "güvenli" olduğu anlamına gelmez.
AI bir güvenlik uzmanı değil, bir tahmin motorudur. İnternetteki milyonlarca satır koddan beslendiği için bazen size 10 yıl öncesinden kalma, zafiyetli yöntemler önerebilir. İşte AI'nın en sık yaptığı 10 güvenlik hatası ve senin bir senior geliştirici olarak yapman gereken müdahaleler:
1. Kimlik Doğrulama ve Token Yönetimi (XSS Riski)
Yapay Zeka Şunu Yapabilir: "JWT'yi localStorage içine kaydet ve her istekte header'da gönder."
Sen Şunu Demelisin: "Hayır, pentest raporunda en başta bu çıkar. Token'ı JavaScript'in erişemeyeceği HttpOnly, Secure ve SameSite=Strict flag'li bir cookie içinde sakla."
2. Dinamik SQL Sorguları (SQL Injection)
Yapay Zeka Şunu Yapabilir: var sql = "SELECT * FROM Products WHERE Name LIKE '%" + search + "%'";
Sen Şunu Demelisin: "String birleştirme ile sorgu yazılmaz. EF Core kullanıyorsak .Where(x => x.Name.Contains(search)) ile gitmeli, ham SQL ise mutlaka SqlParameter kullanmalısın."
3. Detaylı Hata Mesajları (Information Exposure)
Yapay Zeka Şunu Yapabilir: catch (Exception ex) { return StatusCode(500, ex.StackTrace); }
Sen Şunu Demelisin: "Sistem mimarisini saldırgana hediye edemeyiz. Stack trace'i sadece loglara (Serilog, NLog vb.) yaz, kullanıcıya 'Sistemde bir hata oluştu' mesajı dön."
4. Dosya Yükleme Kontrolü (Remote Code Execution)
Yapay Zeka Şunu Yapabilir: Sadece dosya uzantısını kontrol eden basit bir if bloğu yazar.
Sen Şunu Demelisin: "Sadece uzantı yetmez. Dosyanın MIME Type kontrolünü yap, dosya ismini Guid ile yeniden oluştur ve dosyayı uygulama dizini dışında, yetkisi kısıtlı bir alanda sakla."
5. Yetkisiz Veri Erişimi (IDOR - Insecure Direct Object Reference)
Yapay Zeka Şunu Yapabilir: public Task<Order> GetOrder(int id) => _db.Orders.FindAsync(id);
Sen Şunu Demelisin: "Sadece Id ile veri çekmek büyük bir açık. Veriyi çekerken mutlaka o verinin o kullanıcıya ait olup olmadığını kontrol et: .Where(o => o.Id == id && o.UserId == currentUserId)."
6. Şifre Saklama Yöntemleri
Yapay Zeka Şunu Yapabilir: Şifreleri MD5 veya SHA1 gibi artık güvenli olmayan algoritmalarla hashlemeyi önerebilir.
Sen Şunu Demelisin: "2026 yılındayız. Şifreleme için BCrypt veya Argon2 gibi modern ve 'salt' içeren algoritmalar kullanmalısın."
7. Güvensiz Deserialization
Yapay Zeka Şunu Yapabilir: Gelen JSON verisini doğrudan sınıfa map ederken güvenlik ayarlarını (TypeNameHandling vb.) açık bırakabilir.
Sen Şunu Demelisin: "Kullanıcıdan gelen objeyi deserialize ederken tip kontrolünü sıkı tutmalısın, aksi halde saldırgan kendi zararlı objesini sistemde çalıştırabilir."
8. CORS Politikaları (Cross-Origin Resource Sharing)
Yapay Zeka Şunu Yapabilir: .AllowAnyOrigin() kullanarak tüm dünyadan gelen isteklere kapıyı açar.
Sen Şunu Demelisin: "Bu çok riskli. Sadece projenin kullandığı domainleri (beyaz liste) ekleyerek CORS politikasını daraltmalısın."
9. Hassas Veri Sızıntısı (Logging)
Yapay Zeka Şunu Yapabilir: Debug kolaylığı için tüm gelen Request objesini loglara yazar.
Sen Şunu Demelisin: "Logların içinde şifre, kredi kartı veya TC kimlik numarası olamaz. Hassas alanları loglamadan önce mutlaka maskele veya temizle."
10. Eksik Header Güvenliği
Yapay Zeka Şunu Yapabilir: Middleware konfigürasyonunda güvenlik header'larını eklemeyi atlar.
Sen Şunu Demelisin: "Tarayıcı seviyesinde güvenlik için app.UseHsts() ve Content-Security-Policy gibi header'ları içeren middleware'i mutlaka aktif etmelisin."
Son Söz: AI Bir Araçtır, Usta Sizsiniz
Yapay zeka hızıyla bizi büyülüyor olsa da, güvenlik her zaman teknik titizlik ve mesleki tecrübe ister. AI bir kod bloğu ürettiğinde, işinizi bitirip arkaya yaslanmadan önce kendinize ve ona şu kritik soruyu sorun:
"Bu kodu bir hacker görse tam olarak nereden saldırırdı?"
Unutmayın; yapay zeka muazzam bir vites yükselticidir, ancak direksiyonda her zaman siz varsınız. Kodunuzu AI yazsa bile, altına imzanızı atan sizsiniz. Bu yüzden her satırı "güven ama doğrula" prensibiyle incelemeye devam edin.