Mitte 2020 begannen ESET-Forscher mit der Analyse mehrerer Kampagnen, die später der Gelsemium-Gruppe zugeschrieben wurden. Sie fanden heraus, dass die früheste Version der Malware aus dem Jahr 2014 stammt. Die Opfer dieser Kampagnen, zu Ihnen gehören Regierungen, religiöse Organisationen, Elektronikhersteller und Universitäten, befinden sich in Ostasien und im Nahen Osten.

Kernpunkte in diesem Bericht:

  • Die ESET-Forscher glauben, dass Gelsemium hinter dem Supply-Chain-Angriff auf BigNox steckt, über den als Operation NightScout berichtet wurde
  • ESET-Forscher fanden eine neue Version von Gelsemium, einer komplexen und modularen Malware, die später als Gelsemine, Gelsenicine und Gelsevirine bezeichnet wurde
  • Es wurden neue Ziele entdeckt, darunter Regierungen, Universitäten, Elektronikhersteller und religiöse Organisationen in Ostasien und im Nahen Osten
  • Gelsemium ist eine seit 2014 aktive Cyberspionagegruppe

Die geografische Verteilung der Angriffsziele von Gelsemium ist in Abbildung 1 zu sehen.

Abbildung 1 - Standorte der Angriffsziele

Gelsemium-Komponenten

Die gesamte Kette von Gelsemium mag auf den ersten Blick einfach erscheinen, aber die umfassenden Konfigurationen, die in jeder Phase implantiert werden, ändern spontan die Einstellungen für die endgültige Payload, wodurch sie schwerer zu verstehen sind. Die unten analysierten Verhaltensweisen sind an die Konfiguration gebunden. Daher können sich Dateinamen und Pfade in anderen Beispielen unterscheiden. Die meisten der von uns beobachteten Kampagnen folgen dem, was wir hier beschreiben.

Abbildung 2 - Übersicht über den Arbeitsablauf der drei Komponenten

Der Name Gelsemium stammt von einer möglichen Übersetzung, die wir beim Lesen eines Berichts von VenusTech gefunden haben, die die Gruppe zum ersten Mal benannt haben. Es ist der Name einer Gattung von Blütenpflanzen die zur Familie der Gelsemiaceae gehören, Gelsemium elegans ist eine Art, die giftige Verbindungen wie Gelsemine, Gelsenicine und Gelsevirine enthält, die wir als Namen für die drei Komponenten dieser Malware-Familie gewählt haben.

Gelsemine – der Dropper

Die erste Stufe von Gelsemium ist ein großer Dropper, der in C++ geschrieben wurde und die Microsoft Foundation Class Library (MFC) verwendet. Diese Stufe enthält die Binärdateien mehrerer weiterer Stufen. Die Dateigrößen der Dropper reichen von etwa 400 kB bis 700 kB, was ungewöhnlich ist. Sie wären noch größer, wenn die acht eingebetteten ausführbaren Dateien nicht komprimiert wären. Die Entwickler verwenden die statisch gelinkte Bibliothek zlib, um die Gesamtgröße stark zu reduzieren. Hinter dieser übergroßen ausführbaren Datei verbirgt sich ein komplexer und dennoch flexibler Mechanismus, der in der Lage ist, je nach den Eigenschaften des Opfercomputers verschiedene Stufen wie Bitness (32-Bit vs. 64-Bit) oder Privilegien (Standardbenutzer vs. Administrator) zu droppen. Fast alle Stufen sind komprimiert, befinden sich im Ressourcenabschnitt des PE und werden im Speicheradressraum derselben Komponente gemapped. Abbildung 3 veranschaulicht alle Stufen in der Gelsemin-Komponente.

Abbildung 3: Übersicht über den Gelsemine-Adressraum

Gelsenicine - Der Loader

Gelsenicine ist ein Loader, der Gelsevirine abruft und ausführt. Es gibt zwei verschiedene Versionen des Loaders – beide sind DLLs, sie unterscheiden sich jedoch in dem Kontext, in dem Gelsemine ausgeführt wird.

Für Opfer mit Administratorrechten droppt Gelsemine Gelsenicine unter C:\Windows\System32\spool\prtprocs\x64\winprint.dll (Benutzermodus-DLL für Druckprozessor), das dann automatisch vom Windows-Dienst spoolsv geladen wird. Um eine Datei im Verzeichnis %WINDIR%/system32 zu schreiben, sind Administratorrechte erforderlich, daher haben wir die Voraussetzung bereits erwähnt.

