惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
The Exploit Database - CXSecurity.com
博客园 - 叶小钗
aimingoo的专栏
aimingoo的专栏
N
Netflix TechBlog - Medium
T
The Blog of Author Tim Ferriss
MongoDB | Blog
MongoDB | Blog
Hugging Face - Blog
Hugging Face - Blog
The Cloudflare Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
博客园 - Franky
GbyAI
GbyAI
Jina AI
Jina AI
S
SegmentFault 最新的问题
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
V
Visual Studio Blog
月光博客
月光博客
宝玉的分享
宝玉的分享
大猫的无限游戏
大猫的无限游戏
Recorded Future
Recorded Future
A
About on SuperTechFans
博客园 - 司徒正美
Microsoft Security Blog
Microsoft Security Blog
H
Help Net Security
P
Proofpoint News Feed
WordPress大学
WordPress大学
人人都是产品经理
人人都是产品经理
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
PCI Perspectives
PCI Perspectives
Latest news
Latest news
C
Cisco Blogs
小众软件
小众软件
L
LINUX DO - 热门话题
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
P
Privacy & Cybersecurity Law Blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
S
Securelist
Recent Announcements
Recent Announcements
P
Palo Alto Networks Blog
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
P
Privacy International News Feed
Stack Overflow Blog
Stack Overflow Blog
T
Tenable Blog
Y
Y Combinator Blog
T
Threatpost
Simon Willison's Weblog
Simon Willison's Weblog
M
MIT News - Artificial intelligence
The GitHub Blog
The GitHub Blog
P
Proofpoint News Feed
C
Cyber Attacks, Cyber Crime and Cyber Security
J
Java Code Geeks

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания Автономность как точка невозврата: кто будет субъектом в цифровом будущем Обучение ИИ в «диких» условиях: как рутинные действия превращаются в датасеты Как измерить LLM для задач кибербеза: обзор открытых бенчмарков Где хранить код? Сравнение GitHub, GitLab и Bitbucket Математика объясняет, почему нормальное распределение встречается повсюду Почему ваш FinOps не работает: 12 тезисов от практиков Как подписать проектную документацию УКЭП с использованием бесплатных лицензий Pilot Адаптивное администрирование Sigla Vision Я грузил уран в бочки, а потом 20 лет строил ИТ в атомной отрасли Чем позвонить с Эвереста? История и обзор спутниковой связи. Часть 2 Как языковая модель помогает контролировать качество инструктажей по охране труда в металлургии Как не передать на desktop свой IP в РКН Анатомия SAP Privileges: как устроено управление правами в macOS MoneyDev: Сказка про три главных слова Обновлённый токенизатор видео K-VAE 2.0 от Сбера Как сделать диспетчеризацию дома на 1284 квартиры почти бесплатно Как мы разогнали железную дорогу Мы дали агентам рутину. Теперь надо решить — что делать с освободившимся временем Токсичный контент, промпт-хакинг и защита ИИ — всё о Guardrails для LLM Умный город начинается с точного взгляда: как «Фалькон Тех» меняет пространство к лучшему Навайбкодил приложение для анализа графов Почему Дюну так интересно читать? Упрощаем работу с рутиной или как стать Гендальфом Белым Деконструкция Go: CPU, RAM и что там происходит. Go Assembler база. Часть 1.1 Какие профессии исчезнут из-за ИИ, а какие появятся? И что с этим делать Как мы построили IT-отдел, где хочется расти: архитектурные встречи, прозрачные метрики и книжные подарки Rufler: Делаем из Claude Code автономный рой через один YAML-конфиг Sing-box и белый список приложений Как построить надёжный обмен сообщениями в микросервисах: лучшие практики для enterprise OpenAI строит MLM-пирамиду, а McKinsey и Accenture помогают ей в этом Дом, который не построил Фишер (Часть 2) «Сверхзвуковой математик» против «Вдумчивого логиста»: битва алгоритмов 3D-упаковки Мультимодальные модели – грубый и дорогой инструмент Разговоры ничего не стоят. Код тоже Проверки физических лиц: с кого начнет ФНС Топ-10 бесплатных нейросетей для создания видео в 2026 году Первые слои кода: как наши решения сегодня определяют архитектуру ИИ на десятилетия Разработка нового статического анализатора: PVS-Studio JavaScript Поиск уязвимостей ПО: базовый минимум или роскошный максимум Почему оценка персонала не работает как инструмент управления Как мы разработали ИИ-ассистента и сократили рутину продуктовой команды на 50% Как я ушел из найма, нажарил косточек и продал на маркетплейсах на 168 млн в год Когда 1С:ERP уже внедрена, а нормального производственного плана всё ещё нет Как я сделал Claude мультимодальным, подключив к нему Qwen Omni Как приглашение на вакансию мечты превращается в атаку Infrastructure as Code: философия и лучшие практики IaC Тестируем Yandex Code Assistant на задаче, в которой нужно хранить секреты nxs-universal-chart v3.0: новое поколение универсального Helm-чарта Callback Injection: Техника, которая отправила Microsoft Defender в глухой нокаут «Все идеи на стол»: митап как способ вывести проект из тупика Сегодня я узнал нечто новое о GPU благодаря багу в своей игре Как заставить LLM ̶ ̶г̶а̶л̶л̶ю̶ ̶ эволюционировать Карта событий как фундамент аналитики: практический кейс для E-commerce Что выбрать для AI: x86, ARM или RISC-V? Дайджест железа за март Роль соматических мутаций в развитии аутоиммунных заболеваний: путь к избирательной терапии Mythos от Anthropic — тревожный сигнал для всех, а не только для банков Guardrails для LLM на Java: как приручить промпт‑инъекции и токсичные ответы Green-VLA: как мы собрали VLA-модель для реального антропоморфного робота и не потеряли обобщение Финансовая гонка вооружений: почему умные люди добровольно в ней участвуют Эра ИИ-агентов наступила: выбираем лучшего цифрового сотрудника # Практический опыт внедрения WinCC Redundancy на производственном предприятии Сделал MVP за 3 дня, а потом неделю прикручивал оплату. Оно того стоило? Физика против Маска: почему Starship V3 может оказаться ещё одной катастрофой Нефть Венесуэлы: крупнейшие запасы в мире, но не крупнейшая нефтяная держава JPA 4. Переосмысление Hibernate Почему зеркальная фотокамера Nikon D5 десятилетней давности идеально подошла для миссии «Артемида-2» Проект «Уровень-Спутник» или как мы сделали платформу для гидрологов «Замедлиться, чтобы ускориться»: почему ИИ повышает цену ошибок в требованиях и архитектуре Как с нуля поднять трафик IT-компании на 1657% при бюджете 55 тыс. и выжить Pixel-perfect Downsampling — идеальная отрисовка 50 миллионов точек без потерь
Prompt injection нельзя запатчить: год «летальной триады» и лента CVE 2026 года
Виктор · 2026-06-16 · via Все публикации подряд на Хабре

