UPDATE (4. Februar 2021):
Nach der Veröffentlichung unserer Forschungsergebnisse hat uns BigNox kontaktiert und uns mitgeteilt, dass das anfängliche Dementi der Kompromittierung ein Missverständnis war. Man habe seitdem die folgenden Schritte unternommen, um die Sicherheit für die Benutzer zu verbessern:
- Software-Updates werden nur noch über HTTPS bereitgestellt, um das Risiko von Domain-Hijacking und Man-in-the-Middle-Angriffen (MitM) zu minimieren
- eine Überprüfung der Dateiintegrität mithilfe von MD5-Hashing und Dateisignaturprüfungen wurde eingeführt
- zusätzliche Maßnahmen werden ergriffen, insbesondere die Verschlüsselung sensibler Daten, um die Offenlegung persönlicher Daten der Benutzer zu vermeiden
BigNox hat außerdem angegeben, dass die neuesten Dateien für NoxPlayer die auf dem Update-Server bereitstehen beim Start nun eine Überprüfung der zuvor auf den Computern der Benutzer installierten Anwendungsdateien durchführen.
ESET übernimmt keine Verantwortung für die Richtigkeit der von BigNox bereitgestellten Informationen.
Im Jahr 2020 hat die ESET Forschung verschiedene Supply-Chain-Angriffe aufgedeckt, darunter den Fall von WIZVERA VeraPort, einer Software, die von Regierungs- und Bankwebsites in Südkorea verwendet wird, die Operation StealthyTrident, die die Chat-Software Able Desktop kompromittiert hatte, die von mehreren mongolischen Regierungsbehörden verwendet wird, und zuletzt die Operation SignSight, bei der eine Signatursoftware kompromittiert wurde, die von der vietnamesischen Regierung vertrieben wird.
Im Januar 2021 entdeckten wir einen neuen Supply-Chain-Angriff, der den Update-Mechanismus von NoxPlayer kompromittiert, einem Android-Emulator für PCs und Macs. Das Programm ist ein Produkt von BigNox, eines Unternehmens mit über 150 Millionen Benutzern weltweit. Die Software wird im Allgemeinen von Spielern verwendet, um mobile Spiele von ihren PCs aus zu spielen, was diesen Vorfall etwas ungewöhnlich macht.
Es wurden drei verschiedene Malware-Familien entdeckt, die durch maßgeschneiderte schädliche Updates an ausgewählte Opfer verteilt wurden. Dabei gibt es keine Anzeichen für finanzielle Ziele der Hintermänner, sondern eher für überwachungsbezogene Absichten, beziehungsweise Funktionen.
Außerdem weist der Loader Ähnlichkeiten auf, zu Malware, die wir schon in der Vergangenheit beobachtet haben. Beispielsweise zu Samples eines Supply-Chain-Angriffs auf die Webseite des Präsidentenbüros von Myanmar im Jahr 2018 oder eines Angriffs auf die Universität von Hongkong im Jahr 2020.
Über BigNox
BigNox ist ein in Hongkong ansässiges Unternehmen, dessen wichtigstes Produkt ein Android-Emulator für PCs und Macs namens NoxPlayer ist. Die offizielle Website des Unternehmens spricht von über 150 Millionen Benutzer aus 150 Ländern, die 20 verschiedene Sprachen sprechen. Es ist jedoch davon auszugehen, dass sich die Kunden überwiegend in asiatischen Ländern befinden.
2019 veröffentlichte BigNox einen ausführlichen Blogpost über die Verwendung von VPNs in Verbindung mit dem NoxPlayer, was die Sorge des Unternehmens bezüglich der Privatsphäre seiner Benutzer verdeutlicht.
Bin ich betroffen?
- Wer betroffen ist: Nutzer des NoxPlayer
- So stellen ich fest, ob ich ein schädliches Update erhalten habe oder nicht: Überprüfen Sie, ob ein laufender Prozess eine aktive Netzwerkverbindung mit bekannten aktiven C&C-Servern hat, oder prüfen Sie, ob Malware basierend auf den im Bericht angegebenen Dateinamen in den folgenden Ordnern installiert ist in:
- C:\ProgramData\Sandboxie\SbieIni.dat
- C:\ProgramData\Sandboxie\SbieDll.dll
- C:\ProgramData\LoGiTech\LBTServ.dll
- C:\Program Files\Internet Explorer\ieproxysocket64.dll
- C:\Program Files\Internet Explorer\ieproxysocket.dll
- eine %LOCALAPPDATA%\Nox\update\UpdatePackageSilence.exe bezeichnete Datei, die nicht von BigNox digital signiert ist.
- So bleiben Sie sicher:
- Führen Sie im Falle eines Eindringens eine Standard-Neuinstallation von sauberen Medien.
- Für nicht betroffene Benutzer: Laden Sie keine Updates herunter, bis BigNox benachrichtigt, dass die Bedrohung gemindert wurde.
Zeitleiste
Basierend auf der ESET-Telemetrie haben wir im schon im September 2020 die ersten Kompromittierungsindikatoren gesehen, und die Aktivitäten wurden fortgesetzt, bis wir am 25. Januar 2021 explizit schädliche Aktivitäten aufgedeckt haben. Zu diesem Zeitpunkt haben wir den Vorfall BigNox gemeldet.
Opferanalyse
Im Vergleich zur Gesamtzahl der aktiven Benutzer des NoxPlayer gibt es nur eine sehr geringe Anzahl von Opfern. Laut ESET-Telemetrie haben mehr als 100.000 unserer Benutzer NoxPlayer auf ihren Computern installiert. Unter ihnen erhielten nur 5 Benutzer ein schädliches Update, das zeigt, dass Operation NightScout eine sehr zielgerichtete Operation ist. Die Opfer leben in Taiwan, Hongkong und Sri Lanka.
Wir fanden keine Korrelationen, die auf Beziehungen zwischen den Opfern hindeuten würden. Aufgrund der in Frage stehenden Software und der gelieferten Malware mit Überwachungsfunktionen glauben wir jedoch, dass dies auf die Absicht hinweisen kann, Informationen über Ziele zu sammeln, die irgendwie in die Gaming-Community involviert sind.
Es ist wichtig hervorzuheben, dass wir im Gegensatz zu ähnlichen, früheren Aktivitäten, wie die der Winnti Group in 2019, die Spielebranche abzielten, keine Indikatoren gefunden haben, die auf eine wahllose Verbreitung schädlicher Updates bei einer großen Anzahl von NoxPlayer-Nutzern hindeuten. Dies bestärkt unsere Überzeugung, dass dies eine sehr gezielte Operation ist.
Update-Mechanismus
Um die Dynamik dieses Supply-Chain-Angriffs zu verstehen, ist es wichtig zu wissen, welcher Angriffsvektor genutzt wurde, um NoxPlayer-Nutzern Malware bereitzustellen. Dieser Vektor war der Aktualisierungsmechanismus von NoxPlayer.
Wenn NoxPlayer beim Start eine neuere Version der Software erkennt, wird dem Benutzer mit einer Benachrichtigung (Abbildung 2) die Installation angeboten.
Dazu wird der Update-Server über die BigNox-HTTP-API (api.bignox.com) abgefragt, um bestimmte Update-Informationen abzurufen (siehe Abbildung 3).
Die Antwort auf diese Abfrage enthält updatespezifische Informationen wie die binäre Update-URL, ihre Größe, den MD5-Hash und weitere Informationen (siehe Abbildung 4).
Klickt man auf die Schaltfläche "Jetzt aktualisieren" in Abbildung 1, liefert die ausführbare NoxPlayer-Nox.exe die empfangenen Aktualisierungsparameter an eine andere Binärdatei in ihrer Toolbox, NoxPack.exe. Diese ist für das Herunterladen des Updates verantwortlich (siehe Abbildung 5).
Danach zeigt der Fortschrittsbalken im Meldungsfeld den Status des Downloads an (Abbildung 6). Nach dem Abschluss ist die Aktualisierung durchgeführt.
Indikatoren des Supply-Chain-Angriffs
Wir haben genügend Beweise dafür gefunden, dass die BigNox-Infrastruktur (res06.bignox.com) gehackt wurde, um Malware zu hosten, und zudem für die Annahme, dass ihre HTTP-API-Infrastruktur (api.bignox.com) kompromittiert worden sein könnte. In einigen Fällen wurden zusätzliche Payloads vom BigNox-Updater von Servern heruntergeladen, die von den Angreifern kontrolliert wurden. Dies deutet darauf hin, dass das URL-Feld, das in der Antwort der BigNox-API ausgegeben wird, von den Angreifern manipuliert wurde. Der beobachtete Ablauf des Einbruchs ist in Abbildung 7 dargestellt.
Hier ist eine Übersicht über das, was im obigen Sequenzdiagramm gezeigt wird:
- Beim Start sendet die primäre ausführbare NoxPlayer-Datei exe eine Anforderung über die API, um Aktualisierungsinformationen abzufragen.
- Der BigNox-API-Server antwortet auf die Clientanforderung mit spezifischen Update-Informationen, einschließlich der URL, von der das Update heruntergeladen werden soll und die auf einer legitimen BigNox-Infrastruktur gehostet wird.
- exe stellt NoxPlayer.exe die entsprechenden Parameter zum Herunterladen des Updates zur Verfügung.
- Das in der BigNox-Infrastruktur gespeicherte legitime Update wurde möglicherweise durch Malware ersetzt, oder es handelt sich um einen neuen Dateinamen / eine neue URL, die von legitimen Updates nicht verwendet wird.
- Malware wird auf dem Computer des Opfers installiert. Im Gegensatz zu legitimen BigNox-Updates werden die schädlichen Dateien nicht digital signiert, was stark darauf hindeutet, dass das BigNox-Build-System nicht kompromittiert wurde, sondern nur die Systeme, die Updates verteilen.
- Das System des Opfers wird erforscht und Informationen an die Malware-Betreiber gesendet.
- Die Täter passen schädlichen Aktualisierungen basierend auf einem unbekannten Filterschema an bestimmte Opfer von Interesse an.
- exe führt sporadische Aktualisierungsanforderungen aus.
- Der BigNox-API-Server antwortet dem Client mit Aktualisierungsinformationen, die besagen, dass die Aktualisierung in der vom Angreifer kontrollierten Infrastruktur gespeichert ist.
- Weitere Malware wird an ausgewählte Opfer gesendet.
Durch diese Informationen können wir verschiedene Dinge hervorheben:
- Die legitime BigNox-Infrastruktur lieferte Malware für bestimmte Updates aus. Wir haben festgestellt, dass diese schädlichen Updates erst im September 2020 stattfanden.
- Darüber hinaus haben wir festgestellt, dass für bestimmte Opfer nachträglich und bis Anfang 2021 schädliche Updates von der von Angreifern kontrollierten Infrastruktur heruntergeladen wurden.
- Wir sind sehr zuversichtlich, dass diese zusätzlichen Aktualisierungen von exe durchgeführt wurden, indem NoxPack.exe bestimmte Parameter bereitgestellt wurden. Die deutet darauf hin, dass der BigNox-API-Mechanismus möglicherweise auch kompromittiert wurde, um maßgeschneiderte schädliche Aktualisierungen bereitzustellen.
- Es könnte auch die Möglichkeit nahe legen, dass die Opfer einem Man-in-the-Middle-Angriff ausgesetzt waren, obwohl wir diese Hypothese für unwahrscheinlich halten, denn die von uns entdeckten Opfer befanden sich in verschiedenen Ländern und die Angreifer hatten bereits in der BigNox-Infrastruktur Fuß gefasst.
- Darüber hinaus konnten wir den Download der auf res06.bignox.com gehosteten Malware-Samples von einem Testcomputer unter Verwendung von https reproduzieren. Die schließt die Möglichkeit eines MitM-Angriffs aus, um die Update-Binärdatei zu manipulieren.
Es ist auch wichtig zu erwähnen, dass schädliche Updates, die von der vom Angreifer kontrollierten Infrastruktur heruntergeladen wurden, den Pfad legitimer Updates nachahmten:
- Schädliches Update der von Angreifern kontrollierten Infrastruktur:
http://cdn.cloudfronte[.]com/player/upgrade/ext/20201030/1/35e3797508c555d5f5e19f721cf94700.exe - Legitimes NoxPlayer-Update: http://res06.bignox[.]com/player/upgrade/202012/1b31bced0a564bed9f60264f061dcdae.exe
Darüber hinaus ahmten registrierte, von den Angreifern kontrollierte Domainnamen den BigNox CDN-Domainnamen nach, nämlich cloudfront.net.
Diese Indikatoren deuten darauf hin, dass Angreifer versuchten, einer Entdeckung zu entgehen, um unter dem Radar zu bleiben und eine langfristige Persistenz zu erreichen.
Die Malware
Insgesamt wurden drei verschiedene Varianten schädlicher Updates beobachtet, von denen jedes eine andere Malware enthielt. Das sind die Varianten:
Schädliche Update-Variante 1
Diese Variante ist eines der vorläufigen Updates, die auf kompromittierte BigNox-Infrastruktur hinweisen. Unsere Analyse basiert auf der Probe mit dem Hash SHA-1 CA4276033A7CBDCCDE26105DEC911B215A1CE5CF.
Die damit ausgelieferte Malware scheint bisher noch nicht dokumentiert worden zu sein. Sie ist nicht sehr komplex, aber verfügt über genügend Funktionen, um ihre Opfer zu überwachen. Das zuerst aufgerufene RAR SFX-Archiv droppt zwei DLLs in C:\Program Files\Internet Explorer\ ab und führt, je nach Architektur, eine davon über rundll32.exe aus. Die Namen dieser DLLs lauten wie folgt:
- ieproxysocket64.dll
- ieproxysocket.dll
Dabei wird auch eine Textdatei mit dem Namen KB911911.LOG auf der Festplatte abgelegt, in die der ursprüngliche Name des SFX-Installationsprogramms geschrieben wird. Die DLL versucht, diese Protokolldatei zu öffnen und zu lesen. Wenn sie nicht gefunden wird, wird die Ausführung gestoppt, sodass eine Grenze für die Ausführung implementiert wird.
Die DLL prüft dann, ob sie von einem der folgenden Prozesse geladen wurde. Wenn dies der Fall ist, wird die eigene Ausführung gestoppt:
- smss.exe
- winlogon.exe
- csrss.exe
- wininit.exe
- services.exe
- explorer.exe
Die IP-Adresse des Geräts wird überprüft, um sicherzustellen, dass sie weder 127.0.0.1 noch 0.0.0.0 lautet. Falls dies der Fall ist, wird sie in einer Endlosschleife erneut überprüft, bis sie sich ändert. Andernfalls wird die Ausführung fortgesetzt und die UUID des aktuellen Computers über eine WMI-Objektabfrage extrahiert. Diese zurückgegebene UUID wird mit MD5 gehasht, um das aktuelle Opfer zu nummerieren. Kontoinformationen werden ebenfalls abgerufen und gespeichert.
Eine verschlüsselte Konfiguration wird aus der DLL-Ressource abgerufen. Diese Konfiguration wird mit einem Zwei-Byte-XOR mit 0x5000 verschlüsselt. Die verschlüsselte Konfiguration ist aufgrund der Schwäche des verwendeten Schlüssels teilweise sichtbar:
Das Format dieser Konfiguration ist (ungefähr) wie folgt:
Offset | Size | Comment |
---|---|---|
0x00 | 0x08 | Fake JPG header magic |
0x08 | 0x12C | Buffer holding tokenized C&C information |
0x134 | 0x14 | Buffer holding port for C&C communication |
0x148 | 0x14 | Sleep time |
0x15C | 0x14 | Operate flag; don’t operate with network monitoring tools deployed or if this flag is set |
0x170 | 0x14 | N/A |
0x184 | 0x14 | DNS flag; append a token at the end of a hostname buffer with either |UDP or |DNS, depending on the value of this field |
0x198 | 0x38 | Variable holding offset start of decoded configuration buffer |
Nachdem die Konfiguration geparst wurde, sucht die Backdoor, mehrmals, nach Netzwerküberwachungsprozessen, bevor die Ausführung an die C&C-Schleife übertragen wird. Die Operation wird gestoppt, wenn das Operate-Flag gesetzt ist oder wenn einer der folgenden Prozesse ausgeführt wird:
- netman.exe
- wireshark.exe
Die Hintertür kann entweder über eine IP-Adresse oder einen Domänennamen mit dem C&C-Server kommunizieren. Nach erfolgreicher Verbindung zum C&C kann die Malware die folgenden Befehle ausführen:
Command ID | Specification |
---|---|
getfilelist-delete | Delete specified files from the disk |
getfilelist-run | Run a command via the WinExec API |
getfilelist-upload | Upload a file via ScreenRDP.dll::ConnectRDServer |
getfilelist-downfile1 | Download a specific file |
getfilelist-downfile2 | Download a specific directory |
getfilelist-downfile3 | Same as getfilelist-downfile2 |
<default> | \\tsclient drive redirection of certain directories (starting with A: for range(0x1A)) |
Schädliche Update-Variante 2
Diese Malware-Variante wurde auch als Download von einer legitimen BigNox-Infrastruktur abgerufen. Unsere Analyse basiert auf der Probe mit dem Hash SHA-1 E45A5D9B03CFBE7EB2E90181756FDF0DD690C00C.
Sie enthält mehrere Dateien, darunter ein sogenanntes Trident-Bundle, in dem eine signierte ausführbare Datei zum Laden einer schädlichen DLL verwendet wird, die Shellcode entschlüsselt und lädt sowie einen reflektierenden Loader für die eigentliche Payload implementiert.
Die Strategie für dieses Trident-Bundle war, die Malware als Sandboxie-Komponenten zu tarnen. Die Namen der gebündelten Komponenten lauten wie folgt:
Filename | Description |
---|---|
C:\ProgramData\Sandboxie\SandboxieBITS.exe | Signed Sandboxie COM Services (BITS) |
C:\ProgramData\Sandboxie\SbieDll.dll | Malicious hijacked DLL |
C:\ProgramData\Sandboxie\SbieIni.dat | Malicious encrypted payload; decrypts a reflectively loaded instance of Gh0st RAT |
C:\Users\Administrator\AppData\Local\Temp\delself.bat | Script to self-delete the initial executable |
C:\Windows\System32\wmkawe_3636071.data | Text file containing the sentence Stupid Japanese |
Wir sind auf andere Instanzen derselben Textdatei gestoßen, die von einem sehr ähnlichen Loader gedroppt. Dabei handelte es sich um einen Supply-Chain-Angriff auf die Webseite des Präsidentenbüros von Myanmar im Jahr 2018 und um einen Angriff auf eine Universität in Hongkong im Jahr 2020.
Die letztendlich bereitgestellte Payload war eine Variante von Gh0st RAT mit Keylogger-Funktionen.
Schädliche Update-Variante 3
Diese Update-Variante wurde erst nach einem anfänglichen schädlichen Update entdeckt, das von einer vom Angreifer kontrollierten Infrastruktur heruntergeladen wurde. Unsere Analyse basiert auf der Probe mit SHA-1 AA3D31A1A6FE6888E4B455DADDA4755A6D42BEEB.
Ähnlich wie bei der vorherigen Variante wird dieses schädliche Update in einer MFC-Datei gebündelt und extrahiert zwei Komponenten: eine gutartige signierte Datei und eine Abhängigkeit davon. Die Komponenten sind:
Filename | Description |
---|---|
C:\ProgramData\LoGiTech\LoGitech.exe | Signed Logitech binary |
C:\ProgramData\LoGiTech\LBTServ.dll | Malicious DLL decrypts and reflectively loads an instance of PoisonIvy |
Bei den zuletzt entdeckten Opfern wurde die ursprünglich heruntergeladene Binärdatei in Delphi geschrieben, während bei früheren Opfern dieselbe von Angreifern kontrollierte URL eine in C ++ geschriebene Binärdatei droppte. Diese Binärdateien sind die vorläufigen Loader. Obwohl diese Loader in verschiedenen Programmiersprachen geschrieben wurden, stellten beide Versionen dieselbe Payload bereit, die eine Instanz des PoisonIvy RAT ist.
Fazit
Wir haben im letzten Jahr verschiedene Supply-Chain-Angriffe ermittelt, darunter unter anderen die Operation SignSight und die Kompromittierung von Able Desktop. Der mit Operation NightScout verbundene Supply-Chain-Angriff ist aufgrund der angegriffenen Branche besonders interessant, da wir selten auf Cyberspionage-Operationen stoßen, die Online-Gamer ins Visier nehmen.
Supply-Chain-Attacken werden wahrscheinlich immer häufiger als Angriffsvektoren von Cyberspionagegruppen genutzt werden und ihre Komplexität könnte sich auf die Entdeckung und Eindämmung solcher Vorfälle auswirken.
Wenn Sie Fragen haben oder Samples zu diesem Thema einreichen möchten, dann wenden Sie sich über die folgende Adresse an uns: threatintel@eset.com.
Danksagung
Der Autor möchte Matthieu Faou für seine Unterstützung und sein Feedback während der Untersuchung seinen besonderen Dank aussprechen.
Indicators of Compromise (IoCs)
Files
SHA-1 | ESET detection name | Decription |
---|---|---|
CA4276033A7CBDCCDE26105DEC911B215A1CE5CF | Win32/Agent.UOJ | Malicious Update variant 1 |
E45A5D9B03CFBE7EB2E90181756FDF0DD690C00C | Win32/GenKryptik.ENAT | Malicious Update variant 2 |
AA3D31A1A6FE6888E4B455DADDA4755A6D42BEEB | Win32/Kryptik.HHBQ | Malicious Update variant 3 |
5732126743640525680C1F9460E52D361ACF6BB0 | Win32/Delf.UOD | Malicious Update variant 3 |
C&C servers
210.209.72[.]180
103.255.177[.]138
185.239.226[.]172
45.158.32[.]65
cdn.cloudistcdn[.]com
q.cloudistcdn[.]com
update.boshiamys[.]com
Malicious update URLs
http://cdn.cloudfronter[.]com/player/upgrade/ext/20201030/1/35e3797508c555d5f5e19f721cf94700.exe
http://cdn.cloudfronter[.]com/player/upgrade/ext/20201101/1/bf571cb46afc144cab53bf940da88fe2.exe
http://cdn.cloudfronter[.]com/player/upgrade/ext/20201123/1/2ca0a5f57ada25657552b384cf33c5ec.exe
http://cdn.cloudfronter[.]com/player/upgrade/ext/20201225/7c21bb4e5c767da80ab1271d84cc026d.exe
http://cdn.cloudfronter[.]com/player/upgrade/ext/20210119/842497c20072fc9b92f2b18e1d690103.exe
https://cdn.cloudfronte[.]com/player/upgrade/ext/20201020/1/c697ad8c21ce7aca0a98e6bbd1b81dff.exe
http://cdn.cloudfronte[.]com/player/upgrade/ext/20201030/1/35e3797508c555d5f5e19f721cf94700.exe
http://res06.bignox[.]com/player/upgrade/202009/6c99c19d6da741af943a35016bb05b35.exe
http://res06.bignox[.]com/player/upgrade/202009/42af40f99512443cbee03d090658da64.exe
MITRE ATT&CK techniques
Note: This table was built using version 8 of the MITRE ATT&CK framework.
Tactic | ID | Name | Description |
---|---|---|---|
Initial Access | T1195.002 | Supply Chain Compromise: Compromise Software Supply Chain | Malware gets delivered via NoxPlayer updates. |
Execution | T1053.005 | Scheduled Task/Job: Scheduled Task | Malicious update variant 3 instances will be executed via Scheduled task. |
Execution | T1569.002 | System Services: Service Execution | Malicious update variant 2 instances will be executed via service execution. |
Persistence | T1053.005 | Scheduled Task/Job: Scheduled Task | Malicious update variant 2 instances will create a scheduled task to establish persistence. |
Defense Evasion | T1140 | Deobfuscate/Decode Files or Information | Malicious update variant 2 and 3 will be contained in "trident" bundles for evasion purposes. |
T1574.002 | Hijack Execution Flow: DLL Side-Loading | Malicious updates shipped as "trident" bundles will perform DLL side loading. | |
Collection | T1056.001 | Input Capture:Keylogging | Some of the final payloads such as PoisonIvy and Gh0st RAT have keylogging capabilities. |
Command and Control | T1090.001 | Proxy: Internal Proxy | The PoisonIvy final payload variant has capabilities to authenticate with proxies. |
T1095 | Non-Application Layer Protocol | All malicious update instances communicate over raw TCP or UDP. | |
T1573 | Encrypted Channel | Both PosionIvy and Gh0st RAT use encrypted TCP communication to avoid detection. | |
Exfiltration | T1041 | Exfiltration Over C2 Channel | Exfiltration in all malicious updates instances is done over a Command and Control channel. |