Afstudeeronderzoek: Malafide .nl-registraties detecteren met behulp van representation learning
Een nieuwe aanpak voor het detecteren van malafide registraties door de embedding van DNS-querydata
Kies jouw kleur
Veel bezocht
Veelgestelde vragen
Via de Whois kun je de huidige houder van een domeinnaam opzoeken. Om de persoonsgegevens in te zien moet je vanwege de privacygevoelige informatie eerst de gebruikersvoorwaarden van de Whois accepteren. Gegevens van privé personen kunnen ook afgeschermd zijn vanwege de AVG (Algemene verordening gegevensbescherming).
Op de pagina domeinnaam zoeken lees je meer over wat een domeinnaam is, de werking van de Whois en de privacy van persoonsgegevens.
Je wilt je domeinnaam verhuizen naar een andere registrar. Vraag dan je verhuistoken op bij je huidige registrar. Lees de verhuisstappen op de pagina domeinnaam verhuizen.
Neem contact op met je registrar. Jouw registrar kan de contactgegevens bij je domeinnaam voor je aanpassen. Wij raden je aan het resultaat te controleren via de Whois. Lees meer over het aanpassen van je gegevens bij contactgegevens wijzigen.
Wij weten niet wat de reden van de opheffing is. Neem contact op met je registrar. Het voordeel van de quarantaine is dat je altijd de mogelijkheid hebt om een opheffing die je niet had bedoeld te herstellen.
Voorbeeld: In de voorwaarden van je registrar staat dat je elk jaar je abonnement moet verlengen. Dat gebeurt dan niet automatisch. Zo kan het gebeuren dat je domeinnaam wordt opgeheven zonder dat je er om gevraagd hebt.
Wanneer je een klacht hebt over of een geschil met je registrar dan zijn er verschillende mogelijkheden om tot een oplossing te komen. Hierover lees je meer op pagina klacht over registrar. SIDN heeft geen formele klachtenprocedure voor het behandelen van een klacht over jouw registrar.
Wil je zelf direct domeinnamen kunnen registreren bij SIDN voor je klanten of voor je eigen organisatie? Dan kun je .nl-registrar worden. Lees meer over de voorwaarden en de manier waarop je je kunt inschrijven als registrar via de pagina registrar worden.
Een nieuwe aanpak voor het detecteren van malafide registraties door de embedding van DNS-querydata
De oorspronkelijke blog is Engelstalig. Dit is de Nederlandse vertaling ervan.
Malafide domeinnaamregistraties detecteren op basis van DNS-querydata is lastig, omdat de data schaars zijn en de signalen zwak. In onze vorige blogpost lieten we al zien dat het toepassen van word embeddings op DNS-data een veelbelovende aanpak is. In deze blogpost vat ik de bevindingen samen van mijn stage bij SIDN Labs, waarin ik onderzocht of het werkbaar is om word embeddings te gebruiken voor het detecteren van .nl-domeinnamen die voor malafide doeleinden zijn geregistreerd. Het volledige verhaal kun je vinden in mijn master thesis.
In onze blog van januari 2024 deden we verslag van onze eerste experimenten met het gebruik van zogeheten 'word embeddings' als hulpmiddel bij de detectie van mogelijk malafide domeinnamen. Word embeddings worden gegenereerd met behulp van representation-learningmethoden die zijn ontworpen om de betekenis van woorden te beschrijven op basis van de woorden waarmee ze vaak worden aangetroffen. Op dezelfde manier kunnen we domeinnamen representeren als korte numerieke vectoren op basis van de resolvers waardoor ze worden opgevraagd.
Tijdens onze eerste experimenten ontdekten we dat de resulterende embeddings inderdaad gebruikt kunnen worden om verschillende aan domeinnamen gerelateerde vraagstukken aan te pakken. We verwachten dat dat dit ook geldt voor het voorspellen of een domeinnaam voor malafide doeleinden geregistreerd is.
Mijn onderzoeksproject was daarom bedoeld om te bepalen in hoeverre het gebruik van op basis van DNS-querydata gecreëerde domain embeddings een werkbare techniek is voor het detecteren van malafide .nl-domeinnaamregistraties. Meer specifiek hopen we dat deze methode in staat is om malafide domeinen eerder te detecteren dan de bestaande detectiemethoden die door SIDN worden gehanteerd. Ons doel is om deze methode te implementeren in productiesystemen bij SIDN.
We beschouwen een domeinregistratie als malafide als het domein binnen 30 dagen na registratie wordt aangemerkt wegens malafide activiteiten. Dat kunnen allerlei verschillende activiteiten zijn, zoals het hosten van een website die wordt gebruikt voor phishing, oplichting of het verspreiden van malware, of het beheren van een command-and-control-server.
Mijn aanpak is gestoeld op de aanname dat de verkeerspatronen die gepaard gaan met malafide domeinregistraties verschillen van die van niet-malafide domeinen. Als onze aanpak erin slaagt malafide domeinregistraties te detecteren, kunnen we concluderen dat deze aanname juist is, aangezien de classifier uitsluitend DNS-verkeer gebruikt om tot voorspellingen te komen.
Voor dit onderzoek bekeken we alle .nl-domeinnaamregistraties tussen maart en augustus 2024.
We gebruikten de Netcraft-dataset als de ground truth voor de malafiditeit van een domein. Netcraft is een commerciële dataset met misbruikmeldingen voor .nl-domeinnamen, die zowel door het supportteam van SIDN als door de onderzoekers bij SIDN Labs wordt gebruikt voor de bestrijding van misbruik.
ENTRADA is een dataset waarin DNS-querydata met betrekking tot .nl-domeinnamen worden opgeslagen. Uit deze dataset verzamelden we voor elk nieuw domein dat binnen ons geselecteerde datumbereik was geregistreerd, alle query's die tijdens de eerste 10 dagen na registratie met betrekking tot dat domein waren verzonden.
De data voor de laatste classifier heeft betrekking op alle domeinen die tussen 1 maart 2024 en 1 juli 2024 werden geregistreerd. De trainings- en testdata die we tot onze beschikking hebben, zijn zeer ongebalanceerd: slechts een fractie van alle registraties is malafide. De trainingsdata bevatten 259.317 domeinregistraties, waarvan er 509 malafide zijn (0,2%). De testdata bevatten 49.358 domeinregistraties, waarvan er 66 (0,1%) malafide zijn. Deze malafide registraties detecteren is zoeken naar een speld in een hooiberg, waardoor het voor modellen erg moeilijk te leren en uit te voeren is.
De door ons voorgestelde methode bestaat uit 2 stappen: domain embeddings creëren en domeinen classificeren.
We gebruiken Doc2Vec om embeddings van domeinen te creëren op basis van de IP-adressen van de resolvers waardoor de domeinen worden opgevraagd. Doc2Vec wordt gebruikt om een embedding van een document te creëren (op basis van de woorden die erin voorkomen), wat zich in ons geval vertaalt naar een embedding van een domeinnaam op basis van de resolvers waardoor de naam wordt opgevraagd. Om precies te zijn: de domeinnaam vertaalt zich naar de document-ID en de lijst van resolvers naar de zin die wordt gebruikt om de embedder te trainen. Dit wordt weergegeven in Figuur 1.
Figuur 1. Representatie van een domeinnaam op basis van de resolvers waardoor de naam is opgevraagd.
In het voorbeeld in figuur 1 verzamelen we een lijst van resolvers die domein X hebben opgevraagd en geven die aan het getrainde Doc2Vec-model. Het resultaat hiervan is een embedding van domein X op basis van de resolvers waardoor het domein is opgevraagd. De getallen in de embedding van domein X hebben geen betekenis voor een menselijke waarnemer, maar ze representeren betekenisvolle kenmerken die de ene domeinnaam van de andere onderscheiden in termen van de resolvers waardoor ze zijn opgevraagd.
We geven de resulterende embeddings aan een classifier om de waarschijnlijkheid te bepalen dat een .nl-domein voor malafide doeleinden is geregistreerd. We gebruiken de embedding van een domeinnaam als input voor de classifier. Deze voorspelt puur en alleen op basis van de embedding van het domein of het pas geregistreerde domein malafide is of niet, zoals in de figuur hieronder wordt weergegeven.
Figuur 2. Classificatie van de embedding van een domein.
Het trainen van de embedder neemt enkele uren in beslag, terwijl het trainen van de classifier slechts enkele minuten duurt. Het voorspellen van een nieuwe domeinregistratie gebeurt in een fractie van een seconde zodra er voldoende query's zijn verzameld.
Een belangrijk feit om in gedachten te houden bij het analyseren van de resultaten is dat geen enkele dataset perfect is. Het is mogelijk dat onze ground truth (Netcraft) onnauwkeurigheden bevat in zowel de trainings- als testdata, zoals valse positieven en valse negatieven. Een mogelijk effect hiervan is dat onze classifier een malafide registratie die door Netcraft als onschuldig wordt beschouwd misschien wél detecteert.
We gebruiken een precision-recall curve om de prestaties van onze classifier te beoordelen, omdat dit zelfs bij zeer ongebalanceerde datasets nog steeds een nauwkeurig instrument voor het meten van prestaties is, wat niet geldt voor andere metrieken zoals ROC. De precision-recall grafiek geeft de precisie en gevoeligheid van de classifier weer naarmate de drempelwaarde van de classifier verandert.
Figuur 3 toont de precision-recall curve van onze classifier en die van een denkbeeldige willekeurige classifier en een perfecte classifier. In de figuur is duidelijk te zien dat er een significant verschil is tussen de curve van de willekeurige classifier en onze classifier, wat bewijst dat de informatie in de domain embeddings informatief is met betrekking tot de vraag of een domeinnaam malafide is of niet. De classifier is dus tot op zekere hoogte in staat om te voorspellen of een registratie malafide is, puur en alleen op basis van de IP-adressen van de resolvers die ernaar vragen. Dit betekent dat onze aanname dat malafide domeinen duidelijke verkeerspatronen hebben inderdaad juist is, en dat de embedder en classifier in staat zijn om die patronen op te pikken en ze te gebruiken voor voorspellingen.
Figuur 3. Precision-recall curve van onze classifier, vergeleken met die van een willekeurige en een perfecte classifier.
Nu we een lijst van correct geclassificeerde malafide registraties hebben, kunnen we analyseren of de classifier in staat is om de malafide domeinen eerder te detecteren dan Netcraft door hun detectietijdlijn weer te geven (zie Figuur 4).
Figuur 4. Onze detectietijd voor malafide domeinnaamregistraties vergeleken met Netcraft.
Figuur 4 laat zien hoeveel uur onze classifier (groen) en Netcraft (rood) nodig hebben om de malafide domeinen na registratie te detecteren. Onze classifier slaagde er gemiddeld 18 uur eerder in om malafide registraties te detecteren dan Netcraft, met 33 uur als grootste verschil.
Een mogelijke manier om deze methode te integreren in een DNS-registry voor gebruik bij het detecteren van malafide domeinen is door de classifier simpelweg de score van de registratie (de waarschijnlijkheid dat de registratie malafide is) te laten retourneren. Vervolgens kan deze waarschijnlijkheid worden toegevoegd aan een tabel met de meest recente registraties, samen met data die op andere manieren zijn verkregen, zoals met RegCheck. Op die manier zou het personeel van een registry beter geïnformeerde beslissingen kunnen nemen over welke domeinnaamregistraties onderzoek vereisen, gebaseerd op de scores voor een extra metriek.
Daarnaast zou het mogelijk zijn om de resulterende risicoscore, of zelfs de embeddings van de domeinnamen zelf, als kenmerk op te nemen in een andere detectiemethode, zoals RegCheck, wat de classificaties van het systeem als geheel zou verbeteren. Dit idee zal het komende jaar worden getest.
Ons onderzoek laat zien dat het mogelijk is om malafide .nl-domeinnaamregistraties te detecteren door uitsluitend te kijken naar de IP-adressen van de resolvers uit hun DNS-verkeer. Het gebruik van domain embeddings om pas geregistreerde malafide domeinen te classificeren is niet alleen mogelijk, maar zou ook een waardevolle aanvulling kunnen blijken op bestaande detectiemethoden zoals RegCheck. De embedder heeft hier betrekkelijk weinig tijd voor nodig, waardoor het kan worden gebruikt voor implementatie.
Toegepast op de testdataset van juli 2024 waren er in totaal 49.358 registraties, waarvan er volgens Netcraft 66 malafide waren. Onze classifier voorspelde dat 33 van de domeinen malafide waren, en 12 daarvan waren dat inderdaad. Deze methode is dus niet nauwkeurig genoeg om op zichzelf te gebruiken, maar kan, zoals ik al schreef, wel bijdragen aan de prestaties van bestaande detectiemethoden of extra informatie verstrekken aan supportmedewerkers die individuele gevallen bekijken.
Er zijn tal van manieren waarop de methodologie die ik in mijn onderzoek beschrijf verder kan worden onderzocht. In plaats van te komen tot slechts 1 voorspelling na 2000 query's, zouden we bijvoorbeeld meerdere classifiers kunnen trainen om malafide domeinen in eerdere stadia te detecteren (zoals na 50, 250, 1.000 en 2.000 query's).
Een andere manier waarop de prestaties aanzienlijk zouden kunnen worden verbeterd, is door specifieke kenmerken van domeinnamen in de classifier op te nemen. Denk bijvoorbeeld aan de registrant en diens reputatie, de RegCheck-score, en het gemiddelde en maximale aantal DNS-query's binnen een bepaald tijdsbestek. De classifier hoeft dan niet alleen af te gaan op het verkeerspatroon van het domein, maar kan de extra informatie gebruiken om tot beter geïnformeerde beslissingen te komen.
Met deze methoden zou het misschien ook mogelijk zijn om gecompromitteerde domeinen te detecteren, aangezien embeddings in staat zijn om de complexe verkeerspatronen die bij domeinen horen vast te leggen. Hiervoor zou je bijvoorbeeld de evolutie die een domein in de loop van de tijd doormaakt kunnen analyseren. Als we gedurende een bepaalde periode meerdere embeddings van hetzelfde domein zouden maken, zouden we afwijkingen in de verkeerspatronen kunnen detecteren. Het enige nadeel van deze aanpak is dat het een stuk ingewikkelder zou zijn, omdat je dan voor elke dag van alle bestaande domeinen een embedding moet hebben. Vervolgens zouden we voor elk domein de verschillende embeddings met elkaar moeten vergelijken.
Dit project was een uitdagende en waardevolle ervaring. Ik heb er veel van geleerd en ik ben SIDN zeer dankbaar voor de kans die ze me geboden hebben en Thymen, Thijs en Giovane voor hun voortdurende begeleiding. Ik hoop dat SIDN Labs het onderzoek naar deze materie voortzet, want het is erg interessant en ik denk ook heel veelbelovend.
Artikel door:
Deel dit artikel