AI Kodlama Agenlarını Güvenliğe Almak: Ajan Hareketlerini Görebilmek Neden Şimdi Çok Önemli?
AI Coding Ajanları: Gücü ve Riskleri Nasıl Kontrol Altına Alabiliriz
2024'te yazılım geliştiren herkes AI coding asistanlarının sihirli etkisini yaşadı herhalde. Bir özelliği anlatıyorsun, ajan kodunu okuyor, düzenlemeler yapıyor, testleri çalıştırıyor, değişiklikleri kaydediyor—sen de kahven yudumlarken bu oluyor. Gerçekten harika.
Ama işte ortada konuşmak istenmeyecek bir gerçek var: birçok geliştirici, coding ajanlarının çalışma anında tam olarak ne yaptığını görmüyor.
Ajan bir shell komutu çalıştırdığında, bir dosya yazdığında ya da ayar dosyasını okuduğunda bunlar senin izinlerinle, senin dosya sisteminde, senin kimlik bilgilerinle oluyor. Ajan senin SSH anahtarlarını, AWS tokenlarını, environment değişkenlerini görebiliyor. Ama sen sadece hoş bir sohbet arayüzü görüyorsun. Arka planda ne oluyor? Çoğunlukla bilinmiyor.
Korkutucu Bir Senaryo
Şöyle bir durum düşün: authentication modülünü düzenlemesi için ajanına bir istek gönderiyorsun. O da kaynak dosyaları okuyor, iyileştirmeler yapıyor, testleri çalıştırmaya başlıyor. Ama birden—zararlı bir dependency injection, prompt injection saldırısı ya da sadece kafa karışması yüzünden—~/.ssh/known_hosts dosyasını okumaya çalışıyor. Sonra ~/.aws/credentials/ dizinine birşeyler yazmaya başlıyor.
Bunu fark ederdin mi? Muhtemelen çok geç kalana dek hayır.
İşte güvenlik konusunda yeterince konuşmadığımız sınır burası ve tam da bu yüzden AI ajanları için runtime monitoring kritik bir altyapı haline geliyor.
Prempti'nin Gelmesi: Coding Ajanının Güvenlik Gözcüsü
Açık kaynak güvenlik topluluğu bu sorunu çözmek için harekete geçti. Var olan runtime security araçlarını—özellikle endüstri standardı Falco tehdit algılama motorunu—AI ajan araç çağrılarıyla birleştirerek inanılmaz bir şey yaratıldı: ajanın harekete geçmeye çalıştığı anda yapılandırılmış görünürlük ve politika yaptırımı.
Işte nasıl çalışıyor:
Ajanın bir araç çağrısı yapması gerektiğinde (dosya okuma, dosya yazma, bash komutu vs), Prempti onu kesintiye uğratıyor. İstek Falco'ya gidiyor ve orada güvenlik politikalarına karşı kontrol ediliyor. Falco verdiği karar:
- İzin ver — işlem normal şekilde devam ediyor
- Engelle — işlem bloke ediliyor, ajan sebebi öğreniyor
- Sor — sana onay veya reddetme için bir pencere açılıyor
Kernel modülü yok. Root erişimi yok. Container yok. Sadece ajanın araç çağrıları esnasında kanca görevi yapan hafif bir kullanıcı seviyesi servisi.
Ajan bloke olmakla kalmıyor—neden bloke olduğunun detaylı açıklamasını alıyor. Bunu sana gösterebiliyor, güvenlik duruşunu gizli kalmaktan çıkarıp şeffaf hale getiriyor.
İki Çalışma Modu: Gözlemle, Sonra Uygula
Prempti iki farklı modla gelir ve tasarım çok akıllıca:
Monitor modu ajanın dokunduğu her şeyi gösterirken hiçbir bloklama yapmıyor. Birkaç oturum boyunca çalıştır, ajanın gerçek davranışını öğren, kurallarını ince ayarla, güven kazan.
Guardrails modu (varsayılan) kararları gerçekten yürürlüğe koyuyor. Engelleme yapıyor, onay soruyor, izin veriyor.
İkisi arasında geçiş yapabiliyorsun:
premptictl mode monitor # sadece gözlemleme
premptictl mode guardrails # kararları uygula
premptictl logs # canlı olayları izle
Güvenlik araçları böyle olmalı: önce gözlemle, sonra emin olarak uygula.
Politika Yazma: Tanıdık Gelecek
Falco kuralları yazmışsan, ajan güvenlik politikaları aşina gelecek. İşte kitaplardan çıkmış eski bir saldırı yöntemini engelleyen kural—içeriği doğrudan shell yorumlayıcısına aktarma (prompt injection açısından riski yüksek):
- rule: Shell'e yönlendirmeyi engelle
desc: İçeriği shell yorumlayıcılarına aktarmayı bloke et
condition: >
tool.name = "Bash"
and (tool.input_command contains "| sh"
or tool.input_command contains "| bash"
or tool.input_command contains "| zsh")
output: >
Falco shell yorumlayıcısına yönlendirmeyi engelledi (%tool.input_command)
priority: CRITICAL
source: coding_agent