Il subdomain takeover è una vulnerabilità in cui un record DNS di un sottodominio (blog.azienda.it, staging.azienda.it) punta a un servizio esterno di terze parti — GitHub Pages, Heroku, S3, Netlify, Azure, ecc. — che nel frattempo è stato eliminato o de-provisionato. Poiché il record DNS esiste ancora ma il servizio non è più riservato all’organizzazione, un attaccante può registrare quel servizio esterno e prendere il controllo del sottodominio.
Meccanismo
Il ciclo di vita tipico che porta al subdomain takeover:
- L’organizzazione crea
blog.azienda.itcon un record CNAME che punta aazienda.github.io. - Il team dismette il blog e disabilita GitHub Pages per quel repository — ma dimentica di rimuovere il record DNS.
- Il record CNAME
blog.azienda.it → azienda.github.iorimane nel DNS. - Chiunque visiti
blog.azienda.itriceve dal servizio GitHub Pages un messaggio di errore (es. “There isn’t a GitHub Pages site here”). - L’attaccante crea un proprio repository GitHub, configura GitHub Pages con il custom domain
blog.azienda.it— GitHub lo accetta perché nessun altro lo sta usando. blog.azienda.itserve ora contenuto controllato dall’attaccante, con certificato TLS valido per quel dominio (molti provider lo emettono automaticamente).
Impatti
Phishing credibile: il sottodominio è del dominio legittimo dell’azienda — login.azienda.it o account.azienda.it controllati dall’attaccante sono estremamente convincenti per le vittime.
Furto di cookie: se i cookie dell’applicazione principale usano Domain=.azienda.it, vengono inviati automaticamente anche a blog.azienda.it — un attaccante che controlla quel sottodominio può riceverli.
Content injection: inserire contenuto malevolo (malware, script, disinformazione) su una pagina apparentemente dell’organizzazione.
Bypass di CSP e CORS: se il dominio *.azienda.it è nella lista bianca della Content Security Policy o del CORS dell’applicazione principale, il sottodominio acquisito può sfruttare queste eccezioni.
Email spoofing: in alcuni casi il controllo del sottodominio permette di aggiungere record SPF/DKIM e inviare email che sembrano provenire dall’organizzazione.
Servizi più frequentemente coinvolti
| Servizio | Segnale di vulnerabilità |
|---|---|
| GitHub Pages | ”There isn’t a GitHub Pages site here” |
| Heroku | ”No such app” |
| AWS S3 | ”NoSuchBucket” |
| Azure (vari) | “404 Web Site not found” |
| Fastly | ”Fastly error: unknown domain” |
| Shopify | ”Sorry, this shop is currently unavailable” |
| Netlify | ”Not found” con header Netlify |
Come rilevarlo
DNS reconnaissance: enumerare i sottodomini con strumenti come subfinder, amass, dnsx e verificare se i CNAME puntano a servizi non più configurati.
Strumenti automatici: can-i-take-over-xyz è un repository pubblico che cataloga i segnali di vulnerabilità per decine di provider. subjack, tko-subs automatizzano la ricerca e la verifica.
Durante il bug bounty: il subdomain takeover è una delle vulnerabilità più frequentemente segnalate nei programmi di bug bounty — spesso classificata P2/High per l’impatto potenziale.
Contromisure
Rimozione del record DNS prima del de-provisioning: la regola fondamentale. Quando si dismette un servizio esterno, rimuovere immediatamente il record DNS corrispondente — prima di eliminare il servizio stesso, non dopo.
Inventario DNS: mantenere un registro aggiornato di tutti i record DNS e dei servizi a cui puntano. Strumenti come Cloudflare, AWS Route 53 o piattaforme di DNS security permettono di monitorare i record orfani.
Monitoraggio continuo: sistemi di monitoring automatico che rilevano CNAME che puntano a servizi non configurati e generano alert.
Verifica del dominio nei provider: alcuni provider (GitHub, Netlify) permettono di verificare la proprietà di un dominio a livello organizzativo — un dominio verificato non può essere rivendicato da altri anche se il CNAME punta al loro servizio.
Wildcard CNAME con cautela: i record *.azienda.it aumentano la superficie esposta — un wildcard che punta a un servizio esterno rende tutti i sottodomini potenzialmente takeover-abili.
Relazione con altri argomenti
- DNS Security — il takeover sfrutta record DNS non mantenuti.
- Content Security Policy — un sottodominio acquisito può bypassare le whitelist CSP.
- CORS — stesso problema con le origini consentite.
- Bug Bounty — il subdomain takeover è tra le vulnerabilità più comuni nei programmi di bug bounty.
- OSINT — la ricognizione DNS è una fase standard dell’OSINT su un target.