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.

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