Securi varuje před novou vlnou masivních brute force útoků na WordPress, které jsou prováděny přes XML-RPC. Vzhledem k tomu, že se jedná o takzvané amplification útoky, měli by zbystřit zvláště ti, kteří používají jednoduchá hesla. Navíc obrana zřejmě nebude tak jednoduchá jak se na první pohled zdá. Ale projeďme si to vše postupně.
XML-RPC
RPC neboli Remote procedure call (vzdálené volání procedur) je komunikace, která umožňuje komunikaci například mezi dvěma programy a to podle standardizovaných pravidel. Samotné požadavky se posílají jako XML (eXtensible Markup Language) a přenášejí přes HTTP. Vše je univerzální takže třeba Drupal může komunikovat s WordPress. Respektive cokoliv může komunikovat z čímkoliv, pokud příjemce podporuje XML-RPC.
Zjednodušeně vytvoříte XML dotaz, který pošlete na soubor xmlrpc.php a on vám vrátí odpověď v XML.
WordPress pro provedení většiny metod vyžaduje login a heslo, jinak vrátí chybu 403.
Brute Force útok
Hádání hesla hrubou silou. Zkouší se různé kombinace hesla. Pokud používáte login admin stačí útočníkovi najít jen správné heslo. Za normálních okolností je limitován pouze výkonem svého stoje a stoje vašeho. Posílá postupně všechny varianty dokud jej nenajde. Proti těmto útokům se používá různá forma ochrany jako je například fail2ban.
Amplification attack
Česky zesílený útok je v podstatě varianta, kdy je možné provést více útoků v jednom dotazu anebo nějaká forma multiútoku.
A jak to tedy zapadá dohromady?
XML-RPC má metodu system.multicall, která umožňuje spustit více metod v rámci jednoho dotazu. Zjednodušeně pošlete XML požadavek obsahující více dotazů a v XML co se vám vrátí dostanete více odpovědí.
Útok tedy probíhá tak, že přes XML-RPC pošleme v jednom XML desítky, klidně i stovky nějakých metod, které vyžadují přihlášení. Soubor xmlrpc.php nám pak u každé metody, kde neseděl login a heslo vrátí 403. U těch, kde bylo správně pak 200.
V podstatě tedy máme tolik možností na tipnutí si hesla, kolik pošleme metod v jednoho XML dotazu a xmlrpc.php.
Jak se bránit
Je třeba deaktivovat xmlrpc.php. Teoreticky jej stačí přejmenovat anebo rovnou smazat. Problém však je, že některé pluginy jej mohou využívat. Jmenovitě například JetPack. Takže je třeba sáhnout po bezpečnostním pluginu, který jej umí vypnout anebo omezit jeho provoz. Například WordPress Simple Firewall anebo iThemes Security. Popřípadě můžete použít přímo plugin Disable XML-RPC.
Originální zdroj: https://blog.sucuri.net/2015/10/brute-force-amplification-attacks-against-wordpress-xmlrpc.html
Tento článek byl byl přečten 3512 krát