Zwevende DNS-vermeldingen voorkomen en overname van subdomeinen voorkomen

Dit artikel beschrijft de veelvoorkomende beveiligingsdreiging van subdomeinovername en de stappen die u kunt nemen om deze te beperken.

Wat is een overname van een subdomein?

Subdomeinovernames vormen een veelvoorkomende, ernstige bedreiging voor organisaties die regelmatig veel resources aanmaken en verwijderen. Een overname van subdomeinen kan optreden wanneer u een DNS-record hebt die verwijst naar een niet-ingerichte Azure-resource. Dergelijke DNS-records worden ook wel 'zwevende DNS-vermeldingen' genoemd. Met name CNAME-records zijn kwetsbaar voor deze bedreiging. Met subdomeinovernames kunnen kwaadwillenden verkeer dat is bedoeld voor het domein van een organisatie, omleiden naar een site waarop schadelijke activiteiten worden uitgevoerd.

Een veelvoorkomend scenario voor een overname van subdomeinen:

  1. CREATIE:

    1. U richt een Azure-resource in met een FQDN (Fully Qualified Domain Name) van app-contogreat-dev-001.azurewebsites.net.

    2. U wijst een CNAME-record toe in uw DNS-zone met het subdomein greatapp.contoso.com dat verkeer naar uw Azure-resource routeert.

  2. DEPROVISIONEREN:

    1. De Azure-resource wordt gedeprovisioneerd of verwijderd nadat deze niet meer nodig is.

      Op dit moment moet de CNAME-record greatapp.contoso.comworden verwijderd uit uw DNS-zone. Als de CNAME-record niet wordt verwijderd, wordt deze geadverteerd als een actief domein, maar wordt er geen verkeer doorgestuurd naar een actieve Azure-resource. U hebt nu een 'zwevende' DNS-record.

    2. Het zwevende subdomein, greatapp.contoso.com, is nu kwetsbaar en kan worden overgenomen doordat het toegewezen wordt aan een resource van een ander Azure-abonnement.

  3. OVERNAME:

    1. Met behulp van veelgebruikte methoden en hulpprogramma's detecteert een bedreigingsacteur het zwevende subdomein.

    2. De bedreigingsacteur richt een Azure-resource in met dezelfde FQDN-naam van de resource die u eerder hebt beheerd. In dit voorbeeld, app-contogreat-dev-001.azurewebsites.net.

    3. Verkeer dat naar het subdomein greatapp.contoso.com wordt gestuurd, wordt nu gerouteerd naar de bron van de kwaadwillende actor, waar zij de inhoud beheren.

Overname van subdomein vanaf een niet-ingerichte website

De risico's van overname van subdomeinen

Wanneer een DNS-record verwijst naar een resource die niet beschikbaar is, moet de record zelf worden verwijderd uit uw DNS-zone. Als het niet wordt verwijderd, is het een "zwevend DNS-record" en creëert het de mogelijkheid van een subdomein-overname.

Door hangende DNS-vermeldingen kunnen bedreigers de controle overnemen over de bijbehorende DNS-naam om een schadelijke website of dienst te hosten. Schadelijke pagina's en services op het subdomein van een organisatie kunnen leiden tot:

  • Verlies van controle over de inhoud van het subdomein: negatieve pers over het onvermogen van uw organisatie om de inhoud te beveiligen, brandschade en verlies van vertrouwen.

  • Het verzamelen van cookies van nietsvermoedende bezoekers: Het is gebruikelijk dat webapplicaties sessiecookies beschikbaar maken voor subdomeinen (*.contoso.com). Elk subdomein kan er toegang tot krijgen. Dreigingsactoren kunnen subdomeinovername gebruiken om een authentiek ogende pagina te bouwen, nietsvermoedende gebruikers te misleiden om deze te bezoeken, en hun cookies (zelfs beveiligde cookies) verzamelen. Een veelvoorkomend misverstand is dat SSL-certificaten uw site en de cookies van uw gebruikers beschermen tegen een overname. Een bedreigingsacteur kan echter het gekaapte subdomein gebruiken om een geldig SSL-certificaat aan te vragen en te ontvangen. Geldige SSL-certificaten verlenen hen toegang tot beveiligde cookies en kunnen de waargenomen geldigheid van de schadelijke site verder vergroten.

  • Phishingcampagnes: Kwaadwillenden maken vaak misbruik van authentiek ogende subdomeinen in phishingcampagnes. Het risico strekt zich uit tot zowel kwaadaardige websites als MX-records. MX-records zouden kwaadwillenden in staat kunnen stellen e-mails te ontvangen die zijn gericht aan legitieme subdomeinen die horen bij vertrouwde merken.

  • Verdere risico's: kwaadaardige sites kunnen escaleren naar andere klassieke aanvallen zoals XSS, CSRF, CORS bypass en meer.

