WordPress Sicherheit: Hacks aufspüren mit Hacking-Logger

Sicherheit ist für einen Webshop, eine Webseite oder einen WordPress-Blog enorm wichtig. Schließlich sind bei einem Hack oder Einbruch nicht nur die eigenen Daten betroffen, sondern auch die der Kunden bzw. Webseitenbesucher. Zudem können Einbrecher versuchen, Malware oder Schadcode im Webauftritt des Opfers zu hinterlegen oder Spam darüber zu verbreiten.

Hacker-Angriffe auf WordPress-Blogs gehören heute zum Alltag. Umso wichtiger ist es, alle nötigen Schutzmaßnahmen zu treffen.
Foto: Adam Thomas, flickr, CC BY

Auch auf das Ranking bei Google kann ein Hack negative Auswirkungen haben, z.B. wenn eine Domain herabgestuft wird, weil dort Spamlinks gesetzt sind oder Malware verbreitet wird. Als Betreiber einer Webseite bzw. eines WordPress-Blogs tut man also gut daran, sich Gedanken um die Sicherheit des eigenen Systemes zu machen.

Es gibt eine Reihe von Maßnahmen, die man ergreifen kann, um den Angriff auf die eigene Webseite zu erschweren. Dennoch kann man nie 100%ig sicher sein, dass es wirklich keine Möglichkeit für einen Angreifer gibt, die Webseite oder den Blog zu hacken. Die Lücken, die zu einem Angriff führen, muss man nicht einmal selbst verursacht haben. Auch veraltete WordPress-Versionen, schlecht programmierte Themes oder Plugins können Angreifern das Tor zu der eigentlich gesicherten Webseite öffnen. Man sollte daher auch regelmäßig überprüfen, ob bereits ein Hack auf der eigenen Seite stattgefunden hat. Dieser Artikel soll zeigen, wie man mit Hilfe der Software Seolingo Hacking-Logger manche Formen des Website-Hackings leicht erkennen kann.


Absicherung von WordPress

