Codex

Interested in functions, hooks, classes, or methods? Check out the new WordPress Code Reference!

de:WordPress absichern

Sicherheit wird bei WordPress sehr ernst genommen, aber wie bei jedem anderen System können potentielle Sicherheitsrisiken zu einem Problem werden, wenn grundlegende Sicherheitsregeln missachtet wurden. Dieser Artikel behandelt typische Schwachstellen und was man tun kann, um die eigene WordPress-Installation abzusichern.

Dieser Artikel ist keine ultimative Blitzlösung, die alle Sicherheitsaspekte abdeckt. Wenn du bestimmte Aspekte vermisst, solltest du sie mit Leuten diskutieren, denen du ein hinreichendes Sicherheitsverständnis zu Computern im Allgemeinen und WordPress im Besondren zutraust.

Was ist Sicherheit?

Grundsätzlich geht es bei Sicherheit nicht um perfekt abgesicherte Systeme. So etwas dürfte beim besten Willen kaum realisierbar und dauerhaft aufrecht zu erhalten sein. Ein sicherer Server schützt aber Vertraulichkeit, Unversehrtheit und Zugänglichkeit der Ressourcen unter Kontrolle eines Server-Administratoren.

Qualitätsmerkmale, die einen verlässlichen Web Host auszeichnen können:

  • Die Bereitschaft, Sicherheitsbedenken mit dir zu besprechen und vorhandene Sicherheitsmerkmale und -Prozesse des Web Hosting zu erläutern.
  • Stets eine aktuelle, stabile Version der gesamten Serversoftware zu nutzen.
  • Zuverlässige Backups und Wiederherstellung anzubieten.

Verwendete Software und Daten entscheiden, welche Sicherheitsaspekte bei deinem Webserver berücksichtigt werden müssen. Die nachfolgenden Punkte sollen dir dabei helfen.

Sicherheits-Themen

Ein paar grundlegende Gedanken, die du bei der Betrachtung von Sicherheitsaspekten für dein System berücksichtigen solltest, sind:

Zugriffsbeschränkung

Ein geschickt gewähltes Berechtigungskonzept reduziert Schlupflöcher für Angreifer.

Eingrenzung

Dein System sollte so konfiguriert sein, dass der Schaden bei einem unbefugtem Zugriff so klein wie möglich gehalten wird.

Vorbeugung und Wissen

Backups und das Sammeln von Informationen zum Stand der WordPress-Installation in regelmäßigen Abständen: Ein Plan zur Datensicherung und Wiederherstellung im Katastrophenfall hilft dir, bei Problemen die Installation schneller wieder ans Laufen zu kriegen.

Vertrauenswürdige Quelle

Beziehe keine Themes von Quellen, die nicht vertrauenswürdig sind. Beschränke dich auf das Repository auf WordPress.org oder hinreichend bekannte Unternehmen. Der Versuch, Themes (oder Plugins) von anderen zu beziehen, kann zu Problemen führen.

Schwachstellen auf deinem Computer

Vergewissere dich, dass der Computer, den du verwendest, nicht mit Spyware, Malware oder Viren verseucht ist. Weder Sicherheitsmaßnahmen in WordPress noch auf deinem Webserver bringen etwas, wenn ein Keylogger die Eingaben auf deinem Rechner mitschreibt.

Halte dein Betriebssystem und die installierte Software, insbesondere deinen Web-Browser, zum Schutz vor Sicherheitslücken immer aktuell. Für den Besuch von nicht vertrauenswürdige Websites empfehlen wir auch Werkzeuge wie no-script (oder die Abschaltung von JavaScript/Flash/Java) in deinem Browser.

Schwachstellen in WordPress

Wie viele moderne Software-Pakete wird auch WordPress regelmäßig aktualisiert, um bekannt gewordene Sicherheitslücken zu beseitigen. Es ist uns ein dauerhaftes Anliegen, die Sicherheit der Software zu verbessern. Deshalb solltest du deine WordPress-Installation immer auf dem neuesten Stand halten. Für ältere WordPress-Versionen werden keine Sicherheits-Updates zur Verfügung gestellt.

WordPress aktualisieren

