Domain IP Lookup

Le SSRF transforme un serveur en proxy malgré lui

Attaquant

fabrique une URL de requête

Serveur vulnérable

la récupère, dupé par le SSRF

169.254.169.254

le point de terminaison des métadonnées

Identifiants

renvoyés à l'attaquant

Sécurité

Métadonnées cloud : la surface d'attaque cachée

3 min de lecture

Chaque grand fournisseur cloud expose un service de métadonnées d'instance aux machines virtuelles qui s'exécutent sur sa plateforme, en général accessible à l'adresse de lien local 169.254.169.254. Depuis l'intérieur de l'instance, une simple requête HTTP vers cette adresse peut renvoyer la configuration de l'instance, des informations réseau et, dans de nombreuses configurations par défaut, des identifiants de sécurité temporaires associés au rôle ou à l'identité attribué à l'instance.

Pourquoi c'est particulièrement dangereux combiné à une SSRF

Le point de terminaison de métadonnées n'est censé être joignable que depuis l'instance elle-même : il n'est pas exposé à l'internet public. Mais si un processus côté serveur peut être amené à émettre une requête HTTP vers une adresse choisie par un attaquant (SSRF classique), et que cette adresse se trouve être le point de terminaison de métadonnées, l'attaquant fait récupérer au serveur ses propres identifiants cloud et les lui fait renvoyer dans la réponse. Aucun accès réseau direct au point de terminaison de métadonnées n'est nécessaire depuis l'extérieur : le serveur vulnérable effectue la récupération pour le compte de l'attaquant.

  • 169.254.169.254 fait partie de la plage de lien local plus large 169.254.0.0/16, qui ne devrait jamais être traitée comme une cible légitime de résolution DNS publique.
  • Certains fournisseurs sont passés à une version du service de métadonnées protégée par jeton, précisément pour compliquer les SSRF les plus naïves, mais bloquer purement et simplement l'adresse au niveau applicatif reste la défense la plus robuste.
  • C'est exactement pourquoi les adresses de lien local doivent figurer sur la même liste de blocage que les plages privées et de bouclage dans tout outil qui résout des domaines fournis par l'utilisateur : ce n'est pas une catégorie de risque distincte ni secondaire.

L'enseignement à retenir en pratique

Tout système qui résout et appelle une URL pour le compte d'un utilisateur doit considérer 169.254.169.254, ainsi que toute la plage de lien local dans laquelle elle se trouve, comme strictement interdite. La vérification doit avoir lieu au moment de la requête réelle, à chaque fois, quelle que soit la manière dont l'adresse a été obtenue (saisie directement, ou atteinte via un enregistrement DNS qui pointe droit dessus).

Ce n'est pas propre à un seul fournisseur cloud

L'adresse 169.254.169.254 est précisément la convention d'AWS, de Google Cloud et d'Azure, mais le schéma sous-jacent, une adresse de lien local qui expose l'identité et les identifiants de l'instance à elle seule, se retrouve sous une forme ou une autre sur pratiquement toutes les grandes plateformes cloud et de conteneurs, parfois à la même adresse, parfois à une adresse propre au fournisseur. Les clusters Kubernetes disposent couramment de leurs propres points de terminaison internes de type métadonnées, accessibles depuis l'intérieur d'un pod. Il vaut la peine de mémoriser l'adresse exacte pour les principaux fournisseurs cloud, mais c'est le principe général qui se généralise vraiment : considérez tout point de terminaison de type métadonnées comme interdit à tout ce qui résout et récupère une URL fournie par l'utilisateur, quelle que soit la plateforme sur laquelle il s'exécute.

IMDSv2 : une vraie mesure d'atténuation, pas un simple filtre

La réponse d'AWS à des années d'exploitation de ce schéma précis a été une seconde version de son service de métadonnées, IMDSv2, qui exige un jeton de session obtenu via une requête PUT spécifique avant de pouvoir lire la moindre métadonnée. Point essentiel : cette requête PUT ne peut pas être reproduite par la simple requête GET que déclenche une SSRF et qu'émettent la plupart des chemins de code vulnérables.

IMDSv1IMDSv2
Type de requêteGET simplePUT pour obtenir un jeton, puis GET avec ce jeton
Vulnérable à un GET SSRF basique ?OuiNon : une SSRF limitée au GET ne peut pas obtenir de jeton
AdoptionValeur par défaut héritée sur de nombreux comptesFacultatif ou imposé, selon les paramètres du compte

C'est une amélioration significative, mais elle est facultative sur de nombreux comptes pour des raisons de rétrocompatibilité, et elle ne protège que le point de terminaison de métadonnées : elle ne fait rien contre toutes les autres adresses privées et internes qu'une SSRF pourrait encore atteindre. Le filtrage applicatif des adresses résolues reste nécessaire quelle que soit la version du service de métadonnées utilisée.

Besoin de vérifier les adresses DNS publiques d'un domaine ? Utilisez l'outil Domain IP Lookup.

À lire aussi

La même adresse, quatre façons de l'écrire

127.0.0.1Notation décimale pointée standard
2130706433La même adresse sous forme d'entier simple
0x7f.0.0.1La même adresse en hexadécimal
127.1La même adresse, forme abrégée
Sécurité

Attaques SSRF expliquées : comment le DNS est exploité

Une falsification de requête côté serveur commence souvent par un simple nom de domaine que votre serveur a été piégé à résoudre puis à interroger.

3 min de lecture

Le même domaine, deux réponses différentes

Première requête

résolue vers une IP publique

Validation

réussie : semble sûre

Expiration du TTL

quelques secondes plus tard

Seconde requête

résolue vers 127.0.0.1

Sécurité

Qu'est-ce que le DNS rebinding et pourquoi s'en soucier ?

Un domaine qui se résout d'abord vers une adresse sûre, puis vers une adresse interne : le DNS rebinding fait du DNS lui-même une surface d'attaque.

3 min de lecture

Les enregistrements que vous croiserez dans presque toutes les zones

ANom d'hôte vers une adresse IPv4
AAAANom d'hôte vers une adresse IPv6
CNAMENom d'hôte vers un autre nom d'hôte
MXDomaine vers ses serveurs de messagerie, par priorité
TXTDomaine vers du texte libre : SPF, DKIM, vérification
NSDomaine vers les serveurs de noms qui répondent pour lui
Sécurité

Enregistrement CAA : qui peut émettre vos certificats ?

Découvrez comment les enregistrements DNS CAA désignent les émetteurs de certificats autorisés et comment éviter les erreurs de configuration courantes.

4 min de lecture