Schrödingers Malware

Um was geht es?

Willkommen im Quantenfeld der digitalen Forensik, wo Malware gleichzeitig existiert und nicht existiert – bis jemand python schroedingersmalware.py ausführt.
SchrödingersMalware ist keine Malware. Zumindest nicht in dem Sinne, dass sie etwas Schlechtes tut – und genau das ist ihr Zweck: Sicherheitstechnische Trainingsumgebungen mit glaubwürdigen, aber völlig harmlosen Artefakten zu versorgen. Das Ganze ist ein Spiel mit Wahrnehmung und Kontext – eine Übung in Täuschung, Nachvollziehbarkeit und Kontrolle.

Zusätzlich zum Hauptskript wurde ein SchrödingersCleanUp eingeführt, um nach der Simulation die entstandenen Artefakte zu entfernen und so die Ordnung wiederherzustellen. Es funktioniert wie ein digitaler Besen, der nach dem Experiment aufräumt – quasi das „Zurücksetzen“ des Labors auf den Ausgangszustand.

Beide Skripte folgen demselben Grundprinzip: Sicherheit durch Kontrolle.
Nichts geschieht automatisch, nichts ohne Zustimmung, nichts außerhalb einer isolierten Testumgebung. Die einzige echte Gefahr besteht darin, sie nicht in einer solchen zu verwenden.

Download

Der erste Schritt zur reproduzierbaren Analyse beginnt mit einem einzigen Klick. Laden Sie das Trainings- und Bereinigungswerkzeug herunter und führen Sie alle Tests ausschliesslich in einer isolierten Laborumgebung aus.

NameVersion
SchrödingersMalware1.0

Voraussetzungen

Bevor man mit diesen Skripten experimentiert, sollte das Labor vorbereitet sein.
SchrödingersMalware und SchrödingersCleanUp verlangen keine magischen Artefakte, wohl aber eine saubere Python-Umgebung und den gesunden Menschenverstand, sie nicht auf Produktionssystemen auszuführen. Die folgenden Voraussetzungen müssen gegeben sein:

VoraussetzungLinks
Python >= 3.8Python.org
pip install coloramapypi.org-colorama
pip install tqdmpypi.org-tqdm

SchroedingersMalware.py

Bevor es losgeht – hier die üblichen Checks: Snapshots anlegen (VM), Logs beobachten, und bitte — keine Experimente auf Produktionssystemen.

Wie könnte es auch anders sein: Zuerst müssen Sie mit PowerShell in den frisch heruntergeladenen Ordner navigieren und dann, als absolutes Highlight, können Sie das Hauptskript zur Erzeugung der Testdateien per magischem Befehl ausführen. Abenteuer pur!

Und als wäre das noch nicht genug: Weil das Skript natürlich auch gerne in die besonders geschützten Bereiche des Systems schreibt, findet eine Abfrage bei Skriptstart statt. Erst wenn Sie der Anfrage tapfer zustimmen, legt das Skript die entsprechenden Dateien in diesen heiligen Hallen an! Wenn abgelehnt wird, greift dsas Skript lediglich auf die gängigen Userpfade zu.

Wie auch immer die Entscheidung fällt, es wird eine Prozess-Log-Datei angelegt, in der alles Ereignisse nachgelesen werden können:

Zusätzlich legt das Skript eine Log-Datei an, in der die angelegten .xxx-Dateien und deren Dateipfade dokumentiert werden. Wichtig! Diese Datei darf nicht gelöscht werden, da sie für das CleanUp-Skript benötigt wird.

Je nach Konfiguration, ist das Skript in kürze beendet und alle Dateien wurden angelegt.

Konfigurationen im Haupskript

Und bevor wir uns kopfüber ins CleanUp-Skript stürzen, folgt an dieser Stelle noch ein kleiner, aber feiner Exkurs zu den sagenumwobenen Konfigurationsmöglichkeiten, die sich gleich zu Beginn im Skript-Header verstecken. Im dazugehörigen Bild sieht man übersichtlich aufgelistet, welche Stellschrauben man drehen kann: Hier können Sie beispielsweise festlegen, wie viele Testdateien erzeugt werden sollen, aber auch der Dateityp und spezielle Namensmuster lassen sich nach Herzenslust anpassen – damit wird das Skript zu Ihrem ganz persönlichen Testdateien-Lieferanten!

SchroedingersCleanUp.py

Nachdem das große Abenteuer der Analyse – ob nun triumphal oder eher grenzwertig – seinen fulminanten Abschluss gefunden hat, darf die VM endlich mit dem legendären CleanUp-Skript auf Hochglanz gebracht werden. Dabei wird natürlich nicht einfach irgendetwas gelöscht – nein, es werden die majestätischen Dateien in den erlauchten Pfaden der zuvor kunstvoll angelegten Log-Datei inspiziert und mit chirurgischer Präzision entfernt. Und wie startet man dieses Fest der Reinigung? Ganz standesgemäß natürlich, mit dem einzig wahren Befehl:

Natürlich darf das allseits beliebte Admin-Fenster auch beim CleanUp-Skript nicht fehlen: Gleich zu Beginn fragt das Skript nach Administratorrechten, damit es die besonders hartnäckigen Dateien in den geschützten Systembereichen beseitigen kann. Ein Hinweis am Rande: Sollten Sie die Einstellungen im Hauptskript verändert haben, denken Sie unbedingt daran, diese Anpassungen auch im CleanUp-Skript zu übernehmen – sonst bleibt das große Aufräumen aus!

Zuerst werden alle Dateien aus der Log-Datei gesucht und aufgeführt. Anschließend muss bestätigt werden, dass die Dateien gelöscht werden sollen:

Sobald Sie die Löschung bestätigt haben, entfernt das Skript die ausgewählten Dateien und durchsucht im Anschluss das Dateisystem nach weiteren Dateien, deren Namen das im Header definierte Schlüsselwort enthalten. An dieser Stelle werden ausschließlich die Dateinamen überprüft – eine Analyse der Dateiinhalte findet noch nicht statt. Falls hierbei zusätzliche Dateien entdeckt werden, etwa die Skripte selbst, Logdateien oder Prozessdateien, können diese auf Wunsch ebenfalls entfernt werden:

Zum Schluss können noch alle Dateien auf allen Volumen nach dem Stichwort durchsucht werden:

Dieser Prozess kann je nach Systemgröße und Dateianzahl lange bis sehr lange dauern. Zuvor werden aber alle Dateien registriert und dadurch eine Prozessanzeige eingeblendet:

Fehler werden, wie oben dargestellt, im Terminal angezeigt. In vielen Fällen handelt es sich hierbei um Dateizugriffe, die trotz vorhandener Admin-Rechte nicht durchgeführt werden können – es werden ja ALLE Dateien gescannt.

Treffer hingegen werden wie folgt dargestellt: