
Sconfiggere il reCaptcha audio di Google con una precisione dell'85%.
Sconfiggere il sistema audio reCaptcha di Google con una precisione dell'85%. 
unCaptcha è inteso come una prova di concetto. Al momento della pubblicazione del nostro articolo, abbiamo scoperto che risolveva con successo le sfide audio di reCaptcha con un tasso di successo dell'85%. Da allora, reCaptcha sembra aver incluso alcune protezioni aggiuntive che limitano il successo di unCaptcha. Non manterreMo questo codice in modo che costituisca un attacco efficace a reCaptcha.
Ad esempio, Google ha anche migliorato il rilevamento dell'automazione del browser. Ciò significa che Selenium non può essere utilizzato nel suo stato attuale per ottenere captcha da Google. Ciò potrebbe portare Google a inviare segmenti audio insoliti all'utente finale. Inoltre, abbiamo osservato che alcune sfide audio includono non solo cifre, ma anche brevi frammenti di testo parlato.
Ti incoraggiamo a essere cauto quando fai ricerca in questo campo, a tenere conto delle leggi locali, statali e federali, e a segnalare in modo responsabile eventuali vulnerabilità a Google immediatamente.
Inoltre, abbiamo rimosso le nostre chiavi API da tutte le query necessarie. Se stai cercando di ricreare parte del lavoro o stai facendo la tua ricerca in questo campo, dovrai ottenere le chiavi API da ciascuno dei sei servizi utilizzati. Queste chiavi sono indicate nei nostri file da una lunga stringa del carattere 'X'.
In tutto Internet, centinaia di migliaia di siti si affidano al sistema reCaptcha di Google per la difesa contro i bot (infatti, Devpost utilizza reCaptcha quando si crea un nuovo account). Dopo che un team di ricerca di Google ha dimostrato una quasi del reCaptcha testuale nel 2012, il sistema reCaptcha si è evoluto per affidarsi a sfide audio e visive, storicamente sfide più difficili per i sistemi automatizzati da risolvere. Google ha continuamente iterato sul suo design, rilasciando una versione più nuova e potente fino a quest'anno. Dimostrare con successo una sconfitta di questo sistema captcha rappresenta una vulnerabilità significativa per centinaia di migliaia di siti popolari.
Il nostro sistema unCaptcha ha capacità di attacco scritte per il captcha audio. Utilizzando software di automazione del browser, possiamo interagire con il sito web target e interagire con il captcha, estraendo gli elementi necessari per iniziare l'attacco. Ci affidiamo principalmente all'attacco del captcha audio: identificando correttamente i numeri parlati, possiamo superare il reCaptcha a livello programmatico e ingannare il sito facendogli credere che il nostro bot sia un umano. Nello specifico, unCaptcha prende di mira il popolare sito Reddit simulando la creazione di un nuovo utente, anche se unCaptcha si ferma prima di creare l'utente per mitigare l'impatto su Reddit.
Il sistema reCaptcha di Google utilizza un sistema avanzato di analisi del rischio per determinare a livello programmatico la probabilità che un determinato utente sia un umano o un bot. Prende in considerazione i tuoi cookie (e di conseguenza la tua interazione con altri servizi Google), la velocità con cui vengono risolte le sfide, i movimenti del mouse e (ovviamente) il successo con cui risolvi il compito assegnato. Man mano che il sistema diventa sempre più sospettoso, fornisce sfide sempre più difficili e richiede all'utente di risolverne di più. I ricercatori hanno già identificato debolezze minori nel sistema reCaptcha: 9 giorni di interazione legittima (più o meno) con i servizi di Google sono solitamente sufficienti per abbassare significativamente il livello di sospetto del sistema.
Il formato del captcha audio è una serie di numeri di lunghezza variabile letti ad alta voce a velocità, toni e accenti variabili in mezzo al rumore di fondo. Per attaccare questo captcha, il payload audio viene identificato sulla pagina, scaricato e suddiviso automaticamente in base alle posizioni del parlato. Da lì, ogni frammento audio di numero viene caricato su 6 diversi servizi gratuiti di trascrizione audio online (IBM, Google Cloud, Google Speech Recognition, Sphinx, Wit-AI, Bing Speech Recognition) e questi risultati vengono raccolti. Combiniamo i risultati di ciascuno di questi per enumerare probabilisticamente la stringa di numeri più probabile con un'euristica predeterminata. Questi numeri vengono quindi digitati organicamente nel captcha e il captcha viene completato. Dai test, abbiamo osservato una precisione superiore al 92% nell'identificazione dei singoli numeri e una precisione superiore all'85% nel superare il captcha audio nella sua interezza.
Prima, installa le dipendenze Python:
$ pip install -r requirements.txt
Assicurati di avere anche sox, ffmpeg e selenium installati!
$ apt-get install sox ffmpeg selenium
Quindi, per avviare il PoC:
$ python main.py --audio --reddit
Questo apre reddit.com, interagisce con la pagina per andare alla registrazione dell'account, genera un nome utente, email e password fittizi, e poi attacca il captcha audio. Una volta completato il captcha (sia che sia stato superato o meno), il browser si chiude.
Leggi il nostro articolo, disponibile qui, per maggiori informazioni. Inoltre, puoi visitare il nostro sito web qui, o dai un'occhiata alle originali.