Blog overzicht

/ Wat is DNSSEC?

DNS is een van de oudste protocollen van het huidige internet. Zoals we al eerder bespraken in ons blog, fungeert het als het telefoonboek van het internet. Omdat zo’n telefoonboek natuurlijk een interessant doelwit is voor aanvallers die bijvoorbeeld het nummer van de bank willen vervalsen, is het een gewild slachtoffer voor aanvallen van kwaadwillenden. Sinds het einde van de jaren 90 zijn diverse partijen daarom al aan de slag gegaan met het creëren van veiligheidsmaatregelen rondom DNS. DNSSEC (DNS SECURITY EXTENSIONS) is een van de maatregelen die uit deze pogingen is voortgekomen om de grootste gevaren af te weren.


Cache poisoning zorgt voor ellende

Cache poisoning, ook wel DNS spoofing genoemd, zorgt voor een groot probleem bij onbeveiligde DNS. Cache poisoning zorgt er namelijk voor dat diefstal van data als wachtwoorden, creditcardnummers en andere gevoelige gegevens mogelijk wordt. 

Hoe werkt cache poisoning?

  1. De aanvaller stuurt eerst een verzoek voor het IP-adres van een bepaald subdomein dat niet bestaat van bijvoorbeeld een bank naar een recursive nameserver.
  2. De recursive nameserver heeft logischerwijs geen antwoord en verzoekt uiteindelijk een nameserver van de aan te vallen bank om het juiste antwoord op het IP-adresverzoek te geven. 
  3. Voordat deze onderliggende nameserver antwoord kan geven, stuurt de aanvaller richting de recursive server een grote hoeveelheid nepantwoorden die van een legitieme server van de bank lijken af te komen. Dit allemaal nog voordat de server van de bank het juiste antwoord (er is geen IP-adres dat doorverwijst naar dat domein) heeft kunnen geven. Dit proces wordt spoofing genoemd en wordt ingezet om net te doen alsof het antwoord komt van de beoogde afzender. 
  4. De recursive nameserver accepteert een nepantwoord en slaat het op in het cachegeheugen. 
  5. Nu de vervalste gegevens zich in het cachegeheugen bevinden is het voor de aanvaller tijd voor de volgende stap: het lokken van de gebruiker via bijvoorbeeld een phisingmail naar een niet bestaand subdomein van de bank.
  6. De computer van een nietsvermoedende gebruiker verzoekt daarna de recursive nameserver voor het IP-adres van de bank en krijgt het vervalste foute IP-adres terug uit het cachegeheugen. 
  7. De gebruiker komt vervolgens uit op de website van de aanvaller die er precies uitziet zoals de pagina van de bank en vult niets vermoedend zijn of haar gegevens in. 


Quick fix

Nu was er gelukkig al een quick fix om deze aanval een stuk moeilijker te maken. Ondertussen werd er hard gewerkt aan een definitieve oplossing. Securityonderzoeker Dan Kaminsky legt het in onderstaande video uit.


DNSSEC zorgt voor veilige antwoorden

Een paar dagen om een DNS-record te vervalsen is nog steeds niet gewenst en er is ondertussen een robuustere beveiliging in gebruik in de vorm van DNSSEC. Wat is DNSSEC dan precies en wat doet het om jouw DNS-verzoek veiliger te maken? DNSSEC zorgt ervoor dat de DNS-resolver kan valideren dat er geen aanpassingen zijn geweest in het antwoord op het IP-adresverzoek tijdens de verzending. Dit antwoord wordt aan de hand van een publieke en private beveiligingssleutel geverifieerd en daarna verstuurd. DNSSEC bouwt daarvoor een chain of trust op verschillende niveaus binnen het DNS. Dat gaat als volgt.

Stel je wil www.transip.nl bezoeken. Om het juiste IP-adres op te halen volgt een schakel van veiligheidschecks op elk niveau. De DNS-resolver bevat daarvoor een trust anchor voor het rootniveau. Dat betekent dat de resolver de antwoorden die daar vandaan komen sowieso kan valideren. Als de resolver vervolgens vraagt waar .nl staat, krijgt hij van de root zowel de NS- als de DS-records terug. Daarmee kan de resolver direct de DNSKEY’s van SIDN valideren. Dit gebeurt bij SIDN omdat deze DNSKEY’s voor .nl-domeinen daar zijn ondergebracht. Vervolgens herhaalt het proces zich op een lager niveau. Er wordt gevraagd door de resolver waar transip.nl staat en deze krijgt direct de NS- en de DS-records terug.

Dit werkt zo voor alle niveaus en op deze manier wordt een chain of trust gebouwd waarin alle onderdelen van de schakel veilig zijn. Daarmee is de authenticiteit en de integriteit van het antwoord gewaarborgd.


Backwards compatible

Een groot voordeel van DNSSEC is dat het backwards compatible is. Mocht een domein nog geen DNSSEC gebruiken, dan valt het systeem terug naar traditionele DNS en wordt alsnog het antwoord op het DNS-verzoek gegeven. Dit blijft natuurlijk een veiligheidsrisico, maar het zorgt er in ieder geval voor dat het internet blijft werken zoals verwacht en dat er geleidelijk aan stappen kunnen worden gemaakt om de veiligheid van de DNS-servers te verbeteren.


DNSSEC is een bouwblok voor een veiliger internet

Een leuke bijkomstigheid is dat DNSSEC de mogelijkheid biedt aan andere beveiligingsstandaarden om DNSSEC als onderliggende beveiligingslaag te gebruiken. Denk bijvoorbeeld aan DMARC (tegen phishing bij e-mails) en DANE (beveiligde verbindingen) die deze methode inzetten als bouwblok voor hun eigen beveiligingslaag. 


Moet je zelf DNSSEC instellen en hoe doe je een DNSSEC-check?

DNSSEC maakt het internet een stuk veiliger en wordt daarom met open armen ontvangen. Nederland is zelfs koploper in de implementatie ervan. TransIP biedt automatisch op zo goed als al haar domeinextenties die het ondersteunen (waaronder .nl, .com en .eu) DNSSEC aan. Zelf DNSSEC instellen is dus niet vereist. Wil je weten of op jouw domeinnaam DNSSEC actief is? Doe dan de DNSSEC-check op internet.nl en vul daar jouw domeinnaam in. Je kan dan meteen zien of jouw domein aan deze beveiligingsstandaard voldoet.

Deel dit verhaal

Blog overzicht

Auteur: Bas van der Weijden

Schrijft als tech-copywriter artikelen over diverse onderwerpen die over VPS, infrastructuur en security gaan. Fanatiek fotograaf in zijn vrije tijd en is gek van gamen en dan vooral op Nintendo-consoles.

Reacties voor het blog zijn uitgeschakeld

Disqus reacties zijn niet beschikbaar omdat je Marketing-cookies hebt uitgeschakeld. Wil je toch reageren op het blog? Zet dan de marketing-cookies aan in jouw privacy instellingen.