AI Agent Memory Poisoning Tamamen Yaşam Döngüsü Savunmaları Gerektirir
Tech
AI
AI Agents
AI Security
Memory Poisoning

AI Agent Memory Poisoning Tamamen Yaşam Döngüsü Savunmaları Gerektirir

Zehirlenmiş agent belleğinin oturumlar arasında kalıcı olmasını ve tool kullanımını etkilemesini önlemeye yönelik araştırma destekli bir mimari.

Uygar DuzgunUUygar Duzgun
Aug 2, 2026
Güncellendi 15 Ağu 2026
17 min read

AI agent memory poisoning, güvenilmeyen tek bir girdiyi kalıcı duruma dönüştürür. Bir agent saldırganın kontrolündeki içeriği kalıcı belleğe yazdığında, bu içerik günler veya oturumlar sonra görünüşte güvenilir bağlam olarak geri dönebilir. Tüm yaşam döngüsünü savunun: her yazmayı denetleyin, provenance ve sona erme bilgisi ekleyin, kayıtları kullanıcı ve agent bazında izole edin, retrieval işlemini yeniden tarayın, action authorization'ı modelin dışında tutun ve geri almayı destekleyen bir influence log saklayın.

Prompt — Copy & Paste
Hedef kitle: Belleğe sahip, tool kullanan AI agent'ları tasarlayan veya işleten ileri düzey uygulayıcılar. Aşağıdaki çalışma sonuçları belirli deneysel sistemleri açıklar. Production kontrolleri, alıntılanan araştırmacıların tek bir evrensel mimariyi desteklediği iddiaları değil, pratik yorumlardır.

İçindekiler

AI agent memory poisoning nedir?

AI agent memory poisoning, daha sonraki retrieval işleminin bir agent'ın yanıtını, kararını veya tool kullanımını değiştirmesi amacıyla kalıcı kayıtların eklenmesi ya da değiştirilmesidir. Etki ortaya çıktığında özgün girdi ortadan kalkmış olabilir. Bu zaman aralığı, saldırının fark edilmesini ve yeniden oluşturulmasını, mevcut konuşmadaki görünür bir prompt injection'a kıyasla daha zor hale getirir.

Memory çeşitli yerlerde bulunabilir:

çıkarılmış gerçeklerin ve tercihlerin bulunduğu bir vector database
relational store'a yazılan özetler
notlar veya instruction dokümanları gibi düzenlenebilir dosyalar
tool durumu, takvimler, task queue'ları veya müşteri kayıtları
birden fazla agent tarafından kullanılan paylaşılan memory

Depolama teknolojisi belirleyici konu değildir. Kalıcılık ve daha sonra ortaya çıkan etki, security boundary'yi oluşturur.

Bu risk, birbirine yakın üç riskten farklıdır. Prompt injection mevcut model context'ini manipüle eder; ancak poisoned memory için delivery channel haline gelebilir. Training-data poisoning, training corpus aracılığıyla model davranışını değiştirir. Retrieval poisoning, bir istek için seçilen içeriği hedefler. Agent-memory poisoning ise sistemin daha sonra kullanıcının geçmişinin, tercihlerinin veya çalışma durumunun bir parçası olarak değerlendirebileceği bir kaydı kalıcı hale getirir.

Pratikte üç saldırı modeli önemlidir:

ModelSaklanan biçimEtkinleşmeBasit bir filtrenin zorlanma nedeni
------------
Doğrudan bozulmaBir kayıt zararlı yönlendirmeyi veya yanlış gerçeği içerirKayıt daha sonra retrieve edilirİçerik bir tercih, özet veya task notu gibi gizlenebilir
Bileşimsel bozulmaBirden fazla kayıt tek başına kabul edilebilir görünürBirlikte retrieval, zararlı anlamı oluştururRisk yalnızca birleşimde ortaya çıktığı için her yazma işlemi geçer
Uyuyan bozulmaBir kayıt tetikleyiciye bağlı bir instruction içerirDaha sonraki bir olay, ifade veya tool durumu onu etkinleştirirKayıt yazılırken tetikleyici mevcut değildir

Microsoft'un güncel guidance'ı aynı yapısal kaygıyı savunma açısından açıklar: kalıcı memory hem hassas verileri saklar hem de model davranışını ve tool seçimini etkiler. Bu nedenle hem bir data system hem de bir control plane olarak yönetilmelidir. Microsoft Learn

