bei Fremdzugriff benachrichtigen lassen

Watchdog WordPress Plugin: Einfacher Scanner zur Überwachung von Systemdateien

Hier stelle ich ein winziges Plugin für WordPress vor: Mein kleiner Dateiscanner prüft regelmäßig im Hintergrund, ob sich Dateien auf dem Webspace (durch Fremdzugriff) geändert haben. Wenn ja, sendet er mir eine E-Mail zu. Ich werde also benachrichtigt, wenn und wo genau eine Kompromittierung erfolgte.

Comicbild eines aufmerksamen HundesWenn irgendjemand Dateien innerhalb meiner WordPress-Installation verändert hat, spitzt der „Watchdog“ seine Ohren.

Es gibt ja viele Sicherheits-Plugins für WordPress. Die, die ich mir bisher angesehen hatte, erscheinen mir alle ziemlich aufgeblasen und locken mit Kaufangeboten. Das ist nichts für mich. Aber ich wollte so einen Dateiscanner (einen Watchdog) haben, welcher mich benachrichtigt, wenn irgendwo Dateien meiner Installation verändert worden sind. Der „Watchdog“ bellt dann sozusagen. Da ich kein Programmierer bin, habe ich mir so ein WordPress-Plugin durch künstliche Intelligenz erstellen lassen.

Und so schaut die simple Konfigurationsoberfläche aus:

Bildschirmfoto eines WordPress Plugins (Konfiguration), welches als Dateiscanner automatisch alle Dateien auf dem Webspace scannt.

Zur Konfiguration gelangt man über das WP-Backend unter WerkzeugeDateiscanner.

Das Watchdog-Plugin funktioniert so:

  1. Es wird zunächst einmalig ein Initial-Scan durchgeführt: Das gesamte Dateisystem auf dem Server wird erfasst und dessen Struktur und die Eigenschaften aller Dateien wird in einer eigenen Datenbanktabelle vermerkt. Insbesondere das Änderungsdatum der Dateien von WordPress sind hier relevant (bzw. s. g. Hash-Werte).
  2. Als nächstes wird regelmäßig und automatisch ein Prüf-Scan durchgeführt und dessen Ergebnisse werden mit denen des Initial-Scans verglichen. Hat sich hier etwas verändert, schaut der Watchdog aus seiner Hütte hervor: Es schrillen die Alarmglocken. Es wird dann eine E-Mail an die in den WordPress-Einstellungen hinterlegte E-Mail-Adresse versendet mit konkreten Angaben, welche Dateien eine Änderung erfahren hatten. Außerdem gibt es unter den Einstellungen meines Plugins ein Scan-Protokoll (Log) mit den letzten 50 Ereignissen (wenn es bisher Vorkommnisse gab).

    Hinweis: Damit automatische Scans im Hintergrund stattfinden können, muss die Website regelmäßig Besucher haben. Denn es wird hierfür der WordPress-eigene Pseudo-Cronjob-Mechanismus genutzt.

Die E-Mail schaut dann z. B. so aus:
Bildschirmfoto: E-Mail-Benachrichtigung bei einer Veränderung im Dateisystem von WordPress

Das Plugin kann auf Dateiänderungen, Dateilöschungen und auf Dateineuerstellungen hinweisen.

Obacht: Mein WordPress Datei-Scanner weiß allerdings nicht, wenn z. B. bestimmte Plugins ein reguläres Update erhielten. Denn hier werden die Dateien ja ebenfalls geändert bzw. ersetzt. Solche Meldungen kann man dann ignorieren. Dies betrifft dann natürlich auch das reguläre WordPress-Update des Core-Systems.

Nach einem regulären Update sollte man also gleich im Anschluss einen manuellen Initialscan durchführen, damit das System den derzeitigen (neuen) Zustand aller Dateien als Standard ansieht.

Dies geht dann allerdings nur, wenn man Updates (so wie ich) ausschließlich manuell anstößt – was ich als empfehlenswert betrachte.

