Агент читает URL: как закрыть SSRF в инструменте загрузки

Проверяйте адрес назначения и сетевой доступ на стороне загрузчика. Того, что модель получила URL из понятной задачи, недостаточно для разрешения запросов к внутренним сервисам.

Разберём рабочий случай

Пользователь просит кратко пересказать страницу. Агент передаёт ссылку в fetch-tool, который умеет ходить из серверной сети. Если адрес указывает на внутренний административный сервис, содержимое может попасть в контекст и ответ. Дополнительная ловушка — разрешённая внешняя страница перенаправляет запрос внутрь. Проверка исходной строки без контроля фактического назначения не закрывает такой путь.

Что изменить

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

Как проверить результат

ПроверкаОжидаемое поведение
Разрешённая внешняя страницаЗагрузка работает в пределах лимитов и возвращает именно допустимое содержимое без дополнительных внутренних запросов.
Ссылка на внутренний адрес или служебный endpointЗапрос блокируется на сетевой границе до получения защищённых данных.
Внешний адрес перенаправляет в запрещённую сетьКаждый переход соблюдает политику; исходный разрешённый домен не служит пропуском к любому назначению.

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

Проверка URL — сложная область: DNS и реальный сетевой маршрут могут расходиться со строковыми ожиданиями. Не называйте простой разбор hostname полной защитой; тестируйте загрузчик и сетевую политику вместе.

LLM-агенты наследуют классические веб-риски, а возможность самостоятельно выбирать URL делает границу загрузчика особенно важной. В платном курсе LLM Security PRO: Prompt Injection, утечки, tool-abuse можно продолжить изучение соответствующего инженерного направления. Перед покупкой сравните программу и открытые материалы со своей задачей.

Документация для проверки технических деталей: OWASP: предотвращение SSRF.

Следующий шаг: Безопасность LLM-приложений: практические проверки. По смежным вопросам: HTML из ответа LLM: как не превратить чат в XSS, Картинки в Markdown-ответе AI: как они могут утекать данные.