Op het internet waart een tool rond die het voor iedereen mogelijk maakt om een poging te doen om DNS-servers van valse tabellen te voorzien. Het gebruiksgemak van de tool is beangstigend hoog, net als de effectiviteit ervan: in mijn testopstelling werden gepatchte DNS-servers binnen dertig minuten overgenomen.
Toen eind juli details bekend werden van het ernstige DNS-lek dat beveiligingsonderzoeker Dan Kaminksy ontdekte, dook al snel exploitcode op. Inmiddels zijn er tools in omloop waarmee ook leken aanvallen kunnen uitvoeren op DNS-servers. Daarmee kunnen ze de inhoud van deze adresboeken van het internet vervalsen, waardoor websitebezoekers naar nepsites kunnen worden omgeleid en mail kan worden afgevangen.
Ik heb één van deze tools getest om te zien hoe gevaarlijk deze is. De naam van de tool noem ik om begrijpelijke redenen niet.
Ongepatcht: twee tot vijf seconden
De tool bied de mogelijkheid om zowel gepatchte als ongepatchte DNS-servers aan te vallen. Alleen zal het bij gepatchte servers vele malen langer duren. De software ondersteunt twee methoden: de eerste aanvalsmethode richt zich tegen verwijzende (in het Engels: recursieve) DNS-servers (die veel ISP's gebruiken). Verwijzende DNS-servers worden ook wel ´caching´ nameservers genoemd. Dit type server is niet op de hoogte van alle domeinnamen op het hele internet, en stuurt daarom vertaalverzoeken aan ‘authoritive' DNS-servers. De tweede methode richt zich tegen Forwarder DNS-servers. Dit type DNS-server bevindt zich binnen een (bedrijfs-)netwerk en stuurt vertaalverzoeken door naar andere DNS-servers buiten dat netwerk.
De twee aanvalsmethoden verschillen alleen in de 'flag' die wordt meegestuurd met de valse DNS-replies, maar niet in de manier waarop ze hun doelwit proberen te misleiden: door veelvoudig valse reply's te sturen met verschillende TXID's (Transaction Identifiers). Op een ongepatchte server zijn er 65546 injecties nodig om het juiste identificatienummer te raden, maar door per 0,02 milliseconde 10 tot 15 injecties met verschillende TXID's te versturen is de ongepatchte server binnen 2 tot 5 seconden voorzien van verkeerde tabellen.
Met patch: dertig minuten
Gepatchte servers kennen een extra beveiligingslaag: de UDP-poort van verstuurde vertaalverzoeken is willekeurig (opnieuw zo'n 64000 mogelijkheden, wat de kans op een juiste gok verhoogt tot 64000 x 65546). Het raden van het juiste identificatienummer duurt daardoor veel langer. Beveiligingsexperts spraken tot nu toe van tijden tussen de tien a twintig uur. Tijdens de tests die ik heb uitgevoerd bleek het veel sneller te gaan, namelijk dertig minuten.
Het baart mij zorgen dat er tools in omloop zijn waarmee zo gemakkelijk DNS-servers vergiftigd kunnen worden met valse ip-adressen. Zelfs zonder verstand van DNS is het mogelijk om de cache van DNS-servers te vervuilen. Het enige positieve dat ik heb kunnen ontdekken is dat de logs van de gekraakte DNS-server het ip-adres van de exploiter onthouden. Dat biedt mogelijkheden om criminelen op te sporen.
Erik Westhovens
CIO DeltaISIS
Misbruik maken van het Kaminskylek
Het DNS-lek onstaat doordat het gemakkelijk is om een serie van DNS-requests te sturen naar een DNS-server samen met de valse reply ip-adressen. Als er maar voldoende valse requests komen, dan worden zelfs bestaande tabellen overschreven. Voorbeeld: Als in de DNS server in de cache een entry staat voor www.computable.nl => 212.72.59.51 kan deze tijdens de aanval overschreven worden door www.computable.nl => 62.69.184.29. Mensen die via de besmette DNS server dan www.computable.nl resolven komen dan uit op de pagina van Nu.nl. Dit is dus wel een onschuldige site. Het word erger als mensen van www.uwbank.nl (als voorbeeld) naar een pagina geleid worden die er identiek uitziet, maar ervoor gebouwd is om gegevens van klanten te misbruiken. Zelfs SSL certificaten trappen hier in, en de gebruiker merkt hier helemaal niets van, verder dan dat op een gegeven moment de rekening geplunderd word.
Deze aanval is vrij gemakkelijk omdat de meeste DNS-servers de UDP source poort identiek houden. All requests in en uit gaan via dezelfde poort. De patch zorgt ervoor dat de UDP-poort willekeuirg gekozen wordt, waardoor er opeens zo'n 64000 mogelijkheden zijn. De aanval is dus niet onmogelijk, maar er moet een veelvoud aan requests gedaan worden voordat het lukt om tabellen te overschrijven.
“Tijdens de tests die ik heb uitgevoerd bleek het veel sneller te gaan, namelijk dertig minuten.”
Nu vraag ik mij wel af of dit iets zegt over het DNS probleem ansich of over de testopstelling, waar ik helaas geen inhoudelijke informatie over lees in dit stuk.
Het zou opzich erg informatief zijn als daar ook wat details over los gelaten zou worden.
Hoe ziet de netwerkarchitectuur van de testopstelling eruit bijvoorbeeld ? Op een eigen 1G LAN zul je natuurlijk compleet andere resultaten boeken dan wat representatief is voor “the real thing.”
Wat de beschikbaarheid van de tools betreft : laat maar komen..
Hoe meer scriptkiddies (en CIO’s) ermee spelen hoe eerder we met een goede oplossing moeten komen. Hopelijk ligt de tijd van DNS over UDP dan snel achter ons.
Als dit inderdaad binnen 30 minuten lukt geschiedt dit op basis van tot op heden onbekende technieken. In de posting hier http://www.ops.ietf.org/lists/namedroppers/namedroppers.2008/msg01194.html wordt de spoofkans berekend volgens de huidige kennis van het probleem, en deze berekeningen komen veel hoger uit.
Het zou daarom gewaardeerd worden als u deze tool breder zou verspreiden voor onderzoek, of uiteen zou kunnen zetten hoe de aanval in zijn werk gaat.
Bert Hubert
PowerDNS
bert.hubert@netherlabs.nl
“Ik heb een van deze tools getest om te zien hoe gevaarlijk deze is. De naam van de tool noem ik om begrijpelijke redenen niet.”
De enige reden die ik kan bedenken is dat de auteur van het artikel wil voorkomen dat anderen zijn onderzoeksresultaten kunnen verifieren, en dat programmeurs eventueel tegenmaatregelen kunnen implementeren.
Met andere woorden, de heer Westhovens maakt onderdeel uit van het probleem, niet van de oplossing.
65546 klopt niet, 16 bit ID heeft 65536 mogelijkheden.
Nou die bit voor forwarders vs caches is dan tenminste gefixed door de bad guys. De vorige exploits (die ik in het nieuws zag) waren ook zo sullig met die bit verkeerd.
Maar wat Bert zegt klopt – zo een snelle exploit is mij ook nog niet openbaar bekend – en dan kan ik weer begrijpen dat je hem niet op elke straathoek wilt weggeven.
Wouter (auteur http://unbound.net ; met DNSSEC).
Zonder details over zowel de testopstelling, configuratie als de tool die gebruikt is weet ik eerlijk gezegd niet wat hiervan waar is. Als het waar is wat jij zegt, dan had inmiddels het hele internet toch allang platgelegen omdat iemand dat tooltje verspreid heeft?