KakapoWPKakapoWP
AccediProva gratis
Centro assistenza/Security/Configurare la sentinella dei file

Configurare la sentinella dei file

Gilt für: Kakapo Security·5 Min. Lesezeit

Erstaufnahme: den Stand anlegen

Beim ersten Start gibt es nichts zu vergleichen — der Durchgang legt stattdessen den Stand an: zu jeder Datei eine Prüfsumme (sha256, wo PHP es mitbringt, sonst md5), dazu Größe, Änderungszeit und Bereich. Das läuft in Häppchen, ab Werk bis zu 400 Dateien oder 5 Sekunden je Schritt; du kannst das Fenster schließen und später weiterfahren. Einen Prozentwert gibt es bei der Erstaufnahme nicht, weil die Gesamtzahl noch niemand kennt — angezeigt werden gelesene Dateien und offene Verzeichnisse. Wichtig vorweg: Der Wächter merkt sich, was er vorfindet, und hält es für richtig. Wenn du dir bei der Installation nicht sicher bist, lass vorher die Datei-Integrität (Kern gegen WordPress.org) und den Malware-Scan laufen. Nach einem Umzug oder einer Wiederherstellung ist „Stand verwerfen" der saubere Weg: alle Prüfsummen und Befunde fallen weg, der nächste Durchgang nimmt neu auf. Das ist unwiderruflich.

Was geprüft wird — und was nicht

Geprüft wird der Baum ab dem WordPress-Verzeichnis. Liegt wp-content oder das Plugin-Verzeichnis bei deinem Hoster außerhalb, kommt es als eigene Wurzel dazu und bekommt in der Anzeige ein eigenes Präfix. Eine wp-config.php, die eine Ebene über der Installation liegt, wird als benannte Einzeldatei aufgenommen und zu Beginn jedes Durchgangs zuerst geprüft — das Elternverzeichnis selbst wird bewusst nicht durchsucht, dort liegen bei den meisten Hostern fremde Installationen und Backups. Ab Werk ausgenommen sind das Uploads-Verzeichnis und 15 eingebaute Cache-, Temp- und Protokoll-Muster (unter anderem wp-content/cache, wp-content/upgrade, node_modules, .git, *.log); beide Schalter kannst du abstellen, dann dauert der Durchgang länger und jeder Bild-Upload erzeugt einen Befund. Eigene Muster ergänzt du in der Ausschlussliste: bis zu 100 Einträge, je höchstens 200 Zeichen. Ein Muster ohne Schrägstrich trifft jeden Pfadabschnitt dieses Namens, ein Muster mit Schrägstrich ist an der Wurzel verankert, * gilt innerhalb eines Abschnitts. Ein Muster, das auf alle Beispielpfade zutrifft, wird abgelehnt — es würde die Überwachung abschalten, ohne dass man es der Liste ansieht. Beim Eintragen wird gezählt und angezeigt, wie viele Dateien des aktuellen Stands darunterfallen. Nicht gelesen werden Dateien über der Größengrenze (ab Werk 16 MB, einstellbar 1 bis 512), unlesbare Dateien und alles hinter einer symbolischen Verknüpfung — diese Fälle stehen als eigene Zahlen im Ergebnis und gelten ausdrücklich nicht als „fehlt".

Befunde lesen und übernehmen

