Autorisatie op objectniveau verbroken

Autorisatie op objectniveau verbroken

Verander één ID in de URL en lees het record van een vreemde.

Wat is Autorisatie op objectniveau verbroken?

Kapotte autorisatie op objectniveau, ook wel BOLA of IDOR genoemd, is de meest voorkomende API-kwetsbaarheid. Het eindpunt retourneert het object dat wordt genoemd door een ID in de aanvraag zonder te controleren of het bij de aanroeper hoort. Het teken is eerlijk. U wijzigt een enkel getal in een by-id-URL, leest het record van een vreemde en voert vervolgens opeenvolgende identificatiegegevens naar een bulkoogst. De oplossing vergelijkt de eigenaar van het record met de geverifieerde sessie en retourneert 404 in plaats van 403, zodat niet kan worden bevestigd dat een afgewezen ID bestaat.

Wat je leert in Autorisatie op objectniveau verbroken

Autorisatie op objectniveau verbroken — Trainingsstappen

  1. Een gewone ruiter

    Larkway is een rittenapp waarmee elke passagier een persoonlijke Trips API kan inschakelen om zijn eigen ritbewijzen te exporteren voor onkostendeclaraties. Bob meldde zich aan als een normale rijder, met een wegwerpidentiteit, en zette hem aan. Zijn verhaal is niets bijzonders: een eenvoudige bestuurdersstoel met een token waarop zijn eigen reizen staan ​​vermeld. Hij opent de ontwikkelaarsconsole om te zien wat de API hem biedt.

  2. Reis-ID's zijn slechts cijfers

    Bob's eigen reizen worden vermeld met hun ID's, en de API-referentie laat zien hoe je een afzonderlijk reisbewijs kunt ophalen aan de hand van de ID. Er vallen twee dingen op aan deze ID's.

  3. Haal zijn eigen reis

    Eerst roept Bob het eindpunt aan zoals het bedoeld is: hij vraagt om een van zijn eigen ritten aan de hand van zijn id, met zijn eigen rijdertoken in een autorisatiekop, precies zoals de app dat doet.

  4. Zijn reis, zoals verwacht

    De server retourneert precies wat hij zou moeten retourneren: Bob's eigen reis, omdat de id waar hij om vroeg de zijne is.

  5. Verander één getal

    Bob verzendt hetzelfde verzoek, met hetzelfde token, en verandert alleen de ID, één onder de zijne. Als de server controleert of een trip van de beller is, zou dit niets moeten opleveren. Als het alleen controleert of zijn sessie geldig is, zal het antwoorden.

  6. De rit van iemand anders

    Het antwoordde. Bob's eigen rijderfiche heeft zojuist een rit gemaakt die niets met hem te maken heeft.

  7. Loop de reeks

    Eén vreemdeling is een curiosum. Bob blijft de ID verlagen en elke waarde retourneert een echt ontvangstbewijs. Hij pakt er nog een om het patroon te bevestigen.

  8. Elke rijder, op schaal

    De ID's worden op volgorde uitgevoerd en elke ID antwoordt. Zo wordt een enkel lek een oogst.

  9. Kennis check

    Je hebt zojuist gezien hoe een geldige passagier de ritten van vreemden las door de ID in de URL te wijzigen. Leg vast waarom.

  10. De waarschuwing komt binnen

    U bent eigenaar van de op passagiers gerichte Trips API van Larkway. Van de ene op de andere dag markeerde de monitoring één rijdertoken die duizenden ritten maakte die niet de zijne waren. Security Operations heeft u de details per e-mail gestuurd.

Dekking van beveiligingsframeworks

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