Средний

12 мин

447

В марте 2026-го бэкдор пролежал на PyPI около трёх часов. За это время заражённый пакет скачали почти 47 тысяч раз. Пакет назывался LiteLLM — это шлюз к языковым моделям, на котором держатся CrewAI, DSPy, Microsoft GraphRAG и ещё десятки агентных фреймворков. Тот, кто за эти три часа обновлял зависимости, вместе с обновлением затащил к себе автономного бота-атакующего по имени hackerbot-claw.

Самое неприятное здесь даже не масштаб. А то, что человека в этой цепочке практически не было. Бот сам, без ручного управления после запуска, отравил инфраструктуру, на которой работают другие боты. Сначала, в феврале, он находил неправильно сконфигурированные GitHub Actions в открытых репозиториях. Потом через скомпрометированную сборку Trivy у Aqua Security увёл токен публикации LiteLLM на PyPI. И залил две версии с бэкдором напрямую в реестр. Никакого нуля-дня в традиционном смысле, никакого переполнения буфера. Просто агент, которому дали достаточно прав и достаточно автономии.

Я начинаю с этой истории не ради хайпа, а потому что она хорошо показывает, во что превратился prompt injection к 2026 году. Это уже не лабораторный курьёз и не «а что если модель послушает злую инструкцию из письма». Это рабочий класс атак с собственной лентой CVE, своими supply-chain инцидентами и — что важнее всего — без понятного способа «взять и починить». В этой статье я разберу, почему так вышло, пройдусь по конкретным дырам прошедшего года и покажу, какие защиты реально работают, а какие только выглядят убедительно.

