WordPress WebsiteHet Internet Storm Center (ISC) maakte op 22 juli melding van een verhoogde bruteforce-activiteit op WordPress websites. Deze aanval richt zich op het xmlrpc.php-bestand van WordPress en probeert wachtwoorden te achterhalen via de wp.getUsersBlogs-functionaliteit. Lees hier meer over deze kwetsbaarheden, aanvallen en wat jij ertegen kunt doen om jouw website te beschermen.

WordPress xmlrpc.php aanval

Deze xmlrpc.php-aanval is versie-onafhankelijk. Wij zien dit bij WordPress-versies 3.0.2 tot en met 3.9.1. Onze systeembeheerder Jan Reilink heeft eerder hierover al geblogd op zijn website saotn.org. Jij kunt jouw website eenvoudig beschermen tegen deze aanvallen. Hoe? Download het wp-config.php en .htaccess-bestand van jouw website(s). Als je de WP_CRON functionaliteit van WordPress niet gebruikt, plaats in het wp-config.php bestand dan het volgende:

define('DISABLE_WP_CRON', 'true');

doe dit direct onder

define('WP_DEBUG', false);

Als je niet zeker weet of je de WP_CRON-functionaliteit gebruikt, dan gebruik je het hoogstwaarschijnlijk niet.

Tip: Staat WP_DEBUG op true, zet deze dan op false.

In het .htaccess-bestand kun je plaatsen:

RewriteCond %{HTTP_USER_AGENT} .*WinHttp.WinHttpRequest.* [NC]
RewriteRule .* - [F,L]

Onderzoek van Vevida heeft uitgewezen dat de User-Agent “Mozilla/4.0+(compatible;+Win32;+WinHttp.WinHttpRequest.5)” het meeste gebruikt wordt in deze aanvallen. Bovenstaande .htaccess-regels matchen op “WinHttp.WinHttpRequest” en alles wat ervoor of erachter staat. Deze bezoekers (aanvallers) worden dan de toegang tot jouw website ontzegt.

Om het xmlrpc.php bestand verder te beveiligen, én om jouw website te beschermen tegen reactiespam, kun je in het .htaccess-bestand opnemen:

RewriteCond %{REQUEST_METHOD} POST [NC]
RewriteCond %{REQUEST_FILENAME} (xmlrpc|wp-comments-post|wp-trackback)\.php [NC]
RewriteCond %{HTTP_REFERER} !^http://(www\.)?example.com [NC]
RewriteRule .* - [F,L]

vervang hierin example.com door jouw eigen domeinnaam. Wat deze regels doen is het volgende: op de bestanden xmlrpc.php, wp-comments-post.php en wp-trackback.php wordt gecontroleerd of degene die informatie verstuurt via een POST-opdracht (bijvoorbeeld een reactie of comment) wel eerst op jouw website is geweest en dat meestuurt als REFERER. Is dat niet het geval dan wordt dit verzoek geblokkeerd.

Let op: het doel van XMLRPC is juist externe communicatie, bijvoorbeeld trackbacks, pingbacks en Jetpack of het toevoegen van berichten via de WP app of Windows Live Writer. Dit wordt hiermee onmogelijk gemaakt.

In plaats van bovenstaande RewriteCond en RewriteRule kun je ook het volgende in het .htaccess-bestand plaatsen om de toegang tot xmlrpc.php te blokkeren:

# XMLRPC aanvragen blokkeren
<Files "xmlrpc.php">
Order Allow,Deny
deny from all
</Files>

Als je liever een IIS web.config configuratiebestand gebruikt, voeg de volgende code toe op de juiste plek:

<security>
  <requestFiltering>
    <denyUrlSequences>
      <add sequence="xmlrpc.php" />
    </denyUrlSequences>
  </requestFiltering>
</security>

WordPress XMLRPC-functionaliteit uitschakelen

Het xmlrpc.php bestand is zo verweven in WordPress dat je dit bestand niet kunt verwijderen. Met bovenstaande maatregelen is jouw website al redelijk goed beveiligd. Je kunt daarnaast ook specifieke XMLRPC-functies uitschakelen. Je doet dit in het functions.php-bestand van jouw actieve thema. Neem daarin op:

add_filter('xmlrpc_methods', function($methods) {
  unset($methods['wp.getUsersBlogs']);
  return $methods;
});

om de wp.getUsersBlogs functionaliteit uit te schakelen, of

add_filter('xmlrpc_methods', function($methods) {
  unset($methods['pingback.ping']);
  return $methods;
});

om de pingback.ping functionaliteit uit te schakelen (deze wordt gebruikt voor WordPress “Pingback” DDoS-aanvallen op andere sites), of gecombineerd:

add_filter('xmlrpc_methods', function($methods) {
  unset($methods['wp.getUsersBlogs']);
  unset($methods['pingback.ping']);
  return $methods;
});

Meer informatie over de functionaliteit van XMLRPC in WordPress vind je in de Codex.

Nieuwe, onbekende WordPress-aanval maakt sites stuk

Eveneens gisteren meldde Sucuri – een bekend WordPress beveiligingsbedrijf – dat er een nieuw en nog onbekende aanval op WordPress websites rond gaat. Op een nog onbekende manier wordt malware-code toegevoegd aan WordPress-bestanden, zoals wp-config.php.

Als een geluk bij een ongeluk is de kwalijke code van dusdanig slechte kwaliteit dat deze vaak een website stukmaakt en daardoor niet voor verdere overlast zorgt (denk aan het doorsturen van bezoekers naar externe websites met virussen of reclame).

TimThumb WebShot maakt uitvoer willekeurige PHP-code mogelijk

Een andere kwetsbaarheid die recentelijk werd ontdekt, is die in Timthumb. Timthumb wordt in veel thema’s gebruikt voor het weergeven van afbeeldingen, vaak in een mooi uitziende lightbox.

De kwetsbaarheid in TimThumb maakt het voor aanvallers kinderlijk eenvoudig om PHP-bestanden te plaatsen en/of uit te voeren op jouw website. Met alle nare gevolgen van dien. Ook deze kwetsbaarheid werd gemeld door Sucuri.

Om misbruik van dit lek tegen te gaan moet je er zeker van zijn dat jouw thema de meest recente versie van TimThumb gebruikt (of liever helemaal niet), en voorzien is van de code

define ('WEBSHOT_ENABLED', false);

Vevida helpt je graag met de beveiliging van jouw website

Met regelmaat plaatsen wij nieuws- en helpartikelen die betrekking hebben op beveiliging, bijvoorbeeld WordPress beveiligen. Heb je over dit alles vragen? Neem dan gerust contact op met onze klantenservice. Wij helpen je graag.

Over het ISC
Het ISC bestaat sinds 2001. Het is opgericht ten tijde van de verspreiding van het Li0n wormvirus, toen een aantal beveiligingsexperts (allen SANS GIAC gecertificeerd) bij elkaar kwam en dit wormvirus analyseerde en in samenwerking met internet service providers de verspreiding ervan tegen ging.