Gestione impropria delle scorte
La vecchia versione API che hai dimenticato continua a rispondere.
Cos’è Gestione impropria delle scorte?
Un controllo di sicurezza copre solo gli endpoint che sai che sono in esecuzione. Le vecchie versioni API, gli endpoint non documentati e gli host dimenticati rimangono distribuiti al di fuori di quel quadro, continuando a servire il codice non protetto come sempre. Otterrai un 401 dalla versione corrente, modificherai un segmento URL da v2 a v1 e otterrai 200 con il nome, l'e-mail e l'indirizzo di casa di un cliente, quindi inserirai gli ID degli account in un elenco collettivo. La correzione ritira la vecchia versione in modo che ogni percorso sottostante restituisca 410 Gone. Deprecare nei documenti non è pensione.
Cosa imparerai in Gestione impropria delle scorte
- Riconoscere una gestione impropria dell'inventario: versioni API e host vecchi, non documentati o non di produzione lasciati in esecuzione e raggiungibili, al di fuori dei controlli applicati dalla versione corrente
- Tieni presente che un nuovo controllo (un gateway di autenticazione, un controllo) copre solo le versioni montate dietro di esso, quindi una versione precedente lasciata in produzione fornisce il codice di pre-controllo a chiunque
- Scopri come la modifica di un segmento URL dalla versione corrente a una deprecata raggiunge una build dimenticata e come un endpoint non autenticato si trasforma in un'esposizione di dati in blocco attraverso una semplice enumerazione
- Distinguerlo dall'autorizzazione a livello di oggetto non funzionante (un controllo di proprietà per record mancante all'interno di un endpoint autenticato) e dall'eccessiva esposizione dei dati (campi con restituzione eccessiva); qui l'intera versione viene eseguita senza autenticazione poiché non è mai stata ritirata
- Applica la correzione: ritira le versioni non supportate in modo che restituiscano 410 Gone ed escano dalla produzione e mantieni un inventario di ogni versione, ambiente e host distribuito in modo che nulla venga eseguito inosservato
Gestione impropria delle scorte — Fasi della formazione
-
Una vecchia versione, ancora elencata
Emberline è un'app solare ed energetica domestica: i clienti collegano i loro pannelli e la batteria e l'app legge il loro account dall'API di Emberline. Oggi Bob prende di mira Emberline. Non ha né account né token; vuole solo un elenco di clienti e dove vivono, per vendere. Inizia con i documenti pubblici degli sviluppatori di Emberline per apprendere l'API.
-
Deprecato, non sparito
I documenti descrivono due versioni API. Bob legge come sono etichettati ciascuno e un'etichetta attira la sua attenzione.
-
Chiedi la versione attuale
Per prima cosa Bob chiama la versione corrente nel modo descritto dai documenti: chiede un account tramite il suo ID, utilizzando l'ID di esempio dal riferimento. Non ha token, quindi questo è il caso non autenticato. Se il gateway sta facendo il suo lavoro, dovrebbe rifiutarlo.
-
Il gateway rifiuta
La versione attuale ha fatto esattamente quello che doveva.
-
Cambia un segmento
Bob invia la stessa richiesta, sempre senza token, e cambia solo una cosa: la versione nell'URL, da v2 a v1 , la build deprecata. Tutto il resto è identico. Se la vecchia versione fosse davvero scomparsa, questo non dovrebbe raggiungere nulla.
-
Risponde la versione dimenticata
La stessa richiesta che il gateway ha appena rifiutato è tornata con i dati.
-
Fai i conti
Un record è un avviso. Poiché v1 non richiede alcun token, nulla impedisce a Bob di spostare gli ID account. Mantiene la versione su v1 e cambia l'ID al cliente successivo.
-
Ogni cliente, su larga scala
Un altro id, un altro cliente reale.
-
Verifica della conoscenza
Hai appena osservato un utente malintenzionato senza account leggere i record dei clienti cambiando la versione nell'URL. Blocca il perché.
-
Arriva l'allerta
Possiedi il gateway API di Emberline e il ciclo di vita di ogni versione API dietro di esso. Durante la notte, il monitoraggio ha segnalato migliaia di letture non autenticate sul vecchio endpoint degli account /v1 , da un singolo indirizzo, percorrendo gli ID degli account in sequenza. Le operazioni di sicurezza ti hanno inviato un'e-mail.
Copertura dei framework di sicurezza
OWASP API Top 10
- API9:2023 Improper Inventory Management
CWE
- CWE-1059 Insufficient Technical Documentation
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