Je Drupal je najbezpečnejší open-source CMS?

Peter Pokrivčák's picture

Peter Pokrivčák

CEO

Asi by som mohol robiť aj niečo iné. Ale internet ma opantal a už nepustil.

Letmé porovnanie bezpečnosti voľne dostupných redakčných systémov.

Na úvod mi dovoľte venovať sa hlavne dvom open-source redakčným systémom (CMS) z nich - Wordpressu a Drupalu. Dávnejšie sme sa venovali aj Joomle, ale je to minulosť a TYPO3 obchádzam s rešpektom, takže hlavné slovo bude mať Drupal a Wordpress.

Celá téma je ako reťaz,má viac navzájom súvisiacich ohniviek a treba sa venovať každému z nich.

Open-source vs vlastné CMS

O výhodách používania open-source sa popísalo veľa, je to filozofická otázka prístupu k projektom aj ku klientovi. Ak vás ako klienta presvedčil dodávateľ na jeho vlastné riešenie, je podla mňa dobrý obchodník. Nenápadne vytvoril vašu závislosť od jeho služieb. Ak má jeho systém bezpečnostnú  chybu, nemusíte na ňu prísť niekoľko rokov ak vôbec. Pri niekoľkých desiatkach inštalácií webstránky by to bola skôr náhoda alebo veľký amaterizmus. Veľké CMS sú na tom rádovo inde, pri státisícoch projektov je každé riziko problém veľkého počtu ľudí. Veľa inštalácií znamená veľa testovaní a zároveň veľa pokusov o zlomenie systému. Celkom sa bavím pri čítaní serverových logov Drupal projektu ako roboty úplne pravidelne volajú prihlasovaciu linku z Wordpressu (/wp-login.php).

Tlaky na vyriešenie problému sú obrovské.

Najlepšie je, že pri open-source sa problém skôr či neskôr vyrieši “sám” (viď ďalší odstavec).

 

Bezpečnosť jadra CMS

Našťastie Drupal  a Wordpress po rokoch vývoja priplávali do relatívne bezpečných vôd a ich jadrá sú pri dodržaní základných pravidiel pomerne v poriadku. Oba majú zriadené bezpečnostné tímy a procesy, pomocou ktorých sa dajú problémy reportovať a aj riešiť (Drupal, Wordpres ). Niekoľko krát do roka vychádza bezpečnostná aktualizácia, ktorú netreba ignorovať. V minulosti sa stalo, že aj hlavné verzie mali principiálny problém a niekoľko mesiacov bol web úplne otvorený (SQL injection).

Najčastejšie problémy webstránok platia všeobecne:

  • SQL Injection - databázové dopyty posielané z používateľského vstupu

  • Cross Site Scripting (XSS) -  upravený výstup do prehliadača cez modifikovanú URL (napríklad cez jQuery, WYSIWYG)

  • Cross Site Request Forgery (CSRF) - odosielanie príkazov napr. cez adresy obrázkov, vstupov z formulárov a podobne

 

Tieto kritické miesta majú oba systémy už za sebou. Minimálne v okruhu Drupalistov (WP neviem) sa téma bezpečnosti riešila na každom stretnutí komunity - konferencii, DrupalCampe, DrupalCone a musím povedať chvála Bohu! Aj vďaka tomu môžme lepšie spávať.

 

Aktualizácia pluginov sa deje pár klikmi.
Pri security update jadra vám v ideálnom prípade mail o úspešnom upgrade systému.

Treba mať zapnutý modul “update manager”,  aby vám chodili notifikácie o potrebe aktualizácie. Update si urobíte manuálne (FTP, drush), alebo dostávať bezpečnostný newsletter.

 

Bezpečnosť externých modulov a knižníc

Všetky CMS ponúkajú tisíce voľných alebo spoplatnených modulov a pluginov. Aj ich nesprávna voľba môže vážne narušiť bezpečnosť celej stránky. Mnohé z nich používajú navyše externé knižnice, ktoré môžu obsahovať škodlivý kód.

Oba systémy majú zadefinované ‘best practices’ pre vývojára modulov, ktoré sú podmienkou pri schvaľovaní kódu. Samotné schvaľovanie nie je jednoduché a trvá dlho. Z časti pomôžu automatické validátory kódu, ktoré odhalia základné chyby (syntax, formát, bezpečnosť), ale finálny krok je na komunite vývojárov.

 

 

Prepracovaný postup vytvárania Drupal modulov https://www.drupal.org/node/1011698.

Zaujímavý je koncept vzájomného schvaľovania modulov - Bonus Program,  je to systém kontroly, kde ak ja skontrolujem minimálne 3 ďalšie projekty a minimálne traja iní skontrolujú môj projekt, proces sa tak urýchli a skvalitní.

Celkom potešujúci je aj projekt  http://pareview.sh/, kde sa dajú kontrolovať a testovať celé repozitáre v sandboxe.
 

