Přejít k hlavnímu obsahu

Bezpečnost ve světě Drupalu

V dnešním internetovém světě je otázka bezpečnosti zcela zásadní. Existuje spousta softwaru, který cílí na nezabezpečené formuláře a zcela je zahlcuje obrovským množstvím nesmyslných dat. V tomto díle seriálu tematické moduly si představíme několik nejrozšířenějších možností, jak těmto spam útokům zabránit. Drupal nabízí na výběr z několika větších contributed modulů (oficiální moduly Drupal komunity) a ty pak připojí k webovým formulářům (webformům, registračním formulářům atp.). Spousta těchto modulů je známá i mimo svět Drupalu a je vyvíjena na několik platforem.

Drupal security
Spambot
Obrázek A - Typický spambot

 

CAPTCHA

Nejznámějším zabezpečovacím mechanismem proti spamu je CAPTCHA (completely automated public turing test to tell computers and humans apart). V překladu se jedná o kompletně automatický Turingův test, pomocí kterého oddělujeme počítače od lidí. Turingův test (vytvořen Alanem Turingem v roce 1950) je test, který prověřuje, zda se systém umělé inteligence opravdu chová inteligentně. Zjednodušeně řečeno poté pomocí tohoto testu můžeme oddělit počítače od lidí.

CAPTCHA
Obrázek B - Klasická CAPTCHA

 

Klasická podoba ochrany CAPTCHA na webových stránkách je na obrázku výše. Do Drupalu se dá integrovat pomocí základního modulu CAPTCHA, který lze pak rozšiřovat o další funkcionality (např moduly webform auto captcha, CAPTCHA after....).

reCAPTCHA

Modul využívá reCAPTCHA služby, kterou vydává Google. Tato služba poskytuje velmi dobrou ochranu za pomoci CAPTCHA, ale její nespornou výhodou je také to, že s každou vyřešenou CAPTCHou pomáhá digitalizovat dokumenty, anotovat obrázky a vytvářet datasety pro naučení obrázků. Tato data jsou pak využívána např. v aplikacích pro nevidomé uživatele. Pro administrátora to znamená výbornou ochranu a pro uživatele dobrý skutek navíc.

reCAPTCHA
Obrázek C - reCAPTCHA v klasické formě

 

reCAPTCHA zjednodušená
Obrázek D - Jednoduchá zaškrtávací reCAPTCHA

 

reCaptcha má na rozdíl od klasických podob ještě možnost přečtení textu, refreshe a nápovědy. Jedná se o velmi často užívanou formu ochrany.

CAPTCHA Webform Bridge

Pomocí tohoto modulu lze automaticky připojovat, či vypínat testy typu CAPTCHA (tedy i reCAPTCHA atp.) k formulářům typu webform. Jedná se o jednoduchý modul – pokud je povolen, pak se bude CAPTCHA automaticky přidávat k webformům. Tento modul je velmi často využíván na různých stránkách s větším počtem webform formulářů (např. pravidelné soutěže).

CAPTCHA after

Jedná se o rozšíření, které vytváří CAPTCHA filter pouze na webformech, které byly několikrát po sobě špatně/správně odeslány. V nastavení modulu můžeme zvolit počet po kolika odesláních se bude kontrola zobrazovat. Není nutné modul zapínat pro celé stránky, ale můžeme ho upravit pouze pro některé URL.

DRUPAL bloky
Obrázek E - Moduly v Drupalu jsou jako stavebnice 

 

BOTCHA

BOTCHA je alternativou k modulu CAPTCHA. BOTCHA byla vyvinuta jako reakce na horší uživatelské prostředí modulu CAPTCHA poté, co se spamboti naučili obcházet některé typy tohoto modulu. Vývojáři na to reagovali zvýšením bezpečnosti (delší slova, hůře čitelná...), což mělo za následek špatnou zpětnou odezvu od uživatelů. BOTCHA nechá boty odeslat formulář, ale poté ho vyfiltruje a ponechá pouze lidské odpovědi. Spoléhá především na to, že spamboti jsou obvykle jednoduché skripty a je jednoduché naleznout vzor, podle kterého posílají odpovědi do formuláře. Jakmile je bot zachycen, tak je automaticky zablokován (prevence proti přetížení kvůli velkému množství odpovědí). Největší výhodou je pak především to, že lidští uživatelé tento typ ochrany vůbec nepostřehnou. Jednou z možností obrany je nasazení BOTCHA a zároveň CAPTCHA ochrany. Zajímavostí je, že jedním z prostředků ochrany v modulu BOTCHA je využití ochrany typu HONEYPOT, o které se dozvíte více v dalších částech článku.

