Autorizzazione del livello di funzione interrotta

Autorizzazione del livello di funzione interrotta

L'accesso non equivale a quello consentito. Proteggi i percorsi amministrativi.

Cos’è Autorizzazione del livello di funzione interrotta?

Un'API conferma che il chiamante ha effettuato l'accesso, quindi esegue qualsiasi funzione richiesta, senza verificare che il suo ruolo possa invocarla. I controlli privilegiati sono nascosti nell'interfaccia mentre gli endpoint stessi non effettuano alcun controllo del ruolo, quindi qualsiasi token valido li raggiunge. Utilizzerai un token analista onesto di sola lettura per estrarre un elenco completo di clienti e mettere in coda un pagamento di grandi dimensioni, a ogni richiesta è stato risposto 200. Quindi spedisci una guardia authorize('admin') a livello di router che restituisce 403, quindi la superficie di amministrazione è negata per impostazione predefinita e le nuove rotte ereditano il controllo.

Cosa imparerai in Autorizzazione del livello di funzione interrotta

Autorizzazione del livello di funzione interrotta — Fasi della formazione

  1. Un posto di sola lettura

    Fennmark gestisce una piattaforma di pagamento e distribuisce account sviluppatore self-service a chiunque si iscriva. Bob ne prese uno, con un'identità usa e getta. Il suo posto è un analista: sola lettura, con ambito sandbox, niente di sensibile. Apre la console per sviluppatori per orientarsi su cos'è il suo account e cosa offre l'API.

  2. Funzioni di amministrazione, in bella vista

    La postazione di Bob è di sola lettura, quindi i controlli di amministrazione gli sono nascosti nell'interfaccia. Il riferimento API non è nascosto, tuttavia, ed elenca tutte le funzioni riservate allo staff accanto a quelle che può chiamare.

  3. Cosa dice il token

    Prima di toccare qualcosa di privilegiato, Bob controlla quale identità porta il suo token. Punta il tester API all'endpoint dell'account e invia il token di sessione in un'intestazione di autorizzazione, proprio come fa l'app.

  4. Un analista onesto

    Il server conferma esattamente ciò che Bob si aspettava. Il suo segno è autentico e dice chiaramente chi è.

  5. Chiama una funzione di amministrazione

    Bob mantiene la stessa richiesta e lo stesso token di sola lettura e modifica solo la risorsa nell'URL in una funzione di riferimento contrassegnata come riservata allo staff: l'elenco completo dei clienti. Se l'API controlla solo che la sua sessione sia valida e non controlla mai il suo ruolo, risponderà.

  6. L'intero elenco, per un analista

    La funzione di amministrazione ha risposto. Il token sandbox di sola lettura di Bob ha appena estratto i record dei clienti della piattaforma.

  7. Sposta i soldi

    Leggere i dati è una cosa. Bob ora chiama una funzione che cambia stato: l'endpoint di erogazione che mette in coda un pagamento. Lo invia con lo stesso token analista e indirizza la destinazione verso un account che controlla.

  8. Un pagamento, messo in coda da un account sandbox

    Anche la funzione di spostamento del denaro funzionava. Nessun amministratore, nessuna approvazione, nessuna credenziale speciale.

  9. Verifica della conoscenza

    Hai appena visto un account di sola lettura leggere l'elenco dei clienti e mettere in coda un pagamento. Blocca il perché.

  10. Arriva l'allerta

    Possiedi l'API di back-office di Fennmark. Durante la notte, il monitoraggio ha segnalato un account sviluppatore self-service che chiamava endpoint riservati al personale. Le operazioni di sicurezza ti hanno inviato via email i dettagli.

Copertura dei framework di sicurezza

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