Reverse DNS: een lek uit onverwachte hoek

Afgelopen zomer ben ik verhuisd, en zoals dat soms gaat bleek er ergens een lekke waterleiding in mijn nieuwe woning te zijn. Na anderhalve dag zoeken lukte het ons eindelijk om het lek op te sporen: een warmwaterleiding in de keukenvloer. Bij cybersecurity zitten de lekken soms ook op onverwachte plekken, en in dit blogartikel ga ik zo'n onverwacht lek uitleggen: reverse DNS.

Reverse DNS?

De meeste lezers zullen hopelijk bekend zijn met DNS: het systeem dat voor mensen leesbare namen vertaalt in voor machines leesbare IP adressen. Wellicht minder bekend is dat er naast deze functie van DNS ook een omgekeerde functie is, reverse DNS, het vertalen van IP adressen terug naar de aan dat adres gekoppelde voor mensen leesbare naam. Als ik bijvoorbeeld het IP adres van surf.nl opvraag zie ik het volgende:

$ dig A surf.nl
;; ANSWER SECTION:
surf.nl.        900    IN    A    145.100.190.243

Met reverse DNS kan ik dan de naam die bij dit IP adres (145.100.190.243) hoort ook opvragen:

$ dig -x 145.100.190.243
...
;; ANSWER SECTION:
243.190.100.145.in-addr.arpa.   900   IN    PTR    surf.nl.

Het OpenINTEL project

Aan de Universiteit Twente doen we grootschalige metingen aan DNS. Dit doen we in het OpenINTEL project, waarin ook SURF, SIDN en NLnet Labs als partners deelnemen. We vragen dagelijks voor ruim 250 miljoen domeinnamen van over de hele wereld allerlei DNS records op. Dit doen we sinds begin 2015, waardoor we inmiddels veel onderzoek kunnen doen naar trends op het internet. Sinds 2020 verzamelt OpenINTEL niet alleen informatie voor domeinnamen, maar vragen we ook dagelijks alle reverse DNS records voor de hele IPv4 adresruimte op. Dat geeft ons dagelijks resultaten voor zo'n 1,4 miljard IP adressen waarvoor reverse DNS is ingesteld.

Een toevallige ontdekking

Toen we in 2020 begonnen met deze nieuwe meting wilden we valideren dat onze metingen correct functioneren. Een van de analyses die we uitvoerden was om te kijken naar het dagelijkse aantal wijzigingen in reverse DNS. Hoewel we verwachtten zeker dagelijks wijzigingen te zien viel het aantal veel hoger uit dan we hadden ingeschat. We krabden ons achter de oren en vroegen ons af: hoe kan dat?

Na enige speuren hadden we het antwoord: we zagen heel veel reverse DNS records die hoorden bij dynamisch toegewezen IP adressen. Dat behoeft wellicht ook wat uitleg. Als je computer zich aanmeldt op een netwerk krijgt deze meestal een IP adres toegewezen door middel van het Dynamic Host Configuration Protocol (DHCP). Tijdens dit proces stuurt je computer meestal ook informatie, zoals de naam die je hebt ingesteld voor het systeem, naar de DHCP server. En in sommige gevallen blijkt deze informatie door de DHCP server dan dynamisch in reverse DNS te worden opgenomen, wat wij bleken te zien in onze metingen.

Om dit verder te onderzoeken zijn we vervolgens in de data gaan speuren naar netwerken die dit soort dynamisch gedrag vertonen, en specifiek naar populaire Engelse voornamen. Daarbij vonden we tienduizenden adresblokken waar we dit soort gedrag zagen. Het plaatje hieronder laat zien hoe vaak we de 50 populairste namen tegenkwamen.

50 populairste namen
Aantal keer dat de 50 populairste voornamen voorkomen in onze dataset

We zagen echt niet alleen populaire namen die veel voorkwamen, we zagen ook de namen van verschillende types apparaten, zoals iPads, Macbooks en Samsung Galaxy tablets. Dus we konden niet alleen zien of een persoon met een bepaalde naam online was, we konden in sommige gevallen zelfs zien wat voor type apparaat ze gebruiken. Dat is best een lelijk privacylek!

Om aan te tonen hoe zo'n privacylek misbruikt kon worden hebben we aantal case studies uitgevoerd. Daarbij merk ik direct op dat we hiervoor eerst uitgebreid met onze ethische commissie gesproken hebben, omdat we ons zeer bewust zijn van de ethische haken en ogen die zitten aan het doen van dit onderzoek.

Thuiswerken tijdens corona

De eerste case studie die we hebben uitgevoerd gaat over thuiswerken tijdens corona. Op basis van onze data hebben we naar vijf netwerken gekeken die dynamische reverse DNS records bevatten. Om iets specifieker te zijn: we hebben gekeken naar drie universiteitsnetwerken en twee bedrijfsnetwerken van hele grote bedrijven. De onderzoeksvraag die we daarbij hadden was: kunnen we op basis van fluctuaties in het aantal reverse DNS records zien of minder mensen gebruik maken van het netwerk tijdens lockdowns?

De figuur hieronder laat zien dat dit duidelijk zichtbaar is. In de bovenste helft van de figuur staan de drie universitaire netwerken, onderin staan de twee bedrijfsnetwerken.

