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

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

Продвинутый
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
  • Проверяйте аргументы инструментов перед выполнением и возвращайте ошибки в виде результатов, чтобы агент восстанавливался, а не повторял вызовы вслепую

Далее​