Wie man dem ersten Screenshot entnehmen kann, kann man jedoch Ausschlüsse definieren. Diese Ordner bzw. Dateien werden vom Scanner nicht berücksichtigt. Es empfiehlt sich beispielsweise das Upload-Verzeichnis auszuschließen oder die llms.txt (falls man eine solche nutzt bzw. dynamisch ändern lässt). Denn ansonsten würde man jedes Mal eine Warn-E-Mail erhalten, wenn man z. B. neue Bilder hochgeladen hatte. Das Plugin bietet bereits typische Ordner an, die man mittels dem Setzen eines Häkchens vom Sicherheitsscan ausschließen kann (siehe Bild).

Ein typisches Szenario ist, dass jemand an die FTP-Zugangsdaten der eigenen Website gelangt ist und z. B. schädlichen JavaScript-Code in einer Datei platziert hat. Dies würde man häufig gar nicht merken – mit so einem Dateiscanner schon.

Wenn so etwas vorgekommen ist, sollte man dann natürlich sofort die Zugangsdaten für den Webspace ändern und die betroffenen Dateien mit denen aus einem Backup austauschen.

Zudem kann bei meinem „Watchdog“ natürlich die Scan-Frequenz eingestellt werden. Ich lasse lediglich zweimal täglich das Dateisystem auf Änderungen scannen. Man kann auch einstellen, wie oft eine E-Mail versendet werden soll. Dies ist allerdings nur sinnvoll, wenn man sehr häufig (z. B. halbstündlich) scannen lässt und primär die Ereigniseinträge im Backend beobachtet:

Bildschirmfoto Logeinträge mit Dateiänderungen im WP Watchdog

So schauen die Ereigniseinträge im Backend aus.

Nach jedem Prüf-Scan wird die Datenbank mit den Verzeichnis-Einträgen automatisch aktualisiert. Denn ansonsten würde der Dateiscanner ja weiterhin und erneut per Mail auf die Änderungen hinweisen. Bei manuellen, selbst verursachten Änderungen an bestimmten Dateien oder gleich nach einem Core-Update kann man den Initial-Scan auch manuell ausführen. Dann werden diese Änderungen sozusagen als Status quo in die Datenbank geschrieben und als Standard angesehen.

Download Einfacher Dateiscanner

Das Plugin besteht lediglich aus einer einzigen PHP-Datei, welche als Zip-Archiv verpackt ist. Man kann diese Zip-Datei also regulär über das WordPress-Backend innerhalb der Plugin-Verwaltung manuell installieren bzw. hochladen und dann aktivieren. Natürlich hat mein Watchdog keinerlei Einfluss auf das eigentliche Frontend der WordPress-Installation: Es ist ein reines Admin-Tool zum „Monitoring“ für das Backend.

Man kann sich den Inhalt der PHP-Datei durchaus ansehen bzw. ihn von einer KI prüfen lassen. So viel Code ist das nicht. Ich selbst habe jedoch kaum Ahnung von der Materie: Das Plugin hatte mir eine solche KI nach meinen Wünschen / Prompts generiert. Aber es funktioniert sehr gut und ist vor allem schlank: Natürlich gibt es dort keinerlei bunte Bilder und keine Aufforderungen, irgend ein Premium-Abo oder derlei Dinge abzuschließen.

➜ Es gibt hier natürlich keine Gewähr auf Funktionalität und Stabilität: Die Nutzung erfolgt auf eigenes Risiko. Ein Backup von Datenbank und Dateien ist vor der Installation empfehlenswert – und unabhängig davon sowieso.

Kommentar schreiben

Hier gibt es die Möglichkeit für Resonanz. Pflichtfelder sind mit * markiert.

Kommentare erscheinen nicht sofort bzw. werden manuell freigegeben. Mit dem Absenden des Formulars stimmen Sie der Datenschutzerklärung zu bzw., dass Ihre eingegebenen Daten gespeichert werden. IP-Adressen werden dabei grundsätzlich nicht gespeichert.