Отруєння пам’яті AI-агентів потребує захисту протягом усього життєвого циклу
Tech
AI
AI Agents
AI Security
Memory Poisoning

Отруєння пам’яті AI-агентів потребує захисту протягом усього життєвого циклу

Архітектура, підкріплена дослідженнями, для запобігання збереженню отруєної пам’яті агента між сесіями та її впливу на використання інструментів.

Uygar DuzgunUUygar Duzgun
Aug 2, 2026
Оновлено 15 серп. 2026 р.
17 min read

Пам’ять AI-агента перетворює один ненадійний вхід на довготривалий стан. Щойно агент записує контрольований зловмисником вміст у постійну пам’ять, цей вміст може повернутися через кілька днів або сесій як нібито довірений контекст. Захищайте весь життєвий цикл: перевіряйте кожен запис, додавайте походження та термін дії, ізолюйте записи за користувачем і агентом, повторно перевіряйте результати пошуку, тримайте авторизацію дій поза моделлю та зберігайте журнал впливу, який підтримує відкочування.

Prompt — Copy & Paste
Аудиторія: досвідчені фахівці, які проєктують або експлуатують AI-агентів із підтримкою інструментів і пам’яті. Наведені нижче результати досліджень описують конкретні експериментальні системи. Засоби захисту для production є практичними інтерпретаціями, а не твердженнями, що процитовані дослідники підтримують одну універсальну архітектуру.

Зміст

Що таке отруєння пам’яті AI-агента?

Отруєння пам’яті AI-агента — це вставлення або зміна постійних записів так, щоб подальше отримання змінювало відповідь, рішення або використання інструментів агентом. Початкового вхідного сигналу може вже не бути, коли проявляється ефект. Такий часовий розрив ускладнює виявлення та відтворення атаки порівняно з видимою prompt injection у поточній розмові.

Пам’ять може зберігатися в кількох місцях:

vector database із витягнутими фактами та вподобаннями
підсумки, записані до реляційного сховища
редаговані файли, як-от нотатки або документи з інструкціями
стан інструментів, календарі, черги завдань або записи клієнтів
спільна пам’ять, яку використовують кілька агентів

Технологія зберігання не є визначальним питанням. Межу безпеки створює поєднання постійності та подальшого впливу.

Це відрізняється від трьох суміжних ризиків. Prompt injection маніпулює поточним контекстом моделі, хоча може стати каналом доставки отруєної пам’яті. Отруєння training data змінює поведінку моделі через навчальний корпус. Retrieval poisoning націлене на вміст, вибраний для запиту. Отруєння пам’яті агента зберігає запис, який система згодом може сприйняти як частину історії, уподобань або робочого стану користувача.

На практиці важливі три моделі атак:

МодельФорма зберіганняАктиваціяЧому простому фільтру складно впоратися
------------
Пряме пошкодженняОдин запис містить шкідливу вказівку або хибний фактЗапис отримується пізнішеВміст може бути замаскований під уподобання, підсумок або нотатку завдання
Композиційне пошкодженняКілька записів окремо виглядають прийнятнимиСпільне отримання формує шкідливий змістКожен запис проходить перевірку, оскільки ризик виникає лише в комбінації
Приховане пошкодженняЗапис містить інструкцію, залежну від тригераПізніша подія, фраза або стан інструмента активує їїТригер відсутній під час запису

Поточні рекомендації Microsoft описують те саме структурне занепокоєння з погляду захисту: постійна пам’ять зберігає чутливі дані, а також впливає на поведінку моделі та вибір інструментів. Тому нею слід керувати як системою даних і як площиною керування. Microsoft Learn

Що вимірювали три нещодавні дослідження

Три препринти за липень 2026 року досліджували різні частини цієї загрози. Разом вони показують, чому одного фільтра пам’яті недостатньо як критерію випуску.

GhostWriter тестував ін’єкцію зараз і активацію пізніше

When Agents Remember Too Much представив GhostWriter — двоетапну атаку на персональних агентів, які використовують інструменти. Спочатку зловмисник розміщує прихований вміст у ненадійному джерелі. Агент обробляє це джерело та записує пам’ять, на яку вплинув зловмисник. Пізніше завдання отримує цей запис і активує його ефект.

У протестованих агентах і моделях GhostWriter досягав середнього рівня ін’єкції близько 98% і середнього рівня активації близько 60%. Автори також протестували AM-Sentry, який поєднує суворішу політику збереження пам’яті з перевіркою під час отримання. У статті оцінюються як успішність атак, так і корисність завдань у спеціально змодельованому робочому тижні; результати захисту відрізняються залежно від моделі та конфігурації.

Важливі межі дослідження. Робота охоплює п’ять агентів, чотири сімейства моделей і робочі процеси з електронною поштою або календарем. Тест корисності є спеціально розробленим, зловмисники не адаптуються, а результати не оцінюють, як часто атакують розгорнутих агентів.

MemPoison розділяв прямі, композиційні та приховані відмови

MemPoison зібрав 1 227 перевірених вручну випадків, що охоплюють чотири типи атак, три канали ін’єкції та три сховища пам’яті. Оцінювання включало сім сімейств моделей із відкритими вагами та три сімейства моделей із закритими вагами.

Корисний внесок статті — таксономія з трьох рівнів. L1 — пряме пошкодження одного запису. L2 стає шкідливим, коли кілька записів отримуються разом. L3 залишається прихованим, доки пізніший контекст не активує його. Автори повідомляють, що базові засоби захисту під час запису надійніше блокують прямі атаки, ніж випадки L2 або L3. Їхній механістичний аналіз впливу пояснює розрив записами, які під час зберігання виглядають нешкідливими, але стають небезпечними під час композиції або після тригера.

Це не доводить, що кожен production-фільтр запису не спрацює. Бенчмарк охоплює три репрезентативні сховища пам’яті та стандартні текстові канали. Автори закликають до ширших досліджень згасання, підсумовування, контролю доступу та інших екосистем пам’яті.

MemGhost тестував одноразовий канал доставки електронною поштою

When Claws Remember but Do Not Tell представив WhisperBench — бенчмарк зі 108 випадків, що використовує реальний робочий процес IMAP/SMTP і навичку email-агента. Його фреймворк атак MemGhost генерує один email-пакет без зворотного зв’язку під час виконання. Для успіху агент має прийняти отруєну пам’ять, не попередити користувача у своїй безпосередній відповіді та змінити подальшу поведінку.

Для 56 відкладених випадків стаття повідомляє про 87,5% наскрізного успіху на OpenClaw із GPT-5.4 і 71,4% на Claude Code SDK із Sonnet 4.6.

Ці показники належать бенчмарку авторів, проксі-середовищу, дизайну винагороди та версіям моделей. Оцінювання починається після надходження повідомлення до вхідної скриньки. Воно не моделює засоби контролю поштового провайдера, як-от фільтрацію спаму, SPF, DKIM або DMARC. Стаття є препринтом першої версії, тому її результати потребують відтворення.

Чому фільтрації під час запису недостатньо

Засіб контролю запису бачить запропонований запис і докази, доступні в цей момент. Він може не бачити майбутнього завдання, інших записів, які буде отримано разом із ним, або інструмента, який агент згодом викличе.

Це створює чотири сліпі зони:

Композиція: два записи, що виглядають звичайними, разом можуть сформувати небезпечну інструкцію.
Зміна контексту: уподобання, безпечне в одному робочому процесі, може бути небезпечним в іншому.
Застарілість: колись правильний запис може стати хибним після зміни політики, облікового запису або проєкту.
Зміщення повноважень: описову пам’ять можуть сприйняти як дозвіл, хоча жодна система авторизації його не схвалила.

