DNS-spoofing en cache-poisoning: hoe ze werken en wat ze stopt
DNS-spoofing vereist geen onderschepping van echt verkeer. Het vereist correct raden en als eerste aankomen — de cache van een resolver accepteert welk antwoord er ook het eerst binnenkomt.
Wat DNS-spoofing is
DNS-spoofing vervalst een DNS-antwoord zodat een resolver een door de aanvaller gekozen IP-adres cachet en serveert in plaats van het echte. Zodra een vervalst antwoord in de cache staat, ontvangt elke client die die resolver gebruikt het, totdat de TTL verloopt — zonder verdere actie van de aanvaller.
Het off-path-probleem
Een aanvaller die niet op het netwerkpad tussen de resolver en de echte gezaghebbende server zit, kan het echte verkeer niet zomaar lezen of bewerken. In plaats daarvan moet het vervalste antwoord geraden en afgeleverd worden voordat het echte gezaghebbende antwoord arriveert — een race, geen onderschepping.
Wat er geraden moet worden
Een resolver herkent een geldig antwoord aan een 16-bit transactie-ID en de UDP-bronpoort waarvandaan de query werd verstuurd. De Kaminsky-aanval uit 2008 liet zien hoe je een onwaarschijnlijke eenmalige gok omzet in een praktisch uitvoerbare aanval: door een resolver te misleiden veel verschillende, niet-bestaande subdomeinen van hetzelfde domein op te zoeken, krijgt een aanvaller veel onafhankelijke races om dezelfde cache-slot te winnen, omdat elke geslaagde vervalsing de records van het bovenliggende domein vergiftigt.
De impact van een geslaagde vergiftiging
Eenmaal vergiftigd, leidt de resolver elke client die hem bevraagt stilletjes om — naar een phishingsite, een advertentie-injectiepunt, wat de aanvaller ook koos — zonder ook maar één systeem van de slachtoffers aan te raken, zolang de TTL van het vervalste record loopt.
Waarom DNSSEC dit stopt
Een valideerende resolver controleert een cryptografische handtekeningketen terug tot een vertrouwde root voordat hij een antwoord accepteert. Een aanvaller die de raadrace wint, bezit nog steeds niet de privésleutel voor het ondertekenen van de zone, dus kan het vervalste antwoord geen geldige handtekening produceren — correct geraden transactie-ID en poort worden irrelevant zodra validatie zelf de echtheid controleert.
Controleer DNSSEC voor een domein
Zie de theorie in de praktijk — voer DNSSEC-controle uit voor je eigen domein.