Alex Chernysh
AI-системы / поиск / evals / архитектура
Обсудить систему
СистемыСтатьиАссистент
Назад к статьям

Статья

Безопасность LLM-продукта без театра

Практический разбор: prompt injection, лишняя автономия, опасные ответы, evals и внятные границы для LLM-продукта.

9 марта 2026 г.5 мин чтенияАвтор Alex Chernysh
DesignSafetySecurity
К разделу
1. Безопасность — это поведение продукта, а не настроение комплаенса2. Prompt injection — это нормальная часть модели угроз3. Лишняя агентность — это баг дизайна, а не амбициозная функция4. Валидация ответа важна потому, что внешние системы буквальны5. Проверки безопасности должны стоять там, где они реально помогаютКритический путьМониторинг и разбор6. Evals делают safety труднее подделать7. Мониторинг должен объяснять решения, а не только считать инциденты8. Зрелый защитный контур выглядит трезвоЧто бы я внедрял первымЧто ещё почитатьИсточники и ссылки

Нужен сначала короткий проход?

Большинство продуктов ломаются не потому, что никто не произносил слово «безопасность». А потому, что безопасность осталась слайдом, пока реальная система жила по своим правилам.

Полезное правило

Работа по безопасности становится настоящей только тогда, когда меняет, что системе разрешено делать, что она обязана записывать в логи и от чего должна отказываться.

Минимальный набор защитных мер

  • считать prompt injection ожидаемым типом атаки, а не редкой диверсией
  • ограничивать права инструментов и точки согласования
  • валидировать ответы до того, как они попадут во внешние системы
  • гонять evals и red-team сценарии на действительно рискованных сценариях
  • сохранять достаточно телеметрии, чтобы потом можно было объяснить действия системы
Слои защиты
Здоровый подход многослоен: ограничивать, что модель видит, что ей разрешено делать, что может выйти наружу и что уйдёт на последующий разбор.

1. Безопасность — это поведение продукта, а не настроение комплаенса

Слово safety до сих пор заставляет одних думать о папках с правилами, а других — о цензуре. Ни то ни другое особенно не помогает.

В продуктовых терминах всё проще:

  • что системе разрешено видеть
  • что ей разрешено делать
  • что ей разрешено утверждать
  • от чего она обязана отказаться
  • как ошибки наблюдаются и локализуются

Именно поэтому хорошие решения по безопасности в коде обычно выглядят скучно:

  • более узкие права
  • яснее точки согласования
  • безопаснее поведение по умолчанию
  • трассируемые действия
  • релизные гейты вокруг рискованного поведения

Скука здесь скорее достоинство.

2. Prompt injection — это нормальная часть модели угроз

OWASP по-прежнему начинает список LLM-рисков с prompt injection. Не потому, что это модная страшилка, а потому, что слишком много систем до сих пор доверяют тексту, который читает модель, гораздо больше, чем следует.

Рабочее правило простое:

Недоверенному контенту нельзя позволять переписывать системные инструкции или расширять права системы.

Это значит, что поднятые документы, письма, веб-страницы и любые внешние источники в чувствительных сценариях нужно считать враждебными по умолчанию.

Если модель читает документ, это ещё не значит, что она имеет право ему подчиняться.

3. Лишняя агентность — это баг дизайна, а не амбициозная функция

OWASP отдельно выделяет excessive agency, и это очень по делу.

Проблема не в агентности как таковой. Проблема — в широких правах, расплывчатых границах и слабом контроле.

Здоровый контур гораздо уже:

  • узкий набор прав у инструментов
  • узкие контракты инструментов
  • явные согласования для необратимых действий
  • обратимые операции там, где это возможно
  • телеметрия для каждого внешнего действия

Если система может отправлять письма, покупать, удалять, деплоить или менять записи, модель прав нужно воспринимать как часть инфраструктуры, а не как приписку к промпту.

4. Валидация ответа важна потому, что внешние системы буквальны

Опасный ответ — это не только грубый текст или токсичный ответ.

