Obfuscation: Gut als Sicherheit, schwer zu erkennen
Was ist Obfuscation?
Obfuscation ist eine wichtige Technik zum Schutz von Software, birgt aber auch Risiken, insbesondere wenn sie von Malware-Autoren eingesetzt wird. Wir haben uns das genauer angesehen.
Unter Verschleierung versteht man die Technik, Informationen absichtlich schwer verständlich zu machen, insbesondere im Bereich des Computercodes. Ein wichtiger Bereich der Obfuscation ist die Datenverschleierung, bei der sensible Daten unkenntlich gemacht werden, um sie vor unbefugtem Zugriff zu schützen. Dabei kommen verschiedene Methoden zum Einsatz. So können einige Daten durch Platzhalter ersetzt werden - so werden z. B. oft nur die letzten vier Ziffern einer Kreditkartennummer angezeigt, während die anderen durch X oder Sternchen ersetzt werden. Bei der Verschlüsselung hingegen werden die Daten in eine unlesbare Form gebracht, die nur mit einem speziellen Schlüssel entschlüsselt werden kann.
Bei der Verschleierung von Computercode werden eine komplexe Sprache und redundante Logik verwendet, um den Code schwer verständlich zu machen. Ziel ist es, sowohl menschliche Leser als auch Programme wie Decompiler zu täuschen. Dazu werden Teile des Codes verschlüsselt, Metadaten entfernt oder sinnvolle Namen durch bedeutungslose ersetzt.
Das Einfügen von ungenutztem oder bedeutungslosem Code ist ebenfalls eine gängige Praxis, um den eigentlichen Code zu verschleiern. Ein so genannter Obfuscator kann diese Prozesse automatisieren und den Quellcode so verändern, dass er zwar noch funktioniert, aber schwieriger zu verstehen ist. Andere Methoden der Verschleierung umfassen die Komprimierung des gesamten Programms, die Unlesbarkeit des Codes und die Veränderung des Kontrollflusses, um eine unstrukturierte, schwer zu wartende Logik zu schaffen.
Das Einfügen von Dummy-Code, der die Logik oder das Ergebnis des Programms nicht beeinflusst, ist ebenfalls üblich. Oft werden mehrere Techniken kombiniert, um einen mehrschichtigen Effekt zu erzielen und die Sicherheit zu erhöhen.
Endpoint Detection and Response (EDR)-Systeme arbeiten oft mit verdecktem Code, um weniger angreifbar zu sein. ExeonTrace hingegen ist als KI-gestütztes Network Detection and Response (NDR)-System völlig unsichtbar im Netzwerk und sendet selbst keinen Netzwerkverkehr, sodass Hacker die Lösung kaum erkennen oder manipulieren können und die Lösung nicht verschleiern muss.
Alles hat zwei Seiten
Leider ist die Obfuscation ein zweischneidiges Schwert—sie bietet Schutz, stellt aber auch eine Herausforderung dar: Obfuscation wird nicht nur von legitimen Softwareentwicklern, sondern auch von Autoren bösartiger Software verwendet.
Ein bekanntes Beispiel ist der SolarWinds-Angriff aus dem Jahr 2020, bei dem Hacker die Obfuscation nutzten, um Abwehrmechanismen zu umgehen und ihre Angriffe zu verbergen.
Ziel der Obfuscation ist es, Cyberangreifer zu anonymisieren, das Entdeckungsrisiko zu verringern und Malware zu verbergen, indem die Gesamtsignatur und der Fingerabdruck des bösartigen Codes verändert werden - selbst wenn die Nutzlast eine bekannte Bedrohung darstellt.
Die Signatur ist ein Hash, eine eindeutige alphanumerische Darstellung eines Malware-Elements. Signaturen sind sehr oft Hashes, können aber auch eine andere kurze Darstellung eines eindeutigen Codes innerhalb eines Malware-Elements sein.
(Bildquelle: CNBC)
Anstatt zu versuchen, eine neue Signatur zu erstellen, indem die Malware selbst verändert wird, konzentriert sich die Verschleierung auf Bereitstellungsmechanismen, um Antivirenlösungen zu täuschen, die sich auf Signaturen verlassen. (Vergleichen Sie dies mit dem Einsatz von Machine Learning, prädiktiver Analytik und KI zur Stärkung der Verteidigung).
Wie bei der „guten“ Obfuscation können auch bei der „schlechten“ Obfuscation verschiedene Techniken kombiniert werden, um Malware zu verbergen, so dass mehrere Ebenen der Obfuscation entstehen. Zu diesen Techniken gehören Packer, d. h. Softwarepakete, die Malware-Programme komprimieren, um ihr Vorhandensein zu verbergen und den Originalcode unlesbar zu machen. Krypter können Malware-Programme oder Teile von Software verschlüsseln, um den Zugriff auf Code zu beschränken, der ein Antivirenprodukt durch bekannte Signaturen alarmieren könnte. Eine weitere Technik ist das Einfügen von totem Code, bei dem unwirksamer, nutzloser Code zu Malware hinzugefügt wird, um das Erscheinungsbild eines Programms zu verschleiern. Angreifer können auch die Befehlsmodifikation nutzen, bei der die Befehlscodes in Malware-Programmen gegenüber den ursprünglichen Mustern verändert werden, wodurch sich zwar das Aussehen des Codes, nicht aber sein Verhalten ändert und die Reihenfolge und Abfolge der Skripte verändert wird. Die Exklusiv-ODER-Verknüpfung (XOR) ist eine gängige Verschleierungsmethode, bei der Daten so versteckt werden, dass sie nur von denjenigen gelesen werden können, die XOR-Werte von 0x55 auf den Code anwenden. ROT13 schließlich ist ein ASM-Befehl für „rotate“, der zufällige Buchstaben durch Code ersetzt.
Die Verschleierung des Codes ist aber nur der erste Schritt: Denn egal, wie viel Arbeit der Hacker in die Verschleierung des Codes zur Umgehung von EDR steckt, die Malware muss innerhalb des Netzes und nach außen kommunizieren, um „erfolgreich“ zu sein. Dies bedeutet, dass auch die Kommunikation verschleiert werden muss. Im Gegensatz zu früher, als Netzwerke schnellstmöglich gescannt wurden und sofort versucht wurde, Daten im möglichst großen, Terabyte-Bereich auf einmal zu extrahieren, kommunizieren Angreifer heute leiser, damit die Sensoren und Switches für die Überwachungstools nicht zuschlagen. Das Ziel, etwa über das Scannen an IP-Adressen zu gelangen, wird langsam verfolgt, um unter dem Radar zu bleiben. Auch die Reconnaissance, bei der die Bedrohungsakteure versuchen, erste Schwachstellen, über ihre anvisierten Opfer zu sammeln, z. B. über deren Netzwerkarchitektur, wird langsamer und undurchsichtiger.
Case-Studies: Verschleierte Angriffe
PowerShell
Ein „interessantes“ Beispiel für Verschleierung ist ein Microsoft Windows-Tool namens PowerShell, das von Angreifern missbraucht wird. Malware, die PowerShell missbraucht, verschleiert ihre Aktivitäten durch Techniken wie String-Kodierung, Befehlsverschleierung, dynamische Codeausführung, Umgebungserkennung, polyglottes Scripting und dateilosen Betrieb. Diese Methoden verbergen die wahre Absicht und Struktur der Malware und erschweren es den Sicherheitssystemen, sie zu erkennen und zu analysieren.
XLS.HTML
Bei einem kürzlich erfolgten Cyberangriff verwendete eine Gruppe von Hackern elaborierte Verschleierungstechniken, um ihre bösartigen Aktivitäten zu verbergen. Sie zielten auf eine Phishing-Kampagne namens XLS.HTML ab und änderten ihre Verschlüsselungsmethoden innerhalb eines Jahres mindestens 10 Mal, um nicht entdeckt zu werden. Zu ihren Taktiken gehörte die Verwendung von Klartext, Escape-Kodierung, Base64-Kodierung und sogar Morsecode. Dieser ständig wechselnde Ansatz zeigt, dass die Angreifer wissen, dass sie ihre Methoden ständig ändern müssen, um die Sicherheitsmaßnahmen zu überlisten.
ThinkPHP
ThinkPH ist ein Open-Source-Framework für Webanwendungen, das häufig zur Entwicklung von PHP-basierten Webanwendungen verwendet wird. Angreifer nutzten die Sicherheitslücken CVE-2018-20062 und CVE-2019-9082 in ThinkPHP aus, um Remote-Code auf Servern auszuführen. Sie umgingen typische automatisierte Tools, indem sie eine verschleierte Web-Shell namens „Dama“ von einem entfernten Server installierten, die permanenten Zugriff und weitere Angriffe ermöglichte. Diese fortgeschrittene Obfuscation zeigt einen ausgeklügelten Ansatz für Cyberangriffe.
Warum Sie nicht (ausschliesslich) Signaturen vertrauen sollten
Die signaturbasierte Erkennung ist bei bekannten Bedrohungen wirksam, aber sie kann weder Zero-Day-Sicherheitslücken noch verschleierte Angriffe erkennen. Dies ist der Grund:
- Variabilität der Obfuscation: Malware-Autoren verwenden unterschiedliche Techniken, um ihre Malware zu verschleiern. Dies kann es schwierig machen, zuverlässige Signaturen zu erstellen. Selbst kleine Änderungen im Code können dazu führen, dass die Signatur fehlschlägt.
- Polymorphe Malware: Polymorphe Malware ändert ständig ihre Struktur, um nicht entdeckt zu werden. Jedes Mal, wenn sie ausgeführt wird, sieht der Code anders aus, was die Erstellung statischer Signaturen unmöglich macht.
- Metamorphe Malware: Metamorphe Malware passt sich während der Ausführung an und ändert ihren Code dynamisch. Dies macht es noch schwieriger, statische Signaturen zu erstellen.
- Zero-Day Exploits: Signaturbasierte Lösungen verlassen sich auf bekannte Bedrohungen. Sie versagen bei Zero-Day-Exploits, die neu und unbekannt sind.
- False Positives: Wenn eine signaturbasierte Lösung zu viele falsch positive Ergebnisse liefert, kann sie ineffizient sein. Falschmeldungen können die Ressourcen des Sicherheitsteams belasten.
Es könnte eine Antwort geben...
Anomalie-basierte IDS-Lösungen dagegen erstellen ein Modell des normalen Systemverhaltens und erkennen so ungewöhnliche Aktivitäten.
NDR-Tools wie ExeonTrace passen sich kontinuierlich an, um der sich ständig weiterentwickelnden Cyber-Bedrohungslandschaft voraus zu sein. Sie spielen eine entscheidende Rolle bei der Erkennung von Malware und Command-and-Control-Kanälen (C&C), selbst wenn diese Obfuscation-Techniken verwenden. So machen wir das:
Behavioral Analysis (Verhaltensanalyse):
ExeonTrace überwacht das Verhalten des Netzwerkverkehrs. Es identifiziert ungewöhnliche Muster, die auf C&C-Kommunikation hindeuten könnten, wie z. B. unregelmässige Datenübertragungen. Es untersucht HTTP-Anfragen, DNS-Verkehr und andere Protokolle, um unregelmässiges oder verdächtiges Verhalten oder Kommunikation zu erkennen, die möglicherweise mit (verschleiertem) bösartigem Verhalten verbunden ist.
Erkennung von Anomalien auf der Ebene von Metadaten und KI-Analyse:
ExeonTrace analysiert Metadaten, um ungewöhnliche Muster zu erkennen, die auf verdächtige Aktivitäten hindeuten. Machine Learning-Modelle sind in der Lage, zu lernen, typische Verschleierungstechniken zu erkennen, die durch verdächtiges Verhalten im Netzwerkverkehr sichtbar werden, z. B. die Ausführung auffälliger Anweisungen, die mit verschleiertem Code verbunden sein könnten.
Da Malware sowohl innerhalb des Netzwerks als auch nach aussen kommunizieren muss, um erfolgreich zu sein, wird sie dies ebenfalls verschleiert tun: Angreifer agieren heute leiser und langsamer, um unentdeckt zu bleiben: ExeonTrace arbeitet daher mit Langfristiger Kommunikationsüberwachung und betrachtet, neben der Fähigkeit, Batch-Läufe innerhalb von Minuten durchzuführen, auch längere Zeiträume, z.B. 3 Tage, um Vergleichswerte zu haben, Regelmässigkeiten zu lernen und Unregelmässigkeiten zu erkennen.
Echtzeitwarnungen würden hier ausserdem zu einer grossen Anzahl von Warnungen führen, wenn beispielsweise jede Minute ein Ping-Scan erkannt wird, der aber nicht unbedingt bösartig sein muss.
ExeonTrace tauscht Bedrohungsdaten mit anderen Sicherheitslösungen aus und ermöglicht so eine schnellere Erkennung von bekannten Verschleierungstechniken und verdächtigem Verhalten.
Durch eine Integration mit Endpoint Detection and Response (EDR)-Lösungen korreliert ExeonTrace verdächtige Aktivitäten, die auf Endpunkten erkannt werden, mit dem Netzwerkverkehr. Dieser umfassende Ansatz verbessert die Sicherheitsanalyse entscheidend.
Mitre ATT&CK- und ZEEK-Protokolle bieten wertvolle Einblicke in Bedrohungen, die Obfuscation verwenden, und verbessern durch ihre Integration in ExeonTrace die Fähigkeiten zur Erkennung von Bedrohungen: In T1027 „Obfuscated Files or Information“ (Verschleierte Dateien oder Informationen) hebt Mitre ATT&CK Techniken hervor, mit denen Angreifer die Analyse ihrer Handlungen erschweren sollen.
Fall gelöst:
Die Sicherheitslücke in Log4j, auch bekannt als CVE-2021-44228 oder Log4Shell, ermöglicht es Angreifern, Remote-Kontrolle über anfällige Systeme zu übernehmen. Dies geschieht, weil die Log4j-Bibliothek bestimmte Eingaben nicht richtig verarbeitet. Angreifer können eine speziell gestaltete Anfrage senden, um diese Schwachstelle auszulösen, so dass sie bösartigen Code auf dem Zielsystem ausführen können. Diese Sicherheitslücke wurde bereits vielfach ausgenutzt, indem Angreifer Trojaner und Crypto-Miner auf den betroffenen Systemen installierten. Um nicht entdeckt zu werden, versteckt die Malware ihre Funktionen und Dateinamen durch Verschleierung.
ExeonTrace verwendet Metadaten zur Analyse des Netzwerkverkehrs und nutzt KI-Erkenntnisse zusammen mit der Mitre und Zeek Threat Intelligence. So können wir schnell effektive Abfragen erstellen, um alle verfügbaren Netzwerkdaten zu untersuchen. Wir suchen auch nach gängigen Kommunikationsmethoden wie LDAP, LDAPS und RMI, die häufig mit Log4j verwendet werden, und suchen nach anderen Indikatoren für Kontrollkommunikation, indem wir bestimmte Java-Klassen untersuchen, die bekanntermassen bei solchen Angriffen verwendet werden. Bei der Untersuchung der Sicherheitslücke in Log4j können wir schnell Anzeichen für Angriffsversuche auf mit dem Internet verbundene Server erkennen und bösartige Aktivitäten aufdecken.
Möchten Sie sehen, wie ExeonTrace in Ihrem System und für Ihr Unternehmen funktioniert? Sehen Sie sich diese aufgezeichnete Demo einer fortgeschrittenen Bedrohung an, um mehr zu erfahren!
Author:
Harald Beutlhauser
Senior Presales Engineer
email:
harald.beutlhauser@exeon.com
Share:
Published on:
22.07.2024