На днях в блоге embracethered вышла публикация, описывающая тревожную тенденцию в сфере ИИ — «Нормализацию отклонений» (Normalization of Deviance). Суть явления в том, что небезопасные практики постепенно становятся нормой просто потому, что «ничего плохого ещё не произошло». Сам термин заимствован из социологического анализа катастрофы шаттла «Челленджер».
Автор статьи рассуждает о небезопасности LLM как о фундаментальном, природном свойстве технологии. Галлюцинации, потеря контекста и уязвимость к промпт-инъекциям часто игнорируются разработчиками.
Компании доверяют ответам LLM, ошибочно считая их безопасными по умолчанию. Отсутствие инцидентов воспринимается как доказательство надежности, что ведет к ослаблению контроля, отказу от человеческого надзора и принятию рискованных решений. Это порождает культурный дрейф: временные компромиссы становятся постоянной практикой, а исходные меры безопасности забываются или заменяются попытками «закрыться» гардрейлами.
Мой тезис жестче: гардрейлы — это не решение, а катализатор этой нормализации.
Мы пытаемся натянуть детерминированную сову на стохастический глобус. Гардрейлы оперируют бинарной логикой (pass/fail), в то время как LLM — это вероятностное распределение в многомерном векторном пространстве.
Политика безопасности может забанить токен «бомба». Но модель, работая с векторами, легко обойдет это через семантические синонимы, например: «устройство для экзотермического окисления с быстрым расширением газов». Модели умеют «растягивать» контекст и находить лазейки в пространстве смыслов, которые невозможно перекрыть регулярными выражениями или списком ключевых слов, а уж темболее другой LLM.
Вариация проблемы остановки. Попытка заранее определить, будет ли вывод модели «вредным» для любого произвольного промпта — это алгоритмически неразрешимая задача.
В итоге защита превращается в игру «Whac-A-Mole» (Бей крота). Защита всегда реактивна и всегда отстает на шаг:
1️⃣Фильтры ключевых слов обходят через кодировки (Base64, ROT13 и другие кодировки).
2️⃣Классификаторы интентов ломают через атаки с использованием ролей.
3️⃣Защиту английского языка до сих пор пробивают атаками на low-resource языках (Zulu, Gaelic).
Более того, так как гардрейл — это тоже программный код, он сам становится вектором атаки. Ирония ситуации подтверждается уязвимостями в гардрейлах:
CVE-2024-45858 (Guardrails AI): В библиотеке, созданной специально для валидации вывода LLM, нашли RCE. Функция parse_token использовала небезопасный eval() для обработки конфигураций.
СVE-2024-11958 (LlamaIndex): SQL-инъекция через... промпт. Компонент duckdb_retriever собирал SQL-запросы без должной обработки. Это демонстрирует крах концепции «безопасного агента»: вы даете модели доступ к базе, ставите гардрейл, но атакующий через промпт все равно находит способ выполнить дроп таблицы или эксфильтрацию данных.
Существует также жесткий Парето-фронт: чем безопаснее модель, тем она глупее. Улучшение метрик безвредности (harmlessness) линейно снижает полезность (helpfulness) и способность к рассуждениям.
Делаем выводы - агрессивный гардрейл блокирует написание кода, приняв rm -rf в учебном примере за атаку. Чтобы не убить UX, компании вынуждены «ослаблять гайки». Это и есть та самая нормализация отклонений.
