Dateiintegrität und Persistenz
Die Systemdateien, die InfraFence mit SHA-256-Referenzwerten überwacht (Konten, sudoers, SSH-Schlüssel, cron, systemd-Units, ld.so.preload) und wie Änderungen gemeldet werden.
Zuletzt aktualisiert:
Angreifer, die hineinkommen, wollen bleiben: ein neuer SSH-Schlüssel, ein Cronjob, eine systemd-Unit, eine vorgeladene Bibliothek. Der Agent speichert einen SHA-256-Fingerabdruck der Dateien, die sie dafür nutzen, und meldet jede Änderung.
Überwachte Dateien
| Dateien | Schweregrad einer Änderung |
|---|---|
/etc/sudoers, /etc/sudoers.d/* |
kritisch |
/root/.ssh/authorized_keys, /home/*/.ssh/authorized_keys |
kritisch |
/etc/ld.so.preload |
kritisch |
/etc/shadow, /etc/ssh/sshd_config |
Warnung |
/etc/crontab, /etc/cron.d/*, /var/spool/cron/crontabs/*, /var/spool/cron/* |
Warnung |
/etc/systemd/system/*.service, /etc/systemd/system/*.timer |
Warnung |
/etc/passwd, /etc/group, /etc/hosts, /etc/resolv.conf |
Info |
So funktioniert es
- Der Agent speichert beim Start Fingerabdruck und Größe jeder Datei und vergleicht sie dann alle 30 Minuten.
- Eine Änderung wird als Ereignis
integrity_changegemeldet, mit der Datei, dem alten und neuen SHA-256 und der alten und neuen Größe. Dieselbe Datei wird 6 Stunden lang nicht erneut gemeldet. - Dateien über 10 MB werden übersprungen.
- Die Fingerabdrücke werden bei jedem Start des Agenten neu erfasst, daher wird eine Änderung, die gemacht wurde, während der Agent gestoppt war, nicht gemeldet.
- Eine neue Datei in einem überwachten Verzeichnis, etwa eine neue Datei in
/etc/cron.d, kommt auf die Überwachungsliste und wird ab ihrer nächsten Änderung gemeldet.
Der Bildschirm Funde der Plugins für Hosting-Panels zeigt diese Änderungen neben den Malware-Funden.
Was die Sofortanalyse sagt
Die Sofortanalyse einer Änderung liest die Datei und die Art der Änderung, nicht nur das Ereignis:
| Datei | Änderung | Stufe |
|---|---|---|
authorized_keys eines beliebigen Kontos |
größer, oder Inhalt in einer zuvor leeren Datei: Wahrscheinlich wurde ein Schlüssel hinzugefügt | Hoch |
authorized_keys |
gleiche Größe, anderer Inhalt: Vielleicht wurde ein Schlüssel ersetzt | Hoch |
authorized_keys |
kleiner oder leer: Schlüssel wurden entfernt | Niedrig |
/etc/sudoers, /etc/sudoers.d/* |
geändert / kleiner | Hoch / Mittel |
/etc/ld.so.preload |
Inhalt hinzugefügt / geleert | Hoch / Mittel |
/etc/passwd, /etc/group |
größer / kleiner / gleiche Größe | Mittel / Niedrig / Mittel |
/etc/shadow |
jede Änderung | Mittel |
/etc/ssh/sshd_config |
jede Änderung | Mittel |
| Cron-Dateien, systemd-Units | hinzugefügt oder geändert / kleiner | Mittel / Niedrig |
Systemprogramme in /usr/bin, /usr/sbin, /bin, /sbin |
jede Änderung | Hoch |
/etc/hosts, /etc/resolv.conf |
jede Änderung | Niedrig |
Eine geleerte Datei wird an ihrer Größe oder am SHA-256 einer leeren Datei (e3b0c442…) erkannt. Die Analyse zeigt Größe und Fingerabdruck vorher und nachher sowie die Befehle zum Prüfen der Datei: bei SSH-Schlüsseln auflisten, ihre Fingerabdrücke mit ssh-keygen -lf vergleichen und prüfen, wer angemeldet war.
Der Agent vergleicht die Dateien alle 30 Minuten, daher sucht die Analyse SSH-Sitzungen auf demselben Server von 40 Minuten vor dem Ereignis bis 10 Minuten danach. Dann sagt sie zum Beispiel „Die Änderung geschah während der SSH-Sitzung von root von 203.0.113.9 (Italien)“ oder dass rund um die Änderung keine SSH-Sitzung erfasst wurde.
Als erwartet markieren
Wenn die Änderung von dir oder einem Kollegen stammt, öffne den Vorfall und wähle Als erwartet markieren, mit einer optionalen Notiz. Owner und Admins können das; Mitglieder sehen, wer es markiert hat, wann, und die Notiz. Die Änderung zählt nicht mehr als offen oder kritisch, das Ereignis bleibt im Verlauf, Wieder öffnen macht es rückgängig, und beides wird im Aktivitätsprotokoll erfasst. Eine spätere Änderung derselben Datei ist wieder offen. Ab Agent 1.0.34 zeigen auch das WHM-Plugin und infrafence-agent panel die Änderung als behoben. Wie Probleme behoben werden, steht unter Ereignisse und Aktivität.
Der Agent braucht nichts: Direkt nach dem Melden einer Änderung nimmt er den neuen Inhalt als Referenz, daher wird dieselbe Änderung nicht noch einmal gemeldet.
Überwachen, nicht blockieren
Die Dateiintegrität meldet nur: Sie setzt nie eine Datei zurück. Zusammen mit dem Risiko von SSH-Sitzungen erhöht eine Änderung während einer offenen SSH-Sitzung den Risikowert dieser Sitzung.
