Autor: .cCuMiNn. | 3.11.2011 |
Když jsem se dnes ráno vzbudil, ještě jsem netušil, co mě čeká. Po nezbytné hygieně a šálku dobré kávy jsem konečně usedl k notebooku, abych návštívil svůj web a vyřídil e-mailové zprávy z předchozího dne. Webové stránky opečovávám snad více než svou přítelkyni a tak mě málem porazilo, když z monitoru zazářil prostý nápis "Hacked by Jožin z bažin".
Co se to mohlo stát? Web jsem zabezpečil snad všemi známými technikami a webhostingu, který jsem pro svou webovou aplikaci zvolil, také zcela důvěřuji. Začal jsem tedy pátrat a po chvíli zjistil, že nápis, který září na mém monitoru, ke mě přicestoval z jiného serveru (chápej IP adresy), než kde je má aplikace běžně uložena.
Rozhodl jsem se pro překontrolování DNS záznamů k doméně, kterou mám vedenu u společnosti INTERNET.CZ (FORPSI). Přejdu proto na jejich webové stránky a pokouším se přihlásit k administraci svého účtu. Nelze. Stále ta stejná hláška o chybně zadaném hesle. Zkouším si tedy nechat zaslat připomenutí svého hesla, ale dozvídám se pouze, že má e-mailová adresa nebyla v systému nalezena. Následovalo zkoumání údajů v registru doménových jmen (CZ.NIC) a šok, který mi málem přivodil infarkt. Nejsem vlastníkem své domény! Zřejmě muselo dojít k chybě! Svou doménu jsem na nikoho nepřeváděl a měl jsem ji řádně uhrazenu na dlouhou dobu dopředu.
Co se to k sakru děje! Začínám vzpomínat na událostí předchozích dní, které měly co dočinění s uvedenou společností INTERNET.CZ, a v tom mi to dochází...
Před pár dny mi zazvonil mobil a po té, co jsem hovor přijal, ozval se na druhé straně příjemný hlas operátorky call centra společnosti INTERNET.CZ (FORPSI). Operátorka mi sdělila, že volá ohledně mé domény, kterou mám u této společnosti zaregistrovánu. Prý je kontaktoval člověk, který si přál přesměrovat tuto doménu na jiný server a bude prý lepší, když překontroluji nastavení svého účtu. Operátorka mě požádala, abych navštívil stránky webového rozhraní na adrese admin.forpsi.cz a přihlásil se. Měl jsem pouze překontrolovat správnost údajů, které mám ve svém účtu uvedeny a potvrdit, zda vše souhlasí. Údaje naštěstí seděli a operátorce jsem proto sdělil, že je vše v pořádku. Následně mě operátorka call centra ještě poprosila o návštěvu webového serveru www.funpages.cz, na který prý mělo být přesměrování nastaveno. Měl jsem potvrdil, zě se skutečně nejedná o mé stránky. Uvedený web jsem tedy navštívil a operátorce sdělil, že s těmito stránkami nemám nic společného, a ať tedy v žádném případě přesměrování neprovádí. Poděkovala a rozloučila se. Chvíli jsem nad touto záležitostí ještě uvažoval, ale později jsem tento rozhovor vypustil z hlavy. A teď tohle...
Je možné, že by ve společnosti INTERNET.CZ (FORPSI) i přes můj výslovný nesouhlas provedli přesměrování, o kterém se operátorka zmiňovala? Zavolal jsem proto do této společnosti, kde mi ale odmítli (bez znalosti svých autentifikačních údajů) poskytnout jakékoliv bližší informace. Jediné, co mi sdělili bylo, že z jejich strany nedošlo k jakémukoliv zásahu do údajů v mém účtu. Doména od nich ale prý byla nedávno převedena na žádost majitele k jinému registrátorovi. Posledním východiskem tak zůstává zlouhavé vyšetřování a soud s neurčitým výsledkem. Přišel jsem k tomu jako slepý k houslím a vůbec nevím jak...
Krádeže domén bohužel patří mezi běžné oblasti kybernetické kriminality a čas od času se proto můžeme o podobných útocích dočíst. O několika případech, které se skutečně staly, informuje například článek Jak někomu ukrást doménu na serveru root.cz.
I když je výše uvedený text celý smyšlený, stojí bohužel na zcela reálných základech. Podobným způsobem totiž může o svou doménu přijít velice snadno kdokoliv z vás. A kde byl tedy v příběhu zakopán pes, a jak k celému hypotetickému útoku došlo? Usuzujete správně, když celý hack přisuzujete zvláštnímu telefonátu z callcentra. Nejednalo se ovšem o skutečné callcentrum, ale o slečnu, která byla nastrčena útočníkem. I když by majitel domény neposkytl této slečně žádné důvěrné informace, stačil by tento zcela nevinný rozhovor k úspěšnému vykonání celého útoku, který by nakonec vyústil ve změnu vlastníka domény.
Ne, slečna z mého příběhu opravdu neměla psychotronické schopnosti a dokonce nešlo ani o to, co jsme si během rozhovoru řekli. Celý ilustrační útok spočíval pouze v tom, že jsem se přihlásil ke svému účtu na FORPSI.cz a následně navštívil stránky funpages.cz. Administrační rozhraní pro správu domén (či webhostingu) totiž u velkého množství registrátorů trpí zranitelností Cross-Site Request Forgery (CSRF) a tím, že jsem navštívil stránky funpages.cz s připraveným kódem, jsem nevědomky odeslal požadavek serveru FORPSI.cz na změnu mé emailové adresy.
Společnost INTERNET.CZ (FORPSI), která má největší podíl registrovaných .CZ domén na českém trhu, jsem na výskyt uvedené zranitelnosti s dostatečným předstihem upozornil. V tuto chvíli by tak již mělo být její administrační rozhraní ošetřeno. Dovolím si proto uvést příklad konkrétního útoku, který byl u této společnosti donedávna proveditelný.
Během plánování útoku se útočník musí nejprve dostačně seznámit s administrativním rozhraním, proti kterému chce útočit. Pokud si zvolí za cíl změnu e-mailové adresy, pak pro něj bude důležitý hlavně detailní průzkum formuláře pro změnu údajů u kontaktní osoby.
Útočník nejdříve odešle vyplněný formulář s kontaktními údaji ve svém účtu. Prozkoumáním komunikace mezi svým prohlížečem a serverem zjistí, že je tento formulář předáván serveru společně s id uživatele. Přitom bez znalosti tohoto id není možné vytvořit předvyplněný formulář pro CSRF útok.
Zdálo by se, že na zjištění id celý útok ztroskotá. Mělo by se totiž teoreticky jednat o interní údaj aplikace, který není veřejně dostupný. Opak je ale pravdou a zjištění tohoto identifikátoru nebude pro útočníka nic složitého. Stačí se totiž pouze zeptat v centrálním registru domén u CZ.NIC na doménu, která se má stát cílem útoku. Z odpovědi je možné vyčíst zajímavé údaje, dokonce i toto id, které FORPSI při registraci přidává do názvu subjektu.
Vzhledem k absenci jakékoliv ochrany před útoky Cross-Site Request Forgery nyní útočníkovi nic nebrání ve vytvoření útočné webové stránky. Ta bude obsahovat předvyplněnou kopii formuláře pro změnu údajů a krátký kód JavaScriptu pro jeho automatické odeslání. Pro zamaskování útoku tuto stránku nakonec ještě útočník vloží do skrytéto rámu.
Ke zdárnému útoku nyní zbývá jediné. Přesvědčit uživatele, aby se přihlásil ke svému účtu a následně navštívil připravenou webovou stránku. Za tímto účelem jsem ve svém příběhu použil slečnu z callcentra, která by jistě měla dostatečný přesvědčovácí talent. Někteří registrátoři u svého administračního rozhraní umožňují dokonce takovou zhovadilost, jakou je trvalé přihášení. Věřím, že nebezpečí jeho použití je každému z vás jasné. Ve chvíli, kdy uživatel podlehne a navštíví připravenou stránku, dojde k automatickému odeslání požadavku, který způsobí změny u kontaktní osoby, včetně přepsání její e-mailové adresy.
Útočníka již dále nemusí "původní" vlastník domény zajímat. Stačí totiž, aby navštívil přihlašovací formulář, kde vloží svou e-mailovou adresu a nechá si na ni zaslat zapomenuté autentifikační údaje.
Je smutné, že se nejslabším článkem v řetězci stávají právě registrátoři domén, u kterých by to snad nikdo nečekal. Pokud se chcete podobným útokům vyvarovat, dodržujte následující doporučení:
Samotní registrátoři by pak měli své webové aplikace rozšířit o ochranu proti Cross-Site Request Forgery a Clickajckingu. Jedním z možných řešení je zavedení následujících opatření:
Původně jsem se zaměřil pouze na otestování FORPSI, které jsem výše popsanou zranitelnost dopředu reportoval. Před zveřejněním tohoto článku jsem ale ze zvědavosti navštívil ještě webové rozhraní u několika dalších registrátorů (kteří poskytují možnost vytvoření účtu bez zakoupení domény). Stav zabezpečení, který jsem zjistil, a který si i vy můžete prohlédnout níže v přehledu registrátorů, je skutečně alarmující. Žádný z testovaných registrátorů neměl implementovánu ochranu před clickjackingem a jen malé procento z nich ošetřovalo zranitelnost CSRF. Oproti FORPSI, kde bylo možné útočit pouze na konkrétní cíle (díky nutnosti uvádění id), jsou u mnoha jiných registrátorů možné také masové útoky, které žádné id znát nepotřebují. Počítám, že na stejné úrovni budou také registrátoři v jiných zemích. Protože není možné informovat každého z nich individuálně, zvolil jsem pro rychlou nápravu zveřejnění varovné informace formou tohoto článku.
Údaje zachycují stav v době testování (říjen 2011).Registrátor | Webová stránka | Ošetřeno CSRF | Ošetřen clickjacking | |
Web4U s.r.o. | www.spravadomen.cz | NE | NE | |
ACTIVE 24, s.r.o. | www.active24.cz | NE | NE | |
ZONER software, a. s. | www.regZone.cz | NE | NE | |
INTERNET CZ, a.s. | domeny.forpsi.cz | NE | NE | |
ONEsolution s.r.o. | www.onebit.cz | - | - | |
WEDOS Internet, a.s. | www.wedos.cz/ | NE | NE | |
IGNUM, s.r.o. | www.domena.cz | ANO | NE | |
GENERAL REGISTRY, s.r.o. | www.domainmaster.cz | NE/ANO | NE/ANO | |
TELE3 s.r.o. | www.tele3.cz | NE | NE | |
ONE.CZ s.r.o. | www.registrator.cz | - | - | |
Telefónica Czech Republic, a.s. | www.o2.cz/domena | - | - | |
OVH, Sas | www.ovh.cz | NE | NE | |
Seonet Multimedia s.r.o. | www.gigaserver.cz | - | - | |
AERO Trip PRO s.r.o. | ok-domeny.cz | - | - | |
PIPNI s.r.o. | www.pipni.cz | NE | NE | |
Marketer, s.r.o. | www.url.cz | - | - | |
Ascio Technologies inc. | www.ascio.com | - | - | |
1X s.r.o. | www.1x.sk | - | - | |
NEW MEDIA GROUP s.r.o. | www.reg.cz | - | - | |
Key-Systems GmbH | www.key-systems.net | - | - | |
Safenames Ltd. | www.safenames.net | - | - | |
MarkMonitor Inc. | www.markmonitor.com/ | - | - | |
banan s.r.o. | domeny.banan.cz | NE | NE | |
IP Mirror Pte Ltd | www.ipmirror.com | - | - | |
Media4Web s.r.o | www.media4web.cz | NE | NE | |
Stable.cz s.r.o. | kvapem.cz | - | - | |
TERMS a.s. | www.thosting.cz/ | - | - | |
Explorer, a.s. | www.explorer.cz | - | - | |
Advio Network, s.r.o. | www.kvalitnidomeny.cz/ | - | - | |
MIRAMO spol.s r.o. | www.9net.cz | - | - | |
ASPone, s.r.o. | www.aspone.cz | ANO | NE | |
1API GmbH | www.1api.net/ | - | - | |
ProfiHOSTING s.r.o. | profiwh.cz | - | - | |
KRAXNET s.r.o. | www.xnet.cz | ANO | NE | |
united-domains AG | www.united-domains.de | NE | NE | |
CORE ASSOCIATION | corenic.org | - | - | |
AXFONE s.r.o. | www.axfone.cz | - | - | |
Dial Telecom, a.s. | www.dialtelecom.cz | - | - | |
InterNetX GmbH | www.internetx.de | - | - | |
Gandi SAS | gandi.net | - | - | |
Instra Corporation Pty Ltd | www.instra.com/ | - | - | |
MASANTA.COM s.r.o. | www.masanta.com/ | - | - | |
Websupport, s.r.o. | www.websupport.cz | NE | NE | |
Variomedia AG | www.puredomain.com | - | - | |
ha-vel internet s.r.o. | domeny.ha-vel.cz | - | - | |
Český server .cz s.r.o. | www.ceskyserver.cz/ | - | - | |
Above.com Pty. Ltd | domains.above.com | NE | NE | |
Gransy s.r.o. | subreg.cz | NE | NE | |
AKREDIT, spol. s r.o. | www.akredit.cz | - | - |
Od zveřejnění článku uběhl již téměř měsíc a nebude proto od věci, když se podíváme, jakých náprav jsme se mohli za tuto dobu dočkat. S potěšením musím konstatovat, že spotřeba zelené barvy pro vykreslení tabulky se od minule podstatně zvýšila.
Narozdíl od jednoduchého konstatování, které označí aplikaci za zranitelnou, není možné bez důkladného pentestu všech formulářů stejně snadno říci, že je aplikace zabezpečená. Výsledky re-testu v níže uvedené tabulce je tedy potřeba brát s rezervou (hlavně v případě CSRF zranitelností). Během testu totiž bylo ověřeno jen velmi malé procento všech formulářů, které administrační rozhraní jednotlivých registrátorů poskytují.
Registrátor | Webová stránka | Ošetřeno CSRF | Ošetřen clickjacking | |
Web4U s.r.o. | www.spravadomen.cz | NE | NE | |
ACTIVE 24, s.r.o. | www.active24.cz | Částečně* | NE | |
ZONER software, a. s. | www.regZone.cz | NE | NE | |
INTERNET CZ, a.s. | domeny.forpsi.cz | ANO | ANO | |
WEDOS Internet, a.s. | www.wedos.cz/ | ANO | ANO | |
IGNUM, s.r.o. | www.domena.cz | ANO | NE | |
GENERAL REGISTRY, s.r.o. | www.domainmaster.cz | - | ANO | |
TELE3 s.r.o. | www.tele3.cz | ANO | JS** | |
OVH, Sas | www.ovh.cz | NE | NE | |
PIPNI s.r.o. | www.pipni.cz | NE | NE | |
banan s.r.o. | domeny.banan.cz | NE | NE | |
Media4Web s.r.o | www.media4web.cz | NE | NE | |
Stable.cz s.r.o. | kvapem.cz | ANO | ANO | |
ASPone, s.r.o. | www.aspone.cz | ANO | NE | |
KRAXNET s.r.o. | www.xnet.cz | ANO | NE | |
Websupport, s.r.o. | www.websupport.cz | ANO | ANO | |
Gransy s.r.o. | subreg.cz | ANO | ANO |
*) Hodnota "částečně" je uvedena z toho důvodu, že došlo k ošetření pouze některých formulářů (například pro změny kontaktních údajů). Bohužel zůstávají nadále zranitelné některé ostatní formuláře a akce vyvolávané po kliknutí na odkaz.
**) JS označuje ochranu před clickjackingem pomocí JavaScriptu. Tento způsob ochrany ovšem dnes už není zrovna ideální. Například je možné načíst do rámu zdrojový kód stránky a z něj nechat opsat bezpečnostní token jako falešnou captchu na stránce útočníka.