↩️SSRF
SSRF : Server-Side Request Forgery
Une attaque SSRF (Server-Side Request Forgery) est une vulnérabilité de sécurité web dans laquelle un attaquant peut amener un serveur à faire des requêtes HTTP à des ressources qu'il ne devrait pas atteindre. Cela peut permettre à l'attaquant de contourner les contrôles de sécurité, accéder à des informations sensibles, ou même interagir avec des systèmes internes non accessibles directement depuis Internet.
L'attaque se déroule côté serveur car c'est le serveur qui est manipulé pour envoyer les requêtes.
Fonctionnement d'une attaque SSRF
Injection de l'URL malveillante:
L'attaquant trouve un moyen d'injecter une URL dans une requête effectuée par le serveur. Cela peut se faire par des formulaires de soumission, des paramètres de requête, ou d'autres entrées utilisateur non correctement validées.
Exécution de la requête par le serveur:
Le serveur, agissant comme un proxy, fait une requête à l'URL spécifiée par l'attaquant.
Exploitation:
L'attaquant peut exploiter cette requête pour accéder à des informations sensibles, interagir avec des services internes (comme des bases de données ou des API internes), ou même scanner des réseaux internes.
Conséquences d'une attaque SSRF
Accès non autorisé aux systèmes internes: L'attaquant peut accéder à des systèmes internes, potentiellement non sécurisés, qui ne sont pas directement exposés à Internet.
Exfiltration de données: L'attaquant peut lire des fichiers ou des données sensibles en exploitant des services internes.
Exécution de commandes: Dans certains cas, l'attaquant peut provoquer l'exécution de commandes sur les systèmes internes.
Scan de réseau interne: L'attaquant peut utiliser le serveur pour scanner le réseau interne et trouver d'autres vulnérabilités.
Prévention des attaques SSRF
Validation stricte des entrées utilisateur:
Validez et filtrez les entrées utilisateur pour empêcher l'injection de URL malveillantes.
Liste blanche d'URL:
Utilisez une liste blanche pour les URL autorisées afin de restreindre les destinations des requêtes effectuées par le serveur.
Désactivation des redirections internes:
Configurez les bibliothèques HTTP pour désactiver le suivi des redirections afin d'éviter que l'attaquant ne redirige la requête vers une ressource interne.
Isolation des services internes:
Placez les services internes dans des segments de réseau isolés et appliquez des règles de pare-feu strictes pour restreindre l'accès.
Utilisation de tokens d'authentification:
Implémentez des mécanismes d'authentification pour les services internes afin de vérifier l'origine des requêtes.
Exemple d'attaque SSRF
Code vulnérable
Dans cet exemple, un attaquant pourrait passer une URL malveillante via le paramètre url pour accéder à des ressources internes.
Exemple sécurisé
Pratiques recommandées
Surveiller et journaliser les requêtes: Mettez en place une surveillance et une journalisation des requêtes effectuées par le serveur pour détecter toute activité suspecte.
Éducation et formation: Sensibilisez et formez les développeurs sur les risques SSRF et les meilleures pratiques pour sécuriser les applications.
Revue de code: Effectuez des revues de code régulières pour identifier et corriger les vulnérabilités SSRF.
En appliquant ces mesures de prévention et de sécurité, vous pouvez protéger vos applications contre les attaques SSRF et minimiser les risques associés.
Mis à jour