update 25/08/2013
Na nog enkele aanvallen de afgelopen weke hebben de tech-guys bij Stone een mooie oplossing bedacht, die de load van de aanvallen drastisch verkleint op de servers. Je kan alle info nu vinden in deze blogpost van hen. Ook mijn 14 WP-sites zijn ondertussen beschermd met deze oplossing.
Fort Disco Botnet & WordPress Brute Force Aanvallen: wat we zagen en hoe wij ze hebben kunnen afweren http://t.co/vySek5hRIp
— stone.hosting (@stoneis) August 24, 2013
De afgelopen weken is mijn Dailybits.be en nog vele andere wordpress-websites bij o.a. mijn hoster Stone-is een mikpunt van een grootschalige, globale brute force aanval.
Momenteel zijn er massaal veel brute force pogingen op klanten met wordpress sites. Dit zorgt voor exta belasting op onze servers.
— stone.hosting (@stoneis) August 7, 2013
WordPress is meer en meer een dominant platform aan het worden voor het bouwen van websites met een geschat aandeel tot wel 19% van alle websites, die wereldwijd draaien en krijgt daardoor ook steeds meer en meer aandacht van hackers en script-kiddies.
Naast het uitbuiten van gekende security-problemen in oude wordpress installaties (PS: de nieuwste versie Oscar 3.6 is sinds begin augustus te downloaden) zijn Brute-force aanvallen steeds meer een plaag aan het worden voor wordpress-beheerders.
Tijdens een brute-force aanval gaat een geautomatiseerde script-kiddie tool (zoals bvb. WP Brute) op zoek naar wordpress websites om hierop duizenden paswoordcombinaties te gaan afvuren. Naast de kans dat je username/paswoord combinatie wordt gekraakt is er ook nog een performance issue, daar de grootschalige aanvallen zorgen voor onnodige trafiek en gebruik van server-resources.
Momenteel zijn er weer grootschalige aanvallen bezig en verschillende hosting-engineers waren dan ook vannacht een gezellig theekransje aan het houden, tijdens het afslaan van de aanvallen.
@stoneis het leven van een hoster, in het midden van de nacht uit je bed gebeept worden omdat wat kiddies zich vervelen… Same problem here
— Steven Bens (@stevenbens) August 7, 2013
@stoneisstein jep, blijkbaar een globale WordPress scan/brute force attack op wp-login.php.. niet zo fijn hè.. Heb mod_security erop gezet
— Steven Bens (@stevenbens) August 7, 2013
Hoe kan je je beschermen tegen WordPress brute-force aanvallen?
1. Verwijder de admin-gebruiker
Alle WordPress-installaties komen standaard met de admin-user. Vanuit security oogpunt natuurlijk een gevaar, daar ze bij een brute-force aanval, dus meestal reeds de username juist hebben.
Maak dus een nieuwe gebruiker aan met beheerder-rechten, log hiermee aan en verwijder de standaard admin-gebruiker. WordPress zal je vragen of alle blogposts naar die nieuwe gebruiker mogen overgezet worden. Indien je de Yoast SEO plugin gebruikt in combinatie met Google author highlighting, let er dan zeker op, dat je je google+-url opnieuw bij de nieuwe gebruiker invult.
2. Plugin bruteprotect
Na alweer de nodige aanvallen vannacht heb ik deze morgen de plugin Bruteprotect op mijn 14 wordpress-websites geïnstalleerd. Deze plugin gaat ip’s blacklisten, die brute force aanvallen doen. De ip-blacklisting gebeurd in de cloud, zodat gekende ip’s direct voor alle gebruikers van deze plugin worden tegengehouden.
Na amper 1 uur de plugin geïnstalleerd te hebben, zijn de eerste pogingen reeds tegengehouden.
3. wp-login via .htaccess gaan afschermen
Tijdens de aanvallen was 1 van de methodes van Stone-is om de performance van de machines hoog te houden, het afschermen van de wp-login pagina via het .htaccess bestand.
Er zijn verschillende .htaccess voorbeeldscriptjes te vinden, waarmee je dit kan doen of bijvoorbeeld je wordpress admin gedeelte enkel nog toegankelijk te maken vanuit 1 ip-adres.
Toptip Managewp
Het technisch beheer van mijn 14 WordPress website doe ik voornamelijk vanuit het dashboard van ManageWP. Een online tool, van waaruit ik alle versies van wordpress op al mijn sites in minder dan 2minuten heb geupdate of de Bruteprotect plugin direct heb geïnstalleerd over al mijn wordpress-installaties.
Sinds enkele weken hebben ze trouwens een native iOS en Android app, waardoor ik nu on-the-road snel alle plugins kan updaten of spamcomments kan verwijderen.
Zijn er nog WordPress beheerders, die momenteel verhoogde Brute-force aanvallen ondervinden?
Update
Ook Stone-IS heeft een blogpost met alle mogelijke wordpress security tips online geplaatst, na de aanvallen van vannacht.
Het zou blijkbaar om dit “Ford Disco” botnet gaan, die de aanvallen uitvoert.
Hoe zit het eigenlijk met blogs gehost door WordPress zelf, zoals de mijne ? Dit wordt allicht geregeld door WP, maar hoe kan ik weten wat zij er aan doen ? Ongetwijfeld updaten zij mijn gebruikte plugins, en timmeren ze de nodige zaken toe, maar hoe weet ik of ze er wel genoeg aan doen ? En kan ik zelf stappen ondernemen om mijn blog veiliger te maken (ik denk van niet..) ?
WordPress doet daar natuurlijk de nodige monitoring. Hun extra tips:
http://en.support.wordpress.com/security/
Waarom werk je niet met een algemene beveiligingsplugin zoals bv. Wordfence Security of Better WP Security? Deze plugins geven ook enkele andere tips, die je kunt toepassen.
Liefst heb ik plugins zo clean en simpel als het kan. Van die grote wp security plugins lees ik overal performance issues:
http://wordpress.org/support/topic/plugin-wordfence-security-slow
Probleem met al die plugins is dat ze de overbelasting op je server niet kunnen voorkomen ( ik heb ze allemaal uitgeprobeerd ) wat wel helpt is 1 of 2 .htaccess modificaties.
De botnet aanval is gericht op Post requests op je wp-login pagina en je kunt er voor zorgen dat een post request enkel van je domeinnaam komt
RewriteEngine on
RewriteCond %{REQUEST_METHOD} POST
RewriteCond %{HTTP_REFERER} !^http://(.*)?example\.com [NC]
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteRule ^(.*)$ – [F]
Example.com dan veranderen in je eigen domeinnaam
Je kunt er ook (makkelijker) voor zorgen dat requests naar je wp-login enkel via je eigen ip adres komen.
RewriteEngine on
RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR]
RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$
RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$
RewriteRule ^(.*)$ – [R=403,L]
123.123.blabla veranderen in je eigen ip adres.
Oeps..ik zie dat je die htaccess mods al noemt onder punt 3. Doen!
Top tip! Kwam BruteForce recent ergens anders ook al tegen als tip en heb ik nu direct geïnstalleerd.
Daarnaast is ManageWP zeker een aanrader. De gratis trial is voor mij bijna over, maar denk er serieus over na om het aan te schaffen aangezien je daarmee ook direct automatische backups regelt. Naast zoals je al noemt de mogelijkheid om direct alles te updaten van je verschillende websites.
Een gratis variant is http://infinitewp.com/. Met de gratis variant kan je alle websites beheren zoals updaten. Daarnaast heeft het nog een x aantal addons zoals back-up etc.
Bedankt voor de tip van infinitewp. Alles up-and-running in geen tijd. En gratis. Altijd een leuk voordeel 🙂
Herman, nogmaals bedankt voor deze blogpost, een mooie toevoeging op onze communicatie naar onze hostingklanten toe. Ondertussen heeft een merendeel het toegepast.