Hintergrund
Was WordPress wirklich schützt
Eine normale Firmenseite sieht mehrere tausend Angriffsversuche im Monat. Fast alle sind automatisiert und suchen genau eine Sache: bekannte Lücken, die nicht geschlossen wurden.
Wie Angriffe auf WordPress tatsächlich aussehen
Die Vorstellung vom Hacker, der sich gezielt deine Seite aussucht, ist für die allermeisten Websites falsch. Angriffe laufen als Massenscan: Ein Skript fragt bei Millionen Domains ab, ob ein bestimmtes Plugin in einer bestimmten Version installiert ist. Trifft es, nutzt es die bekannte Lücke aus. Das dauert Sekunden, niemand sitzt davor.
Aus den Firewall-Protokollen unserer betreuten Seiten: Eine durchschnittliche Firmenseite wehrt zwischen 2.000 und 5.000 solcher Versuche im Monat ab. Die drei häufigsten Muster sind Login-Versuche mit geratenen Passwörtern, Abfragen nach verwundbaren Plugin-Dateien und Versuche, über Upload-Funktionen PHP-Dateien abzulegen.
Daraus folgt die Rangfolge der Maßnahmen.
Rang 1: Updates
Nichts anderes kommt auch nur in die Nähe. Die Lücke, die ein Scanner sucht, existiert nach dem Update nicht mehr. Wer Core, Theme und Plugins innerhalb weniger Tage aktualisiert, hat das Angriffsfenster auf nahezu null verkürzt. Wie das sauber geht, steht in der Anleitung.
Dazu gehört: Plugins, die seit über einem Jahr kein Update bekommen haben, ersetzen. Sie werden nie eine Lücke schließen, weil niemand mehr daran arbeitet. Der Artikel verwaiste Plugins erkennen zeigt, woran du sie erkennst.
Rang 2: Backups außerhalb des Webspace
Ein Backup verhindert keinen Angriff, aber es macht ihn beherrschbar. Nach einem Einbruch ist das Zurückspielen eines sauberen Stands fast immer schneller und sicherer als das Bereinigen. Voraussetzung: Das Backup liegt dort, wo der Angreifer nicht hinkommt.
- Speicherort außerhalb: Cloud-Speicher, eigener Server, externer Datenträger. Nicht im Ordner
wp-content/backups. - Mehrere Stände: Wer nur das Backup von gestern hat, hat nach einem Einbruch, der vor zwei Wochen begann, nur eine infizierte Kopie. 30 Tage Aufbewahrung sind ein guter Standard.
- Dateien und Datenbank zum selben Zeitpunkt. Sonst passen Bestellungen und Produkte nicht zusammen.
- Einmal im Jahr testweise zurückspielen. Siehe Checkliste.
Anleitung: WordPress-Backup erstellen.
Rang 3: Login härten
Die Login-Seite ist das zweithäufigste Angriffsziel. Drei Maßnahmen, die den Großteil abfangen:
- Keine Benutzer mit dem Namen „admin" und keine Benutzernamen, die man aus der Autoren-URL ablesen kann.
- Begrenzte Login-Versuche (Sperre nach fünf Fehlversuchen) und Zwei-Faktor-Authentifizierung für alle Administratoren. Die meisten Sicherheits-Plugins bringen beides mit.
- XML-RPC abschalten, wenn du es nicht brauchst. Die Schnittstelle erlaubt hunderte Passwort-Versuche in einer einzigen Anfrage. So geht es.
Rang 4: Firewall und Malware-Scan
Eine Web Application Firewall auf WordPress-Ebene (NinjaFirewall, Wordfence und ähnliche) prüft jede Anfrage, bevor WordPress sie verarbeitet, und blockiert bekannte Angriffsmuster. Sie ersetzt keine Updates, kauft aber Zeit, wenn eine Lücke bekannt wird und das Update noch nicht da ist. Dazu ein täglicher Scan, der Core-Dateien gegen die Original-Prüfsummen vergleicht und PHP-Dateien an Orten findet, wo keine hingehören (Upload-Ordner, Root). Eine Übersicht gibt der Vergleich der Security-Plugins.
Dienste wie Ammera Shield gehen einen Schritt weiter und teilen Angreifer-Adressen über alle betreuten Seiten: Wer auf einer Seite auffällt, ist auf allen anderen schon gesperrt, bevor er sie erreicht.
Rang 5: Härtung im Kleinen
Jede Maßnahme für sich ist klein, zusammen schließen sie die üblichen Seitentüren:
- Datei-Editor im Backend abschalten (
DISALLOW_FILE_EDIT). Ein Angreifer mit Admin-Zugang kann sonst direkt PHP-Code schreiben. - Debug-Modus auf der Live-Seite aus, Fehlermeldungen nicht öffentlich.
- Verzeichnislisten abschalten, damit niemand den Inhalt von
wp-content/uploadsdurchblättern kann. - Security-Header setzen (Content-Security-Policy, X-Frame-Options, Referrer-Policy). Anleitung.
- Registrierung neuer Benutzer aus, wenn die Seite sie nicht braucht.
- Aktuelle PHP-Version. Versionen ohne Support bekommen keine Sicherheitsupdates mehr.
Was wenig bringt
- Login-URL verstecken. Nett gegen die dümmsten Bots, für alle anderen in Sekunden zu finden. Nicht schädlich, aber kein Ersatz für Login-Sperren und Zwei-Faktor.
- WordPress-Version verbergen. Scanner prüfen Plugin-Dateien direkt, die Versionsangabe im Quelltext interessiert sie nicht.
- Drei Sicherheits-Plugins gleichzeitig. Sie behindern sich, verlangsamen die Seite und erzeugen Fehlalarme. Eines reicht, richtig konfiguriert.
- Ein „Sicherheits-Score" von 100. Viele Plugins zeigen eine Zahl, die vor allem dazu dient, die Premium-Version zu verkaufen. Updates und Backups stehen in keinem Score, sind aber Rang 1 und 2.
Wenn es passiert ist
Anzeichen: Google warnt vor der Seite, Besucher landen auf fremden Seiten, im Backend gibt es unbekannte Administratoren, der Hoster meldet Spam-Versand, oder die Seite ist plötzlich langsam. Dann: Seite in den Wartungsmodus, alle Passwörter ändern (WordPress, FTP, Datenbank, Hoster), sauberes Backup von vor dem Einbruch zurückspielen, danach erst Updates. Die vollständige Reihenfolge steht im Artikel WordPress gehackt, was tun.
Der kostenlose Website-Check prüft von außen, was ein Angreifer sieht: WordPress-Version, erkennbare Plugins, XML-RPC, Security-Header, SSL. Dauert eine Minute, kein Login nötig.