Datahorses

Zapomenuté staging a testovací servery: část, kterou nikdo nehlídá

Autor: · · 4 min čtení

Zapomenutý staging nebo testovací server je kopie vašeho webu či aplikace, která vznikla pro vývoj a pak zůstala dostupná z internetu. Obvykle běží pod názvem jako staging.yourcompany.com, dev.yourcompany.com nebo test2.yourcompany.com, nikdo ji už nekontroluje a často obsahuje starší kód se slabším nastavením než produkce.

Tyto servery jsou důležité, protože k vaší firmě na internetu patří, i když se k nim tak nikdo nechová. Nemají stejné aktualizace, přihlašování ani monitoring jako hlavní web, a přitom s ním často sdílejí kopie databází, API klíče i administrátorské účty.

Dobrá zpráva je, že se dají snadno najít a oprava bývá jednoduchá. V článku ukazujeme, jak je hledat a co s každým z nich udělat.

Proč se na staging servery zapomíná

Staging server vzniká z dobrého důvodu: otestovat vydání dřív, než ho uvidí zákazníci. Pak se nová verze nasadí, vývojář přejde na jiný projekt nebo skončí smlouva s agenturou a server běží dál, protože jeho vypnutí nikdy nikdo neměl v úkolech. Typicky narazíte na:

  • Úplnou kopii produkce včetně nedávného dumpu databáze, aby testování bylo co nejvěrnější.
  • Zapnutý režim ladění, který ukazuje stack trace, hodnoty konfigurace nebo podrobnosti o frameworku.
  • Výchozí nebo sdílená administrátorská hesla, která byla „jen na testování“.
  • Staré verze CMS, pluginů nebo knihoven, které jsou v produkci dávno aktualizované.
  • Chybějící HTTPS nebo certifikát, který vypršel před několika měsíci.
  • Indexování ve vyhledávačích, které nikdo nezakázal, takže se testovací web zobrazuje vedle skutečného.

Nic z toho samo o sobě není dramatické. Dohromady to ale znamená server pod vaší vlastní doménou, který je slabší než všechno kolem něj.

Jak se o těchto serverech kdokoli dozví

Aby někdo staging server našel, nemusíte na něj nikde zveřejnit odkaz. Stačí 3 běžné cesty:

  1. Certificate Transparency. Když autorita pro staging.yourcompany.com vydá obecně důvěryhodný certifikát, název se zapíše do otevřených logů (protokol popisuje RFC 9162). Prohledat je může kdokoli, jak vysvětlujeme v článku logy Certificate Transparency srozumitelně.
  2. DNS záznamy. Záznam, který stále ukazuje na server, ho zpřístupňuje pod konkrétním názvem, a snadno uhodnutelné názvy jako dev, test a beta zkouší každý jako první.
  3. Vyhledávače a archivy. Testovací web bez pravidel pro indexování se může objevit ve výsledcích vyhledávání a jeho staré stránky zůstávají ve webových archivech.

Jak najít vlastní zapomenuté servery

Nejdřív sepište názvy a pak každý z nich zkontrolujte.

  1. Vyhledejte na crt.sh %.yourcompany.com a posbírejte všechny názvy hostitelů.
  2. Projděte svou DNS zónu a hledejte názvy jako dev, stage, staging, test, uat, beta, old, demo, preview.
  3. U každého zjistěte, kam se překládá, a zkontrolujte odpověď:
dig +short staging.yourcompany.com
curl -sI https://staging.yourcompany.com
  1. Každou adresu otevřete v prohlížeči a ptejte se: ukazuje skutečná data zákazníků, přihlašovací formulář, ladicí stránku, výchozí stránku serveru nebo chybu hostingové platformy?
  2. Hledejte soubory, které by server nikdy neměl poskytovat. Testovací příručka OWASP se jim věnuje v WSTG-CONF-04 a upozorňuje, že server záložní soubory obvykle nespustí, ale pošle je jako prostý text. Obvyklé názvy uvádí náš článek o souborech .env, .git a zálohách přístupných z webu.

Pokud název ukazuje na hostingovou platformu, která zobrazuje stránku „no such app“ nebo „bucket not found“, berte to jako naléhavé: jde o typickou situaci, která umožňuje převzetí subdomény.

Co s každým z nich udělat

U každého staging nebo testovacího serveru zvolte 1 ze 3 možností.

Odstranit. Pokud nikdo neví, komu server patří a k čemu slouží, vypněte ho a smažte DNS záznam. Záznam mažte až po serveru, ne dřív, a nikdy nenechávejte CNAME, který ukazuje na službu, kterou už neplatíte.

Omezit. Pokud ho tým ještě potřebuje, schovejte ho za přihlášení nebo seznam povolených IP adres. HTTP Basic autentizaci přidáte rychle, ale MDN upozorňuje, že ji lze používat jen přes HTTPS, protože přihlašovací údaje jsou pouze zakódované v base64. Dlouhodobě je lepší VPN nebo proxy s ověřováním identity.

Vyčistit. Staging nemá obsahovat skutečná data zákazníků. Používejte generovaná nebo anonymizovaná data a samostatné API klíče s omezenými právy a vypněte ladicí výstup.

Zakázat indexování je užitečné, ale ochrana to není. Google popisuje noindex jako způsob, jak udržet stránky mimo výsledky vyhledávání, a to pomocí <meta name="robots" content="noindex"> nebo hlavičky X-Robots-Tag (Google Search Central). Stránka je ale dál přístupná každému, kdo zná adresu.

X-Robots-Tag: noindex

Krátký kontrolní seznam

  • Každý neprodukční server má konkrétní odpovědnou osobu a datum ukončení.
  • Na stagingu nejsou skutečná data zákazníků.
  • Staging vyžaduje přihlášení nebo je za VPN.
  • Režim ladění je vypnutý, klíče jsou samostatné, žádná sdílená administrátorská hesla.
  • Platný certifikát, jinak server odstraníte.
  • DNS záznamy se mažou spolu se serverem.
  • Seznam se kontroluje po skončení každého projektu, ne jednou za rok.

Kam zapadá Datahorses

Datahorses hlídá vaši firmu zvenčí každý den, včetně nových názvů hostitelů pod vašimi doménami, zapomenutých subdomén a testovacích serverů i souborů, které jsou na nich přístupné. Ke každému zjištění dostane váš vývojář přesný postup. Do vašich systémů nevstupujeme a žádné přístupy nepotřebujeme. Podívejte se, co hlídáme a co se stane, když něco najdeme.

Další články

Všechny články