Перевірки під час запису все одно важливі. Вони зменшують обсяг небезпечного стану, який потрапляє до постійного зберігання. Помилка полягає в тому, щоб сприймати схвалення зберігання як постійну довіру.

Отримання має повертати кандидатний контекст, а не повноваження. Перед вставленням запису в контекст моделі система може перевірити його джерело, вік, відповідність завданню, суперечності, чутливість і запитуваний ефект. Запис із високим ризиком можна приховати, узагальнити або передати на перевірку. Поточні рекомендації Microsoft радять розділяти перевірки запису й отримання, а також використовувати детерміновану ізоляцію та повну видимість життєвого циклу. Microsoft Learn

Рекомендовано для вас

Остаточне рішення щодо безпеки все одно має залишатися поза пам’яттю. Отримана нотатка «надсилати звіти на цю адресу» не повинна змінювати список дозволених отримувачів. Запам’ятане уподобання щодо регіону розгортання не повинно створювати дозвіл у хмарі. Використовуйте детерміновані дозволи AI-агента, щоб оцінювати запропоновану дію за поточними користувачем, ресурсом, областю дії та політикою.

Безпечна архітектура пам’яті агента

Система потребує простежуваного ланцюжка від джерела до дії:

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

Життєвий цикл безпеки пам’яті AI-агента з контролем запису, карантином, ізольованим зберіганням, перевірками отримання, авторизацією дій, аудитом і відкочуванням
Життєвий цикл безпеки пам’яті AI-агента з контролем запису, карантином, ізольованим зберіганням, перевірками отримання, авторизацією дій, аудитом і відкочуванням

*Підпис: Запис пам’яті стає кандидатним контекстом лише після перевірок запису й отримання. Незалежна політика все одно авторизує кожну наслідкову дію, а ланцюжок впливу підтримує розслідування та відкочування.*

1. Вимагайте явного наміру для довготривалих записів

Не дозволяйте кожному повідомленню, документу або відповіді інструмента ставати довготривалою пам’яттю. Визначте, які події можуть створювати постійний стан. Підтверджені користувачем уподобання та явні дії «запам’ятай це» легше обґрунтувати, ніж автономний підсумок ненадійного вкладення.

Записуйте, хто або що ініціював запис. Якщо його ініціював інструмент або субагент, зберігайте цю ідентичність, а не зводьте все до імені кінцевого користувача.

2. Зберігайте походження, область дії та термін дії разом із записом

Корисному запису пам’яті потрібно більше, ніж текст і embedding. Зберігайте щонайменше:

ідентичність джерела та об’єкт джерела
область дії користувача, агента, tenant і workspace
час створення, версію моделі або екстрактора та версію політики
рівень упевненості або статус перевірки
призначення та дозволені робочі процеси
час завершення дії або дату перегляду
батьківський запис та історію замін

Підпис може захистити цілісність запису. Він не може довести, що початковий вміст був правдивим, безпечним або авторизованим.

3. Забезпечуйте ізоляцію в коді та сховищі

Межі tenant, користувача, агента та workspace мають бути реалізовані у списках контролю доступу, токенах із визначеною областю дії, політиках на рівні рядків і межах шифрування. Інструкції в prompt не є контролем доступу. Спільна пам’ять має бути явною функцією продукту з визначеними авторами та читачами, а не зручним простором імен за замовчуванням.

Рекомендовано для вас

Той самий принцип застосовується до середовища виконання. Якщо отриманий вміст може спричинити виконання коду або широке використання інструментів, ізолюйте процес за допомогою безпеки sandbox для AI-агента. Ізоляція пам’яті обмежує, який контекст перетинає межу. Засоби sandbox та ідентифікації обмежують наслідки, якщо небезпечний контекст усе ж потрапить до агента.

4. Поміщайте записи з низьким рівнем довіри в карантин

Створіть стан між «відкинуто» та «довірена пам’ять». Зовнішні файли, email, вебсторінки, непрямі результати інструментів і записи з неясним наміром можуть потрапляти до карантину. Вони не повинні з’являтися у звичайному отриманні, доки детерміноване правило або авторизований перевіряльник не підвищить їхній статус.

