Subdomeinovername: hoe een vergeten DNS-record een kwetsbaarheid wordt

Een subdomeinovername vereist geen inbraak — het maakt gebruik van een DNS-record dat niemand zich herinnerde te verwijderen, wijzend naar een resource die niemand meer bezit.

Wat het is

Een subdomeinovername gebeurt wanneer een DNS-record — meestal een CNAME — nog steeds wijst naar een externe resource (een cloudopslag-bucket, een PaaS-app, een statische-sitehost) die inmiddels is verwijderd, terwijl het record zelf nooit is verwijderd. Wie diezelfde resourcenaam op het platform kan claimen, bepaalt nu wat er onder jouw subdomein wordt geserveerd.

Hoe het gebeurt

  1. Een team laat promo.example.nl via CNAME wijzen naar een externe dienst — een object-opslag-bucket, een PaaS-app, een statische-sitehost
  2. Later wordt die resource verwijderd of loopt het abonnement af, maar het CNAME-record in DNS blijft staan
  3. De naam van de resource komt op dat platform weer beschikbaar, omdat het platform geen idee heeft dat iemands DNS er nog naar verwijst
  4. Een aanvaller claimt exact dezelfde resourcenaam op het platform
  5. Verkeer naar promo.example.nl komt nu bij de resource van de aanvaller terecht, omdat de CNAME nooit naar de eigen infrastructuur van je domein wees — hij wees altijd al naar een naam op het platform van iemand anders

Waarom het werkt

Op deze manier geserveerde inhoud draait onder het domein van het slachtoffer, waardoor domeingebaseerde whitelists kunnen worden omzeild, phishinglinks legitiem lijken omdat het zichtbare domein echt het echte is, en in sommige gevallen zelfs een geldig TLS-certificaat voor dat subdomein kan worden verkregen — omdat de aanvaller daadwerkelijk de resource beheert waar het DNS-record naar wijst.

Hoe aanvallers kandidaten vinden

Subdomeinenumeratie brengt elke CNAME die naar externe platforms wijst aan het licht; controleren welke van die doelen een kenmerkende "niet gevonden"- of "no such bucket"-fout teruggeven — het kenmerk van een niet-geclaimde resource — beperkt de lijst tot uitbuitbare gevallen.

Preventie

Verwijder het DNS-record op hetzelfde moment dat een resource wordt opgeheven — dit is de enige volledige oplossing, want een record zonder iets legitiems erachter is de hele kwetsbaarheid. Periodiek subdomeinen controleren, vooral na elke migratie weg van een externe dienst, vangt op wat opheffingschecklists missen.

Controleer je eigen subdomeinen

Probeer het op je domein

Zie de theorie in de praktijk — voer Subdomeinzoeker uit voor je eigen domein.