Asiens Gaming Branche weiter im Visier von Angreifern | WeLiveSecurity

Asiens Gaming Branche weiter im Visier von Angreifern

Erneute Supply-Chain-Angriffe auf asiatische Spiele-Entwickler zeigen wie verwundbar Software-Entwicklung ist und wie Backdoors auch verbreitet werden.

Erneute Supply-Chain-Angriffe auf asiatische Spiele-Entwickler zeigen wie verwundbar Software-Entwicklung ist und wie Backdoors auch verbreitet werden.

Es ist nicht das erste Mal, dass die asiatische Gaming-Branche von Cyber-Angreifern überfallen wird. Spiele-Entwickler werden kompromittiert und ihre Entwicklungsumgebungen mit Backdoors versehen. Im April 2013 berichtete Kaspersky Lab, dass im Jahr 2011 ein populäres Spiel mit Hintertürchen ausgestattet war. Kaspersky schreibt der Winnti Group den Cyber-Angriff zu.

Nun erregen neue Supply-Chain-Angriffe die Aufmerksamkeit der ESET-Forscher. In zwei Spielen und einer Gaming Plattform konnten wieder einmal Hintertüren eingeschleust werden. Allgemein richten sich die Cyber-Angriffe gegen Asien und die Spiele-Branche.

Dieselbe Backdoor in drei Fällen

Obwohl die Malware-Konfigurationen für alle drei Fälle unterschiedlich waren, beinhalteten die drei Software-Produkte denselben Backdoor-Code. Die Hintertürchen starteten auch jeweils auf dieselbe Weise. Zwei der einst kompromittierten Produkte haben die Backdoor mittlerweile nicht mehr an Bord. Der andere betroffener Spiele-Entwickler verbreitet aber immer noch eine schädliche Version des Spiels „Infestation“. ESET versuchte den thailändischen Spiele-Entwickler Electronics Extreme seit Anfang Februar mehrmals über verschiedene Kanäle zu kontaktieren, jedoch ohne ersichtlichen Erfolg.

Im weiteren Verlauf blicken wir auf die schädliche Payload; wie sie implementiert und aufgebaut ist.

Die Implementierung der Winnti-Payload

Die Payload (=Nutzlast der Malware) startet während der frühen Ausführungsphase der Backdoor verseuchten Executable. Direkt nach dem PE-Einstiegspunkt wird der Standardaufruf der C-Runtime-Initialisierung (__scrt_common_main_seh in Abb. 1) eingehängt, um die schädliche Nutzlast vor allem anderen zu starten (Abb. 2). Das kann darauf hindeuten, dass die Cyber-Kriminellen die Build-Konfiguration und nicht den Quellcode selbst geändert haben.

Abbildung 1: Sauberer Einstiegspunkt der ausführbaren Datei

Abbildung 1: Sauberer Einstiegspunkt der ausführbaren Datei

Abbildung 2:Kompromittierter Einstiegspunkt der ausführbaren Datei

Abbildung 2:Kompromittierter Einstiegspunkt der ausführbaren Datei

Der zur ausführbaren Datei hinzugefügte Code entschlüsselt und startet die Backdoor-In-Memory-Funktion, bevor die normale Ausführung des C-Laufzeit-Initialisierungscodes und nachfolgenden Codes der Hostanwendung wieder aufgenommen wird. Die eingebettete Payload hat eine spezifische Struktur (siehe Abb. 3), die vom hinzugefügten Entpackungscode aufgeteilt wird.

Abbildung 3: Embedded Payload-Struktur

Abbildung 3: Embedded Payload-Struktur

Darin enthalten ist auch ein RC4-Schlüssel (der X37 XOR-verknüpft ist), mit dem ein Dateiname und die eingebettete DLL-Datei entschlüsselt werden.

Die schädliche Payload von Winnti

Tatsächlich ist die bösartige Nutzlast nur sehr klein und enthält Code im Umfang von nur etwa 17 KB.

Winnti-Konfigurierung

Wie in Abb. 4 dargestellt, besteht die Konfigurationsdatei lediglich aus einer durch Leerzeichen separierten Auflistung von Zeichenketten.

Abbildung 4: Payload Konfigurationsdatei

Abbildung 4: Payload Konfigurationsdatei

Die Konfiguration lässt sich in vier Bereiche unterteilen:

  1. C&C-Server-URL
  2. Variable (t), welche die Sleep-Time in Millisekunden bestimmt, bevor die Ausführung fortsetzt. Die Wartezeit wird wahllos gewählt und bewegt sich zwischen 2/3 tund 5/3 t.
  3. Eine Zeichenfolge, welche die Kampagne identifiziert.
  4. Eine durch Semikolons getrennte Liste ausführbarer Programme. Ist eines der Programme aus Liste aktiv, stoppt die Backdoor die Ausführung.

ESET-Forscher ermittelten fünf Versionen der Payload:

