You are here: Home » WordPress » DoS na WordPress pomocí dlouhých hesel

DoS na WordPress pomocí dlouhých hesel

Před pár dny vyšla nová aktualizaci WordPress 4.0.1, který opravila několik bezpečnostních děr. Spíše než bezpečnostní díry je lepší použít potenciálně zneužitelné slabiny. Samotný WordPress je totiž velmi dobře zabezpečený a dostat se do něj rozhodně není jednoduchou záležitostí a to dokonce i v porovnání s komerčními řešeními. Jednoduše řečeno pokud se chce útočník dostat do systému potřebuje trochu pomoct od administrátora. Například aby spustil nějaký kus kódu, který mu nenápadně podstrčí.

Právě jedna takováto bezpečnostní slabina byla poměrně rychle záplatována ve verzích 3.x. Jednalo se chybu ve zpracování komentářů (WordPress 4.x už řeší vkládání komentářů trochu jinak).  Ta umožnila vložit i přes velmi vysoký stupeň zabezpečení nebezpečný javascript. Ten si pak musel administrátor prohlédnout například při schvalování a pomocí XSS (cross site scripting) pak mohl být například vytvořen nový administrátorský účet. Do detailů to rozebral bezpečnostní expert Jouko Pynnonen ve svém článku, kde vysvětlil, že funkce wptexturize() za určitých okolností nedokáže převést nebezpečný kód na text.

Přeštěte si   WordPress v roce 2016

Mezi další záplaty patří ještě tři další XSS. V jednom případě jde o takzvaný CSRF (cross site request forgery) útok, kde v podstatě předem připravený požadavek s instrukcemi odešle přihlášený uživatel aniž by o tom vědět. Například si změní heslo. Detailní rozpis všech aktualizací najdete na stránkách separatista.net.

DoS útok pomocí WordPress

Zajímavější je však jiná chyba, která umožňovala provádět takzvané DoS útoky. DoS neboli Denial of service je druh útoku jehož úkolem je vyřadit z provozu web pomocí vyčerpání serverových prostředků. Ve většině případů se projevuje dlouhým načítáním a náhodnými chybami 503.

Každý server či spíše webhosting má vyčleněné určité zdroje. Například máte k dispozici 5 vláken na vykonávání skriptu. Pokud se stránka se skriptem vygeneruje za 0,5 vteřiny tak za vteřinu zvládne jedno vlákno obsloužit dva požadavky a pět vláken celkem 10 požadavků za vteřinu. Pokud však existuje stránka, která se generuje pomaleji (například vyhledávání produktů v eshopech) třeba 2 vteřiny, tak se zablokuje jedno vlákno na delší dobu (2 vteřiny). Útočníkovi pak stačí zacílit útok na takto náročnou stránku a neustále jí zahlcovat požadavky. Teoreticky by mu stačilo mačkat v našem případě 5x refresh během 2 vteřin a webhosting by byl vyřazený z provozu. Proto také používáme cachovací pluginy, které podobnému problému předchází pomocí předgenerování stránky.

Přeštěte si   WordPres 4.8

Ve WordPress se však nacházela jedna slabina u které by vám ale cachování nepomohlo. V případě velmi dlouhých hesel totiž hashovací algoritmus WordPress spotřebovával viditelně více času. Hashování hesel je jednosměrné šifrování hesel, aby se do databáze neukládala hesla v čitelné podobě, protože pokud by někdo získal přístup do databáze, tak by se je dozvěděl a mohl je využít i jinde, pokud používáte třeba stejné.

Tento problém nevedl jen k DoS útokům ale třeba se podle toho dalo poznat i zdali existuje přihlašovací jméno. WordPress totiž píše že je neplatné heslo anebo login. Takže útočník musí uhádnout jak přihlašovací jméno tak i heslo. Což v podstatě eliminuje možnost brute force útoků. Jenomže pokud jste zadali správný login a extrémně dlouhé heslo, tak útočník podle dlouhé reakce přihlašování poznal, že má správný login.

Přeštěte si   Klávesové zkratky, které ulehčí psaní příspěvku ve WordPress

Největší problém byl ale v DoS útocích, které takto jednoduše mohl provádět i úplný amatér oproti ostatním potenciálně nebezpečným útokům, na které jsou nutné velmi vysoké znalosti.

Výhodu samozřejmě měli ti z vás, kteří používají nějaký bezpečnostní plugin, který právě přihlašovací formulář anebo celou administraci chrání. Například pomocí omezení IP adres, které mají přístup do adresáře s administrací. Tam se jakýkoliv takovýto DoS útok okamžitě zastaví už u serveru a prakticky nespotřebuje žádný výkon.

Share Button

Programuju v PHP už několik let spíše pro zábavu. Baví mě WordPress, protože tak lenivým lidem jako jsem já ušetří spoustu času. A rád sbírám reklamní flash disky. Tento blog používám pro utřídění myšlenek.

http://n-host.cz

Napsat komentář

Vaše emailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *