Ihre WordPress-Website ist im Netz kontinuierlichen Angriffen ausgesetzt. Das klingt beängstigend. Soll es auch, damit Sie diesem Beitrag die nötige Aufmerksamkeit widmen. Sie erfahren in diesem Beitrag die wichtigsten Maßnahmen, wie Sie Ihre Website-Investition gründlich absichern.
Inhalt
Auswirkungen durch Hacking
Zunächst, da wir immer wieder danach gefragt werden, was kann passieren?
- Ihre Website wird zerstört.
- Ihre Website enthält (versteckte) Werbung für Potenzmittel.
- Auf Ihrer Website verteilen sich Nachrichten von Terrororganisationen.
- Von Ihrer Website werden über Nacht 40.000 Spam-Mails verschickt.
- Ihre Website wird für Angriffe anderer Server ferngesteuert.
- Auf Ihrer Website werden Schadprogramme eingeschleust, die die Rechner Ihrer Besucher schädigen können.
- Google warnt im Suchergebnis vor dem Besuch Ihrer Website.
- etc. pp.
Leider widmen sich viele Website-Besitzer dem Thema Sicherheit erst, wenn das Kind schon in den Brunnen gefallen ist. Glauben Sie uns, wir erleben nicht selten Telefonanrufe von verzweifelten Personen, bei denen durch einen Hacker-Angriff die Arbeit mehrerer Monate oder sogar Jahre verloren gegangen sind. Das hat nicht selten großen Verlust von Umsatz und Reputation zur Folge.
Reicht Ihnen das um sich genügend Sorgen zu machen und für die Sicherheit Ihrer Website zu sorgen? Sehr gut!
Die beste Versicherung: Erstellen Sie Backups
100-prozentige Sicherheit gibt es nicht, aus diesem Grund sei die erste und goldene Regel schon jetzt genannt: Halten Sie Backups Ihrer Website bereit, denn dann lässt sie sich immer wieder herstellen.
Sollte trotz aller in diesem Beitrag beschriebenen Maßnahmen Ihre Website gehackt worden sein, dann freut man sich über ein gut organisiertes Backup. Was heißt gut organisiert? Das heißt zum einen, dass ein Backup der Dateien und der Datenbank nicht nur auf dem Server, sondern auch separat in der Cloud oder der lokalen Festplatte vorhanden ist. Zum anderen heißt das: Halten Sie ein Backup parat, das nicht kompromittiert ist. Sie werden erst im Laufe der Analyse feststellen, ob Ihre Website nicht vielleicht schon seit drei Wochen als SPAM-Schleuder dient. Den eingeschleusten Schadcode zu finden, kann dauern. Aus diesem Grund sind mehrere und auch ältere Backups wichtig.
Es existieren eine Reihe von guten Plug-ins, mit denen Sie Backups organisieren können. Wir empfehlen BackWPup, UpdraftPlus Backup and Restoration und die kommerzielle Lösung BackupBuddy. Alle diese Plug-ins beherrschen automatisierte, zeitgesteuerte und externe Speicherung von Backups. Wir haben einen Blog-Beitrag zu verschiedenen Backup Lösungen verfasst, in dem auch die Konfigurationsmöglichkeiten näher beschrieben sind.
Achten Sie auf einen sicheren Server
Nicht nur Sie müssen Ihre Hausaufgaben machen, sondern auch der Gastgeber Ihrer Website. Ihr Gästezimmer mag frisch gestrichen und aufgeräumt sein – sind Keller und Eingangsbereich nicht sicher oder gar einsturzgefährdet, wirkt sich das auch auf Ihr Wohlbefinden aus.
Eine Website kann auf mehreren Ebenen angegriffen werden. Davon ausgenommen ist auch nicht die Server-Ebene. Nach einer älteren Untersuchung erfolgen über 40% der Hacks aufgrund unsicherer Server.
Versionen von PHP, Apache, MySQL überprüfen
Bevor wir uns mit WordPress beschäftigen, muss das Fundament stimmen: Der Server. Nicht selten erleben wir, dass gerade ältere Websites auf ebenso alten Servern vegetieren. Das ist nicht nur schlecht für die Performance, sondern auch für die Sicherheit der Website. Informieren Sie sich bei Ihrem Hoster, welche Versionen von PHP, Apache/Ngnix und MySQL auf Ihrem Webspace laufen. Diese sollten so aktuell wie möglich sein und mindestens alle Sicherheits-Updates eingespielt haben.
Ein sehr hilfreiches Plug-in zur eigenständigen Überprüfung ist WP Server Stats, das Ihnen neben den Auskünften zu serverseitig verwendeten Software-Versionen auch noch viele weitere Informationen bereitstellt. Die jeweils aktuellsten Software-Versionen auf dem Markt der wichtigsten Komponenten Ihres Servers finden Sie hier:
- PHP: http://php.net/downloads.php
- MySQL: https://dev.mysql.com/doc
- Apache: https://httpd.apache.org/download.cgi
SFTP verwenden
Früher war bekanntlich alles besser. Sagt man. Und in den Anfängen des Internets hat man und haben wir die Dateien munter per FTP (File Transfer Protocol) auf den Server geschoben. Das sollte man heutzutage vermeiden. Es ist nicht auszuschließen, dass Ihr FTP-Passwort aufgrund einer unverschlüsselten FTP-Verbindungen abgehört wird. Daher schreiben einige Hoster mittlerweile den Einsatz von SFTP vor. Dabei werden die Zugangsdaten verschlüsselt übertragen. Selbst wenn Ihr Hoster das nicht vorschreibt: Nutzen Sie SFTP.
Sollte Ihr Hoster kein SFTP-Zugang anbieten, kann man auch mal wechseln.
Verwenden Sie keine Themes oder Plug-ins aus unsicheren Quellen
No risk, no fun? Bei dem Bau und Handling von WordPress-Websites raten wir von dieser Einstellung dringend ab. Sonst ist ein böses Erwachen durchaus denkbar.
Beziehen Sie Themes und Plug-ins nur aus sicheren Quellen und nicht über Tauschbörsen oder Warez-Foren. Die dort gelagerten Pakete sind nicht selten mit Schadcode infiziert. Sie müssen wirklich schon gute Gründe haben, ein kostenloses Plug-in oder Theme nicht ausschließlich aus den offiziellen Verzeichnissen auf der Website https://wordpress.org herunterzuladen.
Auch bei kommerziellen Varianten sollten Sie auf die Herkunft der Designvorlage oder der Erweiterung achten. Es gibt einige Plattformen, die mit windigen Geschäftsmodellen den Geiz die Sparsamkeit von WordPress-Einsteigern ausnutzen könnten.
Halten Sie Ihre Website aktuell
Oft lästig, aber wirklich notwendig: Regelmäßige Aktualisierungen Ihrer Website können eine der wirkungsvollsten Maßnahmen zum Schutz Ihrer Website sein. Bleiben Sie am Ball!
Durch die weite Verbreitung von WordPress kommt es immer wieder vor, dass kriminelle Energien bei WordPress selbst, dem Theme oder bei einzelnen Plug-ins auf Lücken stoßen und diese umgehend für Angriffe auszunutzen. Grundsätzlich ist das kein großes Problem, weil die ebenso große Gemeinschaft der WordPress-Entwickler schnell für Schließung dieser Lücken sorgt. Aus diesem Grund ist die erste und wichtigste Regel für den sicheren Betrieb Ihrer Website: Halten Sie sie unbedingt auf dem aktuellen Stand.
Zu Kalamitäten bei Updates kommt es unserer Erfahrung nach vor allem dann, wenn sehr alte WordPress- oder Plug-in-Versionen einen großen Versionssprung machen müssen. Sorgen Sie regelmäßig für Updates der einzelnen Bausteine, führen die Aktualisierungen in der Regel zu keinen Problemen.
In dem bereits erschienenem Beitrag Warum Sie Ihre Plug-ins regelmäßig updaten sollten gehen wir ausführlich auf die Gründe und Fallstricke bei den Updates von Plug-ins ein. Für Themes gilt das Gesagte analog.
Deinstallieren Sie unnütze Themes und Plug-ins
Weniger ist mehr! Nutzen Sie Ihre WordPress-Installation nicht als Sammelbecken für alte oder überflüssige Plug-ins. Legen Sie sich lieber ein externes Verzeichnis nützlicher Plug-ins oder schöner Themes an, auf das Sie auch später noch zugreifen können.
Jedes Theme, jedes Plug-in und jeder nachträglich eingebaute Code ist ein potentielles Sicherheitsrisiko für Ihre Website. Löschen Sie daher alle Themes und alle Plug-ins, die Sie nicht benötigen (Deaktivieren reicht nicht!).
Gehören Sie schon zu den fortgeschrittenen Anwendern und haben ein Child-Theme im Einsatz, müssen Sie auch die dort verwendeten Dateien überprüfen. Sicherheitslücken in PHP-Dateien älterer Theme-Versionen, die Sie im Child-Verzeichnis angepasst haben, können auch angegriffen werden.
Behalten Sie auch im Blick, welche Code-Snippets Sie in der functions.php oder anderen Dateien eingefügt haben. Wenn Sie auch dort nicht mehr benötigten Code haben: raus damit!
Schützen Sie den Zugang zu Ihrer Website
Ihr Administrator-Zugang oder Mitarbeiter-Zugänge zu Ihrer WordPress-Website stellen auch für eventuelle Hacker ein besonders schönes Eingangsportal dar. Es gilt, nur besonders sichere Schlüssel auszugeben oder wie ein Türsteher verdächtige Gestalten so gut wie möglich fernzuhalten.
Benutzername und Passwort
Viele Hacking-Versuche basieren darauf, im Login-Bereich einfach tausende von Benutzernamen und Passwörtern auszuprobieren. Diese „Brute-Force“ genannten Attacken sind immer noch sehr erfolgreich, weil viele Benutzer auch heute noch „admin“ oder andere gängige Benutzernamen und obendrein noch viel zu simple Passwörter wie „123456“, „qwert“ oder“Passwort“ verwenden. Das reicht nicht aus. Nutzen Sie auf keinen Fall den früheren Standardbenutzernamen „admin“ und prüfen Sie im Backend, ob dieser Benutzer noch existiert. Wenn ja: Löschen!
So löschen Sie ein admin-Benutzerkonto: Legen Sie einen neuen Nutzer mit Administrationsrechten an. Melden Sie sich unter diesem neuen Benutzerkonto an. Nun können Sie das alte admin-Konto löschen.
Ohnehin sollten Sie die Anzahl der Administratoren im Blick behalten. Löschen Sie die Accounts von nicht mehr bei Ihnen beschäftigten Mitarbeitern und Entwicklern. Wer nur bloggt, benötigt wahrlich keinen Vollzugang.
Verwenden Sie zudem ein sicheres, von WordPress generiertes Passwort. Wenn Sie keinen Passwort-Manager verwenden und sich das Passwort merken wollen, dann bilden Sie einen Satz und nehmen die Anfangsbuchstaben. „Weil ich klug bin, ändere ich an jedem 3. des Monats um 18 Uhr mein Passwort“. Daraus wird „Wikb,äiaj3.dMu18UmP“. Zum Beispiel.
Achten Sie darauf, Passwörter regelmäßig zu wechseln. Unserer Erfahrung nach wird diese Maßnahme oft vernachlässigt. In diesem Zusammenhang verwenden Sie bitte unterschiedliche Passwörter für Ihr E-Mail-Konto, SFTP-Zugang und WordPress.
Öffentlicher Name
Ein kleiner Tipp zum Schluss: Bei allen Benutzerrollen gilt es aus Sicherheitsgründen darauf zu achten, den Benutzernamen nicht öffentlich als Beitragsautor anzuzeigen. Ansonsten bieten Sie Bösewichten die erste Komponente zum Hacken Ihrer Website: Den Benutzernamen für das Login. Sie können dies verhindern, indem Sie im Profil des Benutzers unter „Öffentlicher Name“ einen Namen wählen, der nicht dem Benutzernamen entspricht. Zwar können „Experten“ den Benutzernamen auch aus der Datenbank auslesen, „Freizeiteindringlinge“ aber häufig nicht.
Login-Bereich Verschleierung
Der Login-Bereich jedweder WordPress-Site ist immer nach dem folgendem Muster angelegt: www.ihredomain.xx/wp-admin/. Bots und Hacker setzen daher oft hier an, um in Ihr System einzudringen. Eine Möglichkeit, sich vor automatisierten Hacking-Attacken besser zu schützen, besteht darin, den Standard-Pfad durch eine individuelle Login-URL zu verschleiern. Dies erledigt man am besten mit einem Plug-in wie Protect you Admin.
Login-Versuche begrenzen
Trotz sicherer Zugangsdaten besteht die Chance, dass Bots und Hacker über den Login-Bereich eindringen. Wir bei Elbnetz empfehlen daher unseren Kunden seit Jahren ein Plug-in, das Login-Versuche auf eine geringe Anzahl beschränkt: Limit Login Attempts Reloaded.
Sichern Sie sich vor Zugriffen
Nicht nur für Nerds — diese einfachen Änderungen sollten Sie in einer Ihrer wichtigsten Dateien vornehmen, um Ihre WordPress-Daten zu schützen.
Achtung: Bevor Sie Änderung an der .htaccess-Datei vornehmen legen Sie unbedingt Kopien an!
Die Datei mit dem seltsamen Namen .htaccess steuert diverse Verhaltensweisen des Servers und ist ein tolles Tool, um die Websiteauslieferung zu beeinflussen. Sie liegt im Wurzelverzeichnis der WordPress-Installation, kann aber zusätzlich in Unterverzeichnissen stehen. Bearbeiten können Sie die Datei per FTP, nein, natürlich per SFTP. Konkret modifiziert wird sie durch folgende Maßnahmen:
wp-config.php schützen
Eine der sensibelsten Dateien Ihres WordPress Systems ist die wp-config.php. In ihr sind u.a. die Datenbankzugänge eingetragen. Auf einem gut konfigurierten Server sollte diese Datei von außen nicht erreichbar sein. Folgendes Code-Snippet in der .htaccess verhindert Zugriffe auf die wp-config.php:
<Files wp-config.php> Order Allow,Deny Deny from all </Files>
Die xmlrpc.php deaktivieren
WordPress bietet eine sogenannte „XMLRPC-Schnittstelle“, damit man mit Software oder Diensten auf das Innere Ihrer Website zugreifen kann. Ähnlich wie beim Login-Bereich, wird dieser „Eingang“ aber auch sehr gern für Angriffe genutzt. Wenn Sie sicher sind, dass Sie die XMLRPC-Schnittstelle nicht benötigen, dann können Sie diese mit folgendem Code in der .htaccess deaktivieren:
<Files xmlrpc.php> Order Allow,Deny Deny from all </Files>
Fügen Sie diesen Code ganz am Ende der .htaccess ein.
Das ist das Mindestmaß. Weitere Maßnahmen werden ausführlich im Beitrag WordPress Sicherheit via .htaccess auf FastWP beschrieben.
Wehren Sie Angriffe mit einer Firewall ab
Altbekannt und immer wieder wirksam: Wie Ihren privaten Rechner können Sie auch Ihre Website mit der Einrichtung einer Firewall vor äußeren Angriffen schützen.
Eine Firewall überprüft den gesamten eingehenden Datenverkehr der Website und schützt sie vor unerwünschten Zugriffen. Sollte eine Anfrage böswillig sein, verbietet die Firewall den Zugriff auf die Website, indem sie mit einem HTTP-Statuscode 403 antwortet, dass der Zugriff verboten ist. Auf diesem Wege können Angriffe auf Ihre Website abgefangen werden, die auf Schwachstellen und Sicherheitslücken Ihrer Website zielen (Liste bekannter Sicherheitslücken in WordPress, Themes und Plug-ins).
Es gibt viele verschiedene Sicherheits-Plug-ins für WordPress, die auch die Funktion einer Firewall übernehmen. Wir empfehlen die Verwendung des Plug-ins BBQ: Block Bad Queries des bekannte WordPress-Experten Jeff Starr. Das Plug-in bietet ohne Konfigurationen schon einen ausführlichen Schutz.
Wer sich tiefer in das Thema einarbeiten möchte, findet auf dem bereits erwähnten Blog FastWP die Beiträge BBQ: Mehr Sicherheit und Performance und Security Plugins für WordPress: #8 BBQ/6G sowie in den englischsprachigen Beiträgen WordPress Web Application Firewall – BBQ:Block Bad Queries und 6G Firewall 2017 einen sehr guten Einstieg.
Und was ist mit HTTPS?
Die Umstellung auf HTTPS ist doch bestimmt eine der wichtigsten Maßnahmen überhaupt, wenn schon Google diese Sicherheitszertifikate so dringlich einfordert? Oder?
Anders als fälschlicherweise häufig angenommen, sichert HTTPS nicht Ihre Website direkt, sondern sorgt für eine verschlüsselte Kommunikation von und zu Ihrer Website. Wir haben in den Beiträgen Müssen auch Sie Ihre Website auf HTTPS umstellen? und Wie Sie in WordPress ohne Rankingverlust HTTPS einrichten bereits ausführlich das Thema besprochen.
Quelle Beitragsbild: Von pixelcreatures/pixabay Verwendung unter Creative Commons CC0.
4 Kommentare. Wir freuen uns über Ihren Kommentar
Sorry, aber es sind keinesfalls 40% der Hacks wegen unsicherer Server. Ich habe bei einem grossen Hosting Anbieter sehr eng mit der Absue Abteilung zusammengearbeitet und da wurden 99,999 Prozent der CMS nachweislich wegen Sicherheitslücken im Code oder zu einfachen Passwörtern gehackt. Keine Ahnung wie die auf diesen Wer kommen… :)
Zu 6. Öffentlicher Name
Wenn ich einen anderen „Öffentlichen Namen“ wählen und auf den Namenslink klicke um alle Beiträge von der Person aufzulisten, so sehe ich doch in der url den Benutzernamen für das Login, oder?
Falls ja, kann man sich davor schützen? Ist dies sicherheitsrelevant?
Moin Christian,
wenn Du den Link des Autors anklickst siehst Du den „Spitznamen“ als Teil der URL. Den Spitznamen solltest Du also unbedingt ändern.
Allerdings gibt es für Hacker Methoden, die Benutzernamen auch auf anderen Wegen herauszufinden. Einen hundertprozentigen Schutz gibt es hier nicht.
Aber man kann das Herausfinden des Benutzernamens wenigstens erschweren.
Ahoi!
Thorsten
Hallo,
danke für den guten Artikel. Leider habe ich trotz dessen ein Problem. Ich habe diverse Plugins im Einsatz die zum Beispiel die Login Attempts reduzieren. Securi zum Beispiel. Dazu nutze ich reCaptcha von Google und bin immer aktuell mit den Plugins und der Software. Außerdem kein User Admin und den sichtbaren Namen anders als den Usernamen.
Leider kann ich wegen der Benutzerregistrierung kein htaccess Schutz einrichten, weil sich die User sonst nicht anmelden können (werden danach auf wp-admin weitergeleitet).
Was kann ich alternativ machen? Habt ihr eine Idee? Denn ich werde scheinbar attackiert mit mehreren tausend IPs am Tag, die auf die wp-login zugreifen. Da die IPs aber alle anders sind, kann ich nichts sperren etc. Mein Passwort würde ich relativ sicher bezeichnen. Sicher ist man aber dennoch nicht. Jemand eine Idee?