SSRF (Server-Side Request Forgery) це вразливість, коли атакуючий змушує ваш сервер зробити запит за адресою, яку сам вказав. Небезпека в тому, що сервер стоїть усередині вашої мережі й має доступ туди, куди атакуючий ззовні достукатись не може. Це CWE-918, окрема категорія A10 в OWASP Top 10.
Як це зустрічається на практиці
Типовий вхід це зручна функція «завантажити файл за посиланням»: користувач дає URL, сервер іде за ним і приносить вміст. Замість картинки атакуючий вписує внутрішню адресу.
Приклад
У хмарі (AWS, GCP, Azure) за адресою 169.254.169.254 лежить службовий довідник машини, а в ньому тимчасові ключі доступу до всього хмарного акаунта. Ця адреса відповідає тільки зсередини самої машини:
Ваш сервер слухняно йде туди й повертає ключі атакуючому. Саме так у 2019 з Capital One забрали дані близько ста мільйонів людей.
Як захиститись
- Не ходіть за довільним URL від користувача, тільки білий список доменів
- Блокуйте приватні діапазони IP і перевіряйте адресу ПІСЛЯ резолву DNS
- Увімкніть IMDSv2 у налаштуваннях хмари
