Nur wenige Wochen nach dem Supply-Chain-Angriff auf die Software Able Desktop ereignete sich ein ähnlicher Angriff auf der Website der Vietnam Government Certification Authority (VGCA): ca.gov.vn. Die Angreifer veränderten zwei der auf dieser Website zum Download verfügbaren Installationsprogramme und fügten eine Hintertür hinzu, um die Benutzer der legitimen Anwendung zu anzugreifen.

ESET-Forscher deckten diesen neuen Supply-Chain-Angriff Anfang Dezember 2020 auf und benachrichtigten die gefährdete Organisation und das VNCERT. Wir glauben, dass die Website bis Ende August 2020 keine kompromittierten Software-Installer ausgeliefert hat. Zudem wird der kompromittierte Installer, laut den ESET-Telemetriedaten, nirgendwo anders verteilt. Die vietnamesische Zertifizierungsstelle bestätigte, dass sie vor unserer Benachrichtigung über den Angriff informiert war und dass die Benutzer benachrichtigt wurden, die die trojanisierte Software heruntergeladen haben.

Supply-Chain-Angriff in Vietnam

In Vietnam sind digitale Signaturen sehr verbreitet, da digital signierte Dokumente die gleiche Durchsetzbarkeit aufweisen wie echte Unterschriften. Gemäß dem Dekret Nr. 130/2018 müssen die zum Signieren von Dokumenten verwendeten kryptografischen Zertifikate von einem der autorisierten Zertifikatanbieter ausgestellt werden, zu denen auch die VGCA gehört, die Teil des Zertifizierungskomitees der Regierung ist. Dieser Ausschuss ist wiederum vom Ministerium für Information und Kommunikation abhängig.

Neben der Ausstellung von Zertifikaten entwickelt und vertreibt die VGCA auch ein Toolkit für digitale Signaturen. Es wird von der vietnamesischen Regierung und wahrscheinlich von privaten Unternehmen verwendet, um digitale Dokumente zu signieren. Der Kompromittierung der Website einer Zertifizierungsstelle ist eine gute Gelegenheit für APT-Gruppen. Denn Besucher haben wahrscheinlich ein hohes Maß an Vertrauen in die staatliche Organisation, die für digitale Signaturen verantwortlich ist.

Wie in Abbildung 1 dargestellt, werden diese Programme anscheinend in Organisationen der Partei und des Staates eingesetzt.

Abbildung 1. Screenshot von ca.gov.vn.

Laut ESET-Telemetrie war ca.gov.vn mindestens vom 23. Juli bis zum 16. August 2020 kompromittiert. Zwei der zum Download verfügbaren Installationsprogramme, gca01-client-v2-x32-8.3.msi und gca01-client- v2-x64-8.3.msi wurden so verändert, dass sie eine als PhantomNet oder SManager bekannte Malware enthalten, welche kürzlich von NTT Security analysiert wurde. Nach unseren Erkenntnissen wurden diese Installationsprogramme über das HTTPS-Protokoll von ca.gov.vn heruntergeladen. Daher halten wir es für unwahrscheinlich, dass es sich um einen Man-in-the-Middle-Angriff handelt. Die URLs, die auf die bösartigen Installationsprogramme verwiesen, waren:

  • https://ca.gov[.]vn/documents/20182/6768590/gca01-client-v2-x64-8.3.msi
  • https://ca.gov[.]vn/documents/20182/6768590/gca01-client-v2-x32-8.3.msi

Dies wird auch durch Daten von VirusTotal bestätigt, wie in Abbildung 2 dargestellt.

Abbildung 2. Screenshot von VirusTotal. Es zeigt die URL, von der das trojanisierte Installationsprogramm heruntergeladen wurde.

Die trojanisierten Installationsprogramme sind nicht ordnungsgemäß signiert. Wir haben jedoch festgestellt, dass saubere GCA-Installationsprogramme ebenfalls falsch signiert sind (die digitale Signatur des Objekts ließ sich nicht verifizieren). Sowohl die offiziellen als auch die trojanisierten MSIs verwenden ein Zertifikat, das der Firma Safenet zugewiesen wurde.

