Apenas unas semanas después del ataque de cadena de suministro en el software Able Desktop, se produjo otro ataque similar en el sitio web de la Autoridad de Certificación del Gobierno de Vietnam (VGCA, por sus siglas en inglés): ca.gov.vn. Los atacantes modificaron dos de los instaladores del software disponibles para su descarga en este sitio web y agregaron un backdoor con el objetivo de comprometer a los usuarios de la aplicación legítima.
Los investigadores de ESET descubrieron este nuevo ataque de cadena de suministro a principios de diciembre de 2020 y notificaron a la organización comprometida y al VNCERT. Creemos que el sitio web no ha estado entregando instaladores del software comprometido hasta finales de agosto de 2020 y los datos de telemetría de ESET no indican que los instaladores comprometidos hayan estado siendo distribuidos en otro lugar. La Autoridad de Certificación del Gobierno de Vietnam confirmó que estaban al tanto del ataque previo a nuestra notificación y que informaron a los usuarios que descargaron el software troyanizado.
Ataque de cadena de suministro en Vietnam
En Vietnam, las firmas digitales son muy comunes, ya que los documentos firmados digitalmente tienen la misma validez que los firmados de puño y letra. De acuerdo con el Decreto No. 130/2018, los certificados criptográficos utilizados para firmar documentos deben ser otorgados por uno de los proveedores de certificados autorizados que incluyen a la VGCA, que forma parte del Comité de Cifrado del Gobierno. Ese comité, a su vez, depende del Ministerio de Información y Comunicación.
Además de emitir certificados, la VGCA desarrolla y distribuye un set de herramientas de firma digital, el cual es utilizado por el gobierno vietnamita, y probablemente por empresas privadas, para firmar documentos digitales. El compromiso del sitio web de una autoridad certificadora es una buena oportunidad para los grupos de APT, ya que es muy probable que los visitantes tengan un alto nivel de confianza en una organización estatal responsable de las firmas digitales.
Como se muestra en la Figura 1, parece que estos programas son distribuidos en agencias del Partido y del Estado.
De acuerdo con la telemetría de ESET, ca.gov.vn fue comprometido entre el 23 de julio y el 16 de agosto de 2020. Dos de los instaladores disponibles para su descarga, gca01-client-v2-x32-8.3.msi y gca01- client-v2-x64-8.3.msi, fueron modificados para incluir una pieza de malware conocida como PhantomNet o SManager que recientemente fue analizada por NTT Security. Pudimos confirmar que esos instaladores se descargaron de ca.gov.vn a través del protocolo HTTPS, por lo que creemos que es poco probable que sea un ataque de man-in-the-middle. Las URL que apuntan a instaladores maliciosos fueron:
- 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
Tal como se muestra en la Figura 2, esto también se confirma con datos de VirusTotal.
Los instaladores troyanizados no están debidamente firmados, pero notamos que los instaladores limpios de GCA también están firmados incorrectamente (la firma digital del objeto no se verificó). Tanto el MSI oficial como el troyanizado utilizan un certificado asignado a la empresa Safenet.
La Figura 3 es un resumen del ataque de cadena de suministro. Para verse comprometido, un usuario tendría que descargar y ejecutar manualmente el software comprometido alojado en el sitio web oficial.
Una vez descargado y ejecutado, el instalador inicia el programa GCA genuino y el archivo malicioso. El archivo malicioso se escribe en C:\Program Files\VGCA\Authentication\SAC\x32\eToken.exe. Al instalar también el programa legítimo, los atacantes se aseguran de que los usuarios finales no noten fácilmente el compromiso.
Este archivo malicioso es un simple dropper que extrae un archivo contenedor de Windows (.cab) llamado 7z.cab y que contiene el backdoor.
Si el dropper se ejecuta como administrador, el backdoor se escribe en C:\Windows\apppatch\netapi32.dll y, para la persistencia, el dropper registra la DLL maliciosa como un servicio.
Si se ejecuta como un usuario regular, el backdoor se escribe en %TEMP%\Wmedia\<GetTickCount>.tmp y para la persistencia, el dropper crea una tarea programada que llama a la exportación Entery de la DLL maliciosa. Es interesante notar que la exportación de Entery también se vio en las versiones de TManger utilizadas por TA428, como lo detalla NTT Security.
PhantomNet
El backdoor fue nombrado Smanager_ssl.DLL por sus desarrolladores, pero usamos PhantomNet, ya que ese era el nombre del proyecto utilizado en una versión anterior de este backdoor. Esta versión más reciente fue compilada el 26 de abril de 2020, casi dos meses antes del ataque de cadena de suministro. Además de Vietnam, hemos visto víctimas en Filipinas, pero lamentablemente no descubrimos el mecanismo de entrega en esos casos.
Este backdoor es bastante simple y la mayoría de las capacidades maliciosas probablemente se implementen a través de plugins adicionales. Puede recuperar la configuración del proxy de la víctima y usarla para comunicarse con el servidor de comando y control (C&C). Esto muestra que es probable que los objetivos funcionen en una red corporativa.
PhantomNet utiliza el protocolo HTTPS para comunicarse con sus servidores C&C hardcodeados: vgca.homeunix[.]org y office365.blogdns[.]com. Para evitar un ataque man-in-the-middle, PhantomNet implementa la fijación de certificados utilizando funciones de la biblioteca SSPI. El certificado se descarga durante la primera conexión con el servidor de C&C y luego se guarda en el almacenamiento de certificados en Windows.
Además del uso de proveedores de DNS dinámicos, es interesante notar que el nombre del primer subdominio, vgca, fue elegido para imitar el nombre de la Autoridad de Certificación del Gobierno de Vietnam.
Los atacantes pueden controlar el implante mediante estos cinco comandos:
ID del comando
Descripción
0x00110020
Obtiene información de la víctima (nombre de la computadora, nombre del host, nombre de usuario, versión del SO, privilegios de usuario (admin o no) y la dirección IP pública mediante consulta a ipinfo.io).
0x00110030
Llama la exportación DeletePluginObject de todos los plugins instalados.
0x00110040
Administración de plugins (instalar, remover, actiualizar). Los plugins tiene la siguiente exportación (incluyendo el error de tipeo en el primero): GetPluginInfomation, GetRegisterCode, GetPluginObject, DeletePluginObject.
0x00110070
Establece un valor de un campo dado en la estructura principal del backdoor.
0x547CBA78
Genera y establece una contraseña usando las funciones de SSPI. El propósito final es desconocido.
En VirusTotal, encontramos un plugin que coincide con las exportaciones anteriores. Es una compilación en debug y se denomina SnowballS de acuerdo con su ruta de PDB y otras rutas de debug:
- E:\WorkCode\AD_Attacker\Server\EXE_DEBUG\SnowballS.pdb
- e:\workcode\ad_attacker\server\plugins\plugins\snowballs\cdomainquery.cpp
Un análisis inicial y superficial sugiere que esta herramienta podría usarse para el movimiento lateral, ya que incorpora Invoke-Mimikatz. También puede recopilar información sobre la máquina víctima y las cuentas de usuario. Esto muestra que PhantomNet puede recibir plugins adicionales y complejos que probablemente solo se implementan en máquinas de particular interés para los operadores del malware.
En el caso del ataque en Vietnam, no pudimos recuperar datos sobre la actividad posterior al compromiso y, por lo tanto, no tenemos visibilidad del objetivo final de los atacantes.
Conclusión
Con el compromiso de Able Desktop, el ataque de WIZVERA VeraPort por Lazarus y el reciente ataque de cadena de suministro en Orion de SolarWinds, vemos que los ataques de cadena de suministro son un vector de compromiso bastante común para los grupos de ciberespionaje. En este caso en particular comprometieron el sitio web de una autoridad certificadora vietnamita, en la cual probablemente los usuarios tengan un alto nivel de confianza.
Los ataques a la cadena de suministro suelen ser difíciles de encontrar, ya que el código malicioso generalmente está oculto entre una gran cantidad de código legítimo, lo que dificulta mucho su descubrimiento.
Para cualquier consulta, comuníquese con nosotros a través de threatintel@eset.com. Los indicadores de compromiso también se pueden encontrar en nuestro repositorio de GitHub.
Indicadores de Compromiso (IoCs)
Archivos
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
Servidores C&C
office365.blogdns[.]com
vgca.homeunix[.]org
Técnicas de MITRE ATT&CK
Nota: Esta tabla fue creada utilizando la versión 8 del framework de MITRE ATT&CK.
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. |