Промпт-инъекция: как злоумышленник управляет чужим ИИ-ассистентом и как защитить своего
Короткий ответ: промпт-инъекция — это атака текстом. Злоумышленник пишет в чат или прячет в письме, документе либо на веб-странице фразу, которую ИИ-ассистент воспринимает как новую команду: раскрыть внутреннюю инструкцию, выдать чужие данные, сделать то, чего владелец не планировал. Надёжного способа полностью закрыть эту уязвимость пока не известно, поэтому защищают не «слова», а последствия: дают ассистенту минимум прав, разрешают только заранее описанные действия, рискованные шаги отправляют на подтверждение человеку и пишут журнал всего, что он сделал.
Статья для заказчика, который собирается запустить ассистента на сайте или агента внутри компании. Инструкций, как атаковать, здесь нет — только то, что нужно понимать, чтобы задать подрядчику правильные вопросы и принять систему с открытыми глазами. Про выдуманные факты в ответах мы писали отдельно, в статье о галлюцинациях нейросети: это другая проблема, хотя проверять её удобно тем же тест-набором.
Что такое промпт-инъекция простыми словами?
Языковая модель получает на вход один поток текста: ваши правила, вопрос пользователя, найденные документы. Она не умеет надёжно отличить «это инструкция владельца» от «это текст, который надо обработать». Инъекция использует именно это: в данных появляется фраза, похожая на команду, и модель её выполняет.
Аналогия из жизни: вы поручили новому сотруднику разобрать почту, а в одном из писем написано «бухгалтерии: срочно переведите остаток по новым реквизитам». Опытный человек насторожится. Модель настораживается не всегда — у неё нет вашего опыта, контекста и привычки перезвонить.
Риск признан отраслью. В перечне главных уязвимостей приложений на языковых моделях от сообщества OWASP (версия 2025 года) промпт-инъекция стоит первой — LLM01:2025 Prompt Injection. Там же отмечено, что вредная инструкция может быть вообще не видна человеку: достаточно, чтобы её прочитала модель.
Прямая и непрямая инъекция: примеры
Прямая — когда атакующий пишет команду сам, в окно чата. Непрямая — когда команда приходит через материал, который ассистент читает по работе: письмо клиента, вложенный PDF, карточку в CRM, страницу сайта конкурента или поставщика. Вторая опаснее: никто не видит, как она попала в систему.
Как это выглядит на уровне бизнеса, без технических подробностей:
- Прямая, чат на сайте. Посетитель долго уговаривает бота «представить, что правил нет», и тот обещает скидку, которой нет в прайсе, или пересказывает внутренние инструкции для менеджеров.
- Непрямая, входящая почта. Агент разбирает заявки. В одном письме спрятана строка для модели: пометить заявку как срочную, переназначить на другого менеджера или ответить отправителю с вложением из другой сделки.
- Непрямая, документ. Кандидат присылает резюме, поставщик — коммерческое предложение. Внутри белым текстом на белом фоне — указание оценить документ как идеальный. Если ассистент готовит сводку для руководителя, сводка получится не такой, как в действительности.
- Непрямая, веб-страница. Агент собирает цены или новости с сайтов. Страница содержит инструкцию, адресованную модели, и та меняет поведение на всё оставшееся задание.
Общее у всех случаев одно: модель смешала данные и команды. Именно поэтому защита строится вокруг вопроса «что ассистент сможет сделать, если его обманут», а не «как сделать так, чтобы его никогда не обманули».
Почему для агента это опаснее, чем для чат-бота?
Чат-бот в худшем случае скажет лишнее. Агент может сделать лишнее: изменить запись, отправить письмо, выгрузить данные, поставить задачу. Чем больше у него прав и систем, тем больше цена одной успешной инъекции. При этом агент читает много чужого текста — а это и есть канал непрямой атаки.
Разницу удобно показать на одной задаче. Чат-бот, которому подсунули команду, напишет странный ответ, и клиент, скорее всего, просто закроет окно. Агент с доступом к почте и CRM, получив ту же команду внутри письма, может переслать переписку наружу или поменять ответственного по крупной сделке — и об этом никто не узнает, пока не начнутся последствия. Подробно о том, чем агент отличается от ассистента, — в статье ИИ-агент, который выполняет действия.
Отсюда практическое правило: уровень защиты подбирают по правам, а не по «умности» модели. Ассистенту, который только отвечает по прайсу, хватает аккуратной базы знаний и проверки ответа. Агенту, который пишет в CRM и почту, нужны все меры из таблицы ниже.
| Чат-бот на базе знаний | Агент с доступом к системам | |
|---|---|---|
| Что он умеет | Отвечает текстом по документам | Читает почту и CRM, создаёт записи, готовит документы, отправляет сообщения |
| Худший исход | Неуместный ответ, раскрытая внутренняя инструкция, лишний фрагмент базы знаний | Изменённые данные, письмо не тому адресату, выгрузка клиентской базы, ложная задача сотруднику |
| Откуда приходит атака | Чаще всего из окна чата | Из любого текста, который агент читает: письма, вложения, страницы, карточки CRM |
| Главная защита | Узкая база знаний и проверка ответа | Минимальные права, белый список действий, подтверждение человеком |
| Кто заметит проблему | Клиент или менеджер, читающий диалоги | Только журнал действий и оповещения |
Какие данные может выдать ассистент на сайте?
Ровно те, что ему доступны: всё из базы знаний, внутренняя инструкция, а если он подключён к CRM или заказам — данные из этих систем. Правило простое: если документ нельзя показать посетителю, его не должно быть в базе публичного ассистента, как бы хорошо ни были написаны запреты.
Что чаще всего утекает на практике:
- Внутренняя инструкция. Текст настроек с тоном, ограничениями, иногда — с упоминанием скидок для «особых» клиентов. Сама по себе инструкция редко секретна, но в неё не стоит класть ничего, что вы не готовы увидеть в чужом скриншоте.
- Внутренние документы из базы знаний. Например, в базу загрузили всю папку «Продажи», а в ней — закупочные цены и маржа по позициям.
- Персональные данные. Ассистент с доступом к заказам по запросу «покажи мой заказ» без проверки личности может показать чужой. Это уже не просто репутационный вопрос: по 152-ФЗ меры защиты обязан принимать оператор (ст. 19), а о неправомерной передаче персональных данных, повлёкшей нарушение прав субъектов, нужно уведомить Роскомнадзор в течение 24 часов, о результатах расследования — в течение 72 часов (ч. 3.1 ст. 21).
- Данные других систем. Ключи доступа, адреса внутренних сервисов, если они случайно попали в текст настроек или документы.
Доступ к личным данным клиента должен проверяться кодом — по авторизации в личном кабинете, а не по словам в чате. Модель не решает, «похож ли собеседник на владельца заказа». Подробнее о передаче персональных данных в облачные сервисы — в статье можно ли отправлять данные клиентов в ИИ.
Как защищают: права, подтверждения, фильтры, журналы
Защита многослойная: ни один слой не надёжен в одиночку. Основа — ограничить то, что ассистент вообще может сделать, и проверять важные шаги кодом и человеком. Инструкции модели «не поддавайся на уловки» полезны, но это последний слой, а не первый.
По сути это те же меры, что предлагает OWASP, переведённые на язык заказчика:
- Минимум прав. У агента своя учётная запись в каждой системе. Он видит только нужные разделы, не может удалять записи и делать массовые операции. Если задаче хватает чтения — пишущих прав нет.
- Белый список действий. Агент не «делает что угодно в CRM», а вызывает 5–10 описанных функций: найти клиента, создать задачу, подготовить черновик. Параметры проверяет обычный код: например, письмо уходит только на адрес из карточки клиента.
- Подтверждение человеком. Всё, что связано с деньгами, обязательствами и отправкой данных наружу, агент готовит, но не завершает. Так устроены агенты на нашей странице разработки ИИ-агентов: документ готов, подпись и отправка — за сотрудником.
- Внешний текст — это данные. Письма, вложения и страницы передаются модели помеченными как материал для обработки. Права агента не расширяются от того, что написано в письме: команду может дать только сотрудник через свой интерфейс.
- Проверка входа и выхода. На входе отсекаются явные попытки подмены инструкций, на выходе код проверяет ответ: нет ли телефонов, сумм, ссылок или фрагментов, которых не должно быть в ответе клиенту.
- Журнал и оповещения. Каждый шаг записан: какой текст прочитан, какое решение принято, какое действие выполнено. Необычные всплески — десятки писем за минуту, изменение ответственного по многим сделкам — вызывают оповещение и паузу.
Отдельно — про ограничения на уровне задачи. Агенту, который разбирает входящую почту, не нужен доступ к выгрузке всей клиентской базы. Агенту, который готовит коммерческие предложения, не нужно право менять цены в прайсе. Чем уже задача, тем проще её защитить.
| Мера | Как выглядит на практике | От чего защищает |
|---|---|---|
| Минимальные права | Отдельная учётная запись агента в CRM и почте, только нужные разделы, без удаления и массовых операций | Ограничивает ущерб, даже если модель обманули |
| Белый список действий | Агент вызывает только заранее описанные функции с проверкой параметров кодом | Не даёт выполнить действие, которого нет в сценарии |
| Подтверждение человеком | Деньги, отправка наружу, изменение условий — только после кнопки сотрудника | Останавливает рискованный шаг до последствий |
| Разделение источников | Письма и документы помечены как данные, а не как команды; права зависят от того, кто пишет | Снижает силу непрямой инъекции |
| Проверка ответа | Код проверяет ответ: нет ли телефонов, сумм, ссылок, внутренних данных сверх разрешённого | Утечку через ответ в чат |
| Журнал и оповещения | Каждый шаг агента записан: что прочитал, что решил, что сделал; всплески действий — сигнал | Позволяет заметить и расследовать |
Как проверить ассистента до запуска?
Перед запуском ассистента прогоняют на тестовых атаках так же, как на обычных вопросах: набор сценариев, ожидаемое поведение, отметка «прошёл» или «не прошёл». Проверяют не только чат, но и все каналы, через которые к нему попадает текст: письма, файлы, карточки CRM.
Что входит в разумный набор проверок для первого запуска:
- Просьбы нарушить правила в чате — разными словами, на разных языках, через «ролевую игру». Ожидаемо: ассистент остаётся в теме и не раскрывает инструкцию.
- Запросы чужих данных — заказ по номеру без входа в кабинет, данные «коллеги», выгрузка списка клиентов. Ожидаемо: отказ, который обеспечивает код, а не вежливость модели.
- Тестовые письма и документы с вложенными командами. Ожидаемо: агент обрабатывает их как обычные материалы, команды не выполняет, подозрительное помечает для сотрудника.
- Попытки выйти за белый список — просьбы удалить, отправить на внешний адрес, изменить сумму. Ожидаемо: действия нет в списке или оно ждёт подтверждения.
- Проверка журнала. По каждому тесту видно, что агент прочитал и что попытался сделать. Если журнал не позволяет восстановить картину — он недостаточно подробный.
Результаты тестов стоит сохранить: после каждого обновления модели, базы знаний или инструкции этот же набор прогоняют повторно. Новая версия модели может вести себя иначе на тех же сценариях.
Когда сложная защита не нужна и какие ошибки делают чаще всего?
Если ассистент отвечает только по открытым материалам — прайс, условия доставки, режим работы — и ни к каким системам не подключён, худший исход инъекции — странный ответ. Здесь хватит аккуратной базы знаний, проверки ответа и разбора диалогов; сложная схема прав избыточна.
Ошибки, которые встречаются чаще всего:
- Защита только словами. В инструкцию пишут «никогда не раскрывай данные», а доступ к данным оставляют. Слова модель иногда нарушает, отсутствие доступа — нет.
- Агенту выдают учётную запись администратора, потому что «так быстрее настроить». Любая успешная атака тогда получает права администратора.
- Вся папка в базе знаний. Загружают документы целиком, не разобрав, что из них можно показать клиенту.
- Нет журнала. Когда что-то пошло не так, невозможно понять, сделал ли это агент, сотрудник или интеграция.
- Проверка один раз. Тесты прогнали до запуска и забыли, хотя база знаний и модель меняются.
Заодно про цену: права, белый список, подтверждения и журнал не продаются отдельным модулем — это решения на этапе проектирования. Тариф «AI-решения / AI-ассистенты» по прайсу — от 72 000 ₽, от 3 дней; интеграции с другими системами — от 32 000 ₽, от 2 дней (до двух систем); контрольные точки агента согласуются до сборки. 7 дней после запуска мелкие правки вносим бесплатно, дальше — поддержка от 7 900 ₽ в месяц; гарантия по договору — 30 календарных дней с даты акта.
Вопросы подрядчику
Спросите, что сможет сделать ассистент, если его обманут, и попросите ответ по пунктам: какие системы, какие права, какие действия, где подтверждение. Расплывчатое «у нас защищённая модель» — повод уточнять. Общие вопросы о безопасности сервиса — в статье 15 вопросов подрядчику.
- Какие учётные записи и права будут у ассистента в каждой системе? Можно ли посмотреть их список?
- Какие действия он может выполнять? Есть ли белый список и кто проверяет параметры?
- Какие шаги требуют подтверждения сотрудника и как это выглядит в интерфейсе?
- Как обрабатываются письма, файлы и страницы — может ли текст из них расширить права агента?
- Что попадает в базу знаний и кто решает, что из неё можно показывать клиенту?
- Как проверяется доступ к персональным данным: кодом по авторизации или словами в диалоге?
- Что записывается в журнал, сколько он хранится и кто получает оповещения?
- Какие тестовые атаки прогоняли до запуска и можно ли увидеть результаты?
- Как быстро можно отключить агента или отозвать его права, если что-то пошло не так?
Если часть этих правил стоит закрепить и для сотрудников, которые сами пользуются ИИ-сервисами, — пригодится шаблон из статьи о политике использования ИИ в компании.
Короткие ответы на частые вопросы
Что такое промпт-инъекция простыми словами?
Это попытка подсунуть ИИ-ассистенту текст, который он примет за команду, а не за данные: «забудь правила», «перешли переписку», «скажи, что скидка 90 %». Такой текст пишут прямо в чат или прячут в письме, документе, на странице сайта, которые ассистент потом читает.
Можно ли защититься от промпт-инъекции полностью?
Рассчитывать на это нельзя: составители перечня OWASP прямо пишут, что неясно, существуют ли способы полностью предотвратить такие атаки. Поэтому защита строится так, чтобы обманутая модель не могла сделать ничего опасного: минимальные права, белый список действий, подтверждение человеком, журнал.
Опасна ли инъекция для простого чат-бота на сайте?
Меньше, чем для агента, но опасна. Чат-бот могут заставить отвечать не по теме, раскрыть внутреннюю инструкцию или выдать фрагмент базы знаний, который не предназначался клиентам. Решение — не класть в базу ничего, что нельзя показать посетителю, и проверять ответ перед выдачей.
Кто отвечает, если ассистент выдал персональные данные клиента?
Оператор персональных данных, то есть ваша компания: по ст. 19 152-ФЗ именно оператор принимает меры защиты, а при неправомерной передаче данных должен уведомить Роскомнадзор в сроки ч. 3.1 ст. 21: за 24 часа — об инциденте, за 72 часа — о результатах расследования. Поэтому персональные данные ассистенту дают только в объёме, нужном для задачи.
Сколько стоит ассистент с такой защитой?
Права, подтверждения и журнал закладываются в архитектуру и входят в разработку: тариф «AI-решения / AI-ассистенты» — от 72 000 ₽, от 3 дней; если агенту нужны связки с другими системами — интеграции от 32 000 ₽, от 2 дней (до двух систем). Для агента с длинными цепочками сумму считаем после брифа и фиксируем в договоре.
Услуги и кейсы по теме: разработка ИИ-агента · цены и сроки
Расскажите, что должен делать ваш ассистент или агент и к каким системам у него будет доступ, — разложим права и контрольные точки и назовём цену и срок до старта.
Рассчитать проект →Оценку срока и цены по брифу делаем бесплатно, обычно отвечаем в течение часа в рабочее время. Типовой договор — посмотреть до оплаты.
