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.
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.
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.
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. |