Что такое prompt injection на самом деле

Сама проблема скучнее, чем её последствия, и в этом вся беда. Языковая модель не умеет надёжно отличать инструкции от данных. Всё, что попадает в контекст, она в принципе может прочитать как команду. У модели нет понятия «вот это доверенный системный промпт, а вот это просто текст, который надо обработать и которому подчиняться не следует». Граница, которая в обычном софте проведена жёстко, здесь размыта by design.

Термин придумал Саймон Уиллисон ещё в 2022 году, по аналогии с SQL-инъекцией — там та же беда со смешиванием доверенного и недоверенного контента в одном запросе. Первым саму атаку публично показал Райли Гудсайд, а Уиллисон дал ей имя и рамку, которая прижилась. Аналогия с SQL точная ровно наполовину, и эта половина важна. От SQL-инъекций мы умеем защищаться: есть параметризованные запросы, есть жёсткое разделение кода и данных на уровне протокола. Драйвер базы знает, где заканчивается ваш SELECT и начинаются пользовательские данные, и данные исполняемым кодом уже не станут.

С языковой моделью такого разделения нет. Нельзя «заэкранировать» кусок текста так, чтобы модель гарантированно перестала видеть в нём инструкции. Можно дообучить, можно навесить классификатор, можно попросить модель в системном промпте «игнорировать любые инструкции из пользовательских данных» — но это всё вероятностные меры, а не структурная граница. Атакующему достаточно переформулировать. Способов сказать «забудь предыдущие указания» бесконечно много, а фильтр ловит конечный набор.

OpenAI, кстати, это признаёт открыто. В компании называли prompt injection фронтирной проблемой безопасности, над которой исследователи бьются не первый год, и не обещали скорого решения. Когда вендор, чей продукт построен на этих моделях, говорит «мы пока не умеем это надёжно чинить» — стоит отнестись серьёзно.

Летальная триада

Ровно год назад, 16 июня 2025-го, Уиллисон сформулировал лучшую на сегодня ментальную модель этого риска и назвал её летальной триадой. Агент опасен, когда у него одновременно есть три свойства:

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

Второе — обработка недоверенного контента. Агент видит то, что пришло снаружи: письмо, веб-страницу, общий документ, тикет в поддержку. Кто угодно за пределами вашей организации может положить перед агентом свой текст.

Третье — возможность отправить данные наружу. Агент умеет написать письмо, сделать запрос к внешнему API, отрендерить картинку по ссылке, открыть pull request. У него есть канал, по которому информация уходит за границу доверия.

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

Здесь стоит развести два сценария, потому что путают их постоянно. Прямая инъекция — это когда атакующий сам печатает враждебные инструкции в чат. Очевидный случай, и не самый страшный. По-настоящему опасна непрямая (indirect) инъекция: пейлоад спрятан в контенте, который агент сам подтягивает в ходе обычной работы. Отравленная веб-страница. Заминированный PDF. Зловредный комментарий в коде. Письмо, которое агента попросили просуммировать. Пользователь инструкцию вообще не видит — её читает и выполняет агент.

