OK, wenn es ganz schlimm ist, dann rufe uns einfach an: Kontakt zu Taquiri. Auch außerhalb der Geschäftszeiten rufen wir in Notfällen gerne schnell zurück.

Eigentlich geht es hier aber darum, darzustellen, wie Du ein gehacktes WordPress selbst wieder bereinigen kannst. Dies ist erst mal nur eine Checkliste, wir werden im Laufe der Zeit Blogpostings zu den einzelnen Schritten verfassen, um sie genauer zu erklären.

Ruhe bewahren (aber nicht zu viel)

Du musst mit Bedacht vorgehen und darfst nicht übereilt handelt. Ruck-Zuck hat man aus versehen etwas gelöscht oder sonst einen Fehler gemacht, der alles nur noch schlimmer macht. Es ist gar nicht so schlimm, denn Du hast ja ein Backup, oder? Wenn nicht, dann solltes Du mal eine Sicherung der Datenbank und der Dateien machen bevor wir anfangen zu basteln.

Website offline schalten

Gehackte Websites geben in der Regel Malware von sich und/oder werden für Attacken gegen Dritte benutzt. Das sollte man zuerst abschalten um Schaden von Anderen abzuwenden. Also nimm die Website offline – zum Beispiel per .htaccess-Datei mit Passwortschutz. Das ist zwar nicht bombensicher, sollte aber die größten Gefahren abwenden.

Tiefe des Schadens analysieren

Jetzt schauen wir, was passiert ist. Offensichtlich waren irgendwelche “Bösewichte” zugange – in Form von Menschen oder (wahrscheinlicher) in Form von automatischen Programmen (Würmern). Vielleicht ist es aber auch bloß eine Fehlfunktion.

Externe Faktoren

Am angenehmsten wäre es, wenn die Website gar nicht gehackt wäre. Oft passiert es, dass man glaubt es sei etwas schlimmes passiert, in Wirklichkeit liegt der Grund aber ganz wo Anders.

  • Am einfachsten: Kontrolliere die URL. Gerade wenn man an neuen Computern die URL noch nicht in der History hat passiert es, dass man sich vertippt und im ersten Moment einen Schock bekommt.
  • Kontrolliere den Browser und den Computer: Oft nistet sich Malware in Computern ein und zeigt Dinge auf Websites an, die da nicht hingehören. Das Problem könnte also clientseitig sein. Versuch’s auf einem anderen Computer.
  • Kontrolliere das Netzwerk: Das DNS könnte fehlerhaft sein oder ein Proxy könnte die Site verunstalten. Gerade Mobilfunkanbieter arbeiten oft mit Zwangsproxys. Ein anderer Internetzugang schafft Klarheit.
  • Kontrolliere Einbindungen von Drittanbietern: Wenn Du Werbung oder sonstige Einbindungen von Drittanbietern (z.B. Facebook) auf der Website hast, dann könnte der Fehler auch dort liegen.

Hat man einen externen Faktor als Ursache ausgemacht, dann kann es sein, dass man sich zurücklegen kann. Es kann aber auch sein, dass man dem Ganzen nachgehen sollte: die Verantwortlichen sind zu informieren oder die Website ist so anzupassen, dass sie mit den wiedrigen externen Faktoren klarkommt.

Schwache Passwörter

Sind externe Faktoren ausgeschlossen, dann sucht man auf der eigenen Site weiter. Der einfachste Einfallspunkt für schwache Passwörter für die Benutzer. Automatisierte Passwort-Attacken probieren viele Passwörter in kurzer Zeit aus und können so über Konten mit zu schwachen Passwörtern Schad-Inhalte veröffentlichen. Kontrolliere also die Passwörter, ob die Schadinhalte unter Umständen auf diesem Wege in die Website gekommen sind. Auf jeden Fall solltest Du die Passwörter ändern.

Schadcode in den Nutzdaten

