Inginerul de software Serghei Shekyan a elaborat o noua metoda de atac de tipul denial-of-service HTTP (DoS), metoda ce se bazeaza pe prelungirea duratei de timp de care clientii au nevoie pentru a citi raspunsurile serverului web.
Metoda sa este numita si Slow Read DoS si are la baza cercetarile anterioare efectuate de catre Robert Hansen, cel care a creat instrumentul DoS numit HTTP Slowloris, si cercetarile regretatului Jack C. Louis, care a dezvoltat Sockstress, o aplicatie care aplica conceptul de a citi lent continutul din stivele TCP.
Spre deosebire de Slowloris care actioneaza prin incetinirea cererii HTTP pentru a atinge numarul maxim de conexiuni concurente permise de un server dedicat (server web), metoda de atac elaborata de Shekyan actioneaza prin incetinirea raspunsurilor serverul-ui.
Metoda este destul de simpla. Se trimite o cerere legitima HTTP catre server, iar raspunsul primit este citit foarte lent, cu scopul de-a pastra cat mai multe conexiuni active. Pentru a se realiza acest lucru, dimensiunea raspunsului dat de server trebuie sa fie mai mare decat capacitatea bufferului de trimitere al acestuia. Raspunsurile mari sunt apoi impartite in bucati mici si sunt trimise in mod individual.
O alta conditie pentru ca aceasta metoda sa functioneze este aceea de-a tine bufferul de trimitere al serverului ocupat complet pentru o perioada lunga de timp, in timp ce se alte date sunt in asteptare, in scopul de a tine in permanenta o conexiune activa intre client si server. Acest lucru se face prin reducerea capacitatii clientului de-a primi date la o valoare mai mica decat cea de trimitere a serverului.
Protocolul TCP nu face publica dimensiunea bufferului de trimitere al serverului, dar se poate presupune ca aceasta este o valoare implicita, de obicei intre 65 KB si 128 KB. In scopul de-a forta un raspuns suficient de mare, clientul trebuie sa solicite o resursa mai mare de 128 KB. Gasirea unui fisier cu aceasta marime pe serverul respectiv, se poate realiza in general fara prea mare bataie de cap. Chiar daca nu exista un astfel de fisier, in cazul in care serverul web accepta HTTP pipelining (majoritatea serverelor dedicate dispun de aceasta caracteristica), acelasi efect poate fi atins prin solicitarea unui resurse de dimensiune mai mica, de mai multe ori.
Metoda lui Shekyan este similara cu modul in care functioneaza instrumente de tipul Sockstress Nkiller2, insa in timp ce aceste instrumente folosesc pachete TCP create special si tintesc socketurile primare, metoda mai sus mentionata se aplica la servere web (HTTP).
Administratorii de servere care doresc sa testeze daca serverele lor sunt vulnerabile la Slow Read DoS, pot folosi slowhttptest. Atentie insa ca acest tool va desfasura un atac activ asupra serverelor, nu se recomanda sa se faca testul pe servere in productie.
Potrivit declaratiilor lui Shekyan, serverele web Apache, nginx, lighttpd si IIS 7.5 sunt vulnerabile la acest tip de atac daca se utilizeaza configuratia lor standard. Din fericire, unele dintre dispun si de un sistem de protectie ce poate fi activat sau dezactivat, altele pot utiliza diferite module capabile sa aplice restrictiile necesare pentru a se proteja impotriva atacului.