Een onderzoeker heeft een nieuwe methode ontdekt om met een enkele computer een succesvolle denial of service-aanval op een server uit te voeren. Normaal gesproken is de bandbreedte van aanzienlijk meer pc's nodig voor een aanval.
De onderzoeker, Sergey Shekyan van Qualsys Security Labs, heeft inmiddels een proof of concept ontwikkeld dat gebruikt zou kunnen worden om vanaf één computer een server plat te leggen. Bovendien, zo stelt de onderzoeker, is de kans om ontdekt te worden tijdens de aanval erg klein.
Shekyan noemt zijn aanvalsmethode de Slow Read-aanval en heeft eerder deze week de werking ervan uit de doeken gedaan. Door misbruik te maken van een eerder ontdekte kwetsbaarheid in het tcp-protocol kan een aanvaller zelf invloed uitoefenen op de snelheid waarmee een server de gegevens probeert af te leveren. Tijdens dit proces controleert de server echter ook continue of het systeem van de ontvanger, in dit geval dus de aanvaller, al klaar is om meer data te ontvangen. Hierdoor loopt het geheugen van de server vol met data die nog verzonden moet worden, waardoor er uiteindelijk geen resources meer beschikbaar zouden kunnen zijn om legitieme bezoekers toegang tot de site te geven.
Om de aanval succes te kunnen uitvoeren is het volgens Shekyan nodig om de send buffer size van de server te weten omdat tcp deze waarde niet zelf vrijgeeft. Voor de meeste servers staat dit echter ingesteld op een standaardwaarde tussen de 65Kb en 128Kb. Ook moet de response van de server groter zijn dan die send buffer size, wat volgens de onderzoeker met de hedendaagse omvang van webpagina's niet echt een probleem zal zijn.
In potentie kan de ontdekking van de onderzoeker verstrekkende gevolgen hebben. Hoewel er voor zover bekend nog geen tools zijn die deze manier misbruiken om servers aan te vallen, is de kans dat deze ontwikkeld zullen worden groot.
De aanvalsmethode werkt in ieder geval op standaardconfiguraties van Apache, nginx, lighttpd en IIS 7.5. Echt goede verdedigingsmechanismen zijn er volgens Shekyan niet, anders dan niet zomaar persistent connections en http-pipelining toe te staan op de server en de absolute connection lifetime te beperken tot een realistische waarde.