Vulnerabilità OAuth e schemi di attacco
Esamini la manipolazione degli URI di reindirizzamento, il CSRF sull'endpoint di autorizzazione e le vulnerabilità di fuga dei token.
Vulnerabilità OAuth e schemi di attacco è una lezione Cryptology Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Cryptology Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Cryptology Academy include 4 lezioni in totale.
Open redirect in redirect_uri
I server di autorizzazione OAuth devono validare rigorosamente il parametro redirect_uri. Se il server consente il matching per prefisso o con wildcard (ad esempio, accettando qualsiasi URL che inizi con "https://app.example.com"), un attaccante può creare una richiesta di autorizzazione che reindirizza a "https://app.example.com.attacker.com/steal" o a un open redirect sul dominio legittimo, sottraendo il codice di autorizzazione.
CSRF sull'endpoint di autorizzazione
Senza protezione CSRF, un attaccante può avviare un flusso OAuth e indurre il browser della vittima a completare l'autorizzazione. La vittima autorizza così inavvertitamente il client dell'attaccante. Il parametro "state" (RFC 6749) impedisce questo attacco: il client genera uno state casuale, lo include nella richiesta e verifica che corrisponda nel callback. In caso di mancata corrispondenza, il flusso viene interrotto.
Intercettazione del codice di autorizzazione
Sulle piattaforme mobili, app malevole possono registrare lo stesso schema URI personalizzato di un client OAuth legittimo e intercettare i codici di autorizzazione reindirizzati dopo l'autenticazione dell'utente. PKCE costituisce una difesa completa: il codice intercettato è inutilizzabile senza il code verifier che solo l'app legittima ha generato all'inizio del flusso.
Fuga di token tramite l'header Referer
Quando un ID token o un access token è incluso in un frammento dell'URL o in un parametro di query, le navigazioni successive da quella pagina includono l'URL nell'header Referer, esponendo potenzialmente il token a script di analisi di terze parti o a provider CDN. Utilizzare sempre il flusso del codice di autorizzazione con consegna dei token tramite back-channel per evitare che i token compaiano negli URL.
Attacchi mix-up nelle configurazioni multi-provider
Quando un client supporta più provider OAuth, gli attacchi mix-up inducono il client a inviare all'endpoint dei token del Provider B un codice di autorizzazione ottenuto dal Provider A. Il client deve validare la claim "iss" negli ID token e associare il callback al provider specifico che ha avviato il flusso, usando il parametro state o JARM (JWT-Secured Authorization Response Mode).
SSRF tramite redirect_uri
Gli attacchi di falsificazione delle richieste dal lato server (SSRF) prendono di mira le implementazioni OAuth che effettuano richieste HTTP dal server verso redirect_uri. Se il server di autorizzazione recupera redirect_uri per verificarlo, un attaccante può fornire un indirizzo IP interno (ad esempio, http://169.254.169.254/latest/meta-data/) per accedere ai metadati dell'istanza cloud o ai servizi interni. Una validazione rigorosa di redirect_uri basata su una allowlist impedisce questo attacco.
Presa di controllo dell'account tramite collisione della claim email
Molte applicazioni usano la claim email di un ID token OIDC per collegare gli account tra diversi provider. Se un attaccante controlla un indirizzo email che corrisponde all'account della vittima presso un altro provider, può registrarsi con un provider diverso usando quell'email e ottenere accesso all'account della vittima. Difesa: collegare gli account solo tramite la coppia (iss, sub), mai solo tramite l'email.
Confusione dell'algoritmo JWT
Gli attacchi di confusione dell'algoritmo JWT sfruttano implementazioni che si affidano all'header "alg" per selezionare l'algoritmo di verifica. Attacco: cambiare "alg" da "RS256" a "HS256" e firmare il token usando la chiave pubblica del server come segreto HMAC, poiché la chiave pubblica è pubblica. Difesa: specificare sempre esplicitamente l'algoritmo previsto nel codice di verifica; non fidarsi mai del parametro alg nell'header del token.
Phishing OAuth tramite falsificazione della schermata di consenso
Gli attaccanti registrano client OAuth malevoli con nomi e loghi apparentemente legittimi, quindi inviano link di phishing ai propri bersagli. La vittima visualizza una vera schermata di consenso OAuth (ospitata da Google, Microsoft e altri) relativa a un'applicazione malevola e concede l'accesso. Difesa: verificare che client_id corrisponda all'applicazione prevista; Google e Microsoft offrono programmi di verifica dei client per le app legittime.
Escalation degli scope
L'escalation degli scope si verifica quando un client ottiene token con permessi più ampi di quelli autorizzati dall'utente. Difetti di implementazione che omettono la validazione degli scope sull'endpoint dei token, memorizzano nella cache token con scope combinati tra richieste diverse o non verificano che lo scope del token emesso non ecceda quello autorizzato possono tutti portare a un'escalation dei privilegi tramite OAuth.
Riepilogo delle best practice di sicurezza
Per proteggere le implementazioni OAuth: usare una validazione di redirect_uri con corrispondenza esatta, richiedere PKCE per tutti i client pubblici, validare il parametro state per la protezione CSRF, associare gli ID token tramite (iss, sub) e non tramite email, specificare esplicitamente gli algoritmi JWT previsti, richiedere scope minimi, usare access token di breve durata con rotazione dei refresh token e verificare l'aspetto della schermata di consenso per individuare rischi di imitazione del brand.
Verifica di redirect_uri in OAuth
Un server di autorizzazione OAuth accetta qualsiasi redirect_uri che inizi con "https://app.example.com". Quale attacco consente?
Riepilogo della lezione: schemi di attacco OAuth
Principali attacchi OAuth: open redirect tramite validazione permissiva di redirect_uri (usare una corrispondenza esatta), CSRF in assenza del parametro state, intercettazione del codice sui dispositivi mobili (mitigata da PKCE), fuga di token negli URL, mix-up nelle configurazioni multi-provider (validare iss), SSRF tramite redirect_uri recuperato dal server, collisione della claim email (usare iss+sub), confusione dell'algoritmo JWT (fissare l'alg previsto) e phishing tramite schermate di consenso contraffatte.
Impara Cryptology Academy con un tutor IA — gratis
Scrivi ed esegui vero codice nel tuo browser, ricevi aiuto istantaneo da un tutor IA disponibile 24/7, e riprendi da dove hai lasciato sul web o nell'app.
- Corsi
- 67
- Lezioni
- 261
Domande Frequenti
La lezione «Vulnerabilità OAuth e schemi di attacco» è gratuita?
Sì — il testo completo di «Vulnerabilità OAuth e schemi di attacco» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Cryptology Academy, passa a CoddyKit PRO. Il corso Cryptology Academy include 4 lezioni in totale.
Cosa imparerò in «Vulnerabilità OAuth e schemi di attacco»?
Esamini la manipolazione degli URI di reindirizzamento, il CSRF sull'endpoint di autorizzazione e le vulnerabilità di fuga dei token. Eserciti Cryptology Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Cryptology Academy?
Non è richiesta alcuna esperienza precedente. Cryptology Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Vulnerabilità OAuth e schemi di attacco»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Cryptology Academy?
Sì. Ogni lezione Cryptology Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Flussi OAuth 2.0 e tipi di token
- PKCE: protezione dei client pubblici
- Claim e token ID di OpenID Connect
- Vulnerabilità OAuth e schemi di attacco