Il traffico generato dai bot è una realtà inevitabile per qualsiasi sito web. Tuttavia, non tutti i bot sono uguali: alcuni sono essenziali, come quelli dei motori di ricerca, mentre altri possono creare problemi significativi. In questo articolo analizzeremo le implicazioni del traffico bot, le differenze tra i vari tipi di bot dannosi e le strategie per mitigarne l’impatto.
Quali sono i problemi causati dai bot?
Il traffico bot può avere diverse implicazioni negative, tra cui:
- Impatto sulle performance: un numero elevato di richieste automatiche può rallentare il sito o persino mandarlo offline, degradando l’esperienza utente.
- Problemi di analytics: i bot possono gonfiare il numero di visite e alterare le metriche di conversione, rendendo più difficile analizzare il comportamento reale degli utenti.
- Sicurezza: alcuni bot sono progettati per raccogliere dati sensibili o cercare vulnerabilità nel sito.
- Concorrenza sleale: crawler e scraper possono essere usati per raccogliere informazioni sui prezzi di un e-commerce o copiare contenuti.
Differenza tra attacchi DDoS e scraper
Non tutti i bot malevoli operano allo stesso modo. Possiamo distinguere principalmente due categorie:
a. Attacchi DDoS: un attacco DDoS (Distributed Denial of Service) consiste nell’invio da parte di un attore malevolo di un numero massivo di richieste per sovraccaricare un sito e renderlo inaccessibile.
b. Crawler e scraper: questi bot sono più “subdoli” rispetto ai DDoS: invece di sovraccaricare il sito, il loro obiettivo è raccogliere informazioni. Ad esempio, un competitor potrebbe usare uno scraper per monitorare i prezzi di un e-commerce o copiare il contenuto del proprio sito. Una nuova sfida riguarda il traffico generato dai Large Language Models (LLM), che effettuano crawling su larga scala per raccogliere dati di addestramento per l’AI. Questi bot possono accedere a grandi quantità di contenuti, con possibili implicazioni legali e di proprietà intellettuale, oltre a incidere sulle performance del server.
Soluzioni per mitigare il traffico bot
Per difendere il sito da questi problemi, si possono adottare diverse soluzioni, a seconda del livello di protezione richiesto.
1. Cloudflare: una soluzione automatizzata e scalabile
Funzionando come un reverse proxy, Cloudflare si interpone tra l’utente e il webserver, filtrando le richieste prima che raggiungano il server originario. Questo permette di bloccare traffico sospetto, mitigare attacchi DDoS e anche di ottimizzare le performance del sito distribuendo il carico su più data center sparsi globalmente.
Nella sezione “Security” di Cloudflare, gli amministratori possono attivare funzionalità come il “Bot Fight Mode” e il “Block AI Bots“. Queste protezioni presentano all’utente una challenge (ad esempio un CAPTCHA) prima di consentire l’accesso alla pagina, scoraggiando l’attività di bot malevoli. Il “Bot Fight Mode” è progettato per identificare e bloccare bot aggressivi, mentre il “Block AI Bots” si concentra sulla prevenzione dell’estrazione di dati da parte di sistemi di intelligenza artificiale. Queste misure garantiscono un ulteriore livello di protezione contro il traffico non desiderato.
Per evitare disservizi, è fondamentale configurare correttamente le allow list per garantire che eventuali endpoint API siano sempre accessibili ai servizi esterni, bypassando alcune verifiche di Cloudflare sulla legittimità del traffico. Ad esempio, se il sito fornisce dati a integrazioni di terze parti, sistemi di pagamento o partner commerciali, è importante escludere queste risorse dai filtri automatici. La configurazione delle allow list avviene nella sezione “WAF” (Web Application Firewall) di Cloudflare:
Il piano gratuito di Cloudflare è sufficiente ad implementare tutte queste contromisure.
2. Filtraggio manuale con Nginx e Apache
Il filtraggio manuale tramite Nginx e Apache è una soluzione più complessa rispetto all’uso di servizi automatizzati come Cloudflare, e richiede generalmente l’intervento di un sistemista esperto in quanto è necessario agire sulla configurazione del web server.
Si può utilizzare un file robots.txt per vietare l’accesso ai bot, ma i bot malevoli lo ignorano. Una soluzione più efficace è impostare regole specifiche in Nginx:
if ($http_user_agent ~* (AhrefsBot|SemrushBot|MJ12bot)) {
return 403;
}
Equivalente per Apache:
SetEnvIf User-Agent "AhrefsBot" BlockBot SetEnvIf User-Agent "SemrushBot" BlockBot SetEnvIf User-Agent "MJ12bot" BlockBot <RequireAll> Require all granted Require not env BlockBot </RequireAll>
Questa configurazione nega l’accesso a bot specifici basandosi sullo user agent.
Un altro modo per proteggere il sito dai bot è utilizzare il rate limiting, che limita il numero di richieste che un singolo IP può fare in un dato periodo di tempo.
Esempio di configurazione per nginx:
limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m; server { location / { limit_req zone=one burst=10; } }
In Apache, invece, si può configurare tramite il modulo mod_evasive:
<IfModule mod_evasive20.c> # Limita a 30 richieste al minuto per ogni IP DosRateLimit 30 # Intervallo di tempo di 1 minuto per le richieste DosInterval 1 # Numero massimo di richieste da un singolo indirizzo IP prima di essere bloccato temporaneamente DosBlockInterval 10 # Limita le richieste per IP su un periodo di tempo specifico (in secondi) DosAllow 127.0.0.1 DosLogDir "/var/log/mod_evasive" </IfModule>
In questo esempio, si limita l’accesso a 30 richieste al minuto per ogni indirizzo IP. Se un IP supera questo limite, verrà bloccato temporaneamente. Questa configurazione permette di limitare il traffico sulla base di parametri personalizzati, impedendo troppi accessi simultanei dallo stesso IP.
3. Analisi dei log e monitoraggio
Un buon monitoraggio del traffico è essenziale per identificare e reagire ai bot. Alcuni strumenti utilizzabili per fornire un ulteriore livello di sicurezza sono Fail2Ban per bloccare accessi sospetti in base ai log e ModSecurity, un Web Application Firewall (WAF) integrabile in Apache, nginx e IIS per proteggere il web server da richieste malevole
Conclusione
Il traffico bot può essere una minaccia per le prestazioni, la sicurezza e le analytics del sito. Distinguere tra attacchi DDoS e scraper è fondamentale per adottare le giuste contromisure. Soluzioni come Cloudflare e il filtraggio manuale con Nginx e Apache offrono strumenti efficaci per mitigare il problema e proteggere il sito da accessi indesiderati. Per gli utenti meno esperti, consigliamo l’uso di Cloudflare, che abbiamo utilizzato con successo su molti progetti per i nostri clienti. Cloudflare offre una protezione automatizzata e scalabile, che non richiede competenze tecniche avanzate per implementare soluzioni efficaci contro il traffico bot.