Web vyzeral v poriadku, no mesiace slúžil útočníkovi

Tento príbeh je zo skutočného napadnutého webu. Majiteľa ani firmu nemenujem, napíšem len toľko, že išlo o firemný web na WordPresse s online rezerváciami. A že ma oslovili kvôli niečomu úplne inému, než čo som nakoniec riešil.

Požiadavka znela: zrýchliť web

Web bol pomalý. Na mobile mal v teste PageSpeed Insights 42 bodov zo 100, čo znamená, že zákazník na telefóne čaká zbytočne dlho. Bežná zákazka: pozrieť sa, čo web brzdí, a upratať to.

Pri zrýchľovaní sa vždy pozerám aj do zdrojového kódu stránky, teda do toho, čo prehliadač naozaj dostane. A tam som si všimol niečo, čo do rýchlosti nepatrilo.

Nález, ktorý nikto nečakal

V kóde úvodnej stránky boli skryté odkazy na online kasína. Boli posunuté mimo obrazovky, takže ich návštevník nemal ako vidieť. Vyhľadávač ich však čítal ako každý iný odkaz na stránke. Je to typický SEO spam: útočník si cudzím webom zvyšuje dôveryhodnosť svojich stránok v Google.

Web pritom vyzeral a fungoval úplne normálne. Žiadne varovanie, žiadna chyba, rezervácie chodili. Keby som sa nepozrel do kódu, nik by na to neprišiel.

Čo všetko na webe bolo

Skryté odkazy boli len to, čo bolo vidieť zvonka. Podrobná kontrola ukázala, že útočník mal k webu prístup niekoľko mesiacov a stihol si ho zariadiť ako vlastný:

Ako sa útočník dostal dnu

Najpravdepodobnejšou vstupnou bránou bol zastaraný doplnok dodávaný spolu s témou. Mal známu zraniteľnosť, ktorá umožňovala bez prihlásenia čítať súbory na serveri. Vrátane konfiguračného súboru wp-config.php, v ktorom je prístup k databáze.

Táto chyba bola verejne známa a aktívne zneužívaná. Nikto si web nevybral cielene. Automatické programy jednoducho hľadali weby s touto verziou doplnku a tento web medzi nimi bol. Viac o tom, prečo sa to deje, píšem v článku Prečo útočníci napádajú aj malé firemné weby.

Čistenie krok za krokom

Pri napadnutom webe nestačí zmazať to, čo je vidieť. Útočník si skoro vždy necháva viac ciest späť. Postupoval som takto:

Výsledok

Majiteľ k tomu dostal odporúčania, ako web chrániť ďalej: aktualizovať aj platené doplnky, zapnúť dvojfaktorové prihlásenie a nechať web pravidelne skenovať.

Prečo si to majiteľ nevšimol

Nemal ako. Web fungoval, rezervácie chodili a jediné, čo sa zmenilo, bolo pomalšie načítanie. Útočníkovi presne o to ide: čím dlhšie zostane nenápadný, tým dlhšie môže web využívať. Skryté odkazy vidia vyhľadávače, nie ľudia. Spamové články ležali na adresách, kam sa majiteľ bežne nepozerá. A skrytý administrátor sa v zozname používateľov ani neukázal.

Na príznaky, ktoré si môžete všimnúť aj vy, som napísal samostatný článok Je váš web napadnutý? 8 príznakov.

Čo si z toho vziať

Ak máte čo i len podozrenie, kontrola sa oplatí. Čo všetko pri čistení napadnutého webu robím a koľko to stojí, nájdete na samostatnej stránke. Základné vyčistenie je od 99 €.

Zdroje: WordPress: FAQ My site was hacked, WordPress: Zabezpečenie WordPressu, Google: Pravidlá proti spamu.