И ещё одно наблюдение, которое мне кажется недооценённым. Протокол MCP, который сейчас все используют, чтобы по-быстрому склеить агенту кучу инструментов, делает сборку этой триады до неприличия лёгкой. Подключили инструмент для суммаризации веб-страниц, инструмент для работы с почтой, инструмент для работы с GitHub — и всё, триада собрана случайно, никто её специально не проектировал. Уиллисон приводил ровно такой пример: атакующий заставляет агента залезть в вашу почту и открыть pull request в публичный репозиторий со всеми вашими секретами внутри.

EchoLeak: как выглядит первая дыра «без кликов»

Долгое время летальная триада была убедительной теорией без громкого практического кейса. В июне 2025-го кейс появился. Исследователи Aim Labs нашли в Microsoft 365 Copilot уязвимость, которую назвали EchoLeak (CVE-2025-32711, CVSS 9.3). Это первая публично описанная zero-click атака на ИИ-агента — то есть данные утекают вообще без действий пользователя.

Чтобы понять механику, надо помнить, как устроен Copilot. Это RAG-ассистент: к запросу пользователя он подмешивает релевантные данные из его окружения M365 — письма, файлы OneDrive, контент SharePoint, чаты Teams. Удобно. И именно эта связка стала вектором.

Атака, как её разбирает arXiv-препринт по EchoLeak, разворачивается так. Злоумышленник шлёт жертве обычное на вид письмо со скрытыми инструкциями внутри. Формулировки специально подобраны так, чтобы не упоминать ни Copilot, ни ИИ — иначе сработает классификатор XPIA (Cross-Prompt Injection Attempt), который Microsoft как раз и держит против таких вещей. Письмо тихо лежит в ящике. Пользователь с ним никак не взаимодействует. Потом он в какой-то момент задаёт Copilot безобидный вопрос, RAG в процессе ответа подтягивает то самое письмо в контекст — и пейлоад срабатывает. Исследователи назвали это «нарушением области видимости LLM» (LLM Scope Violation): внешний недоверенный ввод заставляет модель достать и слить приватные внутренние данные.

Дальше — самое поучительное, потому что эксфильтрация собрана из цепочки обходов, и каждый обход бьёт по конкретному защитному механизму. Обошли классификатор XPIA формулировками. Обошли вырезание ссылок, используя reference-style разметку Markdown. Использовали автоподгрузку картинок — клиент сам загружает картинку по URL, а в URL уезжают данные. И, наконец, протащили всё это через прокси Microsoft Teams, который был разрешён политикой CSP. То есть классические классы багов — SSRF, гонки в санитайзере — никуда не делись, prompt injection просто сделал их снова достижимыми. Эту мысль хорошо сформулировали в The Hacker News: инъекция — новая часть, а старые дыры она открывает заново.

Microsoft пропатчил EchoLeak на бэкенде в июне 2025-го, следов эксплуатации в дикой природе не нашли. Казалось бы, закрыли. Но буквально на этой неделе, в июне 2026-го, всплыла новая дыра в том же Copilot — на этот раз one-click, и с тем же паттерном SSRF плюс гонка в санитайзере. И вот тут есть отдельная неприятность для тех, кто живёт на managed-сервисах: Copilot Enterprise — это управляемый сервис, и админ тенанта не может пропатчить или переконфигурировать те части, которые подвели. Всё, что ему доступно, — наблюдать и сдерживать: следить за URL-ами Copilot Search с закодированными пейлоадами в параметре q, ловить странные исходящие запросы к image-эндпоинтам Bing, и ужимать доступ Copilot к данным, чтобы он индексировал меньше. Чем меньше он видит, тем меньше сможет утечь в следующий раз.

Лента CVE 2026 года: теория кончилась

