Руфат Нуриев обновлено

Безопасность ИИ-агентов: доступы, секреты, человек в контуре

Панель управления доступом и секретами ИИ-агента на экране ноутбука

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

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

Схема рабочего процесса human-in-the-loop на прозрачной доске

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Человек в контуре: когда человек должен подтверждать действие

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

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

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

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

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

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

Когда контур безопасности можно не усложнять

Не любому проекту нужен полный набор из ролей, approve-шагов и ротации ключей. Упрощённый контур - только базовые ограничения доступа и логирование без маскирования - обычно оправдан, если:

  • агент работает с публичными или обезличенными данными (FAQ по сайту, справка по товарам) и ничего не пишет в боевые системы;
  • у него нет доступа к деньгам, персональным данным клиентов или продакшн-инфраструктуре;
  • ошибка агента не приводит к юридическим, финансовым или репутационным последствиям.

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

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

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

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

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

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

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

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

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

  1. Отдельный сервисный аккаунт под каждого агента или под каждую роль.
  2. Инструменты с узкими правами вместо универсального "сделай всё".
  3. Хранилище секретов (secret manager) или переменные окружения вместо ключей в промптах и репозитории.
  4. Подтверждение человеком для внешних, финансовых и необратимых операций.
  5. Логи и мониторинг с маскированием чувствительных данных.
  6. Ротация ключей и ревизия доступов по расписанию.

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

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

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

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

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

Итог

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

Владельцу бизнеса не обязательно настраивать это самому - но стоит требовать ответы на эти пункты от подрядчика или разработчика перед запуском, а не после инцидента.

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

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

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

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

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

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

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

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

Нужен ли человек в контуре для каждого действия агента?

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

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

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

Термины в статье

CRM — Customer Relationship Management — управление взаимоотношениями с клиентами

API-ключи — API keys — секретные токены для доступа к API

системный промпт — system prompt — скрытые инструкции, которые задают поведение модели

деплой — deploy — выкладка новой версии на сервер

промпт — prompt — текст-инструкция или запрос к модели

прод — production — боевая среда с реальными пользователями (production)

SMB — Small and Medium Business — малый и средний бизнес

LLM — Large Language Model — большая языковая модель

Контакты