SSRF

Что такое SSRF: серверный запрос, назначение и границы доступа

SSRF, или Server-Side Request Forgery, - подделка запроса, при которой приложение выполняет серверное обращение к неподходящему назначению под влиянием входных данных. Для защиты нужно контролировать текст адреса, фактическое соединение, перенаправления и сетевые возможности приложения. Проверка в браузере эту задачу не заменяет.

Когда сайт сам обращается к другому ресурсу

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

OWASP описывает SSRF через использование приложения для взаимодействия с внутренними или внешними ресурсами. Начните с инвентаря функций, которые принимают назначение или влияют на него. Укажите владельца, ожидаемый сервис и допустимую рабочую цель.

Само наличие такой функции не доказывает уязвимость. Нужно проверить, кто управляет назначением, какие ограничения реально применяются и какие области остаются недоступными проверке. Название поля URL без описания поведения недостаточно.

OWASP: предотвращение SSRF, назначения и сетевые ограничения

Проверяйте назначение на всем пути

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

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

Уточните поведение клиента при перенаправлениях и изменениях разрешения имени. Для бизнес-проверки достаточно зафиксировать требуемую границу и владельца реализации. Испытания проводятся только в разрешенной среде с безопасными объектами и согласованными критериями.

OWASP: предотвращение SSRF, назначения и сетевые ограничения

Карта серверного обращения

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

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

Что выяснить о серверной загрузке ресурса
ОбластьРабочий вопросПодтверждение
ВходКто влияет на адресРоли и источники данных
НазначениеКакой сервис нужен функцииДопустимая область
ОбработкаКак разбирается адресПонятный путь реализации
DNS и переходыКак меняется конечный адресПроверка фактического назначения
СетьКуда разрешены обращенияЭффективные ограничения
ПриемкаРаботает ли нужный сценарийРезультат и исключения

Почему WAF и браузерная политика не заменяют проверку

WAF может обрабатывать определенный входящий путь, но серверная функция имеет собственный сетевой контекст. Нельзя объявлять каждый исходящий запрос защищенным только из-за наличия фильтра перед сайтом. Уточняйте, какие слои действительно участвуют.

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

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

Пример: импорт ресурса для рабочего процесса

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

Если для части переходов или сетевых путей данных нет, оставьте это в итоговой записи. Один успешный импорт не доказывает, что все неподходящие назначения закрыты. Неизвестное должно иметь владельца следующей проверки.

Как подготовить техническое обращение

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

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

Официальная документация и источник: OWASP: предотвращение SSRF, назначения и сетевые ограничения

Ответы на вопросы

Вопросы по теме

SSRF и CSRF - одна проблема?

Нет, SSRF связан с серверным обращением приложения к назначению, а CSRF - с запросом, использующим контекст пользователя в браузере. Конкретные меры различаются. Наличие защиты одного вида не подтверждает исправление другого; сначала определите, какой путь и полномочия проверяются.

Фильтра адреса на странице достаточно?

Нет, клиентская проверка не устанавливает, как сервер обрабатывает адрес и куда фактически соединяется. Нужны ограничения на соответствующих слоях, учет DNS и переходов, а также приемка конкретной реализации. Видимый элемент формы не описывает всю рабочую цепочку.

Как проверять функцию без риска для чужих систем?

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

ОБСУДИМ ВАШУ ЗАДАЧУ?

Согласуем границы серверной интеграции

Опишите функцию и ожидаемый сервис без секретов. Уточним область, владельцев и критерии результата.

Обсудить серверный запрос