Un grande complesso monumentale ospitava migliaia di eventi all'anno — concerti, mostre, conferenze. La loro piattaforma di ticketing online era la loro linfa vitale. Poi arrivarono i bot.
Il problema: bot, interruzioni e perdita di ricavi
Ogni volta che i biglietti andavano in vendita, il sistema crollava. Non dalla domanda legittima — dai bot. Gli speculatori usavano script automatizzati per acquistare migliaia di biglietti in millisecondi, per poi rivenderli a 10x il prezzo nei mercati secondari.
L'impatto era devastante:
- 30 richieste al secondo schiantavano i server di origine
- Ritardi di 2+ secondi attivavano errori di timeout HTTP 408
- Interruzioni quotidiane frustavano i clienti legittimi
- Perdita di ricavi: centinaia di migliaia di biglietti rivenduti scontati invece al prezzo di listino
Il tradizionale rate limiting non ha funzionato. Gli speculatori hanno ruotato gli indirizzi IP, falsificato gli User-Agent e distribuito i loro attacchi su botnet. Il complesso aveva bisogno di una difesa più intelligente.
La soluzione: mitigazione multi-livello dei bot
Abbiamo implementato una strategia completa di rilevamento e mitigazione dei bot all'edge CDN, prima ancora che il traffico raggiungesse l'origine.
Livello 1: restrizione dell'origine — ridurre il carico del 50%
Per prima cosa, abbiamo messo un livello CDN davanti all'origin. La cache ha assorbito le richieste legittime, riducendo i hit diretti all'origin del 50%. I bot che si aspettavano di colpire direttamente l'origin stavano ora colpendo l'edge.
Livello 2: protezione DDoS — rate limiting e HTTP 429
Abbiamo implementato un rigoroso rate limiting:
- Massimo 10 richieste al secondo per indirizzo IP
- Il traffico in eccesso attiva risposte HTTP 429 (Too Many Requests)
- Blocco automatico dell'IP dopo 3 errori 429 consecutivi
Livello 3: punteggio IP — analisi della reputazione
Non tutti gli indirizzi IP sono uguali. Abbiamo analizzato ogni indirizzo IP per:
- Modelli di abuso storico: IP noti per DDoS, spam o credential stuffing
- Anomalie geografiche: traffico improvviso da data center o VPN
- Appartenenza a botnet: correlazione con reti maligne note
- IP a bassa reputazione: bloccati automaticamente per 12 ore
Livello 4: sfide JavaScript — bloccare l'accesso automatizzato
I browser legittimi eseguono JavaScript; i bot no. Abbiamo servito una sfida JavaScript che richiedeva di risolvere un calcolo proof-of-work. I bot fallivano silenziosamente. I veri utenti non se ne accorgevano mai.
Livello 5: filtri di geolocalizzazione — verifica regionale
Il complesso aveva regole di vendita specifiche per diverse regioni. Abbiamo implementato la verifica della geolocalizzazione basata su JavaScript per assicurare:
- Presale disponibile solo per i membri registrati in paesi specifici
- Vendita generale disponibile in tutto il mondo ma richiede l'abbinamento della geolocalizzazione
- Le anomalie geografiche sospette (ad es. richieste da 10 paesi in 1 secondo) sono state bloccate
Livello 6: rilevamento del crawling — interrompi il traffico di ricognizione
I bot degli speculatori eseguono il riconoscimento — scansione degli URL, test dei payload, mappatura del sistema. Abbiamo rilevato e bloccato:
- 100+ richieste al minuto da un singolo IP: blocco automatico di 24 ore
- Enumerazione sequenziale dei parametri: tentativi di scoprire endpoint nascosti
- Tentativi di iniezione di payload: XSS, SQLi o tentativi di iniezione di comandi
Livello 7: rilevamento delle anomalie — analisi comportamentale
Abbiamo costruito regole di rilevamento delle anomalie basate sul comportamento della baseline storica:
| Anomalia | Risposta |
|---|---|
| Tasso di richiesta per IP 10x normale | Blocco IP di 12 ore |
| Volume di traffico 5x normale | 4 ore User-Agent Mitigation (UAM) |
| Picco di larghezza di banda 2x normale | 4 ore UAM |
| Traffico improvviso da nuovo paese | 4 ore UAM |
| User-Agent crawler noto | Blocco IP di 24 ore |
UAM (User-Agent Mitigation) significava: servire una sfida JavaScript prima di concedere l'accesso. I bot falliscono; gli umani passano trasparentemente.
Livello 8: protezione WAF — convalida dell'input
Oltre al rilevamento dei bot, abbiamo implementato regole Web Application Firewall (WAF) per:
- Convalida dei parametri URL: rifiutare le richieste con parametri malformati
- Blocco regex: rilevare modelli di attacco comuni (../../../etc/passwd, union select, ecc.)
- Applicazione Content-Type: accettare solo i tipi di contenuto previsti per ogni endpoint
- Restrizione del metodo HTTP: GET per le letture, POST per gli acquisti, rifiutare DELETE/PUT su percorsi sensibili
Livello 9: logica VCL — gestione avanzata delle richieste
Abbiamo implementato una logica VCL (Varnish Configuration Language) personalizzata per rilevare i modelli dei bot:
# Limitare l'accesso dai client Go o Python (linguaggi bot comuni)
if (req.http.User-Agent ~ "(?i)(go-http-client/|python-requests)") {
call deny_request;
}
# Bloccare NoName(057) in base al modello di Accept header
if (req.http.Accept == "text/html,application/xhtml+xml,application/xml,") {
call deny_request;
}
Livello 10: gestione della whitelist — partner affidabili
Abbiamo mantenuto liste bianche per:
- Motori di ricerca: bot di Google, Bing, DuckDuckGo (verificati tramite DNS inverso)
- App mobili ufficiali: stringhe User-Agent specifiche per app di ticket iOS/Android
- Integratori aziendali: partner con tassi di richiesta garantiti
- Partner CDN: altre CDN pre-approvate per il traffico da cache a cache
Risultati: dalle interruzioni quotidiane alla stabilità di un anno
- Riduzione del traffico del 60%: traffico bot eliminato, traffico legittimo non interessato
- Disponibilità del 99,99%: zero downtime per 12+ mesi consecutivi
- Tempi di risposta inferiori al secondo: anche durante la vendita di picco, la latenza è rimasta inferiore a 200ms
- Protezione dei ricavi: gli speculatori non sono più in grado di acquistare in massa i biglietti
- Soddisfazione del cliente: gli utenti legittimi hanno avuto zero attriti — le sfide JavaScript sono trasparenti ai browser
Lezioni apprese
La mitigazione dei bot non è un singolo strumento — è una strategia stratificata:
- Difesa in profondità: più livelli sovrapposti catturano quello che le difese singole si perdono
- Analisi comportamentale: comprendere la baseline (traffico normale) è fondamentale per individuare anomalie
- Zero attriti per gli umani: gli utenti legittimi non dovrebbero mai notare le difese
- Adattamento continuo: i bot evolvono; le tue difese devono evolversi più velocemente
- Intelligenza CDN: il blocco all'edge è molto più efficiente che gestire gli attacchi all'origin
Oggi, il complesso gestisce la vendita di biglietti con fiducia. I bot vengono bloccati prima ancora di raggiungere l'origin. I fan legittimi possono acquistare i biglietti rapidamente e in modo affidabile. E l'azienda è protetta sia dalla perdita di ricavi che dal collasso dell'infrastruttura.
Hai bisogno di rafforzare la sicurezza del tuo sito web? Il nostro team tecnico può aiutarti a progettare la strategia di protezione perfetta per il tuo caso d'uso.
Inizia ora