SSRF: атаки на внутренние сервисы
SSRF (Server-Side Request Forgery) — атака, заставляющая сервер приложения делать запросы к внутренним ресурсам.
Механика
Приложение принимает URL от пользователя (например, для impor аватара). Атакующий подставляет внутренний URL: http://169.254.169.254/latest/meta-data (AWS metadata), http://localhost:6379 (Redis), http://internal-api. Сервер выполняет запрос из своей сети.
Последствия
Утечка cloud credentials: instance metadata содержит IAM tokens. Доступ к внутренним API без auth. Сканирование внутренней сети. Атаки на Redis/Memcached без пароля. RCE через уязвимости внутренних сервисов. Capital One breach 2019 — классический SSRF.
Векторы
Импорт из URL. Webhook subscription. PDF-генерация с внешними ресурсами. Image proxying. Whitelabel functionality. Любая функция, где сервер делает outbound HTTP по user-provided URL.
Защита
Whitelist доменов вместо blacklist. Резолвинг DNS + проверка что IP не в приватных диапазонах (RFC1918, 169.254.0.0/16, localhost). Отдельный network namespace для outbound-запросов. IMDSv2 в AWS: требует токен. Disable HTTP redirects. Timeout + rate limit.