I recenti data leak che hanno interessato piattaforme come LinkedIn, Facebook e (a meno di smentite) Clubhouse, hanno acceso il dibattito sulla pratica del web scraping e sui potenziali effetti a danno delle aziende vittime di questa pratica quando i loro dati sono utilizzati violando i termini di utilizzo delle piattaforme.
Indice degli argomenti
Cos’è il web scraping
Il web scraping è un processo automatizzato di estrazione di contenuti e dati da un sito web: ciò implica l’utilizzo di appositi software che analizzano il codice sorgente delle pagine collezionando i dati di interesse e, talvolta, l’intera struttura del sito.
Utilizzi legali e illegali del web scraping
Va detto subito che l’attività di web scraping non è una pratica illegale, molte aziende utilizzano questa tecnica per la raccolta di informazioni con finalità lecite.
Pensiamo, ad esempio, agli spider utilizzati dai motori di ricerca che analizzano il contenuto dei siti per classificarli, oppure ai numerosi comparatori di prezzo disponibili online e ancora alle attività di marketing che usano questa metodica per scandagliare la rete e collezionare informazioni da forum e social media inerenti specifiche tematiche per analizzarne aspetti quali il sentiment degli utenti online.
Ovviamente il web scraping può essere utilizzato anche per scopi illegali quali la raccolta di contenuti protetti da copyright e successivo utilizzo per finalità non autorizzate.
Ci sono poi utilizzi di quei dati, successivi allo scraping, che violano la privacy (come detto dal nostro stesso Garante).
I software utilizzati per il web scraping
Esistono numerosi software online per l’attività di web scraping: si distinguono non solo per la capacità di “raccolta” (o raschiamento delle informazioni), ma anche per la loro abilità nel ricostruire i contenuti in formati e strutture che possono essere facilmente elaborate da sistemi di terze parti per le più disparate finalità.
Troviamo, quindi, bot in grado di scandagliare servizi ospitati nella rete Tor, così come scraper in grado di estrarre le informazioni da Application Programming Interface (API) messe a disposizione dai servizi web.
Alcuni bot impiegati in attività illecite cercano di mascherare le proprie operazioni, simulando traffico legittimo attraverso la creazione di falsi user-agent tipicamente associati a noti browser o applicazioni commerciali diffuse.
Molto spesso, dietro un’attività di web scraping si nascondono organizzazioni che gestiscono botnet di notevoli dimensioni le cui macchine zombie sono distribuite in tutto il mondo.
La disponibilità di botnet di grandi dimensioni è un’arma potente nelle mani di coloro che vogliono effettuare attività di web scraping, sia per la capacità di raccolta dati sia per l’abilità di evadere sistemi a protezione dei siti presi di mira.
Proprio così, uno scraper basato su una botnet composta da un milione di macchine potrebbe eludere qualunque controllo, distribuendo nel tempo e nello spazio milioni di richieste al sito. Ciascun bot potrebbe fare poche richieste al sito obiettivo, distribuite nell’arco di alcuni giorni e simulando il comportamento di un visitatore umano.
La totalità delle richieste, provenienti da milioni di macchine da tutto il mondo, consentirebbe il web scraping del sito e dei suoi dati, ma i singoli bot convolti risulterebbero trasparenti a qualunque sistema di difesa.
Se poi alcuni social persino aprono la porta agli scraper con strumenti come quello offerto da Facebook fino al 2019, per esportare dati di profili tramite immissione di massa di numeri di telefono, il tutto è ancora più facile.
Qualche esempio di servizi di web scraping
Per i più curiosi e a titolo di esempio, ecco alcuni dei progetti disponibili online per le attività di web crawling/scraping.
Scrapy
Scrapy è un framework open source scritto in Python creato in origine come web scraping e ora utilizzato prevalentemente come web crawling. Può essere anche utilizzato per estrarre dati usando delle API.
I suoi punti di forza sono:
- Veloce e potente.
- Facilità d’utilizzo e ricca documentazione.
- Possibilità di aggiungere nuove funzionalità senza necessità di modificare il core del codice.
- Comunità attiva.
- Possibilità di eseguire lo scraping da cloud.
- 40k+ stelle su github.
Sherlock
Anche Sherlock è un web scraping molto efficiente scritto in Python. Rispetto ad altri tool simili, ha la possibilità di integrarsi anche con la rete Tor.
I suoi punti di forza sono:
- Veloce e potente.
- Facilità d’utilizzo e ricca documentazione.
- Permette di integrare Tor.
- Comunità attiva.
- 24k+ stelle su GitHub.
Di contro, presenta i seguenti svantaggi:
- Non fornisce GUI.
- Risultati minimali: fornisce solo la lista di evidenze (social media – link).
PySpyder
Come gli altri tool di web scraping, anche PySpyder è scritto in linguaggio Python. Inoltre, offre le seguenti caratteristiche:
- Organizzazione dei task per priorità (periodicamente, recrawling by age).
- Architettura distribuita.
- Crawling di pagine javascript.
- Interfaccia web molto ben fatta.
- 14k+ stelle su github.
Gli svantaggi nel suo utilizzo sono, invece:
- Curva di apprendimento ripida.
- Effettua il rendering delle pagine con PhantomJS, che è privo di funzionalità rispetto a Chrome Headless.
Come difendersi dal furto di dati online
Per fortuna, ci sono anche aziende che offrono servizi a difesa del web scraping: si tratta di società specializzate nell’analisi del traffico e nella valutazione di parametri che ne attestano la qualità.
- Per classificare il traffico, e distinguere le attività fraudolente, analizzano molteplici fattori quali gli HTML headers delle richiesta al sito, gli indirizzi IP di provenienza delle richieste e il comportamento dei visitatori.
- Per individuare sistemi automatizzati si ricorre anche a challenge continue per gli utenti, come la risoluzione dei CAPTCHA che, tuttavia, da soli non possono proteggere i nostri siti.