Mit etwa 60% Marktanteil unter den Content Management Systemen ist WordPress (WP) aktuell die weltweit beliebteste Software um Websites zu betreiben (Statistik). Das große Erfolgsgeheimnis von WordPress ist dessen Einfachheit. Im Handumdrehen hat man eine Website aufgesetzt, ein paar nette Plugins für Formulare und Bildergalerien installiert oder ein ansprechendes Design implementiert.
Doch mit der Beliebtheit kommen auch die Probleme, denn nicht alles was einfach ist, ist auch gleichzeitig gut. Insbesondere wenn es um die Sicherheit geht, werden die Dinge leider schnell komplex.
Da WordPress so beliebt ist und so wahnsinnig viele Websites damit betrieben werden, sind diese natürlich auch beliebte Angriffsziele von Hackern.
Typische Angriffsziele von WordPress Websites
Die Risiken beim Betrieb von WordPress sind vielfältig. Genau wie bei Ihrem PC kommt es auch auf die Menge der installierten Programme und deren Aktualität an.
Sicherheitslücken in Themes und Plugins
Umso mehr Themes und Plugins sie installiert haben, umso höher ist das Risiko, dass sich irgendwo in deren Quellcode eine Sicherheitslücke befindet. Darum sollten Sie Themes und Plugins möglichst sparsam einsetzen. Überlegen Sie sich genau welche Funktionalität Sie wirklich benötigen und löschen Sie nicht verwendete Themes und Plugins von Ihrem System. Bei den übriggebliebenen WordPress Erweiterungen sollten Sie darauf achten, dass diese stets auf dem neuesten Stand sind.
Brute Force Attacken
Automatisierte Programme, sogenannte Bots probieren bei Ihrem WordPress Login einfach so lange typische Benutzername- und Passwortkombinationen aus, bis sie drin sind. Hier sei nur kurz gesagt: Verwenden Sie untypische Nutzernamen und möglichst komplizierte Passwörter, die keine echten Wörter enthalten, die man im Wörterbuch nachschauen kann, ganz egal in welcher Sprache.
Sicherheitslücken im WordPress Systemkern
Auch der Quellcode des WordPress Kerns ist nicht perfekt. Deshalb werden am laufenden Band Aktualisierungen veröffentlicht, mit denen Sicherheitslücken geschlossen werden. Deshalb ist es unerlässlich, dass Sie Ihre WordPress Installation immer aktuell halten.
Sicherheitslücken in der Infrastruktur
WordPress benötigt einige zugrunde liegende Technologien wie z.B. die Programmiersprache PHP, eine MySQL Datenbank, einen (Apache-) Webserver und ein (Linux-) Betriebssystem, die allesamt auf dem Server installiert sein müssen, damit WordPress funktioniert. Nicht nur WP selbst, sondern auch alle anderen Komponenten auf dem Server müssen stehts aktuell gehalten werden. Dafür ist in der Regel Ihr Hosting Provider zuständig. Je nachdem was Sie für ein Hosting Paket gebucht haben, kann es aber auch sein, dass Sie selbst dafür verantwortlich sind, z.B. beim Betrieb eines virtuellen Servers.
Was kann passieren wenn meine WP-Website gehackt wurde?
Die Auswirkungen von einem erfolgreichen Angriff können ganz unterschiedlich sein, aber es wir auf jeden Fall nicht schön, so viel kann ich Ihnen versprechen. Hier einige Beispiele:
- Es befindet sich Spam in den Kommentaren Ihrer Beiträge
- Im HTML-Code Ihrer Website befindet sich (evtl. unsichtbarer) Schadcode, der bei Besuchern Ihrer Website Schaden anrichten kann
- Wenn Ihr (Administrator-) Login geknackt wurde, können Angreifer theoretisch alles mit Ihrer Website machen
- Über Ihre WP-Installation können Spam-Emails versendet werden
- Die Website kann als Teil eines Botnets genutzt werden um DDOS-Attacken auf andere Systeme zu starten.
- Falls Sie vertrauliche Daten in Ihrer Datenbank gespeichert haben, können diese geklaut werden, z.B. Kunden und Bestellungen in WooCommerce Shops
Wie merke ich eigentlich ob meine Website gehackt wurde? Das habe ich in einem anderen Beitrag erklärt.
Maßnahmen zur Absicherung von WordPress
So, nun habe ich Ihnen denke ich genug Angst gemacht. Wie kann man sich nun gegen solche Angriffe wehren?
Es gibt eine Reihe von Sicherheitsmaßnahmen, die eigentlich jeder Webseitenbetreiber beachten sollte, ganz unabhängig davon ob er WordPress oder ein anderes CMS einsetzt. Ich werde hier aber explizit auf die Besonderheiten bei WP eingehen.
Regelmäßige Backups
Machen Sie regelmäßige Backups Ihrer gesamten Website, sprich von allen Dateien (WP Kern, Plugins, Themes und Uploads) sowie der Datenbank. Eine Backup Funktionalität bietet in der Regel jeder Hosting Provider an. Evtl. reicht es schon, dort eine bspw. wöchentliche Sicherung der Daten einzurichten, damit Sie den Ursprungszustand der Website im Falle eines erfolgreichen Angriffs einfach wieder aus einer Sicherung herstellen können. Sie können die Sicherungen natürlich auch manuell durchführen, was allerdings mit viel Arbeit verbunden ist. Praktischer ist hier der Einsatz von speziellen Backup Plugins. Mehr dazu im Abschnitt Sicherheitsplugins.
Regelmäßige Updates
Genau wie bei Ihrem PC zuhause, werden am laufenden Band Aktualisierungen für den WordPress Kern sowie für installierte Plugins und Themes veröffentlicht, mit denen Sicherheitslücken in der Software geschlossen werden. Diese Updates sollten Sie deshalb immer möglichst zeitnah installieren, denn oftmals werden Angriffe genau auf diese bekannten Sicherheitslücken ausgerichtet.
WordPress bietet einerseits selbst die Funktion von automatischen Updates, andererseits bieten auch immer mehr Hosting Provider eine automatisierte Verwaltug und Aktualsierung von WordPress Instanzen an. Es empfiehlt sich immer eine Kopie der Website in petto zu haben, an der man die Updates ausprobieren kann, bevor man sie im Livebetrieb installiert.
Sichere Benutzernamen & Passwörter
Man kann es nicht oft genug sagen, aber die Leute wollen es einfach nicht einsehen: Nutzen Sie möglichst lange und komplizierte Passwörter!!! Diese sollten am besten mindestens 8 Zeichen lang sein und aus Kleinbuchstaben, Großbuschstaben, Zahlen und Satzzeichen bestehen. Und wie oben schon erwähnt, verwenden Sie keine Wörter die es wirklich gibt!
Zudem sollten Sie auch keine Benutzernamen verwenden, die man leicht erraten kann, wie bspw. „admin“. Legen Sie sich lieber einen neuen Nutzer an, der „wurzelbrunft“ heißt und löschen Sie den admin.
Setzen Sie in jedem Fall unterschiedliche, sichere Nutzernamen und Passwörter für alles ein: Ihren WordPress Login, die Datenbank Verbindung, die FTP Verbindung und der Login für Ihren Hosting Provider!
Tabellenprefix in der Datenbank
Eine WordPress Datenbank sieht standardmäßig immer gleich aus. Die Tabellennamen sind selbsterklärend, wie z.B. „posts“ oder „users“. Machen Sie es Angreifern schwerer indem Sie Prefixe für Ihre Tabellennamen verwenden. Das sieht dann etwa so aus: „wR48z_posts“. Diesen Prefix können Sie gleich bei der Installation von WP festlegen oder sie ändern Ihn später manuell oder über ein Sicherheitsplugin – mehr dazu später.
Zugriffsrechte von Dateien und Verzeichnissen
Wie in diesem Artikel aus der offiziellen WordPress Dokumentation sehr schön beschrieben wird, sind folgende Zugriffsrechte für alle WordPress Dateien und Verzeichnisse empfohlen:
- Dateien: 644
- Verzeichnisse: 755
Wenn Sie auf Ihren Server Zugriff per Kommandozeile haben, können Sie diese Zugriffsrechte ganz einfach mit folgenden Befehlen setzen:
Für Dateien:
find /path/to/your/wordpress/install/ -type f -exec chmod 644 {} \;
Für Verzeichnisse:
find /path/to/your/wordpress/install/ -type d -exec chmod 755 {} \;
Falls Sie keinen Zugriff per Konsole haben, können Sie das auch einfach per FileZilla erledigen. Klicken Sie mit der rechten Maustaste auf den Ordner in welchem sich WordPress befindet, wahrscheinlich der Webroot Ordner httpdocs. Tippen Sie im Feld Numerischer Wert die 755 ein und aktivieren Sie die Checkbox „Unterverzeichnisse einbeziehen“. Für die Ordner wählen Sie 755 und „Nur auf Verzeichnisse anwenden“. Für die Dateien wählen Sie die 644 und “ Nur auf Dateien“ anwenden.
Verwaltung von WordPress Instanzen durch Hosting Provider
Einige Hosting Provider bieten bereits viele komfortable Tools zur Verwaltung von WordPress Instanzen an. Wenn Sie bspw. einen eigenen (virtuellen) Server betreiben, können Sie die Serververwaltungssoftware Plesk nutzen um Ihre WP Installationen automatisch updaten zu lassen.
Sicherheitsplugins für WordPress
Genau wie für alles andere gibt es natürlich auch unzählige Plugins für die Absicherung von WordPress. Doch wie findet man hier die wirklich notwendigen, guten Plugins?
Erstmal gilt wie bei allen anderen Plugins oder Themes: Schauen Sie sich genau die Beschreibung an! Achten Sie dabei auf folgende Dinge:
- Wann wurde das Plugin das letzte Mal aktualisiert? „Last updated“ sollte möglichst erst kürzlich geschehen sein.
- Bis zu welcher WordPress Version ist das Plugin kompatibel? Sollte die aktuellste Version von WP sein.
- Wie viele Sterne hat das Plugin als Bewertung bekommen? Sollten möglichst viele sein.
- Auf wie vielen Bewertung basiert das Ergebnis? Sollten auch möglichst viele sein.
Nachfolgend werde ich Ihnen einige Sicherheitsplugins vorstellen, mit denen ich gute Erfahrungen gemacht habe. Alle vorgestellten Plugins sind kostenlos. Teilweise gibt es kostenpflichtige Premium Versionen. Diese benötigen Sie aber nicht unbedingt.
UpdraftPlus WordPress Backup Plugin
Fangen wir mit den Backups an. UpdraftPlus ist ein sehr praktisches Plugin für die Erstellung von Sicherheitskopien Ihrer Website. Das Plugin unterstützt Sicherungen Ihres WordPress Kerns, aller Themes, Plugins, Uploads und der Datenbank. Die Sicherungen können einfach auf dem Server gespeichert werden, oder direkt in einen Cloud-Speicher wie Dropbox übertragen werden. Backups lassen sich manuell oder automatisiert erstellen. So können Sie bspw. einstellen, das Updraft einmal wöchentlich eine Sicherung Ihrer WP Website vornimmt. Die Intervalle können Sie beliebig festlegen.
AntiVirus
AntiVirus ist ein kleines aber feines Plugin, dass die Dateien Ihres Themes auf Schadcode überprüft. Die Überprüfung kann ebenfalls entweder manuell oder automatisiert täglich erfolgen. Das Plugin kann die Warnungen direkt anzeigen oder Ihnen eine Benachrichtigung per Email senden.
Acunetix WP Security
Das Plugin Acunetix WP Security ist eines meiner Favoriten. Mit ein paar einfachen Einstellungen kann man seine WP Instanz schnell sehr viel sicherer machen und lernt dabei noch eine ganze Menge über Sicherheit. Bevor ich genauer darauf eingehe, muss ich allerdings dazu sagen, dass dieses Plugin zum Zeitpunkt an dem ich diesen Text schreibe, schon seit über 2 Jahren nicht mehr aktualisiert wurde. Die Firma Acunetix scheint aber ziemlich erfolgreich mit Produkten rund um WordPress und Website Sicherheit zu sein, weshalb ich hoffe, dass sie ihr Plugin bald mal wieder auffrischen.
Hier die Funktionen im Detail:
- Verstecke die WordPress Versionsinformation im HTML-Code
- Entferne Meta Tags im HTML-Code, die verraten um welche Software es sich handelt
- Deaktiviere die Ausgabe von PHP und Datenbankfehlermeldungen
- Entferne (Update-)Benachrichtigungen für alle User außer dem Administrator
- Platziert eine index.php Datei in den Ordnern wp-content, wp-content/plugins, wp-content/themes and wp-content/uploads um die standardmäßige Auflistung der Inhalte zu unterdrücken, wenn man die URL der Ordner direkt aufruft.
- Entfernt die Versionsparameter von URLs.
- Leert den Inhalt der Datei readme.html
- Überwachung des Live Traffics
- Ändern/Einfügen eines Tabellenpräfixes in der Datenbank
- Überwachung/Änderung der Zugriffsrechte von kritischen Dateien und Ordnern
- Scan nach veränderten Dateien
Besonders spannend ist es den Live Traffic auf der eigenen Seite zu beobachten. Es kann echt erschreckend sein, wer oder was da alles so an erwünschten oder unerwünschten Besuchern vorbeischaut. In meinem Screenshot sieht man sehr schön, dass von einer chinesischen IP-Adresse ständig der Login aufgerufen wird. Da wurde vermutlich gerade versucht den Login zu knacken. Es kann aber auch passieren, dass man mal einen Crawler wie den Google Bot zu Besuch hat, der gerade die eigene Website indexiert. Der Live Traffic ist auf jeden Fall immer einen Blick wert! Man darf sich allerdings auch nicht zu sehr davon verrückt machen lassen.
Wordfence Security
Wordfence Security würde ich fast schon als Star unter den WP Sicherheitsplugins bezeichnen! Das Plugin kann sehr, sehr viel und wird deshalb auch sehr oft eingesetzt! Den kompletten Funktionsumfang aufzuzählen, würde den Rahmen dieses Artikels sprengen, deshalb konzentriere ich mich auf ein paar besonders tolle Features.
Zunächst einmal kann Wordfence den WordPress Login gegen Brute Force Attacken absichern. So können bspw. Besucher geblockt werden, wenn sie zu oft hintereinander vergeblich versuchen sich einzuloggen.
Die Firewall von Wordfence hat bereits eine ganze Menge an Regeln hinterlegt, die typische Angriffe auf WordPress Websites, Themes und Plugins blockieren.
Sehr praktisch sind auch die Benachrichtigungen im WP Backend, wenn irgendetwas nicht stimmt, oder nicht ordentlich konfiguriert ist. Im Screenshot sehen sie bspw. dass sich das Plugin über eine Logdatei beschwert, die öffentlich einsehbar ist. Hacker könnten aus dieser Datei entscheidende Informationen auslesen.
Das Plugin Wordfence kann dem Administrator oder wem auch immer wöchentliche Berichte über die Geschehnisse auf der Website per Email zusenden. In so einer Email steht dann z.B. wie viele IP-Adressen geblockt wurden, welche Loginversuche es gab, welche Attacken geblockt wurden, ob Dateien modifiziert wurden oder ob Updates installiert werden müssen.
Jetpack
Das Plugin Jetpack ist mit Vorsicht zu genießen. Es hat ein paar sehr nützliche Funktionen, aber auch ein paar durchaus umstrittene Eigenschaften. Zu den nützlichen Funktionen gehört neben allerlei Dingen wie eine verbesserte Kommentarfunktion, Performanceoptimierung oder die Einbindung von sozialen Netzwerken auch der Schutz vor Brute Force Attacken. Umstritten nenne ich das Plugin deshalb, weil es nötig ist, die eigene WordPress Website mit einem wordpress.com Konto zu verbinden. Das Plugin sendet dann laufend alle möglichen Informationen nach Hause zum WP Hersteller Automattic.
Für Leute die mehrere WordPress Websites betreiben kann Jetpack sehr praktisch sein, weil man damit auch mehrere WP-Instanzen auf einmal verwalten kann.
Antispam Bee
Antispam Bee ist wie der Name schon erraten lässt ein Plugin zur Vermeidung von Spam auf der eigenen Website. Dies bezieht sich in erster Linie auf die Kommentarfunktion von WP. Antispam Bee ist eine nette Alternative zu Akismet, welches standardmäßig mit WP ausgeliefert wird. Akismet telefoniert ebenso gerne nach Hause wie Jetpack, was nicht alle Leute mögen.
Email Address Encoder
Zu guterletzt noch ein nettes kleines Plugin, das E-Mail Adressen auf Ihrer Website davor schützt durch automatisierte Programme eingesammelt zu werden um dann mit E-Mail Spam zugemüllt zu werden. Email Address Encoder codiert die Email Adressen in Seiten oder Beiträgen so, dass Bots nichts mehr damit anfangen können, dass Menschen sie aber noch lesen können.
WordPress Sicherheit für Fortgeschrittene
Nachdem wir nun die Standardthemen abgearbeitet haben, kommen wir noch zu ein paar etwas anspruchsvolleren Themen, für die man wirklich wissen muss, was man tut.
Website mit SSL verschlüsseln
Machen Sie die gesamte Kommunikation Ihrer Website sicherer indem Sie das Protokoll von http auf https umstellen. Eine SSL-Verschlüsselung gibt es heute sogar schon kostenlos, bspw. über Let’s encrypt. Manche Provider bieten die Funktionalität von Let’s encrypt auch schon standardmäßig in ihren Paketen an. Auf vServern die mit Plesk verwaltet werden, kann man ein SSL-Zertifikat ganz leicht über die Weboberfläche für die jeweilige Domain bestellen.
Wenn Sie das SSL-Zertifikat für Ihre Domain aktiviert haben, können Sie in Ihr WordPress Backend gehen und in den Einstellungen unter Allgemein die WordPress-Adresse (URL) sowie die Website-Adresse (URL) von http auf https umstellen. Wenn alles geklappt hat, wird ab sofort beim Aufruf Ihrer Website in Ihrem Browser links neben der Adresse ein grünes Schloss angezeigt, welchse besagt, dass die Verbindung verschlüsselt ist. Besonders wichtig ist die SSL-Verschlüsselung, wenn Sie sensible Daten übertragen, wie z.B. beim Kauf in einem Online Shop.
WordPress raus aus dem Webroot
Traditionell installiert man WordPress im sogenannten Webroot-Verzeichnis des Servers, Ihres vHosts oder Ihres Webspacepakets. Meist handelt es sich um einen Ordner wie z.B. /var/www/vhosts/domainname/httpdocs/ Wenn Sie WP in diesem Ordner installieren, dann sind potenziell alle Dateien öffentlich aufrufbar. Dieser Gefahr entgehen Sie, wenn Sie die gesamte WordPress Installation eine Ebene weiter nach oben verschieben, aus dem Webroot heraus. Damit das korrekt funktioniert, müssen Sie noch eine Kopie der index.php sowie der .htaccess im Webroot lassen und in der index.php den Pfad zur Datei wp-blog-header.php anpassen.
Zwei-Faktor-Authentifizierung
Die Zwei-Faktor-Authentifizierung kennen Sie vielleicht schon von Ihrem Online Banking oder von Ihrem Facebook oder Google Account. Bei der Zwei-Faktor-Authentifizierung werden zwei unterschiedliche Komponenten, bzw. Kanäle verwendet um den Login durchzuführen, z.B. Login auf Website mit Passwort und PIN der über eine SMS oder Email verschickt wird. Inzwischen bieten auch einige WordPress Plugins diese Funktionalität an. Die weiter oben beschriebenen Plugins Wordfence und Jetpack haben dieses Feature bereits an Bord.
Jetzt ist der Artikel doch wieder mal etwas länger geworden als ich geplant hatte… Ich hoffe ich konnte Ihnen damit weiterhelfen. Happy WordPressing ;-)