Mauvaise configuration de la sécurité

Mauvaise configuration de la sécurité

Un paramètre CORS et n'importe quel site peut lire le compte.

Qu'est-ce que Mauvaise configuration de la sécurité?

Le code est correct et l'API n'est toujours pas sûre, car un paramètre lié à la sécurité est laissé dans un état dangereux. Celui-ci est CORS : l'API reflète l'origine qu'un appelant envoie dans Access-Control-Allow-Origin et définit Access-Control-Allow-Credentials sur true, indiquant aux navigateurs que n'importe quel site peut lire ses réponses avec le cookie de session du visiteur. Vous utiliserez une page de récompense qui envoie la réponse de l'API du compte à votre serveur, puis limiterez les origines autorisées à une liste explicite côté serveur. Le relire montre que CORS est appliqué par le navigateur, pas par le serveur.

Ce que vous apprendrez dans Mauvaise configuration de la sécurité

Mauvaise configuration de la sécurité — Étapes de la formation

  1. Une API conviviale pour le navigateur

    Corvexa est une application de finances personnelles : les utilisateurs associent leur banque et suivent leurs dépenses, et l'application Web Corvexa lit leur compte à partir de l'API de Corvexa directement dans le navigateur. Aujourd'hui, Bob cible Corvexa. Il veut des données de compte client qu'il peut hameçonner et revendre. Il possède son propre compte Corvexa jetable et il commence par consulter la documentation publique du développeur pour voir comment l'API est exposée au navigateur.

  2. Tout site est autorisé

    Une carte dans la documentation décrit comment l'API traite les requêtes provenant d'autres sites Web. Bob le lit attentivement.

  3. Demandez en tant que site de l'attaquant

    Bob rejoue la requête que fera sa page malveillante. Il pointe un client API vers le point de terminaison du compte et, exactement comme le ferait un navigateur, définit l'en-tête Origin sur son propre site. Il est connecté à son propre compte Corvexa jetable, la demande comporte donc une véritable session. Ce qui l'intéresse, ce n'est pas le corps, c'est ce que l'API dit au navigateur qu'il peut faire avec la réponse.

  4. L'API dit oui

    Regardez les en-têtes de réponse que l'API a renvoyés avec le compte.

  5. La page leurre

    Bob crée une page d'apparence inoffensive à héberger sur son propre site : une bannière de récompense Corvexa. Il s'affiche dans le navigateur de gauche ; sa source est ouverte dans l'éditeur de droite. À lui seul, il ne fait que montrer une offre $50.

  6. Armer la page

    Maintenant, Bob ajoute la charge utile. La bannière sera identique à celle d'un visiteur, mais la page appellera discrètement l'API du compte Corvexa depuis son navigateur et enverra tout ce qui reviendra à son propre serveur. Parce que l'API autorise son origine avec ses identifiants, le cookie du visiteur fait le reste.

  7. Comment fonctionne le vol

    La page affiche toujours uniquement la récompense versée à un visiteur. Découvrez ce que fait le script ajouté au moment où un client Corvexa connecté l'ouvre.

  8. Envoyez l'appât

    Le piège est prêt. Bob n'a besoin que d'un client Corvexa connecté pour l'ouvrir, il envoie donc le lien de récompense par e-mail à un client, déguisé en une véritable promotion Corvexa de son domaine similaire.

  9. Une récompense dans la boîte de réception

    Vous utilisez Corvexa vous-même et vous êtes actuellement connecté à votre compte dans votre navigateur. Un e-mail arrive offrant une récompense $50 Corvexa. L’offre semble plausible et l’image de marque semble correcte.

  10. Ouvrir le lien

    Vous cliquez pour réclamer la récompense, comme le feraient la plupart des gens. La page s'ouvre dans votre navigateur, contenant toujours votre session Corvexa en direct.

Couverture des référentiels de sécurité

OWASP API Top 10

  • API8:2023 Security Misconfiguration

CWE

  • CWE-942 Permissive Cross-domain Policy with Untrusted Domains
  • CWE-1188 Initialization of a Resource with an Insecure Default

CIS Controls

  • CIS 16 Application Software Security

NIST CSF

  • PR.AT-02 Individuals in specialized roles are provided with awareness and training so that they possess the knowledge and skills to perform relevant tasks with cybersecurity risks in mind
  • PR.PS Platform Security