Zwevende DNS-vermeldingen identificeren

Gebruik Microsoft's op GitHub gehoste PowerShell-hulpprogramma's "Get-DanglingDnsRecords" om DNS-vermeldingen binnen uw organisatie te identificeren die misschien loshangend zijn.

Deze tool helpt je alle domeinen met een CNAME te vermelden die gekoppeld zijn aan een bestaande Azure-resource die je hebt aangemaakt op je abonnementen of tenants.

Als uw CNAME's zich in andere DNS-services bevinden en verwijzen naar Azure-resources, geeft u de CNAME's in een invoerbestand op aan de tool.

Het hulpprogramma ondersteunt de Azure-resources die worden vermeld in de volgende tabel. Het tool extraheert of neemt als invoer alle CNAME's van de huurder.

Dienst Typologie FQDN-eigenschap Voorbeeld
Azure Front Door (een cloudgebaseerde dienst voor netwerkbeveiliging en contentlevering) microsoft.network/frontdoors properties.cName abc.azurefd.net
Azure Blob-opslag microsoft.storage/storageaccounts eigenschappen.primaireEindpunten.blob abc.blob.core.windows.net
Azure CDN microsoft.cdn/profiles/endpoints eigenschappen.hostNaam abc.azureedge.net
Openbare IP-adressen microsoft.network/openbare-IP-adressen eigenschappen.dnsSettings.fqdn abc.EastUs.cloudapp.azure.com
Azure Traffic Manager microsoft.network/trafficmanagerprofiles eigenschappen.dnsConfig.fqdn abc.trafficmanager.net
Azure-containerinstantie microsoft.containerinstance/containergroups eigenschappen.ipAdres.fqdn abc.EastUs.azurecontainer.io
Azure API Management microsoft.apimanagement/service eigenschappen.hostnaamConfiguraties.hostNaam abc.azure-api.net
Azure App Service microsoft.web/sites eigenschappen.standaardHostnaam abc.azurewebsites.net
Azure-app-service - sleuven microsoft.web/sites/slots eigenschappen.standaardHostnaam abc-def.azurewebsites.net

Vereisten

Voer de query uit als een gebruiker met:

  • Minstens de roltoegang van Reader voor de Azure-abonnementen.
  • Leestoegang tot Azure Resource Graph.

Als je een Global Administrator bent van de tenant van je organisatie, volg dan de richtlijnen in Elevate access om alle Azure-abonnementen en beheergroepen te beheren om toegang te krijgen tot alle abonnementen van je organisatie.

Aanbeveling

Overweeg Azure Resource Graph throttling en paginglimieten als je een grote Azure-omgeving hebt.

Meer informatie over het werken met grote Azure-resourcegegevenssets.

Het hulpprogramma maakt gebruik van batchverwerking van abonnementen om deze beperkingen te voorkomen.

Het script uitvoeren

Voor meer informatie over het PowerShell-script, zie Get-DanglingDnsRecords.ps1.

Zwevende DNS-vermeldingen herstellen

