16 Jul 2020
Das Versteckspiel… mit Fileless-Malware.
Bösartige Codes… irgendwie gelangen Sie überall…
Sie verhalten sich ein bisschen wie Gas, denn auch Gas möchte sich immer ausbreiten. Denn wie auch das Gas, finden bösartige Codes immer wieder „Löcher“ (Schwachstellen), durch die Sie entweichen können und unsere Computersysteme angreifen. Unsere Aufgabe (eher gesagt eine davon) ist es also, solche Löcher zu finden und zu stopfen. Dabei soll dies proaktiv geschehen, d.h. noch bevor die Malware die Schlupflöcher entdeckt. Somit können wir auf Malware lauern und sie gegebenenfalls abfangen.
Tatsächlich ist es gerade der proaktive Schutz und die Fähigkeit, die Angriffsmuster vorauszusehen und im Voraus eine effektive Schutzbarriere zu schaffen, die wirklich ausgezeichnete, hochtechnologische Cybersicherheit von dem Marketingmist anderer unterscheidet.
Heute möchte ich Ihnen hier ein weiteres Beispiel vorstellen, anhand Sie sehen werden, wie unser proaktiver Schutz vor einer weiteren, besonders raffinierten Art von Malware schützt: sogenannte Fileless-Malware (aka – dateilose Malware). Bei dieser gefährlichen Art von Geister-Malware handelt es sich um einen ausgeklügelten Schadcode, der gelernt hat, die architektonischen Nachteile von Windows zu nutzen, um Computer zu infizieren. Doch auch hier bietet unsere patentierte Technologie einen Schutz und eine effektive Bekämpfung dieser speziellen Cyber-Krankheit. Wie gewohnt erkläre ich Ihnen die komplexen technischen Zusammenhänge in verständlichen Sätzen ohne Fachchinesisch, und zwar genau so, wie Sie es wünschen: als leichten, packenden Cyber-Thrillers mit Spannungselementen.
Zunächst einmal, was bedeutet Fileless?
Nun, sobald Fileless-Malware einmal in ein Computersystem gelangt ist, kopiert sie sich nicht von selbst in Form von Dateien auf der Festplatte und vermeidet somit die Erkennung durch herkömmliche Methoden, zum Beispiel mit einem Antiviren-Monitor.
Wie kann also solche „Geister-Malware“ in einem System existieren? Tatsächlich befindet sie sich im Arbeitsspeicher von vertrauenswürdigen Prozessen! Schrecklich, oh ja!
Unter Windows (eigentlich nicht nur unter Windows) gab es schon immer die Möglichkeit, dynamische Codes auszuführen, die insbesondere für die Just-in-Time-Kompilierung verwendet werden, d.h. die Umwandlung von Programmcode in Maschinencode, und zwar nicht sofort, sondern nach Bedarf. Dieser Ansatz erhöht bei einigen Anwendungen die Ausführungsgeschwindigkeit. Und um diese Funktionalität zu unterstützen, erlaubt Windows Anwendungen, Codes im Arbeitsspeicher (oder sogar in einen anderen vertrauenswürdigen Prozessspeicher) zu platzieren und auszuführen.
Vom Sicherheitsstandpunkt aus kaum eine gute Idee, aber was kann man dagegen tun? Auf diese Weise funktionieren seit Jahrzehnten Millionen von Anwendungen, die in Java, .NET, PHP, Python und anderen Sprachen und für andere Plattformen geschrieben wurden.
Irgendwie war es zu erwarten, dass die Cyberbösewichte den dynamischen Code ausnutzen und dadurch Missbrauchsmöglichkeiten erschaffen würden. Eine der bequemsten und daher am weitesten verbreiteten Angriffsmethoden ist die so genannte „reflective PE Injection“. Hört sich kompliziert an, deshalb erkläre ich es Ihnen (Es ist eigentlich ziemlich interessant!).
Um eine Anwendung zu starten, muss man nur auf das Anwendungssymbol auf dem Desktop klicken: Einfach und unkompliziert, oder? Es sieht zwar einfach aus, aber in Wirklichkeit geht unter der Haube alles Mögliche vor sich: Es wird ein Systemlader aufgerufen, der die jeweilige Datei von der Festplatte nimmt, in den Speicher lädt und ausführt. Und dieser Standardprozess wird von Antiviren-Programmen kontrolliert, die die Sicherheit der Anwendung überprüfen.
Bei einer „Reflexion“ wird der Code ohne den Systemladers (und damit auch unter Umgehung des Antiviren-Monitors) geladen. Der Code wird direkt in den Speicher eines vertrauenswürdigen Prozesses platziert, wodurch eine „Spiegelung“ des ursprünglichen ausführbaren Moduls erzeugt wird. Eine solche Reflexion kann wie ein echtes Modul ausgeführt werden, das mit einer Standardmethode geladen wird, aber es ist nicht in der Liste der Module registriert und hat, wie oben erwähnt, keine Datei auf der Festplatte.
Im Gegensatz zu anderen Techniken der Code-Injection (z.B. über Shellcode) erlaubt eine Reflexions-Injektion zudem die Erzeugung von funktional fortgeschrittenen Codes in höheren Programmiersprachen und Standard-Entwicklungsframeworks ohne jegliche Einschränkungen. Man erhält also: (i) keine Dateien, (ii) eine Verschleierung hinter einem vertrauenswürdigen Prozess, (iii) Unsichtbarkeit für traditionelle Schutztechnologien und (iv) freie Hand, um Schaden anzurichten.
So waren natürlich die reflektierten Injections bei den Entwicklern von bösartigen Codes ein Megahit: Zuerst tauchten sie in Exploit-Packs auf, dann kamen Cyber-Spione ins Spiel (z.B. Lazarus und Turla), dann fortgeschrittene Cyber-Kriminelle (da es eine nützliche und legitime Art der Ausführung von komplexen Codes ist!), dann kleine Cyber-Kriminelle.
Auf der anderen Seite der Tatsachen sind Fileless-Infektionen nicht so einfach zu besiegen. Es ist also eigentlich kein Wunder, dass die meisten Cybersicherheitsmarken nicht allzu heiß darauf sind. Einige können es kaum schaffen.
Unsere Philosophie des Mehrebenenschutzes spiegelt sich in unseren Produkten wider. Sie schützen vor dieser Art von Bedrohung und vor anderen komplexen Angriffsvektoren dank: Verhaltensanalyse, spezielle Kontrollen für kritische Systembereiche, automatischer Schutz vor Exploits. Aber das Wichtigste hier: unsere patentierten (US 10691800, RU 2665910, RU 2659738) Technologien zur Analyse des Arbeitsspeichers, um verdächtige Aktivitäten aufzudecken, die von dateifreier Malware genutzt werden können.
Ein Beispiel: Unser System Watcher, der Benutzer proaktiv vor WannaCry und anderen Cyberattacken schützt und ständig die Aktivität von Anwendungen auf einem Computer überwacht, kann vertrauenswürdige Prozesse ausfindig machen, die ungewöhnliche oder sicherheitskritische Aktionen ausführen. In diesem Fall schauen wir uns das Ereignis sehr genau an und finden insbesondere heraus, in welchen Speicheradressen sich der Code befindet, der das Ereignis verursacht hat. Wenn wir eine verdächtige Adresse sehen, analysieren wir sie im Detail, um zu sehen, ob ein reflektierter Code vorhanden ist. Wir suchen also nicht nach einer Nadel im Heuhaufen, sondern führen stattdessen eine gezielte Analyse verdächtiger Adressen durch. Und so decken wir schnell und zuverlässig die listige kleine Fileless-Malware auf.