Haupt-Artikel: Updating WordPress

Die neueste WordPress-Version ist jederzeit auf der WordPress Website unter https://wordpress.org erhältlich. Offizielle Versionen sind nicht über andere Websites erhältlich. Lade oder installiere WordPress nie von einer anderen Website als https://wordpress.org.

Seit Version 3.7 unterstützt WordPress automatische Updates. Nutze diese Funktion, um deine Installation bequem auf aktuellem Stand zu halten. Außerdem hält dich das Dashboard über Updates auf dem Laufenden: Lies den Eintrag im Dashboard oder den WordPress Entwickler-Blog, wenn du wissen möchtest, welche Schritte nötig sind, um deine Website aktuell und sicher zu halten.

Wird eine Sicherheitslücke in WordPress entdeckt und eine neue Version herausgegeben, um das Problem zu lösen, sind Informationen über diese Schwachstelle mit ziemlicher Sicherheit auch in der Öffentlichkeit bekannt. Dies macht ältere Versionen noch anfälliger für Angriffe und ist ein weiterer Grund, warum du WordPress immer aktuell halten solltest.

Wenn du als Administrator für mehr als eine WordPress-Installation zuständig bist, solltest du für eine einfachere Verwaltung Subversion in Betracht ziehen.

Sicherheitslücken melden

Wenn du meinst, eine Sicherheitslücke in WordPress gefunden zu haben, kannst du mithelfen, indem du das Problem meldest. In der Security FAQ findest du Informationen, wie du Sicherheitslücken melden kannst.

Wenn Du meinst, einen Programmierfehler gefunden zu haben, melde es. Unter Submitting Bugs erfährst du, wie. Du könntest eine Sicherheitslücke oder einen Fehler, der zu einer Sicherheitslücke führt, entdeckt haben.

Sicherheitslücken im Web-Server

Der Web Server auf dem WordPress läuft und die auf dem Server eingesetzte Software können Sicherheitslücken haben. Deshalb solltest du sicherstellen, dass auf dem Web-Server nur Software in einer sicheren, stabilen Version verwendet wird, bzw. dass du einen vertrauenswürdigen Web Host hast, der sich darum kümmert.

Wenn deine Website auf einem gemeinschaftlich genutzten Server läuft und eine andere Website auf dem selben Server angegriffen wird, gefährdet dies möglicherweise auch deine Website – selbst wenn du alle in dieser Anleitung genannten Punkte berücksichtigst. Um sicher zu gehen, frag bei deinem Web Host nach, wie er deine Website davor schützt.

Sicherheitslücken im Netzwerk

Das Netzwerk sollte an beiden Enden — dem WordPress-Server einerseits und dem Netzwerk-Client andererseits — vertrauenswürdig sein. D.h. du solltest die Firewall-Einstellungen an deinem Router zuhause überprüfen und darauf achten, von welchem Netzwerk aus du arbeitest. Ein Internet-Café, in dem du Passwörter über eine unverschlüsselte Verbindung, drahtlos oder sonstwie, versendest, ist kein vertrauenswürdiges Netzwerk.

Dein Web Host sollte dafür sorgen, dass sein Netzwerk nicht angegriffen wird, und du solltest dasselbe tun. Sicherheitslücken im Netzwerk können dazu führen, dass Passwörter und andere empfindliche Daten abgefangen werden.

Passwörter

Viele potentielle Sicherheitslücken können durch ein gesundes Sicherheits-Empfinden vermieden werden. Dabei spielen starke Passwörter eine wichtige Rolle.

Dein Passwort sollte so gewählt werden, dass es für andere schwer zu erraten ist und brute force-Angriffe erschwert. Passwort-Generatoren unterstützen dich bei der Erzeugung starker Passwörter.

Sobald Passwörter in WordPress geändert werden, zeigt WordPress auch die Passwort-Stärke an. Du solltest die Anzeige beim Einrichten neuer Passwörter nutzen, um eine angemessene Sicherheit zu gewährleisten.

