Le Server-Side Request Forgery (SSRF), traduit en français comme la falsification des requêtes côté serveur, est une vulnérabilité de la sécurité du web. Elle permet à un hacker d’inciter l’application côté serveur à envoyer des requêtes à un endroit non prévu. Avec une attaque SSRF typique, un hacker se sert d’une application web vulnérable pour amener le serveur à interagir afin d’en extraire des fichiers et des données sensibles. Avec une SSRF, il est possible de scanner le réseau interne, cartographier les Ports et IP ouverts et forcer la connexion à des systèmes externes. Alors, quels sont les impacts du SSRF ? Quelles sont les attaques les plus fréquentes et comment s’en protéger ?
Quel est l’impact des attaques SSRF ?
Une attaque SSRF réussie entraîne des actions non autorisées, soit dans l’application web vulnérable elle-même, soit sur d’autres données de l’organisation avec lesquelles l’application peut communiquer. Lors de certaines attaques malveillantes, le hacker peut exécuter des commandes spécifiques, voire d’autres attaques qui semblent provenir de l’hébergeur de l’application web vulnérable. La vulnérabilité SSRF d’une web app peut causer d’autres impacts sur une entreprise.
Denial of Service (DoS)
Les attaques par DoS inondent le serveur d’un nombre incalculable de requêtes qui le font tomber en panne. Les serveurs internes aux organisations sont sujets à ce type d’attaque DoS, car ils ne peuvent pas supporter de grands volumes de trafic. La configuration à faible bande passante est cependant logique, puisque ces serveurs reçoivent habituellement moins de demandes qu’un serveur public.
L’exposition de données sensibles
Les données sensibles sont la cible la plus populaire des attaques SSRF. En effet, les hackers soumettent des URL malveillantes pour recevoir des informations sur le système par le serveur : ils peuvent alors intensifier leur attaque. Un hacker peut obtenir des informations d’identification pour accéder au serveur et ainsi, créer des dommages ou exploiter d’autres informations.
La vulnérabilité RCE (Remote Code Execution)
Certains services web ont une conception basée uniquement sur le protocole HTTP. Sans les protections nécessaires pour protéger l’accès aux URL, les hackers peuvent exploiter un service web pour accéder au serveur. Ils peuvent alors effectuer une attaque via un code à distance et endommager le système complet.
Quelles sont les attaques SSRF les plus communes ?
Les attaques SSRF exploitent généralement la liaison entre une application web vulnérable et un serveur. Cela permet d’amplifier les attaques et les actions malveillantes. Voici les deux principales attaques SSRF.
Les attaques SSRF ciblant le serveur
Les attaques SSRF se servent d’une application web vulnérable pour envoyer des requêtes HTTP au serveur d’hébergement. Par exemple, le hacker peut utiliser l’API REST d’un site e-commerce, celle-ci permettant de savoir si un produit est toujours en stock. Elle fonctionne en transmettant une URL à l’API par le biais d’une requête. Ainsi, le navigateur effectue une requête HTTP pour fournir les informations pertinentes à l’utilisateur final, à savoir si le produit est en stock ou non.
Néanmoins, les hackers peuvent modifier les requêtes, spécifier une URL locale comme l’hôte d’administration et contourner les contrôles d’accès pour obtenir un accès administratif complet. Tout cela en utilisant un URL que le serveur considère comme de confiance.
Les attaques SSRF ciblant d’autres systèmes back-end
Une autre manière pour le SSRF d’exploiter la confiance gagnée est de faire interagir un serveur d’applications avec des systèmes back-end auxquels les utilisateurs ne peuvent normalement pas accéder. Ces systèmes disposent généralement d’une adresse IP privée, non-routable et d’un dispositif de sécurité assez faible. Un utilisateur non autorisé peut donc accéder à une fonctionnalité protégée en interagissant avec un système back-end.
Comment se protéger contre les attaques SSRF ?
Comme pour de nombreuses cyberattaques, les organisations seraient tentées de créer une Blacklist… Seulement, une liste noire peut toujours être contournée et n’est donc pas recommandée. Voici deux solutions à mettre en place au sein de l’entreprise.
Listes blanches et résolution DNS
Une approche solide pour éviter les attaques SSRF consiste à mettre sur une liste blanche les adresses IP ou les noms DNS auxquels votre application doit accéder. Il est essentiel que vous autorisiez efficacement l’entrée des utilisateurs.
Authentification sur les services internes à l’organisation
Les services tels que Redis, MongoDB, Elasticsearch et Memcached ne demandent pas de vérification par défaut. Un cyberhacker peut accéder à certains services sans vérification, en utilisant les vulnérabilités SSRF. Ainsi, pour renforcer la sécurité des applications web, il est préférable de mettre en place un système d’authentification chaque fois que vous le pouvez, y compris pour les services du réseau local.