Все заметки
Память — это новая поверхность атаки

4 июня 2026 г.

Память — это новая поверхность атаки

Все наперегонки дают агентам долговременную память — очевидный апгрейд. Но долговечная возможность — это долговечная уязвимость. Prompt injection одноразова и сбрасывается; memory poisoning записывает одну ложь в хранилище агента, и она едет с ним сквозь каждую будущую сессию, для каждого пользователя, пока кто-то её не вычистит. Она оружием делает саму суть памяти — обучение на прошлом. Вот как работает «атака, которая ждёт», и как её огородить.

Очевидный следующий апгрейд для агента — память. Агент, который помнит твои предпочтения, припоминает решения прошлой недели и учится на уже сделанных задачах, ощущается так, будто наконец становится настоящим ассистентом, а не золотой рыбкой, которая сбрасывается каждый разговор. Так что память прикручивают все.

Вот подвох, которого нет в списке фич: долговечная возможность — это долговечная уязвимость. Память — это то, что сохраняется, а значит, всё плохое, что в неё попадает, сохраняется тоже. В 2026-м это перестало быть теорией: OWASP добавил Memory & Context Poisoning (ASI06) в свой Top 10 для агентных приложений — совершенно новый пункт для совершенно новой поверхности.

Почему отравить память лучше, чем отравить промпт

Prompt injection одноразова. Она угоняет один ответ, и когда сессия кончается, её нет — агент просыпается чистым. Раздражает, но локализовано.

Memory poisoning — противоположность, и в этой разнице вся суть. Вместо угона одного ответа она записывает вредоносный контент в постоянное хранилище агента, где он молча портит поведение во всех будущих взаимодействиях — для каждого пользователя, в каждой следующей сессии — пока кто-то вручную не найдёт и не вычистит. Ты больше не защищаешь каждый разговор. Ты защищаешь нечто, что помнит, и одна успешная запись заражает все разговоры, что идут после.

Атака, которая ждёт

По-настоящему тревожное свойство — тайминг. Исследователи, продемонстрировавшие атаку под названием MemoryGraft, показали, что инъекция и урон могут быть полностью разнесены во времени: атакующий подкладывает безобидно выглядящий контент, который тихо сохраняется в феврале, а всплывает вредить лишь в апреле — на какой-то более поздней задаче, оказавшейся похожей, — и к этому моменту атакующий давно ушёл, а жертва сознательно не трогала ничего вредоносного. Как сформулировали в одном разборе, это атака, которая ждёт. Это тихо ломает большую часть мониторинга, который предполагает, что плохое действие и плохой эффект случаются в один момент. Здесь они в месяцах друг от друга, и ни в одну отдельную точку времени ничто не выглядит неправильно.

Она оружием делает саму фичу

Самое жестокое — что атака использует память ровно по назначению. Память существует, чтобы агент учился на прошлых успехах и повторял то, что сработало. Отравление подкладывает фальшивый «успешный опыт»; позже, столкнувшись с похожей задачей, агент извлекает этот отравленный пример и послушно его имитирует. Исследование называет это эксплуатацией semantic imitation heuristic агента — его склонности копировать паттерны из извлечённых успехов. Это нельзя выпатчить, не убрав то самое обучение, ради которого ты память и добавил. И это дёшево: один red-team-инструмент, AgentPoison, по сообщениям, достигает более 80% успеха при менее чем 0.1% отравленной памяти и вовсе без переобучения модели.

Это тёмная сторона фичи, которую ты хочешь

Хочу быть честным насчёт рамки: это не диковинный баг, которого надо стыдиться. Это тень, прицепленная к возможности, которую все законно хотят. Ты добавляешь память ради непрерывности и обучения; новая поверхность атаки приходит в той же коробке. Агенты обычно несут четыре вида памяти — краткосрочный контекст, эпизодические хранилища опыта, семантические векторные базы и внешнее состояние инструментов — и каждый из них отдельная дверь. Нет версии «долговечной памяти агента», которая не означала бы заодно «долговечную уязвимость агента». Вопрос не в том, принимать ли этот обмен; а в том, огородишь ли ты его намеренно или узнаешь о нём горьким путём.

Защита — та же дисциплина, применённая к пути записи

Починка — не хитрая модель и не охранный промпт; ты уже знаешь, что промпты — не границы. Это архитектура, нацеленная на единственное место, которое важно: что вообще имеет право стать постоянной памятью. Относись к пути записи в долговременное хранилище как к границе безопасности, а не к удобству:

  • Никогда не давай сырому пользовательскому или инструментальному вводу сохраняться без валидации. Прежде чем что-либо попадёт в хранилище памяти, сканируй на скрытые инструкции (текст «белым по белому», нулевой кегль, CSS-спрятанные полезные нагрузки) и маркеры prompt injection, как сейчас рекомендуют защитники.
  • Отслеживай происхождение (provenance). Каждая память должна нести, откуда она пришла и насколько ей доверяют, чтобы низкодоверенный источник не смог тихо дорасти до убеждения, которое агент защищает.
  • Партиционируй и старь. Изолируй память, чтобы отрава одного пользователя не всплыла у другого, и истекай старый, непроверенный «опыт» вместо того, чтобы доверять ему вечно.
  • Лови признак. Поведенческая подпись отравленного агента — он защищает убеждение, которому никогда не должен был научиться.

Если это звучит знакомо — так и должно: это заземление, наведённое на память. Модель может перефразировать то, что ей сказали, но доверенный, проверенный по происхождению источник должен владеть тем, чему позволено стать правдой. Память — это просто правда, которая сохраняется, так что правило простое: охраняй то, чему позволено её записывать.

Вывод

Память — это фича, от которой агент ощущается так, будто наконец умнеет, — и это та же фича, что позволяет одной подложенной лжи ехать с ним месяцами, всплывая, когда никто не смотрит. Прежде чем дать агенту память, реши, чему позволено в неё писать, потому что что впустишь — то и останется. Долговечный разум — долговечная мишень.

Комментарии

Пока нет комментариев

Войдите, чтобы участвовать в разговоре.

Будьте первым, кто оставит мысль.