DNS-tunneling: hoe het adresboek van het internet wordt misbruikt als geheime koerier
Stel je voor dat een gevangenis alle post controleert, behalve ansichtkaarten: die worden geacht onschuldig te zijn en gaan ongecontroleerd naar binnen en buiten. Iemand die dit weet, kan een geheime boodschap in kleine stukjes opknippen en over tientallen ansichtkaarten verspreiden. Niemand die de kaarten afzonderlijk bekijkt, ziet iets verdachts, maar wie alle kaarten weer aan elkaar plakt, krijgt de volledige boodschap terug. DNS-tunneling werkt volgens precies dit principe, maar dan met internetverkeer.
DNS staat voor Domain Name System: het systeem dat een domeinnaam zoals "detoekomstisnu.nl" vertaalt naar het numerieke adres (IP-adres) waarmee computers elkaar echt vinden. Dit verkeer wordt door vrijwel elke firewall en elk netwerk toegelaten, omdat internet zonder DNS niet zou werken. Bij DNS-tunneling verstopt iemand extra data — bestanden, commando's, of hele internetverbindingen — in die DNS-verzoeken. Voor een firewall lijkt het gewoon onschuldig verkeer om een website te vinden, terwijl er in werkelijkheid een verborgen kanaal doorheen loopt.
Wat is het precies?
Om te snappen hoe dit werkt, is het handig om eerst te weten hoe DNS normaal gesproken functioneert. Typ je een website-adres in, dan stuurt je computer een DNS-vraag naar een "resolver" (vaak van je internetprovider), die op zijn beurt de eigenaar van dat domein — de "autoritatieve nameserver" — raadpleegt en het bijbehorende IP-adres terugstuurt. Dat gebeurt in een fractie van een seconde, onzichtbaar voor de gebruiker.
Bij tunneling registreert een aanvaller (of een onderzoeker met legitieme bedoelingen) eerst een eigen domeinnaam, bijvoorbeeld "tunnel-voorbeeld.com", en zet daar een eigen, aangepaste nameserver voor op. Data die verstuurd moet worden, wordt vervolgens opgeknipt in kleine stukjes en gecodeerd — meestal met Base32 of Base64, technieken die willekeurige bytes omzetten in tekst die is toegestaan in domeinnamen. Elk stukje wordt als subdomein voor de eigen domeinnaam geplakt, bijvoorbeeld "a8f3c9b1.tunnel-voorbeeld.com", en als DNS-vraag verstuurd.
Omdat DNS-labels maximaal 63 tekens mogen zijn en een volledige naam maximaal 253 tekens, moet grotere data over veel afzonderlijke verzoeken worden verdeeld. De eigen nameserver van de aanvaller ontvangt al die verzoeken, herkent het patroon, decodeert de data en kan in het antwoord — vaak via TXT-, CNAME- of NULL-records, tekstvelden die normaal voor andere doeleinden dienen — weer nieuwe data of commando's terugsturen. Zo ontstaat een tweerichtingskanaal dat volledig via DNS-verkeer loopt, terwijl het eigenlijke protocol (bijvoorbeeld een bestandsoverdracht of een externe besturingsverbinding) daaronder "getunneld" wordt.
Wat wil men ermee bereiken?
DNS-tunneling zelf is neutrale techniek; het doel bepaalt of het onschuldig of schadelijk is. Aan de legitieme kant is het bedacht als noodoplossing om ergens toegang tot internet te krijgen waar alleen DNS-verkeer wordt doorgelaten, bijvoorbeeld op sommige hotel- of vliegveld-wifi’s met een betaalmuur die per ongeluk DNS-verzoeken niet blokkeren. Onderzoekers en penetratietesters (mensen die in opdracht netwerken proberen te kraken om zwakke plekken te vinden) gebruiken het bovendien om te testen of een organisatie dit soort verborgen kanalen kan opsporen.
Aan de kwaadaardige kant is DNS-tunneling aantrekkelijk voor makers van malware (schadelijke software) omdat DNS-verkeer zelden diepgaand wordt geïnspecteerd en bijna nooit volledig wordt geblokkeerd, zelfs niet in streng beveiligde bedrijfsnetwerken. Zo kan besmette software stiekem "naar huis bellen" — contact maken met een server van de aanvaller om nieuwe instructies op te halen (command-and-control, kortweg C2) — of gestolen data (documenten, wachtwoorden, bedrijfsgeheimen) langzaam naar buiten sluizen zonder dat traditionele firewalls of dataverlies-preventiesystemen (DLP) dit opmerken.
Voorbeelden uit de praktijk
Een van de bekendste legitieme tools is iodine, ontwikkeld door de Zweedse programmeurs Björn Andersson en Erik Ekman en sinds 2004 in ontwikkeling. Het programma tunnelt een volledige IPv4-internetverbinding door DNS-verzoeken heen en wordt nog steeds gebruikt door mensen die op een restrictief netwerk toch willen internetten.
Voor beveiligingsonderzoek bouwde Ron Bowes in 2013 dnscat2, een tool die specifiek is ontworpen om tijdens penetratietests een versleuteld command-and-control-kanaal via DNS op te zetten, zodat organisaties kunnen oefenen met het detecteren ervan.
Aan de kwaadaardige kant documenteerde Cisco Talos in 2017 DNSMessenger, een stuk malware dat volledig via DNS TXT-records commando’s ontving en zo nauwelijks sporen op de harde schijf achterliet.
Beveiligingsbedrijf FireEye (nu Mandiant) rapporteerde vanaf 2017 herhaaldelijk over de vermoedelijk Iraanse groep OilRig (ook wel APT34 genoemd), die in meerdere campagnes tegen overheden en bedrijven in het Midden-Oosten DNS-tunneling gebruikte om onopgemerkt te blijven.
Tot slot bevestigden FireEye en Microsoft in 2020 dat de grootschalige SolarWinds-aanval (malware genaamd SUNBURST) gebruikmaakte van DNS-verzoeken om besmette systemen te identificeren en eerste instructies te versturen, voordat op geselecteerde, interessante slachtoffers werd overgeschakeld naar geavanceerdere kanalen.
Hoe ver is de techniek?
DNS-tunneling is geen nieuwe vinding; academische voorlopers dateren al uit de jaren negentig en met tools als iodine is de techniek sinds midden jaren 2000 breed toegankelijk. Het is dus een volwassen, goed gedocumenteerde methode, geen experimentele technologie in ontwikkeling.
Wat wel voortdurend verandert, is de wedloop tussen aanvallers en verdedigers. Beveiligingsbedrijven zoals Palo Alto Networks, Infoblox en Akamai hebben detectiesystemen gebouwd die verdachte patronen herkennen: ongewoon lange domeinnamen, een opvallend hoog aantal DNS-verzoeken per seconde vanaf één toestel, willekeurig ogende tekenreeksen (hoge "entropie" genoemd) of afwijkende typen DNS-records. Aanvallers proberen op hun beurt detectie te omzeilen door verkeer trager en "normaler" te laten lijken.
Een relatief nieuwe complicatie is de opkomst van DoH (DNS over HTTPS) en DoT (DNS over TLS), technieken die DNS-verkeer versleutelen en er als gewoon webverkeer laten uitzien. Dat is op zichzelf een privacyverbetering voor gewone gebruikers, maar het maakt het voor netwerkbeheerders lastiger om DNS-tunneling te herkennen, omdat ze de inhoud niet meer zomaar kunnen inzien. Beveiligingsonderzoekers zijn hier actief onderzoek naar aan het doen; een pasklare, algemeen aanvaarde oplossing is er nog niet.
De belangrijkste praktische beperking van DNS-tunneling blijft de snelheid: het kanaal is traag en heeft weinig bandbreedte vergeleken met normaal internetverkeer, waardoor het vooral geschikt is voor korte commando’s en kleine hoeveelheden data, niet voor het snel wegsluizen van grote bestanden.
Wie werken eraan?
Aan de verdedigende kant investeren grote netwerkbeveiligingsbedrijven zoals Cisco (met het Talos-onderzoeksteam), Palo Alto Networks (Unit 42), Infoblox en Akamai in detectieonderzoek en publiceren zij geregeld rapporten over nieuw ontdekte tunneling-technieken. Overheidsinstanties zoals het Amerikaanse CISA (Cybersecurity and Infrastructure Security Agency) en in Nederland het NCSC (Nationaal Cyber Security Centrum) geven waarschuwingen en richtlijnen uit wanneer DNS-tunneling in aanvallen wordt aangetroffen.
Standaarden rond DNS zelf worden vastgelegd door de IETF (Internet Engineering Task Force), de internationale gemeenschap die internetprotocollen documenteert. Op onderzoeksconferenties als Black Hat en DEF CON presenteren individuele beveiligingsonderzoekers regelmatig nieuwe tunneling- of detectietechnieken.
Aan de aanvallende kant zijn het vaak losse onderzoekers die open-source tools zoals dnscat2 en iodine onderhouden voor legitiem gebruik, terwijl inlichtingendiensten en aan staten gelinkte hackgroepen — zoals de eerdergenoemde, vermoedelijk Iraanse groep OilRig en de groep achter de SolarWinds-inbraak, door de Amerikaanse overheid toegeschreven aan Rusland — de techniek inzetten binnen bredere spionagecampagnes.
Verder lezen
- CISA — Amerikaans agentschap voor cyberbeveiliging
- SANS Institute — onderzoek en trainingen op het gebied van cybersecurity
- IETF — de standaardenorganisatie achter het DNS-protocol
- Palo Alto Networks Unit 42 — dreigingsonderzoek, inclusief DNS-tunneling
- Cisco Talos — onderzoeksblog over malware en netwerkdreigingen