Word­Press schützen

wordpress_logo_100x100_a78255fc17f2edb392d6f49146ec6d5aZuge­ge­ben, die wenigs­ten pri­va­ten Inter­net­nut­zer haben eine eigene Web­seite, aber den­noch geht der Trend mehr und mehr in diese Rich­tung. Unab­hän­gig vom Sinn und Zweck, wer­den heut­zu­tage Web­sites gerne und vor allem “eben mal schnell” erstellt. CMS macht´s ja mög­lich! CMS steht für “Content-Management-System” und bedeu­tet soviel wie “Inhalts­ver­wal­tungs­sys­tem”. Dadurch ist es mit ein wenig Geschick und Ver­ständ­nis ganz ein­fach eine rela­tiv gute Web­seite zu erstel­len. Da ein Teil der gro­ßen Inter­net­ge­fah­ren von Ser­vern aus geht, befas­sen wir uns hier mit dem Schutz von Web­sei­ten die auf Word­Press basieren.

Word­Press ist eines der belieb­tes­ten Content-Management-System, aber abge­se­hen davon exis­tie­ren auch viele wei­tere, z.B. Joomla, Dru­pal, TYPO3, usw. Word­Press wird inzwi­schen für rund 50–60% aller Web­sei­ten genutzt. Der große Vor­teil: Es gibt viele Anlei­tun­gen, kos­ten­lose Erwei­te­run­gen (Plugins) und unzäh­lige The­mes (Desi­gnvor­la­gen). Word­Press ist zudem Open­Source und frei ver­füg­bar — für pri­vate und kom­mer­zi­elle Zwecke.