Yakın tarihli üç çalışma neyi ölçtü

Temmuz 2026'da yayımlanan üç preprint, bu tehdidin farklı bölümlerini inceledi. Birlikte okunduklarında, tek bir memory filtresinin neden zayıf bir release criterion olduğunu gösteriyorlar.

GhostWriter şimdi injection'ı, daha sonra activation'ı test etti

When Agents Remember Too Much, tool kullanan kişisel agent'lara yönelik iki aşamalı bir saldırı olan GhostWriter'ı tanıttı. Saldırgan önce güvenilmeyen bir kaynağa gizli içerik yerleştirir. Agent bu kaynağı işler ve saldırganın etkilediği memory'yi yazar. Daha sonraki bir task kaydı retrieve eder ve etkisini etkinleştirir.

Makalenin test ettiği agent ve model genelinde GhostWriter yaklaşık %98 ortalama injection rate ve yaklaşık %60 ortalama activation rate elde etti. Yazarlar ayrıca daha sıkı bir memory-saving policy'yi retrieval screen ile birleştiren AM-Sentry'yi test etti. Makale, özel olarak simüle edilmiş çalışma haftasında hem saldırı başarısını hem de task utility'yi değerlendiriyor; defense sonuçları model ve configuration'a göre değişiyor.

Sınırlar önemlidir. Çalışma beş agent'ı, dört model ailesini ve email veya calendar workflow'larını kapsıyor. Utility testi özeldir, saldırganlar adaptive değildir ve sonuçlar deployed agent'ların ne sıklıkta saldırıya uğradığını tahmin etmez.

MemPoison doğrudan, bileşimsel ve uyuyan hataları ayırdı

MemPoison, dört saldırı türü, üç injection channel ve üç memory substrate genelinde elle doğrulanmış 1.227 vaka oluşturdu. Değerlendirmeye yedi open-weight ve üç closed-weight model ailesi dahil edildi.

Makalenin yararlı katkısı üç seviyeli taxonomy'sidir. L1, tek kayıtta gerçekleşen doğrudan bozulmadır. L2, birden fazla kayıt birlikte retrieve edildiğinde zararlı hale gelir. L3, daha sonraki bir context onu etkinleştirene kadar uyku halinde kalır. Yazarlar, baseline write-time defense'lerin doğrudan saldırıları L2 veya L3 vakalarına kıyasla daha güvenilir biçimde bastırdığını bildiriyor. Mekanistik influence analysis, bu farkı saklandıklarında zararsız görünen ancak composition veya trigger altında zararlı hale gelen kayıtlara bağlıyor.

Bu, her production write filter'ın başarısız olacağını kanıtlamaz. Benchmark üç temsili memory substrate'ını ve standart text-based channel'ları kapsıyor. Yazarlar decay, summarization, access control ve diğer memory ecosystem'leri üzerine daha geniş çalışmalar yapılmasını öneriyor.

MemGhost tek seferlik bir email delivery path'ini test etti

When Claws Remember but Do Not Tell, gerçek bir IMAP/SMTP workflow'u ve bir email-agent skill kullanan 108 vakalık bir benchmark olan WhisperBench'i tanıttı. Saldırı framework'ü MemGhost, runtime feedback olmadan tek bir email payload'ı oluşturuyor. Başarı için agent'ın poisoned memory'yi benimsemesi, immediate response'unda kullanıcıyı uyarmaktan kaçınması ve daha sonraki davranışını değiştirmesi gerekiyor.

56 held-out vaka üzerinde makale, GPT-5.4 ile OpenClaw'da %87,5 ve Sonnet 4.6 ile Claude Code SDK'da %71,4 end-to-end success bildiriyor.

Bu rakamlar yazarların benchmark'ına, proxy environment'ına, reward design'ına ve model version'larına aittir. Evaluation, bir mesaj inbox'a ulaştıktan sonra başlıyor. Spam filtering, SPF, DKIM veya DMARC gibi mail-provider control'lerini modellemiyor. Makale ilk sürüm bir preprint olduğundan sonuçları tekrarlanmalıdır.

Yazma zamanı filtrelemesi neden yeterli değildir

