Napadnutý web sa nemusí prejavovať veľkou výstrahou alebo viditeľne zmenenou stránkou. Často funguje na pohľad normálne, no na pozadí presmerováva návštevníkov, rozosiela spam, zobrazuje skrytú reklamu alebo poskytuje útočníkovi vzdialený prístup na server.
Tento článok vysvetľuje najčastejšie príznaky napadnutia redakčných systémov Joomla a WordPress, základné typy útokov a postup, ako web bezpečne obnoviť.
Kedy spozornieť: hlavné príznaky napadnutého webu
1. Web presmerováva návštevníkov na inú stránku
Návštevník po otvorení webu skončí na stránke s reklamou, kasínom, kryptomenami, falošnou súťažou alebo upozornením na „vírus“. Často sa to prejaví len pri návšteve z mobilu, z Googlu alebo iba u neprihlásených návštevníkov.
Útočníci to robia zámerne, aby správca webu po prihlásení problém nevidel.
2. Vo vyhľadávači sa objavia podivné stránky alebo výsledky
Google môže pri názve webu zobrazovať odkazy na lieky, kasíno, pôžičky, erotický obsah či náhodné frázy. Niekedy sa na webe vytvoria tisíce falošných URL, ktoré bežný návštevník nenájde cez menu.
Ide o takzvaný SEO spam. Útočník zneužije reputáciu vášho webu, aby jeho podvodný obsah získal pozície vo vyhľadávačoch.
3. Zmenil sa obsah, administrátor alebo nastavenia bez vášho zásahu
Varovné signály sú napríklad:
- neznámy používateľ s rolou administrátora
- nečakaná zmena hesla, e-mailovej adresy alebo kontaktných údajov
- nové pluginy, moduly, šablóny či rozšírenia
- zmenené presmerovania, nastavenia e-mailu alebo DNS
- články, stránky či médiá, ktoré nikto z tímu nevytvoril
Toto je silný dôvod považovať web za kompromitovaný, nie iba za chybne nakonfigurovaný.
4. Web začne byť pomalý alebo hosting hlási nadmernú záťaž
Napadnutý web môže spotrebúvať veľa procesora, pamäte, databázových pripojení alebo odosielať veľké množstvo e-mailov. Niekedy sa prejaví chybami 500, výpadkami, prekročeným limitom hostingu alebo zablokovaným účtom.
Príčinou môže byť spamovací skript, kryptomenový „miner“, bot, automatizované skenovanie iných webov alebo zneužitý PHP skript.
5. Prehliadač, Google alebo bezpečnostný nástroj označí web za nebezpečný
Návštevníci môžu vidieť upozornenie, že stránka obsahuje malware, phishing alebo podozrivý obsah. Takéto hlásenie netreba ignorovať ani vtedy, keď web pri vašej návšteve vyzerá normálne.
Kontrolu je vhodné robiť aj cez Google Search Console, kde sa môžu objaviť bezpečnostné problémy a manuálne zásahy.
6. V súboroch sú neznáme PHP skripty alebo nečitateľný kód
Silným signálom sú nové PHP súbory v priečinkoch s obrázkami, cache, dočasnými súbormi alebo uploadmi. Podozrivý býva aj kód s náhodnými názvami premenných, množstvom goto, dlhými Base64 reťazcami, eval(), base64_decode(), gzinflate(), str_rot13(), shell_exec() či sťahovaním kódu z cudzej URL.
Tieto samotné funkcie ešte nie sú dôkazom napadnutia — používajú ich aj legitímne rozšírenia. Veľmi podozrivá je však ich kombinácia s eval(), so skrytým vstupom z $_GET/$_POST, s potlačením chýb cez a s nezrozumiteľne zahmleným kódom.
Príklad typického backdooru („zadných vrátok“) môže obsahovať logiku typu: „ak príde parameter v URL, spusti operačný príkaz alebo dekóduj a vykonaj PHP kód“. Taký súbor nie je súčasťou bežného Joomla ani WordPress jadra.
7. Objavia sa neznáme .htaccess súbory alebo zmeny pravidiel
.htaccess je konfiguračný súbor webového servera. Štandardne je úplne legitímny, až nevyhnutný — obsahuje presmerovania, pravidlá pre Joomla alebo WordPress, HTTPS a ochranu priečinkov.
Podozrivé sú najmä neznáme .htaccess súbory v mnohých podpriečinkoch, nové presmerovania na cudzie domény, zvláštne výnimky pre PHP súbory alebo pravidlá, ktoré maskujú prístup k neznámym skriptom. Nie je správne automaticky vymazať všetky .htaccess súbory: hlavný súbor môže byť dôležitý pre fungovanie webu. Treba ich porovnať s čistou zálohou alebo so štandardným nastavením CMS.
Najčastejšie typy napadnutia
Backdoor alebo web shell
Backdoor je skrytý skript, cez ktorý sa útočník môže k webu kedykoľvek vrátiť. Vie meniť súbory, vytvárať administrátorov, odosielať spam, sťahovať ďalší škodlivý kód alebo získavať prístup k databáze.
Toto je jeden z najnebezpečnejších typov hacknutia. Vymazanie viditeľného presmerovania nestačí, ak na serveri zostal backdoor.
Vložený JavaScript a presmerovania
Útočník môže upraviť šablónu, databázový obsah alebo JavaScript a vložiť presmerovanie či škodlivý externý skript. Často sa aktivuje iba pre určitú krajinu, zariadenie alebo návštevníka z vyhľadávača.
SEO spam
Napadnutý web generuje falošné články a URL pre vyhľadávače. Niekedy sa škodlivý obsah zobrazí iba robotom Google, takže správca ho pri bežnom prehliadaní nevidí.
Krádež prístupov a neautorizovaný administrátor
Útočník môže získať heslo cez phishing, opakovane použité heslo, malware v počítači správcu alebo cez zraniteľný plugin. Potom sa prihlási úplne „legitímne“ a nainštaluje vlastný kód či vytvorí ďalšie konto.
Zraniteľné alebo neoficiálne rozšírenie
Častou vstupnou bránou je zastaraný plugin, komponent, modul alebo šablóna. Veľké riziko predstavujú neoficiálne, takzvané „nulled“ prémiové šablóny a pluginy, pretože môžu s veľkou pravdepodobnosťou obsahovať backdoor už pri inštalácii.
Oficiálne odporúčania WordPressu zdôrazňujú pravidelné aktualizácie jadra, tém a pluginov a používanie rozšírení z dôveryhodných zdrojov. Bezpečnosť WordPressu
Čo urobiť hneď po zistení napadnutia
1. Zastavte ďalšie škody, ale nemažte dôkazy naslepo
Ak web presmerováva ľudí, šíri škodlivý obsah alebo odosiela spam, prepnite ho do režimu údržby alebo ho dočasne obmedzte na úrovni hostingu. Ak ide o e-shop či web s osobnými údajmi, postupujte rýchlo a podľa interných či zákonných povinností.
Pred zásahom si vytvorte kópiu aktuálneho stavu:
- súbory webu;
- databáza;
- chybové a prístupové logy hostingu;
- zoznam používateľov, pluginov, šablón a rozšírení;
- dátumy podozrivých zmien.
Táto kópia nebude určená na obnovenie webu. Slúži na analýzu, ak by bolo potrebné zistiť rozsah napadnutia.
2. Zmeňte všetky relevantné prístupy
Predpokladajte, že heslá mohli byť odcudzené. Zmeňte heslá k:
- hostingu a ovládaciemu panelu
- FTP/SFTP/SSH
- databáze
- administrácii Joomly alebo WordPressu
- e-mailovým schránkam používaným na obnovu hesiel
- CDN, DNS, zálohovacej službe a externým integráciám
Odhláste existujúce relácie používateľov a odstráňte neznáme účty. Ak zmeníte iba heslo správcu CMS, ale ponecháte prístup k hostingu alebo e-mailu, útočník sa môže vrátiť.
Joomla pri obnove kompromitovaného webu odporúča meniť všetky kritické heslá vrátane prístupu na server, FTP, databázu a administráciu. Joomla Site Recovery
3. Ak je to možné, zistite, kedy a ako k napadnutiu došlo
Skontrolujte logy hostingu, najmä:
- prihlásenia do administrácie
- prístupy na neznáme PHP súbory
- POST požiadavky na uploady a administračné rozhrania
- zmeny súborov
- chyby 403, 500 a PHP chyby
- neobvyklé odosielanie e-mailov
Hľadajte začiatok incidentu: dátum prvého neznámeho súboru, prvé zvláštne prihlásenie alebo zjavnú chybu. Bez tejto kontroly sa môže stať, že odstránite následok, ale ponecháte pôvodnú vstupnú bránu.
4. Vyčistite web alebo ho obnovte z dôveryhodnej zálohy
Najbezpečnejší postup je obnoviť web z overenej zálohy vytvorenej pred napadnutím a následne ho aktualizovať. Treba obnoviť súbory aj databázu — pri väčšine CMS je obsah databázy oddelený od súborov webu.
Ak čistá záloha nie je k dispozícii, odporúčaný postup je:
- Nahrať čisté, aktuálne jadro WordPressu alebo Joomly z oficiálneho zdroja
- Nainštalovať iba overené a aktuálne pluginy, moduly, komponenty a šablóny
- Skopírovať len potrebné vlastné súbory, po kontrole ich obsahu
- Skontrolovať databázu na neznámy obsah, používateľov, vložené skripty a zmenené nastavenia
- Skontrolovať priečinky s nahratými médiami a odstrániť z nich neznáme spustiteľné súbory
Neobnovujte celý zálohovaný adresár bez kontroly, ak neviete, či záloha už neobsahovala malware.
5. Skontrolujte miesta, na ktoré sa často zabúda
Pri čistení nestačí preveriť len viditeľnú časť webu. Skontrolujte tiež:
- .htaccess a konfiguráciu webservera
- wp-config.php, configuration.php a ostatné konfiguračné súbory
- priečinky uploads, images, media, cache, tmp a vlastné upload priečinky
- naplánované úlohy cron
- WordPress mu-plugins, automatické načítavanie a databázové možnosti
- Joomla pluginy, moduly, komponenty, šablóny a používateľské skupiny
- e-mailové presmerovania a kontá vytvorené v hostingu
- databázových používateľov a prístupové práva
- subdomény a testovacie inštalácie CMS
Preverte všetky administrátorské kontá. Nový alebo neznámy Super User v Joomle či administrátor vo WordPresse je incident, ktorý treba objasniť.
Ako web po vyčistení zabezpečiť
Aktualizácie a minimálny počet rozšírení
Udržiavajte aktualizované jadro CMS, PHP, šablónu a všetky rozšírenia. Nepoužívané pluginy, moduly, komponenty a témy radšej odstráňte, nie iba deaktivujte.
Inštalujte len z oficiálnych repozitárov alebo od overených dodávateľov. „Nulled“ alebo neoficiálne upravené prémiové doplnky sú častým zdrojom malware. O zabezpečení Joomly píšem aj v tomto článku.
Silné heslá a viacfaktorové overenie
Každý administrátor má mať vlastný účet, silné unikátne heslo a — ak je dostupné — viacfaktorové overenie. Nepoužívajte spoločné konto ani predvídateľné používateľské mená typu admin.
Správne prístupové práva a SFTP
Používajte SFTP alebo SSH, nie nezabezpečené FTP. Súbory a priečinky nesmú byť globálne zapisovateľné; nastavenie 777 je vo väčšine prípadov nesprávne a nebezpečné. Konkrétne práva vždy prispôsobte hostingu a použitému spôsobu nasadenia.
HTTPS, bezpečnostné hlavičky a ochrana administrácie
Web aj administrácia majú fungovať cez HTTPS. HSTS má zmysel pre weby, ktoré sú výhradne na HTTPS a majú správne nastavený certifikát. Prístup do administrácie je vhodné chrániť viacfaktorovým overením, limitovaním pokusov o prihlásenie a podľa potreby ďalšou ochranou na úrovni hostingu alebo webservera.
Zálohy, monitoring a pravidelné kontroly
Zálohy musia obsahovať súbory aj databázu a aspoň jedna ich kópia má byť uložená mimo hostingu. Pravidelne skúste obnovu na testovacom prostredí — záloha, ktorú nemožno obnoviť, nie je spoľahlivá záloha.
Monitorujte zmeny súborov, neúspešné prihlásenia, nové administrátorské účty, odosielanie e-mailov a bezpečnostné upozornenia Google Search Console. Bezpečnosť nie je jednorazové nastavenie, ale pravidelná údržba a pripravenosť na obnovu.
Zhrnutie
Pri hacknutí webu je najväčšou chybou odstrániť iba jeden viditeľný súbor alebo presmerovanie a považovať problém za vyriešený. Útočník môže mať vytvorený ďalší účet, zmenené súbory, naplánovanú úlohu, škodlivý záznam v databáze alebo prístup cez hosting.
Správny postup je: zastaviť škody, uložiť dôkazy, zmeniť všetky prístupy, nájsť príčinu, obnoviť dôveryhodný stav, odstrániť zvyšné vstupné body a zaviesť pravidelnú údržbu. Pri webe s objednávkami, platbami alebo osobnými údajmi je rozumné prizvať bezpečnostného špecialistu alebo podporu hostingu.
Ak potrebujte pomôcť s obnovou napadnutého Joomla alebo Wordpress webu, kontaktujte ma. Pokúsim sa vysekať vás z problémov.






