In che modo i robot possono battere i CAPTCHA?

84

Ho un modulo di posta elettronica del sito web. Io uso un CAPTCHA personalizzato per prevenire lo spam dai robot. Nonostante ciò, continuo a ricevere spam.

Perché? In che modo i robot battono il CAPTCHA? Usano qualche tipo di OCR avanzato o semplicemente ottengono la soluzione da dove sono archiviati?

Come posso impedirlo? Devo passare a un altro tipo di CAPTCHA?

Sono sicuro che le e-mail provengano dal modulo, perché viene inviato dal mio mittente e-mail che serve i messaggi del modulo. Anche lo stile delle lettere è lo stesso.

Per la cronaca, sto usando PHP + MySQL, ma non sto cercando una soluzione a questo problema. Ero interessato alla situazione generale come i robot hanno battuto queste tecnologie. Ho appena detto questa situazione come esempio, quindi puoi capire meglio di cosa sto chiedendo.

    
posta totymedli 06.03.2013 - 13:42
fonte

7 risposte

72

Due modi più semplici per ottenere CAPTCHA:

  • Utilizza le fattorie umane, ovvero chiedi alle persone di riempire i CAPTCHA per denaro, proprio come fa ProTypers .

  • Utilizza un OCR.

Potrebbe anche esserci un bug nel meccanismo CAPTCHA stesso o nell'applicazione circostante, consentendo a qualcuno di aggirare il CAPTCHA.

A proposito, anche l'articolo W3C Inaccessibility of CAPTCHA: Alternative to Visual Turing Test sul Web in che modo i CAPTCHA potrebbero essere compromessi:

[...] One of the first documented attacks on the system was by a Carnegie Mellon student, who associated CAPTCHA images with access to an adult Web site, thus gaining free human labor to crack the authentication. [...]

External projects [...] have shown methodologies and results indicating that many of the systems can be defeated by computers with between 88% and 100% accuracy, using optical character recognition.

Quindi, come puoi prevenire quegli attacchi?

  • Se hai il tuo CAPTCHA personalizzato, puoi provare a passare a uno famoso, come reCAPTCHA .

    Questo aiuterà se il tuo CAPTCHA è troppo facile per OCR, o se c'è stato un bug che è stato sfruttato con successo.

  • Se utilizzi un meccanismo CAPTCHA popolare, il passaggio a uno personalizzato o ad un altro popolare potrebbe impedire l'OCR.

Tecnicamente, nulla impedirebbe le fattorie umane: potresti creare GIF animate in cui più fotogrammi visualizzano testi diversi molto rapidamente, e solo un fotogramma è effettivamente visibile dall'utente, puoi distorcere o piegare il testo in tutte le direzioni o trovare nuovi, alternativi modi per evitare che gli OCR riconoscano il testo, tuttavia gli umani pagati per risolvere i CAPTCHA li risolveranno con successo.

Potresti voler passare dal CAPTCHA visivo al suono (se non lo usi già, e dovresti), ma questo significa che gli utenti con problemi di udito non sarebbero in grado di utilizzare la tua applicazione.