Postup pri pridávaní pluginov https://wordpress.org/plugins/about/

 

Wordpress rieši hlavne právne otázky, bezpečnosť až tak nie.

Externé knižnice (javascript, php) sa nahrávajú do špeciálneho adresára “libraries”, ktorý je určený len na čítanie.

Nahrávaju sa do wp-content adresára spolu s ďalšími zdrojmi, čo môže byť problém.

 

Chybná konfigurácia CMS

Toto je veľký problém administrátorov webstránok a veľká bezpečnostná diera.

Všetci klikači, občasní implementátori sypte popol na hlavu. Triviálne hesla pre klientov (veď si ich neskôr zmenia), benevolentné nastavenie právomocí v rámci redakčného systému, chýbajúca antispam / boot ochrana, nesprávne nastavenie práva na zápis do adresárov, možnosť čítania settings / config súboru s prístupom do databázy - to sú tie najväčšie chyby, ktoré vás, skôr, či neskôr dobehnú.  

Drupal má hneď niekoľko pomôcok. Priamo v kontrole stavu Drupal inštalácie vám vyskočia hlavné problémy (napr. vyšsie spomenuté write permissions). Komu to nestačí - môže použiť moduly Security review alebo Hacked na hlbšiu kontrolu zabezpečenia webu. Aj v rámci Drupalu existujú platené služby a DropGuard je jednou z nich, ktorá udržuje váš web v dobrej kondícii https://www.drop-guard.net/.

Wordpress má na to tiež modul WP Security Scan alebo platené služby. V tomto ohľade musím pochváliť server administrátorov Websupportu, ktorý pripravili pre svojich klientov Virus Scanner, ktorý funguje celkom spoľahlivo. Predpokladám, že chceli uľahčiť život klientom ale hlavne sebe : ).   

Asi ste zažili zdesený telefonát od klienta, že mu Websupport posielam mail, že má napadnutú stránku. Toto funguje.

 

Najväčším problém - aktualizácia

Pre klientov:  Vrelo odporúčam dohodnúť sa dodávateľom po odovzdaní projektu, nech sa vám o web naďalej stará.Tých pár Eur mesačne zvládnete, rozhodne to vyváži možné riziko.

Pre dodávateľov: Vrelo odporúčam dohodnúť sa s klientom, že mu za pár EUR budete webstránku pravidelne aktualizovať, vyhnete sa tak veľkej blamáži.

Asi ste zaregistrovali kauzu posledných týždňov - Panama papers, obrovský únik tajných informácií a dokumentov z daňového raja. Mohli za to vraj okrem Putina neaktualizované verzie Wordpressu a Drupalu. Miliónová firma si nevedela zabezpečiť aktualizácie za pár EUR. Ak to aj bolo inak, je to výstraha pre všetkých.

Viac o téme:

Tips&Tricks na záver

Existuje zopár rád, ktorými sa odporúčam držať, okrem vyššie spomenutého.

Dôležitá je voľba dôveryhodného modulu - pluginu. Treba sa orientovať podľa počtu stiahnutí, hodnoteniu, frekvencie aktualizácií, prípadne zoznam a riešenie chýb.

Ak to CMS podporuje, je dobré nepoužívať predvolené nastavenia. Napríklad Drupal ukladá nahrané obrázky a prílohy do adresára “sites/default/files”, ale ľahko to môžete umiestniť hocikde inde. Podobne to je s adresárom “private”, kde sa ukladajú privátne prílohy, môžete ho nazvať a umiestniť hocikde inde.

Odporúčam si prejsť aj tieto typy na udržanie Drupalu v kondícii https://www.acquia.com/blog/keeping-drupal-secure, vrátane infografiky update cykloch.

Bezpečnosť open-source redakčných systémov je otvorená téma. Kto má záujem sa o problematike dozvedieť viac, prípadne si vydiskutovať problémy osobne, najbližšia príležitosť je už v sobotu 28.5.2016 na československom DrupalCampe, kde bude mať prednášku aj bezpečnostný expert Drupal.org Gábor Hojtsy, aktuálny člen Drupal Security teamu a bývalý leader php.net (a doteraz patrí medzi najdôležitejších editorov - zdroj: http://php.net/manual/en/preface.php ).   

V bezpečnostnom porovnaní Drupal vs Wordpress mi osobne vychádza lepšie Drupal. Súdiac aj podľa počtu požiadavkov na záchranu webstránok (Drupal už dávno nie, Wordpress niekoľko krát do roka).

Posolstvo na záver: Aktualizujte!

PS. Vidíme sa na DrupalCampe.

 

Povedali o nás

Moju základnú myšlienku projektu dokázali HalfPixel dopracovať do finálnej podoby.

Richard Rybnicek, pozdravdoneba.sk

Nachádzate sa v okolí?

Ak ste neďaleko, príďte nás navštíviť.

Kontakt