Security

WordPress Security Checkliste (Mit Geheimtipps)

Security ist eines der wichtigsten Themen in der alltäglichen Arbeit einer Webdesign Agentur bzw. WordPress Agentur. Denn was bringt die schönste Website, wenn sie gehackt wird?

Natürlich gibt es keine 100%ige Absicherung, weil sich ständig neue Sicherheitslücken auftun. Dennoch kann einiges unternommen werden, um den schlimmsten Sicherheitsfallen aus dem Weg zu gehen. Ich habe hier eine kurze Übersicht über die wichtigsten Maßnahmen zusammengestellt, inklusive einiger Geheimtipps, die nicht in jedem Blog verraten werden.

Better safe than sorry, stimmt’s? Getreu diesem Motto gibt es einige Dinge, die vorbeugend getan werden können, um WordPress-Websites von vornherein und im laufenden Betrieb sicherer zu machen. Das ist meine Checkliste, nach der ich zur bestmöglichen Absicherung von Websites vorgehe:

Einige der genannten Maßnahmen sind wohl unter „eh klar“ zu verbuchen, da ich hier einen ausführlichen Gesamtüberblick geben möchte. Aber eine Wiederholung der wichtigsten Punkte schadet ja oft nicht. In den Kapiteln Plugins testen, Website scannen und Security Headers eintragen finden auch WordPress-Profis möglicherweise noch ein paar Geheimtipps und Kniffe gegen Angriffe. Und nun viel Spaß beim Kampf gegen die Panzerknacker:innen der Postmoderne!

Aktuelle WordPress-Version nutzen

Sicherheit beginnt mit einer aktuellen WordPress Version. Es tauchen immer wieder Sicherheitslücken auf, die die WordPress-Installation an sich betreffen, also den sogenannten WordPress Core. Dafür werden in der Regel nach der Entdeckung zeitnah Security Updates bereitgestellt, die dann rasch installiert werden sollten. Besser ist es aber, Updates auch ohne Dringlichkeit regelmäßig vorzunehmen, damit nichts übersehen wird und alles schon erledigt ist, bevor es riskant wird.

Vor jedem WordPress-Update muß ein Backup gemacht werden. Von automatisierten Updates rate ich grundsätzlich ab, da gelegentlich auch in WP Core-Updates Bugs oder Konflikte versteckt sind, die zu fatalen Fehlern auf der Website führen können. Wer besonders vorsichtig vorgehen möchte, testet das WP-Update zuerst auf einer Testseite / Staging-Seite, bevor es endgültig in der Live-Version vorgenommen wird.

Möglichst aktuelle PHP-Version verwenden

Das ist gar nicht so selbstverständlich, wie es vielleicht klingt. Viele Hosting-Provider haben standardmäßig nicht die neueste PHP-Version voreingestellt, sondern eine oder zwei Stufen darunter, um die Kompatibilität auch mit älteren Systemen sicherzustellen. Bei einer Neuinstallation rate ich aber aus Sicherheitsgründen zu einer Verwendung der aktuellen Version, solang alle CMS-Bestandteile und Erweiterungen damit kompatibel sind. PHP-Updates kannst du im Dashboard deines Hosting-Providers selbst vornehmen.

Bei einem Update der PHP-Version einer Website im laufenden Betrieb muss zuerst sichergestellt werden, dass alle Komponenten in WordPress, also Themes und Plugins, schon mit der aktuellen Version kompatibel sind. Das ist ebenfalls nicht selbstverständlich, da nicht alle Plugin-Developer ihren Code regelmäßig updaten. 

HTTPS einrichten

Das ist ein großes Thema, das eigentlich einen eigenen Blog-Beitrag erfordern würde. Daher hier nur ein kurzer Überblick, was HTTPS bedeutet und was in Bezug darauf zu beachten ist.

HTTPS steht für Hypertext Transfer Protocol Secure, also „sicheres Übertragungsprotokoll“. Dabei werden Website-Bestandteile verschlüsselt übertragen. Wenn du also zum Beispiel deine Kreditkartennummer auf einer Website bekanntgibst, wird diese nicht im Klartext gesendet.

Ob eine Website das HTTPS-Protokoll verwendet, ist an 3 Merkmalen zu erkennen: An der URL, die mit https:// beginnt, an dem kleinen Schloss, das am Beginn der URL-Zeile eingeblendet ist, und am Zertifikat, das beim Klick auf das Schloss-Symbol angezeigt wird.

Bei der Neuerstellung einer Website ist einer der ersten Schritte immer die Erstellung des Let’s Encrypt-Zertifikats, das bei den meisten Hosting-Providern direkt im Hosting-Dashboard eingerichtet werden kann.