Truncated SHA-1PE Compile time (UTC)C&C server URL
a045939f2018-07-11 15:45:57https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_bsod.php
a260dcf12018-07-11 15:45:57https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_Include.php
dde820932018-07-11 15:45:57https://bugcheck.xigncodeservice[.]com/Common/Lib/common.php
44260a1d2018-08-15 10:59:09https://dump.gxxservice[.]com/common/up/up_base.php
8272c1f42018-11-01 13:16:24https://nw.infestexe[.]com/version/last.php

Bei den ersten drei Varianten wurde der Code nicht rekompiliert, aber die Konfigurationsdatei in der DLL selbst. Der Rest des Inhalts ist eine Byte-für-Byte-Kopie.

Die C&C-Infrastruktur hinter Winnti

Alle Domain-Namen wurden sorgfältig ausgewählt, um wie dem Spiel zugehörig auszusehen und um beim Publisher keine Skepsis hervorzurufen. Die Apex-Domain ist so konfiguriert, dass sie mit Hilfe des Namecheap Redirection Service zu einer legitimen Seite umleitet. Die Subdomains zeigen allerdings auf den bösartigen C&C-Server.

Domain nameRegistration dateRedirection target
xigncodeservice.com2018-07-10 09:18:17https://namu.wiki/[w]/XIGNCODE
gxxservice.com2018-08-14 13:53:41None or unknown
infestexe.com2018-11-07 08:46:44https://www.facebook.com/infest.[in].[th]
Subdomain nameIP addressesProvider
bugcheck.xigncodeservice.com167.99.106[.]49, 178.128.180[.]206DigitalOcean
dump.gxxservice.com142.93.204[.]230DigitalOcean
nw.infestexe.com138.68.14[.]195DigitalOcean

Hinweis: Zum Zeitpunkt der Erstellung dieses Artikels löste keine Domain unter der Adresse auf und auch die C&C-Server antworteten nicht.

Aufklärungsbericht

Aus der MAC-Adresse des Geräts wird eine Bot-ID generiert. Die Backdoor meldet dem C&C-Server Informationen über das System, wie beispielsweise Benutzer- und Computername, die Windows-Version und die System-Sprache. Dann wartet die Hintertür auf Befehle. Die Daten werden mit *&b0i0rong2Y7un1 XOR-verschlüsselt und base64-codiert. Auf die vom C&C-Server empfangenen Daten trifft das ebenfalls zu.

Folgende Befehle versteht Winnti:

Cyber-Angreifer können nur vier Befehle an die Backdoor schicken:

  • DownUrlFile
  • DownRunUrlFile
  • RunUrlBinInMem
  • UnInstall

Die Befehle sind recht selbsterklärend. Sie ermöglichen dem Angreifer, zusätzliche ausführbare Dateien von einer bestimmten URL auszuführen.

Der letzte Befehl ist weniger nahe liegend. Der UnInstall-Befehl entfernt die Malware nicht vom System, da sie in eine legitime Executable eingebunden ist. Deshalb deaktiviert man den schädlichen Code, in dem in der Registry folgender Wert auf 1 gesetzt wird:

  • HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\ImageFlag

Beim Start der Winnti-Payload wird der Registry-Wert abgefragt und die Ausführung abgebrochen, falls der Wert 1 beträgt. Womöglich versuchen die Cyber-Kriminellen damit auch die Last für die C&C-Server zu reduzieren. Die Malware wird vor allem auf Systemen von uninteressanten Opfern deaktiviert.

Second Stage

Aus den ESET Telemetrie-Daten ergibt sich, dass eine der Second Stage Payload  Win64/Winnti.BN an die Opfer verbreitet. Unserem Urteil nach, wurde der Dropper über HTTPS von api.goallbandungtravel[.]com heruntergeladen. Wir sahen, dass dieser als Windows-Dienst und als DLL in C:\Windows\System32 unter folgenden Dateinamen installiert wurde:

  • cscsrv.dll
  • dwmsvc.dll
  • iassrv.dll
  • mprsvc.dll
  • nlasrv.dll
  • powfsvc.dll
  • racsvc.dll
  • slcsvc.dll
  • snmpsvc.dll
  • sspisvc.dll

Die von uns analysierten Malware-Samples waren sehr groß – um die 60 MB. Je nach Version beträgt die Dateigröße der Payload aber nur 63 bis 72 KB. Der Rest gilt nur der „äußeren Erscheinung“. Den bösartigen Dateien werden einfach viele saubere Dateien angehängt. Das wird wahrscheinlich durch die Komponente realisiert, welche den schädlichen Dienst ablegt und installiert.

Läuft der Dienst, hängt dieser die .mui-Erweiterung an seinen DLL-Pfad, liest und entschlüsselt die Datei mit Hilfe von RC5. Die entschlüsselte MUI-Datei enthält am Offset 0 einen positionsunabhängigen Code. Der RC5-Schlüssel wird von der Seriennummer der Festplatte und der Zeichenfolge f@Ukd!rCto R$. abgeleitet. Wir konnten keine MUI-Dateien oder Code, der diese installiert, abfangen. Deshalb ist uns der genaue Zweck dieses schädlichen Dienstes nicht bekannt.

