Un attacco HTTP Flood è un tipo par­ti­co­la­re di attacchi DDoS (Di­stri­bu­ted Denial of Service) che cerca di mandare in crash un sito o un’ap­pli­ca­zio­ne con una serie di visite da posti diversi. Un attacco HTTP Flood viene definito spesso anche come attacco layer 7. Con il layer 7 s’intende l’Ap­pli­ca­tion layer nel modello ISO/OSI secondo il quale Internet è composto da sette livelli.

Lo scopo di un attacco a questo livello è assorbire le risorse della rete o del server. Quando l’hardware non ha più ab­ba­stan­za risorse a di­spo­si­zio­ne, impiega sempre più tempo per ri­spon­de­re alle richieste at­tra­ver­so il client. Le mol­tis­si­me richieste che bom­bar­da­no l’hardware creano un so­vrac­ca­ri­co del sistema per­ma­nen­te che rende inac­ces­si­bi­li il server o tutta la rete.

Quando gli hacker mettono in atto un attacco HTTP Flood, il loro scopo è mandare in crash il sistema at­tra­ver­so richieste del tutto lecite. Come fanno i metodi HTTP a tra­sfor­mar­si in attacchi pe­ri­co­lo­si?

Come avviene un attacco HTTP Flood?

Un attacco HTTP Flood si basa su una richiesta GET o POST del client. Il client, e quindi il browser che accede al sito, invia una di queste richieste. Il server rielabora la richiesta e rinvia il risultato al client.

Con le richieste GET si accede a contenuti statici, come immagini o blocchi di testo. Una richiesta POST si adotta quando si chiede l’accesso a risorse dinamiche. Si può dire, in parole povere, che il metodo GET contiene i dati del server e il metodo POST invia dati al server. Negli attacchi è possibile avvalersi di entrambi i metodi, anche se il metodo POST è uti­liz­za­to più spesso poiché richiede processi di rie­la­bo­ra­zio­ne complessi at­tra­ver­so il server.

Gli attacchi HTTP Flood fanno in modo che queste richieste vengano poste con­tem­po­ra­nea­men­te per un in­ter­val­lo più lungo. Di solito, si uti­liz­za­no so­prat­tut­to botnet per aumentare il volume delle richieste. Gli attacchi HTTP Flood sono pro­get­ta­ti in modo che il server impieghi quante più risorse possibili per ciascuna richiesta. In una si­tua­zio­ne normale si tratta di un atto vo­lon­ta­rio, poiché il server non riceve migliaia o centinaia di migliaia di richieste al minuto. Inviando un numero elevato di richieste e accessi, l’hacker attende che il server si saturi di richieste e che il sito o l’ap­pli­ca­zio­ne non siano più vi­sua­liz­za­ti in modo corretto.

Immagine: Attacco HTTP Flood da una botnet su un server
Attacco HTTP Flood da una botnet su un server

Come si possono fermare gli attacchi?

Poiché può capitare che un sito abbia tem­po­ra­nea­men­te molto traffico, è difficile stabilire se l’aumento di richieste rap­pre­sen­ti un attacco o sia solo il risultato di una campagna di marketing ben riuscita. Una volta stabilito che si tratta di un attacco HTTP Flood, però, i firewall possono ri­co­no­sce­re e bloccare gli indirizzi IP.

In si­tua­zio­ni del genere, bisogna per prima cosa rinviare al client la co­sid­det­ta Com­pu­ta­tio­nal Challenge di Ja­va­Script. Questo permette di ana­liz­za­re in modo semplice se il client è una botnet o un utente regolare. A dif­fe­ren­za di un bot, ciascun browser di un vi­si­ta­to­re normale è in grado di superare quest’ulteriore dif­fi­col­tà.

Co­no­scen­do il metodo degli attacchi, si possono in­tro­dur­re nel sistema di firewall semplici regole che bloccano au­to­ma­ti­ca­men­te gli indirizzi IP della botnet. Di solito, si può iden­ti­fi­ca­re e fermare un attacco HTTP Flood in pochi minuti quando si sa che rap­pre­sen­ta il motivo del crash del sistema.

Come pro­teg­ger­si?

È difficile pro­teg­ger­si da un attacco HTTP Flood perché all’inizio le richieste si possono con­fon­de­re con il traffico normale sul sito. Al server non viene inviato alcun malware né si cerca di sfruttare vul­ne­ra­bi­li­tà. Piuttosto che questo, gli hacker inondano il server con accessi leciti. Poiché questo impiega minore larghezza di banda rispetto a un’in­tro­du­zio­ne violenta nel codice del sito, ai primi stadi gli attacchi non vengono ri­co­no­sciu­ti.

La maggior parte dei siti utilizza test captcha, che ri­chie­do­no la com­pi­la­zio­ne manuale da parte di un utente reale. Questo permette di ri­co­no­sce­re in anticipo una botnet e bloccarne gli indirizzi IP. Ci sono anche firewall per siti e ap­pli­ca­zio­ni. Questi sistemi ve­ri­fi­ca­no e ana­liz­za­no il traffico in entrata nel sito. La loro presenza rallenta il sito in modo minimo, ma ne ga­ran­ti­sce pro­te­zio­ne e stabilità. Se il sito in sé è già sot­to­po­sto a ela­bo­ra­zio­ne intensa di dati e processi, è possibile integrare una schermata di loading mentre il sito prin­ci­pa­le si carica sullo sfondo.

N.B.

HTTP Flood è solo una delle diverse forme di attacchi DDoS. Gli hacker cercano di in­ter­rom­pe­re il servizio dei web server anche con Ping Flood, SYN Flood, UDP Flood e Ping of Death.

Vai al menu prin­ci­pa­le