Elucubrato da saibal
Addì 22 marzo 2013
Rivisitazione della tecnica “honeypot” per moduli antispam senza captcha – UPDATE
Tipi di bot
Sostanzialmente possiamo distinguere 3 tipi di strumenti per creare spam: i “playback bots“, i “formfills bots” e… gli umani.
Ogni programma è generalmente costruito ad hoc con caratteristiche peculiari che possono variare anche di molto da software a software. Ne esistono di semplici e di più evoluti; in testa a tutti, anche se non sempre è scontato, ci sono gli operatori in carne ed ossa.
Trovare un metodo che li contrasti tutti è quasi impossibile dato che, come già detto, non esiste una casistica certa e se lo spammer ha deciso di “bucare” il vostro modulo… bhè: sappiate che ci riuscirà. Meglio puntare a bloccare la massa.
Playback bots
Questo tipo di bot viene lanciato dopo che un operatore ha compilato la prima volta il modulo, “registrando” i campi da riempire. Al successivo passaggio il software prenderà come riferimento l’url di invio del form ed inizierà ad inviare dati secondo lo schema preparato inizialmente.
Formfills bots
Sono i bot più comuni: una volta trovato un modulo riempiono i campi che trovano al suo interno e inviano i dati.
Operatori umani
Può sembrare un paradosso associare “bot” e “umani” nella stessa frase ma queste persone si comportano esattamente da robot: trovano un modulo, lo riempiono di spam ed inviano dati. L’aggravante è che sono, o dovrebbero essere, intelligenti e quindi sono in grado di superare captcha, indovinelli e quiz.
Honeypot: come funziona la trappola del barattolo del miele
La soluzione proposta, conosciuta da tempo, presuppone che molti dei bot in circolazione siano “stupidi“, ovvero non siano capaci di interpretare nè javascript e nè i fogli di stile. Sulla base di questo presuntuoso assunto, inseriremo nel modulo un campo non visibile all’occhio umano (”invisibile” è diverso da “nascosto”).
Nella maggior parte dei casi, infatti, un programma automatico non sarà in grado di distinguere tutti gli attributi di un elemento e, proprio per essere sicuro di passare l’eventuale validazione, tenderà a riempire tutti i campi che incontra, compreso quello “civetta”.
È su questo principio che si basa la nostra trappola. All’invio dei dati faremo un semplice controllo: se il campo invisibile è stato riempito allora, quasi sicuramente, è stato utilizzato un robot automatico. Ecco spiegata la semplice tecnica del barattolo di miele (”honeypot trap”).
Torno a ripetermi: cerchiamo di combattere la massa, non i singoli “draghi di fine livello“. Un bot programmato ad hoc sul nostro modulo sarà in grado, con più o meno difficoltà, di passare tutti i possibili controlli.
Ora che sappiamo, seppur superficialmente, chi è il nostro nemico, passiamo alla difesa. La tecnica è adattabile sia a semplici moduli di invio dati che a form di registrazione. Per il tipo di campi richiesti, il primo caso si presta in maniera naturale ad un attacco spam. Nella seconda ipotesi, invece, è probabile che vengano tentati invii massivi per iscrivere nuovi utenti ma, se il vostro sistema prevede anche la conferma dell’indirizzo email, potrete gestire la situazione senza grossi problemi. È ovvio che un controllo periodico sui sistemi sarà indispensabile, così da poter intervenire se necessario.
Il tutorial illustra 4 possibili step, caratterizzati da una crescente complessità applicativa. Più si sale e più è necessario inserire controlli. Tutti gli esempi sono in php ma, ovviamente, è possibile “tradurli” in qualsiasi altro linguaggio.
bell’articolo! complimenti!!!
l’ho provato e funziona bene come tecnica