Slovenský hosting HostCreators rozoslal zákazníkom upozornenie, že jeho servery čelili útoku zameranému na weby postavené na systéme Joomla. Útočníci sa cez nezabezpečené a neaktualizované inštalácie dostali k spúšťaniu vlastných skriptov priamo na serveroch. Poskytovateľ útok zachytil a servery ochránil, ale zákazníkov požiadal o to, čo mali urobiť už dávno: aktualizovať Joomlu, prejsť rozšírenia a skontrolovať administrátorské účty. Tento scenár sa neopakuje prvý raz a nezostane pri jednom hostingu, preto ho rozoberiem všeobecne. Čo sa deje, keď je na zdieľanom serveri zastaraný web, čo s Joomlou urobiť dnes a ako spoznať, že je už neskoro.
Prečo je neaktualizovaná Joomla problém pre celý server
Joomla je stále jeden z najrozšírenejších redakčných systémov a zároveň má nadpriemerný podiel starých inštalácií. Weby postavené okolo roku 2015 na Joomle 3 často bežia dodnes bez jedinej aktualizácie, pretože „fungujú". Joomla 3 pritom nedostáva bezpečnostné záplaty od augusta 2023 a Joomla 4 skončila s podporou v októbri 2025 (prehľad verzií a ich podpory je v oficiálnej dokumentácii Joomla). Každá známa diera v týchto verziách má verejne dostupný popis a spravidla aj hotový exploit.
Útočník takýto web nehľadá ručne. Automatizované skenery prechádzajú milióny domén, podľa hlavičiek a ciest spoznajú verziu Joomly a pri zhode so známou zraniteľnosťou nahrajú webshell, teda malý PHP skript, cez ktorý potom na serveri spúšťajú, čo chcú. Presne to sa stalo aj v prípade, ktorý HostCreators opísal.
Na zdieľanom hostingu to nie je problém iba jedného webu. Skript beží pod účtom zákazníka na tom istom stroji ako stovky ďalších stránok. Rozosiela spam, ťaží kryptomeny, útočí na iné servery alebo sa pokúša dostať k susedným účtom. Poskytovateľ to rieši izoláciou a dohľadom, ale aj pri dobre nastavenom serveri zaťažuje kompromitovaný web procesor a IP adresu servera, ktorá môže skončiť na blacklistoch. Preto hostingy v takejto situácii tlačia na zákazníkov a v krajnom prípade infikovaný web vypnú.
Krok 1: Aktualizuj jadro Joomla na podporovanú verziu
Prvá vec, ktorú treba urobiť, je zistiť, akú verziu Joomly vlastne prevádzkuješ. Nájdeš ju v administrácii vpravo dole alebo v ponuke Systém → Systémové informácie. Ak je to čokoľvek nižšie než aktuálna podporovaná rada, nejde o aktualizáciu, ale o migráciu, a tú treba naplánovať.
- Joomla 5.x a 6.x sa aktualizujú priamo z administrácie cez Systém → Aktualizácia Joomla. Pred spustením urob zálohu súborov aj databázy.
- Joomla 4.x má priamu cestu na Joomlu 5 cez rovnaký nástroj, ale najprv si over kompatibilitu šablóny a rozšírení. Väčšina moderných rozšírení už podporuje Joomlu 5, staršie nemusia.
- Joomla 3.x sa na 4 a ďalej migruje cez oficiálny Pre-Update Check a je to reálny projekt: šablóny z Joomly 3 na 4 nefungujú a časť rozšírení nemá nástupcu.
Ak je migrácia mimo tvojich možností, urob aspoň to, čo sa dá bez nej: zvýš verziu PHP na hostingu na najvyššiu, s ktorou web ešte beží, obmedz prístup do administrácie a nastav zálohovanie. Nič z toho nenahradí záplaty, ale zúži priestor pre útok, kým migrácia prebehne.
Krok 2: Rozšírenia, ktoré nepoužívaš, sú len ďalšie dvere
Väčšina úspešných útokov na Joomlu nejde cez jadro, ale cez rozšírenia: komponenty, moduly a pluginy tretích strán. Jadro má vývojový tím a bezpečnostný proces, rozšírenie od jedného vývojára, ktorý ho pred piatimi rokmi prestal udržiavať, nemá nič.
Prejdi si zoznam v Systém → Rozšírenia a pri každom si polož tri otázky. Používam ho? Má dostupnú aktualizáciu? Má ešte vôbec vývojára? Čo nepoužívaš, odinštaluj, nie iba vypni. Vypnuté rozšírenie má stále súbory na disku a tie sú dostupné priamo cez URL bez ohľadu na to, či ho Joomla načítava. Pri rozšíreniach, ktoré ostávajú, over, že vývojár ešte existuje a že nie sú na oficiálnom zozname zraniteľných rozšírení (Vulnerable Extensions List).
Osobitnú pozornosť si zaslúžia rozšírenia, ktoré umožňujú nahrávať súbory, čokoľvek s formulármi, galériami alebo editorom. Práve cez ne sa najčastejšie dostane na server PHP súbor tváriaci sa ako obrázok.
Krok 3: Skontroluj administrátorské účty
Toto je bod, ktorý HostCreators zdôraznil, a právom. Útočník, ktorý sa raz dostal do webu, si spravidla založí vlastný administrátorský účet, aby mu prístup ostal aj po tom, čo aktualizuješ Joomlu a zavrieš pôvodnú dieru.
V administrácii otvor Používatelia → Správa a vyfiltruj skupinu Super Users. Prejdi si každý účet:
- Poznáš ho? Účty, ktoré si nevytvoril ty ani nikto z tímu, sú podozrivé bez ohľadu na názov. Útočníci používajú nenápadné mená typu
admin2,supportalebo kópiu existujúceho mena s jedným znakom navyše. - Kedy sa naposledy prihlásil? Stĺpec Dátum poslednej návštevy prezradí účty, ktoré boli aktívne v čase, keď si na webe nič nerobil.
- Aký má e-mail? Cudzia doména v e-maile administrátora je jasný signál.
Ak podozrivý účet nájdeš, jeho zmazanie je nutný, ale nie dostačujúci krok. Útočník, ktorý si vedel vytvoriť účet, mal prístup k celému webu a s vysokou pravdepodobnosťou tam nechal ešte niečo iné: webshell v priečinku so šablónou, upravený súbor jadra, naplánovanú úlohu alebo záznam v databáze, ktorý účet znovu vytvorí. Zmazaný účet je dôkaz kompromitácie, nie jej vyriešenie.
Ako spoznať, že je web napadnutý
Časť napadnutých webov vyzerá navonok úplne normálne, pretože útočníkovi vyhovuje, keď si nič nevšimneš. Napriek tomu existujú signály, ktoré sa dajú skontrolovať za pár minút:
- Neznáme PHP súbory v priečinkoch
images,tmp,cachealebomedia. V týchto priečinkoch nemá byť žiadny spustiteľný kód. - Zmenené dátumy súborov jadra, napríklad
index.phpaleboconfiguration.phpupravené v čase, keď si nič neaktualizoval. - Presmerovania na cudzie weby, ktoré sa objavia iba pri návšteve z mobilu alebo z vyhľadávača, nie pri priamom zadaní adresy.
- Cudzie stránky vo výsledkoch Google: zadaj
site:tvojadomena.ska pozri, či sa tam neobjavujú stránky, ktoré si nevytvoril, typicky lekárne, kasína alebo falošné e-shopy. - Upozornenie od hostingu na vysokú záťaž procesora, odchádzajúci spam alebo blokovanú IP adresu.
- Varovanie v Google Search Console alebo červená obrazovka prehliadača pred návštevou webu.
Ak platí čo i len jeden bod, ber web ako kompromitovaný, kým sa nepreukáže opak.
Čo robiť, keď je web kompromitovaný
Poradie krokov je dôležité. Najčastejšia chyba je zmazať, čo je vidieť, a pokračovať ďalej. O týždeň je infekcia späť, pretože vstupná diera zostala otvorená.
- Urob kópiu napadnutého webu vrátane databázy, ešte pred akýmkoľvek čistením. Bude potrebná na zistenie, kadiaľ útočník prišiel.
- Zmeň všetky heslá naraz: Joomla administrátorov, FTP a SSH prístupov, databázy v
configuration.phpa účtu do hostingu. Ak mal útočník prístup k súborom, mal aj prístup k heslu databázy. - Nahraď jadro Joomly čistou kópiou z oficiálneho balíka rovnakej verzie. Prepísanie súborov jadra odstráni upravené súbory, ale nedotkne sa cudzích súborov, ktoré do jadra nepatria.
- Prejdi rozšírenia, šablónu a priečinky s nahranými súbormi a hľadaj cudzí kód. Typicky sú to súbory so zakódovaným obsahom (
base64_decode,eval), nedávno zmenené súbory a PHP súbory v priečinkoch na obrázky. - Skontroluj databázu, hlavne tabuľku používateľov a rozšírení, kde môže byť účet alebo plugin, ktorý infekciu obnoví.
- Obnov zo zálohy spred napadnutia, ak takú máš. Vyžaduje to vedieť, kedy sa útok stal, a dostatočnú retenciu. Prečo záleží na tom, ako ďaleko dozadu siahajú zálohy, som rozobral v článku o zálohovaní webu.
- Zavri vstupný vektor: aktualizuj Joomlu, rozšírenia a PHP, inak celý postup zopakuješ o pár týždňov.
- Požiadaj o prehodnotenie v Google Search Console, ak bol web označený ako nebezpečný. Ako varovania Googlu vyzerajú a v akom poradí postupovať, rozoberá samostatný článok o tom, čo robiť, keď Google hlási nebezpečný web.
Celý postup je pri väčšom webe práca na hodiny až dni a vyžaduje čítanie cudzieho kódu. Ak na to nemáš kapacitu alebo si nie si istý, že si našiel všetko, je rozumnejšie web zveriť niekomu, kto to robí pravidelne. V DIGITAL WOLF ponúkame odvírovanie webov vrátane analýzy vstupného vektora a zabezpečenia proti opakovaniu, nie iba zmazanie viditeľných súborov.
Prevencia: čo robiť, aby sa to neopakovalo
Napadnutý web sa spravidla dá vyčistiť. Drahšie je to, čo sa deje medzitým: výpadok, spam z tvojej domény, strata pozícií vo vyhľadávaní a dôvery zákazníkov. Prevencia je oproti tomu lacná a väčšinou spočíva v rutine.
- Aktualizuj pravidelne, nie raz za rok. Bezpečnostné záplaty Joomly vychádzajú približne mesačne a rozšírenia podľa potreby. Vyhradený termín raz mesačne stačí, ak sa naozaj dodrží.
- Zapni dvojfaktorové overenie pre všetkých administrátorov. Joomla ho má vstavané a heslo uniknuté z inej služby potom nestačí.
- Obmedz prístup do administrácie na konkrétne IP adresy alebo aspoň za ďalšie heslo cez
.htaccess. Automatizované útoky na/administratortým stratia zmysel. - Drž aktuálne PHP. Stará verzia PHP je rovnaký problém ako stará Joomla a hostingy ju často nechávajú na zákazníkovi.
- Zálohuj mimo servera a raz za čas si obnovu vyskúšaj.
- Sleduj web, aspoň jednoduchým monitoringom dostupnosti a kontrolou Search Console. Napadnutie, ktoré zistíš za deň, je iný problém než to, ktoré zistíš za pol roka.
Ak je pre teba web nástroj a nie hobby, celá táto rutina sa dá delegovať. Pravidelná správa webov v DIGITAL WOLF pokrýva aktualizácie jadra aj rozšírení, monitoring, zálohy a bezpečnostné kontroly, takže e-mail od hostingu s výzvou „konajte bezodkladne" nie je dôvod na paniku, ale iba potvrdenie, že sa už konalo.
Často kladené otázky
Mám Joomlu 3 a web funguje. Naozaj musím migrovať?
Áno, ak má web ostať online. Joomla 3 nemá záplaty od roku 2023 a každá nová zraniteľnosť v nej zostane navždy otvorená. Web „funguje" aj vtedy, keď z neho tretí mesiac odchádza spam. Migrácia je jednorazový projekt; údržba neudržiavaného systému je trvalý problém.
Stačí zmazať cudzí administrátorský účet?
Nie. Cudzí účet znamená, že útočník mal plný prístup a takmer určite si nechal ďalšiu cestu dnu: webshell, upravený súbor alebo záznam v databáze. Účet zmaž, ale ber ho ako dôkaz, že web treba prejsť celý.
Prečo mi hosting hrozí vypnutím webu, keď je napadnutý?
Pretože kompromitovaný web na zdieľanom serveri škodí ostatným zákazníkom: zaťažuje server, rozosiela spam a dostáva IP adresu servera na blacklisty. Hosting chráni zvyšných niekoľko sto webov a vypnutie jedného je najrýchlejší spôsob.
Ako často mám Joomlu aktualizovať?
Bezpečnostné vydania hneď, ako vyjdú, ostatné v mesačnej rutine. Pred každou aktualizáciou urob zálohu. Ak sa aktualizácie bojíš, pretože „sa môže niečo pokaziť", je to signál, že web nemá testovacie prostredie ani zálohu, a to sú väčšie problémy než samotná aktualizácia.
Týka sa to aj WordPressu a iných systémov?
Úplne rovnako. Joomla je v tomto prípade iba systém, na ktorý útok mieril. Neaktualizovaný WordPress, PrestaShop alebo Drupal je pre útočníka tá istá príležitosť a hostingy s nimi zaobchádzajú rovnako.
Útok, na ktorý HostCreators upozornil, nebol cielený na konkrétnu firmu ani na konkrétny hosting. Bol to automat, ktorý našiel staré Joomly a využil ich. Rovnaký automat dnes beží proti každému serveru na internete a jediná obrana, ktorú má majiteľ webu v rukách, je nudná: aktualizovať, upratať rozšírenia, skontrolovať účty a zálohovať. Ak to nechceš robiť sám, nechaj si to robiť, ale nenechaj to nerobiť. Ako sa jednotliví poskytovatelia líšia v tom, čo za teba v oblasti bezpečnosti riešia, si prejdeš v porovnaní webhostingu.