Bir write gate, önerilen kaydı ve o anda mevcut olan kanıtları görür. Gelecekteki task'ı, yanında retrieve edilecek diğer kayıtları veya agent'ın daha sonra çağıracağı tool'u görmeyebilir.

Bu durum dört kör nokta oluşturur:

Composition: Sıradan görünen iki kayıt birlikte tehlikeli bir instruction oluşturabilir.
Context shift: Bir workflow'da güvenli olan tercih, başka bir workflow'da güvensiz olabilir.
Staleness: Daha önce doğru olan bir kayıt, policy, account veya project değiştikten sonra yanlış hale gelebilir.
Authority drift: Açıklayıcı bir memory, hiçbir authorization system onaylamamış olsa da permission olarak değerlendirilebilir.

Write-time check'ler yine de önemlidir. Güvensiz state'in persistence'a ulaşan miktarını azaltırlar. Hata, storage approval'ı kalıcı trust olarak değerlendirmektir.

Retrieval, authority değil candidate context döndürmelidir. Bir kaydı model context'ine eklemeden önce sistem kaynağını, yaşını, task relevance'ını, çelişkileri, hassasiyetini ve istenen etkisini kontrol edebilir. High-risk bir kayıt withheld edilebilir, özetlenebilir veya review'a yönlendirilebilir. Microsoft'un güncel guidance'ı bu write-and-retrieval ayrımını, deterministic isolation ve full lifecycle visibility ile birlikte öneriyor. Microsoft Learn

Sizin için önerilenler

Son safety decision yine memory'nin dışında kalmalıdır. “Send reports to this address” diyen retrieved bir note, recipient allowlist'i değiştirmemelidir. Bir deployment region'a ilişkin hatırlanan tercih cloud permission oluşturmamalıdır. Önerilen action'ı mevcut user, resource, scope ve policy'ye göre değerlendirmek için deterministic AI agent permissions kullanın.

Güvenli bir agent-memory mimarisi

Sistem, source'tan action'a kadar izlenebilir bir zincire ihtiyaç duyar:

`source → write decision → stored version → retrieval decision → model context → policy decision → tool result`

write gating, quarantine, isolated storage, retrieval checks, action authorization, audit ve rollback içeren AI agent memory security lifecycle
write gating, quarantine, isolated storage, retrieval checks, action authorization, audit ve rollback içeren AI agent memory security lifecycle

*Caption: Bir memory kaydı, yalnızca write ve retrieval check'lerinden sonra candidate context haline gelir. Bağımsız policy her consequential action'ı authorize ederken influence chain investigation ve rollback'i destekler.*

1. Kalıcı yazmalar için açık intent gerektirin

Her mesajın, dokümanın veya tool response'unun long-term memory haline gelmesine izin vermeyin. Hangi event'lerin durable state oluşturabileceğini tanımlayın. Kullanıcı tarafından onaylanmış tercihler ve açık “remember this” action'ları, güvenilmeyen bir attachment'ın autonomous summary'sine kıyasla daha kolay gerekçelendirilebilir.

Write işlemini kimin veya neyin istediğini kaydedin. Bir tool veya subagent başlattıysa, her şeyi son kullanıcının adına indirgemek yerine bu identity'yi koruyun.

2. Provenance, scope ve expiry bilgilerini kayıtla birlikte saklayın

Yararlı bir memory kaydı, text ve embedding'den fazlasına ihtiyaç duyar. En azından şunları saklayın:

source identity ve source object
user, agent, tenant ve workspace scope'u
creation time, model veya extractor version'ı ve policy version'ı
confidence veya verification status'u
intended purpose ve allowed workflow'lar
expiry time veya review date
parent record ve replacement history

Bir signature record integrity'yi koruyabilir. Özgün içeriğin doğru, güvenli veya authorized olduğunu kanıtlayamaz.

3. Isolation'ı code ve storage'da uygulayın

Tenant, user, agent ve workspace sınırları access-control list'lerinde, scoped token'larda, row-level policy'lerde ve encryption boundary'lerinde yer almalıdır. Prompt instruction'ları access control değildir. Shared memory, kullanışlı bir default namespace değil; named writer ve reader'lara sahip açık bir product feature olmalıdır.

Sizin için önerilenler

