WordPress sicher machen

WordpressViele Blog-Betreiber setzen WordPress als Blog-Software ein. Dies hat natürlich zur Folge, dass WordPress ins Visier von dubiosen Leuten gerät, die Blogs angreifen und hacken wollen. Da der Quellcode zu WordPress offen ist, werden zwar Schwachstellen schnell entdeckt und auch behoben, aber man ist natürlich niemals zu 100% sicher, dass Attacken von außen ausgeschlossen sind. Darum will ich in diesem Beitrag zeigen, wie man WordPress zusätzlich absichern kann.

Grund für den ganzen Beitrag ist eine Attacke, die ich selbst auf einem meiner Server erdulden musste. Damit so was nicht noch mal passiert, habe ich folgende Maßnahmen ergriffen:

Aktuelle WordPress-Version

Es empfiehlt sich immer die aktuellste Version von WordPress zu verwenden. Die Updates können mittlerweile automatisch eingespielt werden. Zuvor sollte man jedoch ein Backup von seinem System machen und alle Plugins deaktivieren. Wer viele Plugins hat, kann evtl. auch Probleme mit alten Plugins bekommen, die nicht mehr kompatibel sind. Aber meist funktionieren die alten Plugins auch auf den neuen WordPress-Versionen.

Secure WordPress Plugin

Damit ein Angreifer eine Schwachstelle ausnutzen kann, muss er erst mal wissen, welche WordPress-Version verwendet wird. Diese Info bekommt er in der Regel frei Haus, denn der „Generator“ wird meist als Meta-Angabe im Seitenquelltext angegeben und auch im Feed steht die Info drin. Man kann nun entweder im Theme den Part mit dem „Generator“ entfernen oder man installiert das Plugin Secure WordPress. Dieses Plugin versteckt nicht nur die Versionsangabe, es macht sogar noch mehr. So werden auch Index-Dateien angelegt, die ein Auslesen des Plugin-Verzeichnisses verhindern und auch sonstige, schadhafte Queries werden geblockt.

Systemrechte prüfen

Wer einen Webserver auf Basis von Linux betreibt und diesen auch selbst administrieren kann, der sollte darauf achten, dass Apache und PHP nur unter eingeschränkten Rechten laufen (User: wwwrun, Gruppe: www) und die Rechte innerhalb der WordPress-Installation auch recht streng sind. So sollten im Plugin- und WP-Content-Folder die Schreibrechte so sein, dass keine neuen Plugins und Codes vom laufenden Prozess angelegt werden können. Neue Plugins installiert man mit einem anderen User und sollte das Plugin Daten ablegen (z.B. Cache), dann sollten nur dem jeweiligen Unterordner die Rechte gegeben werden.

Disable PHP-Functions

PHP kommt von Haus aus mit einigen gefährlichen Funktionen daher. So kann man mit system() oder exec() ohne Probleme neuen Code ausführen. Wenn man nun eine Schwachstelle in WordPress hat, mit der man PHP-Code ausführen kann, dann könnte man mit system() ganz einfach neue Prozesse starten, die böse Sachen auf dem Server machen. Daher empfiehlt es sich diese Funktionen über die php.ini zu sperren.


disable_functions = exec,passthru,shell_exec,system,proc_open,popen,
curl_exec,curl_multi_exec,parse_ini_file,show_source

Die Funktionen werden der Eingenschaft „disable_functions“ übergeben. Je nach System kann es aber auch zu Problemen kommen, wenn man z.B. mittels cURL serverseitig andere Webseiten aufruft. Hier muss man schauen, was man alles deaktivieren kann, auf den Einsatz von system() und exec() ist aber in jedem Fall zu verzichten.

Webseite überwachen

Man sollte ebenfalls die Aktivitäten auf dem eigenen Server im Auge behalten, so empfiehlt es sich Traffic-Warnungen einzustellen, damit man zeitnah über DDoS-Attacken Bescheid weiß. Ebenso macht es auch Sinn, wenn man seine Seite bei den Google Webmastertools anmeldet. Dort gibt es einen Punkt Diagnose -> Malware, unter dem man sehen kann, ob Google schädliche Teile auf der Webseite gefunden hat.

Fazit

Keine Software ist zu 100% sicher, aber man kann einiges dafür tun, um einem möglichen Angriff vorzubeugen. Wer die Punkte aus diesem Beitrag berücksichtigt, kann seinen Blog ein ganzes Stück sicherer machen.



0 comments ↓

There are no comments yet. Kick things off by filling out the form below.

Schreibe einen Kommentar

Benachrichtigung per Mail bei weiteren Kommentaren.