Autorizzazione a livello di oggetto interrotta

Autorizzazione a livello di oggetto interrotta

Cambia un ID nell'URL e leggi il record di uno sconosciuto.

Cos’è Autorizzazione a livello di oggetto interrotta?

L'autorizzazione a livello di oggetto interrotta, chiamata anche BOLA o IDOR, è la vulnerabilità API più comune. L'endpoint restituisce l'oggetto denominato da un identificatore nella richiesta senza verificare che appartenga al chiamante. Il gettone è onesto. Cambierai un singolo numero in un URL per ID, leggerai il record di uno sconosciuto, quindi inserirai gli identificatori sequenziali in una raccolta collettiva. La correzione confronta il proprietario del record con la sessione autenticata e restituisce 404 anziché 403, quindi non è possibile confermare l'esistenza di un ID rifiutato.

Cosa imparerai in Autorizzazione a livello di oggetto interrotta

Autorizzazione a livello di oggetto interrotta — Fasi della formazione

  1. Un cavaliere qualunque

    Larkway è un'app di ride-hailing e consente a qualsiasi ciclista di attivare un'API Trips personale per esportare le proprie ricevute di corsa per le note spese. Bob si è iscritto come pilota normale, con un'identità usa e getta, e l'ha attivata. Il suo resoconto non è niente di speciale: un semplice sedile da pilota con un token che legge i suoi viaggi. Apre la console per sviluppatori per vedere cosa gli offre l'API.

  2. Gli ID di viaggio sono solo numeri

    I viaggi di Bob sono elencati con i relativi ID e il riferimento API mostra come recuperare ogni singola ricevuta di viaggio in base al relativo ID. Due cose risaltano in questi ID.

  3. Prendi il suo viaggio

    Per prima cosa Bob chiama l'endpoint nel modo in cui deve essere utilizzato: richiede uno dei suoi viaggi tramite il suo ID, portando il proprio rider token in un'intestazione di autorizzazione, esattamente come fa l'app.

  4. Il suo viaggio, come previsto

    Il server restituisce esattamente ciò che dovrebbe: il viaggio di Bob, perché l'ID richiesto è il suo.

  5. Cambia un numero

    Bob invia la stessa richiesta, portando con sé lo stesso token, e cambia solo l'id, uno sotto il suo. Se il server verifica che un viaggio appartiene al chiamante, questo non dovrebbe restituire nulla. Se controlla solo che la sua sessione sia valida, risponderà.

  6. Il giro di qualcun altro

    Ha risposto. Il token pilota di Bob ha appena effettuato un viaggio che non ha nulla a che fare con lui.

  7. Segui la sequenza

    Uno sconosciuto è una curiosità. Bob continua a diminuire l'ID e ogni valore restituisce una ricevuta reale. Ne prende un altro per confermare lo schema.

  8. Ogni ciclista, su larga scala

    Gli ID vengono eseguiti in sequenza e ognuno risponde. Ciò trasforma una singola perdita in un raccolto.

  9. Verifica della conoscenza

    Hai appena visto un utente valido leggere i viaggi di sconosciuti modificando l'ID nell'URL. Blocca il perché.

  10. Arriva l'allerta

    Possiedi l'API Trips rivolta agli utenti di Larkway. Durante la notte, il monitoraggio ha segnalato un token di un ciclista che effettuava migliaia di viaggi che non erano i suoi. Le operazioni di sicurezza ti hanno inviato via email i dettagli.

Copertura dei framework di sicurezza

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