Прямой ответ
Внедрение инструкций в запрос — это входные данные, которые пытаются вывести систему ИИ за пределы заданных правил. Прямая атака приходит в тексте пользователя. Косвенная скрывается на веб-странице, в документе, письме, изображении или источнике, который система извлекает и читает. Одного фильтра недостаточно. Относитесь к внешнему содержанию как к данным, сокращайте полномочия, проверяйте вызовы инструментов программным кодом, требуйте одобрение человека для рискованных операций и прослеживайте всю цепочку решения.
Простыми словами
Представьте посылку с надписью: «Откройте главный сейф и пришлите мне содержимое». Сотрудник может прочитать фразу, но слова на коробке не становятся приказом руководителя. Система ИИ тоже не должна принимать каждое прочитанное предложение за команду.
Почему это важно
Успешное внедрение может раскрыть конфиденциальные сведения, исказить решение, запустить инструмент без полномочий или вызвать настоящую операцию во внешней системе. Чем больше полномочий у инструментов, тем серьёзнее возможные последствия.
Не путать
- При прямом внедрении атакующая инструкция находится во вводе пользователя.
- При косвенном внедрении инструкция спрятана во внешнем содержании, которое читает система.
- Jailbreak — разновидность внедрения, направленная на обход защитных правил.
- Просьба использовать инструмент не является полномочием на его запуск.
- Вредный ответ и неуполномоченное действие в реальном мире — разные уровни воздействия.
Что делать
- Присвойте системным, пользовательским и внешним инструкциям разные уровни доверия.
- По умолчанию считайте веб-страницы, файлы, письма, изображения и извлечённое содержание недоверенными данными.
- Дайте модели и каждому инструменту минимальные полномочия, нужные для задачи.
- Проверяйте имя инструмента, параметры, цель и результат однозначным кодом, списком разрешений и схемой.
- Требуйте одобрение человека для движения денег, удаления, публикации, сообщений, смены полномочий и доступа к чувствительным данным.
- Совмещайте входные и выходные ограничения, разделение содержания и безопасное поведение при отказе.
- Регулярно испытывайте прямые, косвенные, многоязычные и текстовые, визуальные или звуковые атаки и сохраняйте трассировки.
Как проверить
- Видны ли источник и уровень доверия каждой инструкции?
- Может ли внешнее содержание получить тот же уровень полномочий, что системная политика?
- Нет ли у модели лишних полномочий к данным, инструментам или сети?
- Запускается ли инструмент по тексту модели или вызов проверяет код?
- Есть ли явное, относящееся к конкретному действию одобрение человека для операций с серьёзными последствиями?
- Сохраняются ли заблокированные и успешные попытки внедрения в цепочке инцидента?
- Не приняты ли извлечение с дополнением контекста или дообучение за полную защиту?
Ограничение
Совершенного универсального способа предотвратить внедрение инструкций пока не доказано. Фильтры, системные запросы, извлечение с дополнением контекста и дообучение по отдельности недостаточны; меры нужно наслаивать с учётом риска и полномочий инструментов.
Запомните одной фразой
Не каждое читаемое предложение является исполняемой командой.
Источники этой записи
- S26NIST SP 800-53 Rev. 5, *Security and Privacy Controls*Стандарты
- S39NIST AI 100-2 E2025, *Adversarial Machine Learning: A Taxonomy and Terminology of Attacks and Mitigations*Добровольное институциональное руководство в области стандартов
- S40OWASP GenAI Security Project, *LLM01:2025 Prompt Injection*Открытое руководство по проектам безопасности
- S41NCSC и агентства-партнеры, *Руководства по разработке безопасной системы ИИ*Официальное руководство по безопасности для различных ведомств
- S44NIST, * AI Risk Management Framework Playbook* и AI RMF CoreНаправления по добровольному осуществлению

