AI Ajanlarında Hafıza ve Bağlam Zehirlenmesi
Kalıcı Enjeksiyonun Anatomisi
Klasik prompt injection tek bir yanıtı bozar; hafıza zehirlenmesi ise ajanın gelecekteki tüm kararlarını bozar. Kötü niyetli bir talimatı ajanın uzun süreli belleğine yerleştirdiğinizde saldırı bir olay olmaktan çıkar, kalıcı bir davranış haline gelir.
Hafıza ve Bağlam Zehirlenmesi Nedir?
Hafıza ve bağlam zehirlenmesi (memory & context poisoning), bir saldırganın kötü niyetli bir talimatı, sahte bir olguyu veya gizli bir tetikleyiciyi yapay zeka ajanının bağlamına veya kalıcı belleğine yerleştirerek ajanın gelecekteki kararlarını, araç çağrılarını ya da yanıtlarını yönlendirmesidir. Klasik prompt injection tek bir çıktıyı bozar ve oturum bitince kaybolur; hafıza zehirlenmesinde ise talimat belleğe yazıldığı için etkisi oturumlar boyunca, hatta farklı kullanıcılar arasında taşınabilir. Bu yönüyle olay bazlı bir manipülasyon olmaktan çıkıp ajanın davranışına gömülmüş kalıcı bir arka kapıya dönüşür.
Bu ayrımı netleştirmek önemli: prompt injection saldırının giriş vektörüdür; hafıza zehirlenmesi ise o enjeksiyonun kalıcılık kazanmış halidir. Bir ajan konuşma geçmişini, kullanıcı tercihlerini, vektör veritabanındaki notları veya RAG kaynaklarını hatırladığı ölçüde, bu hatırlama yüzeyi bir saldırı yüzeyine dönüşür.
İki Katman: Bağlam Zehirlenmesi ve Hafıza Zehirlenmesi
Terim çoğu zaman tek bir şey gibi kullanılsa da pratikte iki farklı zaman ölçeğinden bahsediyoruz.
| Boyut | Bağlam Zehirlenmesi | Hafıza Zehirlenmesi |
|---|---|---|
| Yerleşim | Aktif bağlam penceresi (RAG parçaları, araç çıktıları, alt-ajan mesajları) | Kalıcı bellek (konuşma özeti, vektör DB, kullanıcı profili) |
| Ömür | Oturum/istek boyunca | Oturumlar arası, potansiyel olarak süresiz |
| Tetiklenme | Anlık, aynı akışta | Gecikmeli; ilgisiz bir sorguda uyandırılabilir |
| Temizlenme | Bağlam sıfırlanınca kaybolur | Bellek elle temizlenene kadar kalır |
Bağlam zehirlenmesinin klasik örneği dolaylı enjeksiyondur: ajan bir e-postayı, PDF'i ya da web sayfasını okur ve içine gömülü talimat aktif bağlama sızar. Hafıza zehirlenmesi ise bir adım öteye geçer: ajan bu içeriği özetleyip belleğe yazdığında, zararlı talimat artık kaynağı silinse bile ajanın kendi hatırasında yaşamaya devam eder. Bu nedenle uzun süreli hafızaya sahip her ajan, RAG mimarisiyle birlikte değerlendirilmelidir; konuyu RAG güvenliği tarafından da ele alıyoruz.
MINJA: Yalnızca Sorgu Arayüzüyle Belleği Zehirlemek
Hafıza zehirlenmesinin neden bu kadar ciddiye alındığını en net gösteren çalışma MINJA (Memory Injection Attack) oldu. Saldırının rahatsız edici yanı tehdit modelinin sadeliğidir: saldırganın ajanın belleğine, veritabanına ya da altyapısına hiçbir ayrıcalıklı erişimi yoktur. Herhangi bir kullanıcı gibi yalnızca normal sorgu arayüzü üzerinden etkileşim kurar.
Çalışmada, dikkatle biçimlendirilmiş sorgular aracılığıyla zararlı kayıtların ajanın uzun süreli belleğine yazdırıldığı ve bu kayıtların daha sonra başka kullanıcıların masum sorgularında tetiklenerek ajanı yanlış karara sürüklediği gösterildi. Raporlanan başarımlar dikkat çekicidir: değerlendirilen senaryolarda %98,2 enjeksiyon başarısı ve %76,8 saldırı başarımı elde edildi. Yani bellek büyük olasılıkla zehirlenebiliyor ve zehirlendiğinde hedeflenen yanlış davranış büyük oranda gerçekleşiyor.
MINJA'nın önemi, saldırıyı ayrıcalıklı bir tedarik zinciri ihlali olmaktan çıkarıp sıradan bir kullanıcı etkileşimi seviyesine indirmesidir. Belleği paylaşan çok kullanıcılı ajanlar için bu, bir kullanıcının bıraktığı izin diğerini etkileyebileceği anlamına gelir.
Kalıcı Enjeksiyonun Anatomisi: Uyuyan Talimat
Kalıcı bir bellek enjeksiyonunu üç aşamada düşünmek faydalı. Bu, genel bellek-zehirleme literatüründen damıtılmış kavramsal bir modeldir.
- Yerleştirme (implant): Zararlı talimat, doğrudan bir mesajla ya da dolaylı olarak (okunan bir belge, araç çıktısı) belleğe yazdırılır. Saldırgan çoğu zaman talimatı masum bir tercih gibi maskeler: "bundan sonra faturaları şu hesaba yönlendir" gibi.
- Sindirim (normalize): Ajan bu içeriği özetler, gömer veya profil kaydına işler. Bu aşamada zararlı talimat, sistemin kendi "güvenilir hafızası" gibi görünmeye başlar; kaynağının şüpheli oluşu kaybolur.
- Uyanma (trigger): Talimat, ilgisiz görünen bir sorguda uyanır. Buna uyuyan zehirleme (sleeper poisoning) denir: enjeksiyon anı ile tetiklenme anı zamansal olarak ayrıldığı için tespit ve ilişkilendirme zorlaşır.
Bu üçlü yapı, savunmanın neden zor olduğunu da açıklar: girişteki filtre yerleştirme anını yakalayamazsa, tetiklenme anında talimat artık "dışarıdan gelen bir metin" değil, sistemin kendi hatırasıdır. Filtreler ise genellikle dış girdiye şüpheyle, iç belleğe güvenle yaklaşır.
Neden Kritik: OWASP ASI06 ve Ajan Güvenliğindeki Yeri
Bu risk artık niş bir akademik merak değil. OWASP, hafıza ve bağlam zehirlenmesini Agentic Top 10 listesinde ASI06 (Memory & Context Poisoning) olarak resmi bir kategoriye yükseltti. Bu, riskin ajan mimarilerinde ilk on tehdit arasında sayıldığı anlamına gelir.
Kritiklik seviyesi ajanın yetkisiyle doğru orantılıdır. Salt sohbet eden bir asistanda zehirlenmiş bir hatıra yanlış bilgi üretir; araç çağıran, e-posta gönderen, ödeme yapabilen ya da kod çalıştıran bir ajanda ise aynı hatıra eyleme dönüşür. Bu yüzden bellek güvenliği, ajan güvenliğinin yetki modeliyle birlikte düşünülmelidir: en az ayrıcalık ilkesi ajanın belleğine de uygulanmadıkça, zehirlenmiş bir talimat ajanın sahip olduğu her yetkiyi kullanabilir.
Özellikle çok kullanıcılı ve çok ajanlı sistemlerde risk katlanır: bir alt-ajanın belleğine düşen zararlı bir not, orkestrasyon zincirinde yukarı doğru yayılarak diğer ajanları da etkileyebilir.
Önerilen Metod: Hafıza Kalıcılık Testi
Bir enjeksiyonun ne kadar tehlikeli olduğunu ölçmenin pratik yolu "engellendi mi" sorusu değil, "kaç tur sonra hâlâ tetikleniyor" sorusudur. AltaySec olarak bu ölçümü Hafıza Kalıcılık Testi adını verdiğimiz üç aşamalı bir protokol olarak öneriyoruz. Bu, ajan belleğinin dayanıklılığını turdan tura değerlendirmek için tekrarlanabilir bir çerçevedir.
- Enjeksiyon turu: Belleğe maskelenmiş bir tetikleyici talimat yerleştirilir ve kaydın belleğe yazıldığı doğrulanır.
- Seyreltme turları: Araya konudan bağımsız N adet iyi niyetli tur eklenir. Amaç, talimatın normal kullanımın gürültüsü altında hayatta kalıp kalmadığını görmektir.
- Uyandırma turu: Tetikleyici bağlam tekrar sunulur ve talimatın hâlâ etkin olup olmadığı ölçülür. Kalıcılık, enjeksiyondan sonra talimatın hâlâ tetiklendiği tur sayısıyla ifade edilir.
Bu protokolün ampirik zemini olarak AltayDuel çok-turlu transcript setine (AltaySec'in kendi ölçüm verisi; yaklaşık 2.594 çok-turlu ve 439 tekil kayıt) bakıyoruz. Bu veri kümesindeki çok-turlu diyaloglar, bir talimatın araya giren turlara rağmen ne zaman "unutulduğunu" ve ne zaman canlı kaldığını gözlemlemek için doğal bir laboratuvar sunuyor. Bu bir dış-genel istatistik değil, bizim kendi ölçüm ortamımızdan çıkan bir gözlemdir; veri kümesinin yapısını AltayDuel Türkçe veri seti yazısında ayrıntılandırıyoruz.
Gözlemsel bulgumuz nitel düzeyde şudur: kısa bağlamlı, tek seferlik enjeksiyonlar birkaç tur içinde etkisini yitirme eğilimindeyken, belleğe özet olarak yazılmış talimatlar seyreltme turlarına belirgin biçimde daha dirençlidir. Turdan tura kalıcılık eğrisinin sayısallaştırılması, farklı ajan mimarileri için ayrı ayrı ölçüm gerektirdiğinden, burada tek bir evrensel sayı vermekten kaçınıyoruz; doğru olan, her ajanın kendi kalıcılık eğrisini bu protokolle çıkarmasıdır.
Savunma Prensipleri
Hafıza zehirlenmesine karşı tek bir sihirli filtre yok; katmanlı bir yaklaşım gerekiyor:
- Belleğe yazma sınırı: Ajanın her okuduğunu belleğe yazmasına izin vermeyin. Kalıcı belleğe yazma, ayrı bir güven kararı olarak ele alınmalı ve mümkünse doğrulama gerektirmelidir.
- Kaynak damgalama (provenance): Her bellek kaydına kaynağı ve güven seviyesi iliştirilmeli. Dış kaynaklı içerikten türeyen hatıralar, sistem talimatı yetkisiyle asla eşitlenmemeli.
- Bağlam-bellek ayrımı: Kullanıcı/araç kaynaklı veri ile sistem talimatları yapısal olarak ayrı tutulmalı; ajan ikisini karıştırmamalı.
- Kiracı izolasyonu: Çok kullanıcılı sistemlerde bellek kiracı bazında bölünmeli; bir kullanıcının bıraktığı iz diğerine sızmamalı.
- Çıkışta yeniden denetim: Zehirlenmiş bir hatıra tetiklendiğinde asıl zarar araç çağrısında oluşur; bu nedenle yalnızca girişi değil, ajanın eylemlerini de bir güvenlik katmanından geçirmek gerekir.
AltaySec'in Guardian hibrit tespit katmanı tam da bu son ilkeye odaklanır: hem girişteki enjeksiyon denemelerini hem de ajanın bellekten uyanan zararlı eylemlerini çalışma anında değerlendirir. Bir yapay zeka güvenlik duvarının ajan belleğiyle nasıl konumlandığını değerlendirmek isteyen ekipler bizimle iletişime geçebilir. Çalışma anı savunma prensiplerini çalışma anı korumaları yazısında da işliyoruz.
Sonuç
Prompt injection'ı bir yangına benzetirsek, hafıza zehirlenmesi o yangının küllerine gömülmüş, ilerideki bir rüzgârda yeniden alevlenecek bir kordur. MINJA'nın gösterdiği gibi, saldırgan için ayrıcalıklı erişim şart değil; sıradan bir sorgu arayüzü yeterli olabiliyor. OWASP'ın bunu ASI06 olarak resmileştirmesi de riskin ajan mimarilerinde artık göz ardı edilemeyeceğini teyit ediyor.
Doğru soru "ajanım kandırıldı mı" değil, "ajanım ne kadar süre kandırılmış kalıyor" olmalı. Önerdiğimiz Hafıza Kalıcılık Testi tam da bunu ölçmek için var: enjeksiyonu bir olay olarak değil, bir yaşam süresi olarak değerlendirmek. Uzun süreli belleğe sahip her ajan, bu belleğin de bir saldırı yüzeyi olduğunu varsayarak tasarlanmalıdır.
