AI-guardrail может быть «зелёным» и при этом не ловить инъекции в агенте

Три отказа защиты вокруг LLM: сервис лежит, ловит мало или формально работает, проходит проверку живости и молча пропускает атаки. Соло, который один настраивает фильтр перед продовым агентом, в третьем режиме рискует сильнее, чем при явном падении: дашборд успокаивает, пока инъекция уходит в вывод инструментов. В разборе Rudratosh Shastri показывает это на бенчмарке реальных атак на агентов; код и перебор порогов лежат в репозитории buried-injections.
Зелёный мониторинг при уязвимом агенте
Автор делит сбои guardrail на громкий (сервис недоступен), слабый (доля перехватов видна в метриках) и бессимптомный: детектор отвечает, логи чистые, скоры приходят, но из‑за порога решения ничего не блокируется. Такой режим он называет «green by construction»: формально всё в порядке, эффективность нулевая.
Для стека с AI-агентами картина воспроизводима на бенчмарке. Атаки спрятаны в типичный вывод инструментов: счёт, письмо, фрагмент страницы, тот же контур, через который агент читает результаты tools. Проверка живости процесса не подтверждает, что атака реально режется в вашем трафике. При доле перехватов около 1% и около 99% картина «здоровья» в дашборде совпадает, пока не случится инцидент.
Зелёный статус guardrail не заменяет проверку, что известная атака блокируется в вашем трафике.
Meta Prompt Guard 2 на 629 атаках AgentDojo
Rudratosh Shastri прогоняет Meta Prompt Guard 2, модель, которую часто упоминают в разговорах про prompt injection. На 629 атак из AgentDojo (плюс 97 безвредных выводов tools и сравнение 10 open-source детекторов) при стандартном пороге 0.5 (block if P(malicious) ≥ 0.5) поймано 6 атак, порядка 1%.
Важно: модель ранжирует вредоносное выше безвредного. Типичные скоры атаки и нормального трафика в эксперименте около 0.009 и 0.0008 против отсечки 0.5. Сигнал различим, но при текущей точке отсечения все запросы получают ALLOW.
Автор сравнивает чувствительность с «дымовым извещателем, настроенным только на сверхновую». Для агентного пайплайна это значит: инъекция может пройти в цепочку вызовов tools, пока вы смотрите на uptime детектора.
Одно число порога: от 1% к 621 из 629
Тот же вес, те же запросы, меняется только порог отсечения. При значении 0.003, с калибровкой под бюджет ложных срабатываний «не больше 2%» на нормальном трафике AgentDojo (модель под этот домен не тюнилась), результат 621 из 629 блокировок, около 99% на этом наборе.
Автор явно оговаривает: 99% не означает «prompt injection решена». Это общий wrapper в AgentDojo, headline для привлечения внимания к другой мысли. Суть в сбое калибровки дефолта: отсечка 0.5 для таких скоров завышена примерно на порядок (~50× в формулировке автора; в honesty clause поста фигурирует и ~100×). Дефолт 0.5 описан как «очевидный» способ включить бинарный классификатор; на buried attacks без перенастройки он бесполезен.
Воспроизводимость вынесена в репозиторий buried-injections: перебор порогов, кросс-доменная калибровка, десять детекторов.
Что проверить вокруг guardrail у своего агента
Если вы один собираете защитный слой вокруг чата или агента, без отдельной команды безопасности, опирайтесь на чеклист из источника, без дефолта вендора:
- Различимость и рабочая точка: отдельно смотрите, отличает ли модель атаку от безвредного трафика и где стоит порог блокировки. Хороший rank при плохой отсечке даёт ноль в проде.
- Перебор на своих данных: не переносите 0.5 с чужого бенчмарка на свой tool output.
- Доля перехватов вместе с ложными тревогами: блокировки легитимных запросов обязательны в отчёте.
- Живая проверка: прогоните известную атаку через работающий guardrail и убедитесь, что приходит block; health check этого не заменяет.
- Красная команда конфига: порог в YAML/конфиге так же важен, как веса модели.
Те же «тихие» отказы автор проводит аналогиями: WAF в log-only, алерт в заглушенном канале, MFA с legacy API path, зелёные тесты с skip. Для агентов аналог прост: детектор в цепочке есть, но порог не настроен под ваше распределение скоров.
В обсуждении под постом уточняют живую проверку: rotating canary из held-out pool и перекалибровка на свежем трафике; автор соглашается разводить дрейф данных и реальную эффективность. Для практики соло это напоминание: раз в спринт смотреть uptime и гонять контрольную атаку после смены конфига или версии детектора.
Источники
- Rudratosh Shastri, «Your AI guardrail is green. It's also catching nothing.» — Dev.to (опубликовано 2026-09-30, доступ при обогащении: 2026-09-30 UTC)
- Репозиторий бенчмарка buried injections — https://github.com/rudratoshs/buried-injections (доступ: 2026-09-30 UTC)