← К списку статей

Безопасность ИИ-агентов: доступы, секреты, human-in-the-loop

ИИ-агент может искать данные в CRM, писать письма, запускать команды, обновлять задачи и ходить во внешние API. Именно поэтому безопасность ИИ-агентов надо проектировать до релиза, а не после первого инцидента. Самые частые проблемы - слишком широкие доступы, секреты в промптах и логах, а также отсутствие human-in-the-loop, когда агенту дают право действовать без подтверждения человека.

  • Доступы - агент должен видеть только те системы и поля, которые реально нужны для задачи
  • Секреты - API-ключи, токены и пароли нельзя хранить в промптах, git и обычных логах
  • Human-in-the-loop - критичные действия лучше подтверждать человеком
  • Главный принцип - агенту дают не "максимум на всякий случай", а минимально достаточные права
  • Практический эффект - меньше риск утечки данных, ошибочных действий и дорогих откатов

Почему ИИ-агенты опаснее обычного бота

Обычный чат-бот часто только отвечает на вопросы. ИИ-агент действует шире: читает документы, вызывает инструменты, может менять записи в базе, создавать счета, отправлять сообщения клиентам и запускать код. Чем больше автономии, тем выше цена ошибки.

Типичные риски:

  • агент получил доступ сразу к CRM, почте, базе знаний и платежам;
  • в один контекст попадают персональные данные, коммерческие условия и внутренние инструкции;
  • сотрудник вставляет в системный промпт реальный токен "временно для теста";
  • логирование сохраняет полный ввод пользователя вместе с секретами;
  • агент без проверки отправляет письмо, удаляет запись или запускает не ту операцию.

Вывод: безопасность агента - это не только "защитить модель", а выстроить контур доступа, хранения секретов, журналирования и подтверждения действий.

Доступы: минимум прав вместо "полного доступа"

Самая частая ошибка - выдать агенту учётную запись администратора, потому что "так быстрее интегрировать". Это удобно на старте и опасно в проде.

Как ограничивать доступы

  1. Разделяйте роли - агент для поддержки не должен видеть финансовые отчёты, а агент для аналитики не должен писать клиентам.
  2. Ограничивайте области данных - не весь CRM, а только нужные сущности, поля и проекты.
  3. Разделяйте чтение и запись - сначала read-only, право на изменение добавляйте только там, где это оправдано.
  4. Давайте доступ через сервисные аккаунты - не через личные логины сотрудников.
  5. Ставьте сроки и ревизию - доступы пересматриваются регулярно, а не живут вечно.
Подход Что происходит Риск
Админ-доступ для агента Агент видит и может менять всё Максимальный ущерб при ошибке
Read-only по нужным данным Агент анализирует, но не ломает процесс Ниже риск, проще аудит
Роль + scope + approve Агент ограничен и пишет только после подтверждения Лучший баланс скорости и контроля

Где особенно важно не ошибиться

  • CRM - контакты, сделки, заметки, телефоны, email;
  • почта и мессенджеры - риск внешней отправки;
  • файловые хранилища - договоры, акты, персональные данные;
  • финансовые сервисы - счета, оплаты, возвраты;
  • терминальные инструменты - команды, деплой, миграции, удаление данных.

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

Секреты: где обычно происходит утечка

Секреты редко утекают из "супервзлома". Гораздо чаще их кладут туда, где им не место:

  • в .env, который случайно ушёл в git;
  • в системный промпт для удобства;
  • в скриншоты, тикеты и документы для подрядчика;
  • в логи запросов и ответов;
  • в тестовые JSON-файлы и ноутбуки разработчиков.

Базовые правила работы с секретами

  1. Храните секреты в менеджере секретов или в защищённых переменных окружения, а не в тексте промпта.
  2. Подставляйте токены на уровне инструмента, а не на уровне модели.
  3. Маскируйте чувствительные поля в логах - ключи, пароли, cookies, номера карт, access token.
  4. Разделяйте dev, stage и prod - отдельные ключи, отдельные scopes, отдельные лимиты.
  5. Готовьте отзыв и ротацию - если секрет утёк, его надо быстро заменить без остановки всей системы.

Хорошая практика: модель "знает", что у неё есть инструмент create_invoice() или search_crm(), но не видит сам API-ключ этого инструмента.

Human-in-the-loop: когда человек должен подтверждать действие

Не каждое действие агента требует ручного подтверждения. Но есть класс операций, где human-in-the-loop экономит больше денег, чем занимает времени.