Von Benutzern werden Daten in’s WordPress hochgeladen. Diese landen in der Datenbank und im Uploads-Verzeichnis. In diesen Daten kann sich Malware verbergen – und zwar in dreierlei Form:

  1. Falsche Daten, Texte die dort nicht hingehören
  2. Malware (z.B. Javascript), die versucht, die Computer der Website-Besucher zu infizieren
  3. Malware, die versucht Dein WordPress zu übernehmen

Die ersten beiden Fälle kann man durch bereinigen/löschen der Daten beheben. Wurde aber zumindest der Versuch unternommen, die Programmdateien von WordPress und/oder den Server zu kompromittieren, dann muss man weitere Untersuchungen vornehmen.

Man erkennt den Versuch durch Analyse des hochgeladenen Schadcodes. Des weiteren sollte man die Dateien von WordPress (Core, Plugins und Themes) nach Dateien durchsuchen, die nicht mehr Original sind. Ein erster Hinweis auf eine Veränderung ist erst mal das Änderungsdatum in der Verzeichnisanzeige. Ausreichend ist es aber nicht, denn das Änderungsdatum kann eigentlich beliebig gesetzt werden.

Neben der technischen Analyse ist hier auch ein wenig gesunder Menschenverstand einzusetzen:

Vergleicht man den “Hack-Aufwand” für die Einblendung von “Viagra-Werbung” auf einer Website mit dem Aufwand für eine “Komplett-Übernahme” des WordPress, so ist der Aufwand für die “Komlett-Übernahme” wesentlich größer. Hat man einen Server komplett übernommen (WordPress für seine Zwecke modifiziert), so eignet sich die Website für verdeckte Angriffe auf Dritte und ist “wertvoll” für Bösewichte. Die “Viagra-Werbung” hingegen ist unübersehbar und wird vom Betreiber der Website wahrscheinlich bald abgestellt. Hat also eine Übernahme des WordPress stattgefunden, dann wird der Angreifer kein offensichtliches Defacement der Website machen, denn er will erst mal nicht auffliegen.

Je offensichtlicher also der “Befall” der Website ist, desto niedriger darf der Blutdruck jetzt sein.

Schadcode in Programmdateien

Worpress ist ein System mit eigenem Installer, automatischen Updates und Installation von Themes und Plugins auf Knopfdruck. Was für die Einfachheit der Verwaltung ein Segen ist, das ist für die Sicherheit ein Graus.

WordPress – das was der anonyme Websitebesucher sieht und für jeden offen zugänglich ist – hat die Berechtigung sich selbst zu ändern und durch etwas neues zu ersetzen. Das bedeutet, dass ein kleines Löchlein in der Sicherheit sich sehr schnell zu einem großen Desaster entwickeln kann. Ist der Angreifer “drin”, dann kann er frei Schalten und walten.

Sind (auch nur einzelne) Programmdateien von WordPress modifiziert, so wird man zumindest die Website komplett neu aufsetzen müssen.

Schadcode im Benutzerprofil des Webservers

Webserver sich auch nur Computer und Computer können mehr als nur Websites ausliefern. Man sollte also kontrollieren, ob sich die Schadsoftware am Benutzerkonto des Webservers (PHP) zu schaffen gemacht hat:

  • Wurden Cronjobs installiert?
  • Wurden Programme gestartet?
  • Ist Schadcode im .bashrc-File?

Sollte hier ein Befall gefunden werden, so sollte man zumindest in Erwägung ziehen einen neuen Webserver aufzusetzen.

Schadcode im System

Ist das System nicht Up-To-Date, so kann der Webserver-Benutzer unter Umständen durch Ausnutzung von Sicherheitslücken Zugriff auf das ganze System bekommen und auch einen neuen Kernel installieren. In diesem Fall kann man keiner Ausgabe des Computers mehr trauen und mal sollte auf jeden Fall die Betriebssysteminstallation entsorgen.

Schaden beheben

1. Neuer Server (oder neu installieren)

