Aktuell häufen sich die Berichterstattungen zu sogenannter «Fileless Malware» ‒ also Malware, die ohne Dateien im Dateisystem auskommt und nur im Arbeitsspeicher lebt. In den letzten Monaten bekommt auch mein Team im InfoGuard Cyber Defence Center immer häufiger die Frage gestellt, ob man sowas denn überhaupt detektieren kann. Die kurze Antwort darauf ist JA, denn «leben» tut Malware immer im Arbeitsspeicher und ist damit mit Methoden erkennbar, die wir seit Jahren einsetzen. Wie das funktioniert? In diesem Blogbeitrag erfahren Sie es!
Die detaillierte Antwort ist natürlich etwas komplizierter. Der grösste Teil der eingangs erwähnten Berichte bezieht sich auf Malware, die auf der Haupt-CPU und im regulären Arbeitsspeicher läuft. Wenige andere Veröffentlichungen beschreiben Malware, die sich ausserhalb der Haupt-CPU und des Arbeitsspeichers befinden. Das ist dann Malware, die zum Beispiel in der Micro CPU des BIOS-Chips oder der Grafikkarte läuft. Auch der Supermicro-Vorfall, bei dem zusätzliche Chips auf das Motherboard eingebracht wurden, fällt damit in diese Kategorie.
Wann immer man sich mit Malware beschäftigt, gelten zwei Grundprinzipien: Erstens, «Malware can hide but it must run». Oder anders formuliert, dass auch bei der von vielen als Fileless bezeichneten Malware doch in irgendeiner Form Programmcodes auf das Zielsystem eingebracht werden muss, um sich im Arbeitsspeicher zu verstecken und vom Prozessor ausgeführt zu werden. An dieser Stelle hat der Malware-Autor zwei Optionen: Entweder die Malware läuft als eigener Prozess oder aber sie läuft im Speicher eines anderen, legitimen Prozesses.
Der erste Fall ist sehr einfach zu erkennen, da Prozess Executables üblicherweise ihre Originaldatei auf der Festplatte gespeichert haben. Ausführbarer Code, der kein pendent auf der Festplatte hat, fällt daher beim Hunting schnell auf.
Im zweiten Fall wird häufig ein legitimes Programm von der Festplatte gestartet und der Malware Code in den Speicherbereich dieser Applikation geladen. Diesen Vorgang nennen wir Memory Injection. Praktischerweise gibt es sehr viele verschiedene Methoden, um das zu erkennen. Eine davon ist standardmässig Teil unserer Hunting Sessions bei InfoGuard.
Bevor wir zum zweiten Grundprinzip kommen ist noch die Frage zu klären, wie der oben beschriebene Schadcode auf den Rechner kommt, wenn wir doch von dateiloser Malware sprechen. Eine der gängigen Methoden ist das Zustellen von manipulierten, mit Macros versehenen Dokumenten, die dann den eigentlichen Schadcode nachladen und in den Speicher einbringen. Ich persönlich habe daher im Gegensatz zu anderen Autoren immer ein Problem damit, dies als Fileless Malware zu bezeichnen. Letzten Endes existiert nämlich zumindest temporär und damit auch später forensisch nachweisbar eine bösartige Datei auf dem System. Verständlich, oder?
Ein anderer Weg um Schadcode einzubringen, ist das Ausnützen von Schwachstellen. In diesem Fall ist sogar ein Einbringen ohne Zwischenlagerung auf der Festplatte denkbar. Wie das geht? Wenn zum Beispiel eine Schwachstelle existiert, kann über das Netzwerk direkt ein Schadcode in den Speicher eingebracht werden – ähnlich, wie der von WannaCry genutzten Lücke. Solche Vorgänge führen anschliessend häufig zum Absturz der verwundbaren Applikation, hinterlassen jedoch nicht zwangsläufig mehr Spuren als ein Logeintrag auf der Festplatte.
Das führt mich zum zweiten Prinzip der Malware – «Malware must survive reboots». Das Langzeitgedächtnis eines Computers ist seine Festplatte. Aus diesem Grund muss selbst eine dateilose Malware die Festplatte nützen, um nach dem Neustart des Rechners wieder aktiv zu werden. Dazu kann sie sich an einer Vielzahl von Persistenz-Mechanismen bedienen, die von hexacorn sehr ausführlich in der Serie «Beyond good ol’ run key» beschrieben werden. Eine Methode, welche deren Detektion erschweren kann, ist, dass manche Malware Samples ihre Persistenz-Methode nach dem Start entfernen und beim Herunterfahren des Systems wieder einbauen. Auch für diese Beispiele gilt aber wieder der erste Teil dieses Blogeintrags – sie läuft entweder in einem eigenen Prozess oder injiziert sich in einen Fremdprozess.
Dies war nur eine kurze, relativ untechnische Zusammenfassung. Denn es ist wichtig, dass jeder von Ihnen – auch jene ohne technischen Hintergrund – die Problematik versteht. Selbstverständlich gibt es neben den erwähnten Methoden zur Erkennung «Fileloser Malware» auch noch viele andere Mittel wie zum Beispiel Netzwerk-Monitoring, die den Einsatz dieser Schädlinge erkennen kann.
Interessiert Sie das Thema «Fileless Malware»? Dann schreiben Sie uns! Bei Interesse werde ich das Thema auf unserem Cyber Security Blog gerne näher erläutern. Um auch keinen unserer weiteren Blogartikel zu verpassen, abonnieren Sie am besten gleich heute unsere Blog-Updates!
In der heutigen Bedrohungslandschaft ist niemand vor Cyberattacken sicher. Auch Sie nicht - egal, wie hoch Sie Ihre Sicherheitsmauern errichten. Umso wichtiger ist eine umgehende, effiziente und wirkungsvolle Reaktion auf Security Incidents. Wir unterstützen Sie im Ernstfall mit unserem Incident Response Retainer! In einem Workshop bereitet Sie unser Computer Security Incident Response Team (CSIRT) auf Security Incidents vor. Und wenn es dann so weit ist, können wir zusammen mit Ihnen richtig reagieren: schnell, kompetent und mit viel Erfahrung aus anderen Vorfällen – Tag und Nacht.