Современные LLM-агенты не ограничиваются генерацией текста: они могут выполнять действия — читать файлы, изменять данные, отправлять запросы в сеть. Для этого модели генерируют код, который исполняется в процессе решения задачи. Однако такой код несёт риски, описанные ML-разработчиком Евгением в статье на Habr: от случайного удаления данных до целенаправленных атак через промпт-инъекции.
Евгений выделяет несколько категорий рисков. Во-первых, код может получить доступ к файловой системе, например, удалить не ту директорию или прочитать служебные файлы с секретами. Во-вторых, возможна утечка данных через переменные окружения. В-третьих, при наличии сетевого доступа данные могут быть отправлены на сторонний сервер. Кроме того, код может создать избыточную нагрузку на CPU, загрузить огромный датасет или установить пакеты из недостоверных источников. Отдельная угроза — промпт-инъекция: вредоносная инструкция, встроенная в пользовательский файл или веб-страницу, может заставить агента выполнить нежелательные действия, такие как отправка API-ключей на внешний сервер.
| Риск | Описание |
|---|---|
| Удаление данных | Модель может случайно удалить файлы, ошибившись в пути, или намеренно уничтожить данные. |
| Утечка секретов | Код может получить доступ к .env или конфигурационным файлам и отправить их по сети. |
| Сетевой доступ | При наличии доступа в интернет данные могут быть переданы на сторонний сервер. |
| Избыточное использование ресурсов | Бесконечный цикл или загрузка большого датасета могут перегрузить CPU и память. |
| Загрузка пакетов из недостоверных источников | Модель может установить вредоносный пакет через pip install или curl. |
| Промпт-инъекция | Вредоносная инструкция в пользовательском файле может заставить агента выполнить опасные действия. |
Для защиты от этих рисков агентам требуется песочница (sandbox) — изолированная среда с заранее заданными ограничениями. Золотое правило, по мнению автора: любой код от агента следует считать потенциально опасным, поэтому его исполнение необходимо ограничивать. Песочница должна предоставлять только те файлы, которые явно переданы агенту, ограничивать сетевой доступ, контролировать использование ресурсов и запрещать установку непроверенных пакетов. Важно, что код генерируется вероятностной моделью и не проходит человеческое ревью, особенно в ReAct-цикле, где агент может выполнить несколько последовательных действий, каждое из которых зависит от предыдущего.
Автор упоминает Docker как инструмент для создания песочницы, что позволяет гибко настраивать изоляцию. Статья является первой частью материала: в ней разобрана теория — что такое песочница, какие риски она предотвращает и какие бывают подходы к реализации. Практическая часть — создание агента с Docker Sandbox на open-source LLM — будет опубликована позже. Материал будет полезен разработчикам, которые внедряют LLM-агентов в продуктивные среды и хотят минимизировать риски безопасности.