Grafiek
Grafiek die het aantal reverse DNS records tijdens lockdownperiodes laat zien

In de grafiek is heel duidelijk te zien dat in 4 netwerken veel minder gebruikers waren tijdens lockdowns. Academic A en Academic B zijn twee grote Amerikaanse universiteiten, en het is duidelijk zichtbaar dat vooral in de eerste periode van lockdowns significant minder reverse DNS records (en dus gebruikers) aanwezig waren. Het is ook goed te zien dat na de zomer van 2020 het in de VS in ieder geval weer "business as usual" is. Ook de twee bedrijven laten een duidelijke daling zien. Bovendien keren de aantallen niet meer terug tot het niveau van voor de pandemie. Hoewel we dit niet met zekerheid kunnen bevestigen lijkt dit te suggereren dat er een blijvende verandering in werkpatronen is, waarbij het gewoner geworden is om thuis te werken.

Opvallend is echter dat Academic C eigenlijk weinig veranderingen laat zien. En we weten ook waarom. Dit is namelijk onze eigen campus, waar we studentenhuisvesting op het terrein hebben. En omdat we weten hoe het UT netwerk is ingedeeld kunnen we hier beter naar kijken. Onderstaande figuur laat heel duidelijk zien dat er wel degelijk iets verandert: in de onderwijsgebouwen zijn veel minder clients op het netwerk, terwijl het in de studentenhuisvesting juist fors toeneemt.

Grafiek
Reverse DNS records op het UT netwerk, uitgesplitst per type gebouw

Life of Brians

OK, we kunnen dus zien dat er mensen op een netwerk aanwezig zijn, maar het gaat nog verder: we kunnen ook zien wie er aanwezig zijn op een netwerk en welke apparaten ze gebruiken.

Om deze case study uit te voeren hebben we een nauwkeuriger meting uitgevoerd op een van de netwerken waar we dynamisch gedrag zagen. Daarbij hebben we specifiek gezocht naar voorkomens van de naam "Brian" in reverse DNS records (als pun op de titel van de Monty Python film "The Life of Brian"). Deze detailstudie hebben we uitgevoerd in de 5 weken van 2021 waar ook Thanksgiving in de VS in valt. Onderstaande figuur laat het resultaat zien.

Grafiek
The Life of Brians

Ik wil een paar opvallende dingen in deze grafiek uitlichten:
 

  • Zoals duidelijk te zien is worden er zowel Apple als Samsung apparaten op het netwerk waargenomen. Dat lijkt te suggereren dat het niet om een enkele Brian gaat maar om meerdere personen.
  • De potentiële privacyimpact is mooi zichtbaar in week 1, waarin Brian's MBP (Macbook Pro) lang continu aanstaat. Mogelijk is deze Brian een student die aan een opdracht aan het werken was die voor een deadline af moest?
  • De paarsegekleurde dagen zijn het Thanksgiving weekend, waarin Amerikanen massaal naar hun familie gaan en vrij hebben. Het is duidelijk te zien dat onze Brian's nauwelijks actief zijn in deze periode.
  • Pas op de maandag na Thanksgiving verschijnt Brian's Galaxy Note 9 voor het eerst op het netwerk. Het blijft natuurlijk speculeren, maar de maandag na Thanksgiving is "Cyber Monday" waarop veel electronicaketens stunten met goedkope prijzen voor apparaten. Wellicht heeft deze Brian die dag een nieuwe tablet gekocht.

Al met al demonstreert deze case study heel duidelijk dat we het hier niet over een onschuldig lek hebben. Als we willen kunnen we heel gedetailleerd gebruikers volgen. We zijn heel bewust niet verder gegaan dan een heel globaal beeld schetsen, maar door gericht reverse DNS records op te vragen kan iedereen op het internet gebruikers volgen die in netwerken zitten die op deze manier dynamische records in reverse DNS aanmaken.

Welke les is hier uit te trekken?

De reden dat veel apparaten zich op een netwerk met een duidelijke naam aanmelden is gebruiksgemak; in thuissituaties helemaal prima. Maar in een professionele omgeving is dit een probleem, zeker als systemen zo geconfigureerd zijn dat deze namen worden overgenomen in reverse DNS, en daarmee zichtbaar zijn voor de buitenwereld. In essentie creeër je daarmee een datalek waarbij persoonsgegevens worden gelekt. Feitelijk is dit een prachtige demonstratie van de veelgehoorde tegenstelling tussen gebruiksgemak en veiligheid.

Wat kan ik zelf doen om dit probleem op te lossen?

Het is verstandig voor beheerders van bij SURF aangesloten instellingen om een keer goed de configuratie van hun DHCP server of hun IP adres management (IPAM) systeem door te lichten. Hoewel we geen specifieke informatie hebben voor de veelheid aan verschillende systemen, zou de handleiding uitkomst moeten bieden om het overnemen van namen die apparaten doorgeven in DHCP verzoeken in reverse DNS uit te schakelen.

Meer weten?

Dit artikel is gebaseerd op een publicatie van een van onze promovendi, Olivier van der Toorn, en is samen met collega's Raffaele Sommese, Anna Sperotto en Mattijs Jonker, allen van de UT, geschreven.

Lees de paper (in het Engels) in de ACM Digital Library (open access)

Auteur

Reacties

Dit artikel heeft 0 reacties