FrustratedWithFormsDesigner e GalacticCowboy menzionato nei CAPTCHA specifici del dominio dei commenti. Ho cercato di trovare del materiale su quanto siano efficaci, ma senza successo, quindi ecco solo la mia opinione personale:

  1. I CAPTCHA specifici del dominio possono essere estremamente fastidiosi quando gli utenti reali non hanno idea della risposta.

    Esempio: sto visitando una pagina su un sito web orientato ai film. Ho notato un errore in un articolo e voglio commentarlo per informare l'autore dell'errore. Il modulo dei commenti mi chiede, come meccanismo CAPTCHA, di fornire il nome dell'attrice mostrata su una foto. Non ho idea di chi sia questa attrice, quindi l'unica cosa che posso fare è lasciare il sito web (o passare i prossimi due minuti usando Google Immagini).

    Un altro esempio: un sito web chiede di dare un sinonimo di "misterioso". Facile come sembra una persona non menomata che parla fluentemente l'inglese, sarebbe impossibile risolvere senza aiuto esterno per persone che non parlano bene l'inglese o persone con alcune disabilità dello sviluppo, senza contare il fatto che trovare sinonimi o contrari è sempre difficile.

  2. La maggior parte di questi problemi specifici del dominio può essere risolta a livello di codice. Entrambi gli esempi che ho dato sono facilmente risolti usando risorse esterne (Google Immagini e dizionario di sinonimi). Quello dei transistor dati come esempio da FrustratedWithFormsDesigner è migliore, ma potrebbe comunque essere risolto con un bot personalizzato.

  3. Nessuno resiste alle fattorie umane.

  4. O generano dati, proprio come i comuni CAPTCHA di testo disegnano caratteri distorti, nel qual caso l'algoritmo di generazione può essere a sua volta sfruttato per mettere a punto i bot, o trovano dati da qualche parte, proprio come reCAPTCHA prende il testo dai libri scansionati , nel qual caso il bot può utilizzare questi dati contro di esso (ad esempio, se si prendono le parole da un dizionario, si chiede l'utente a fornire sinonimi, il bot può usare lo stesso dizionario per avere un successo del 100%).

risposta data 06.03.2013 - 13:51
fonte
37

Aggiunta alla risposta di MainMa ...

Gli spammer inducono gli altri a fare il CAPTCHA per loro

Fondamentalmente, gli spammer creano un sito warez o un sito porno che sembra avere CAPTCHA su di esso, ma non è un vero CAPTCHA. Un bot estrae il CAPTCHA dal sito che desidera spam (o comunque da sfruttare), quindi lo visualizza sul sito warez o su un sito porno dove qualcuno lo completa per loro. Quindi il valore CAPTCHA viene passato di nuovo al loro bot ...

Un po 'di più sugli spammer

Io uso reCAPTCHA e ho scoperto che è praticamente inutile. Uso anche un filtro antispam personalizzato che cattura lo spam che ha superato reCAPTCHA e devo verificarlo ogni pochi giorni per i falsi positivi.

Anche il mio forum è interamente scritto e riceve pochissimo traffico. Non credo che qualcuno abbia codificato un attacco specifico al mio sito. Tuttavia, il mio filtro spam cattura messaggi di spam 2k al giorno! Nessuno è mai visualizzato sul sito. Gli spammer non traggono alcun beneficio dallo spamming, eppure lo fanno ancora.

Riesco a vedere i pattern nei tentativi di spamming perché registro tutto. Posso dirvi questo: mettendo da parte come superano il CAPTCHA, gli spammer usano chiaramente una tecnica a forza bruta che varia i campi che vengono compilati e il tipo di dati e mix di parole che popolano quei campi. Apparentemente lo fanno in modo così economico (compreso il bypass del CAPTCHA) che non paga nemmeno per fare un'analisi dei singoli siti per vedere se quello che stanno facendo è o non funziona.

Anno dopo anno, continuano a bersagliare il mio sito con migliaia di messaggi di spam al giorno solo per ottenerne uno ogni mese, e questo viene eliminato manualmente il giorno successivo. È così economico per lo spam!

Questa sarà una battaglia per gli anni a venire. In particolare per i siti di moderatori one-man come i miei.

EDIT 22/06/2017 : Voglio aggiungere che da questo post google ha completamente rinnovato reCAPTCHA e al momento della stesura di questo articolo ha funzionato perfettamente. Anche se ho il sospetto che ci siano un po 'di falsi positivi o che sia un problema per gli utenti in quanto i post sono diminuiti un po' da quando l'ho implementato. I 2 grandi cambiamenti sono

1) Utilizzano le immagini anziché il testo (quindi non più l'OCR)

2) Lo stanno combinando con l'attività degli utenti su tutto il sito che utilizza reCAPTCHA. Quindi se superi il reCAPTCHA sul sito A, poi vai al sito B, potrebbe non essere nemmeno pronto a dimostrare che sei umano! Inoltre (penso) se stai colpendo troppi reCAPTCHA su troppi siti, ti segnalerà anche. Sono sicuro che sta usando altri tipi di intelligenza artificiale in base all'attività degli utenti.

