AI Kod Yazıyor. Peki Güvenliği Kim Yazıyor?
Yazılım dünyasında risk artık yazılan kodda değil, kullanılan bağımlılık zincirinde saklı. AI’ın hızlandırdığı geliştirme süreçleri, kontrol mekanizmaları aynı hızda gelişmediği için yeni bir güvenlik açığı yaratıyor. Bu yazı, modern supply chain saldırılarının nasıl çalıştığını, neden geleneksel güvenlik yaklaşımlarının yetersiz kaldığını ve “dependency = attack surface” gerçeğinin ne anlama geldiğini inceliyor.
2026-04-02 15:45:32 - Arastiriyorum
Yazılım dünyası uzun süredir bir gerçeği görmezden geliyor:
Bugün çalışan sistemlerin büyük çoğunluğu, ekiplerin yazdığı koddan değil, bağımlılıkların oluşturduğu bir ekosistemden oluşuyor.
Modern bir uygulama:
- Yüzlerce doğrudan bağımlılık,
- Binlerce dolaylı bağımlılık,
- Ve kimsenin gerçekten incelemediği bir kod yığını ile çalışıyor.
Bu yapı yıllardır riskliydi.
Ama artık kontrol edilemez hale geliyor.
Sorun Yeni Değil. Ama Ölçek Değişti.
Supply chain saldırıları yeni değil.
SolarWinds vardı.
Log4Shell vardı.
XZ Utils vardı.
Ama bu saldırıların ortak özelliği şuydu:
- Yavaş ilerlediler
- Hedefliydiler
- İnsan merkezliydi
Bugün ise tablo değişti.
Yeni nesil saldırılar:
- Otomatik
- Hızlı
- Yayılabilir
Ve en kritik fark:
Artık saldırılar insanları hedef almıyor. Sistemleri hedef alıyor.
Axios vakasında olan şey aslında oldukça basit:
- Kod değiştirilmedi
- Güven kazanılmış bir paket kullanıldı
- Sadece bir bağımlılık eklendi
Ama sonuç?
Makineye:
- Zararlı yazılım indirildi
- Çalıştırıldı
- Ve kendini sildi
Yani klasik güvenlik yaklaşımı tamamen bypass edildi.
Çünkü:
- CVE yok
- İmza yok
- Log yok
Sistem çalışıyor görünürken, aslında çoktan ele geçirilmişti.
Bir yazılım ekibi genelde şunu düşünür:
“Biz bu paketi kullanıyoruz.”
Gerçek:
“Bizim kullandığımız paket, başka 700 paketi daha kullanıyor.”
Ve bu seçimlerin çoğu:
- Geliştirici tarafından yapılmıyor
- Review edilmiyor
- Denetlenmiyor
Yani sistemin en kritik kararları… aslında kimse tarafından alınmıyor.
AI kod üretimini hızlandırdı.
Ama aynı zamanda şu etkileri yarattı:
- Daha fazla dependency kullanımı
- Daha az manuel kontrol
- Daha hızlı deploy
Daha kötüsü:
AI:
- Var olmayan paketleri önerebiliyor
- Eski ve vulnerable versiyonları seçebiliyor
- “Çalışıyor mu?” sorusuna optimize oluyor
“Güvenli mi?” sorusu ise sistemde yok.
Bu da yeni bir saldırı modelini doğurdu:
Slopsquatting: AI’yı Hacklemek
Süreç şu kadar trajikomik:
- AI olmayan bir paket adı uyduruyor
- Saldırgan o paketi gerçekten publish ediyor
- AI o paketi tekrar öneriyor
- Sistem otomatik olarak kuruyor
Ve insanlar hâlâ “AI developer productivity” konuşuyor.
Eskiden perimeter şuydu:
- Firewall
- Network
- Endpoint
Bugün perimeter:
package.json
Ve bu perimeter:
- Dinamik
- Kontrolsüz
- Sürekli değişen
Yani klasik güvenlik araçlarının çoğu burada işe yaramıyor.
Çünkü çoğu araç şu soruyu soruyor:
“Bu paketin bilinen bir açığı var mı?”
Ama yeni saldırıların cevabı:
“Hayır. Çünkü daha yeni yazıldı.”
Bu yüzden:
- CVE tabanlı yaklaşım geç kalıyor
- Signature-based detection işe yaramıyor
- Post-mortem analiz anlamsızlaşıyor
Asıl Değişim: Tespitten Önlemeye Geçiş
Başarılı ekiplerin yaptığı şey farklı:
- Dependency geldiği anda analiz ediyorlar
- Kodun ne yaptığına bakıyorlar
- Davranış bazlı kontrol uyguluyorlar
Yani soru değişiyor:
❌ Bu paket güvenli mi?
✅ Bu paket ne yapıyor?
En Rahatsız Edici Gerçek
Yazılım artık şu şekilde üretiliyor:
- AI kod yazıyor
- AI dependency seçiyor
- CI/CD otomatik deploy ediyor
İnsan sadece sonucu görüyor.
Bu şu anlama geliyor:
Eğer bu zinciri kontrol etmezsen, sistemi sen değil, dışarıdaki biri yönetir.
AI kötü değil.
Open-source kötü değil.
Dependency kullanımı da kaçınılmaz.
Ama:
Kontrol olmadan hız, sadece riski büyütür.
Bugün yaşanan şey bir güvenlik açığı değil.
Bir kontrol kaybı.
Ve bu kayıp:
- İnsan hızının ötesinde
- Makine hızında büyüyor
Yazılım dünyası uzun süre şu soruyla yaşadı:
“Bu çalışıyor mu?”
Artık soru şu olmak zorunda:
“Bu kimin kontrolünde çalışıyor?”
Çünkü cevap “biz” değilse…
zaten çoktan geç kaldık.