Beim Aufsetzen eines neuen Servers sollte man eine Distribution nutzen, welche noch lange mit Sicherheitsupdates versorgt wird und das automatische Installieren von Sicherheitsupdates aktivieren. Des weiteren sollte man nur die nötige Software installieren und nicht “auf Vorrat” Dinge auf die Festplatte schaufeln, die man vielleicht nie braucht. Samba, Printserver oder gar eine grafische Benutzeroberfläche haben auf einem Webserver in aller Regel nichts zu suchen.

2. Worpress neu aufsetzen

Ein neues WordPress ist schnell aufgesetzt. Hierbei sollte man darauf achten, dass die Berechtigungen richtig gesetzt sind. Viele Berechtigungen sind im laufenden Betrieb nicht notwendig. Es ist in normalen Betrieb nicht nötig, dass WordPress z.B. Schreibzugriff auf die .htaccess-Datei hat. Hier sollte man der Sicherheit Vorrang vor der Bequemlichkeit gewähren.

Den richtigen Dateien die richigen Berechtigungen zu geben kann im Detail kompliziert werden, aber es gibt einen ganz einfachen Grundsatz, den man immer befolgen sollte: Entweder können die Dateien ausgeführt werden oder sie können geschrieben werden. Nie beides Gleichzeitig.

Beispiel:

Das komplette Verzeichnis mit der WordPress-Installation ist für den Webserver nicht beschreibbar (Installation von Plugins und Updates laufen manuell). PHP-Dateien in diesen Verzeichnissen werden als PHP interpretiert und ausgeführt. Der Uploads-Ordner hingegen ist für WordPress beschreibbar. Der Webserver sollte dann aber so konfiguriert werden, dass PHP-Dateien in diesen Verzeichnissen nicht ausgeführt werden.

Zielsetzung ist es, dass man hinter der ersten Verteidigungslinie (WordPress passt auf, dass kein Schadcode hochgeladen wird) eine zweite Verteidigungslinie aufgebaut wird: Dort, wohin hochgeladen werden kann wird nichts ausgeführt.

Des weiteren sollten die eingesetzten Plugins überprüft werden: Sind sie sicher? Werden sie gepflegt? Gibt es bekannte Sicherheitslücken? Werden sie wirklich benötigt?

3. Nutzdaten bereinigen

Die Datenbankinhalte (insbesondere wp_posts, wp-comments und wp_users, aber auch die restlichen Tabellen) sollten nach Schadcode untersucht werden. Gleiches gilt für die Daten im uploads-Ordner. Nur Inhalte, die einer Sichtprobe standhalten sollten übernommen werden.

4. Passwörter ändern

Nach einem gelungenen Angriff auf die Website sollte man immer die Passwörter neu setzen. Sichere Passwörter sind ausreichend lang, so dass sie nicht durch wildes Ausprobieren (“Brute Force”) herausfinden lassen und sie sind auch außergewöhnlich genug, dass sie sich nicht durch gezieltes Ausprobieren (“Dictionary Attacke”) herausfinden lassen.

Des weiteren sollte das gleiche Passwort nicht noch für andere Dienste verwendet werden. Es wäre schade, wenn ein X-beliebiges Online-Forum komprimittiert wird und dadurch die Website leidet – nur weil man die gleichen Zugangsdaten verwendet hat.

5. Login absichern

Eine weitere Möglichkeit an Passwörter zu gelangen sind unsichere Verbindungen. Man sollte sich stets per https im WP-Admin einloggen und auch kein FTP mehr verwenden. Sichere Alternativen (SFTP) existieren. Bei der Arbeit am Schreibtisch im eigenen Netzwerk ist diese Gefahr klein, aber wer im öffentlichen WLAN eines Cafés bloggt, der setzt seine Website einer großen realen Gefahr aus.

Website online schalten

Wenn alle Arbeiten getan sind, dann kann man die Website wieder online schalten. Man sollte sich bei dieser Gelegenheit generelle Gedanken um die Sicherheit der Website machen und sich auf den nächsten Angruff schon weil vorbereiten…