Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo descrive la minaccia comune alla sicurezza derivante dall'acquisizione di sottodomini e i passi che puoi intraprendere per mitigarla.
Che cos'è l'acquisizione di un sottodominio?
Le acquisizioni di sottodomini rappresentano una minaccia comune e di alta gravità per le organizzazioni che creano e eliminano regolarmente molte risorse. Un'acquisizione di sottodominio può verificarsi quando è presente un record DNS che punta a una risorsa di Azure di cui è stato effettuato il deprovisioning. Questi record DNS sono noti anche come voci "DNS in sospeso". I record CNAME sono particolarmente vulnerabili a questa minaccia. Le acquisizioni di sottodomini consentono agli utenti malintenzionati di reindirizzare il traffico destinato al dominio di un'organizzazione a un sito che esegue attività dannose.
Uno scenario comune per l'acquisizione di un sottodominio:
CREAZIONE:
Si effettua il provisioning di una risorsa di Azure con un nome di dominio completo (FQDN) di
app-contogreat-dev-001.azurewebsites.net.Si assegna un record CNAME nella zona DNS con il sottodominio
greatapp.contoso.comche instrada il traffico alla risorsa di Azure.
DEPROVISIONING:
La risorsa Azure viene deprovisionata o eliminata dopo che non è più necessaria.
A questo punto, il record CNAME
greatapp.contoso.comdovrebbe essere rimosso dalla zona DNS. Se il record CNAME non viene rimosso, viene annunciato come dominio attivo, ma non instrada il traffico a una risorsa di Azure attiva. È ora disponibile un record DNS "in sospeso".Il sottodominio in sospeso,
greatapp.contoso.com, è ora vulnerabile ed è possibile assumerne il controllo assegnandolo a una risorsa di una sottoscrizione di Azure.
TAKEOVER:
Usando metodi e strumenti comunemente disponibili, un attore di minacce individua il sottodominio in sospeso.
L'attore di minaccia effettua il provisioning di una risorsa di Azure con lo stesso FQDN della risorsa controllata in precedenza. In questo esempio,
app-contogreat-dev-001.azurewebsites.net.Il traffico inviato al sottodominio
greatapp.contoso.comviene ora instradato alla risorsa dell'attore malevolo dove controlla il contenuto.
I rischi dell'acquisizione del sottodominio
Quando un record DNS punta a una risorsa non disponibile, il record stesso dovrebbe essere rimosso dalla zona DNS. Se non viene eliminato, si tratta di un record "DNS in sospeso" e crea la possibilità di acquisizione del sottodominio.
Le voci DNS in sospeso possono consentire ad attori malintenzionati di prendere il controllo del nome DNS associato per ospitare un sito Web o un servizio dannoso. Le pagine e i servizi dannosi nel sottodominio di un'organizzazione possono comportare:
Perdita di controllo sul contenuto del sottodominio: Stampa negativa sull'incapacità della tua organizzazione di proteggere i suoi contenuti, danni al brand e perdita di fiducia.
Raccolta di cookie da visitatori ignari: È comune che le app web espongano i cookie di sessione ai sottodomini (*.contoso.com). Qualsiasi sottodominio può accedervi. Gli attori pericolosi possono usare la presa di controllo dei sottodomini per costruire una pagina dall'aspetto autentico, ingannare utenti ignari affinché la visitino e raccogliere i loro cookie (anche quelli sicuri). Un errore comune è che i certificati SSL proteggano il tuo sito e i cookie dei tuoi utenti da un takeover. Tuttavia, un attore malevolo può usare il sottodominio dirottato per richiedere e ricevere un certificato SSL valido. I certificati SSL validi concedono loro l'accesso ai cookie sicuri e possono aumentare ulteriormente la legittimità percepita del sito dannoso.
Campagne di phishing: Attori malintenzionati spesso sfruttano sottodomini dall'aspetto autentico nelle campagne di phishing. Il rischio si estende sia ai siti web dannosi che ai record MX. I record MX potrebbero permettere agli attori delle minacce di ricevere email indirizzate a sottodomini legittimi associati a marchi affidabili.
Ulteriori rischi: i siti dannosi potrebbero degenerare in altri attacchi classici come XSS, CSRF, CORS BYPASS e altri.
Identificare le voci DNS in sospeso
Per identificare le voci DNS all'interno dell'organizzazione che potrebbero essere in sospeso, usare gli strumenti di PowerShell ospitati da GitHub di Microsoft "Get-DanglingDnsRecords".
Questo strumento ti aiuta a elencare tutti i domini con un CNAME associato a una risorsa Azure esistente che hai creato sui tuoi abbonamenti o tenant.
Se i record CNAME si trovano in altri servizi DNS e puntano alle risorse di Azure, fornire i record CNAME in un file di input allo strumento.
Lo strumento supporta le risorse di Azure elencate nella tabella seguente. Lo strumento estrae o accetta come input tutti i CNAM del tenant.
| Servizio | Tipo | Proprietà FQDN | Esempio |
|---|---|---|---|
| Frontdoor di Azure | microsoft.network/frontdoors | properties.cName | abc.azurefd.net |
| Archiviazione BLOB di Azure | microsoft.storage/storageaccounts | properties.primaryEndpoints.blob | abc.blob.core.windows.net |
| Rete CDN di Azure | microsoft.cdn/profiles/endpoints | properties.hostName | abc.azureedge.net |
| Indirizzi IP pubblici | Indirizzo IP pubblico di Microsoft: microsoft.network/publicipaddresses | properties.dnsSettings.fqdn | abc.EastUs.cloudapp.azure.com |
| Gestione traffico di Azure | microsoft.network/trafficmanagerprofiles | properties.dnsConfig.fqdn | abc.trafficmanager.net |
| Istanza di contenitore di Azure | microsoft.containerinstance/containergroups | properties.ipAddress.fqdn | abc.EastUs.azurecontainer.io |
| Gestione API di Azure | microsoft.apimanagement/service | properties.hostnameConfigurations.hostName | abc.azure-api.net |
| Servizio app di Azure | microsoft.web/sites | properties.defaultHostName | abc.azurewebsites.net |
| Servizio app di Azure - Slot | microsoft.web/sites/slots | properties.defaultHostName | abc-def.azurewebsites.net |
Prerequisiti
Eseguire la query come utente che ha:
- Almeno l'accesso del ruolo
Readeralle sottoscrizioni di Azure. - Accesso in lettura ad Azure Resource Graph.
Se sei un Amministratore Globale del tenant della tua organizzazione, segui le indicazioni di Elevate Access per gestire tutti gli abbonamenti e i gruppi di gestione Azure per accedere a tutti gli abbonamenti della tua organizzazione.
Suggerimento
Considerare le limitazioni e i limiti di paging di Azure Resource Graph se si dispone di un ambiente Azure di grandi dimensioni.
Altre informazioni sull'uso di set di dati di risorse di Azure di grandi dimensioni.
Lo strumento usa l'invio in batch delle sottoscrizioni per evitare queste limitazioni.
Eseguire lo script
Per maggiori informazioni sullo script PowerShell, vedi Get-DanglingDnsRecords.ps1.
Correggere le voci DNS in sospeso
Esaminare le zone DNS e identificare i record CNAME in sospeso o compromessi. Se trovi sottodomini pendenti o acquisiti, rimuovi i sottodomini vulnerabili e mitiga i rischi utilizzando i seguenti passaggi:
Rimuovere dalla zona DNS tutti i record CNAME che puntano ai nomi di dominio completi delle risorse di cui non è più stato effettuato il provisioning.
Per instradare il traffico verso le risorse che controlli, fornisci più risorse con gli FQDN specificati nei record CNAME dei sottodomini pendenti.
Esaminare il codice dell'applicazione per i riferimenti a sottodomini specifici e aggiornare eventuali riferimenti al sottodominio non corretti oppure obsoleti.
Verificate se si sia verificata una compromissione e adottate le misure previste dalle procedure di risposta agli incidenti della vostra organizzazione. Per consigli e migliori pratiche per le indagini:
Se la logica applicativa della tua applicazione comporta segreti, come credenziali OAuth, inviati a sottodomini pendenti o se informazioni sensibili alla privacy vengono trasmesse a quei sottodomini, questi dati potrebbero essere esposti a terze parti.
Capisci perché il record CNAME non è stato rimosso dalla tua zona DNS quando hai deprovisionato la risorsa e prendi provvedimenti per assicurarti che i record DNS vengano aggiornati correttamente quando le risorse Azure verranno deprovisionate in futuro.
Prevenire voci DNS in sospeso
Rendi i processi che impediscono le voci DNS appesanti e le conseguenti acquisizioni di sottodominio una parte cruciale del tuo programma di sicurezza.
Le sezioni seguenti descrivono le funzionalità del servizio Azure che possono aiutare a creare misure preventive. Stabilisci altri metodi per prevenire questo problema attraverso le migliori pratiche della tua organizzazione o le procedure operative standard.
Abilitare Microsoft Defender per il Servizio app
La piattaforma CWPP (Cloud Workload Protection Platform) integrata di Microsoft Defender per il cloud offre una gamma di piani per proteggere le risorse e i carichi di lavoro di Azure, ibridi e multicloud.
Il piano di Microsoft Defender per il Servizio app include il rilevamento DNS in sospeso. Quando abiliti questo piano, ricevi avvisi di sicurezza se disattivi un sito di App Service ma non rimuovi il suo dominio personalizzato dal tuo registrar DNS.
La protezione DNS pendente di Microsoft Defender per il cloud è disponibile sia che tu gestisca i tuoi domini con DNS di Azure sia con un registrar esterno e si applica ad App Service sia su Windows che su Linux.
Per maggiori informazioni su questa funzione e altri vantaggi di questi piani Microsoft Defender, consulta Introduzione a Microsoft Defender for App Service.
Usare i record alias DNS di Azure
I record alias DNS di Azure possono prevenire riferimenti pendenti accoppiando il ciclo di vita di un record DNS con una risorsa Azure. Per esempio, consideri un record DNS qualificato come record alias per puntare a un indirizzo IP pubblico o a un profilo di Traffic Manager. Se si eliminano tali risorse sottostanti, il record alias DNS diventa un set di record vuoto. Il record alias DNS non fa più riferimento alla risorsa eliminata. I record alias hanno dei limiti rispetto a ciò che possono proteggere. L'elenco è attualmente limitato a:
- Frontdoor di Azure
- Profili di gestione del traffico
- Endpoint della Rete di distribuzione dei contenuti (CDN) di Azure
- IP pubblici
Nonostante l'offerta di servizi ancora attualmente limitata, si utilizzano i record alias per difendersi dall'acquisizione della proprietà dei sottodomini, ove possibile.
Per maggiori informazioni, consulta le funzionalità dei record alias DNS di Azure.
Usare la verifica del dominio personalizzato del Servizio app di Azure
Quando crei record DNS per Servizio app di Azure, crea un record TXT asuid.{subdomain} con l'ID di verifica del dominio. Quando esiste un record TXT del genere, nessun altro abbonamento Azure può validare il dominio personalizzato o prenderne il controllo.
Questi record non impediscono a qualcuno di creare un'istanza di Servizio app di Azure con lo stesso nome che si trova nella tua voce CNAME. Senza la possibilità di dimostrare la proprietà del nome di dominio, i malintenzionati non possono ricevere traffico né controllare i contenuti.
Per maggiori informazioni, consulta Mappare un nome DNS personalizzato esistente su Servizio app di Azure.
Creare e automatizzare i processi per attenuare la minaccia
Gli sviluppatori e i team operativi devono eseguire i processi di pulizia per evitare minacce DNS in sospeso. Le seguenti pratiche aiutano la tua organizzazione a evitare questa minaccia.
Creare procedure per la prevenzione:
Informare gli sviluppatori dell'applicazione di reindirizzare gli indirizzi ogni volta che eliminano le risorse.
Aggiungere "Rimuovi voce DNS" all'elenco dei controlli necessari durante la dismissione di un servizio.
- Aggiungi blocchi di cancellazione a qualsiasi risorsa che abbia una voce DNS personalizzata. Un blocco di eliminazione funge da indicatore che la mappatura deve essere rimossa prima del disapprovvigionamento della risorsa. Misure come questa funzionano solo se combinate con programmi di istruzione interna.
Creare procedure per l'individuazione:
Esaminare regolarmente i record DNS per assicurarsi che tutti i sottodomini siano mappati alle risorse di Azure che:
- Exist: Consulta le tue zone DNS per risorse che puntano a sottodomini Azure come *.azurewebsites.net o *.cloudapp.azure. com (vedi la lista di riferimento dei domini Azure).
- Possiedi: Conferma di possedere tutte le risorse a cui puntano i tuoi sottodomini DNS.
Mantenere un catalogo di servizi degli endpoint del FQDN di Azure e dei proprietari dell'applicazione. Usa Azure Resource Graph, il portale Azure o un altro processo di inventario degli asset per esportare regolarmente le informazioni sugli endpoint FQDN per le risorse a cui puoi accedere. Se hai accesso a tutti gli abbonamenti nel tuo tenant, includi tutti gli abbonamenti nell'inventario. Se non lo fai, documenta quali abbonamenti copre l'inventario.
Creare procedure per la correzione:
- Quando il tuo team individua record DNS orfani, verifica se si è verificata una compromissione.
- Esaminare il motivo per cui l'indirizzo non è stato reindirizzato quando la risorsa è stata rimossa.
- Eliminare il record DNS se non è più in uso o indirizzarlo verso la risorsa di Azure corretta (FQDN) appartenente alla tua organizzazione.
Pulisci i puntatori DNS o recupera il DNS
Quando elimini una risorsa classica di servizio cloud, Azure riserva il corrispondente nome DNS secondo le politiche DNS di Azure. Durante il periodo di prenotazione, solo gli abbonamenti appartenenti al tenant Microsoft Entra dell'abbonamento che originariamente possedeva il nome DNS possono riutilizzarlo. Dopo la scadenza della prenotazione, qualsiasi abbonamento Azure può reclamare il nome DNS. Le riserve DNS ti danno il tempo di pulire le associazioni o i puntatori al nome DNS, o di recuperare il nome DNS in Azure. Elimina le voci DNS indesiderate il prima possibile. Puoi derivare il nome DNS riservato aggiungendo il nome del servizio cloud alla zona DNS di quella cloud.
- Pubblico:
cloudapp.net - Torta di Luna:
chinacloudapp.cn - Fairfax:
usgovcloudapp.net - BlackForest:
azurecloudapp.de
Ad esempio, un servizio ospitato in Public chiamato test ha il nome test.cloudapp.netDNS .
Esempio: Abbonamenti A e B sono gli unici abbonamenti che appartengono al tenant ABMicrosoft Entra. L'abbonamento A contiene un classico servizio cloud chiamato test con il nome test.cloudapp.netDNS . Quando elimini il servizio cloud, Azure riserva il nome test.cloudapp.netDNS . Durante il periodo di prenotazione, solo un abbonamento A o un abbonamento B possono reclamare il nome test.cloudapp.net DNS creando un servizio cloud classico chiamato test. Nessun altro abbonamento può richiederlo. Dopo il periodo di prenotazione, qualsiasi sottoscrizione di Azure può richiedere test.cloudapp.net.
Passaggi successivi
Per altre informazioni sui servizi correlati e sulle funzionalità di Azure che è possibile usare per difendersi dall'acquisizione di sottodominio, vedere le pagine seguenti.
Abilita Microsoft Defender per App Service - Ricevi avvisi quando vengono rilevate voci DNS orfane.
Avvio rapido: Eseguire la prima query di Resource Graph usando Azure PowerShell