Aktuelle Malware-Versionen enthalten ein „Auto-Update“ vom C&C-Server http://checkin.travelsanignacio[.]com.

Der C&C-Server stellte die neusten MUI-Dateiversionen (mit statischem RC5-Key verschlüsselt) bereit. Während unserer Analyse antwortete der C&C-Server allerdings nicht mehr.

Ziele von Winnti

Zunächst möchten wir festhalten, wer nicht zur Zielgruppe der Cyber-Angreifer gehört. Recht früh im Payload-Code überprüft die Malware, ob die Systemsprache Russisch oder Chinesisch ist (Abb. 5). In beiden Fällen stoppt die Schadsoftware an dieser Stelle. Daran führt kein Weg vorbei: Die Angreifer interessieren schlichtweg keine Computer-Systeme, die mit diesen Sprachen konfiguriert sind.

Abbildung 5: Sprachen-Check bevor die Payload ausgeführt wird

Abbildung 5: Sprachen-Check bevor die Payload ausgeführt wird

Verbreitungsstatistik

Laut der ESET-Telemetriedaten befinden sich die Opfer hauptsächlich in Asien – die allermeisten in Thailand. Angesichts der beliebten aber immer noch kompromittierten Anwendung, die weiterverbreitet wird, sollte es nicht überraschen, wenn die Zahl der infizierten Computersysteme in die zehn- oder hunderttausende geht.

Fazit

Supply-Chain-Attacken sind für Verbraucher nur sehr schwer zu erkennen. Es ist unmöglich, jede Software zu analysieren, die man ausführt. Das gilt auch für alle Updates. Wir vertrauen darauf, dass Software-Entwickler keine Malware verseuchten Programme vertreiben. Vielleicht ist das der Grund, warum mehrere Cyber-Gangs auf Software-Entwickler abzielen: Durch gehackte Software des Anbieters werden Botnets geschaffen. Die Verwendung der Methode hat jedoch einen entscheidenden Nachteil. Sobald die Sabotage auffliegt, werden die Hintertürchen via Update geschlossen und die Botnets verlieren ihre Bots.

Die Motive der Hacker-Gruppe Winnti kennen wir nicht. Vielleicht geht es um Profite? Gibt es Gründe, warum die drei betroffenen Software-Produkte von asiatischen Entwicklern stammen und für den asiatischen Markt bestimmt waren? Verwenden die Cyber-Angreifer das Botnet als Teil einer größeren Spionageoperation? Viele Fragen bleiben ungeklärt.

ESET Sicherheitsprodukte erkennen die Bedrohungen als Win32/HackedApp.Winnti.A, Win32/HackedApp.Winnti.B und die Payload als Win32/Winnti.AG, und die Second Stage als Win64/Winnti.BN.

Indicators of Compromise (IoCs)

Compromised file samples (Win32/HackedApp.Winnti.A and B)

SHA-1Compile Time (UTC)RC4 keyPayload SHA-1
7cf41b1acfb05064518a2ad9e4c16fde9185cd4bTue Nov 13 10:12:58 201817291310718272c1f4
7f73def251fcc34cbd6f5ac61822913479124a2aWed Nov 14 03:50:18 20181931712044260a1d
dac0bd8972f23c9b5f7f8f06c5d629eac7926269Tue Nov 27 03:05:16 201817291310718272c1f4

Einige Hashes wurden auf Anfrage eines Anbieters geändert. Wer sie aus einem bestimmten Grund benötigt, wendet sich bitte an threatintel@eset.com.

Payload Samples (Win32/Winnti.AG)

SHA-1C&C server URL
a045939f53c5ad2c0f7368b082aa7b0bd7b116dahttps://bugcheck.xigncodeservice[.]com/Common/Lib/Common_bsod.php
a260dcf193e747cee49ae83568eea6c04bf93cb3https://bugcheck.xigncodeservice[.]com/Common/Lib/Common_Include.php
dde82093decde6371eb852a5e9a1aa4acf3b56bahttps://bugcheck.xigncodeservice[.]com/Common/Lib/common.php
8272c1f41f7c223316c0d78bd3bd5744e25c2e9fhttps://nw.infestexe[.]com/version/last.php
44260a1dfd92922a621124640015160e621f32d5https://dump.gxxservice[.]com/common/up/up_base.php

Second stage samples (Win64/Winnti.BN)

Dropper geliefert von api.goallbandungtravel[.]com.

SHA-1Compile Time (UTC)C&C server URL prefix
4256fa6f6a39add6a1fa10ef1497a74088f12be02018-07-25 10:13:41None
bb4ab0d8d05a3404f1f53f152ebd79f4ba4d4d812018-10-10 09:57:31http://checkin.travelsanignacio[.]com

MITRE ATT&CK matrix

IDDescription
T1195Supply Chain Compromise
T1050New Service
T1022Data Encrypted
T1079Multilayer Encryption
T1032Standard Cryptographic Protocol (RC4, RC5)
T1043Commonly Used Port (80,443)
T1009Binary Padding

Hier können Sie mitdiskutieren