Broken Object Level Authorization in the Wild: An Empirical Taxonomy from 100+ Bug Bounty Disclosures
Questo documento presenta un'analisi empirica su larga scala di 107 rapporti di bug bounty classificati, rivelando che la famiglia di vulnerabilità BOLA a livello di azione è dominante ma sottorappresentata e dimostrando che la dipendenza dai tag della piattaforma sovrastima significativamente la prevalenza dell'autorizzazione a livello di oggetto rotta.
Articolo originale sotto licenza CC BY 4.0 (http://creativecommons.org/licenses/by/4.0/). Questa è una spiegazione generata dall'IA dell'articolo qui sotto. Non è stata scritta né approvata dagli autori. Per precisione tecnica, consulta l'articolo originale. Leggi il disclaimer completo
Immagina di camminare attraverso un enorme complesso residenziale ad alta tecnologia. Hai una tessera chiave che ti permette di entrare nell'edificio (autenticazione), ma la vera sicurezza dovrebbe consistere nel verificare quale specifico appartamento hai il permesso di entrare.
La Autorizzazione a Livello di Oggetto Rotto (BOLA) è ciò che accade quando la guardia di sicurezza dell'edificio dimentica di controllare la tua tessera chiave rispetto al numero specifico dell'appartamento che stai cercando di aprire. Potresti essere un residente valido, ma provi ad aprire l'appartamento 402, e la guardia dice semplicemente: "Certo, vai pure", senza verificare se il 402 ti appartiene.
Questo documento è un'indagine massiccia su 107 rapporti di sicurezza reali provenienti da un programma di bug bounty (dove gli hacker vengono pagati per trovare queste falle). I ricercatori volevano andare oltre i consigli di sicurezza "teorici" e guardare cosa sta realmente accadendo nel mondo reale.
Ecco la sintesi delle loro scoperte, utilizzando analogie semplici:
1. Il problema del "Rumore sulle Etichette" (I Falsi Allarmi)
I ricercatori hanno iniziato esaminando 200 rapporti etichettati come "IDOR" (un nome comune per questo tipo di bug) su HackerOne.
- La Scoperta: Solo il 42% di quei rapporti era effettivamente il vero affare.
- L'Analogia: Immagina un sistema di allarme antincendio che si attiva 200 volte. I ricercatori hanno scoperto che il 39% delle volte non c'era affatto un incendio: era solo qualcuno che bruciava del toast, una doccia piena di vapore o un sensore rotto.
- Conclusione: Solo perché un sistema è etichettato come "IDOR" non significa che abbia la specifica e pericolosa vulnerabilità "Oggetto Rotto". I team di sicurezza spesso sovrastimano il rischio perché si fidano troppo delle etichette.
2. I Due Principali Cattivi (La Tassonomia)
I ricercatori hanno classificato i bug reali in sei categorie. Due di esse sono state le chiare vincitrici, rappresentando quasi l'80% di tutti i casi:
Cattivo A: Il "Riferimento Diretto all'Oggetto" (Il Trucco dell'Elenco Telefonico)
- Cos'è: Vedi un URL come
website.com/fattura/101. Cambi il numero in102e improvvisamente vedi la fattura di qualcun altro. - L'Analogia: È come camminare verso una fila di cassette postali. Sai che la tua è la #101. Provi la #102, la serratura è rotta, quindi la apri e leggi la posta del tuo vicino.
- Frequenza: Questo è accaduto nel 37% dei casi.
- Cos'è: Vedi un URL come
Cattivo B: L'"Oggetto a Livello di Azione" (Il Vandalismo)
- Cos'è: Questa è la grande sorpresa. Non si tratta solo di leggere i dati di qualcun altro; si tratta di modificarli o cancellarli.
- L'Analogia: Ti avvicini alla cassetta postale del tuo vicino (che non dovresti toccare) e, invece di leggere solo la posta, strappi la cassetta dal muro, cancelli le sue email o trasferisci i suoi soldi.
- Frequenza: Questo è accaduto nel 42% dei casi.
- Perché è importante: La maggior parte delle guide sulla sicurezza si concentra sulla "lettura" dei dati. Questo documento dice: "Ehi, i cattivi in realtà stanno distruggendo e modificando i dati più spesso di quanto non facciano semplicemente spiando".
3. Gli Altri Cattivi Subdoli
Il restante 20% dei bug era più complesso:
- Isolamento dei Tenant: Sei in un edificio per uffici condiviso. Provi ad aprire la porta del suite di un'altra azienda e la serratura fallisce.
- Contesto del Flusso di Lavoro: Sei stato licenziato da un'azienda, ma il sistema ti permette ancora di accedere ai file "archiviati" di un progetto su cui lavoravi perché il sistema ha dimenticato di aggiornare il tuo stato.
- Divulgazione a Catena: Non riesci a indovinare l'ID, ma trovi un elenco di ID in un'altra parte dell'app (come una ricevuta) e usi quell'elenco per entrare negli account di altre persone.
- Rilegatura dell'Oggetto: Inganni il sistema facendogli credere che tu possiedi l'oggetto modificando un campo nascosto nella richiesta (come cambiare il nome del "Proprietario" su un documento).
4. La Sorpresa "Verticale" (La Corsa in Ascensore)
Di solito, pensiamo a questi attacchi come "Orizzontali" (Utente A che ruba da Utente B).
- La Scoperta: Il 12% delle volte, un utente normale è riuscito ad accedere o cancellare cose appartenenti a un Amministratore.
- L'Analogia: Un residente normale del complesso residenziale riesce a entrare nell'ufficio privato del gestore dell'edificio e cancellare le chiavi master.
- Conclusione: Questo è un enorme rischio che la maggior parte delle liste di controllo sulla sicurezza ignora perché assume che "gli Amministratori siano al sicuro".
5. Gli ID "Magici" Non Funzionano
Gli sviluppatori spesso pensano: "Se non usiamo numeri semplici come 1, 2, 3, ma invece usiamo codici lunghi e casuali (UUID) o stringhe codificate, siamo al sicuro".
- La Scoperta: Il 39% degli attacchi riusciti ha utilizzato questi ID "complessi".
- L'Analogia: I cattivi hanno trovato un modo per decodificare il "codice segreto" sulla cassetta postale, hanno capito che era solo un numero nascosto, e poi hanno semplicemente incrementato il numero per arrivare alla cassetta successiva.
- Conclusione: Nascondere l'ID non risolve il problema. Il server deve ancora verificare se possiedi l'oggetto, indipendentemente da come appare l'ID.
6. La "Fessura" GraphQL
Il documento ha scoperto che molte applicazioni moderne utilizzano un sistema chiamato GraphQL. Questi sistemi utilizzano "ID Globali" (come gid://hackerone/Report/123).
- La Scoperta: Gli attaccanti hanno scoperto che se decodificavano questi ID, rivelavano i numeri sequenziali sottostanti, permettendo loro di indovinare facilmente il prossimo ID.
- Conclusione: Solo perché un ID sembra una stringa complessa di caratteri non significa che sia casuale.
Riepilogo per la Persona Comune
Questo documento ci dice che:
- Non fidarti delle etichette: Solo perché un sistema è segnalato come avente un bug specifico non significa che sia effettivamente rotto in quel modo specifico.
- I cattivi sono distruttivi: Non stanno solo rubando dati; li stanno cancellando e modificando più spesso di quanto pensassimo.
- I codici segreti non bastano: Usare ID complessi non ferma gli hacker se il server non controlla chi possiede i dati.
- Gli utenti normali possono danneggiare gli amministratori: Un account utente normale può talvolta entrare nel "roba del capo".
Il documento conclude che i test di sicurezza devono cambiare. Dobbiamo smettere di controllare solo se puoi leggere i dati di qualcun altro e iniziare a controllare se puoi cancellarli o modificarli, e dobbiamo testare se gli utenti normali possono accidentalmente (o intenzionalmente) entrare nella roba dell'amministratore.
Sommerso dagli articoli nel tuo campo?
Ricevi digest giornalieri degli articoli più recenti corrispondenti alle tue parole chiave di ricerca — con riassunti tecnici, nella tua lingua.