Bei der Aktualisierung einer bereits älteren Website fehlt das Zertifikat und das HTTPS-Protokoll häufig, die Website läuft noch unter einer HTTP-Adresse und ist beim Aufruf im Browser als „unsicher“ markiert. Dann ist die Umstellung auf HTTPS dringend geboten, aber meist mit einem gewissen Aufwand verbunden, da die URLs aller Unterseiten, interne Links, manchmal auch Bilder-Pfade etc. umgestellt/weitergeleitet werden müssen, um die sogenannten „Mixed Content“ Fehler zu vermeiden. Das kann relativ zeitaufwendig sein, ist aber aus Security-Sicht unbedingt notwendig.

Mein WordPress-Plugin Tipp für die HTTPS-Umstellung: Really Simple SSL. Damit können viele wichtige Schritte unter Anleitung durchgeführt werden.

Anti-Spam Maßnahmen ergreifen

Viele Sicherheitslücken auf Websites werden durch Formulare, Kommentarfunktionen und andere Möglichkeiten für User, mit der Website zu interagieren, geschaffen. Bestenfalls ist es nerviger, relativ harmloser Kommentar-Spam, der einfach geblockt oder bei Bedarf entfernt wird. Aber schlecht abgesicherte Formular-Felder können auch  ein Einfallstor für ernsthaftere Hacker:innen-Attacken sein.

Um dies zu verhindern, sind verschiedene Maßnahmen ratsam: vollständige Deaktivierung der WordPress-Kommentarfunktion, Absichern von Formularen durch Captchas (Completely Automated Public Turing Tests) und Honeypots und natürlich die Installation von Antispam-Plugins. Zu den bekanntesten Antispam-Plugins zählen Akismet und Antispam Bee.

Plugins testen und updaten

Plugins sind praktisch und gleichzeitig eine der größten Security-Schwachstellen in WordPress. Daher ist bei der Installation und bei Updates Vorsicht geboten. Bei Plugin-Updates gilt dasselbe wie bei WP-Core-Updates: Nicht automatisch updaten lassen und vorher ein Backup erstellen!

Einerseits ist WordPress deswegen so erfolgreich und weit verbreitet, weil die Vielzahl an kostenfreien Plugins die Erstellung von WordPress-Websites schneller, komfortabler und auch kostengünstiger macht. Teilweise bieten Plugins umfangreiche Erweiterungen, die sehr aufwendig zu programmieren wären, wie im Fall von Caching Plugins, die Websites beschleunigen, Backup Plugins, oder auch oft benötigten Bausteinen wie Kalender-Modulen, Reservierungssystemen und Online-Shops.

Andererseits stammen Plugins von externen Entwickler:innen und erfüllen häufig nicht alle Qualitätskriterien und Sicherheitsanforderungen. Ich unterziehe Plugins daher mehreren Security-Checks, bevor ich sie auf einer Website verwende. Manche Plugins lösen Konflikte aus, die im nachhinein schwer zu beheben sind. Gelegentlich ist es auch mit einer Deinstallation des Plugins nicht getan. Wenn Plugins Fehler im PHP-Code enthalten, kann in manchen Fällen die gesamte Website nicht mehr richtig angezeigt werden.

Ich empfehle daher, vor der Entscheidung für ein Plugin mindestens folgende Schritte: zu unternehmen:  Anzahl der Installationen prüfen (wenn ein Plugin 5 Mio. mal installiert wurde, ist die Fehlerhäufigkeit geringer als bei einem Plugin mit 5.000 Installationen), Bewertungen durchlesen (besonders die 1-Stern-Bewertungen, die häufig Aufschluss über Kompatibilitätsprobleme geben) sowie sicherstellen, dass das Plugin mit den verwendeten WordPress- und PHP-Versionen getestet wurde. Diese drei Dinge lassen sich ganz leicht in WordPress selbst bzw. auf den Plugin-Unterseiten überprüfen.

Und nun der erste Geheimtipp: die geniale Website PluginTests. Dort werden über meine Basis-Kriterien hinaus durch regelmäßige, automatisierte Tests noch zahlreiche weitere Faktoren untersucht, unter anderem PHP-Fehlermeldungen. Das ermöglicht es, zum Beispiel Plugins mit seit längerem bestehenden Bugs zu erkennen und zu vermeiden.

Fehler im Code müssen zwar nicht unbedingt zu Funktionseinschränkungen führen, sind aber oft ein Anzeichen dafür, dass die jeweiligen Developer sich nicht umfassend und nachhaltig um ihre Plugins kümmern. Schlimmstenfalls bedeuten PHP-Fehler, daß Teile der Website nach der Installation nicht mehr funktionieren, oder es werden Einfallstore für Hacks wie Cross Scripting (XSS) geschaffen, welche die gesamte WordPress-Website gegenüber Security Threats vulnerabel machen.

