Testování verzí CMS: 50 000 zastaralých instalací systémů WordPress a Joomla

27. 9. 2017
Doba čtení: 7 minut

Sdílet

Testování verzí CMS, ke kterému jsme přistoupili začátkem léta, vzbudilo poměrně značný ohlas v odborné komunitě. Zaznamenali jsme jak hlasy, které naši iniciativu vítaly, tak také ty, kterým z nějakého důvodu vadila.

V tomto článku bych chtěl na některé výtky reagovat bližším vysvětlením naší motivace i kroků v pozadí. Byla to naše první zkušenost s podobnou plošnou akcí a je třeba přiznat, že jsme se také dopustili některých přehmatů. I o těch se chci zmínit a omluvit se komunitě za případné negativní dopady, které to mohlo způsobit. Z ohlasů také víme, že některé z vás by zajímalo, jaké byly výsledky této akce. I na ty se tedy podíváme a zkusím také nastínit další věc, která by měla navazovat. Pojďme ale pěkně popořádku.

Od roku 2011 provozujeme naši open-source aplikaci MDM (Malicious Domain Manager). Jejím smyslem je získávat z veřejně dostupných zdrojů informace o napadených webových prezentacích v doméně .CZ. Jedná se o incidenty od umístěné phishingové stránky až po exploit kit šířící malware.

Jen co se týká malwaru a exploit kitů, jedná se v každém roce o napadené webové prezentace zhruba na dvou tisících doménách a v rámci každého roku to znamená několik desítek tisíc URL, na kterých se můžou uživatelé infikovat škodlivým kódem všeho druhu. Na grafu níže můžete vidět množství stránek podílejících se na šíření malware v jednotlivých letech (propad v roce 2015 je způsoben problémy se systémem a následnou delší výlukou, kdy jsme se rozhodli využít výpadku k provedení změn v systému samotném).

V tomto případě pomíjím phishingové stránky, které na děravých systémech také bývají často spuštěny, a které jsou pro nás samozřejmě také důležité. Nicméně tímto článkem bych chtěl reagovat na jednu z častých připomínek, která se týkala především naší motivace řešit jaký, byť děravý systém má na své doméně provozovatel umístěný a pro tento účel je problematika malwaru vhodnější. Ano, to že je věcí provozovatele nějakého systému, zda má všechno bezpečně nastavené, by mohl být argument v případě, kdy chyba systému ohrožuje pouze samotného provozovatele. V prostředí Internetu tomu však tak často není, stačí připomenout relativně nedávné problémy, které vyvolal botnet Mirai postavený na špatně zabezpečených SoHo routerech a IP kamerách. Napadená doména pak může být skvělou adresou třeba pro phishingovou stránku nebo rovnou hostit malware, který ve finále skončí na počítačích uživatelů, kteří navštívili některou z napadených URL a nechali se přesvědčit ke stažení škodlivého kódu nebo prostě neměli všechno záplatované tak, jak by se patřilo a nějaký ten exploit kit toho využil. Takový malware totiž může uživatelův počítač zapojit do botnetu a DDoS spuštěný útočníkem může v konečném důsledku způsobit problémy správci webu, který má na rozdíl od „prvotního hříšníka“ vše v pořádku.

Další zkušenost, která nás k této akci vedla, byla spolupráce s FBI. Ta probíhala několik let a točila se, jak jinak, kolem webových stránek, do kterých po kompromitaci útočník přidal vlastní kód. Ten mu umožňoval z těchto serverů opět pouštět DDoS útoky na jiné weby, obvykle umístěné v USA.

To, že naším prvním cílem byly CMS, je důsledkem jak našich zkušeností, tak také tvrdých čísel, které publikovala společnost Sucuri, z jejíhož výzkumu vyšlo, že ze vzorku 11 000 webových stránek kompromitovaných v roce 2016 bylo 75 procent provozováno na nějaké verzi CMS. Z těchto 75 procent pak 50 procent na verzi neaktuální.

Jako perličku z provozu MDM ještě dodám, že se problémy na řadě domén často opakují. Od spuštění MDM se konkrétně na 1 373 doménách problém opakoval dvakrát, na 417 doménách třikrát a máme i rekordmana, který nám byl nahlášen dvaatřicetkrát.

Již dříve jsme také na tyto problémy reagovali spuštěním služby Skener webu, která je poskytována zdarma, a která má rovněž pomoci zlepšit prostředí webových aplikací v doméně .CZ. V rámci této služby je držitelům domén umožněno zažádat si o test svého webu na nejznámější zranitelnosti. Problematice se tedy věnujeme dlouhodobě a v rámci naší činnosti má svůj postupný vývoj.

Ačkoliv jsme již v minulosti mnohokrát upozorňovali na zranitelnosti, chybné konfigurace, uniklé přihlašovací údaje i neaktuální verze, vždy se jednalo o práci s daty, která nám poskytla třetí strana (Laboratoře CZ.NIC), nebo o data, která jsme našli někde v zákoutích sítě. Namátkou se jednalo např. o upozornění na Industrial Control Systems (ICS), které byly buď neaktuální nebo špatně nakonfigurované, na uniklá hesla k e-mailům uživatelů z ČR (soukromé i firemní), která jsme nalezli na síti, nebo chybně nakonfigurované SoHo routery. V případě CMS jsme se rozhodli jít cestou vlastního skenování a následné distribuce informací.