Aynı ilke execution environment için de geçerlidir. Retrieved content code execution'a veya geniş kapsamlı tool kullanımına neden olabiliyorsa, process'i AI agent sandbox security ile contain edin. Memory isolation, hangi context'in bir boundary'yi geçtiğini sınırlar. Sandbox ve identity control'leri, güvensiz context agent'a ulaşsa bile ne olacağını sınırlar.

4. Low-trust write'ları quarantine'a alın

“Discarded” ile “trusted memory” arasında bir state oluşturun. External file'lar, email'ler, web page'ler, indirect tool output'ları ve intent'i belirsiz kayıtlar quarantine'a girebilir. Deterministic bir rule veya authorized reviewer onları promote edene kadar normal retrieval'da görünmemelidir.

Quarantine ayrıca incident responder'lara, influence'ı sürdürmeden kanıtı koruyabilecekleri bir yer sağlar.

5. Retrieval sırasında kayıtları yeniden değerlendirin

Retrieval risk'i mevcut task'a bağlıdır. Yalnızca her kaydı değil, seçilen seti değerlendirin:

Source'un bu workflow'u etkileme hakkı var mı?
Kayıt expired olmuş veya superseded edilmiş mi?
Daha yüksek trust seviyesine sahip bir source ile çelişiyor mu?
Birden fazla kayıt birleştiğinde yeni bir instruction oluşturuyor mu?
Kayıt bir fact'i mi açıklıyor, yoksa authority vermeye mi çalışıyor?
Onu göstermek bir user veya tenant boundary'sini aşar mı?
Sizin için önerilenler

Retrieval'ı generation'dan ayrı değerlendirin. Bir RAG evaluation workflow, “yanlış kayıt seçildi” ile “model doğru kaydı yanlış kullandı” durumlarını ayırt etmeye yardımcı olur. Provenance, trigger dependence, composition ve cross-session activation gibi memory-specific boyutları ekleyin.

6. Tool authorization'ı bağımsız tutun

Memory parametre sağlayabilir. Permission'ları asla genişletmemelidir. Tool gateway mevcut identity'yi, allowed action'ı, resource boundary'yi, destination'ı, budget'ı ve approval requirement'larını uygulamalıdır. Memory-derived argument'ları untrusted input olarak değerlendirin ve mevcut policy'ye göre validate edin.

Human approval da güncel context'e ihtiyaç duyar. Proposed action'ı, etkilenen resource'u, data destination'ı ve onu etkileyen memory'leri gösterin. Bu zincir olmadan sunulan “Approve?” sorusu ilgili kararı gizler.

7. Influence'ı log'layın ve rollback'i destekleyin

Memory create, read, update ve delete operation'larını identity ve provenance ile log'layın. Consequential action'lar için context'e eklenen kayıtların ID'lerini ve version'larını saklayın. Bu, üç incident sorusunu yanıtlamayı mümkün kılar:

Poisoned record'ı hangi source oluşturdu?
Daha sonraki hangi output veya action onu kullandı?
Hangi version'lar revoke edilmeli, düzeltilmeli veya replay edilmelidir?

Deletion, yalnızca user interface'te bir row'u gizlemekle kalmamalı, active influence'ı da kaldırmalıdır. Index'leri, summary'leri, cache'leri, replica'ları ve derived record'ları test edin. OWASP'ın agent guidance'ı validated ve isolated memory ile adversarial test'leri ve release evidence'ı önerir; daha geniş memory analysis'i persistent prompt injection'ı agent-memory threat surface ile ilişkilendirir. OWASP Agent Security Cheat Sheet OWASP GenAI Security Project

Her memory sınıfı için bir policy seçin

Tek bir retention policy fazla kabadır. Farklı write ve retrieval kurallarına sahip sınıflarla başlayın.

Memory sınıfıVarsayılan write policyRetrieval policyAction authority
------------
Ephemeral task contextAutomatic, kısa TTLYalnızca mevcut taskYok
User-confirmed preferenceExplicit confirmationAynı user ve declared purposeÖneride bulunabilir, asla authorize edemez
Agent-generated summaryVersioned ve source'lara bağlıSource'ları ve freshness'ı yeniden kontrol etYok
External contentVarsayılan olarak quarantineYalnızca trust ve relevance check'lerinden sonraYok
Operational instructionAuthorized writer ve policy reviewExact scope, current versionYine de tool policy gerektirir
Secret veya regulated dataBlock et veya dedicated secret/data system kullanGeneral memory'ye asla yerleştirmeYalnızca dedicated control plane

