Un CAPTCHA CSRF può essere sconfitto?

3

Una difesa che gli sviluppatori usano per proteggere contro un attacco CSRF è implementare un CAPTCHA in passaggi critici. Un CAPTCHA garantisce che un essere umano sia sulla tastiera che approva l'attività. Ma ho sentito che i CAPTCHA sono stati infranti. Certo, posso vedere come il software che sconfigge CAPTCHA potrebbe essere usato dai bot per inviare spam ai forum e così via. Ma non vedo alcuna tecnica che possa essere utilizzata in un attacco CSRF.

Qualcuno può spiegare esattamente come un attaccante può sconfiggere un CAPTCHA in un exploit CSRF?

Per chiarire ... Capisco come funziona CSRF e i vari metodi di protezione contro di loro. Quello che voglio sapere è come la protezione CAPTCHA può essere sconfitta.

    
posta Rap 15.02.2012 - 21:44
fonte

4 risposte

4

Un CAPTCHA non sarebbe deflessabile come una mitigazione dell'XSRF tranne che per forza bruta, o un altro tipo di attacco (es. clickjacking per incorniciare l'interfaccia utente del sito di destinazione in un contesto di correzione). L'analisi delle immagini non può essere applicata perché un utente malintenzionato di un altro sito non ha accesso in lettura al contenuto nel CAPTCHA.

Tuttavia!

One defense that developers use to protect against a CSRF attack is to implement a CAPTCHA in critical steps.

Non conosco gli sviluppatori di cui stai parlando, non sembrano molto equilibrati.

Ottieni lo stesso vantaggio senza il costo in termini di esperienza utente degradata semplicemente inviando un token al client e controllando lo stesso token quando ritorna al server. (Puoi anche ottenere molta più entropia in un tale token di quanto un utente possa scrivere comodamente in un CAPTCHA, rendendolo a prova di brutalità.)

Modello di token del sincronizzatore per sessione

    
risposta data 16.02.2012 - 01:17
fonte
2

CAPTCHA può essere rotto utilizzando l'analisi immagine / audio.

Nella sua forma più elementare, Optical Character Recognition (OCR) è una tecnologia che dura da anni. OCR legge un'immagine e cerca i caratteri che capisce e la traduce in testo ... Bingo, un metodo per rompere l'immagine CAPTCHA.

Allo stesso modo l'analisi del parlato, ce l'abbiamo su telefoni, console di gioco ecc. Ancora una volta la tecnologia esiste da anni.

Verifica dell'immagine CAPTCHA spesso utilizza il rumore dell'immagine per renderlo più difficile, ma filtrare il rumore non è così difficile. In realtà richiede solo un po 'più di elaborazione.

CAPTCHA è ancora un buon deterrente perché aggiunge complessità ed è generalmente ben accettato dagli utenti, ma non è un proiettile d'argento.

Anche un altro modo in cui CAPTCHA può essere rotto è dagli umani. Alcuni anni fa credo che esistessero alcune grosse reti di bot che raccoglievano le risposte ai codici CAPTCHA servendole fino alle macchine infette.

Per proteggere il tuo CAPTCHA o qualsiasi sistema di verifica manuale, limitare il tempo in cui i codici sono validi è una prima difesa.

Spero che ti aiuti.

    
risposta data 15.02.2012 - 22:49
fonte
1

L'utilizzo di un CAPTCHA può essere un metodo efficace per mitigare il rischio di un attacco CSRF di successo. Ci sono modi per sconfiggere i CAPTCHA in generale, ma se scegli un'implementazione solida, allora sono efficaci. Tuttavia, provocano un'esperienza utente abbastanza negativa (ogni volta che si fa qualcosa di sensibile, è necessario inserire un CAPTCHA = molti utenti molto infelici).

Un'idea migliore è l'uso di token di convalida, in quanto sono trasparenti per l'utente. Questo è generalmente considerato il metodo preferito per la mitigazione della CSRF. Puoi anche combinare questo con un debole referrer-controllo se desideri avere più contromisure in atto (vedi qui: link ).

    
risposta data 15.02.2012 - 21:18
fonte
1

Come sempre: dipende. In questo caso dipende dall'attuale implementazione Captcha. Perché se il Captcha può essere risolto anche forgiando la risposta o può essere ingannato con un attacco di replay, non ti proteggerà nemmeno contro CSRF.

Ma supponiamo che tu usi un Captcha sicuro. Quindi, per risolvere un Captcha, un utente malintenzionato deve essere in grado di leggerlo in qualche modo e risolverlo o forzarlo brutalmente.

La lettura della sfida non è possibile a causa della politica della stessa origine. Quindi i metodi generali di risoluzione Captcha come l'OCR o la risoluzione umana non funzionano qui. Quindi l'ultimo attacco praticabile è la forza bruta.

Se ciò non è possibile, l'uso di un Captcha può impedire gli attacchi CSRF. Ma come già detto, ci sono anche altre soluzioni meno fastidiose per mitigare gli attacchi CSRF.

    
risposta data 16.02.2012 - 08:54
fonte

Leggi altre domande sui tag