Folgende Dinge sollte man bei der Auswahl eines Passworts vermeiden: * Jede Abwandlung deines eigenen Namens, User-Namens, Firmen-Namens oder Namen deiner Website. * Wahl von Wörtern aus Wörterbüchern, gleich welcher Sprache. * Ein zu kurzes Passwort. * Ein Passwort, dass nur aus Ziffern oder nur aus Buchstaben besteht (eine Mischung aus beidem ist am besten).

Ein starkes Passwort sichert nicht nur deine eigene Website. Ein Hacker, der Zugriff auf dein Administratoren-Account hat, kann Schad-Software installieren, die sich auf deinen gesamten Server auswirkt.

Ergänzend zu einem sicheren Passwort ist es sinnvoll, eine Zwei-Stufen-Authentifizierung als zusätzliche Sicherheitsmaßnahme einzurichten.

FTP

Für Verbindungen zu deinem Web-Server solltest du, wenn sie von deinem Web Host angeboten wird, eine SFTP-Verschlüsselung nutzen. Bist du dir nicht sicher, frag einfach bei deinem Web Host nach, ob er einen Zugang per SFTP anbietet.

Die Verwendung von SFTP ist genauso wie FTP, nur dass dein Passwort und andere Informationen verschlüsselt zwischen deinem Computer und deiner Website übertragen werden. D.h., dein Passwort wird nie im Klartext übertragen und kann deshalb auch nicht von einem Angreifer abgefangen werden.

Datei-Berechtigungen

Einige hübsche Funktionen von WordPress lassen sich nur mit entsprechenden Schreibrechten für verschiedene Dateien auf dem Web Server umsetzen. Gleichzeitig sind Schreibrechte für deine Dateien aber auch potentiell gefährlich, besonders in einer gemeinschaftlich genutzten Serverumgebung.

Am besten ist es, Schreibrechte soweit wie möglich einzuschränken und nur bei Bedarf zuzulassen oder einen bestimmten Ordner mit weniger Einschränkungen einzurichten, um Dinge wie das Hochladen von Dateien zu ermöglichen.

Hier ist ein mögliches Berechtigungs-Schema:

Alle Dateien sollten in deinem Besitz und für dich schreibbar sein. Jede Datei, die Schreibzugriff durch WordPress benötigt, sollte für den Web Server schreibbar sein. Je nach Einstellungen des Web Hosts kann dies bedeuten, dass die Dateien der Gruppe gehören, die den Web-Server-Dienst ausführt.

/ Das WordPress Root-Verzeichnis: Alle Dateien sollten nur für dein Nutzer-Account schreibbar sein. Ausnahme ist die .htaccess-Datei, wenn du WordPress erlauben möchtest, automatisch für dich Weiterleitungsregeln zu generieren.

/wp-admin/ Die Administrations-Umgebung von WordPress: alle Dateien sollten für durch dein User-Account schreibbar sein.

/wp-includes/ Die Gesamtheit der WordPress-Anwendungslogik: alle Dateien sollten für durch dein User-Account schreibbar sein.

/wp-content/ Vom Nutzer hinzugefügter Inhalt: Sollte für dein User-Account und die Web Server-Gruppe schreibbar sein.

In /wp-content/ findest du:

/wp-content/themes/ Theme-Dateien: Wenn du den integrierten Theme-Editor nutzen möchtest, müssen alle Dateien für die Web Server-Gruppe schreibbar sein. Möchtest du den integrierten Editor nicht nutzen, reichen Schreibrechte für dich.

/wp-content/plugins/ Plugin-Dateien: Alle Dateien sollten nur für dein User-Account schreibbar sein.

Sollten Plugins oder Themes andere Unterverzeichnisse in /wp-content/ benötigen, sollte dies entsprechend dokumentiert sein. Berechtigungen können unterschiedlich ausfallen.

Dateiberechtigung ändern

Kannst du über die Shell auf deinen Web Server zugreifen, dann lassen sich die Dateiberechtigungen mit folgenden Befehlen rekursiv ändern.

Für Verzeichnisse: find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;

Für Dateien: find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;

Automatische Updates

Wenn du WordPress automatische Aktualisierungen erlaubst, werden alle Dateioperationen vom Datei-Besitzer ausgeführt, nicht der Web Server-Gruppe. Alle Dateien werden auf Berechtigung 0644 und alle Verzeichnisse auf 0755 gesetzt. Sie sind nur vom Datei-Besitzer schreibar, aber von jedem, inklusive der Web Server-Gruppe, lesbar.