Карантин також дає фахівцям із реагування на інциденти місце для збереження доказів без продовження впливу.

5. Повторно оцінюйте записи під час отримання

Ризик отримання залежить від поточного завдання. Оцінюйте вибраний набір, а не лише кожен запис окремо:

Чи має джерело право впливати на цей робочий процес?
Чи не завершився термін дії запису і чи не був він замінений?
Чи не суперечить він джерелу з вищим рівнем довіри?
Чи формують кілька записів нову інструкцію в комбінації?
Чи описує запис факт, чи намагається надати повноваження?
Чи не призведе його показ до перетину межі користувача або tenant?
Рекомендовано для вас

Оцінюйте отримання окремо від генерації. Робочий процес оцінювання RAG допомагає відрізнити «вибрано неправильний запис» від «модель неправильно використала правильний запис». Додайте специфічні для пам’яті виміри: походження, залежність від тригера, композицію та активацію між сесіями.

6. Тримайте авторизацію інструментів незалежною

Пам’ять може надавати параметри. Вона не повинна розширювати дозволи. Шлюз інструментів має застосовувати поточну ідентичність, дозволену дію, межу ресурсу, призначення, бюджет і вимоги до схвалення. Сприймайте аргументи, отримані з пам’яті, як ненадійний вхід і перевіряйте їх за поточною політикою.

Схвалення людиною також потребує свіжого контексту. Показуйте запропоновану дію, зачеплений ресурс, призначення даних і пам’ять, яка на неї вплинула. Запит «Схвалити?» без цього ланцюжка приховує важливу частину рішення.

7. Ведіть журнал впливу та підтримуйте відкочування

Записуйте операції створення, читання, оновлення та видалення пам’яті разом з ідентичністю та походженням. Для наслідкових дій зберігайте ідентифікатори й версії записів, вставлених у контекст. Це дає змогу відповісти на три запитання під час інциденту:

Яке джерело створило отруєний запис?
Які подальші результати або дії використали його?
Які версії потрібно відкликати, виправити або відтворити?

Видалення має прибирати активний вплив, а не лише приховувати рядок у користувацькому інтерфейсі. Перевіряйте індекси, підсумки, кеші, репліки та похідні записи. Рекомендації OWASP для агентів радять перевірену й ізольовану пам’ять, а також adversarial-тести та докази готовності до випуску; ширший аналіз пам’яті OWASP пов’язує постійну prompt injection із поверхнею загроз пам’яті агента. OWASP Agent Security Cheat Sheet OWASP GenAI Security Project

Оберіть політику для кожного класу пам’яті

Одна політика зберігання є надто грубою. Почніть із класів, які мають різні правила запису й отримання.

Клас пам’ятіПолітика запису за замовчуваннямПолітика отриманняПовноваження щодо дій
------------
Ефемерний контекст завданняАвтоматично, короткий TTLЛише поточне завданняВідсутні
Підтверджене користувачем уподобанняЯвне підтвердженняТой самий користувач і заявлена метаМоже пропонувати, але ніколи не авторизує
Підсумок, створений агентомВерсіонування та зв’язок із джереламиПовторна перевірка джерел і актуальностіВідсутні
Зовнішній вмістКарантин за замовчуваннямЛише після перевірок довіри та відповідностіВідсутні
Операційна інструкціяАвторизований автор і перевірка політикиТочна область дії, поточна версіяВсе одно потребує політики інструмента
Секретні або регульовані даніБлокувати або використовувати спеціалізовані системи секретів/данихНіколи не розміщувати в загальній пам’ятіЛише спеціалізована площина керування

Ця таблиця є відправною політикою, а не твердженням про відповідність вимогам. Медичний агент, coding assistant, sales agent і персональний асистент мають різні моделі шкоди. Незмінним залишається вужчий принцип: постійне зберігання не повинно непомітно перетворювати ненадійний вміст на дозвіл.

