WordPress steht dir meist kostenfrei über den Webhoster zur Verfügung und ist in wenigen Klicks installiert. Es gehört mit Abstand zu den am häufigsten genutzten Content Management Systemen der Welt und ist durch den offenen SourceCode für Hacker besonders interessant. Schwachstellen und Sicherheitslücken sind schnell gefunden.
Das Beruhigende daran: es geht nicht um dich oder dein Unternehmen persönlich. Die Hintergründe der Hacker sind verschieden. Jedes angreifbare System wird irgendwann ausgenutzt. Dabei spielt es keine Rolle, ob es sich um einen kleinen privaten Blog oder eine große Unternehmens-Webseite handelt. Die Angriffe laufen automatisiert ab und treffen jeden. Durch die große Verbreitung von WordPress macht es den Anschein, besonders unsicher oder häufig betroffen zu sein. Das stimmt nicht!
Bei einem Angriff können aber sensible Informationen durchsickern, wichtige Daten gelöscht oder sogar die ganze Installation zerstört werden. Oftmals legen die Angreifer Schadcode ab oder verändern bestimmte Stellen im WordPress. Für dich ist das auf den ersten Blick kaum sichtbar und es kommt nicht zu Beeinträchtigungen. Die Malware lässt sich jedoch von außen steuern und kann sogar für deine Benutzer unangenehm werden. Der Webhoster erkennt solche Angriffe und Hacks und sperrt deine komplette Seite.
Beim Thema WordPress Sicherheit geht es darum, die Hacker auszusperren und es den Angreifern möglichst schwer zu machen. Bereits einfachste Grundlagen machen das System sicher, ohne Experte auf dem Gebiet sein zu müssen. Die häufigsten Sicherheitslücken sind:
Wordpress absichern beginnt mit einem guten Passwort und eigenem Benutzernamen. Das heißt: nutze nicht den typischen „admin“-Zugang und wähle ein wirklich sicheres Passwort mit Groß- und Kleinschreibung, mehreren Zahlen und Sonderzeichen. Ein großer Anteil der Hacks basieren auf gestohlenen oder zu einfachen Passwörtern. Bestenfalls lässt Du dir ein Passwort generieren. Nenne deinen administrativen Benutzer niemals:
Erstelle nach der Installation gleich einen neuen Administrator mit eigenem Namen und lösche den Standard-Benutzer im WP-Menü „Benutzer“. Speichere das dazugehörige Passwort aber bitte nicht im Browser. Besser eignen sich Passwortmanager, die als Cloud-Lösung arbeiten oder die deine Passwörter nur verschlüsselt ablegen und mit einem Master-Code arbeiten. Notiere niemals Passwörter in Klartext oder speichere sie in einem Textdokument. Versende keine Passwörter im Klartext per Mail oder über Messenger. Manchmal sind es nicht die zu einfachen oder kurzen Passwörter, sondern das Verhalten der Nutzer, das sie verrät.
Das WordPress selbst, die genutzten Themes und alle eingebundenen Plugins müssen aktuell gehalten werden. Veraltete Software bringt mit der Zeit immer Probleme mit sich und nur eine aktuelle und gepflegte Webseite hält Angriffen stand. Updates sind also nach der Veröffentlichung schnellstmöglich durchzuführen, da sie Sicherheitslücken schließen und Hackern automatisch den Weg versperren. Sobald der Community Schachstellen bekannt sind, bringen die Entwickler neue Versionen heraus. Prüfe also regelmäßig WP, Themes und Plugins auf eine Aktualisierung oder lass dich per Mail darüber informieren.
Tipp: Seit der Version WordPress 5.5 aktualisieren sich Plugins sogar automatisch.
Du bist mit einem Plugin nicht zufrieden oder hast dich für ein anderes Theme entschieden? Dann deaktiviere die betreffenden Elemente nicht nur, sondern lösche sie aus dem WordPress. Installiere nur Erweiterungen, die du auch wirklich benötigst und die von den Entwicklern auch noch aktuell gehalten werden. Das heißt, es sollten regelmäßig neue Versionen erscheinen. Im WP Dashboard unter Details erfährst du, wann die letzte Aktualisierung des Plugins öffentlich gemacht wurde.
Jedes neue Plugin birgt neuen Quellcode und damit wieder ein Sicherheitsrisiko. Darüber hinaus erhöht sich die Ladezeit, was sich negativ auf das Ranking auswirken könnte. Das gilt ebenso für unnötige Themes und Designvorlagen, die du am besten gleich löscht. Und soll es doch ein neues Plugin sein: verwende immer nur die Erweiterungen aus sicheren und vertrauenswürdigen Quellen, zum Beispiel direkt von WordPress.org.
Die WordPress Sicherheit hängt zu einem Teil vom Webhoster ab. Er sorgt serverseitig für ein sicheres System und macht es Angreifern schwer. Beim Managed Hosting übernimmt er selbstständig alle wichtigen Updates der Serversoftware. Massenhacks lassen sich vermeiden, wenn mehrere WordPress Instanzen isoliert laufen und eigene Systemuser besitzen. Für das Hosting von Multisites sind deshalb keine Standard-Hostingpakete zu verwenden. Im deutschen Raum empfiehlt sich natürlich auch ein Hoster mit deutschem Serverstandort, wie beispielsweise all-inkl.com oder 1&1. Das reduziert Ladezeiten.
Sichere sämtliche Endgeräte und Computer ab, von denen auf die Webseite per FTP zugegriffen wird. Dein Computer birgt nämlich auch eine potenzielle Gefahr für einen Angriff. So kann ein auf dem Computer installierter Trojaner z.B. deine FTP-Zugangsdaten auslesen und diese an die Angreifer übermitteln. Mit den Zugangsdaten bekommt der Hacker die Möglichkeit den Schadcode direkt auf dem FTP-Server und damit auf Deiner Webseite zu platzieren.
WordPress gehackt oder Virus entdeckt? Ein Backup ist dein doppelter Boden. Erstelle am besten automatisiert und in regelmäßigen Abständen ein Backup deiner Webseite. Speichere es aber nicht auf dem gleichen Server, sondern in einer Cloud-Lösung oder lokal auf deinem Computer. Am dem gleichen Server könnte das angelegte WordPress Backup ebenso vom Schadcode infiziert werden.
Die Grundlagen sind für Einsteiger gut umzusetzen und bieten eine solide Basis. Es gibt natürlich noch viel mehr Wege, eine WordPress Seite sicher zu machen. Mit den folgenden Tipps stellst du Hackern förmlich Hürden in den Weg oder versperrst interessante Hintertüren. Viele von den Maßnahmen sind nur einmalig anzuwenden und erhöhen die Sicherheit deiner Website. Verhindert werden sollen:
Wichtig Die folgenden Abschnitte im Artikel sind für erfahrene Anwender gedacht. Du musst dich gut mit FTP auskennen, Grundlagen der PHP Programmierung beherrschen und die functions.php im WordPress kennen.
Die WordPress Dateiberechtigungen bestimmen, wer auf welche Dateien Zugriff hat. Sind die Berechtigungen falsch vergeben oder nicht richtig eingestellt, bekommen Hacker automatisch einen umfassenden Zugriff in das System. Per FTP nimmst du entsprechende Änderungen vor, verbindest dich mit dem Webspace und wählst per Rechtsklick die Dateiberechtigungen für einzelne Dateien oder ganze Ordner aus. Die folgenden Einstellungen werden nicht nur von WordPress empfohlen, sondern haben sich in der Praxis bereits bewährt:
Mit diesen Einstellungen darf WP selbst Ordner und Dateien erstellen, bearbeiten und löschen. Ein Nutzeraccount jedoch nur lesen und bearbeiten. Zudem darf kein Anderer die Zugangsdaten in der wp-config auslesen können. Du kannst die Datei aber auch komplett sperren für den Zugriff von außen.
Die Datei wp-config befindet sich im Hauptverzeichnis von WordPress und enthält viele sensible Daten, darunter die Zugangsdaten für die Datenbank. Niemand sollte diese Informationen auslesen oder darauf zugreifen können. Deshalb: sperre die wp-config Datei mit einem kurzen Befehl für Zugriffe von außen. Diesen trägst du als Code in die .htaccess im Hauptverzeichnis ein.
Darüber hinaus kannst du die Datei eine Ebene höher in das Root-Verzeichnis der Installation verschieben. Auch das beugt Angriffen vor.
Am besten bleibst du gleich bei der Bearbeitung der .htaccess-Datei. Sie ist förmlich die Basis der WordPress Sicherheit, riegelt einzelne Verzeichnisse ab oder sperrt einzelne Dateiaufrufe. Vor allem bei einem recht großen und umfangreichen wp-content Verzeichnis lohnt sich die Absicherung durch die .htaccess. Selbst Plugin-Sicherheitslücken lassen sich darüber abwehren. Diese Strategie hat sich seit Jahren für mich bewährt. Gleichzeitig steigert die richtige Einstellung auch die Performance deiner Webseite. Folgende Einträge sind empfehlenswert:
Bei BruteForce-Angriffen auf das WordPress-Backend zeigt sich, dass sehr häufig versucht wird, die Benutzernamen von Blog-Autoren zu verwenden um Zugriff zu erlangen. Auslesen kann man diesen durch das Anhängen einer Autor-ID an den Blogbeitrag (Beispiel: beispieldomain.de/?autor=1). Wordpress leitet diese Anfrage dann an die Autor-Seite weiter. In dieser ist der Benutzername in der Adresszeile dann sichtbar. Mit dem folgenden Eintrag in die .htaccess-Datei kann dies unterbunden werden:
Das „wp-content“-Verzeichnis beinhaltet alle dynamisch hinzugefügten Dateien. So hast du im „uploads“-Order das gesamte Bild- und Videomaterial. Im „themes“-Ordner sind die Designvorlagen gespeichert – und im „plugins“-Ordner befinden sich alle im WordPress installierten Plugins.
Bis auf ein paar Ausnahmen sollte es also nicht möglich sein, von außen PHP-Scripte auszuführen. Schreibe diesen Inhalt in die .htaccess-Datei im Grundverzeichnis deiner WordPress-Installation am besten direkt ans Ende. Vergiss aber nicht, die Original-Datei vorher zu sichern.
Wichtig: Die Ausnahme-Liste hegt keinen Anspruch auf Vollständigkeit. Nach gleichem Schema kann diese Liste aber erweitert werden.
Da neben Apache immer mehr Server mit Nginx ausgestattet werden, findest du hier die passenden Einträge dazu. Sie werden in der Oberfläche „Plesk“ unter „zusätzliche nginx-Anweisungen“ hinterlegt:
Auch hier gilt: Die Liste der Ausnahmen kann bei Bedarf erweitert werden. Es gibt verschiedene Plugins, welche von PHP-Aufrufen abhängig sind. Diese werden dann in die Liste eingetragen.
Möchtest du nur den Uploads-Ordner im WordPress absichern, so kannst du dir mit diesen 3 Zeilen in der htaccess weiterhelfen. Im Prinzip verhindert auch dieser Eintrag die Ausführung von PHP-Scripten in dem Ordner. Sie haben dort in der Regel nichts zu suchen.
Der Adminbereich von WordPress kann durch eine zusätzliche Passwortabfrage besser geschützt werden. Dazu sind vier Schritte notwendig:
Der includes-Ordner gehört zu den Kern-Ordnern von WordPress. Dieser dient wirklich den Grundfunktionen von WordPress und sollte nach außen hin möglichst wenig Angriffsfläche bieten. Hinterlege folgenden Code in die .htaccess-Datei um Zugriffe zu unterbinden:
Die functions.php befindet sich im theme-Verzeichnis. Sie steuert wichtige Funktionen deiner Webseite. Hier bindest du externe Scripte ein, baust eigene PHP-Funktionen oder hinterlegst etwas für die Sicherheit deiner WordPress-Seite.
Warnung: Sichere vor jeder Änderung an der functions.php immer die Original-Datei.
Nachfolgend habe ich drei wichtige Punkte aufgeführt, die dein Wordpress über die functions.php noch sicherer machen können:
Bei einem Login mit einem falschen Benutzernamen erscheint die Meldung: „Unbekannter Benutzername. Überprüfe ihn noch einmal oder versuche es mit deiner E-Mail-Adresse.“. Wenn diese Meldung nicht mehr erscheint, hat der Angreifer die Gewissheit, dass er einen korrekten Benutzernamen verwendet. Er kann also mit seiner BruteForce-Attacke fortfahren, indem er nun noch das Passwort testet.
Mit folgendem Eintrag in die functions.php reduzierst du die Aussagekraft der Fehlermeldung:
Nachdem du die Datei gespeichert hast, wird ein Angreifer nicht mehr wissen ob der Benutzername korrekt ist oder nicht.
Wenn Hacker trotz der Sicherheitsmaßnahmen bis ins Backend kommen, so verbietest du einfach die Bearbeitung von Themes und Plugins. Dazu fügst du folgende Zeile in die functions.php ein:
Ein Hacker kann nur dann gezielt ein WordPress angreifen, wenn er weiß, dass es sich auch wirklich um ein WordPress handelt. Er liest im Quelltext deiner Webseite z.B. in den Meta-Tags ab, welches CMS du in welcher Version verwendest:
Diese Codezeilen lassen den kompletten Generator-Eintrag verschwinden:
Nachdem du den Eintrag gesetzt hast, aktualisiere deine Seite und schau dir den Quelltext erneut an. Die Generator-Zeile wird nun nicht mehr ausgegeben:
Als SQL-Injection bezeichnet man einen Angriff, bei dem ein Hacker z.B. beim Absenden eines Formulars gleichzeitig SQL-Befehle mitsendet und diese durch die Datenbank ausgeführt werden. Das ermöglicht dem Hacker, zusätzliche Benutzer anzulegen, mit denen er sich dann einfach im WordPress Backend anmelden kann.
Es sei darauf hingewiesen, dass ein solcher Angriff relativ unwahrscheinlich ist. Am effektivsten wehrst du dich, indem du das Präfix der Datenbank-Tabellen umbenennst. Schon bei der Installation achtest du darauf, den Tabellen-Präfix der Installation nicht auf „wp_“ stehen zu lassen. Denn: kennt der Hacker den Namen der User-Tabelle nicht, kann er keine Benutzer anlegen.
Bei den meisten „One-Click“-Installationen der Webhoster wird schon automatisch ein zufälliges Präfix hinterlegt. Außerdem erkennen sehr viele Webserver den Angriffsversuch frühzeitig und sperren die IP-Adresse des Angreifers.
Bei der Zwei-Faktor-Authentifizierung wird neben dem Benutzernamen und dem Kennwort noch eine zweite unabhängige Komponente abgefragt. Das Ganze funktioniert beispielsweise über den OTP-Pin.
Empfehlenswert ist die Nutzung des Plugins „Two Factor Authentification“ (https://de.wordpress.org/plugins/two-factor-authentication/). Die Einrichtung ist denkbar einfach:
Beachte: Vor einem Handywechsel sollte in jedem Fall die Zwei-Faktor-Autentifizierung auch mit dem neuen Gerät durchgeführt werden. Ansonsten sperrst du dich selbst aus dem WordPress aus.
Sollte es dazu kommen, kannst du das Plugin nur noch per FTP aus dem Plugins-Ordner deines WordPress entfernen (/wp-content/plugins/ two-factor-authentication)
Dieser Ordner speichert sämtliche Inhalte und bietet eine große Angriffsfläche. Benennst du den Ordner einfach um, wissen die Hacker nicht genau, wo sie nach den Sicherheitslücken suchen sollen. Am besten führst du diese Maßnahme aus, bevor du etwas anderes installierst oder bevor du Content erstellt hast, quasi bei einer neuen WordPress Installation.
Folgende Schritte sind dafür notwendig:
Das Vorgehen ist auch bei bestehenden Installationen möglich, kann aber durch die festsitzende Permalink-Struktur erhebliche Anpassungen in deinen Inhalten erforderlich machen.
Kommt es bei einer bestehenden Installation nach Änderungen zu Fehldarstellungen, prüfst du in der Netzwerkanalyse deines Browsers (Strg + Shift + E), welche Dateien nicht geladen werden. Diese erhalten einen Fehlercode 404 und müssen im WordPress auf den neuen Pfad geändert werden (Beispiel: beispieldomain.de/wp-content/uploads/05/horst.jpg wird zu beispieldo-main/public/uploads/05/horst.jpg)
Handelt es sich um sehr viele Dateien, setzt du ein Plugin wie „Better Search & Replace“ ein. Nach der Umstellung entfernst du das Plugin einfach wieder.
Oftmals besteht der Wunsch, Konkurrenten den Quellcode der eigenen Webseite nicht zu zeigen. Faktisch ist das nicht möglich, da der Quellcode vom Server zum Browser übertragen werden muss. Andernfalls wüsste der Browser nicht was er anzeigen soll.
Du kannst es aber zumindest erschweren, indem du im Browser den Rechtsklick deaktivierst. Erweitere deinen Body-Tag um diesen Eintrag:
Den Body-Tag findest du in den Wordpress-Themes meistens in der header.php. Diese kannst du direkt im Wordpress unter „Design – Theme-Editor“ bearbeiten.
Einen echten Hacker verschreckst du damit natürlich nicht. Du erschwerst es aber einem unbedarften Webseitenbesucher, deine Bilder einfach per Rechtsklick zu kopieren.
Die Webseite sollte am besten über ein SSL-Zertifikat geschützt sein (https://). Die Datenübertragung zwischen dem Nutzer und deiner Webseite erfolgt dann verschlüsselt und die Echtheit des Servers wird durch das Zertifikat bestätigt. Diese Verschlüsselung kann in wenigen Schritten eingerichtet werden.
Mit folgenden Schritten aktivierst du die SSL-Verschlüsselung bei ALL-INKL.COM:
Das ist die halbe Miete. Bevor es mit Änderungen weitergehen kann, lege ein Backup der Datenbank an. Damit WordPress den neu geschaffenen SSL-Kanal auch nutzt, aktiviere auch im WordPress den SSL-Schutz. Folge dazu diesen Schritten:
Sobald die Umstellung erfolgreich umgesetzt wurde, kannst du das Plugin „Better Search & Replace“ wieder entfernen.
Hinweis: Das Plugin kann nur Änderungen in der Datenbank durchführen. Solltest du Bilder, CSS-Pfade o.ä. direkt in eine Datei geschrieben haben, passe diese Dateien im Nachgang manuell an.
Eine Absicherung kann auch über WordPress Security-Plugins erfolgen. Aus meiner Sicht ist das etwas kritisch zu sehen. In der Vergangenheit gab es immer wieder Probleme mit Sicherheitslücken genau in diesen Plugins (Vgl: https://www.cvedetails.com/vulnerability-list/vendor_id-14265/product_id-29407/year-2014/opxss-1/Wordfence-Security-Project-Wordfence-Security.html, https://www.cvedetails.com/vulnerability-list/vendor_id-12649/Ithemes.html)
Wenn du die oben genannten Anpassungen durchführst, kannst du auf Security-Plugins eigentlich verzichten. Willst du dennoch auch auf ein solches Plugin zurückgreifen, empfehle ich dir die kostenfreie Version von Wordfence. Diese stellt ein solides Grundkonzept dar.
Zum WordPress absichern gibt sehr viele Möglichkeiten. Bei allen Änderungen geht es darum, dem Hacker den Zugriff zu erschweren. Viele Hacks sind Bot-Angriffe. Es werden also Scripte ausgeführt die eine große Masse von Webseiten attackieren. Diese Bots müssen deine Seite zuerst als mögliches Opfer erkennen. Können sie das nicht, werden die Scripte einfach andere Opfer suchen, bei denen ein Angriff einfacher durchzuführen ist.
Mit den beschriebenen Anpassungen minimierst du das Risiko eines Angriffs. Einen 100%igen Schutz vor Hackern kann trotz aller Sicherheitsmaßnahmen nicht gegeben werden.