Zunächst wollen wir aber auch auf die wichtigsten Maßnahmen eingehen, mit denen man insbesondere seinen WordPress-Blog absichern kann. Auch wenn man so vielleicht nicht alle Angriffe verhindern kann, fängt man damit „Amateur“-Hacker und Skript-Kiddies schon ab und erschwert den Einbruch. Manche geläufigen Tipps für die Sicherheit schützen nicht wirklich, sondern machen die Bedienung der eigenen Webseite nur umständlicher. Wir beschränken uns daher hier auf solche Tipps, die wir für wirklich sinnvoll halten.

  • Der einfachste Tipp ist der, sowohl WordPress selbst, als auch Themes und Plugins ständig aktuell zu halten. Wenn eine neue Version einer Komponente verfügbar ist, sollten Sie diese auch installieren. Gute Theme- und Plugin-Ersteller werden bekannt gewordene Sicherheitslücken in Ihren Produkten im eigenen Interesse über häufige Updates schnell ausmerzen.Ebenfalls sollten Sie darauf achten, woher Sie ihre Erweiterungen für WordPress (und auch für andere Systeme) beziehen. Wenn Sie die Erweiterungen nicht aus dem offiziellen WordPress-Repository beziehen, sollten Sie immer auch die Seriosität des Anbieters beurteilen. Bei unseriösen oder unprofessionellen Herstellern ist die Gefahr größer, dass Sicherheitslücken vorhanden sind oder dass gar vorsätzlich Schadcode in eine Software integriert wurde.Gerade bei Plugins gilt auch: weniger ist manchmal mehr. Zu viele aktivierte Plugins können sich negativ auf die Performance einer Webseite auswirken. Überlegen Sie sich daher immer genau, ob ein Plugin wirklich gebraucht wird. Manche WordPress-Plugins werden nur zeitweise benötigt, sie sollten in der restlichen Zeit dann zumindest deaktiviert werden.


  • Noch ein leicht umzusetzender Security-Tipp: beim Hochladen von Dateien via FTP sollte man immer eine SSL-verschlüsselte Verbindung nutzen. Standardmäßig werden von FTP-Programmen wie FileZilla unsichere Verbindungen aufgebaut, die von Angreifern abgehört werden können. Doch schon mit einer kurzen Änderung der Einstellung kann man die Verbindung absichern, sofern dies vom FTP-Server unterstützt wird. Bei FileZilla ändert man dafür einfach im Servermanager bei der Option „Verschlüsselung“ den Wert auf „Explizites FTP über TLS erfordern“. Sollte so keine Verbindung möglich sein, kann man alternativ auch die „implizite“ Option ausprobieren.


  • Weiterhin sollten Sie regelmäßig Backups Ihres Webauftritts anlegen. Sollte eine Webseite dann kompromittiert werden, können Sie im Zweifel einfach eine ältere Version wieder einspielen. Auch wenn ein Angreifer z.B. böswilligerweise Teile der Webseite oder gar die ganze Webseite löscht, ist es nützlich, ein Backup zur Hand zu haben.Ein vollständiger Backup besteht dabei in der Regel aus zwei Teilen. Zum einen benötigt man eine Kopie der Datenbank. Diese kann man bei MySQL z.B. über die PhpMyAdmin-Oberfläche erstellen. Auch WordPress-Plugins wie Better WP Security können solche Backups anlegen. Der zweite Teil des Backups besteht darin, die tatsächlichen Dateien, die auf dem Server vorhanden sind, zu sichern. Das können Sie z.B. über ein FTP-Programm erledigen. Auch hierfür gibt es Plugins, die das automatisch erledigen. Das Plugin BackUpWordPress legt komplette Backups an, also inklusive Datenbank und Dateien.


  • Viele Angreifer zielen bei WordPress darauf, via Brute Force das Zugangspasswort für einen der Benutzer zu erraten. Das Problem ist nämlich, dass WordPress hiergegen standardmäßig keinerlei Schutz mitbringt. Man kann dort beliebig oft versuchen, sich einzuloggen, ohne dass z.B. eine Sperrung durchgeführt wird oder ein Admin benachrichtigt wird. Mit verschiedenen Maßnahmen kann man diese Brute Force Attacken deutlich erschweren.Zunächst sollte der WordPress-Standard Benutzername „admin“ deaktiviert werden. Die meisten der Angriffe zielen darauf ab, das Passwort des admin-Benutzers zu erraten. Es sollten also immer individuelle Benutzernamen gewählt werden. Auch das verwendete Passwort sollte nicht zu leicht zu erraten sein. Danach sollte die Anzahl der Fehlversuche bei der Passworteingabe begrenzt werden. Dies gelingt mit Hilfe von WordPress-Plugins wie „Limit Login Attempts“. Dabei kann festgelegt werden, dass eine IP-Adresse für weitere Einloggversuche gesperrt wird, wenn sie zu viele Fehlversuche produziert hat. Hierbei ist zu beachten: das gibt keine absolute Sicherheit. Angreifer, die z.B. über ein Botnetz verfügen können ihre IP-Adresse leicht ändern und damit solche Sperren umgehen.


  • Sehr häufig wird auch der Admin-Bereich von WordPress via htaccess und htpasswd abgesichert. Via htaccess wird dabei auf Serverebene eine Passwortabfrage vorgeschaltet. Erst wenn man diese Abfrage erfolgreich gemeistert hat, wird man überhaupt auf den Server gelassen.Diese Vorgehensweise hat gleich mehrere Vorteile. Zum einen muss man nur zwei Benutzer/Passwort-Paare erraten, um Zugriff auf das WordPress-Backend zu erhalten. Zum anderen wird gerade bei Brute Force Attacken auch der Server geschont. Bei einem Einloggversuch in WordPress muss ein PHP-Skript ausgeführt und eine Datenbank-Abfrage getätigt werden. Wird der Angreifer über die htaccess aber schon vorher abgefangen, wird kein PHP-Skript ausgeführt und auch die Datenbank muss nicht bemüht werden, was letztendlich der Server-Performance zu Gute kommt.Anleitungen, um diese Art des Schutzes der Datei wp-login.php umzusetzen gibt es im Internet zur Genüge. Mit einer kurzen Google-Suche sollte sich immer eine aktuelle Anleitung finden lassen, z.B. hier.


  • Zudem gibt es noch eine ganze Reihe an Plugins, die sich die Verbesserung der Sicherheit einer WordPress-Installation zum Ziel gesetzt haben. Einige der bekanntesten Plugins wurden zuvor bereits angesprochen. „Limit Login Attempts“ erschwert Brute Force Attacken auf Login-Formulare. „Better WP Security“ ist ein Allround-Plugin, das viele verschiedene Tipps für die Verbesserung der Sicherheit von WordPress bereit hält. Das Plugin „Antivirus“ scannt die Theme-Templates auf verdächtigen Code. Das Plugin kann so konfiguriert werden, dass es den Scan täglich wiederholt und bei einem Fund den Admin per Mail informiert. Plugins wie Antispam-Bee oder Akismet helfen zudem dabei, einen Blog vor Spamkommentaren zu schützen (die sich zumindest negativ auf das Google-Ranking und natürlich auch auf die Reputation auswirken können).