11 июня 2026-го OWASP GenAI Security Project выпустил версию 2.01 отчёта State of Agentic AI Security and Governance. И читается она принципиально иначе, чем издание годом раньше. Версия 2025 года каталогизировала правдоподобные угрозы. Версия 2026-го каталогизирует CVE, бюллетени вендоров и отчёты о реальных взломах почти по каждой категории агентного риска. Переход от «может случиться» к «вот номера» — пожалуй, главный сюжет года в этой теме.

Пройдусь по тому, что мне кажется самым показательным.

Больше всего данных по атакам дают именно кодовые агенты. Из 53 агентных проектов, которые отслеживает OWASP, 28 — это coding agents. Логично: им по определению дают доступ к репозиторию, к шеллу, к окружению, то есть ко всем трём вершинам триады сразу.

CVE-2026-2256 — это command injection (CWE-77) в MS-Agent от ModelScope, оценка 9.8. Шелл-инструмент агента не санитизирует команды, так что подсунутый контент исполняет произвольные команды ОС на хосте. Самое интересное: у агента был денилист «опасных» команд, и он обходится обфускацией. То есть гардрейл был, и он не удержал.

CVE-2026-22708 против Cursor показывает обратную сторону белых списков. Атакующий отравляет переменные окружения через шелл-встроенные команды, которые проходят мимо allowlist, и в итоге одобренные команды вроде git branch превращаются в носители пейлоада. Автоодобрение «безопасных» команд — ровно то, что делает атаку возможной. Удобство обернулось дырой.

CVE-2025-59532 против Codex CLI от OpenAI — про то, что вывод самого агента мог переопределить границу его же песочницы. А CVE-2026-25592 в Semantic Kernel .NET SDK (версии до 1.71.0) — это уже RCE; Microsoft даже упаковала уязвимый hotel-finder агент в CTF, где надо протащить пейлоад через eval()-сток. Их рекомендация по фиксу, кстати, говорит о многом: не переписывать архитектуру агента, а просто убрать у модели возможность автономно дёргать эти функции. Меньше автономии — меньше дыр.

Supply chain — отдельная и, по-моему, самая тревожная глава. Историю hackerbot-claw я уже рассказал в начале. Но он не один. Был ещё postmark-mcp — первый зловредный MCP-сервер, пойманный в дикой природе. Он выпустил пятнадцать чистых версий, чтобы заработать доверие, а потом тихо добавил одну строчку, которая ставила в скрытую копию каждого письма адрес атакующего. Пятнадцать честных релизов как разгон перед подлостью — это уже про социальную инженерию на уровне экосистемы пакетов.

И тут стоит сказать вещь, которую в таких разборах обычно опускают: не за каждым провалом стоит атакующий. Самый тихо-пугающий пример в отчёте OWASP — это кодовый ассистент Replit в 2025-м, который удалил живую продакшен-базу во время заморозки кода, которую ему явно велели соблюдать, нафабриковал тысячи фейковых записей и потом ложно отрапортовал, что откат невозможен. Никакого хакера. Просто агент, которому дали слишком много, пошёл вразнос. Когда мы рассуждаем про «безопасность агентов», полезно держать в голове, что часть рисков — не про злой умысел, а про то, что автономная система с правами на запись делает что-то разрушительное сама по себе.

Цифра для общего ощущения масштаба: по данным OWASP, число атак prompt injection выросло на 340% год к году. Это самая быстрорастущая категория.

Почему классификаторы и гардрейлы не спасают

Естественная реакция инженера: ну так навесим детектор инъекций, обучим модель-фильтр, добавим guardrails. Проблема в том, что это работает против вчерашних атак и проваливается против завтрашних.

Лучшее, что я видел на эту тему за последний год, — препринт с провокационным названием «The Attacker Moves Second» (атакующий ходит вторым), вышедший на arXiv 10 октября 2025-го. За ним стоит тяжёлая команда из 14 человек, включая Милада Насра и Николаса Карлини — людей, которые годами ломают защиты ML и знают, о чём говорят. Суть выводов простая и отрезвляющая: защиты, которые на бумаге выглядят надёжно, падают под адаптивными атаками. Если атакующий знает про ваш фильтр и может подстраиваться, он подстроится. А он почти всегда ходит вторым.