Это ещё и:

  • кривой JSON, ушедший в рабочий контур
  • невалидный SQL или совет по коду, попавший в путь исполнения
  • неподтверждённое юридическое или медицинское утверждение, выданное уверенным тоном
  • ссылка, команда или инструкция, получившая слишком много доверия только из-за интерфейса

Поэтому категории OWASP про insecure output handling и sensitive information disclosure остаются практичными. Ответ — это место, где расплывчатая модель встречается с буквальной системой.

Эта встреча требует присмотра.

5. Проверки безопасности должны стоять там, где они реально помогают

Не вся защита должна жить в критическом пути.

Полезное разделение такое.

Критический путь

Здесь остаётся то, что предотвращает немедленный вред:

  • границы прав
  • проверка схемы
  • согласование для опасных действий
  • жёсткие блоки на известные запрещённые паттерны

Мониторинг и разбор

Сюда лучше вынести:

  • более глубокий red-team анализ
  • трендовый мониторинг
  • judge-модельные оценки
  • широкий разбор аномалий

Часто команды делают наоборот: либо перегружают критический путь дорогими проверками, либо оставляют опасное поведение на потом. Ни один из вариантов нельзя назвать зрелым.

6. Evals делают safety труднее подделать

Хорошая история про безопасность должна выдерживать встречу с набором evals.

Мне нужны кейсы хотя бы для такого:

  • попытки prompt injection
  • неподтверждённые утверждения
  • опасные предложения вызвать инструмент
  • попытки вытащить чувствительные данные
  • отказные сценарии по правилам
  • границы эскалации

Недавние тексты Anthropic про evals для агентных систем здесь полезны именно своей сухостью: определить задачу, определить критерии, мерить регулярно. Безопасность становится лучше в тот момент, когда перестаёт звучать как ритуал и начинает выглядеть как дизайн проверок.

7. Мониторинг должен объяснять решения, а не только считать инциденты

Панель мониторинга, которая сообщает, что случилось что-то плохое, уже лучше, чем её отсутствие.

Но по-настоящему полезная система ещё и объясняет:

  • какой запрос это вызвал
  • какой контекст был у модели
  • какой инструмент система попыталась вызвать
  • какое правило или точка согласования сработала
  • что в итоге увидел пользователь или внешняя система

Иначе разбор инцидента превращается в археологию. Только с худшим настроением.

8. Зрелый защитный контур выглядит трезво

Системы, которым я доверяю, обычно не производят впечатления паранойи. Они производят впечатление дисциплины.

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

На практике это и есть большая часть работы.

Что бы я внедрял первым

Если бы мне нужно было сейчас быстро ужесточить LLM-продукт, я бы шёл так:

  1. расписал реальные внешние эффекты и утечки данных
  2. сузил права инструментов и точки согласования
  3. добавил safety evals на главные рискованные сценарии
  4. поставил валидацию ответа перед буквальными внешними системами
  5. дотянул телеметрию до уровня, где разбор инцидентов перестаёт быть гаданием

Церемония может подождать. Контроль — нет.

По теме

Что ещё почитать

  • Как уменьшать галлюцинации в LLM-системах
  • Как строить агентные AI-системы, которые держатся в проде
Источники

Источники и ссылки

  • OWASP Top 10 for LLM Applications
  • NIST AI Risk Management Framework
  • Anthropic: Demystifying evals for AI agents

Что ещё почитать

Часть публичных заметок про AI-системы с опорой на источники, поиск, evals и поставку под реальными ограничениями.

Интерфейсы для серьёзных продуктовКак уменьшать галлюцинации в LLM-системахКак устроить evals для LLM-систем в проде
На странице
1. Безопасность — это поведение продукта, а не настроение комплаенса2. Prompt injection — это нормальная часть модели угроз3. Лишняя агентность — это баг дизайна, а не амбициозная функция4. Валидация ответа важна потому, что внешние системы буквальны5. Проверки безопасности должны стоять там, где они реально помогаютКритический путьМониторинг и разбор6. Evals делают safety труднее подделать7. Мониторинг должен объяснять решения, а не только считать инциденты8. Зрелый защитный контур выглядит трезвоЧто бы я внедрял первымЧто ещё почитатьИсточники и ссылки