Einbrüche frühzeitig mit Hacking-Logger entdecken

Man kann nie sicher sein, ob man mit den eingeleiteten Sicherungsmaßnahmen wirklich alle Einbruchsversuche abblockt. Auch Fehler in WordPress-Themes oder in Plugins kann ein Angreifer dazu ausnutzen, um sich Zutritt zu verschaffen. Man sollte daher seinen Webspace stets im Auge behalten und regelmäßig auf verdächtige Aktivitäten hin prüfen, die auf einen Hack hinweisen könnten.

In den allermeisten Fällen haben Hacks von Webseiten oder WordPress-Blogs eines der folgenden Ziele:

  • Malware verbreiten,
  • Spamlinks in Blog-Artikel einfügen,
  • Spam-Mails versenden.

Insbesondere wenn Malware verbreitet wird, kann dies mit Hilfe von Seolingo Hacking-Logger aufgespürt werden. Die verseuchten Dateien werden über den FTP-Zugang auf den Server geladen. Mit Hacking-Logger sollte man daher regelmäßig überprüfen, ob verdächtige Dateien auf den eigenen Server gelangt sind.

Security-Tool Hacking-Logger: Beschränken Sie die Ausgabe auf einen bestimmten Dateityp (hier: PHP)

Security-Tool Hacking-Logger: Beschränken Sie die Ausgabe auf einen bestimmten Dateityp (hier: PHP)

Bei der erstmaligen Prüfung erstellt man mit Hacking-Logger einen kompletten FTP-Scan des eigenen Servers. Über den Suche-Tab kann man nun gezielt nach ungewöhnlichen Dateien Ausschau halten. Zunächst sollten Sie daher schauen, ob es .exe, .zip, .rar oder .pdf-Dateien gibt, von denen Sie keine Kenntnis haben. Über den Filter unter der Tabelle im Suchen-Tab können Sie die Anzeige einfach auf diese Dateitypen beschränken. Jegliche verdächtige Funde sollten sofort entfernt werden und weitere Maßnahmen zur Sicherung eingeleitet werden (s.u.).

Aber auch andere Dateitypen können auf einen Hack der WordPress-Installation hinweisen. Angreifer werden z.B. versuchen, PHP-Dateien auf einem kompromittierten Server einzuschleusen. Gelingt dies, können darüber beliebige weitere Angriffe erfolgen: die PHP-Datei kann so konfiguriert sein, dass man darüber den Server oder die Datenbank jederzeit von außen steuern kann. Der Angreifer könnte also zunächst nur eine einzelne PHP-Datei platzieren, über diese dann aber später die Datenbank nach Belieben manipulieren oder jederzeit weitere Dateien hochladen. So lange eine dermaßen präparierte PHP-Datei vorhanden ist, hat der Angreifer auch dann noch Zugriff auf das System, wenn beispielsweise das FTP-Passwort in der Zwischenzeit geändert wurde.

Schadecode in WordPress-Template

In WordPress-Template eingefügter Schadcode eines Hacks, der mittels Hacking-Logger aufgedeckt wurde: Mit dem Code konnte der Angreifer jeden Zugriff auf den angegriffenen WordPress-Blog mitloggen

Auch für andere Zwecke kann eine PHP-Datei missbraucht werden, z.B. können eigene Bestandteile in bestehende Dateien eingefügt werden. So wäre es dann möglich, in Webseiten die Ausgabe nach eigenem Ermessen abzuändern oder jegliche Zugriffe auf Blog oder Webseite mitzuloggen.

