Apps & Tools, How to

Zo voorkom je een DDoS-aanval op je site

0

Het was de week voor kerst in 2012 en ik surfte naar één van mijn websites. Tot mijn verbazing was deze offline. Ik keek direct in mijn statistieken-programma en kwam tot de conclusie dat de website al uren offline was. Zou dit een storing zijn van ons hostingbedrijf? Is dat niet een beetje lange storing? Wat zou er aan de hand zijn?

Rustig afwachten?

Ik stuurde een urgente vraag naar mijn hostingbedrijf (het was zaterdag) en de volgende dag kreeg ik het bericht dat mijn servers onderhevig waren aan een DDoS-aanval en dat ze daardoor uitgeschakeld waren.

Ik voelde me machteloos. Ik heb best veel kennis over websites, internet, programmeren en ga zo maar door, maar wat kan je hier nou tegen doen? De hostingprovider zei in ieder geval dat we rustig gingen wachten totdat de aanval was afgelopen. Nou, zo rustig was ik niet! Er is wel degelijk een oplossing om een DDoS-aanval slim af te zijn. In dit artikel bespreek ik wat precies een DDoS-aanval is  en hoe je het kunt neutraliseren.

Wat is een DDoS-aanval?

DoS staat voor Denial-of-Service, wat inhoudt dat een computersysteem niet meer in staat is te functioneren, bijvoorbeeld door een tekort aan werkgeheugen. Wat een DDoS-aanvaller doet is het computersysteem zo zwaar mogelijk belasten, door in een kort tijdsbestek (soms via verschillende IP-adressen – dan genoemd Distributed Denial-of-Service) zo veel mogelijk keer het systeem, bijvoorbeeld je website of blog, te raadplegen.

Hierdoor wordt de server trager en bij een te grote belasting slaat de server uit (of dat doet je hostingprovider). Als je weer online komt, begint de DDoS-aanval direct weer opnieuw, behalve misschien als je het IP-adres van je server laat veranderen, maar dat is niet gegarandeerd.

ddos-cartoon

Eén jaar cel of een boete van 19.000 euro

Een DDoS-aanval is uiteraard strafbaar. Op zo’n aanval staat maximaal één jaar cel (of een boete van maximaal 19.000 euro), zoals  vermeld in artikel 138b in Wetboek van Strafrecht. Als er door de DDoS-aanval gevaar is mensen, krijg je te maken met artikel-161sexies van het OM, waar maximaal zes jaar voor staat. Als er doden waren gevallen door jou toedoen, kan dit oplopen tot negen of vijftien jaar cel.

Voorkomen is beter dan genezen

Uiteraard was ik al te laat met ingrijpen. Nu is het natuurlijk zeer ongebruikelijk dat iemand je opeens gaat aanvallen, maar het is toch altijd mogelijk. In de volgende gevallen heb je, naar mijn idee, een groter risico op een DDoS-aanval:

  • Je zit in een markt waar veel kleine partijen zijn, waarvan mensen veel verstand hebben van internet en hacken.
  • Er is hoge concurrentie in je markt of je walst over je concurrenten heen, wat zij direct voelen in hun portemonnee.
  • Je hebt (semi)-vijanden op het internet of in je markt gemaakt.

Het lijkt me duidelijk dat het DDoS-proof maken van je website je nooit meer in de problemen hoeft te brengen, als iemand je wil aanvallen.

Cloudflare

Er zijn vast meerdere manieren, maar de simpelste is Cloudflare. Cloudflare is een gratis dienst die jouw website extra veiligheid en snelheid geeft. Om uit te leggen hoe het werkt, zal ik een metafoor gebruiken. In de metafoor stellen we ons een discotheek voor.

In je discotheek komen iedere dag bezoekers (net als op je website) die willen drinken, dansen en sjansen. Op de één of andere manier wil een concurrent van jou je discotheek de grond in krijgen. Je bent druk biertjes aan het tappen zodat je weer een goede dagomzet gaat draaien. Maar opeens hoor je iets wat de muziek overstemt. Het zijn duizenden bezoekers die zonder enige veiligheidscontrole in één keer met z’n allen binnenstromen.

Verdachte bezoekers krijgen een captcha

Al je huidige bezoekers worden verdrukt in de menigte en niemand kan meer dansen, een biertje kopen of wat dan ook. De politie (in principe je hostingprovider) is er al snel bij en stuurt iedereen naar huis en zet je discotheek af. Zo gauw je weer je discotheek opent, komt de storm van bezoekers weer direct op je site af.

Captcha voorbeeld

Het is duidelijk dat je een leger aan bodyguards nodig hebt die de plotselinge bezoekersstromen weigert en ondertussen de ‘normale’ bezoekers binnen laat. En dat laatste is dus precies wat Cloudflare doet. Zij staan voor je website en verdachte bezoekers of bezoekersstromen krijgen een captcha. Je weet wel, één of meerdere moeilijk te lezen woorden die je moet invullen in een box.

