Errata configurazione della sicurezza

Errata configurazione della sicurezza

Un'impostazione CORS e qualsiasi sito può leggere l'account.

Cos’è Errata configurazione della sicurezza?

Il codice è corretto e l'API non è ancora sicura, perché un'impostazione rilevante per la sicurezza viene lasciata in uno stato pericoloso. Questo è CORS: l'API riflette qualunque origine un chiamante invii a Access-Control-Allow-Origin e imposta Access-Control-Allow-Credentials su true, dicendo ai browser che qualsiasi sito può leggere le sue risposte con il cookie di sessione del visitatore. Utilizzerai una pagina di ricompensa che invia la risposta dell'API dell'account al tuo server, quindi limiterai le origini consentite a un elenco esplicito sul lato server. La riproduzione mostra che CORS è applicato dal browser, non dal server.

Cosa imparerai in Errata configurazione della sicurezza

Errata configurazione della sicurezza — Fasi della formazione

  1. Un'API intuitiva per i browser

    Corvexa è un'app di finanza personale: le persone collegano la propria banca e tengono traccia delle proprie spese e l'app Web Corvexa legge il proprio conto dall'API di Corvexa direttamente nel browser. Oggi Bob prende di mira Corvexa. Vuole i dati dell'account cliente da poter phishing e rivendere. Ha un account Corvexa usa e getta e inizia dai documenti pubblici degli sviluppatori per vedere come l'API viene esposta al browser.

  2. È consentito qualsiasi sito

    Una scheda nei documenti descrive come l'API tratta le richieste provenienti da altri siti Web. Bob lo legge attentamente.

  3. Chiedi come sito dell'aggressore

    Bob ripete la richiesta avanzata dalla sua pagina dannosa. Punta un client API all'endpoint dell'account e, esattamente come farebbe un browser, imposta l'intestazione Origin sul proprio sito. Ha effettuato l'accesso al suo account Corvexa usa e getta, quindi la richiesta comporta una sessione reale. Ciò che gli interessa non è il corpo, ma ciò che l'API dice al browser che può fare con la risposta.

  4. L'API dice di sì

    Guarda le intestazioni di risposta inviate dall'API con l'account.

  5. La pagina delle esche

    Bob crea una pagina dall'aspetto innocuo da ospitare sul suo sito: un banner premio Corvexa. Viene visualizzato nel browser a sinistra; la sua fonte è aperta nell'editor a destra. Di per sé non fa altro che mostrare un'offerta $50.

  6. Arma la pagina

    Ora Bob aggiunge il carico utile. Il banner apparirà identico a un visitatore, ma la pagina chiamerà silenziosamente l'API dell'account Corvexa dal proprio browser e invierà tutto ciò che ritorna al suo server. Poiché l'API consente la sua provenienza con credenziali, il cookie del visitatore fa il resto.

  7. Come funziona il furto

    La pagina mostra ancora solo la ricompensa per un visitatore. Scopri cosa fa lo script aggiunto nel momento in cui un cliente Corvexa che ha effettuato l'accesso lo apre.

  8. Invia l'esca

    La trappola è pronta. Bob ha solo bisogno che un cliente Corvexa abbia effettuato l'accesso per aprirlo, quindi invia via email il collegamento del premio a uno, travestito da autentica promozione Corvexa dal suo dominio simile.

  9. Una ricompensa nella casella di posta

    Utilizzi Corvexa tu stesso e in questo momento hai effettuato l'accesso al tuo account nel tuo browser. Arriva un'e-mail che offre una ricompensa Corvexa $50. L'offerta sembra plausibile e il marchio sembra corretto.

  10. Apri il collegamento

    Fai clic per richiedere il premio, come farebbe la maggior parte delle persone. La pagina si apre nel tuo browser, portando ancora la tua sessione Corvexa live.

Copertura dei framework di sicurezza

OWASP API Top 10

  • API8:2023 Security Misconfiguration

CWE

  • CWE-942 Permissive Cross-domain Policy with Untrusted Domains
  • CWE-1188 Initialization of a Resource with an Insecure Default

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