zurück zur Übersicht

Malware Evasion Techniken

Solange es Computertechnik gibt, existiert auch Malware. Anfangs noch relativ harmlos, hat sie sich längst zu einer signifikanten Bedrohung entwickelt. Auch aufgrund des hohen Automatisierungsgrades in der Industrie kann mittlerweile Schaden in Millionenhöhe angerichtet werden.

Und eine Menge Geld kann verdient werden.

Damit Benutzer davor geschützt sind, wurde schon in den 70er Jahren nach Verfahren gesucht, um Angriffe zu erkennen und schädliche Dateien zu entfernen. Diese Entwicklung zwang Malwareautoren dazu, ihren Code zu optimieren, um weiterhin unbemerkt agieren zu können.

Grundsätzlich wird in der Prävention heute zwischen drei Erkennungsmethoden unterschieden: Durch den Analysten, eine Sandbox oder spezielle Security Tools (AV, Firewall etc.).

Die erste Hürde: AV Systeme aushebeln

Im Vergleich zu einer Sandbox führen Antiviren Systeme ein Programm in der Regel nicht aus. Die populärsten AV Systeme, besonders im COnsumer Markt, sind immer noch signatur- oder semantikbasiert. Es wird nicht das Verhalten, sondern die Datei selber untersucht. Informationen werden extrahiert und dann mit bereits analysierter Malware in einer Datenbank verglichen. Für das Extrahieren werden Signaturen erstellt oder schädliche Muster im Code erkannt. Ein damit entstandenes Problem: Wenn es nichts zum Vergleichen in der Datenbank gibt, hat man schlechte Karten. 0day Exploits erkennen? Nicht möglich.

Hacker nutzen das natürlich erfolgreich aus. Im schlimmsten Fall reicht es aus, nur ein paar Bytes am Code zu ändern und schon hat das Programm freie Bahn.

Selbst wenn das nicht funktioniert – es gibt viele weitere Möglichkeiten. Häufig wird polymorphic Coding verwendet. Der Name klingt komplizierter als das Prinzip eigentlich ist. Die Idee dahinter: Das Prinzip des mutierenden Grippevirus nachahmen. Den Code verändern, den Sinn nicht. Meistens wird das mit Kodierung, Kompression und/oder der Veränderung der verwendeten Bezeichnungen realisiert. Der Algorithmus, der dafür zuständig ist, ist schon in der Malware implementiert. Jedes Mal wenn die Datei zur Verbreitung eine neue Kopie von sich erstellt, verändert sie sich. Sie ist dann für die Datenbank „unbekannt“ und wird nicht gesperrt.

Sandkastenspiele: Wie versteckt man sich in der Sandbox?

Bei einer Sandbox handelt es sich um eine speziell geschützte, meist virtuelle Simulationsumgebung, in der die Software ausgeführt und dann ihr Verhalten analysiert wird. Theoretisch sollte so eine Malware beim Ausführen ihres Schadcodes ertappt und somit erkannt werden. Dieses Konzept liefert für den Hacker allerdings dennoch ein paar Schlupflöcher.

Einerseits kann er herausfinden, ob die Datei in einer speziellen Umgebung ausgeführt wird. Dabei sucht man nach kleinen Unterschieden, die auf die Präsenz einer virtuellen Maschine hindeuten, wie z.B Hooking Funktionen. – In der Red-Pill Technik versucht das Programm den IDTR Integer abzufragen. Dieses Register kann aber nur von einem Betriebssystem verwendet werden und wird in einer VM mit dem Wert 0xFFFxxxx überschrieben. Sobald erkannt wird, dass die Datei nicht im Produktivsystem sondern in einer Sandbox läuft, wird der Vorgang terminiert oder verändert. Dadurch sieht die Malware in der Sandbox unverdächtig aus.

Andererseits kann sich der Angreifer vor der Sandbox schützen, indem er Schwachstellen der Umgebung ausnutzt. Insbesondere können falsche Konfigurationen gefährlich werden. In letzter Zeit wurde festgestellt, dass häufig Microsoft COM bei der Implementierung von Malware verwendet wurde. Dadurch wird die Analyse durch eine Sandbox zusätzlich erschwert. Auch die Größe der Datei spielt eine nicht unwichtige Rolle. So analysieren manche Sandboxes ab einer bestimmten Größe nicht mehr. Das macht die Arbeit der Hacker umso einfacher: sie müssen den Code nur lang genug schreiben oder die Dateigröße durch irrelevante Zusatzdaten aufblasen.

Die letzte Verteidigung: menschliche Analysten austricksen

Ein Analyst oder „Threat Hunter“ untersucht Malware, indem er sein Know-How und benötigte Tools geschickt einsetzt. Das Verhalten der potentiellen Malware wird analysiert, gespeichert und für zukünftige Angriffe verwendet, (bezeichnet als Threat Intelligence, hier sind schon einige interessante Artikel zu diesem Thema erschienen).

Die Techniken zur Analyse sind vielfältig und können von Logmanagement bis hin zu Reverse Engineering reichen. Menschliche Analysten hinters Licht zu führen ist natürlich erheblich schwerer. Aber kein Grund aufzugeben. Beliebte Techniken um der Analyse zu entkommen, ist sinnlosen Code zu implementieren. Bis der Analyst das verstanden hat, kann die Malware weiter vor sich hin schaden. Code Injection hingegen wird verwendet um festzustellen, ob die Datei gerade untersucht wird: Es wird ein bekannter Prozess gestartet, der dazu gebracht wird anderen Code heimlich auszuführen. Danke Windows für den Debug Modus. Der Prozess kann nun herausfinden, ob die Datei sich im Debug Modus befindet. Hat die Malware einmal Wind davon bekommen, dass sie analysiert wird, kann nun alles mögliche passieren.

Hase und Igel im permanenten Rollentausch

Natürlich ist das Spektrum der Evasion Techniken hier nicht ausgeschöpft, ebenso wenig wie die möglichen Abwehrmaßnahmen. Hacker müssen immer kreativer werden, um ihr Ziel zu erreichen, ebenso wie Analysten am Ball bleiben müssen, um mitzuhalten. Es ist ein Wettrennen zwischen Security Spezialisten und Hackern, sich gegenseitig zu übertrumpfen und den anderen auszustechen. Unwahrscheinlich, dass eine Seite je einen dauerhaften Sieg davontragen wird.

Es bleibt spannend.

 


Links:

https://www.tripwire.com/state-of-security/security-data-protection/the-four-most-common-evasive-techniques-used-by-malware/

https://de.slideshare.net/ThomasRoccia/malware-evasion-techniques

https://www.vmray.com/blog/sandbox-evasion-techniques-part-1/

Ein praktischer Guide zum Einstieg ins Threat Hunting: https://www.it-cube.net/cubespotter/zum-abschuss-freigegeben/

Bild: ©iT-CUBE SYSTEMS AG 2017

Schreibe einen Kommentar