Příprava celé akce se protáhla, především kvůli počátečnímu zhodnocování některých právních aspektů a následné přípravě právní analýzy, abychom si byli jisti, že vše provedeme v souladu se zákonem. Bohužel výsledkem mnoha různých okolností došlo k tomu, že jsme skenování a následné rozesílání informací o zranitelnostech provedli až v době prázdnin. Nyní už víme, že to nebylo nejšťastnější, neboť to znamenalo velkou zátěž s odpovídáním na vlnu dotazů, kterou jsme tím vyvolali ve chvíli, kdy náš tým nebyl zdaleka kompletní. Nicméně jsme všem uživatelům zvládli odpovědět ve standardním čase a zároveň jsme si trochu zahráli na technickou podporu a kromě obecných dotazů k webovým zranitelnostem a CMS jsme také pomáhali uživatelům konkrétními radami a návody, jak aktualizovat na nové verze. Uvědomujeme si ovšem, že jsme do podobné situace mohli dostat i jiné týmy, kterým se mohli začít ozývat jejich uživatelé s dotazy a že ne každý byl na takové množství dotazů v tomto období připravený.

Za naši největší chybu považujeme, že jsme poslali informaci o zastaralém CMS i vlastníkům, jejichž verze byla díky specifickému verzovacímu modelu WordPressu vlastně aktuální. Způsob záplatování, jaký WordPress zvolil, je poměrně složitý (nezavazují se záplatovat, uvádí, že starší verze mohou, ale nemusí záplaty obdržet) a neplatí zde jako v případě CMS Joomla, že bezpečnostní záplaty a aktualizace jsou doručovány vždy pouze nejnovější tzv. major verzi. Pro příště se budeme této oblasti v rámci analýzy věnovat více.

Pokud jde o samotné výsledky, celkem jsme nalezli (po očištění o chybu z předchozího odstavce) 50 761 .CZ domén se zastaralou verzí některého z CMS. Konkrétně to bylo 25 606 starých verzí CMS Joomla a 25 155 zastaralých verzí WordPressu. Změnu k lepšímu jsme při druhé vlně skenování, kdy jsme již skenovali pouze dříve identifikované weby, zaznamenali u 10 514 domén. To je zlepšení u 20,71 %. Část stránek, konkrétně 2 686, také mezitím přestala být dostupná nebo již neposkytuje informace o verzi. Pokud jde o nedostupné weby, domníváme se, že stejně jako jsme to již zaznamenali při podobných akcích dříve, část držitelů doménových jmen měla někde polozapomenutý web a po našem upozornění ho raději vypnula, další mohou být expirace domén, náhodný výpadek serveru, apod. Pro ty, kteří mají rádi grafy, tu máme hned dva; ukazují změny podle jednotlivých verzí – u Joomla vývoj instancí nižších než 3.7 a u WordPressu vývoj instancí nižších než 4.7.5.

Poslední sloupce v obou grafech jsou verze CMS, které jsme zaznamenali při druhém kontrolním testu, kdy došlo k updatu zastaralých CMS na poslední verze a které neexistovaly v době prvního skenu.

S ohledem na uvedené výše, považujeme celou akci za úspěšnou. Dostali jsme mnoho pozitivních ohlasů od oslovených držitelů domén. Samozřejmě nás ale mrzí zmíněné chyby, kterých jsme se při její realizaci dopustili. V každém případě to pro nás bylo velkým ponaučením do případných budoucích preventivních akcí, které bychom jako národní CSIRT prováděli.

Závěrem bych chtěl říci, že se problematice webů chceme věnovat i nadále. Díky našim analýzám informací z MDM, které nám ukazují, kde jsou v případě stránek šířících malware umístěny zdrojové exploit kity, a také díky naší spolupráci s projektem Turris, jsme objevili znepokojující problém, na který bychom se chtěli zaměřit. Ukázalo se, že u sledovaných IP adres, na kterých byl s jistotou nasazen exploit kit, dochází u klientů projektu Turris k pokusům o komunikaci [PDF]. Vzhledem k tomu, že data v MDM pocházejí z veřejných zdrojů, které jsou využívány i prohlížeči k zobrazení varovných hlášení, měli by být uživatelé včas varováni před .CZ stránkami šířícími malware a k pokusu o komunikaci se serverem hostujícím exploit kit by vůbec nemělo dojít. To, že k těmto pokusům dochází, může znamenat dvě věci. Buď uživatelé Turrisu ignorují varovné hlášky a nutí prohlížeč pokračovat na nebezpečnou adresu, nebo existuje určitá část domén, které šíří malware a veřejné databáze o nich nevědí.

bitcoin_skoleni

Právě na to bychom se chtěli zaměřit při dalším testování, kdy bychom chtěli načíst výchozí stránku na dané doméně a zkusit ji prohledat na patterny, o kterých víme, že mohou být indikátorem kompromitace daných stránek a šíření škodlivého kódu. Budeme rádi, pokud nám v diskuzi řeknete svůj názor, případně zanecháte zpětnou vazbu na akci skenování CMS.

(Napsáno původně pro blog CZ.NIC)

Autor článku

Pavel Bašta pracuje ve sdružení CZ.NIC jako team leader a bezpečnostní analytik CZ.NIC CSIRT a CSIRT.CZ.