Beş yıl boyunca 'yazılım tedarik zinciri güvenliği' tek bir soruya indirgenmişti: Kodunun içinde ne var? Hangi açık kaynak paketleri, hangi sürümler, kimsenin bilerek seçmediği üç katman derinliğindeki geçici bağımlılıklar? SolarWinds, Log4Shell ve XZ Utis saldırıları aynı dersi verdi: Risk, ekibin yazdığı koddan çok, onu üreten her şeyde gizli. Bu yıl geliştirici araç zincirlerine yayılan Shai-Hulud adlı kendi kendini yayan kötü amaçlı paket kampanyası ise bir sonraki dersi öğretti: Kodun içinde ne olduğunu bilmek hala gerekli ama artık yeterli değil.
Model Context Protocol'ün (MCP) piyasaya sürülmesinden bu yana geçen yaklaşık 20 ayda, yapay zeka araçları, modelleri ve çevresindeki altyapı, yazılımın nasıl oluşturulduğu, dağıtıldığı ve çalıştırıldığı konusunda yük taşıyıcı parçalar haline geldi. Kod artık ajanlar tarafından yazılıyor. Paketler, ihtiyaç duyulduğuna karar veren otonom araçlar tarafından çekiliyor. Prompt'lar (yönergeler), derleme sürecinin gerçek bir girdisi haline geldi; bu da onları tehlikeye atmanın gerçek bir yolu olduğu anlamına geliyor. Güvenlik programlarının çoğu tasarlanırken bunların hiçbiri kapsamda değildi.
Yapay zeka tarafından üretilen kodu sadece 'daha fazla kod' olarak ele alıp aynı tarayıcılardan geçirmek ve 'tamam, bu da kapsandı' demek cazip gelebilir. Ancak bu, riskin nereye kaydığını yanlış okumak olur. Tedarik zinciri güvenliğini her zaman tanımlayan menşe sorusu - 'Bu nereden geldi ve ona güvenebilir miyim?' - artık sadece yapıta (artifact) değil, aynı zamanda modele, ajana ve araca da uygulanıyor. Bir yapay zeka kodlama asistanı bir bağımlılık önerir ve geliştirici, paket hiçbir insanın tehdit modelinden geçmeden kabul eder. Otonom bir ajan, bir görevi tamamlamak için MCP üzerinden bir araca uzanır ve o araç başka bir araca uzanır. Bir saldırgan tarafından hazırlanan ve modelin okuyacağı bir yere yerleştirilen bir prompt, neyin yazılacağını veya neyin çekileceğini yönlendirir.
Teknik Analiz
Yapay zeka tarafından üretilen kodu teslim almadan önce doğrulamak asgari gerekliliktir. Asıl zorluk, yazma işlemini yapan ajanları ve onların çağırdığı araçları yönetmektir. Çalıştığımız ekipler bulgulardan yoksun değil; aksine bulgular içinde boğuluyorlar. Zaten aşırı yüklü olan kuyruğa 'AI çıktısını da tara' eklemek, uyarı yığınını büyütür, programı güçlendirmez. Yapay zeka gerçekten kapsama alındığında iki şey değişir. Birincisi, soy (lineage) boru hattına giren her şeyi, modeller ve ajanlar dahil, kapsamalıdır. İkincisi, önceliklendirme hacme değil, gerçek sömürülebilirliğe dayanmalıdır. Bulguları çalışma zamanı bağlamı ve gerçekten ulaşılabilir olanla ilişkilendirmek, bir güvenlik açığı listesi ile işe yarar bir sömürü zinciri arasındaki farktır. Bir ajan öğle yemeğinden önce binlerce satır makul kod üretebildiğinde bu fark daha da önem kazanıyor.