Ethical Hacking Academy · Leçon

Métadonnées et SSRF

Attaques propres au cloud

Leçon 4 sur 413 étapes

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-role

Qu’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-role

Utilisation 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-identity

IMDSv2 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.

Gratuit pour commencer

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

  1. Surface d’attaque du cloud
  2. Mauvaises configurations IAM
  3. Exposition de S3 et du stockage
  4. Métadonnées et SSRF
← Retour à Ethical Hacking Academy