Перейти к основному содержимому

Защита агентов и инструментов

Продвинутый
What you'll learn
  • Применяйте минимальные привилегии — давайте агенту только тот доступ, который нужен для его задачи
  • Распознавайте проблему «запутавшегося заместителя»: агент заимствует ваши полномочия
  • Выстраивайте пять слоёв защиты, которые сокращают радиус поражения, когда агента обманывают
  • Решайте, какие действия требуют человека в контуре
  • Проверяйте входные данные инструментов, чтобы неверный или подделанный аргумент не смог выполниться

В тот момент, когда ИИ может совершать действия (вызывать инструменты, выполнять код, обращаться к API), он наследует модель безопасности. Цель не в том, чтобы сделать модель неуязвимой к обману, — а в том, чтобы гарантировать, что даже если её обманут, она не сможет причинить большого вреда.

Главный принцип: минимальные привилегии

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

  • Суммаризатору документов нужно чтение, а не запись или сеть.
  • Ревьюеру нужно читать код и оставлять комментарий — а не пушить или деплоить.
  • Ограничивайте область действия инструментов, API-ключей и доступа к файлам для каждой задачи. Узко ограниченный агент, в которого внедрили инъекцию, может нанести лишь узкий ущерб.

Проблема «запутавшегося заместителя»

Агент часто действует от вашего имени (вашими токенами, вашими сессиями). Если ввод, контролируемый атакующим, направляет его, атакующий заимствует ваши привилегии — это «запутавшийся заместитель». Защита: не давайте агенту окружающие полномочия, которые ему не нужны, и требуйте явных, ограниченных по области действия учётных данных для чувствительных инструментов.

Слои защиты

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

Guided walkthrough1 of 5
  1. Запускайте код и файловые операции в контейнерах или эфемерных директориях без доступа к более широкой системе или секретам. Если агента обманут, он играет в закрытом ящике.

Зафиксируйте список разрешённого письменно

«Сформировать список разрешённого для опасной поверхности» легко одобрить кивком и легко пропустить. В Claude Code это конкретно: settings.json, который разрешает узкий набор команд и доменов, необходимых для задачи, и запрещает остальное. Начинайте с ограничений и расширяйте только тогда, когда реальная задача блокируется.

Блок разрешений Claude Code с минимальными привилегиями

{
"permissions": {
  "allow": [
    "Read",
    "Edit",
    "Bash(npm test:*)",
    "Bash(npm run build:*)",
    "Bash(git status)",
    "Bash(git diff:*)"
  ],
  "deny": [
    "Bash(git push:*)",
    "Bash(rm:*)",
    "Bash(curl:*)",
    "Read(./.env)",
    "Read(./secrets/**)"
  ]
}
}

Список deny побеждает allow, поэтому блокировка .env и secrets/** действует, даже если предоставлен широкий Read. См. permissions для полного синтаксиса правил и приоритетов.

У инструментов есть схемы — проверяйте их

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

Прокачайте основные термины
Нажмите Enter или пробел, чтобы перевернуть карточку. Используйте стрелки влево и вправо для перехода между карточками.Показан термин.
1 / 5

Проверьте себя

0/3
  1. Что предписывает делать принцип минимальных привилегий при настройке агента?
  2. Почему агент, действующий вашими токенами, представляет риск «запутавшегося заместителя»?
  3. В блоке разрешений Claude Code какая запись надёжно не даёт агенту прочитать файл с секретами?
Key takeaways
  • Сначала минимальные привилегии: ограничивайте область действия инструментов, ключей и доступа к файлам для каждой задачи, чтобы обманутый агент мог нанести лишь узкий ущерб
  • Агент действует от вашего имени — не давайте ему окружающих привилегий, которые ему не нужны (проблема «запутавшегося заместителя»)
  • Комбинируйте пять слоёв: песочница, список разрешённого, человек в контуре, разделение зон доверия, логирование и проверка
  • В Claude Code правила deny побеждают правила allow — явно блокируйте пути .env и secrets
  • Проверяйте аргументы инструментов перед выполнением и возвращайте ошибки в виде результатов, чтобы агент восстанавливался, а не повторял вызовы вслепую

Далее