Benutzer mit Standardberechtigungen, die von Gelsemine kompromittiert wurden, legen Gelsenicine in ein anderes Verzeichnis ab, das keine Administratorrechte erfordert. Die DLL chrome_elf.dll wird unter CommonAppData/Google/Chrome/Application/Library/ abgelegt.

Gelsevirine - Das Haupt-Plug-in

Gelsevirine ist die letzte Stufe der Kette und wird von seinen Entwicklern MainPlugin genannt, entsprechend dem DLL-Namen und auch dem PDB-Pfad in alten Schadcode-Samples (Z:\z_code\Q1\Client\Win32\Release\MainPlugin.pdb). Es ist auch erwähnenswert, dass, wenn es den Verteidigern gelingt, diese letzte Stufe allein zu erreichen, sie nicht fehlerfrei läuft, da ihre Argumente von Gelsenicine aufgestellt werden müssen.

Die von Gelsenicine verwendete Konfiguration enthält ein Feld namens ccontroller_version, von dem wir glauben, dass es die Versionsverwaltung ist, die von den Operatoren für dieses Haupt-Plug-In verwendet wird. Abbildung 4 zeigt eine Zeitleiste der verschiedenen Versionen, die wir in freier Wildbahn beobachtet haben. Die Daten sind ungefähre Angaben.

 

Abbildung 4: Zeitleiste der Gelsevirine-Version

Zusätzliche Links und Tools

Während unserer Untersuchung sind wir auf einige interessante Malware gestoßen, die in den folgenden Abschnitten beschrieben wird.

  • Operation NightScout (BigNox): Im Januar 2021 analysierte und verfasste ein anderer ESET-Forscher einen Artikel über Operation NightScout; ein Supply-Chain-Angriff, der den Update-Mechanismus von NoxPlayer kompromittiert, einem Android-Emulator für PCs und Macs und Teil der Produktpalette von BigNox mit über 150 Millionen Nutzern weltweit. Die Untersuchung deckte einige Überschneidungen zwischen diesem Supply-Chain-Angriff und der Gelsemium-Gruppe auf. Opfer, die ursprünglich von diesem Angriff kompromittiert wurden, wurden später von Gelsemine kompromittiert. Unter den verschiedenen untersuchten Varianten weist „Variante 2“ aus dem Artikel Ähnlichkeiten mit der Gelsemium-Malware auf.
  • OwlProxy: Auch dieses Modul gibt es in zwei Varianten – 32- und 64-Bit-Versionen – und enthält somit eine Funktion zum Testen der Windows-Version wie den Gelsemium-Komponenten.
  • Chrommme: Chrommme ist eine Hintertür, die wir während unserer Untersuchung des Gelsemium-Ökosystems gefunden haben. Codeähnlichkeiten mit Gelsemium-Komponenten sind fast nicht vorhanden. Wir haben während der Analyse allerdings kleine Indikatoren gefunden, die uns vermuten lassen, dass es irgendwie mit der Gruppe zusammenhängt. Derselbe C&C-Server wurde sowohl in Gelsevirine als auch in Chrommme gefunden, beide verwenden zwei C&C-Server. Chrommme wurde auf dem Computer einer Organisation gefunden, der ebenfalls von der Gelsemium-Gruppe kompromittiert wurde.

Fazit

Das Gelsemium-Biom ist sehr interessant: Es zeigt wenige Opfer (laut unserer Telemetrie) mit einer Vielzahl von anpassungsfähigen Komponenten. Das Plug-in-System zeigt, dass seine Entwickler über tiefe C++-Kenntnisse verfügen. Kleine Ähnlichkeiten mit bekannten Malware-Tools geben Aufschluss über interessante, mögliche Überschneidungen mit anderen Gruppen und vergangenen Aktivitäten. Wir hoffen, dass diese Forschung andere Forscher dazu bringt, über die Gruppe zu veröffentlichen und mehr über die Wurzeln dieser Malware-Biosphäre aufzudecken.

Eine vollständige und umfassende Liste Kompromittierungsindikatoren und Beispiele finden sich im vollständigen Whitepaper und auf GitHub.

Für Anfragen oder Sample-Einreichungen zu diesem Thema kontaktieren Sie uns unter threatintel@eset.com.

Besuchen Sie die ESET Webseite um zu erfahren, wie Sie mit Threat Intelligence die Cybersicherheit Ihres Unternehmens verbessern können.