Het mooie van Cloudflare is dat het volledig gratis is. Je kunt ook overigens ook 200 dollar per maand betalen voor nog meer beveiliging, maar dat is overbodig. Behalve als je verwacht dat heel Nederland in één keer naar je website zal komen. De gratis versie is dus al voldoende bescherming.

Hoe stel je Cloudflare in?

Een stappenplan om Cloudflare in te stellen:

Stap 1: Maak een account aan.

Stap 2: Voeg je domein toe. Wordt je domein geweigerd? Dan heb je waarschijnlijk te maken met een .nl domein. Je moet dan even je domein invoeren op de website who.is, zodat Cloudflare kan verifiëren dat je website geregistreerd is. Na ongeveer één dag kan je het domein dan wel toevoegen.

Stap 3: Voer de DNS settings in zoals die ook bij je provider zijn ingesteld. Richt de DNS in Cloudflare op je server bij je hostingprovider. Dit is redelijk geavanceerd en kun je beter overlaten aan een programmeur. Zorg er in elk geval voor dat je bij alle DNS settings Cloudflare aanzet, door op het wolkje te klikken, zodat deze oranje wordt.

cloudfare

Stap 4: Wanneer je de DNS setting hebt ingesteld, zet je bij de Cloudflare settings het Security profile op ‘high’ en het Performance profile op ‘CDN only’.

Stap 5: Je krijgt nu van Cloudflare de name servers waar je je domein naar moet inrichten (waarschijnlijk roxy.ns.cloudflare.com en walt.ns.cloudflare.com). Vervolgens contacteer je je hosting provider en vraagt ze of ze de name servers willen instellen voor je website, en of ze de oude willen verwijderen.

Het veranderen van de name servers duurt meestal een uur, soms een paar uur en maximaal 24 uur, maar je site zal niet offline gaan. Behalve als je Cloudflare verkeerd hebt ingesteld.

Name servers

Als de name servers nog niet veranderd zijn, krijg je dit bericht van Cloudflare:

“Finishing up. Waiting for your name servers to change to [nameserver1] and [nameserver2]. Please allow your registrar up to 24 hours to complete this process (info)”

Als dit er niet meer staat, staat Cloudflare dus aan voor het gegeven domein.

Voordelen

Naast dat je nu resistent bent tegen DDoS-aanvallen zijn er nog een aantal andere voordelen van Cloudflare. Hier zijn ze:

  • Je website wordt iets sneller.
  • Als je hostingprovider offline is, zijn sommige van jouw pagina’s nog steeds online, door de cache-functie van Cloudflare.
  • Als je je website op een andere server wilt zetten, hoef je die alleen maar te kopiëren naar die server en dan de DNS settings te updaten in Cloudflare. Op die manier draait je site direct onder die andere server, zonder uren te wachten op een DNS-verandering.
  • Je kunt via Threat Control zien of jouw server wordt aangevallen door botnets, spammers en andere bedreigingen.
  • Je kunt specifieke ip-adressen blokkeren.
  • Met de pro-versie kun je mobiele bezoekers doorsturen naar mobiele variant, bijvoorbeeld m.jouwdomein.nl.
  • Je kunt Javascript, css en html-bestanden op ‘auto minify’ zetten (web-optimalisatie).

Nadelen

Er zijn twee nadelen van Cloudflare:

Nadeel één: Mogelijke vertraging van vier uur

Cloudflare slaat jouw websitebestanden op in een tijdelijk geheugen (cache) die, met de standaardinstelling 4 uur, worden bewaard en niet worden overschreven als je wijzigingen maakt aan deze bestanden. Praktisch gezien betekent dat dat als je bestandsformaten als css, Javascript, jpg, gif en png wijzigt, je deze wijzigingen pas na 4 uur ziet op je website.

Maar de oplossing is simpel: klik op de Purge Cache knop onder het tabblad ‘Settings overview’ zodat je direct de nieuwe versie van de bestanden ziet. Uiteraard moet je wel even aan je programmeur vertellen dat de cache geleegd moet worden als er nieuwe bestanden op de site worden gezet. Anders is het voor hem een raadsel waarom de nieuwe veranderingen niet live op de site te zien zijn.

cachepurge

Nadeel twee: afhankelijkheid van Cloudflare

Een tweede nadeel is dat je natuurlijk wel afhankelijk bent van de werking van Cloudflare. Over het algemeen is dit een heel stabiel bedrijf. Hoewel er begin maart op Nu.nl verscheen dat Cloudflare ongeveer twee uur lang 800.000 domeinen had platgelegd. Geen enkele service is volledig waterdicht, of je nou een Amazon S3 server bezit, een website host bij Godaddy of welke dienst dan ook.

Uiteindelijk waren al mijn websites vier dagen offline, dus had mij maar liever die twee uur offline gegeven bij Cloudflare!

‘Keep me logged in on this computer ‘

Tot slot is het niet slim om de ‘Keep me logged in on this computer’-functie aan te vinken bij het inloggen. Als je toestel (laptop, mobiele telefoon of tablet) gestolen wordt, kan iemand al je websites offline halen door de DNS settings te veranderen.

Ik hoop dat je wat hebt aan dit stappenplan. Als je nog vragen hebt, hoor ik ze graag.