Подтверждение стоит включать для:

  • отправки сообщений клиенту от имени компании;
  • изменения цены, скидки, договора или статуса сделки;
  • удаления данных, файлов и записей;
  • запуска команд на сервере и деплоя;
  • любых действий с юридическими или финансовыми последствиями.

Практические режимы контроля

Режим Как работает Когда подходит
Полный автопилот Агент сам принимает решение и действует Только для низкорисковых внутренних задач
Draft mode Агент готовит ответ или действие, человек нажимает confirm Поддержка, продажи, документооборот
Двухшаговое подтверждение Для опасных операций нужен отдельный approve Деньги, прод, удаление, права доступа

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

Логи, аудит и расследование инцидентов

Если агент ошибся, бизнесу нужно понять:

  • что именно он получил на вход;
  • какой инструмент вызвал;
  • какие данные вернул инструмент;
  • кто подтвердил действие или почему оно прошло автоматически;
  • как быстро можно откатить результат.

Поэтому полезно вести:

  • журнал вызовов инструментов;
  • ID пользователя и сессии;
  • версию промпта или конфигурации агента;
  • факт ручного подтверждения;
  • маскированные логи ошибок без секретов в открытом виде.

Важно: полное логирование всего подряд без маскирования само становится источником утечки. Аудит нужен, но не ценой хранения паролей и токенов в plain text.

Безопасная архитектура ИИ-агента

Ниже - минимальный практический контур, который подходит многим проектам:

  1. Отдельный сервисный аккаунт под каждого агента или под каждую роль.
  2. Инструменты с узкими правами вместо универсального "сделай всё".
  3. Secret manager / env вместо ключей в промптах и репозитории.
  4. Approve step для внешних, финансовых и destructive-операций.
  5. Логи и мониторинг с маскированием чувствительных данных.
  6. Ротация ключей и ревизия доступов по расписанию.

Что проверить до запуска

  • агент не работает под админом без острой необходимости;
  • в репозитории нет реальных токенов и паролей;
  • тестовые данные не содержат живые персональные данные;
  • критичные действия не выполняются без подтверждения;
  • для каждого инструмента описано, что он может читать и что может менять;
  • есть понятный сценарий отключения агента при инциденте.

Частые ошибки при внедрении

  1. Один агент на всё сразу - и поддержка, и финансы, и админка.
  2. Секреты в промптах - потому что "так удобнее дебажить".
  3. Нет read-only этапа - агент сразу получает право писать и удалять.
  4. Нет human-in-the-loop - пока не случилась первая дорогая ошибка.
  5. Нет аудита - после инцидента невозможно восстановить цепочку действий.

Чем автономнее агент, тем важнее думать как инженер по безопасности, а не только как интегратор LLM.

Итог

Безопасность ИИ-агентов строится вокруг трёх вещей: минимальных доступов, правильной работы с секретами и human-in-the-loop для опасных действий. Если агенту заранее ограничить scope, спрятать ключи от модели, включить подтверждения и аудит, то ИИ действительно ускоряет работу команды, а не создаёт новый источник инцидентов.

Если планируете внедрить ИИ-агента в CRM, поддержку или внутренние процессы - напишите.

Часто задаваемые вопросы

Чем ИИ-агент отличается от обычного чат-бота с точки зрения безопасности?

ИИ-агент обычно не только отвечает, но и действует: вызывает инструменты, читает базы, меняет записи, отправляет письма и может запускать операции. Поэтому риски выше: ошибка касается не только текста ответа, но и реальных действий в системе.

Можно ли давать агенту админ-доступ, если это внутренний инструмент?

Лучше нет. Внутренний статус не отменяет риск ошибки, утечки или неправильного вызова инструмента. Даже для внутренних агентов безопаснее выдавать отдельный сервисный аккаунт, read-only там, где можно, и узкие права на изменение только для конкретных операций.

Где безопаснее хранить API-ключи для инструментов агента?

В менеджере секретов или защищённых переменных окружения. Не стоит держать ключи в системном промпте, markdown-документах, коде или обычных логах. Модель должна вызывать инструмент, а сам ключ должен подставляться вне её контекста.

Нужен ли human-in-the-loop для каждого действия агента?

Нет, не для каждого. Для поиска, черновиков, классификации и безопасной аналитики автопилот допустим. Но внешние сообщения, деньги, удаление данных, изменение статусов и серверные команды лучше проводить через подтверждение человека.

Что делать, если секрет уже попал в лог или промпт?

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

Контакты