• Thaalpad 37, 6102 EH Echt
  • 085 – 536 00 00

WordPress – Brute force aanvallen via xmlrpc.php nog altijd zeer populair.

Wij krijgen wekelijks meldingen van klanten met WordPress websites dat hun website traag of niet meer reageert. In de meeste gevallen gaat het om misbruik van het xmlprc.php bestand welke WordPress gebruikt voor interactie met WordPress via API’s door middel van RPC’s (Remote Procedure Calls over HTTP). Enkele onderdelen die gebruik maken van xmlrpc.php zijn:

  • Trackbacks en Pingbacks vanuit andere websites
  • JetPack plugin
  • WordPress app om via de smartphone de website te onderhouden

XML-RPC functionaliteit is sinds het prille begin van WordPress reeds aanwezig, echter was deze functionaliteit standaard uitgeschakeld tot versie 3.5 en kon men kiezen om deze functie in te schakelen. Tegenwoordig staat deze functie standaard aan.

Het mechanisme van XML-RPC kan misbruikt worden om een enorme brute force aanval op uw website te doen. Bij ‘standaard’ brute force aanvallen kan men slechts 1 wachtwoord aanbieden per keer. Echter door misbruik van een functie, genaamd system.multicall, binnen XML-RPC kan een aanvaller een enorme boost aan deze brute force aanval geven. Hierdoor kan de aanvaller probleemloos honderden tot wel duizend wachtwoorden per keer (per aanroep) proberen!!

Hieronder een screenshot van een aanval welke wij succesvol hebben kunnen onderscheppen voor een bekende Nederlandse Blog website. Tijdens deze aanval werden per aanroep 350 wachtwoorden aangeboden.

Webservers kunnen hiervan behoorlijk hinder ondervinden, met name wanneer meerdere WordPress websites op een webserver tegelijkertijd worden aangevallen. Er ontstaat dan een hoge load en deze load kan zelfs resulteren in het onbereikbaar raken van de webserver/service. Vandaag de dag worden deze aanvallen dan ook amper gebruik om een login te kunnen achterhalen, maar meer om websites/webservers onbereikbaar te maken.

Wij adviseren gebruikers om de mogelijkheid tot het gebruik van XML-RPC daarom uit te schakelen. In de meeste gevallen kan dit zonder problemen. Het verwijderen van het bestand is niet voldoende en raden we ook verder af. De aanvragen zullen evengoed blijven binnenkomen en worden afgehandeld door de webserver, echter resulteert dit een 404 error (pagina niet gevonden).

Wat kunt u doen:

XML-RPC aanvragen blokkeren op Apache webserver niveau (httpd.conf) of middels .htaccess in uw WordPress installatie hoofdmap:

# Blokkeer XML-RPC aanvragen
<
Files xmlrpc.php>
    Order Deny,Allow
    Deny from all
</Files>

XML-RPC aanvragen blokkeren op NGINX webserver niveau:

location = /xmlrpc.php {
deny all;
return 444;
}
De 444 response zorgt ervoor dat NGINX de connectie direct afkapt zonder verdere response om verdere belasting te voorkomen.

Uitschakelen van XML-RPC met behulp van een WordPress plugin

  1. Disable XML-RPC plugin
  2. iThemes Security (voorheen Better WP Security)
De eerste plugin is het makkelijkste (enkel installeren en activeren), de tweede plugin benodigd extra configuratie om XML-RPC uit te schakelen. Het grote voordeel van iThemes Security plugin is dat WordPress websites een verhoogde beveiliging standaard krijgt. Wij raden daarom optie 2 aan.
Hieronder enkele screenshots hoe u iThemes Security plugin kunt instellen om XML-RPC aanvragen uit te schakelen, na het activeren van de plugin:
Stap 1:
Stap 2:
Stap 3: