Co nám ukázal sken 10 000 domén?

V rámci našeho působení provozujeme aplikaci Malicious Domain Manager. S její pomocí se snažíme informovat držitele domén v zóně .CZ o úspěšné kompromitaci jimi provozované webové prezentace. Nejčastějším scénářem, který se v rámci napadení webových aplikací pravidelně opakuje, je situace, kdy si útočníci pronajmou web či IP adresu a provozují na ní nějaký exploit kit, který útočí na známé zranitelnosti komponent, jež uživatelé obvykle využívají při procházení webových stránek (tedy prohlížečů, Javy, Flash playeru apod.). Tuto adresu, kde je exploit kit provozován, pak například pomocí tagu iframe vkládají do napadených webových stránek jako jejich součást. Již delší dobu si klademe otázku, zda nemůže ve skutečnosti v zóně .CZ být více napadených domén, než o kterých jsme schopni se dozvědět s pomocí naší aplikace. Zkusili jsme proto reverzní postup: Vzali jsme množinu náhodných domén a sledovali, z jakých dalších domén si tyto stránky stahují své komponenty. Potom jsme v kupce agregovaných výsledků pátrali po jehlách a červech… Co myslíte, povedlo se nám v malém českém rybníce identifikovat nakažené stránky, na které ještě nepřišel Google Safebrowsing? A případně kolik?

Nebudu chodit kolem horké kaše – nenašli jsme nic. Žádné dosud neobjevené pirátské weby, masivně odkazované z webů českých obětí, na nás v hromadě dat nečekaly. Nicméně i tak máme zajímavé výsledky, o které se chceme podělit.

Pár slov ke skeneru – vyvinuli jsme ho před čtyřmi lety, abychom ověřili, zda české stránky identifikované jako škodlivé službou Google Safebrowsing (kterou používá např. i Firefox a Chrome k ochraně uživatelů) nejsou false positives, předtím, než jejich vlastníka upozorníme. Skener MDMaug jsme nyní rozšířili, aby bral vícero URL adres a generoval co nejvíce uchopitelný přehled externích domén třetích stran, na které se české domény připojují.

Při testování jsem nechtěně provedl i zátěžový test Firefoxu. Zapomněl jsem implementovat řízení vláken a když jsem zadal, aby se domény oskenovaly, frontend je mínil oskenovat všechny najednou. Vyslal 10 000 AJAX spojení a definitivně zamrznul. Nicméně počítač statečně hučel. Další ráno jsem sebral výsledky – necelé tři hodiny skeny probíhaly normálně, protože server se nenechal zahltit, nicméně když Firefox zobrazil pár tisíc výsledků analýz, přetekl SWAP a počítač se již nevzpamatoval. Kolegové mi celé ráno psali na Jabber v domnění, že jsem online, ale online byla jen má černá díra.

Nyní frontend skeneru obsahuje statistiky průběhu testů a panel rychlosti, kde uživatel řídí počet vláken, ve kterém skeny probíhají. To lze měnit za běhu podle vytíženosti serveru – na svém 4jádru 8 GB RAM jsem nakonec test nechal běžet na dvou až třech vláknech, pokud jsem na počítači normálně pracoval, případně v 11 až 14 vláknech přes noc. Sken probíhal rychlostí přibližně 12 až 15 URL za minutu. Z toho vyplývá, že 10 000 domén lze oskenovat v ideálním případě za 12 hodin.

