Autorisation au niveau de l'objet brisé

Autorisation au niveau de l'objet brisé

Modifiez un identifiant dans l'URL et lisez le dossier d'un étranger.

Qu'est-ce que Autorisation au niveau de l'objet brisé?

L'autorisation au niveau de l'objet brisée, également appelée BOLA ou IDOR, est la vulnérabilité d'API la plus courante. Le point de terminaison renvoie l'objet nommé par un identifiant dans la requête sans vérifier qu'il appartient à l'appelant. Le jeton est honnête. Vous modifierez un seul numéro dans une URL par identifiant, lirez le dossier d'un étranger, puis intégrerez des identifiants séquentiels dans une récolte groupée. Le correctif compare le propriétaire de l'enregistrement à la session authentifiée et renvoie 404 au lieu de 403, de sorte qu'un identifiant rejeté ne peut pas être confirmé.

Ce que vous apprendrez dans Autorisation au niveau de l'objet brisé

Autorisation au niveau de l'objet brisé — Étapes de la formation

  1. Un cavalier ordinaire

    Larkway est une application de covoiturage qui permet à n'importe quel passager d'activer une API de voyages personnelle pour exporter ses propres reçus de course pour les notes de frais. Bob s'est inscrit en tant que pilote normal, avec une identité jetable, et l'a allumé. Son compte n'a rien de spécial : un simple siège de pilote avec un jeton qui lit ses propres voyages. Il ouvre la console développeur pour voir ce que l'API lui donne.

  2. Les identifiants de voyage ne sont que des chiffres

    Les propres voyages de Bob sont répertoriés avec leurs identifiants, et la référence API montre comment récupérer n'importe quel reçu de voyage par son identifiant. Deux choses ressortent de ces identifiants.

  3. Récupérer son propre voyage

    Tout d'abord, Bob appelle le point de terminaison de la manière dont il est censé être utilisé : il demande l'un de ses propres voyages par son identifiant, portant son propre jeton de passager dans un en-tête d'autorisation, exactement comme le fait l'application.

  4. Son voyage, comme prévu

    Le serveur renvoie exactement ce qu'il devrait : le propre voyage de Bob, car l'identifiant qu'il a demandé est le sien.

  5. Changer un numéro

    Bob envoie la même demande, portant le même jeton, et modifie uniquement l'identifiant, un en dessous du sien. Si le serveur vérifie qu'un voyage appartient à l'appelant, cela ne devrait rien renvoyer. S'il vérifie seulement que sa session est valide, il répondra.

  6. Le trajet de quelqu'un d'autre

    Il a répondu. Le propre jeton de cavalier de Bob vient d'effectuer un voyage qui n'a rien à voir avec lui.

  7. Parcourez la séquence

    Un étranger est une curiosité. Bob continue de décrémenter l'identifiant et chaque valeur renvoie un véritable reçu. Il en cherche un autre pour confirmer le schéma.

  8. Chaque cycliste, à grande échelle

    Les identifiants s'exécutent dans l'ordre et chacun répond. Cela transforme une seule fuite en une récolte.

  9. Contrôle des connaissances

    Vous venez de voir un passager valide lire les trajets d'étrangers en modifiant l'identifiant dans l'URL. Verrouillez pourquoi.

  10. L'alerte débarque

    Vous possédez l'API Trips destinée aux passagers de Larkway. Du jour au lendemain, la surveillance a signalé un jeton de passager effectuant des milliers de trajets qui n'étaient pas le sien. Les opérations de sécurité vous ont envoyé les détails par e-mail.

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

OWASP API Top 10

  • API1:2023 Broken Object Level Authorization

CWE

  • CWE-639 Authorization Bypass Through User-Controlled Key
  • CWE-862 Missing Authorization

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