Normalerweise gibt es innerhalb eine WordPress-Installation unzählige, völlig legitime PHP-Dateien. Auch jedes Plugin benötigt PHP-Dateien. Daher ist es nicht ganz so einfach, hier verdächtige Dateien aufzuspüren. Dennoch sollten Sie sich auch hier alle PHP-Dateien in der Suche anzeigen lassen und diese durch gehen. Auf folgende Merkmale sollten Sie achten:

  • PHP-Dateien befinden sich normalerweise nicht innerhalb des Upload-Ordners von WordPress. Werden PHP-Dateien innerhalb des Upload-Ordners gefunden, sollten diese unbedingt inspiziert werden, da hier die Chance groß ist, dass es sich um infizierte Dateien handelt.
  • Normalerweise werden PHP-Dateien auf Ihrem Webspace nur dann geschrieben, wenn z.B. WordPress (oder ein anderes verwendetes CMS), ein Plugin oder ein Theme aktualisiert oder neu installiert wird. Bei solchen Updates werden dann aber ganze Ordner neu geschrieben und nicht nur einzelne Dateien. Achten Sie also auf das Änderungsdatum der PHP-Dateien: hat eine einzelne Datei innerhalb eines Ordners ein gänzlich anderes Datum als die restlichen, so ist das verdächtig und die Datei sollte untersucht werden.

    Hat eine einzelne Datei ein anderes Änderungsdatum als die meisten anderen Dateien im selben Ordner, kann das auf einen Hack hinweisen.

    Hat eine einzelne Datei ein anderes Änderungsdatum als die meisten anderen Dateien im selben Ordner, kann das auf einen Hack hinweisen.

    Hacking-Logger hat hierfür das „Einzeldateien“-Feature. Dabei werden Dateien aufgelistet, die ein anderes Änderungsdatum haben, als die meisten anderen Dateien im selben Ordner. Auf diese Weise kann man leicht verdächtige Dateien finden. Wenn man im „Einzeldateien“-Tab mit der Maus über die Pfadangabe einer Datei hinüber fährt, erscheint ein Tooltip, der die restlichen Dateien im selben Ordner und deren Änderungsdaten anzeigt. Das erlaubt eine schnelle Einschätzung. Im Zweifel sollte eine verdächtige Datei auf den eigenen Rechner herunter geladen werden und dort manuell geprüft werden.


  • Dies gilt insbesondere für die WordPress index.php-Datei oder auch Template-Dateien in Themes. Da diese Dateien bei jeder Installation vorhanden sind, sind sie ein beliebtes Angriffsziel.

Das gleiche, was hier über PHP-Dateien gesagt wurde, gilt auch für Javascript-Dateien (Endung .js). Javascript wird auf dem Rechner des Webseitenbesuchers ausgeführt. Damit ist es der Gegenpart zu PHP, dessen Code immer auf dem Server ausgeführt wird. Auch das eignet sich für diverse Angriffsszenarien. Daher gelten hierfür ebenfalls die Anhaltspunkte: Javascript-Dateien sind nicht innerhalb des Upload-Ordners zu finden und sie werden nur bei Updates von Plugins oder Themes geändert. Gibt es also in einem Ordner eine einzelne Javascript-Datei, deren Änderungsdatum von dem der restlichen Dateien abweicht, könnte das eine kompromittierte Datei sein.

Eine weitere wichtige Datei, die bei WordPress-Installationen meist vorhanden ist, ist die „.htaccess“. Auch hier sollten Sie ein genaues Auge darauf haben, ob diese sich ohne Ihr Zutun geändert hat.



Regelmäßige Wiederholung des Scans

Sie sollten den Scan Ihres FTP-Zugangs möglichst regelmäßig wiederholen, z.B. täglich oder wöchentlich. Schließlich wollen Sie einen Hack Ihrer WordPress-Installation ja möglichst früh bemerken. Damit Sie nicht bei jedem Scan alle Ordner und Dateien durchgehen müssen, hat Seolingo Hacking-Logger ein nützliches Feature. Im Änderungen-Tab sehen Sie nur die Unterschiede zum letzten Scan. Sie können sich also ab dem zweiten Scan auf diese Liste beschränken und brauchen nur die dort gezeigten Dateien zu prüfen.



Legitime Dateiänderungen

Wenn Sie selbst Dateien ändern und auf Ihren FTP-Server hochladen ist das selbstverständlich eine legitime Änderung. Doch es gibt noch eine Reihe von weiteren Möglichkeiten, wann Änderungen völlig legitim sind.

Es können beliebige Verzeichnisse und Dateien für die Analyse ausgeblendet werden

Es können beliebige Verzeichnisse und Dateien für die Analyse ausgeblendet werden

Zuvor hatten wir bereits gesagt, dass bei Updates von WordPress selbst, von Themes oder von Plugins, die Daten auf dem Server geändert werden. Charakteristisch dafür ist, dass alle Dateien zur gleichen Zeit oder innerhalb von wenigen Minuten geändert werden. Auch manche WP-Plugins legen völlig selbstständig Dateien auf Ihrem Server an. Z.B. ist das der Fall bei Caching-Plugins, die regelmäßig häufig verwendete Daten im Dateisystem ablegen. Bei einem Scan findet man daher sehr viele Änderungen, die auf solche Caching-Plugins zurück gehen. Auch Logdateien werden von manchen Webhostern täglich automatisch auf dem Webspace abgelegt und erscheinen damit im Änderungs-Log.