Je třeba říci, že výsledky nezohledňují URL z whitelistu – MDMaug provoz z některých URL rovnou zahazuje (http://clients1.google.com/ocsp, http://www.google.com/adsense/, …). Další domény druhého řádu má možnost whitelistovat uživatel. Já jsem například whitelistoval ocsp.pki.goog, google.com, gstatic.com, cloudfront.net, doubleclick.net a w3.org, digicert.com. A nakonec doména detectportal.firefox.com je blokována přímo v nastavení interního testovacího Firefoxu, neboť při každém spuštění prohlížeče Firefox je tato adresa pingnuta.

Celkem jsme skenovali homepage 10 997 domén, v grafech je budeme nazývat origins. Celkem 7 522 origins se připojilo k 8 206 externích adres třetích stran. Když vezmeme v úvahu všechny možné IP adresy, skrze něž se lze k externí adrese připojit, vytvořili mezi sebou 43 996 spojení. Pětina domén (2 577) se připojuje na svoji vlastní „www” doménu, 95 na jinou svoji vlastní doménu třetího řádu. Buď variantu „www” (www3, w1, w17), označení, že doména třetího řádu obsahuje statický obsah (img, static, cdn, media), nápovědu, že tam běží administrace (admin), variantu jmeno.prijmeni.cz (nebo například public.relations.cz), variantu s doménou čtvrtého řádu (www.fotbal) nebo cokoli dalšího (api, files, geo, legacy). Přes 1 400 domén v okamžiku testu i týden potom timeoutovalo, šest set domén přesměrovávalo jen a pouze na svoje subdomény, dva tisíce funkčních domén nepřesměrovávalo vůbec nikam.

Nejvíce součástí stránek bylo stahováno z TLD .cz, .com, .org a .net. Na následujícím grafu vidíme, že 5 443 českých origin (oranžovaná) odkazuje na 5 270 externích adres (žlutá) na TLD .cz (popis osy). K tomu provedli 11 945 spojení (modrá). Jinými slovy, nejčastěji odkazovanou TLD je na českých doménách TLD .cz. Domény se připojují na o něco menší množinu domén, přičemž průměrně na každou externí adresu vedou dvě IP adresy.
O něco méně origins (4 731) se připojují na třetinovou množinu adres v TLD .com, ale protože proběhlo přes 22 tisíc relací, usuzujeme, že průměrně se na jednu .com doménu připojujeme deseti IP adresami.
Dále origins odkazují na .org a .net, ale tam je množina externích adres mnohem menší (70 a 274 domén).

Pokud se si protáhneme tento graf dál, vidíme, že další nečasteji používané TLD jsou: polská, evropská, cool input/output doména, slovenská a německá.

Na ta samá data se podívejme ještě jiným způsobem. Přepočítejme si vždy na 100% součet relací (modrá), origins (oranžová) a exteních adres (žlutá). Vidíme opět, že TLD .org má maloučko externích domén, na které se odkazuje mnoho českých origins. Oproti tomu několik málo origins odkazují na mnoho TLD .tv. Dva origins odkazují na jedinou doménu na TLD .stream, ale připojují se k ní na 11 různých IP adresách. TLD .to se objevuje jenom díky webovému komunikátoru tawk.to, který má 22 subdomén, na jejichž 16 IP adres se origins připojily v celkem 285 relacích, zřejmě kvůli dostupnosti služby.

Když místo TLD uděláme agregaci podle počtu nejvíce přistupovaných domén druhého řádu, dostaneme následující tabulku. Ukazuje, že 1 423 origins z množiny testovaných přistupuje na 13 subdomén na facebook.com, v těsném závěsu jsou přístupy 1 397 origins na jedinou doménu scanandcleanlocal.com . Shodou okolností ji znám, je to fb.scanandcleanlocal.com, je nasměrovaná na localhost a po minutě googlování jsem nepochopil, k čemu ji Facebook používá. Následují certifikáty na letsencrypt.org a aplety na jednopísmenném podkladu WordPressu w.org. V závěsu se pohybuje ještě googletagmanager.com a DNS služba cloudflare.com.

 

Pokud domény druhého řádu seřadíme podle počtu domén třetího řádu, vede český webnode.cz se 77 subdoménami, ke kterým přistupuje sedmdesátka origins. Dva origins přistoupí k úctyhodným 64 subdoménám xvideos.com. Na šestém místě je další doména Facebooku fbcdn.net, u které jsme objevili 18 subdomén a na kterou přistupuje 464 origins. Sloupec se nám dokonce nevešel do grafu, podobně jako u 13 subdomén facebook.com, kterou známe z předchozího grafu.

Zajímá-li nás, proč je tak málo používaných domén na TLD .org a .net a které to jsou? Vedou čtyři již zobrazené letencrypt.org, w.org, facebook.net a fbcdn.net. Za nimi jsme zaznamenali 170 zásahů na tři subdomény typekit.net, dále šest subdomén adform.net a několik hostů přistupuje k 15 subdoménám akamaihd.net.

Drtivá většina origins přistupuje pouze na jedinou TLD. O tisícovku méně je origins, které přistupují na dvě, o další tisícovku méně je těch, které přistupují na tři. Graf postupuje dál a šampionem se stává stránka, která natáhne adresy z 19 různých TLD. Skutečně, jedna mezinárodní spediční společnost při přístupu na stránku zobrazí zdroje z .com, .net, .be, .dk, .uk, .pl, .cz, .it, .au, .sk, .de, .ca, .fr, .in, .hk, .sg, .nl, .ie a .my. Na deseti různých IP kontaktuje adresu hello.staticstuff.net, potom různá CDNka (static-cdn.responsetap.com, cdn.siteimprove.net), pluginy (m.addthis.com, u.heatmap.it), certifikace (s.trustpilot.com, static-ssl.responsetap.com), sociální konektory, analytiky, in-page komunikátory, třináct různých homepage vyhledávače Google, co si vzpomenete.

Potom jsem si seřadil origins podle počtu libovolných externích stránek, na které se připojují. Vyšlo mi, že dva tisíce origins se připojují právě k jedné externí stránce, o něco méně origins ke dvěma a ke třem už jenom osm set origins. Šampionem v této disciplíně se stává jeden projekt Českého rozhlasu, kde jsme naměřili 87 různých externích stránek. Byly tam vedlejší stránky víceméně pochopitelné a všechno šlo svižně. Několik dalších finalistů, které se připojují k osmdesátce stránek, vedou na tutéž stránku, zřejmě je vlastní nějaký spekulant. Některé e-shopy ale obsahují tolik různých pluginů (nahrávání uživatele, livechat…), že stránka začne hučet a člověka to pokouší zablokovat JavaScript. Mezi stránkami se vyskytla i smrt.cz . Byl jsem zvědav, proč smrt.cz načítá osmdesátku externích stránek a zadal ji do prohlížeče. Skončil jsem na stránce Blesku pro ženy. Pátral jsem a zjistil, že smrt.cz vede na brana.cz/číslo. Pokud jsem číslo změnil, skončil jsem na hlavní stránce Blesku, kde bylo přes celou stránku napsáno „SMRT – českého doktora v Číně”. Úsudek ať si každý vytvoří sám, já si nevytvořil žádný.

Srovnání prvních 250 origins, které iniciovaly nejvíce spojení, ukazuje poměr IPv4 / IPv6, v jakém jsou relace navazovány. Existuje jenom málo origin, které naváží menšinu spojení s IPv4, četnost IPv6 se drží přinejlepším na 15 %.

Pokud byste si chtěli náš nástroj vyzkoušet, mám pro vás dobrou zprávu. Skener si můžete nainstalovat i v lokálních podmínkách, není třeba žádná kompilace, instalace však není pro začátečníky. V README souboru projektu se snažíme dobře popsat příkazy, se kterými si vygenerujete vlastní certifikát a ohlídáte si instalaci pod nově vytvořeným omezeným uživatelem. Dále zde jsou rady, jak debuggovat, pokud něco nefunguje tak, jak má. Po nainstalování serveru se zpřístupní i testovací podezřelá stránka, která obsahuje rámce, podezřelé obrázky i skripty s voláním nebezpečných funkcí.

Při troše štěstí analyzér zaznamená veškerou komunikaci a podá přehledný výpis externích adres, na které se snaží testovací stránka připojit. Můžete pak skenovat, co je vám libo a bez obav o svůj normální prohlížeč zjišťovat, kam která adresa uživatele unáší.

Jsem rád, že náš test neodhalil žádné neznámé zdroje infekce mezi doménami v zóně .CZ. Znamená to, že náš nástroj Malicious Domain Manager odvádí dobrou práci a že nám doufejme ani v budoucnu neuteče žádná zásadní kampaň, zneužívající k šíření malware domény .CZ. Vznik tohoto textu i samotného skeneru byl podpořen Nástrojem Evropské unie pro propojení Evropy.

Autor:

Zanechte komentář

Všechny údaje jsou povinné. E-mail nebude zobrazen.