BOTCHA výstup
Obrázek F - Výstup modulu BOTCHA

 

MOLLOM

Mollom je efektivní rozpoznávání uživatelů na základě jejich příspěvků na stránkách, reputaci a předchozí aktivitě. Tyto uživatele rozděluje do tří skupin (člověk – HAM, bot – SPAM, není si jist - UNSURE) a následně provádí úkony přiřazené těmto skupinám. V případě rozpoznání člověka ho nechá publikovat obsah a nebude ho v ničem omezovat. Pokud rozezná bota, okamžitě ho zablokuje. Skupině UNSURE pak zobrazí CAPTCHu, kterou má v sobě zabudovanou a následně uživatele rozdělí do skupin HAM (člověk), nebo SPAM(bot).

Schéma Mollom
Obrázek G - Schéma MOLLOM

 

Je to tedy takový kompromis mezi tvrdým řešením typu zobrazovat CAPTCHA všem a měkkým řešením – nezobrazovat ji nikomu (a filtrovat uživatele jiným způsobem).

Spam module

Tento modul je dostupný pouze pro zastaralou verzi Drupalu (Drupal 6.x). Spam filter je poskládání několika služeb, které detekují a blokují spam na celém webu. Výhodou je, že není potřeba spoléhat se na externí programy. Modul automaticky vyhledává podezřelý obsah, url a poté administrátorům pošle notifikaci o tom, že je tento obsah blokován. Modul využívá několika filtrů:

Bayesian filter 

Custom filter 

URL limiter 

SURBL 

Node age filter 

Duplicate filter

SPAM
SPAM!

 

Honeypot

Modul Honeypot používá dvou metod ke zjištění nechtěných programů (Honeypot a Timestamp). Metoda Honeypot je vlastně past na boty, která využívá toho, že boti útočí na formuláře, ze kterých mají prospěch. Tyto formuláře jsou pro uživatele skryty, ale boti je často vidí a vyplňují do nich vesele hodnoty. Vyplnění hodnot pak způsobí sklapnutí pasti a bot je zablokován. Metoda Timestamp využívá toho, že se boti snaží vyplnit v co nejkratším čase co nejvíce formulářů. Skutečným uživatelům vyplnění formuláře trvá minimálně několik vteřin. Tímto způsobem se pak dá odlišit uživatel od bota.

Honry pot ochrana
Obrázek I - Past typu honey - pot

 

Terminátor bot
Obrázek J - Terminátor bot se letí chytit do pasti

 

Antispam module

Modul se vyvinul z externího antispamového řešení Akismet. Akismet sbírá data ze všech webů, kde je nasazen a podle nich pak určuje kdo je spamer a kdo reálný uživatel. Antispam podobně jako Akismet využívá externí služby na detekci spamu. Výhodou tohoto modulu je možnost vybrat si externí službu na detekci spamu. Na výběr je Akismet, Type Pad Antispam a Defensio. Modul v sobě také obsahuje pomocný submodul, který na základě informací z filtru (množství publikovaného obsahu) dává uživateli specifické role. Těmto rolím se pak filtr může v klidu vypnout.

Který modul je tedy nejvýhodnější?

V článku jsme si představili několik možností, jak se chránit proti spamu a botům, kteří dokáží velmi znepříjemnit život každému administrátorovi. Jak je z článku patrné, tyto možnosti se v zásadě dělí na dvě hlavní kategorie – uživatel vidí ochranu a „otravuje“ mu život, uživatel ochranu nevidí a je spokojený. Pro většinu modulů z toho nakonec vyplynulo, že je třeba kompromis mezi těmito kategoriemi. Tato řešení jsou pak tvořena „tvrdou“ ochranou (např. typu CATPCHA) a „měkkou“ ochranou (např. typu Honeypot). Pro většinu webů se obvykle používá ochrana CAPTCHA hlavně díky její spolehlivosti a nenáročnosti. V dnešní době je ale lepším řešením spojit tento typ ochrany se sofistikovanějším řešením. Poté budou šťastní jak návštěvníci webu, kteří již nebudou muset pořád luštit klikiháky v poli, tak i administrátoři, kteří se nebudou muset probírat nepřeberným množstvím nesmyslných odpovědí. 

 

Zajímá vás problematika tematických modulů? Přečtěte si 2. část!