Rozšírenia patria medzi najväčšie výhody redakčného systému Joomla. Pomocou komponentov, modulov, pluginov a šablón možno na web doplniť kontaktné formuláre, galérie, internetový obchod, rezervačný systém, pokročilé SEO funkcie alebo prepojenie s externými službami.
Každé nainštalované rozšírenie však zároveň pridáva na web nový programový kód. Ak obsahuje bezpečnostnú chybu, pochádza z nedôveryhodného zdroja alebo už nie je podporované, môže sa stať slabým miestom celej stránky. Bezpečnosť Joomla webu preto nezávisí iba od aktualizácie samotného systému, ale aj od správneho výberu a pravidelnej kontroly všetkých doplnkov.
Čo sú Joomla rozšírenia
Joomla používa niekoľko základných typov rozšírení:
- komponenty zabezpečujú väčšie funkčné celky, napríklad formuláre, katalógy alebo internetové obchody,
- moduly zobrazujú menšie bloky obsahu na rôznych miestach stránky,
- pluginy reagujú na udalosti systému a menia alebo dopĺňajú jeho správanie,
- šablóny určujú vzhľad a rozloženie webu,
- jazykové balíky pridávajú preklady používateľského rozhrania,
- balíky a knižnice môžu obsahovať viac navzájom prepojených častí.
Rozšírenia často pracujú s databázou, súbormi, používateľskými účtami alebo obsahom odosielaným návštevníkmi. Kontaktný formulár napríklad prijíma údaje z internetu, galéria umožňuje nahrávať súbory a internetový obchod spracúva objednávky a osobné údaje. Chyba v takomto rozšírení preto môže mať vážnejšie následky než obyčajná chyba zobrazovania.
Prečo môžu byť rozšírenia bezpečnostným rizikom
Rozšírenie môže obsahovať programátorskú chybu, ktorá útočníkovi umožní vykonať nepovolenú operáciu. Medzi známe typy zraniteľností patria napríklad:
- SQL injection, teda neoprávnená manipulácia s databázou,
- cross-site scripting označovaný ako XSS,
- nahrávanie alebo spustenie škodlivého súboru,
- získanie vyšších používateľských oprávnení,
- obídenie prihlasovania alebo kontroly prístupu,
- únik údajov z databázy,
- vzdialené spustenie škodlivého kódu.
Riziko sa zvyšuje najmä vtedy, keď sa rozšírenie dlhší čas neaktualizuje, jeho vývojár už neposkytuje podporu alebo používateľ ignoruje dostupnú bezpečnostnú opravu.
Bezpečnostná chyba v rozšírení pritom automaticky neznamená, že celý projekt alebo jeho vývojár sú nedôveryhodní. Chyby sa môžu objaviť aj v kvalitnom a aktívne vyvíjanom softvéri. Rozhodujúce je, ako rýchlo vývojár problém opraví, informuje používateľov a sprístupní bezpečnú verziu.
Inštalujte iba rozšírenia, ktoré skutočne potrebujete
Jedným z najjednoduchších bezpečnostných pravidiel je obmedziť počet nainštalovaných rozšírení. Každý ďalší doplnok znamená nový kód, ktorý treba sledovať, aktualizovať a kontrolovať.
Pred inštaláciou si preto položte otázky:
- Potrebuje web túto funkciu?
- Nedokáže ju zabezpečiť samotné jadro Joomla?
- Nie je už podobná funkcia súčasťou šablóny alebo iného rozšírenia?
- Bude mať rozšírenie na stránke reálne využitie?
- Dokážem ho pravidelne aktualizovať a kontrolovať?
Joomla vo svojej dokumentácii odporúča používať iba potrebné rozšírenia a nové doplnky najskôr vyskúšať na testovacej stránke, nie priamo na ostrom webe.
Veľký počet nepoužívaných doplnkov zvyšuje nielen bezpečnostné riziko, ale aj pravdepodobnosť konfliktov, problémov pri aktualizácii a spomalenia administrácie.
Rozšírenia sťahujte z dôveryhodných zdrojov
Najbezpečnejším východiskovým miestom na vyhľadávanie doplnkov je oficiálny Joomla Extensions Directory, skrátene JED. Ide o oficiálny katalóg komponentov, modulov a pluginov pre Joomla.
Rozšírenie možno stiahnuť aj priamo zo stránky jeho vývojára. Vždy však skontrolujte, či ide o skutočnú oficiálnu stránku projektu.
Vyhýbajte sa najmä:
- neoficiálnym stránkam ponúkajúcim platené rozšírenia zadarmo,
- upraveným alebo „nulled“ verziám komerčných doplnkov,
- neznámym archívom so súbormi ZIP,
- rozšíreniam posielaným bez vysvetlenia e-mailom,
- starým inštalačným balíkom z fór a úložísk súborov.
Takto získaný balík môže obsahovať upravený kód, skryté administrátorské účty, reklamy, presmerovania alebo škodlivé skripty. Zároveň pravdepodobne nebude možné bezpečne aktualizovať ho prostredníctvom oficiálneho aktualizačného servera.
Samotné zaradenie rozšírenia do katalógu JED však nemožno považovať za absolútnu záruku bezpečnosti. Aj pri rozšírení z oficiálneho katalógu treba posúdiť jeho aktuálnosť, podporu a dôveryhodnosť vývojára.
Ako posúdiť rozšírenie pred inštaláciou
Pred inštaláciou nového doplnku venujte niekoľko minút jeho prevereniu.
Kompatibilita s vašou verziou Joomla
Rozšírenie musí byť určené pre konkrétnu hlavnú verziu Joomla. Informácia, že doplnok fungoval v Joomla 3 alebo Joomla 4, ešte neznamená, že je bezpečne použiteľný v Joomla 5 alebo Joomla 6.
Skontrolujte tiež požiadavky na:
- verziu PHP,
- databázový server,
- ďalšie potrebné knižnice,
- nadväzujúce komponenty alebo pluginy.
Dátum poslednej aktualizácie
Dlhší čas bez novej verzie nemusí automaticky znamenať problém. Jednoduché rozšírenie nemusí vyžadovať časté zmeny. Varovným signálom však je, keď doplnok nebol aktualizovaný niekoľko rokov, nepodporuje súčasné verzie Joomla a jeho vývojár nereaguje na hlásené chyby.
História verzií
Kvalitný vývojár zverejňuje prehľad zmien, takzvaný changelog. Z neho možno zistiť:
- ako často vychádzajú aktualizácie,
- či sa opravujú bezpečnostné chyby,
- ktoré verzie Joomla sú podporované,
- či vývoj projektu pokračuje.
Dokumentácia a technická podpora
Rozšírenie by malo mať zrozumiteľnú dokumentáciu, kontaktné údaje vývojára a spôsob získania podpory. Pri komerčných doplnkoch si overte, ako dlho licencia zahŕňa aktualizácie a čo sa stane po jej skončení.
Skúsenosti používateľov
Hodnotenia a recenzie môžu upozorniť na problémy s podporou, aktualizáciami alebo kompatibilitou. Nemožno sa však spoliehať iba na počet hviezdičiek. Dôležitejšia je kombinácia aktuálnych recenzií, pravidelného vývoja a profesionálnej komunikácie výrobcu.
Kontrolujte zoznam zraniteľných rozšírení
Projekt Joomla prevádzkuje Vulnerable Extensions List, teda zoznam známych zraniteľných rozšírení.
Zoznam rozlišuje najmä:
- zraniteľné rozšírenia bez dostupnej opravy, ktoré sa odporúča odinštalovať,
- vyriešené zraniteľnosti, pri ktorých už existuje opravená verzia a používateľ má rozšírenie aktualizovať,
- opustené rozšírenia, ktorých vývojár ukončil podporu.
Oficiálna stránka upozorňuje, že zoznam nemusí obsahovať všetky existujúce problémy a jednotlivé hlásenia ani opravy nie sú bezvýhradne garantované. Má preto slúžiť ako dôležitý kontrolný zdroj, nie ako jediný dôkaz bezpečnosti rozšírenia.
Opustené rozšírenie nemusí mať známu zraniteľnosť. Ak však nemá aktívneho vývojára ani podporu, prípadná budúca chyba pravdepodobne nebude opravená. Joomla vedie takéto doplnky v samostatnej kategórii opustených rozšírení.
Rozšírenia pravidelne aktualizujte
Bezpečnostná oprava je účinná iba vtedy, keď ju správca webu nainštaluje. Aktualizácie rozšírení preto kontrolujte pravidelne, nie iba pri redizajne alebo väčšom upgrade stránky.
V administrácii Joomla sa dostupné aktualizácie nachádzajú v časti:
Systém → Aktualizácie → Rozšírenia
Joomla získava informácie o nových verziách z aktualizačných serverov, ktoré jednotliví vývojári uvádzajú vo svojich rozšíreniach. Systém dokáže porovnať nainštalovanú a dostupnú verziu a skontrolovať niektoré požiadavky na kompatibilitu.
Nie všetky rozšírenia však aktualizačný systém využívajú správne. Pri platených produktoch môže byť potrebné zadať licenčný kľúč alebo identifikačný kód. Ak licencia skončí, rozšírenie môže naďalej fungovať, ale nemusí dostávať nové verzie. Takýto stav je pri verejne dostupnom webe rizikový.
Aspoň raz za čas preto porovnajte verzie doplnkov aj s údajmi na stránkach ich výrobcov.
Pred aktualizáciou vytvorte zálohu
Aktualizácia rozšírenia môže meniť súbory, databázové tabuľky alebo spôsob komunikácie s ďalšími časťami webu. Pred väčšou aktualizáciou preto vytvorte kompletnú zálohu obsahujúcu:
- všetky súbory Joomla stránky,
- databázu,
- konfiguračný súbor,
- prípadné vlastné úpravy a používateľské štýly.
Záloha musí byť uložená mimo rovnakého webového priestoru a treba vedieť, ako ju obnoviť. Samotná existencia súboru so zálohou nestačí, ak je poškodený alebo sa k nemu po incidente nemožno dostať.
Pri dôležitých stránkach najskôr obnovte zálohu na testovacom prostredí, nainštalujte aktualizácie tam a overte základné funkcie webu.
Aktualizácie najskôr testujte
Testovacia kópia stránky, často označovaná ako staging, umožňuje overiť aktualizáciu bez ohrozenia verejného webu.
Po aktualizácii skontrolujte najmä:
- načítanie úvodnej stránky a podstránok,
- prihlasovanie používateľov,
- kontaktné a registračné formuláre,
- odosielanie e-mailov,
- vyhľadávanie,
- galérie a prehrávanie médií,
- objednávkový alebo rezervačný proces,
- administráciu rozšírenia,
- chybové hlásenia a systémové záznamy.
Testovanie by nemalo byť dôvodom na dlhodobé odkladanie bezpečnostnej opravy. Pri kritickej zraniteľnosti je potrebné konať rýchlo. Ak opravenú verziu nemožno bez problémov nainštalovať, bezpečnejšie môže byť dočasné vypnutie príslušnej funkcie alebo odinštalovanie rozšírenia.
Nepoužívané rozšírenia odinštalujte
Vypnutie modulu alebo pluginu nemusí odstrániť jeho súbory zo servera. Nepoužívané rozšírenie preto nezostáva automaticky bez rizika.
Ak doplnok už nepotrebujete:
- vytvorte zálohu stránky,
- overte, či ho nepoužíva iná časť webu,
- odinštalujte celý balík prostredníctvom správcu rozšírení,
- skontrolujte, či po ňom nezostali samostatné pluginy alebo moduly,
- odstráňte nepotrebné aktualizačné zdroje,
- otestujte funkčnosť stránky.
Pri väčších komponentoch si pred odinštalovaním overte, či budete v budúcnosti potrebovať ich údaje. Odinštalovanie môže odstrániť aj databázové tabuľky, nastavenia alebo používateľský obsah.
Pozor na rozšírenia dodávané so šablónou
Komerčné šablóny často obsahujú balík doplnkov, napríklad nástroj na tvorbu stránok, slideshow, galériu alebo vlastný framework.
Problém môže vzniknúť, keď:
- aktualizáciu rozšírenia poskytuje iba výrobca šablóny,
- pribalená verzia je staršia než verzia dostupná u pôvodného vývojára,
- licencia šablóny nezahŕňa samostatný prístup k aktualizáciám doplnku,
- po skončení predplatného prestanú fungovať automatické aktualizácie,
- doplnok zostane na webe aj po zmene šablóny.
Pri každom takomto rozšírení si preto zistite, kto ho aktualizuje a odkiaľ budete získavať bezpečnostné opravy.
Veďte si zoznam používaných rozšírení
Pri jednej stránke možno doplnky kontrolovať priamo v administrácii. Pri správe viacerých webov je užitočné viesť samostatnú evidenciu.
Zoznam môže obsahovať:
- názov rozšírenia,
- nainštalovanú verziu,
- weby, na ktorých sa používa,
- výrobcu a oficiálnu stránku,
- dátum skončenia licencie,
- spôsob aktualizácie,
- dátum poslednej kontroly,
- informáciu o vlastných úpravách,
- plánovanú náhradu alebo odstránenie.
Takáto evidencia výrazne uľahčí reakciu na oznámenie o bezpečnostnej chybe. Správca môže rýchlo zistiť, ktoré stránky používajú ohrozený doplnok a ktoré z nich treba aktualizovať.
Čo robiť pri zistení zraniteľnosti
Postup závisí od toho, či už existuje bezpečnostná oprava.
Keď je dostupná opravená verzia
- vytvorte alebo overte aktuálnu zálohu,
- prečítajte si bezpečnostné oznámenie výrobcu,
- skontrolujte požiadavky novej verzie,
- čo najskôr nainštalujte aktualizáciu,
- otestujte funkčnosť stránky,
- skontrolujte záznamy a súbory na možné známky predchádzajúceho zneužitia.
Keď oprava nie je dostupná
- rozšírenie odinštalujte alebo bezpečne odstavte,
- vypnite funkcie, cez ktoré môže byť chyba zneužiteľná,
- obmedzte prístup k ohrozenej časti stránky,
- vyhľadajte aktívne podporovanú náhradu,
- sledujte oznámenia výrobcu a zoznam zraniteľných rozšírení.
Joomla Security Strike Team priamo rieši bezpečnostné problémy jadra Joomla a Joomla Frameworku. Zraniteľnosti doplnkov tretích strán sa majú oznamovať ich výrobcom; Joomla zároveň prevádzkuje zoznam hlásených zraniteľných rozšírení.
Ak existuje podozrenie, že zraniteľnosť už bola zneužitá, samotná aktualizácia nemusí stačiť. Stránku treba skontrolovať na prítomnosť upravených súborov, nových používateľov, škodlivých naplánovaných úloh, neznámych pluginov a podozrivých zmien v databáze. Následne je vhodné zmeniť prístupové heslá a ďalšie prihlasovacie údaje, ku ktorým mohol útočník získať prístup.
Praktický kontrolný zoznam
Pri práci s Joomla rozšíreniami dodržiavajte tieto pravidlá:
- Inštalujte iba doplnky, ktoré web skutočne potrebuje.
- Uprednostnite oficiálny katalóg JED alebo stránku výrobcu.
- Nepoužívajte nelegálne a upravené verzie platených rozšírení.
- Overte kompatibilitu s verziou Joomla a PHP.
- Skontrolujte poslednú aktualizáciu, dokumentáciu a podporu.
- Pred inštaláciou preverte zoznam zraniteľných a opustených rozšírení.
- Nové doplnky a väčšie aktualizácie testujte na kópii webu.
- Pred zmenami vytvorte kompletnú zálohu.
- Pravidelne kontrolujte dostupné aktualizácie.
- Sledujte platnosť licencií a aktualizačných kľúčov.
- Nepoužívané rozšírenia úplne odinštalujte.
- Veďte si evidenciu doplnkov na všetkých spravovaných stránkach.
- Pri bezpečnostnej chybe reagujte bez zbytočného odkladu.
Záver
Rozšírenia umožňujú prispôsobiť Joomla takmer akémukoľvek projektu, no ich inštaláciou preberá správca webu aj zodpovednosť za ich kontrolu a údržbu.
Bezpečný Joomla web by mal používať čo najmenší počet kvalitných a aktívne podporovaných rozšírení. Doplnky treba získavať z dôveryhodných zdrojov, pravidelne aktualizovať, testovať a po skončení ich používania odinštalovať.
Najväčším rizikom často nie je samotná existencia bezpečnostnej chyby, ale situácia, keď správca o probléme nevie alebo dostupnú opravu dlhodobo nenainštaluje. Pravidelná kontrola rozšírení by preto mala byť rovnakou súčasťou správy webu ako zálohovanie, aktualizácia Joomla a ochrana administrátorských účtov.