Sono sicuro che è solo una questione di tempo prima che gli spammer battano anche questo ...

    
risposta data 06.03.2013 - 15:02
fonte
15

Hai mai provato a usare il captcha del gatto-cane? Ho un forum con captcha standard e l'ho cambiato e da allora non ho spam.

    
risposta data 28.04.2014 - 22:05
fonte
12

È possibile che il tuo sito sia preso di mira da una forza lavoro ultra-economica sfruttata e che un essere umano inserisca manualmente le tue frasi CAPTCHA.

Se la soluzione che stai utilizzando non è eccessivamente sofisticata, è possibile che l'autore dell'attacco stia eseguendo il riconoscimento dell'immagine.

È anche possibile che tu abbia un bug da qualche parte nel tuo codice che consente il bypass del CAPTCHA.

Non fare l'ipotesi che un robot stia battendo il tuo CAPTCHA. Pensa al tuo sistema in modo olistico e vedi se è stato compromesso.

    
risposta data 06.03.2013 - 13:49
fonte
10

Altri hanno discusso di come gli spammer aggirino i CAPTCHA. Ecco alcuni suggerimenti su Come posso evitare questo :

Nota: non esiste un proiettile argentato e gli spammer sembrano essere un passo avanti al gioco. Quindi dovrai usare una combinazione di più tecniche

  1. Utilizza un modulo per i vasi di miele
  2. Utilizza una domanda CAPTCHAs o logica. Domande di base come "mela, pesce, mano, sei - che di questi è una parte del corpo"
  3. Avere un ritardo. Se il modulo viene pubblicato entro 5 secondi dal caricamento della pagina, ignorare la richiesta, la maggior parte dei robot pubblicherà entro meno di un secondo
  4. Monitoraggio di alcuni indirizzi IP - se noti uno spider che esegue la scansione del tuo sito web che non è in una white-list (google, bing), quindi inserisci la blacklist e bannerà il suo indirizzo IP. Preferibilmente questo sarebbe dinamico / automatizzato in codice / software
risposta data 07.03.2013 - 13:07
fonte
6

Per far eco alle altre risposte, è probabile che incontriate bot che utilizzano fattorie umane per inserire i captcha per loro.

Recentemente ho discusso una tecnica (e ho rilasciato un modulo Drupal che accompagna) che blocca i bot spam richiedendo JavaScript sul lato client. Per quanto ne so, questo ha funzionato con efficienza al 100% su tutti i siti che hanno utilizzato questo codice. L'idea è di utilizzare AJAX per generare un hash univoco e inviarlo insieme agli altri dati del modulo, quindi calcolare lo stesso hash sul back-end una volta inviato il modulo e confrontare i due valori.

Dettagli completi nel mio post sul blog (per coincidenza, dato che hai menzionato l'uso di PHP + MySQL, queste sono le stesse tecnologie descritte qui) - Versione del modulo: Badbot; eliminare lo spam ...

    
risposta data 07.03.2013 - 02:02
fonte
-2

Se il tuo sito è twitter, e qualcuno lo ha indirizzato in modo specifico (piuttosto che un bot che lo trova), allora puoi smettere di leggere ...

Altrimenti, potrebbe non valere la pena non far apparire la tua forma NON come un modulo. 1. Non avere campi con 'e-mail' nel tipo, nome o segnaposto, usare nomi brevi o fuorvianti per tutti i campi. 2. Non utilizzare un elemento del modulo html e un pulsante di invio effettivi. Piuttosto usa AJAX per postarlo con un clic di un normale div (in stile per sembrare un pulsante). 3. Non inserire l'evento onclick in html, aggiungi un listener in JavaScript. 4. Usa JavaScript per compilare i suggerimenti "inserisci qui il tuo indirizzo email" poiché è possibile che i bot non attivino effettivamente JS quando si trascinano le pagine (non sono sicuro su questo, ma lo faccio comunque).

    
risposta data 04.11.2013 - 02:55
fonte

Leggi altre domande sui tag