Abbildung 3 ist eine Zusammenfassung des Supply-Chain-Angriffs. Um kompromittiert zu werden, müsste ein Benutzer die kompromittierte Software, die auf der offiziellen Website gehostet wird, manuell herunterladen und ausführen.

Abbildung 3. Vereinfachtes Schema des Supply-Chain-Angriffs.

Nach dem Herunterladen und Ausführen startet das Installationsprogramm das echte GCA-Programm und die schädliche Datei. Die schädliche Datei wird in C:\Program Files\VGCA\Authentication\SAC\x32\eToken.exe geschrieben. Durch die Installation des legitimen Programms stellen die Angreifer sicher, dass die Kompromittierung von den Endbenutzern nicht so leicht bemerkt wird.

Diese schädliche Datei ist ein einfacher Dropper, die eine Windows-Cab-Datei (.cab) mit dem Namen 7z.cab extrahiert und die Hintertür enthält.

Wenn der Dropper als Administrator ausgeführt wird, wird die Backdoor in C:\Windows\apppatch\netapi32.dll geschrieben. Aus Gründen der Persistenz registriert der Dropper die schädliche DLL als Dienst.

Wenn die Backdoor mit normalen Benutzerrechten ausgeführt wird, wird sie in %TEMP%\Wmedia\<GetTickCount>.tmp geschrieben. Um Persistenz zu ermöglichen, erstellt der Dropper eine geplante Aufgabe, die den Export Entery der schädlichen DLL aufruft. Es ist interessant, dass der Entery Export auch in den von TA428 verwendeten TManger-Versionen, wie von NTT Security beschrieben, festgestellt  wurde.

PhantomNet

Die Backdoor wurde von ihren Entwicklern Smanager_ssl.DLL genannt, doch wir nennen sie PhantomNet, da dies der Projektname war, der bei einer älteren Version dieser Backdoor verwendet wurde. Diese neueste Version wurde am 26. April 2020, fast zwei Monate vor dem Supply-Chain-Angriff erstellt. Außer in Vietnam haben wir auch auf den Philippinen Opfer ausmachen können, aber leider konnten wir den Übermittlungsmechanismus in diesen Fällen nicht aufdecken.

Diese Backdoor ist recht einfach gehalten und wahrscheinlich werden die meisten bösartigen Funktionen über zusätzliche Plugins bereitgestellt. Sie kann die Proxy-Konfiguration des Opfers abrufen und damit den Befehls- und Kontrollserver (C&C-Server) erreichen. Dies zeigt, dass es sich bei den Ziele wahrscheinlich um Rechner in Unternehmensnetzwerken handelt.

PhantomNet verwendet das HTTPS-Protokoll, um mit seinen fest vorgegebenen C&C-Servern zu kommunizieren: vgca.homeunix[.]Org und office365.blogdns[.]Com. Um einen Man-in-the-Middle-Angriff zu verhindern, implementiert PhantomNet das Anheften von Zertifikaten mithilfe von Funktionen aus der SSPI-Bibliothek. Das Zertifikat wird während der ersten Verbindung mit dem C&C-Server heruntergeladen und dann im Windows-Zertifikatspeicher gespeichert.

Neben der Verwendung dynamischer DNS-Anbieter ist es interessant festzustellen, dass der Name der ersten Subdomain, vgca, gewählt wurde, um den Namen der Zertifizierungsstelle der vietnamesischen Regierung nachzuahmen.

Das Implantat kann von den Angreifern mit diesen fünf Befehlen gesteuert werden:

Command ID Description
0x00110020 Get victim information (computer name, hostname, username, OS version, user privileges (admin or not), and the public IP address by querying ipinfo.io).
0x00110030 Call the export DeletePluginObject of all installed plugins.
0x00110040 Plugin management (install, remove, update). The plugins have the following exports (including the typo in the first one): GetPluginInfomation, GetRegisterCode, GetPluginObject, DeletePluginObject.
0x00110070 Set a value of a given field in the main structure of the backdoor.
0x547CBA78 Generate and set a password using the SSPI functions. The final purpose is unknown.

