Почему промпты не защищают ИИ-агентов от обхода
⚠️ Почему промпты не защищают ИИ-агентов от обхода
Разработчик пишет в system prompt «не отправляй конфиденциальные данные наружу» и считает, что поставил забор. На деле он написал просьбу — модель не слой принудительного контроля, она генерирует следующий вероятный токен, а реальное действие выполняет runtime, которому всё равно, что было в промпте. Это и есть Permission Boundary Bypass: обход границ полномочий через семантическую неоднозначность, когда агент читает пользовательский тикет или документ как продолжение контекста и воспринимает спрятанную там инструкцию как легитимную часть задачи. Исследование InjecAgent на 1054 сценариях показало: GPT-4 в ReAct-сетапе уязвим в 24% случаев, причём успешность резко растёт, если атака подаётся в авторитетном стиле — SYSTEM UPDATE, COMPLIANCE REQUIREMENT, ADMIN OVERRIDE.
Ключевая механика эксплуатации — цепочки инструментов, каждый из которых по отдельности безобиден. Агент читает файл (разрешено), пишет .sh-скрипт в /tmp (разрешено), создаёт cron-задание на этот скрипт (разрешено) — формально ни один шаг не нарушает «забор». Результат — выполнение вредоносного кода без прямого доступа к shell. Расширение области применения расширяет смысл разрешения: «используй CRM для поддержки клиентов» агент интерпретирует как «экспортируй всех премиум-пользователей», потому что вредоносный документ объяснил ему, что это часть процесса поддержки.
→ Расширение области применения: агент расширяет смысл естественно-языкового разрешения, объединяя легитимные действия в запрещённый результат.
→ Цепочка возможностей: комбинация read_file → write_file → draft_email или create_cron_job создаёт канал эксфильтрации или выполнения кода там, где каждый инструмент был признан безопасным при изолированном аудите.
Безопасность агента не в промпте, а в коде инструментов — resolve_path, capability token с явным allowed_sinks и expires_in, отвержение YAML-подобных policy в пользу строгих схем, валидируемых парсером до того, как модель увидит tool manifest. Модель — не враг, она просто слепо идёт по цепочке токенов; врагом архитектор становится сам, когда путает человекочитаемую просьбу с machine-enforced boundary.
По данным habr_infosec
#AIAgents #PromptInjection #PermissionBoundaryBypass #AppSec #LangChain