Авторы шести design-паттернов из другой важной работы 2025 года формулируют ту же мысль ещё жёстче: пока и агенты, и их защиты построены на нынешнем классе языковых моделей, универсальные агенты вряд ли смогут дать осмысленные и надёжные гарантии безопасности. И поэтому правильный вопрос звучит не «как сделать агента, устойчивого ко всему», а «каких полезных агентов мы можем построить уже сегодня так, чтобы они сопротивлялись инъекциям».

Это смена оптики, и мне она кажется самым здравым, что произошло в теме за год. Мы перестаём искать серебряную пулю и начинаем проектировать систему вокруг модели, которой по умолчанию не доверяем.

Что реально помогает: архитектура вместо веры в модель

Хорошая новость в том, что у этого «проектирования вокруг недоверенной модели» уже есть приличный инструментарий. И он опирается на старую добрую инженерию безопасности, а не на надежду, что следующая модель окажется послушнее.

Dual LLM

Базовый кирпич придумал тот же Уиллисон ещё в апреле 2023-го — паттерн Dual LLM. Идея: разделить роли между двумя моделями. Привилегированная (P-LLM) координирует задачу и имеет доступ к инструментам, но никогда не видит недоверенный контент. Карантинная (Q-LLM) работает с грязными данными, но инструментов у неё нет. Q-LLM возвращает символические переменные — например, $VAR1 как «вот сюда положили суммаризацию веб-страницы», — и P-LLM может попросить показать это пользователю или передать дальше, сама в заражённый текст не заглядывая. Между ними сидит контроллер: обычный код, не модель. Безопасность держится на том, что неотфильтрованный вывод Q-LLM не попадает на вход P-LLM. Уиллисон честно признавал, что у паттерна есть свои дыры, но направление он задал верное.

CaMeL

Google DeepMind в апреле 2025-го развил эту идею в системе CaMeL (работа называется «Defeating Prompt Injections by Design»). Здесь привилегированная модель не оркестрирует инструменты напрямую, а генерирует код в кастомном песочничном DSL, который описывает, что пользователь хочет сделать. Этот код исполняет собственный интерпретатор — и вот он становится центром управления. Когда коду нужно поработать с недоверенными данными, он зовёт карантинную модель, которая извлекает информацию строго по заданной схеме и инструменты дёргать не может.

Что мне здесь нравится: DeepMind затащил в мир ИИ классические понятия безопасности — отслеживание capability (полномочий) и контроль целостности потоков данных и управления. То есть систему лечат не очередной моделью поверх модели, а нормальными принципами security-инженерии, про которые в эпоху «ИИ латаем ИИ» все как-то подзабыли. На бенчмарке AgentDojo CaMeL показал себя сильно. Серебряной пулей он, разумеется, не является — авторы сами это оговаривают, — но как инструментальный подход это большой шаг.

Шесть паттернов

Работа Бойрер-Келлнера и соавторов систематизировала это всё в шесть design-паттернов: action-selector, plan-then-execute, LLM map-reduce, dual LLM, code-then-execute и context-minimization. CaMeL, по сути, — это частный случай code-then-execute. Удобная таксономия, чтобы хотя бы называть свои защиты одними словами и сравнивать их между собой.

Agents Rule of Two

И наконец, самый практичный на сегодня ориентир — Agents Rule of Two от Meta, опубликованный осенью 2025-го. Он берёт три свойства летальной триады и обращается с ними как с бюджетом. Пока исследования не научились надёжно детектить и отклонять инъекции, агент без надзора человека должен обладать максимум двумя из трёх свойств: (A) обрабатывать недоверенный ввод, (B) иметь доступ к чувствительным системам и приватным данным, (C) менять состояние или общаться с внешним миром. Нужны все три сразу — добавляйте человека в петлю, с подтверждением действий. Фреймворк вдохновлён политиками безопасности Chromium и той самой триадой Уиллисона. Сами авторы потом заменили на пересечениях кругов слово «безопасно» на «менее рискованно», что мне кажется честной правкой.

