Autorisatie op functieniveau verbroken

Autorisatie op functieniveau verbroken

Ingelogd is niet hetzelfde als toegestaan. Bewaak de beheerroutes.

Wat is Autorisatie op functieniveau verbroken?

Een API bevestigt dat een beller is aangemeld en voert vervolgens de functie uit waar hij om vraagt, zonder te controleren of zijn rol deze kan aanroepen. Bevoorrechte besturingselementen zijn verborgen in de interface, terwijl de eindpunten zelf geen rolcontrole uitvoeren, zodat elk geldig token deze bereikt. Je gebruikt een eerlijk, alleen-lezen analistentoken om een ​​volledige klantenlijst op te halen en een grote uitbetaling in de wachtrij te zetten, waarbij elk verzoek 200 wordt beantwoord. Vervolgens verzend je een authorize('admin') -bewaker op routerniveau die 403 retourneert, zodat het beheerdersoppervlak standaard wordt geweigerd en nieuwe routes de cheque overnemen.

Wat je leert in Autorisatie op functieniveau verbroken

Autorisatie op functieniveau verbroken — Trainingsstappen

  1. Een alleen-lezen stoel

    Fennmark beheert een betalingsplatform en deelt zelfbedieningsontwikkelaarsaccounts uit aan iedereen die zich aanmeldt. Bob nam er een, met een wegwerpidentiteit. Zijn zetel is een analist: alleen-lezen, sandboxgericht, niets gevoeligs. Hij opent de ontwikkelaarsconsole om te zien wat zijn account is en wat de API te bieden heeft.

  2. Beheerfuncties, duidelijk zichtbaar

    De stoel van Bob is alleen-lezen, dus de beheerdersbedieningen zijn voor hem verborgen in de interface. De API-referentie is echter niet verborgen en bevat alle functies die alleen voor het personeel toegankelijk zijn, naast de functies die hij mag aanroepen.

  3. Wat het teken zegt

    Voordat hij iets bevoorrechts aanraakt, controleert Bob welke identiteit zijn eigen token draagt. Hij wijst de API-tester naar het accounteindpunt en verzendt zijn sessietoken in een autorisatieheader, op dezelfde manier als de app dat doet.

  4. Een eerlijke analist

    De server bevestigt precies wat Bob had verwacht. Zijn teken is echt en het zegt duidelijk wat hij is.

  5. Roep een beheerdersfunctie op

    Bob behoudt hetzelfde verzoek en hetzelfde alleen-lezen token, en verandert alleen de bron in de URL naar een functie die in de referentie is gemarkeerd als alleen voor personeel: het volledige klantenbestand. Als de API alleen controleert of zijn sessie geldig is en nooit zijn rol controleert, zal hij antwoorden.

  6. De hele selectie, aan een analist

    De admin-functie antwoordde. Bob's alleen-lezen sandbox-token heeft zojuist de klantrecords van het platform opgehaald.

  7. Verplaats het geld

    Gegevens lezen is één ding. Bob roept nu een functie aan die van status verandert: het uitbetalingseindpunt dat een uitbetaling in de wachtrij plaatst. Hij verzendt het met hetzelfde analistentoken en wijst de bestemming naar een account dat hij beheert.

  8. Een uitbetaling, in de wachtrij geplaatst door een sandbox-account

    De geldverplaatsingsfunctie functioneerde ook. Geen beheerder, geen goedkeuring, geen speciale referentie.

  9. Kennis check

    Je hebt zojuist gezien hoe een alleen-lezen-account het klantenbestand las en een uitbetaling in de wachtrij zette. Leg vast waarom.

  10. De waarschuwing komt binnen

    U bent eigenaar van de backoffice-API van Fennmark. Van de ene op de andere dag werd door de monitoring een zelfbedieningsontwikkelaarsaccount gemarkeerd dat alleen-personeelseindpunten aanriep. Security Operations heeft u de details per e-mail gestuurd.

Dekking van beveiligingsframeworks

OWASP API Top 10

  • API5:2023 Broken Function Level Authorization

CWE

  • CWE-285 Improper Authorization
  • 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