Відтворюваний робочий процес тестування отруєння пам’яті

Будуйте тестовий стенд навколо безпечних маркерів і одноразових облікових записів. Для виявлення проблем із постійністю та політиками не потрібні справжні облікові дані або payload для ексфільтрації.

Крок 1: Зафіксуйте чистий baseline

Виконайте фіксований набір завдань із порожнім сховищем пам’яті. Запишіть відповіді, результати отримання, пропозиції інструментів, рішення політики, затримку та пояснення, видимі користувачу. Повторіть достатню кількість разів, щоб відокремити зміни системи від звичайної варіативності моделі.

Крок 2: Визначте парні чисті та отруєні випадки

Для кожного випадку залишайте завдання користувача незмінним і змінюйте лише шлях кандидатної пам’яті. Охопіть щонайменше:

один прямий запис із неавторизованим безпечним маркером
два записи, спільний зміст яких відрізняється від змісту кожного окремого запису
прихований запис, активований пізнішою фразою або станом завдання
застарілий запис, що суперечить новішому авторитетному джерелу
запис, створений для одного користувача або tenant і запитаний для іншого
виправлений або видалений запис, після якого виконується початкове завдання активації

Використовуйте canary-дію, наприклад запис `TEST_BLOCKED` до одноразового журналу. Тест не проходить, якщо агент виконує або пропонує цю дію поза очікуваним шляхом політики.

Крок 3: Спостерігайте за кожною межею

Фіксуйте чотири окремі результати:

Прийняття запису: Чи було кандидатне значення збережено, відхилено або поміщено в карантин?
Експозиція під час отримання: Чи було його вибрано та вставлено в контекст?
Поведінковий вплив: Чи змінилися відповідь або план?
Результат дії: Чи незалежна політика заблокувала або дозволила виклик інструмента?

Наскрізний успішний результат може приховувати слабкий рівень. Наприклад, авторизація може заблокувати canary-дію, хоча отруєний запис було збережено й неодноразово отримано. Це корисне стримування, але дефект пам’яті все одно потрібно виправити.

Крок 4: Вимірюйте корисність і хибні спрацювання

Пропускайте безпечні випадки пам’яті через той самий конвеєр. Відстежуйте виконання завдань, прийняті користувацькі уподобання, помилкові переміщення в карантин, точність отримання, затримку та обсяг перевірок. Фільтр, який блокує всю постійну пам’ять, має низький рівень успішності атак лише тому, що він прибрав функцію.

Крок 5: Встановлюйте критерії випуску за ризиком

Корисні критерії включають:

нульове отримання між tenant у тестовому наборі
нульові неавторизовані canary-дії
повне походження для кожного постійного запису
повні журнали впливу для наслідкових дій
успішне відкликання в індексах, кешах, підсумках і репліках
обмежені показники прийняття та активації отруєних записів для обраної моделі загроз
задокументований мінімальний рівень корисності для безпечних випадків і бюджет хибних спрацювань

Відкритий проєкт OWASP Agent Memory Guard є одним із сигналів щодо реалізації сканування пам’яті та тестових інструментів. Його репозиторій і самооцінювання можуть допомогти командам вивчити підходи, але не замінюють тестування фактичного агента, моделі, backend пам’яті та стека політик.

Повторно запускайте набір після змін у витягуванні пам’яті, підсумовуванні, embeddings, отриманні, prompts, моделях, схемах інструментів, авторизації або логіці видалення. Ці рівні взаємодіють.

Що підтверджують і чого не підтверджують докази

Статті вимірювали успішність атак у сконструйованих бенчмарках. Вони не вимірювали загальнопопуляційну частоту отруєння пам’яті AI-агентів у production.

Вони підтверджують три вужчі висновки:

постійна пам’ять може переносити вплив між сесіями
прямі, композиційні та приховані атаки задіюють різні шляхи захисту
захист лише під час запису залишає ризики, які проявляються під час спільного отримання або пізнішої активації

