Datahorses

Převzetí subdomény: jak se ze zapomenutého DNS záznamu stane cizí web

Autor: · · 3 min čtení

K převzetí subdomény (subdomain takeover) dochází, když DNS záznam na vaší doméně stále míří na externí službu, kterou už nepoužíváte. Pokud ta služba dovolí komukoli zabrat název, který jste po sobě nechali, může si ho cizí člověk zaregistrovat a začít na promo.yourcompany.com zobrazovat vlastní obsah. Návštěvníci vidí v adresním řádku vaši doménu, takže nemají důvod stránce nevěřit.

Příčina je téměř vždy stejná: takzvaný visící DNS záznam (dangling DNS). Někdo spustil na cloudové platformě web kampaně, centrum nápovědy nebo testovací aplikaci, nasměroval na ni subdoménu a později aplikaci smazal, ale DNS záznam ne. Microsoft přesně tento sled událostí popisuje pro Azure a stejný vzorec platí pro mnoho hostingových, úložných a SaaS platforem.

Dobrá zpráva: jde o problém evidence a zkontrolujete ho sami několika DNS dotazy.

Jak se z visícího záznamu stane převzetí

Obvykle to proběhne ve 3 krocích:

  1. Vytvoření. Tým vytvoří yourcompany-promo.azurewebsites.net (nebo bucket, web na Pages, CDN endpoint) a přidá CNAME, aby promo.yourcompany.com mířilo tam.
  2. Zrušení. Kampaň skončí, aplikace se smaže, ale CNAME nikdo neodstraní. Subdoména teď míří na název, který vám už nepatří.
  3. Převzetí. Někdo si visícího názvu všimne, vytvoří na stejné platformě prostředek se stejným názvem a od té chvíle ovládá, co promo.yourcompany.com zobrazuje.

Ne každá platforma poslední krok dovolí. Komunitní projekt can-i-take-over-xyz vede seznam služeb, označuje, které jsou zranitelné, a zaznamenává chybový text, který každá zobrazí u nezabraného názvu, například „The specified bucket does not exist“ u Amazon S3.

Proč je to vážnější než poškozená stránka

Převzatá subdoména není jen trapná stránka. Podle doporučení Microsoftu mezi rizika patří:

  • Krádež cookies. Mnoho webových aplikací nastavuje session cookies pro *.yourcompany.com, takže je může číst kterákoli subdoména.
  • Platný certifikát pro útočníka. Kdo ovládá subdoménu, může pro ni získat TLS certifikát, takže prohlížeč ukáže i zámek.
  • Přesvědčivý phishing. Přihlašovací stránku na vaší skutečné doméně je mnohem těžší odhalit než stránku na podobné doméně.
  • Zachycení pošty. Visící MX záznam může někomu umožnit přijímat poštu poslanou na tuto subdoménu.

OWASP Web Security Testing Guide doplňuje nejzávažnější variantu: NS záznam, který deleguje subdoménu na nameservery na doméně, jež už není zaregistrovaná. Kdo si tu doménu zaregistruje, ovládá celou delegovanou zónu.

Jak zkontrolovat vlastní DNS

Začněte seznamem všech subdomén, které máte. Nejlepším zdrojem je export zóny od vašeho poskytovatele DNS. Užitečným druhým zdrojem je historie certifikátů, protože téměř každý certifikát vydaný pro vaše názvy je zapsán v záznamech Certificate Transparency.

U každé subdomény se podívejte, kam míří:

dig +short CNAME promo.yourcompany.com
dig +short NS dev.yourcompany.com
dig +short MX shop.yourcompany.com

Pak ověřte, že každý cíl stále existuje a stále patří vám:

dig promo.yourcompany.com
curl -sI https://promo.yourcompany.com

Varovné signály:

  • cíl CNAME vrací NXDOMAIN (název už neexistuje),
  • stránka zobrazuje chybu platformy jako „No such app“, „Repository not found“ nebo „There isn't a GitHub Pages site here“,
  • NS záznam míří na nameservery na doméně, kterou neznáte nebo která vypršela,
  • nikdo ve firmě neumí říct, k čemu subdoména sloužila.

Testujte jen názvy na vlastní doméně. Nezkoušejte prostředek zabrat, abyste problém „dokázali“. Stačí záznam odstranit.

Jak to opravit

  1. Smažte visící záznam ze své DNS zóny. Právě to doporučuje Microsoft i OWASP.
  2. Pokud subdoménu stále potřebujete, vytvořte prostředek znovu pod vlastním účtem, než na něj znovu nasměrujete provoz.
  3. Zkontrolujte, zda se něco nestalo v době, kdy záznam visel: neobvyklé certifikáty pro daný název, odkazy ve vaší aplikaci nebo e-mailech, které ho stále používají, OAuth adresy přesměrování, které ho obsahují.
  4. Používejte ověření vlastnictví, kde ho platforma nabízí. Azure App Service například podporuje TXT záznam asuid.<subdomain>, aby žádné jiné předplatné nemohlo vlastní doménu ověřit.
  5. Opravte proces, nejen záznam. Přidejte „odstranit DNS záznam“ do kontrolního seznamu pro ukončení každé služby a mějte jednoduchý soupis, která subdoména míří na kterou platformu a kdo ji vlastní.

Krátký kontrolní seznam

  • Exportujte svou DNS zónu a vypište všechny záznamy CNAME, NS a MX.
  • U každého ověřte, že cíl existuje a patří vaší firmě.
  • Odstraňte záznamy ukončených služeb.
  • Porovnejte zónu s názvy v záznamech Certificate Transparency a najděte subdomény, které nikdo nezdokumentoval.
  • Kontrolu zopakujte vždy, když skončí kampaň, produkt nebo dodavatel.

Visící záznamy se často najdou vedle dalších zapomenutých věcí, například starých stagingových a testovacích serverů. Vyčistit obojí najednou obvykle přinese nejrychlejší výsledek.

Kde pomůže Datahorses

Datahorses každý den sleduje vaši firmu zvenčí: sestaví seznam vašich subdomén, kontroluje, kam míří každý CNAME, a označí záznamy vedoucí ke službám, které už neexistují. Do vašich systémů nevstupujeme a žádné přístupy nepotřebujeme. Ke každému zjištění dodáme přesné kroky pro vašeho vývojáře. Podívejte se na úplný seznam toho, co hlídáme, nebo na ukázkový přehled.

Další články

Všechny články