Controleer uw DNS-zones en identificeer CNAME-records die zweven of worden overgenomen. Als je loshangende of overgenomen subdomeinen ontdekt, verwijder dan de kwetsbare subdomeinen en beperk de risico's door de volgende stappen te volgen:

  1. Verwijder uit uw DNS-zone alle CNAME-records die verwijzen naar FQDN's van resources die niet meer zijn ingericht.

  2. Om verkeer te routeren naar resources die jij beheert, zorg je voor meer resources met de FQDN's die in de CNAME-records van de hangende subdomeinen zijn gespecificeerd.

  3. Controleer uw toepassingscode op verwijzingen naar specifieke subdomeinen en werk eventuele onjuiste of verouderde subdomeinverwijzingen bij.

  4. Onderzoek of er sprake is van een compromis en onderneem actie volgens de incidentresponsprocedures van uw organisatie. Voor tips en best practices voor onderzoek:

    Als uw applicatielogica ertoe leidt dat geheimen, zoals OAuth-credentials, naar losstaande subdomeinen worden gestuurd of als privacygevoelige informatie naar die subdomeinen wordt verzonden, kunnen deze gegevens aan derden worden blootgesteld.

  5. Begrijp waarom het CNAME-record niet uit je DNS-zone is verwijderd toen je de resource hebt uitgeschakeld en neem stappen om ervoor te zorgen dat DNS-records correct worden bijgewerkt wanneer Azure-resources in de toekomst worden gedeprovisioneerd.

Zwevende DNS-vermeldingen voorkomen

Maak processen die openstaande DNS-vermeldingen en de resulterende subdomeinovernames voorkomen tot een cruciaal onderdeel van je beveiligingsprogramma.

De volgende secties beschrijven Azure-servicefuncties die kunnen helpen bij het creëren van preventieve maatregelen. Stel andere methoden vast om dit probleem te voorkomen via de best practices of standaardprocedures van uw organisatie.

Microsoft Defender voor App Service inschakelen

het geïntegreerde CWPP (Cloud Workload Protection Platform) van Microsoft Defender voor Cloud biedt een reeks plannen voor het beveiligen van uw Azure-, hybride en multicloudresources en -workloads.

Het Microsoft Defender voor App Service-plan bevat zwevende DNS-detectie. Wanneer je dit abonnement inschakelt, krijg je beveiligingswaarschuwingen als je een App Service-website buiten gebruik neemt, maar het aangepaste domein niet uit je DNS-registrar verwijdert.

De bescherming van Microsoft Defender voor Cloud tegen verweesde DNS-vermeldingen is beschikbaar, ongeacht of je je domeinen beheert met Azure DNS of een externe domeinregistreerder, en is van toepassing op App Service in zowel Windows als Linux.

Voor meer informatie over deze functie en andere voordelen van deze Microsoft Defender-plannen, zie Introductie tot Microsoft Defender voor App Service.

Azure DNS-aliasrecords gebruiken

Azure DNS aliasrecords kunnen hangende referenties voorkomen door de levenscyclus van een DNS-record te koppelen aan een Azure-bron. Denk bijvoorbeeld aan een DNS-record die is gekwalificeerd als een aliasrecord om te verwijzen naar een openbaar IP-adres of een Traffic Manager-profiel. Als u deze onderliggende resources verwijdert, wordt de DNS-aliasrecord een lege recordset. Het DNS-aliasrecord verwijst niet langer naar de verwijderde bron. Alias-records hebben limieten aan wat ze kunnen beschermen. De lijst is momenteel beperkt tot:

  • Azure Front Door (een cloudgebaseerde dienst voor netwerkbeveiliging en contentlevering)
  • Traffic Manager-profielen
  • Azure CdN-eindpunten (Content Delivery Network)
  • Openbare IP-adressen

Ondanks het beperkte aanbod van diensten, gebruik aliasrecords om je indien mogelijk te verdedigen tegen subdomeinovername.

Voor meer informatie, zie Azure DNS alias records capabilities.

Aangepaste domeinverificatie van Azure-app Service gebruiken

Wanneer je DNS-vermeldingen aanmaakt voor Azure App Service, maak dan een asuid.{subdomain} TXT-record aan met de domeinverificatie-ID. Wanneer zo'n TXT-record bestaat, kan geen enkel ander Azure-abonnement het aangepaste domein valideren of overnemen.

Deze records voorkomen niet dat iemand een Azure App Service-instantie aanmaakt met dezelfde naam als in jouw CNAME-invoer. Zonder de mogelijkheid om eigendom van de domeinnaam aan te tonen, kunnen kwaadwillenden geen verkeer ontvangen of de inhoud controleren.

Raadpleeg voor meer informatie Een bestaande aangepaste DNS-naam toewijzen aan Azure App Service.

Processen bouwen en automatiseren om de bedreiging te beperken