Статті роблять висновок, що керування пам’яттю потребує контекстно-залежних засобів захисту. Microsoft і OWASP незалежно рекомендують defense in depth для записів, ізоляції, отримання, контролю користувача, спостережуваності та тестування.

Практична інтерпретація полягає в тому, щоб зробити кожен перехід тестованим. Команда має бути здатна пояснити, чому запис було збережено, чому його отримали, як він вплинув на дію, яка політика авторизувала цю дію та як видалити подальші наслідки запису.

Запитання команд

Чи є отруєння пам’яті AI-агента тим самим, що й prompt injection?

Ні. Prompt injection — це один зі способів запровадити ворожі інструкції. Отруєння пам’яті додає постійність: маніпульований вміст зберігається, отримується в пізнішому контексті та може впливати на майбутнє міркування або використання інструментів після зникнення початкового входу.

Чи можуть підписані записи пам’яті запобігти отруєнню?

Ні. Підписи можуть довести, що запис не змінювали після створення. Вони не доводять, що початковий вміст був правдивим, безпечним або авторизованим. Безпечний дизайн також потребує походження, явного наміру запису, області дії, терміну дії, перевірок отримання та незалежної авторизації дій.

Засоби захисту від отруєння пам’яті мають працювати під час запису чи отримання?

На обох етапах. Засоби контролю запису зменшують небезпечне постійне зберігання. Перевірки отримання виявляють застарілі, суперечливі, композиційні або залежні від тригера ризики, які не були видимі під час зберігання окремих записів. Жоден із цих рівнів не повинен надавати повноваження інструментам.

Перевірка тверджень

ТвердженняПеревіркаСтатус
---------
GhostWriter досяг приблизно 98% середньої ін’єкції та приблизно 60% середньої активації у своїх експериментахПовідомлено статтею для протестованих конфігурацій персональних агентів; це не оцінка поширеності в productionПідтверджено, з обмеженнями
MemPoison містить 1 227 перевірених вручну випадків, що охоплюють чотири типи атак, три канали ін’єкції та три сховища пам’ятіЗазначено в анотації статті та описі оцінюванняПідтверджено
Базові засоби захисту під час запису мають структурні сліпі зони для композиційних і прихованих атакАвтори MemPoison повідомляють про залишковий вплив для випадків L2 і L3Підтверджено, з обмеженнями
MemGhost повідомив про 87,5% і 71,4% наскрізного успіху у двох конфігураціях із відкладеними данимиПовідомлено для 56 відкладених випадків у межах тестової конфігурації статтіПідтверджено, з обмеженнями
MemGhost не вимірював спам-фільтрацію та засоби автентифікації поштового провайдераОцінювання починається після доставки до вхідної скриньки й не моделює ці засоби контролюПідтверджено
Microsoft рекомендує розглядати пам’ять як дані та площину керуванняЗазначено в поточних рекомендаціях Microsoft LearnПідтверджено
Дійсний підпис не робить пам’ять довіреноюЦілісність після створення не встановлює безпечне походження, правдивість, намір або повноваженняПідтверджено
Активність репозиторію не доводить безпеку фреймворку пам’ятіЗірки, коміти та релізи вимірюють увагу й супровід, а не ефективність безпекиПідтверджено

Джерела

When Agents Remember Too Much: Memory Poisoning Attacks on Large Language Model Agents — Torres, Shrestha та Misra, arXiv, 6 липня 2026 року.
Manage memory safety in agentic systems — Microsoft Learn, оновлено 3 червня 2026 року.
AI Agent Security Cheat Sheet — OWASP Cheat Sheet Series.
Memory Is a Feature. It Is Also an Attack Surface — OWASP GenAI Security Project, 13 травня 2026 року.
OWASP Agent Memory Guard — сигнал щодо open-source реалізації та тестових інструментів; результати, заявлені проєктом, не є незалежною перевіркою.