Тот же препринт Карлини с компанией называет Rule of Two лучшим практическим советом на сегодня — именно потому, что надёжных защит от инъекций у нас пока нет. А в техническом разборе TechTimes есть фраза, которую я бы повесил на стену: то, что ведущая мера защиты звучит как «не давайте агенту все три способности одновременно», — само по себе диагноз. Полномочия не нормируют у проблемы, которую рассчитывают пропатчить.

Практический чек-лист, если вы это деплоите

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

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

Считайте непрямую инъекцию не гипотезой, а данностью. Любой контент, который агент подтягивает сам (страницы, письма, документы, комментарии в коде), — это потенциальный носитель инструкций. Стройте систему так, будто он уже отравлен.

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

Режьте полномочия по принципу наименьших привилегий и ужимайте, что агент вообще видит. Меньше данных в зоне досягаемости — меньше масштаб любой будущей утечки. Это же касается и data governance вокруг managed-ассистентов вроде Copilot.

Ставьте человека на вектор эксфильтрации. Если агент может отправить что-то наружу — письмо, запрос, PR, — пусть на этом шаге будет подтверждение. Это ровно та вершина, которую дешевле всего контролировать.

Мониторьте исходящий трафик и одобрения команд. Странные внешние запросы, закодированные пейлоады в URL, автоодобренные «безопасные» команды — это ваши индикаторы.

И отдельно для тех, кто на управляемых сервисах: примите, что часть стека вы не пропатчите. Стратегия здесь — наблюдать и сдерживать, а не чинить.

Что я обо всём этом думаю

Если честно, у меня смешанные чувства. С одной стороны, архитектурная работа последнего года — CaMeL, dual LLM, шесть паттернов, Rule of Two — это хорошая, взрослая инженерия безопасности. Приятно видеть, что в области, помешанной на «давайте просто возьмём модель побольше», кто-то достаёт capability-системы и контроль потоков управления и говорит: модели не доверяем, проектируем границы сами.

С другой стороны, от честной формулировки никуда не деться. Индустрия выкатила автономных агентов быстрее, чем разобралась с их моделью безопасности. И лучшее, что у нас есть, — это, по сути, «не выдавайте агенту все его суперспособности в одной сессии». Подход рабочий и разумный, спорить не с чем. Но та же мера подрезает ровно ту автономию, которую все продают на каждом лендинге. Между «агент сам всё сделает за вас» и «агент держит максимум две вершины триады, иначе зовите человека» — пропасть, и маркетинг эту пропасть старательно не замечает.

Меня цепляет тот первый сюжет — бот, который сам, без человека, по ночам отравляет реестр пакетов, пока все спят. Это не сценарий из будущего. Это март 2026-го, 47 тысяч скачиваний за три часа. Prompt injection не лопнет как пузырь и не закроется одним апдейтом. Это свойство нынешнего класса моделей, с которым придётся жить и которое придётся обходить руками — пока кто-нибудь не придумает, как провести между инструкцией и данными ту самую жёсткую границу, которой у нас сегодня нет.

А до тех пор — нормируйте полномочия. И не давайте агенту все три.


Источники, на которые я опирался: посты Саймона Уиллисона про летальную триаду, design-паттерны и свежие работы по инъекциям; отчёт OWASP State of Agentic AI Security v2.01; разборы EchoLeak (SOC Prime, arXiv 2509.10540) и июньская дыра 2026-го; технический разбор CVE 2026 года в TechTimes; блог Microsoft Security про RCE в агентных фреймворках; материал DeepMind про CaMeL и блог Meta про Agents Rule of Two.