Im Hacking-Logger können in der Konfiguration daher solche Dateien und Verzeichnisse ausgeblendet werden. Im Konfiguration-Tab auf der rechten Seite können beliebig viele Namensmuster eingegeben werden, die bei der Anzeige dann ausgeblendet werden. Es werden also alle Dateien und Ordner ausgeblendet, die eines der eingegebenen Muster in ihrem kompletten Dateipfad enthalten. Die Dateien werden übrigens trotzdem gescannt, sie werden lediglich in der Auswertung nicht mehr angezeigt. Sie können die Filterkriterien also jederzeit ändern und zuvor ausgeblendete Dateien wieder anzeigen lassen.



Was tun, wenn eine verdächtige Aktivität gefunden wurde?

Nicht jede Datei, die man über das zuvor beschriebene Verfahren als verdächtig identifiziert hat, muss definitiv einem Hack zuzuordnen sein. Spammy wirkende exe-Dateien deuten natürlich höchstwahrscheinlich auf einen Hack hin, aber bei PHP-Dateien ist das etwas schwieriger zu entscheiden. Als Laie ist es schwierig, Schadcode in einer PHP-Datei zu erkennen. Daher sollten Sie im Zweifel immer einen Experten zu Rate ziehen und diesem eine verdächtige Datei präsentieren.

Der FTP-Log enthüllt: der Hacker hat sich an den Header-Dateien von allen WordPress-Templates zu schaffen gemacht.

Der FTP-Log enthüllt: der Hacker hat sich an den Header-Dateien von allen WordPress-Templates zu schaffen gemacht.

Wenn Sie eine Datei gefunden haben, die vermutlich von einem Hacker platziert wurde, sollten Sie auch überprüfen, wie diese Datei auf den Webspace gelangt ist. Manche Webhoster (z.B. all-inkl) stellen dafür FTP-Logs bereit. In solchen Logs wird jeder Zugriff via FTP auf den Webspace genauestens protokolliert. Da Sie das Änderungsdatum der kompromittierten Datei haben, wissen Sie auch, wo Sie im FTP-Log suchen müssen. Schauen Sie also, ob zu der betreffenden Zeit die Datei geändert wurde.

Wenn dem so ist, sehen Sie nun auch die IP-Adresse im Log, von der aus der Zugriff erfolgt ist. Sie können nun im Log prüfen, ob auch andere Dateien über diese IP-Adresse (oder eine ähnliche IP) geändert wurde. Sie sehen im Log auch, welche Dateien von der IP-Adresse lediglich gelesen wurden. Oft kommt es dabei vor, dass z.B. die wp-config.php gelesen wird, weil dort die Zugangsdaten zur Datenbank des Blogs drin stehen.

Über den FTP-Log können Sie also in einem solchen Fall auch andere Dateien finden, die ebenfalls von dem Hack betroffen sind. Zunächst sollten nun natürlich die Standardmaßnahmen eingeleitet werden, d.h. alle Passwörter ändern. Das betrifft also das FTP-Zugangspasswort, aber auch das Datenbankpasswort sollte geändert werden. Insbesondere dann, wenn die wp-config.php vom Angreifer ausgelesen wurde und die Sicherheit des Blogs damit direkt bedroht ist. Haben Sie einen Zugang zu einem Verwaltungsbereich beim Webhoster, sollte auch dieses Passwort sicherheitshalber geändert werden.

Zudem müssen natürlich alle vom Hacker geänderte Dateien entfernt werden. Malware oder Spam kann einfach gelöscht werden. Wenn es sich um Dateien, die zu einem Theme, einem Plugin oder WordPress selbst gehören, handelt, sollten Sie die entsprechende Komponente komplett aktualisieren. Dadurch werden die kompromittierten Dateien durch legitime Versionen ersetzt. Schlussendlich ist es empfehlenswert, nun die gesamte bereinigte Installation einmal von einem Antivirus-Plugin überprüfen zu lassen.


Hacking-Logger beziehen

Hacking-Logger ist in jeder regulären Seolingo-Lizenz enthalten. Wenn Sie also bereits eine Seolingo-Lizenz besitzen, können Sie Hacking-Logger hier herunter laden und dann nutzen.

Hacking-Logger kann aber auch separat bezogen werden. Eine Jahreslizenz für die uneingeschränkte Nutzung von Hacking-Logger (und den anderen Seolingo Tools) kostet 15 € (inkl. Mwst.).



Trackbacks/Pingbacks

  1. WordPress Sicherheits-Tipps direkt vom FBI | Blogs optimieren - […] http://www.seolingo.de/wordpress-sicherheit-hacks-hacking-logger/ […]

Kommentar absenden

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.