Repo Bağlamınız Artık Bir Saldırı Yüzeyi
Yapay zeka kodlama güvenliği, bir modelin kötü kod yazmasını engellemekten çok daha fazlasıdır.
Asıl risk, ajanın yazmadan önce ne okuduğunda yatar. Deponuz (repository) artık sadece kodun bulunduğu bir yer değil; artık yapay zeka ajanları için bir girdi akışıdır.
Deponuzdaki her şey bir ajan için yönlendirme materyali haline gelebilir:
- Eski README dosyaları
- Güncelliğini yitirmiş taşıma (migration) notları
- Güncelliğini yitirmiş dokümantasyon
- Gizli proje kuralları
- Yerel talimat dosyaları
- Bağımlılık betikleri ve shell hook'ları
Geliştiriciler bu dosyaları genellikle zararsız bir kalabalık olarak görür. Bir yapay zeka ajanı sosyal bağlamı görmez; metinleri, araçları ve kalıpları görür. Eğer dokümantasyonunuz eski veya dağınıksa, ajan bu dağınıklığı standart olarak kabul edecektir.
Kötü bağlam iki şekilde karşımıza çıkar:
- Sıkıcı hatalar:
- Güncelliğini yitirmiş kurulum talimatları
- Kullanımdan kaldırılmış (deprecated) API'leri kullanan örnekler
- Eski mimari notları
- Adversarial saldırılar:
- Dosyaların içindeki prompt injection (istem enjeksiyonu)
- Kötü niyetli bağımlılık betikleri
- Kodu güvensiz kalıplara yönlendiren zehirlenmiş (poisoned) örnekler
Bir ajana test çalıştırma, dosyaları arama veya pull request açma yetkisi verdiğinizde, etki alanını (blast radius) genişletirsiniz. Bir hook sistemi artık sadece bir üretkenlik aracı değildir; o bir otomasyondur. Ona bir otomasyon gibi davranmalısınız.
İş akışınız hakkında şu soruları sorun:
- Bir hook'u kim düzenleyebilir?
- Ajan hangi ortam değişkenlerini (environment variables) görebilir?
- Ajan, geliştirici kimlik bilgilerini (credentials) devralıyor mu?
- Araç, deponun dışına yazıyor mu?
Ajanlara sihirli metin kutuları gibi davranmayın. Onlara geliştirici altyapısı (infrastructure) gibi davranın.
Ajan tabanlı iş akışınızı nasıl güvence altına alırsınız:
- Kapsamı daraltın: Eğer sadece üç dosyaya ihtiyacı varsa, ajanı tüm projenize yönlendirmeyin.
- Bağlamı temizleyin: Güncelliğini yitirmiş dokümanları ve eski talimatları silin veya düzeltin.
- Yürütmeyi sıkılaştırın: Riskli görevleri bir sandbox içinde çalıştırın. Kimlik bilgilerini sınırlandırın (scoped).
- Görünürlük talep edin: Ajanın tam olarak ne okuduğunu, hangi araçları çağırdığını ve hangi komutları çalıştırdığını bilin.
Bir yapay zeka ajanı, shell erişimi olan ve hızlı yazan bir junior geliştirici gibidir. Yeni bir junior geliştiriciye ilk günden tam üretim (production) yetkileri vermezsiniz. Ona küçük görevler, temiz bir bağlam ve sınırlı izinler verirsiniz.
Ajanlarınıza da aynı şekilde davranın.
Source: https://dev.to/hefty_69a4c2d631c9dd70724/your-repo-context-is-an-attack-surface-now-5dhj
Optional learning community: https://t.me/GyaanSetuAi