Regelmäßige Backups erstellen

Backups, Backups, Backups – in den vorigen Kapiteln bin ich nicht müde geworden, das zu betonen. Ich mache vor größeren Updates auch schon einmal manuelle Datei-Backups über FTP und Datenbankexporte über PHPMyAdmin.

Für die meisten Anwendungsfälle ist aber auch ein Backup-Plugin ausreichend. Mittels Backup-Plugin lässt sich die Erstellung eines vollständigen Backup-Sets, das die WordPress-Dateien, Themes, Plugins sowie die Datenbank enthält, in sehr kurzer Zeit erstellen, sofern keine Fehler auftreten. Bei Backups (im Gegensatz zu Updates) befürworte ich es durchaus, diese automatisiert, zum Beispiel 1x täglich, zu erstellen und auf einen externen Server wie zB Dropbox zu übertragen. Es sollte aber regelmäßig anhand der Log-Dateien überprüft werden, ob die Backups auch fehlerlos sind.

Manche Backup-Plugins bieten zusätzlich umfangreiche Wiederherstellungsfunktionen an. Hier ist vor allem UpdraftPlus zu nennen, das ich aus diesem Grund häufig installiere.

Security-Plugin installieren

Die klassische Maßnahme, um eine Website  gegen Hacker:innen-Angriffe und andere Security Threats abzusichern, ist die Installation eines Security-Plugins. Ich verwende gerne die Gesamtlösung von WordFence.

Das Plugin deckt zahlreiche Bedrohungsszenarien ab und ist dabei relativ selbsterklärend, sodaß mit einer Installation von WordFence die Website mit einer Firewall, Malware-Scan und Schutz vor Bruce-Force-Angriffen ausgestattet wird, die teilweise sogar automatisch konfiguriert sind und nur noch wenige Einstellungen erfordern. WordFence greift dabei auf umfangreiche Malware- und IP-Blacklists zurück, die allen Nutzer:innen des Plugins zugute kommen.

Es gibt natürlich noch mehrere andere bekannte Security-Plugins wie Sucuri oder All in One WP Security, die hier nicht unerwähnt bleiben sollen.

Website auf Schwachstellen scannen

Vor lauter Security-Themen raucht uns manchmal schon der Kopf, auch ohne Hacker-Angriffe. Wie angenehm wäre es, wenn uns alle Sicherheitsrisiken unserer Websites auf einen Blick angezeigt werden würden?

Daher wird es nun Zeit für den nächsten Geheimtipp, nämlich das WordPress-Plugin WPScan, das mir von einem Cybersecurity-Experten empfohlen wurde. Über eine API-Schnittstelle wird täglich gecheckt, ob im WordPress Core bzw. in den installierten Plugins neue Sicherheitslücken aufgetaucht sind. Damit kann ich wesentlich schneller auf neu entdeckte Bedrohungen reagieren und habe eine ideale Ergänzung zur kostenfreien Version von WordFence.

Weitere empfehlenswerte Websites, um die Sicherheitseinstellungen von WordPress Websites zu prüfen, sind der SSL Test von Qualys und der umfangreiche Web Security Scan von ImmuniWeb.

Security Headers eintragen

Security Headers sind Sicherheitseinstellungen, die direkt in der .htaccess-Datei am Server eingetragen werden und die Zugänglichkeit bestimmter sicherheitskritischer Funktionen über den Browser einschränken oder ganz verhindern. In einem Blog-Artikel von Really Simple SSL werden einige der wichtigsten Security Headers vorgestellt. Auf der Website von serpworx kannst du die Security Headers deiner WordPress-Installation checken.

Links prüfen

Last but not least ist es ratsam, die ausgehenden Links auf Websites gelegentlich zu überprüfen. Und das nicht nur aus Sicherheitsgründen, um Website-Besucher:innen nicht durch Links auf Seiten mit schlechter Reputation  zu verärgern oder zu gefährden, sondern auch um Broken Links zu entdecken, die deinem Suchmaschinenranking schaden könnten. Für solche Checks stehen bewährte Tools wie der Broken Link Checker zur Verfügung. 

Fazit

Die Sicherheit von WordPress-Websites kann mittels zahlreicher Methoden erhöht werden. Meine Checklist beinhaltet 10 Security-Maßnahmen, die sicherstellen, daß etwaige Sicherheitslücken erst gar nicht entstehen oder rasch behoben werden können.

ADAWEB ist als WordPress-Agentur auf die technische und kreative Umsetzung individueller Websites spezialisiert. Informiere dich unverbindlich über unsere Leistungen und Preise.

Wir freuen uns auf deine Anfrage.

Über die Autorin*