Es gibt drei Arten: geändert, neu, fehlt. Je Datei steht höchstens ein offener Befund in der Liste, mit erster Feststellung, letzter Feststellung und Zähler. Verglichen wird gegen den zuletzt bestätigten Stand, nicht gegen den letzten Durchgang — deshalb bleibt ein Befund stehen, bis du ihn übernimmst. Gleicht sich der Inhalt von selbst wieder an den Stand an (Update zurückgenommen, Datei zurückgespielt), verschwindet der Befund; eine gemeldete neue Datei, die wieder weg ist, wird mit Pfad ins Aktivitäts-Protokoll geschrieben statt still gelöscht. „Stand übernehmen" zeigt vorher, was passieren würde, und arbeitet dann in Blöcken von 500: geänderte Dateien bekommen ihre neue Prüfsumme, neue kommen hinzu, fehlende fallen heraus. An den Dateien selbst ändert sich nichts — aber die alte Prüfsumme ist danach weg, also sieh dir alles an, was du nicht erklären kannst, bevor du drückst. Für die Ablage gibt es einen CSV-Export mit bis zu 2000 offenen Befunden samt alter und neuer Prüfsumme. Zwei Grenzen solltest du kennen: über 3000 offenen Befunden wird weiter gezählt, aber nichts mehr gespeichert (die Oberfläche sagt das), und vom Verlauf bleiben die 500 jüngsten übernommenen Befunde stehen. Ein abgebrochener Durchgang ermittelt keine fehlenden Dateien — dafür braucht es einen vollständigen Lauf.

Sofortmeldung bei heiklen Dateien

Ab Werk eingeschaltet. „Heikel" heißt hier nicht „wichtig", sondern: wer diese Datei ändern kann, führt eigenen Code aus oder kommt an die Zugangsdaten. Das sind wp-config.php, Server-Konfigurationen (.htaccess, .htpasswd, .user.ini, php.ini, web.config), Drop-ins (db.php, object-cache.php, advanced-cache.php, sunrise.php und Verwandte), mu-Plugins sowie PHP-Dateien an Stellen, an denen keine liegen sollten: im Uploads-Verzeichnis, in der WordPress-Wurzel und in wp-content außerhalb von plugins und themes. Diese Meldungen gehen am Ende jedes Häppchens raus, nicht erst am Ende des Durchgangs — auf einer großen Installation liegen dazwischen Stunden. Der Mindestabstand steht ab Werk auf 15 Minuten (0 bis 1440 einstellbar); was in dieser Zeit dazukommt, wird gesammelt und geht mit der nächsten Meldung raus, verloren geht nichts. Eine Meldung führt höchstens 200 Einträge auf, der Rest wird als Zahl genannt. Am Ende des Durchgangs und beim Abbruch wird der Rest ohne Rücksicht auf den Abstand geleert. Prüfe den Weg einmal mit der Probemeldung: sie sagt dir ausdrücklich, ob wp_mail() die Nachricht angenommen oder abgelehnt hat — ob sie zugestellt wird, entscheidet der Server dahinter. Eigene Muster kannst du zusätzlich als heikel eintragen; offene Befunde werden dabei sofort neu eingestuft, damit die Liste nicht zwei Wahrheiten zeigt.

Automatik und Zeitplan

Ab Werk läuft der Durchgang nur, wenn du ihn startest. Schaltest du die Automatik ein, wählst du zwischen stündlich, zweimal täglich, täglich (Vorgabe) und wöchentlich. Der erste Termin liegt bewusst 5 Minuten in der Zukunft, damit nicht mitten in deiner Arbeit im Backend ein Durchgang anspringt. Gerechnet wird ab dem Beginn des letzten Durchgangs, mit 5 Minuten Toleranz — sonst liefe ein langer Durchgang mit jedem Mal seltener. Der Cron arbeitet dieselben Häppchen ab und plant sich alle 30 Sekunden neu, solange etwas offen ist; fährst du gerade selbst im Browser, wartet er 120 Sekunden und greift nicht ins Lenkrad. Zwei Fahrer auf demselben Auftrag schließt ein Token aus, das mit jeder Antwort weiterwandert; die Sperre läuft nach 60 Sekunden ab, damit ein zugeschlagener Browser den Auftrag nicht dauerhaft blockiert. Ist in deiner Installation DISABLE_WP_CRON gesetzt, sagt dir die Meldung beim Einschalten, dass der Durchgang nur startet, wenn wp-cron.php von außen aufgerufen wird — also ein Server-Cronjob eingerichtet ist.

Questo articolo ti è stato utile?