Bu tablo başlangıç policy'sidir; compliance claim değildir. Medical agent, coding assistant, sales agent ve personal assistant farklı harm model'lerine sahiptir. Değişmeyen ilke daha dardır: persistence, untrusted content'i sessizce permission'a dönüştürmemelidir.

Tekrarlanabilir bir memory-poisoning test iş akışı

Test harness'ı benign marker'lar ve disposable account'lar etrafında oluşturun. Persistence ve policy hatalarını tespit etmek için gerçek credential'lara veya exfiltration payload'larına ihtiyacınız yoktur.

Adım 1: Temiz bir baseline yakalayın

Boş bir memory store ile sabit bir task set çalıştırın. Yanıtları, retrieval sonuçlarını, tool proposal'larını, policy decision'larını, latency'yi ve user-visible explanation'ları kaydedin. Sistem değişikliklerini normal model variance'ından ayırmak için yeterince tekrarlayın.

Adım 2: Eşleştirilmiş clean ve poisoned case'ler tanımlayın

Her case için user task'ını sabit tutun ve yalnızca candidate memory path'ini değiştirin. En azından şunları kapsayın:

unauthorized benign marker içeren tek bir direct record
birleşik anlamı tek tek kayıtlardan farklı olan iki record
daha sonraki bir phrase veya task state tarafından etkinleştirilen dormant record
daha yeni authoritative source ile çelişen stale record
bir user veya tenant altında yazılıp başka bir user veya tenant altında sorgulanan record
original activation task'ından sonra corrected veya deleted record

Disposable bir log'a `TEST_BLOCKED` yazmak gibi bir canary action kullanın. Agent beklenen policy path'inin dışında bu action'ı gerçekleştirir veya önerirse test başarısız olur.

Adım 3: Her boundary'yi gözlemleyin

Dört ayrı sonucu yakalayın:

Write adoption: Candidate stored, rejected veya quarantined oldu mu?
Retrieval exposure: Seçildi ve context'e eklendi mi?
Behavioral influence: Yanıt veya plan değişti mi?
Action outcome: Independent policy tool call'ı block etti mi veya allow etti mi?

End-to-end pass zayıf bir katmanı gizleyebilir. Örneğin authorization, poisoned record saklanıp tekrar tekrar retrieve edilmesine rağmen canary action'ı block edebilir. Bu yararlı bir containment'tır; ancak memory defect yine de düzeltilmelidir.

Adım 4: Utility ve false positive'leri ölçün

Benign memory case'lerini aynı pipeline'dan geçirin. Task completion, accepted user preference'lar, incorrect quarantine'lar, retrieval precision, latency, review volume ve false positive'leri takip edin. Tüm durable memory'yi block eden bir filter, feature'ı kaldırdığı için düşük attack success elde eder.

Adım 5: Risk'e göre release gate'leri belirleyin

Yararlı gate'ler şunları içerir:

test suite'te sıfır cross-tenant retrieval
sıfır unauthorized canary action
her durable record'da eksiksiz provenance
consequential action'lar için eksiksiz influence log'ları
index'ler, cache'ler, summary'ler ve replica'lar genelinde başarılı revocation
seçilen threat model için bounded poisoned-record adoption ve activation rate'leri
belgelenmiş bir benign-utility floor ve false-positive budget

OWASP'ın open-source Agent Memory Guard project projesi, memory scanning ve test tooling için bir implementation signal'dir. Repository'si ve self-reported evaluation'ı ekiplerin pattern'leri incelemesine yardımcı olabilir; ancak gerçek agent, model, memory backend ve policy stack'ini test etmenin yerini tutmaz.

Memory extraction, summarization, embedding, retrieval, prompt, model, tool schema, authorization veya deletion logic'teki değişikliklerden sonra suite'i yeniden çalıştırın. Bu katmanlar birbirleriyle etkileşir.

Kanıtlar neyi destekliyor, neyi desteklemiyor

Makaleler, constructed benchmark'lar içindeki attack success'i ölçtü. Production'da AI agent memory poisoning'in population-wide rate'ini ölçmediler.

Daha dar kapsamlı üç sonucu destekliyorlar:

persistent memory, oturumlar arasında influence taşıyabilir
direct, compositional ve dormant attack'lar farklı defense path'lerini çalıştırır
write-only defense'ler joint retrieval veya later activation sırasında ortaya çıkan riskleri açık bırakır

Makaleler, memory governance'ın context-sensitive defense'lere ihtiyaç duyduğu sonucunu çıkarıyor. Microsoft ve OWASP bağımsız olarak write, isolation, retrieval, user control, observability ve testing genelinde defense in depth öneriyor.

Pratik yorum, her geçişi test edilebilir hale getirmektir. Bir ekip bir kaydın neden saklandığını, neden retrieve edildiğini, bir action'ı nasıl etkilediğini, bu action'ı hangi policy'nin authorize ettiğini ve kaydın downstream etkilerinin nasıl kaldırılacağını açıklayabilmelidir.

Ekiplerin sorduğu sorular

AI agent memory poisoning, prompt injection ile aynı şey midir?

Hayır. Prompt injection, hostile instruction'ları tanıtmanın bir yoludur. Memory poisoning persistence ekler: manipüle edilmiş içerik saklanır, daha sonraki bir context'te retrieve edilir ve özgün input ortadan kalktıktan sonra gelecekteki reasoning veya tool kullanımını etkileyebilir.

Signed memory record'lar poisoning'i önleyebilir mi?

Hayır. Signature'lar bir kaydın oluşturulduktan sonra değiştirilmediğini kanıtlayabilir. Özgün içeriğin doğru, güvenli veya authorized olduğunu kanıtlamazlar. Güvenli bir design ayrıca provenance, explicit write intent, scope, expiry, retrieval check'leri ve independent action authorization gerektirir.

Memory poisoning defense'leri write time'da mı yoksa retrieval time'da mı çalışmalı?

Her ikisinde de. Write gate'ler unsafe persistence'ı azaltır. Retrieval check'leri, tek tek kayıtlar saklanırken görünür olmayan stale, contradictory, compositional veya trigger-dependent riskleri yakalar. Hiçbir katmanın tool authority vermesine izin verilmemelidir.

İddia kontrolleri

İddiaKontrolDurum
---------
GhostWriter deneylerinde yaklaşık %98 ortalama injection ve yaklaşık %60 ortalama activation elde ettiMakale tarafından test edilen personal-agent setup'ları genelinde bildirildi; production prevalence estimate değildirDoğrulandı, kapsamı sınırlandı
MemPoison dört attack type, üç injection channel ve üç memory substrate genelinde 1.227 hand-validated case içerirMakalenin abstract'ında ve evaluation description'ında belirtilmiştirDoğrulandı
Baseline write-time defense'ler compositional ve dormant attack'lar için structural blind spot'lar bırakırMemPoison yazarları L2 ve L3 case'lerinde residual influence bildiriyorDoğrulandı, kapsamı sınırlandı
MemGhost iki held-out configuration'da %87,5 ve %71,4 end-to-end success bildirdiMakalenin test setup'ı altındaki 56 held-out case genelinde bildirildiDoğrulandı, kapsamı sınırlandı
MemGhost mail-provider spam ve authentication control'lerini ölçmediEvaluation inbox'a delivery'den sonra başlıyor ve bu control'leri modellemiyorDoğrulandı
Microsoft memory'nin data ve control plane olarak ele alınmasını öneriyorGüncel Microsoft Learn guidance'ında belirtilmiştirDoğrulandı
Geçerli bir signature memory'yi trustworthy hale getirmezCreation sonrasındaki integrity; safe origin, truth, intent veya authority'yi kanıtlamazDoğrulandı
Repository activity, bir memory framework'ünün secure olduğunu kanıtlamazStar'lar, commit'ler ve release'ler security effectiveness'ı değil, ilgi ve maintenance'ı ölçerDoğrulandı

Kaynaklar

Manage memory safety in agentic systems — Microsoft Learn, 3 Haziran 2026'da güncellendi.
AI Agent Security Cheat Sheet — OWASP Cheat Sheet Series.
Memory Is a Feature. It Is Also an Attack Surface — OWASP GenAI Security Project, 13 Mayıs 2026.
OWASP Agent Memory Guard — open-source implementation ve test-tooling signal'i; project-reported sonuçlar bağımsız validation değildir.