Durch die große Beliebt­heit von CMS bzw. Word­Press ist es auch ein gerne genutz­tes Angriffs­ziel. Immer häu­fi­ger sind Word­Press Instal­la­tio­nen Opfer von Cyber­an­grif­fen, zuletzt im April 2013 durch ein gro­ßes Bot­netz­werk. Das ganze funk­tio­niert rela­tiv ein­fach, denn der Auf­wand muss gegen­über dem Nut­zen im Ver­hält­nis ste­hen und für den Angrei­fer ren­ta­bel sein. Für uns bedeu­tet das nun, dass wir es dem Angrei­fer zwar nicht unmög­lich machen kön­nen, aber eine ca. 90%ige Sicher­heit her­stel­len kön­nen. Damit wir das errei­chen, kön­nen wir zum einen die Login-URL (Stan­dard: “http://www.Name-deiner-Webseite.de/wp-login.php”) und den Namen des Admi­nis­tra­tors (Stan­dard: “Admin”) ändern. Damit las­sen sich bereits viele Angrei­fer abweh­ren, denn die meis­ten erfol­gen auto­ma­ti­siert. Nach­fol­gend werde ich ein paar Tipps zei­gen, die man in sei­nem WordPress-Blog auch ohne gro­ßes Hin­ter­grund­wis­sen anwen­den kann.
 
 
Glie­de­rung:
1. Absicht eines Cyber­an­grei­fers
2. Regel­mä­ßige Aktua­li­sie­run­gen
3. Benut­zer­na­men
4. Pass­wort
5. Öffent­li­ches WLAN
6. Secu­rity Plugins
7. Tabel­len Prä­fix
8. Log­in­ver­su­che und Feh­ler­mel­dung begren­zen
9. wp_config.php ver­schie­ben
10. Spar­sa­mer Umgang mit Plugins
11. Geän­derte Stan­dard­pfade
12. htac­cess für das Backend
13. Zwei-Faktor-Authentifizierung
14. Back­ups
 
 


1. Absicht eines Cyberangreifers

Ich per­sön­lich würde es mir so ein­fach wie nur irgend­wie mög­lich machen und ein­fach die Stan­dar­d­an­ga­ben nut­zen. Damit muss ich nur noch das Pass­wort “erra­ten” und erhalte den vol­len Zugriff auf die Web­seite. Dabei geht es nicht um die Web­seite selbst, son­dern nur um den Erfolg. Wel­che Web­seite dann letzt­end­lich meine Mal­ware ver­teilt kann mir als Cyber­kri­mi­nel­ler egal sein — je mehr Web­sei­ten ich unter mei­ner Kon­trolle bekomme, umso bes­ser!
 

 


2. Regel­mä­ßige Aktualisierungen

Einer der ein­fachs­ten Tipps sind Aktua­li­sie­run­gen: Word­Press selbst, aber auch Plugins und ggf. The­mes! Word­Press ver­teilt häu­fig neue Ver­sio­nen und rea­giert damit zügig auf neu ent­deckte Sicher­heits­lü­cken, daher ist es abso­lut not­wen­dig diese auch ein­zu­spie­len! Sicher­heits­hal­ber sollte man dazu vor­her ein Backup anle­gen, dazu aber mehr im letz­ten Tipp.
 

 


3. Benut­zer­na­men

Bei einer fri­schen Word­Press Instal­la­tion kann man inzwi­schen einen indi­vi­du­el­len Benut­zer­na­men ver­ge­ben — ältere WordPress-Installationen hat­ten diese Funk­tion nicht und ver­ga­ben auto­ma­tisch den Benut­zer­na­men “Admin”. Alle Benut­zer­na­men in Form von Admin, Admi­nis­tra­tor, o.ä. müs­sen gemie­den wer­den. Wer bereits Word­Press ein­setzt, muss einen neuen Benut­zer ver­ge­ben, ihm die Admi­nis­tra­tor­rechte zutei­len und den “alten” Admi­nis­tra­tor löschen. Beim Lösch­vor­gang wird man gefragt was mit den Bei­trä­gen des “alten” Benut­zers pas­sie­ren soll. Dort kann man dann alle bis­he­ri­gen Bei­träge an den neuen Benut­zer über­tra­gen. Sinn­voll ist es auch, wenn Admi­nis­tra­tor und Autor getrennt wer­den. Für die Zukunft schreibt und kom­men­tiert man alle Bei­träge mit dem “Autor-Konto” und nutzt das Administrator-Konto nur noch für die Ver­wal­tung von Word­Press selbst.
 

 


4. Pass­wort

Wie immer ist das Pass­wort ein wei­te­rer wich­ti­ger Fak­tor für die Sicher­heit. Es muss nicht unbe­dingt “kryp­tisch” sein (z.B. 3*#;0/Qf”§fWEtr/4), Haupt­sa­che die Länge stimmt (ab 16-Stellen) und man fin­det es nicht in einem Wör­ter­buch. Das Thema wurde ja bereits hier und hier aus­führ­lich beschrie­ben.
 

 


5. Öffent­li­ches WLAN

Wenn ihr auch gerne mal im Lieb­lings­café sitzt und dabei Arti­kel für euren Blog ver­fasst, dann sollte man nur eine ver­schlüs­selte Ver­bin­dung (SSL/TSL) nut­zen und für den FTP-Client sollte man inzwi­schen sowieso aus­schließ­lich SFTP ver­wen­den. Damit ist die Ver­bin­dung auch über FTP ver­schlüs­selt. Lei­der sind SSL-Zertifikate nicht kos­ten­los, daher muss man dafür etwas in Porte­mon­naie grei­fen. Fragt am bes­ten bei eurem Hos­ter nach, ob auch SSL-Zertifikate genutzt wer­den kön­nen. Even­tu­ell benö­tigt ihr dafür ein höher­wer­ti­ges Hosting-Paket.
 

 


6. Secu­rity Plugins

Durch den Ein­satz von s.g. Secu­rity Plugins las­sen sich viele Tipps auch mit weni­gen Maus­klicks umset­zen. Beliebt und bekannt sind dafür z.B. iThe­mes Secu­rity (ehe­mals Bet­ter WP Secu­rity) oder Bul­let­Proof Secu­rity, es gibt natür­lich viele wei­tere auch kos­ten­lose Secu­rity Plugins.
 

 


7. Tabel­len Präfix

Word­Press nutzt für die Daten­bank einen Prä­fix (Stan­dard: “wp_”) z.B. “wp_posts” oder “wp_users”. Eine Ände­rung des Prä­fi­xes bewirkt einen wei­te­ren wirk­sa­men Schutz vor Angrif­fen. Secu­rity Plugins wie z.B. iThe­mes Secu­rity (ehe­mals Bet­ter WP Secu­rity) ändern die­sen mit nur einem Maus­klick.
 

 


8. Log­in­ver­su­che und Feh­ler­mel­dung begrenzen

Stan­dard­mä­ßig sind in Word­Press unzäh­lige Log­in­ver­su­che mög­lich. Durch die Begren­zung und ggf. IP-Sperre kann es dem Angrei­fer ziem­lich schnell lang­wei­lig wer­den, da er eine bestimmte Zeit zwi­schen den Log­in­ver­su­chen abwar­ten muss. Durch die Unter­drü­ckung von detail­lier­ten Feh­ler­mel­dun­gen beim geschei­ter­ten Log­in­ver­such ver­mei­det man die Bekannt­gabe des Benut­zer­na­men, sofern erfolg­reich. (Stan­dard: “Fal­sches Pass­wort” -> bedeu­tet, dass der Benut­zer­name anscheind rich­tig war) Viele der ver­füg­ba­ren Secu­rity Plugins ändern auch diese Ein­stel­lung mit nur einem Maus­klick.
 

 


9. wp_config.php verschieben

Die Datei “wp_config.php” beinhal­tet alle Zugangs­da­ten für die Daten­bank und andere Ein­stel­lun­gen. Damit wir diese über­aus wert­volle Datei schüt­zen kön­nen, genügt es diese ein­fach in ein höhe­res Ver­zeich­nis zu legen. Wenn sich die WordPress-Installation in “/var/www/sites/beispielseite/wp_config.php” befin­det, müs­sen wir die Datei nach “/var/www/sites/wp_config.php” ver­schie­ben. Das kön­nen die Secu­rity Plugins jedoch nicht auto­ma­tisch machen, daher braucht ihr dafür ein FTP-Programm!
 

 


10. Spar­sa­mer Umgang mit Plugins

Jedes Plu­gin bie­tet eine Angriffs­flä­che, daher sollte man sich nur auf die wirk­lich not­wen­di­gen Plugins beschrän­ken. Das Deak­ti­vie­ren genügt nicht, denn auch die deak­ti­vier­ten Plugins bie­ten mög­li­che Angriffs­punkte.
 

 


11. Geän­derte Standardpfade

Der Stan­dard Login-Pfad für WordPress-Installationen lau­tet “http://www.deineseite.de/wp-login.php”. Durch das Ein­set­zen von Secu­rity Plugins lässt sich auch die­ser Pfad leicht und schnell ändern, z.B. in “http://www.deineseite.de/12479823798213497-login-2134.php”. Gerne wird auch ein ande­rer Ord­ner­name für wp-content emp­foh­len, davon sollte man aber die Fin­ger las­sen, denn einige Plugins könn­ten damit ihre Pro­bleme haben, wenn sie unsau­ber geschrie­ben wur­den. Abge­se­hen davon gibt es kei­nen nen­nens­wer­ten Mehr­wert, da sich der neue Pfad im Quell­code ohne große Pro­bleme aus­fin­dig machen lässt.
 

 


12. htac­cess für das Backend

Sobald ein Angrei­fer dann doch die Login-URL hat, soll­ten wir die ers­ten Log­in­ver­su­che bereits auf Ser­ver­ebene abweh­ren (Stich­wort: htac­cess). Dazu benö­tigt man eine “.htac­cess” und “.htpasswd”-Datei. Wich­tig bei bei­den Dateien ist der Punkt vor dem Namen! Der Inhalt der “.htac­cess” lau­tet dann wie folgt:
 
# Auth protect wp-login.php

AuthName "Restricted Admin-Area"
AuthType Basic
AuthUserFile ~/.htpasswd
Require valid-user

# Deny access to import­ant files

Order deny,allow
Deny from all

..und für die “.htpasswd” schnap­pen wir ein­fach einen Online-Generator wie z.B. http://www.htpasswdgenerator.de/. Ein­fach Benut­zer­na­men und Pass­wort ein­tra­gen und auf “Gene­rie­ren” kli­cken. Beide Dateien lan­den nun im Haupt­ver­zeich­nis dei­ner WordPress-Installation (“http://www.deineseite.de/”). Für beide Dateien müs­sen wir dann noch die pas­sen­den Rechte ver­ge­ben, CHMOD 444 oder 644. Dazu im FTP-Programm rechts­klick auf die Dateien und “Datei­at­tri­bute” o.ä. ändern.
 

 


13. Zwei-Faktor-Authentifizierung

Soll­ten alle Mit­tel schei­tern, bleibt immer noch das Ver­wen­den von Ein­mal­codes, einer s.g. Zwei-Faktor-Authentifizierung. Mit­hilfe des Google Authen­ti­ca­tors las­sen sich über eine Smartphone-App zusätz­lich zum Benut­zer­na­men und regu­lä­ren Pass­wort auch ein Ein­mal­code gene­rie­ren. Die­ser Code ist dann für ca. 2 Minu­ten gül­tig.
 

 


14. Back­ups

Sollte ein­mal wirk­lich das schlimmste pas­sie­ren und ein Angriff erfolg­reich ver­lau­fen, so kann man durch ein Backup die Web­seite auf den ursprüng­li­chen Stand zurück­set­zen. Zumin­dest sind dann alle ver­öf­fent­lich­ten Bei­träge, Fotos, etc. geret­tet. Wich­tig: Ein Word­Press Backup beinhal­tet immer die Daten­bank und die Dateien, die auf dem Ser­ver lie­gen. Ers­te­res lässt sich über den Pro­vi­der sichern (Stich­wort: phpMyAd­min — Daten­bank expor­tie­ren), letz­te­res über das ein­fa­che FTP-Programm. Ein­fach alle Daten her­un­ter­la­den und lokal spei­chern. Wer das nicht immer manu­ell machen möchte, fin­det auch eine Viel­zahl an Plugins (kostenlos/kostenpflichtig). Ein bekann­tes, belieb­tes und gleich­zei­tig effi­zi­en­tes Plu­gin ist Updraft­Plus (kos­ten­los).
 

 
Zuge­ge­ben, diese Liste noch lang nicht voll­stän­dig, aber damit las­sen sich bereits eine große Anzahl der Angriffe ver­mei­den. Durch die ein­fa­chen Tipps kön­nen auch uner­fah­rene WordPress-Nutzer die Maß­nah­men umset­zen und für ein Stück mehr Sicher­heit sor­gen. Grund­sätz­lich stel­len diese Maß­nah­men jedoch ein Min­dest­maß der Ver­tei­di­gung dar. Eine 100%ige Sicher­heit kann und wird es nie geben, denn eine erfolg­rei­cher Angriffe ist immer abhän­gig vom betrie­be­nen Auf­wand und Nut­zen für den Cyber­an­grei­fer. Soll­tet ihr wei­tere Tipps haben, dann schreibt es in die Kom­men­tare.
 
Gra­fik: Wiki­me­dia