Auf VirusTotal haben wir ein Plugin gefunden, das den oben genannten Exporten entspricht. Es ist ein Debug-Build und heißt SnowballS gemäß seinem PDB-Pfad und anderen Debug-Pfaden:

  • E:\WorkCode\AD_Attacker\Server\EXE_DEBUG\SnowballS.pdb
  • e:\workcode\ad_attacker\server\plugins\plugins\snowballs\cdomainquery.cpp

Eine erste flüchtige Analyse legt nahe, dass dieses Werkzeug für die laterale Ausbreitung der Malware verwendet werden kann, da es Invoke-Mimikatz einbettet. Es kann auch Informationen über den Computer des Opfers und über Benutzerkonten sammeln. Dies zeigt, dass PhantomNet zusätzliche und komplexe Plugins empfangen kann, die wahrscheinlich nur auf Computern eingesetzt werden, die für die Malware-Betreiber von besonderem Interesse sind.

Im Falle des Angriffs in Vietnam konnten wir keine Daten über Aktivitäten nach der Kompromittierung finden und kennen daher nicht das Endziel der Angreifer.

Fazit

Mit dem Kompromittierung von Able Desktop, dem Angriff von Lazarus auf WIZVERA VeraPort und dem jüngsten Supply-Chain-Angriff auf SolarWinds Orion sehen wir, dass Supply-Chain-Angriffe ein weit verbreiteter Angriffsvektor für Cyberspionagegruppen sind. In diesem speziellen Fall haben sie die Website einer vietnamesischen Zertifizierungsstelle kompromittiert, der gegenüber Benutzer wahrscheinlich ein hohes Maß an Vertrauen haben.

Supply-Chain-Angriffe sind in der Regel schwer zu finden, da der Schadcode im Allgemeinen zwischen vielen legitimen Codes verborgen ist, was seine Entdeckung erheblich erschwert.

Für Anfragen kontaktieren Sie uns unter threatintel@eset.com. Kompromissindikatoren finden Sie auch in unserem GitHub-Repository.

IoCs

Files

SHA-1 ESET detection name Description
5C77A18880CF58DF9FBA102DD8267C3F369DF449 Win32/TrojanDropper.Agent.SJQ Trojanized installer (gca01-client-v2-x64-8.3.msi)
B0E4E9BB6EF8AA7A9FCB9C9E571D8162B1B2443A Win32/TrojanDropper.Agent.SJQ Trojanized installer (gca01-client-v2-x32-8.3.msi)
9522F369AC109B03E6C16511D49D1C5B42E12A44 Win32/TrojanDropper.Agent.SJQ PhantomNet dropper
989334094EC5BA8E0E8F2238CDF34D5C57C283F2 Win32/PhantomNet.B PhantomNet
5DFC07BB6034B4FDA217D96441FB86F5D43B6C62 Win32/PhantomNet.A PhantomNet plugin

C&C servers
office365.blogdns[.]com
vgca.homeunix[.]org

MITRE ATT&CK

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 Attackers modified the installer of the GCA01 software that is hosted on ca.gov.vn and added a backdoor to the MSI installer.
Execution T1204.002 User Execution: Malicious File The victim needs to manually execute the trojanized installer.
Persistence T1053.005 Scheduled Task/Job: Scheduled Task If the user doesn’t have admin privileges, PhantomNet persists via a scheduled task.
T1543.003 Create or Modify System Process: Windows Service If the user has admin privileges, PhantomNet persists via a Windows service.
Discovery T1033 System Owner/User Discovery PhantomNet implements a function to retrieve the username.
T1082 System Information Discovery PhantomNet implements a function to retrieve the OS version.
Command and Control T1090.001 Proxy: Internal Proxy PhantomNet can retrieve the proxy configuration of the default browser and use it to connect to the C&C server.
T1071.001 Application Layer Protocol: Web Protocols PhantomNet uses HTTPS.
T1573.002 Encrypted Channel: Asymmetric Cryptography PhantomNet can add a certificate to the Windows store and use it for certificate pinning for its HTTPS communications.