Reconmind, accueil

Attaque

SSRF

Aussi appeléServer-Side Request ForgeryFalsification de requête côté serveur

En résumé

Une vulnérabilité où l’attaquant amène un serveur à émettre une requête vers une destination qu’il choisit. Le serveur, qui a accès à des ressources internes inaccessibles depuis Internet, devient un intermédiaire pour atteindre des services d’administration, des bases ou les métadonnées d’un fournisseur cloud.

SSRF, en détail

La SSRF (Server-Side Request Forgery) apparaît dès qu’une application récupère une ressource à partir d’une adresse fournie par l’utilisateur : import d’une image par URL, aperçu d’un lien, webhook, convertisseur de documents. Si l’adresse n’est pas strictement contrôlée, la requête peut viser des adresses internes (réseau privé, localhost) que le serveur atteint et que l’attaquant, de l’extérieur, n’atteint pas.

Dans le cloud, la cible classique est le service de métadonnées de l’instance, accessible à une adresse locale fixe. Il peut renvoyer des identifiants temporaires associés au rôle de la machine. Une SSRF y donne alors accès aux ressources cloud que ce rôle autorise. Les versions récentes de ces services (par exemple IMDSv2 chez AWS) exigent un jeton préalable, ce qui bloque une grande part des SSRF simples.

Les contre-mesures combinent une liste d’autorisation des destinations permises plutôt qu’une liste d’interdictions, la résolution et la validation des adresses côté serveur après suivi des redirections, l’isolation des composants qui émettent des requêtes sortantes, et des règles de filtrage du trafic sortant. Les rôles de machine doivent rester minimaux, pour limiter ce que vole une SSRF réussie.

Qu’est-ce que cela change pour vous ?

La SSRF fait d’un défaut applicatif en apparence modeste un point d’entrée vers votre réseau interne ou votre compte cloud. Sa gravité dépend du rôle de la machine et de la segmentation en aval, d’où l’intérêt d’évaluer l’ensemble, pas la seule application.

Exemple illustratif (fictif)

Imaginons une fonction d’import de logo par URL, sur une application hébergée dans le cloud, qui accepte n’importe quelle adresse. En la dirigeant vers le service de métadonnées de l’instance, un analyste pourrait récupérer des identifiants temporaires dont le rôle donne accès à un espace de stockage de sauvegardes.

La confusion fréquente

Se contenter d’interdire quelques adresses évidentes comme localhost. Les contournements par redirection, par écriture alternative d’adresse IP ou par résolution DNS piégée sont courants : une liste d’autorisation est plus sûre qu’une liste d’interdictions.

Comment le détecter chez vous ?

Aller plus loin

Termes liés

  • AttaqueExécution de code à distance : définitionUne vulnérabilité qui permet à un attaquant d’exécuter ses propres commandes ou son propre code sur un système distant, sans y avoir d’accès légitime.
  • DéfenseSegmentation réseau : définitionLe découpage d’un réseau en zones distinctes, dont les échanges sont limités par des règles de filtrage explicites.
  • DéfenseMoindre privilège : définitionLe principe selon lequel chaque utilisateur, application ou service ne dispose que des droits strictement nécessaires à sa tâche, pour la durée nécessaire.
  • TechniqueSurface d’attaque : définitionL’ensemble des points par lesquels un attaquant peut tenter d’entrer dans un système ou d’en extraire des données : services exposés sur Internet, applications, API, comptes, équipements, partenaires, et collaborateurs.

Revenir au glossaire complet

Réponse à toute demande sous 24 h ouvrées

Un périmètre à faire tester ?

Le cadrage est gratuit et sans engagement. Trente minutes suffisent à savoir si une mission est pertinente, laquelle, et ce qu’elle coûterait.

  • Accord de confidentialité systématique
  • Cadrage gratuit et sans engagement
  • Périmètre et prix écrits avant le début