Nechte to být a stanete se zbraní
Výjimečně stálo za to otevřít e-mail od YOOtheme.
Obvykle oznamují nové funkce nebo slevy a musím přiznat, že je nečtu příliš pozorně. Tenhle měl jiný předmět: důležitá bezpečnostní aktualizace. Uvnitř stálo, že v ZOO i v YOOtheme Pro byly nalezeny závažné zranitelnosti a že je třeba okamžitě aktualizovat.
Aktualizace už mám nasazené. Tenhle článek tedy není ani tak hlášení o tom, co jsem udělal. Je o tom, co mi při tom šlo hlavou.
Co se vlastně stalo
ZOO je stavebnice obsahu pro Joomlu, instalovaná pod názvem com_zoo. Nejhorší z letošních nálezů nevyžadovala žádné přihlášení ani účet: útočník mohl zvenčí poslat soubor a nechat ho serverem spustit. Hodnocení závažnosti bylo maximální. Maximum znamená, že už to horší být nemůže, a takové skóre se nerozdává často.
U YOOtheme Pro šlo o užší věc. Dvě zranitelnosti, obě zneužitelné uživateli, kteří už mají oprávnění vytvářet články nebo koncepty. E-mail to říkal poctivě: pokud takové nedůvěryhodné uživatele nemáte, není třeba spěchat. Pro web, který nemá otevřenou veřejnou registraci, je tohle kategorie, kterou lze vyřídit běžným tempem.
Podrobnosti jsou zveřejněné pod čísly CVE a při hledání se toho najde spousta. Pokud vás to zajímá, jděte po té stopě sami. Zjistíte, že překvapivě dost lidí to vysvětluje srozumitelně.
Nezměnilo se nebezpečí. Změnila se rychlost
A tady je to, co mě zaujalo doopravdy: ne ty zranitelnosti, ale způsob, jakým vycházely opravy.
Vyšla verze 4.1.64 a o hodinu později 4.1.65. Během několika dnů se dostala na 4.1.66.
Jinými slovy, "opravili jsme to, jenže ne tak docela" se odehrálo veřejně a dvakrát po sobě. Nemám nejmenší chuť z toho někoho vinit. Zveřejňovat otevřeně a opakovaně je správné. Ale z pohledu uživatele se tím mění smysl.
Aktualizace bývala pochůzka. Něco, na co si člověk jednou za měsíc vzpomněl, otevřel administraci a šel zase po svém. Dnes je to spíš služba na telefonu. Aktualizace, kterou nasadíte dnes, může být zítra zastaralá. Dokonalá bezpečnost nebyla zaručena nikdy a na tom se nic nezměnilo. Změnila se doba, po kterou můžete zůstat v bezpečí.
Mezera mezi zveřejněním a plošným skenováním zmizela
Je tu ještě něco, co jsem viděl na vlastní oči.
Před časem se v jiném rozšíření pro stavbu stránek našla kritická díra. Během několika dnů se v mých přístupových protokolech objevily skenery, které ten exploit otevřeně jmenovaly přímo ve svém user agentu. Mezi zveřejněním a chvílí, kdy začaly pročesávat svět, nebyla prakticky žádná mezera.
Dřív to nějakou dobu trvalo. Po zveřejnění zranitelnosti si někdo se skutečnými schopnostmi musel sednout a útočný nástroj napsat, a to zabralo čas. Dnes je se zveřejněným popisem v ruce sestavení nástroje výrazně snazší. Chytrých strojů je na světě v poslední době dost.
Ta lhůta odkladu tedy zmizela. Těch pár dnů mezi příchodem oznámení o aktualizaci a jejím skutečným nasazením už nejsou tak bezpečných pár dnů jako dřív.
Napadený web nezůstane obětí
Všechno dosavadní je o škodě, kterou utrpíte vy. Ale to, co jsem si nejvíc chtěl zapsat, přichází až potom.
Na můj server chodí každý den návštěvy, které jsem nezval. Hledají administrace, které neexistují, žádají soubory, které jsem tam nikdy nedal, a píší jména rozšíření, která jsem nikdy neinstaloval. V číslech jde o několik procent denních požadavků.
Odkud tedy ty požadavky chodí?
Některé jistě běží na strojích, které si profesionálové postavili sami. Ale nemalá část z nich je téměř určitě něčí zapomenutý web. Postavený před třemi lety, aktualizace zastavené, doména se tiše prodlužuje dál. Majitel nemá tušení, že se tam kdy někdo dostal. A malý program, který tam po něm zůstal, teď bije do světa a hledá další cíl.
Opuštěný web se stane přeposílačem spamu, schránkou na phishing a zvědem, který hledá další oběť. Obětí sám nezůstane. Aniž by si toho kdokoli všiml, přešel na druhou stranu.
Některé z těch adres v mých protokolech jsou, mám podezření, pozůstatky webů, které někdo pustil z ruky.
Nechte to být a stanete se zbraní.
Znamená to tedy, že amatéři mají dát ruce pryč?
Právě naopak.
Myslím, že člověk má vlastnit místo, na kterém stojí. Pokud jen sedíte na cizí rovné ploše, tak v den, kdy se změní podmínky, zmizí všechno. Proto si server pronajímám sám, sám si ho stavím a sám ho opravuju. Na tomhle názoru měnit nic nehodlám.
Pokud v tom ale chcete pokračovat, platí podmínky. A nejsou to podmínky znalostí.
Zaprvé. Nenechávejte si věci, které nepoužíváte. ZOO je letos přesně ten případ: něco, co si lidé ani nepamatovali instalovat, se ukázalo být dírou, kterou se předává plná kontrola. Rozšíření, které jste jednou zkusili, nelíbilo se vám a nechali jste ho ležet. Projděte si seznam v administraci a přečtěte si každý název. Pokud je mezi nimi takový, u kterého nedokážete nahlas říct, k čemu je, můžete ho odstranit. Důvod něco si nechat je, že to používáte, ne že to pořád běží.
Zadruhé. Zařiďte, aby se k vám ta zpráva dostala. Já se to dozvěděl z e-mailu. Kdybych si změnil adresu a registraci nikdy neopravil, dodnes bych o tom nevěděl. U placených rozšíření je to doba předplatného, u volných to místo, kam autor své oznámení dává. Měli byste umět bez hledání říct, kde byste se dozvěděli, že vyšla nová verze.
Zatřetí. Mějte možnost to vrátit zpátky. Nasazovat aktualizaci je strašidelné proto, že je strašidelné, když se to nepovede. Když víte, že se dá vrátit, nasadíte ji ještě týž den. Záloha vás chrání před nehodou, ale je zároveň nástrojem, který vám dovolí aktualizovat bez váhání.
Ani jedna z těch tří věcí nevyžaduje hluboké znalosti. Vyžadují jen nést méně a mít předem rozhodnutý postup.
Nést méně
Nakonec je možná tohle všechno, co chci říct.
Čím víc toho musíte chránit, tím hůř to ochráníte. Web s patnácti nainstalovanými rozšířeními má v sobě patnáct vodovodních trubek, a když praskne kterákoli z nich, budete mokří. Málokdo rozumí všem patnácti. Nejrychlejší tah je tedy snížit počet trubek.
Bezpečnost není o tom stát se odborníkem. Je o tom nést méně věcí. To je to, co jsem si z téhle příhody odnesl.
Kdysi jsem tu psal, že nemít peníze není bezpečnostní strategie: představa, že si malých webů nikdo nevšímá, je iluze. Tohle je její pokračování. Aniž byste si toho všimli, můžete skončit jako ten, kdo střílí.
Vlastnit web znamená přijmout i tuhle odpovědnost. A já si pořád vybírám ho vlastnit.