Уязвимость SSRF: как сервер заставляют атаковать внутреннюю сеть
SSRF (подделка запросов со стороны сервера) позволяет злоумышленнику заставить ваш сервер отправить HTTP-запрос к произвольному адресу.
Это используется для сканирования закрытой внутренней сети компании и запросов к облачным метаданным (http://169.254.169.254 в AWS/GCP) для кражи токенов роли IAM.
Степень критичности и чем опасна уязвимость
Захват облачной учетной записи AWS/GCP и доступ к приватным сервисам, закрытым от внешнего интернета.
Как наш сканер находит эту уязвимость
Site Check анализирует параметры загрузки внешних URL (вебхуки, загрузка аватарок по ссылке) на защиту от запросов к приватным подсетям.
Тестирование прикладных уязвимостей веб-приложения базируется на пассивном анализе структуры параметров, форм и рефлексии входных данных без передачи вредоносных деструктивных эксплойтов. Это позволяет выявить риски XSS, CSRF, Open Redirect и инъекций без деградации производительности приложения.
Как устранить уязвимость (Пошаговое руководство)
Для ликвидации риска выполните следующие действия в конфигурации вашего сервера или приложения:
// Блокируйте запросы к приватным диапазонам IP:
const isPrivateIP = (ip) => /^127\.|^10\.|^172\.(1[6-9]|2[0-9]|3[0-1])\.|^192\.168\.|^169\.254\./.test(ip);
if (isPrivateIP(resolvedIp)) throw new Error('Forbidden host');
- Блокируйте запросы к приватным IP-адресам (127.0.0.1, 10.0.0.0/8, 169.254.169.254).
- Используйте изолированный сетевой прокси с ограниченными правами для исходящих запросов.
Анатомия атаки и реальные последствия для проекта
Server-Side Request Forgery позволяет атакующему заставить бэкенд отправить запрос к внутренней сети (127.0.0.1, 169.254.169.254 AWS Metadata) для извлечения временных облачных токенов IAM.
Влияние на соответствие стандартам: Нарушение требований безопасности стандартов OWASP Top 10 (A05:2021 Security Misconfiguration), ISO/IEC 27001 и отраслевых норм 152-ФЗ.
Матрица эшелонированной защиты (Defense-in-Depth)
| Уровень защиты | Техническое действие | Инструмент / Механизм |
|---|---|---|
| Периметр веб-сервера (Nginx / Edge) | Применение изолирующих правил блокировки для маршрутов, связанных с ssrf-risk-indicators | Nginx Security Directives |
| Среда исполнения и конфигурация | Отключение отладочных механизмов и разграничение прав доступа к компоненту ssrf-risk-indicators | Runtime Security Hardening |
| Пайплайн DevSecOps контроля | Автоматическое тестирование конфигурации ssrf-risk-indicators в CI/CD пайплайне при каждом релизе | Site Check Security Gate |
Верификация устранения: команды для быстрой проверки
После внесения изменений в настройки сервера или исходный код приложения проверьте отсутствие уязвимости с помощью терминальных утилит:
curl -s -X POST -d "url=http://169.254.169.254/latest/meta-data/" https://ваш-домен.com/api/fetch | grep "iam"
# Запросы к метаданным должны блокироваться
Рекомендации DevSecOps для безопасного развертывания
Блокируйте запросы бэкенда к приватным диапазонам IP (RFC 1918) и метаданным облака (169.254.169.254) с помощью валидации IP перед выполнением запроса.
- ✓ Использовать параметризованные запросы и подготовленные выражения во всех SQL-запросах
- ✓ Выполнять контекстную санитизацию и экранирование пользовательского ввода во фронтенде
- ✓ Внедрить валидацию CSRF-токенов для всех изменяющих состояние POST/PUT запросов
- ✓ Ограничить внешние перенаправления белым списком разрешённых доменов
Часто задаваемые вопросы по устранению
Прикладные уязвимости логики кода (OWASP Top 10) требуют комплексного подхода: использование параметризованных ORM-запросов, контекстное экранирование HTML-шаблонизаторов, внедрение анти-CSRF токенов и интеграция Web Application Firewall (WAF) на внешнем шлюзе.
Для предотвращения вектора «Уязвимость SSRF: как сервер заставляют атаковать внутреннюю сеть» зафиксируйте проверочные правила в CI/CD пайплайне и настройте непрерывный мониторинг внешнего периметра через Site Check.