0Pricing
Cyber Security Academy · Урок

Защита агентов искусственного интеллекта и использования инструментов

Ограничение действий автономных агентов

«Защита агентов искусственного интеллекта и использования инструментов» — бесплатный урок Cyber Security Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Cyber Security Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Cyber Security Academy содержит 4 уроков всего.

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

Агент ИИ — это LLM, подключённая к инструментам и циклу: она рассуждает, вызывает функции (поиск, выполнение кода, программные интерфейсы, доступ к файлам), анализирует результаты и повторяет эти действия, пока не будет достигнута цель. Такая автономность одновременно мощна и опасна.

Главное изменение с точки зрения безопасности: у обычного чат-бота плохой результат — это просто текст. У агента плохое решение превращается в реальное действие: удаление записи, отправка письма, трата денег или утечка секрета.

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

Минимальные привилегии для инструментов

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

  • Предпочитайте режим только для чтения режиму чтения и записи; ограничивайте чтение данными текущего пользователя.
  • Разделяйте широкие инструменты на узкие (инструмент get_invoice, а не инструмент выполнения произвольных запросов SQL).
  • Привязывайте учетные данные инструмента к личности конечного пользователя, а не к общей служебной учетной записи, чтобы агент наследовал только те полномочия, которыми обладает пользователь.
# Scope queries to the authenticated user, never raw SQL
def get_invoice(invoice_id: str, *, user_id: str):
    return db.query(
        "SELECT * FROM invoices WHERE id=%s AND owner=%s",
        (invoice_id, user_id),
    )

Контрольные точки с участием человека

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

  • Отправка внешних писем или сообщений.
  • Финансовые операции или покупки.
  • Удаление или перезапись данных.
  • Развертывание кода или изменение инфраструктуры.

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

Изоляция кода и команд

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

  • Используйте временные контейнеры или microVMs без подключений к хост-системе.
  • По умолчанию отключайте доступ к сети; разрешайте только явно указанные исходящие соединения.
  • Устанавливайте ограничения на CPU, память и время, чтобы сдерживать неконтролируемый или вредоносный код.
  • Запускайте код от имени пользователя без прав суперпользователя с минимальными привилегиями и с корневой файловой системой только для чтения.
docker run --rm \
  --network none \
  --read-only \
  --user 1000:1000 \
  --memory 256m --cpus 0.5 \
  --pids-limit 64 \
  agent-sandbox:latest python /work/task.py

Разрыв смертельной триады

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

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

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

Недоверенный результат работы инструмента

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

  • Заключайте результат работы инструмента в понятные разделители и помечайте его как данные, а не команды.
  • Удаляйте или нейтрализуйте скрытый текст (комментарии HTML, символы нулевой ширины, CSS, размещённые за пределами экрана).
  • Ограничивайте размер внедрённого содержимого, чтобы уменьшить доступный объём для полезной нагрузки.

Никогда не позволяйте необработанному результату работы инструмента незаметно определять следующий вызов инструмента без проверок политик.

Списки разрешённых действий и применение политик

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

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

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

def authorize(call):
    if call.name not in ALLOWED_TOOLS:
        raise PolicyError("tool not allowed")
    if not SCHEMA[call.name].validate(call.args):
        raise PolicyError("bad arguments")
    if exceeds_budget(call):
        raise PolicyError("rate limit")

Ограничение цикла

Автономные циклы могут выйти из-под контроля: бесконечные повторы, рекурсивные вызовы инструментов, неконтролируемые расходы (отказ в обслуживании из-за расходов). Ограничивайте их.

  • Ограничивайте максимальное число шагов и общее количество токенов для каждой задачи.
  • Устанавливайте ограничения времени выполнения для всего запуска.
  • Отслеживайте совокупные расходы и прерывайте выполнение при достижении порога.
  • Обнаруживайте циклы (повторяющиеся одинаковые вызовы) и прерывайте их.

Эти ограничения также ослабляют атаки типа отказа в обслуживании и атаки на неограниченное потребление ресурсов (OWASP LLM10).

Риски памяти и многоагентных систем

Постоянная память агента и многоагентные системы создают новые поверхности атаки:

  • Отравление памяти: внедрение инструкций, записанное в долговременную память во время одного сеанса, влияет на последующие сеансы. Проверяйте и ограничивайте область данных, которые сохраняются.
  • Межагентное доверие: один скомпрометированный агент может внедрить инструкции в другой. Считайте сообщения между агентами недоверенными.
  • Ошибка привилегированного посредника: привилегированный агент действует по запросу агента с более низким уровнем доверия. Передавайте полномочия исходного субъекта по всей цепочке.

Журналирование и наблюдаемость

Невозможно защитить то, что Вы не можете увидеть. Оснастите журналированием всю трассировку агента:

  • Записывайте каждый вызов инструмента, его аргументы и результат.
  • Фиксируйте контекст рассуждений и всё полученное содержимое для криминалистического анализа.
  • Настраивайте оповещения об аномалиях: неожиданных исходящих соединениях, использовании привилегий, повторных отказах, резких скачках расходов.
  • Храните неизменяемый журнал аудита, связанный с пользователем, выполняющим действие.

Хорошая телеметрия превращает незаметную компрометацию в обнаруживаемый инцидент, который можно расследовать.

Многоуровневая архитектура агента

В итоге защищённая архитектура агента выглядит так:

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

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

Быстрая проверка

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

Итоги

Защита ИИ-агентов и использования инструментов:

  • Агенты превращают небезопасные выходные данные в реальные действия, поэтому каждый инструмент является потенциальной поверхностью атаки.
  • Применяйте минимальные привилегии для каждого инструмента и привязывайте учетные данные к конечному пользователю.
  • Требуйте подтверждения человеком для необратимых действий и выполняйте код в песочнице.
  • Разорвите смертельную триаду; считайте результаты работы инструментов ненадежными входными данными.
  • Реализуйте детерминированный шлюз политики (списки разрешений, проверка схемы) в коде, а не в подсказке.
  • Ограничивайте цикл (числом шагов, токенов, временем и затратами) и заносите в журнал каждый вызов инструмента для обнаружения атак.

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

Урок «Защита агентов искусственного интеллекта и использования инструментов» бесплатный?

Да — полный текст урока «Защита агентов искусственного интеллекта и использования инструментов» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Cyber Security Academy, подпишись на CoddyKit PRO. Курс Cyber Security Academy содержит 4 уроков всего.

Чему я научусь в уроке «Защита агентов искусственного интеллекта и использования инструментов»?

Ограничение действий автономных агентов Ты практикуешь Cyber Security Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Cyber Security Academy?

Предыдущий опыт не требуется. Cyber Security Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Защита агентов искусственного интеллекта и использования инструментов»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Cyber Security Academy?

Да. Каждый урок Cyber Security Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Инъекция подсказок и джейлбрейки
  2. Топ-10 рисков LLM по версии OWASP
  3. Защита агентов искусственного интеллекта и использования инструментов
  4. Риски моделей, данных и цепочки поставок
← Назад к Cyber Security Academy