Datenbank-Sicherheit

Wenn du mehrere Blogs auf dem selben Server betreibst, solltest du über die Verwendung unterschiedlicher Datenbanken mit eigenen Nutzern nachdenken. Das lässt sich am besten bei der Erstinstallation von WordPress einrichten. Ziel ist die Schadeneindämmung: Gelingt es einem Angreifer, in einen Blog einzudringen, ist es so erheblich schwerer, auch in die anderen Blogs einzudringen.

Wenn du selber MySQL verwaltest, mach dich mit der MySQL-Konfiguration vertraut und sorge dafür, dass unnötige Funktionen (wie Fernzugriff auf die Datenbank per TCP) deaktiviert werden. Eine gute Einführung findest du unter Secure MySQL Database Design.

Einschränkung von Datenbank-Nutzerrechten

Für den normalen WordPress-Betrieb wie das Schreiben von Beiträgen, das Hochladen von Mediendateien, die Veröffentlichung von Kommentaren, Anlegen neuer Anwender oder die Installation von Plugins reicht es aus, wenn der Datenbanknutzer Lese- und Schreibrechte hat: SELECT, INSERT, UPDATE und DELETE.

Dementsprechend können alle anderen Berechtigungen für Datenbank-Struktur und -Verwaltung wie DROP, ALTER und GRANT entzogen werden. Ziel ist auch hier die Schadeneindämmung.

Hinweis: Einige Plugins, Themes und größere WordPress-Aktualisierungen setzen strukturelle Veränderungen an der Datenbank wie z.B. das Hinzufügen weiterer Tabellen oder Änderung des Schemas voraus. In diesen Fällen muss der Datenbanknutzer vorübergehend die entsprechende Berechtigung erhalten, bevor das Plugin oder die Aktualisierung installiert wird.

ACHTUNG: Der Versuch, ohne entsprechende Berechtigung Aktualisierungen vorzunehmen, kann zu Problemen führen, wenn Änderungen am Datenbank-Schema vorgenommen werden sollen. Deshalb wird nicht empfohlen, diese Berechtigungen zu entziehen. Wenn du dich aus Sicherheitsüberlegungen trotzdem dafür entscheidest, solltest du dich vorher um ein verlässliches Backup kümmern, das eine reguläre Sicherung der gesamten Datenbank umfasst, die du erfolgreich getestet hast und sich leicht wiederherstellen lässt. Schlägt eine Datenbankaktualisierung fehl, lässt sich dies üblicherweise durch Wiederherstellung der alten Version und Zulassen der notwendigen SQL-Befehle darauf beheben. Obwohl die meisten WordPress-Aktualisierungen keine Änderungen am Schema vornehmen, sind Änderungen möglich. Änderungen erfolgen nur bei großen Aktualisierungen (z.B. von 3.7 auf 3.8); bei kleineren Aktualisierungen (z.B. 3.8 auf 3.8.1) grundsätzlich nicht. Behalte auf jeden Fall ein reguläres Update.

Sicherung von wp-admin

