precies, niet elke ddos is gewoon willekeurige data. Stel dat je een server hebt die 10 000 verzoeken van het internet kan afhandelen per seconde. Gemiddeld krijgt je site 100 verzoeken per seconde. Dan gebruikt je systeem in dat geval maar 1% van de capaciteit. Gemiddeld dan. Stel nu dat op een gegeven moment Geenstijl of Tweakers of misschien Reddit rechstreeks naar je website linkt. Opeens krijg je 5000 verzoeken per seconde. Nu gebruik je 50% van je capaciteit. Een paar dagen later ontvangt een botnet van 10 000 computers een commando om jou website aan te vallen. Is het theoretische en praktisch mogelijk om je hier tegen de beschermen? Wel het hangt er allemaal vanaf hoe slim de aanvaller is. Als een aanvaller slim is en een groot genoeg botnet ter beschikking heeft dan kan het een aanval uitvoeren die practisch niet te onderscheiden valt van het slashdot effect, nl; wanneer je website niet meer reageert omdat je zoveel legitime bezoekers per seconde krijgt dat je server alle clients niet snel genoeg kan serveren. Dit gebeurt regelmatig wanneer Geenstijl linkt naar een website of Reddit op de FP een link naar een website heeft staan,
Wanneer je botnet groot genoeg is en versprijd is over de wereld, hoe kan een sysadmin dan weten welk verkeer van een legitieme gebruiker is en welk verkeer van een slaaf in het botnet? En ook het droppen of rejecten van packets kost je routeringsysteem wat processor tikken.
En dus blijft het heel vaak erg lastig om je te wapenen tegen een DDOS, Het enige wat gedaan kan worden is altijd klaar staan om te reageren. Tegen een DDOS kun je je niet passief wapenen, want elke aanval is anders. Een aanval kan er op uit zijn om heel langzaam het RAM van je servers vol te krijgen. Het enige wat de aanvaller moet weten is welke vraag stel ik de server zodat de server daar de maximale hoeveelheid RAM voor gebruikt. Nu stel je deze vraag langzaam sneller en door meer systemen tegelijk. Het enige wat de systeem admin kan doen is deze vraag niet meer laten beantwoorden door de server ... of achter een systeem zetten waarbij de aanvaller eerst met de juiste data moet reageren voor hij verder kan gaan. Bijvoorbeeld, met een captcha of iets gelijkaardigs. Maar meestal word er door de aanvaller gebruik gemaakt van een bug. Bijvoorbeeld op zo'n manier een http request doen, en dan op het juiste moment niet meer reageren ... zodat een verbinding open blijft staan ... en het geheugen van een router steeds voller en voller word. Maar een aanvaller kan er ook achter komen of er bepaalde vragen zijn die de processor extra veel rekentijd kosten en dan gewoon van af verschillende IP's die vragen gaan herhalen tot 100% van de rekentijd in gebruik word genomen en de server dus trager en trager zal reageren. Hier is soms niet eens veel bandbreedte voor nodig.
Wanneer het gebeurt moet je zo snel mogelijk een analyse maken om een patroon te zoeken die je het voordeel kan geven. Sluit je een bepaalde service af .. blok je een bepaald IP range voor ALLEEN die service ... etc etc
Je kunt natuurlijk elk IP adres gaan blocken maar als je niet weet welk IP van een slaafje komt en welk IP van een ongeduldige gebruiker die elke seconde op F5 duwt ... dan is het eindresultaat misschien wel dat een paar gebruikers als nog een reagerende website krijgen te zien maar samen met de slaafjes zullen er vele gebruikers zijn die helemaal niks meer zien omdat hun IP tijdelijk geblokt word. Daar komt nog bij dat de echte gebruiker van een bepaald computer systeem waarschijnlijk helemaal niet weet dat zijn computer onderdeel is van een botnet. En zodra het slaafje terecht gebanned word, zal de echte gebruiker van de computer ook niet meer op de website kunnen. Daar valt helemaal niks tegen te doen. In het echte leven kun je dit ook prima doen. Spreek maar eens met 500 man af om allemaal tegelijk door de McDrive te gaan .... dan zullen er echt wel klanten zijn die buiten jou vriendenkring vallen en verrekt lang moeten wachten voor ze aan de beurt zijn.
Conclusie: Hoe sluwer de beheerder van een botnet het verkeer van zijn bots laat lijken op legitiem verkeer, hoe moeilijker het onderscheid te maken is tussen gebruiker en aanvaller en hoe lastiger de DDOS te pareren is. Dit hangt natuurlijk ook erg af van geolocatie. Als Geenstijl opeens een aanval krijgt en 90% van de IP's komt uit Rusland dan zullen hun systeem administrators heel snel de volledige Rusland IP range blokkeren. Jammer voor die 100 Nederlanders in Rusland die graag Geenstijl bezoeken, maar zo werkt je website wel meteen weer voor alle Nederlandse gebruikers.
Door dat alles op internet en wat met computer te maken heeft te automatiseren valt is het nooit mogelijk om je 100% te verdedigen tegen een DDOS. Het enige wat kan werken is een systeem dat zo slim is en vrij snel kan door hebben ... ok dit komt van automatisering en kunnen we blokken en dit is een echte gebruiker van vlees en bloed. Maar de AI van computers kan nooit slim genoeg zijn om het onderscheid te kunnen uit maken tussen AI en mensen. En als de AI dat wel kan, dan kan de aanvallende AI in principe slim genoeg zijn om zich beter voor te doen als mensen. Met andere woorden: DDOS is een kat en muis spel. Zodra er nieuwe technieken komen om 10% van de DDOS te counteren ipv 1% zal er weer een slimmigheidje bedacht worden. Door decentrale karakter van het internet valt daar niks tegen te doen behalve misschien alleen verkeer door laten dat zich kan authenticeren als "een gebruiker met een schone PC die geen bot in een botnet is" Maar ja, dat kan toch niet in deze wereld waar er op 100 000 man maar eentje is die computers echt doorgrond.
De providers kunnen hier ook helpen. Als zij door krijgen dat de computer van een klant een slaaf is moeten ze de verbinding meteen afsluiten totdat de computer terug vrij is. Helaas is zo'n goed werkend systeem in elkaar zetten niet gemakkelijk en heel duur en providers hebben daar meestal helemaal geen zin in.
Enfin, ik spreek van hele algemene kennis en ervaring. Op de Wikipedia pagina worden de meest gebruikte een beetje uitgelegd.
http://en.wikipedia.org/wiki/Denial-of-service_attack
De theorie is eigenlijk heel eenvoudig. Wanneer de resources van een aanvaller groter zijn dan het target dan is er geen bescherming nodig. Daarom dat Cloud based DDOS bescherming het beste werkt ... immers die halen resources weg bij klanten die niet aangevallen worden en geven die resources aan klanten die wel aangevallen worden. De aanvaller moet dus al bijna evenveel resources hebben als de Cloud om altijd 100% succesvol te zijn. Maar een aanvaller kan soms ook het internet misbruiken om zijn aanval te versterken. Bijvoorbeeld met een dns amplification attack. Als jij als aanvaller door heel slim te zijn je eigen resources kunt vergroten door systemen op het internet voor je karretje te spannen zonder dat die systemen daarvoor al in je macht moeten zijn dan kun je bijvoorbeeld elk pakketje dat je verstuurd keer keer laten aankomen bij je target. En dan kun je als Cloud wel twee keer meer resources hebben als de attacker ... als de attacker andere systemen op internet kan misbruiken om zijn eigen resources te vermeerderen dan kan de cloud dus geen 100% bescherming meer bieden.
En zelfs bij cloud protection komt het aan op slimme systemen die snel genoeg beschikbare resources van het netwerk kunnen inzetten op de juiste plaats, die van de aanval .
Maar ik kan wel blijven door lullen. Tegen een DDOS beschermen is gewoon heel erg moeilijk en om daarom maar te zeggen dat providers en websites die zich niet lijken te kunnen verdedigen daarom allemaal sukkel systeem beheerders hebben is gewoon niet eerlijk. De Cloud bied de beste bescherming maar kost ook het meeste geld en gebruikers vinden het ook niet leuk om altijd eerst zo'n cloud pagina te zien voor ze eindelijk hun content hebben.
[Reactie gewijzigd door Kain_niaK op 23 juli 2024 02:06]