Ontwikkelaars en operations-teams moeten opschoonprocessen uitvoeren om dreigingen door verweesde DNS-records te voorkomen. De volgende praktijken helpen uw organisatie om deze dreiging te vermijden.

  • Procedures voor preventie maken:

    • Informeer uw toepassingsontwikkelaars om adressen om te leiden wanneer ze resources verwijderen.

    • Plaats 'DNS-vermelding verwijderen' in de lijst met vereiste controles bij het buiten gebruik stellen van een service.

      • Voeg delete-locks toe aan alle bronnen die een aangepaste DNS-entry hebben. Een verwijderingsvergrendeling fungeert als een indicator dat de toewijzing moet worden verwijderd voordat de resource ongedaan wordt gemaakt. Maatregelen als deze werken alleen wanneer ze worden gecombineerd met interne onderwijsprogramma's.
  • Procedures voor detectie maken:

    • Controleer regelmatig uw DNS-records om ervoor te zorgen dat uw subdomeinen allemaal zijn toegewezen aan Azure-resources die:

      • Exist: Zoek in je DNS-zones naar bronnen die wijzen op Azure subdomeinen zoals *.azurewebsites.net of *.cloudapp.azure. com (zie de Referentielijst van Azure-domeinen).
      • Je bezit: Bevestig dat je alle bronnen bezit waarop je DNS-subdomeinen gericht zijn.
    • Onderhoud een servicecatalogus van uw FQDN-eindpunten (Fully Qualified Domain Name) van Azure en de eigenaren van de toepassing. Gebruik Azure Resource Graph, het Azure-portaal of een ander asset inventory-proces om regelmatig de FQDN-endpointinformatie te exporteren voor resources die je kunt bereiken. Als je toegang hebt tot alle abonnementen in je tenant, neem dan alle abonnementen op in de inventaris. Als je dat niet doet, documenteer dan welke abonnementen de inventaris dekt.

  • Procedures maken voor herstel:

    • Wanneer je team verweesde DNS-vermeldingen vindt, onderzoek dan of er een compromittering heeft plaatsgevonden.
    • Onderzoek waarom het adres niet is omgeleid toen de resource buiten gebruik werd gesteld.
    • Verwijder de DNS-record als deze niet meer wordt gebruikt of wijs deze naar de juiste Azure-resource (FQDN) die eigendom is van uw organisatie.

Maak DNS-pointers schoon of claim de DNS terug

Wanneer je een klassieke cloudservice-resource verwijdert, reserveert Azure de bijbehorende DNS-naam volgens Azure DNS-beleid. Tijdens de reserveringsperiode mogen alleen abonnementen die behoren tot de Microsoft Entra-tenant van het abonnement dat oorspronkelijk de DNS-naam bezat, deze hergebruiken. Na afloop van de reservering kan elk Azure-abonnement de DNS-naam claimen. DNS-reserveringen geven je tijd om associaties of verwijzingen naar de DNS-naam op te schonen, of om de DNS-naam terug te krijgen in Azure. Verwijder ongewenste DNS-vermeldingen zo snel mogelijk. Je kunt de gereserveerde DNS-naam afleiden door de naam van de cloudservice toe te voegen aan de DNS-zone van die cloud.

  • Openbaar: cloudapp.net
  • Maancake: chinacloudapp.cn
  • Fairfax: usgovcloudapp.net
  • BlackForest: azurecloudapp.de

Bijvoorbeeld, een gehoste dienst in Public named test heeft de DNS-naam test.cloudapp.net.

Voorbeeld: Abonnementen A en B zijn de enige abonnementen die tot de Microsoft Entra-tenant ABbehoren. Abonnement A bevat een klassieke clouddienst met de naam test met de DNS-naam test.cloudapp.net. Wanneer je de cloudservice verwijdert, reserveert Azure de DNS-naam test.cloudapp.net. Tijdens de reserveringsperiode kan alleen een abonnement A of abonnement B de DNS-naam test.cloudapp.net claimen door een klassieke clouddienst aan te maken genaamd test. Geen andere abonnementen kunnen het claimen. Na de reserveringsperiode kan elk Azure-abonnement aanspraak maken op test.cloudapp.net.

Volgende stappen

Zie de volgende pagina's voor meer informatie over gerelateerde services en Azure-functies die u kunt gebruiken om u te beschermen tegen overname van subdomeinen.