Mit einem serverseitigen Passwortschutz (z.B. BasicAuth des Verzeichnisses /wp-admin/kannst du den Verwaltungsbereich deines Blogs, das Anmeldeformular und deine Dateien zusätzlich absichern. Dies zwingt den Angreifer dazu, dass er sich statt mit den eigentlich Verwaltungsdateien zunächst mit diesem Schutz auseinandersetzen muss. Viele Angriffe auf WordPress scheitern hier, da sie autonom von Software-Bots ausgeführt werden.

Einfach das wp-admin-Verzeichnis zu sichern kann aber auch dazu führen, dass WordPress-Funktionen beeinträchtigt werden, wie z.B. der AJAX-Handler in wp-admin/admin-ajax.php. Eine ausführlichere Dokumentation wie du das wp-admin-Verzeichnis mit einem Passwort sichern kannst, findest du im Abschnitt Resources.

Die meisten Angriffe auf WordPress-Blogs lassen sich in zwei Kategorien einteilen: 1. Es werden zugeschnittene HTTP-Anfragen an deinen Web Server versendet, mit denen bestimmte Sicherheitslücken angesprochen werden. Dies betrifft alte/überholte Plugins und Software. 2. Es wird versucht, mit Hilfe von „brute force“ Passwörter zu erraten, um Zugriff auf den Blog zu bekommen.

Die beste Absicherung zum Schutz deines Passworts ist die Verwendung einer mit SSL verschlüsselten HTTPS-Verbindung zur Verwaltung deines Blogs, die die gesamte Kommunikation und sensitive Daten verschlüsselt. Siehe auch Verwaltung über SSL.

Sicherung von wp-includes

Sind Skripte nicht dafür vorgesehen, vom Anwender abgerufen zu werden, kann man eine weitere Sicherheitsstufe einbauen. Ein Weg ist, diese Skripte mit mod_rewrite in der .htaccess-Datei zu blockieren. Hinweis: Damit der nachfolgende Code nicht von WordPress überschrieben wird, sollte er in der .htaccess außerhalb des Abschnitts platziert werden, der mit # BEGIN WordPress anfängt und # END WordPress endet. WordPress kann alles innerhalb dieser Tags überschreiben.

# Block the include-only files.
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^wp-admin/includes/ - [F,L]
RewriteRule !^wp-includes/ - [S=3]
RewriteRule ^wp-includes/[^/]+\.php$ - [F,L]
RewriteRule ^wp-includes/js/tinymce/langs/.+\.php - [F,L]
RewriteRule ^wp-includes/theme-compat/ - [F,L]
</IfModule>


# BEGIN WordPress

Wir weisen darauf hin, dass dies auf Web Servern mit einer Multisite-Installation Probleme bereiten kann, da die RewriteRule ^wp-includes/[^/]+\.php - [F,L] verhindern würde, dass mit der Datei ms-files.php Abbilder erzeugt werden. Lässt man die Zeile weg, funktioniert der Code, hat aber weniger Sicherheit.

Sichern der wp-config.php

Die Datei wp-config.php kann in ein Verzeichnis oberhalb der WordPress-Installation verschoben werden. D.h., wenn du WordPress im Root-Verzeichnis deines Webspace installiert hast, kannst du die wp-config.php außerhalb des Web-Root-Verzeichnisses speichern.

Hinweis: Manche behaupten, dass das Verschieben der wp-config.php nur geringe Sicherheitsvorteile bringt und, wenn nicht sorgfältig ausgeführt, sogar ernsthafte Sicherheitsprobleme aufwerfen könnte. Machen sehen das anders.

Beachte, dass die Datei wp-config.php ein Verzeichnis über dem WordPress-Verzeichnis (in dem das Verzeichnis wp-includes liegt) abgelegt werden darf. Sorge außerdem dafür, dass nur du (und der Web Server) die Datei lesen dürfen (was in der Regel der Berechtigung 400 oder 440 entspricht).

Wenn du auf deinem Web Server eine .htaccess verwendest, kannst du (ganz oben) folgendes einfügen, um jedem, der nach der Datei sucht, den Zugriff zu verweigern:

<files wp-config.php>
order allow,deny
deny from all
</files>
    1. Datei-Bearbeitung blockieren Das WordPress-Dashboard erlaubt standardmäßig Administratoren, PHP-Dateien z.B. von Plugins und Themes zu editieren. Dies ist häufig das erste Instrument das Angreifer, die sich einloggen konnten, nutzen, da es die Ausführung von Code ermöglicht. WordPress verfügt über eine Konstante, die die Bearbeitung vom Desktop blockiert. Fügt man die nachfolgenden Zeile in der wp-config.php ein, entspricht das dem Widerruf der Berechtigungen von ’edit_themes’, ’edit_plugins’ und ’edit_files’ für alle Anwender:

define(\’DISALLOW_FILE_EDIT\’, true); Das hält zwar keinen Angreifer davon ab, Schadsoftware auf deinen Web Server hochzuladen, erschwert aber vielleicht den einen oder anderen Angriff.

Plugins

Vor allem solltest du dafür sorgen, dass deine Plugins immer auf dem aktuellen Stand sind. Nutzt du ein bestimmtes Plugin nicht mehr, lösche es von deinem System.

Firewall

Es gibt zahlreiche Plugins und Dienste, die als Firewall für deine Website dienen können. Einige arbeiten so, dass sie deine .htaccess verändern und so den Zugriff auf deinem Webserver einschränken, bevor WordPress aufgerufen wird. Gutes Beispiel sind iThemes Security oder All in One WP Security. Einige Firewall-Plugins, wie WordFence arbeiten auf der gleichen Stufe wie WordPress und versuchen, noch während WordPress geladen wird, Angriffe herauszufiltern.

Abgesehen von WordPress kannst du auch eine Web Firewall auf deinem Web Server installieren, um Inhalte zu filtern, bevor sie von WordPress bearbeitet werden. Die populärste Web Firewall ist ModSecurity.

Eine Firewall kann auch zwischen deinem Web Host und dem Internet installiert werden (security in the middle), indem die DNS-Einträge so abgeändert werden, dass sie erst die Firewall durchlaufen müssen. Hierdurch wird der gesamte Datenverkehr erst durch die Firewall gefiltert, bevor er deine Website erreicht. Das bieten einige Firmen wie CloudFlare und Sucuri an.

Plugins, die Schreibrechte benötigen

Erfordert ein Plugin Schreibrechte auf deine WordPress-Dateien oder -Verzeichnisse, prüfe bitte den Code oder wende dich an eine Person deines Vertrauens. Mögliche Anlaufstellen sind die Support-Foren und der IRC-Channel.

Plugins, die Code ausführen

Wie gesagt besteht die Absicherung von WordPress zum Teil aus der Schadeneindämmung im Falle eines Angriffs. Im Falle eines erfolgreichen Angriffs vergrößern Plugins, die über eine willkürliche Ausführung von PHP- oder anderem Code Zugriffe auf Datenbankeinträge zulassen, die Gefahr eines Schadens.

Ein Weg, die Nutzung solcher Plugins zu umgehen, ist die Anwendung benutzerdefinierter Seiten-Templates, die die Funktion aufrufen. Dies setzt aber voraus, dass die Bearbeitung von Dateien innerhalb von WordPress unterbunden wurde.

Sicherheit durch Verschleierung („Security through obscurity“)

Sicherheit durch Verschleierung ist generell eine schlechte Strategie. Allerdings gibt es Bereiche, bei denen dies auch in WordPress nützlich sein kann: 1. Administrator umbenennen: Wenn du ein Administratoren-Account anlegst, solltest du leicht zu erratende Usernamen wie admin oder webmaster vermeiden, weil sie typischerweise zuerst bei einem Angriff verwendet werden. Bei einer bestehenden WordPress-Installation kannst du bestehende Accounts über die MySQL-Kommandozeile mit einem Befehl wie UPDATE wp_users SET user_login = 'newuser' WHERE user_login = 'admin‘; umbenennen oder ein MySQL-Verwaltungsprogramm wie phpMyAdmin nutzen. 2. Ändere das Tabellen-Präfix: Viele bekanntgewordene WordPress-spezifische SQL-Injections gehen davon aus, dass das Tabellen-Präfix dem Standardwert wp_ entspricht. Eine Änderung kann zumindest einige SQL-Injection-Angriffe vereiteln.

Datensicherung

Erstelle regelmäßig Backups deiner Daten, einschließlich der MySQL-Datenbank. Schau dir dazu auch den Haupt-Artikel an: Backup deiner Datenbank.

Die Integrität der Daten ist für vertrauenswürdige Backups entscheidend. Durch Verschlüsselung des Backups, unabhängige Aufzeichnung von MD5-Schlüsseln für jede Backup-Datei und die Auslagerung von Backups auf Read-Only-Medien kannst du sicherstellen, dass deine Daten nicht manipuliert wurden.

Eine gute Backup-Strategie beinhaltet regelmäßige Momentaufnahmen deiner gesamten WordPress-Installation (einschließlich WordPress Core-Dateien und deiner Datenbank) an einem vertrauenswürdigen Ort. Stell dir dazu eine Website mit wöchentlichen Momentaufnahmen vor. Wird die Website am 1. Mai angegriffen, aber der Angriff erst am 12. Mai entdeckt, hat der Besitzer der Website durch diese Strategie unangetastete Backups, die ihm helfen, die Website wiederherzustellen. Mehr noch: anhand des jüngeren Backups kann nachvollzogen werden, wie die Website geschädigt wurde.

Logging

Forensische Logs helfen dir am besten, deine Website zu verstehen. Im Gegensatz zur allgemeinen Annahme ermöglichen Logs dir, nachzuschauen, was wann von wem getan wurde. Leider werden dir die Logs nicht mitteilen, welcher Anwender sich eingeloggt hat, aber sie geben dir Aufschluss über IP-Adresse und Uhrzeit. Außerdem kannst du anhand der Logs Angriffe wie Cross Site Scripting (XSS), Remote File Inclusion (RFI), Local File Inclusion (LFI) und Verzeichnis-Übergriffe nachvollziehen. Außerdem erfährst du von brute force-Versuchen.

Wenn du dich mit Logs besser auskennst, kannst du nachvollziehen, wann der Theme- und Plugin-Editor verwendet wurde, wann jemand deine Widgets aktualisiert hat und wann Beiträge und Seiten hinzugefügt wurden. Dies sind alles Schlüssel zur forensischen Arbeit auf deinem Web Server.

Es gibt zwei führende Open Source-Lösungen, die du aus Sicherheitsüberlegungen auf deinem Web Server installieren kannst.

OSSEC läuft auf jeder NIX Distribution und ebenso auf Windows. Richtig konfiguriert ist OSSEC sehr leistungsstark. Der Gedanke dahinter ist, alle Logs in Verbindung zueinander zu setzen. Du solltest das Programm so einrichten, dass alle Zugriffs-Logs und Fehler-Logs aufgezeichnet werden und angeben, ob auf dem Server mehrere Web Sites eingerichtet sind. Außerdem solltest Du Störquellen ausfiltern, da zu viele Störquellen einen effektiven Betrieb stören.

Monitoring

Manchmal hilft alle Vorsorge nicht und deine Website wird immer noch gehackt. Für diesen Fall ist eine Angriffserkennung/Beobachtung sehr wichtig. Es erlaubt dir, schneller zu reagieren, herauszufinden, was passiert ist und deine Website wiederherzustellen.

Monitoring deiner Logs

Nutzt du einen Dedicated oder Virtual Private Server, der dir den Luxus eines Root-Zugriffs erlaubt, kannst du recht einfach die Dinge so einrichten, dass du siehst, was passiert. OSSEC macht es dir einfach und folgende kurze Zusammenfassung ist ein guter Einstieg: OSSEC for Website Security – Part I.

Monitoring von Dateiänderungen

Angriffe hinterlassen immer Spuren, entweder in den Logs oder im Dateisystem (neue Dateien, veränderte Dateien, usw.). ## Externes Monitoring des Web Servers Versucht ein Angreifer, deine Website zu verändern oder Schadsoftware zu installieren, kannst du diese Änderungen mit Hilfe einer webbasierten Lösung zur Überwachung der Datenintegrität aufspüren. Da dies heutzutage in vielerlei Form angeboten wird, sollte eine Websuche nach „Web Malware Detection and Repetition“ eine längere Liste von Anbietern liefern.

Quellen

  • WordPress Security Cutting Through the BS
  • MVIS Security Center (Plugin): Identifies most of the topics described in this guide and provides information on how to lock down WordPress
  • e-Book: Locking Down WordPress
  • wpsecure.net has a few guides on how to lock down WordPress.
  • Brad Williams: Lock it Up (Video)
  • Official docs on how to password protect directories with an .htaccess file
  • Simple tutorial on how to password protect the WordPress admin area and fix the 404 error
  • AskApache Password Protection plugin for wp-admin/ and other directories Caution: Installing the AskApache Password Protection plugin may lock you out of your WordPress Admin panel. See the comments under the author's plugin home page to read other users' experiences with this plugin.

Siehe auch

  • Security FAQ
  • FAQ - My site was hacked
  • Brute Force Attacks