Apenas algumas semanas após o ataque à cadeia de suprimentos direcionado ao software Able Desktop, outro ataque semelhante ocorreu ao site da Autoridade de Certificação do Governo do Vietnã (VGCA, sigla em inglês): ca.gov.vn. Os atacantes modificaram dois dos instaladores do software disponíveis para download no site e adicionaram um backdoor para comprometer os usuários do aplicativo legítimo.

Pesquisadores da ESET descobriram esse novo ataque à cadeia de suprimentos no início de dezembro de 2020 e notificaram a organização comprometida e o VNCERT. Acreditamos que o site não forneceu instaladores de software comprometidos até o final de agosto de 2020 e, além disso, os dados de telemetria da ESET não indicam que os instaladores comprometidos tenham sido distribuídos em qualquer outro lugar. A Autoridade de Certificação do Governo do Vietnã confirmou que estava ciente do ataque antes de nossa notificação e que alertou o incidente aos usuários que baixaram o software trojanizado.

Ataque à cadeia de suprimentos no Vietnã

No Vietnã, as assinaturas digitais são muito comuns, pois os documentos assinados digitalmente têm a mesma validade que as assinaturas de próprio punho. De acordo com o Decreto nº 130/2018, os certificados criptográficos utilizados para assinar documentos devem ser concedidos por um dos fornecedores de certificados autorizados que incluem a VGCA, que faz parte do Comitê de Criptografia do Governo. Essa comissão, por sua vez, depende do Ministério da Informação e Comunicação.

Além de emitir certificados, a VGCA desenvolve e distribui um kit de ferramentas de assinatura digital, que é usado pelo governo vietnamita e provavelmente por empresas privadas para assinar documentos digitais. O comprometimento de um site de autoridade de certificação é uma boa oportunidade para grupos APT, uma vez que os visitantes provavelmente terão um alto nível de confiança em uma organização estadual responsável por assinaturas digitais.

Conforme mostrado na Figura 1, parece que esses programas são implantados nas agências do Partido e do Estado.

Figura 1. Captura de tela do site ca.gov.vn.

De acordo com a telemetria da ESET, o site ca.gov.vn foi comprometido entre 23 de julho e 16 de agosto de 2020. Dois dos instaladores disponíveis para download, o gca01-client-v2-x32-8.3.msi e o gca01-client-v2-x64-8.3.msi, foram modificados para incluir um malware conhecido como PhantomNet ou SManager que recentemente foi analisado pela NTT Security. Conseguimos confirmar que esses instaladores foram baixados do site ca.gov.vn por meio do protocolo HTTPS, portanto, acreditamos que possa ser um ataque man-in-the-middle. Confira as URLs que apontam para instaladores maliciosos:

  • 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

Assim como é possível ver na Figura 2, essa informação também pode ser confirmada pelos dados do VirusTotal.

Figura 2. Captura de tela do VirusTotal que mostra a URL desde a qual o instalador trojanizado foi baixado.

Os instaladores trojanizados não estão devidamente assinados, mas notamos que os instaladores GCA limpos também estão assinados incorretamente (a assinatura digital do objeto não foi verificada). Tanto o MSIs oficial quanto o trojanizado usam um certificado atribuído a empresa Safenet.

A Figura 3 é um resumo do ataque à cadeia de suprimentos. Para ser atacado, o usuário teria que baixar e executar manualmente o software comprometido hospedado no site oficial.

Figura 3. Esquema simplificado do ataque à cadeia de suprimentos.

Depois de baixado e executado, o instalador inicia o programa GCA original e o arquivo malicioso. O arquivo malicioso é gravado em C:\Program Files\VGCA\Authentication\SAC\x32\eToken.exe. Ao também instalar o programa legítimo, os atacantes garantem que esse comprometimento não seja facilmente percebido pelos usuários finais.

O arquivo malicioso é um dropper simples que extrai um arquivo de gabinete do Windows (.cab) chamado 7z.cab e que contém o backdoor.

Se o dropper for executado como administrador, o backdoor é gravado em C:\Windows\apppatch\netapi32.dll e, para garantir a persistência, o dropper registra a DLL maliciosa como um serviço.

Se executado como um usuário regular, o backdoor é gravado em %TEMP%\Wmedia\<GetTickCount> e para garantir a persistência, o dropper cria uma tarefa agendada que chama a exportação Entery da DLL maliciosa. É interessante notar que a exportação do Entery também foi vista nas versões do TManger usadas pelo TA428, conforme detalhado pela NTT Security.

PhantomNet

O backdoor foi denominado Smanager_ssl.DLL por seus desenvolvedores, mas usamos PhantomNet, pois esse era o nome do projeto usado em uma versão mais antiga desse backdoor. Esta versão mais recente foi compilada em 26 de abril de 2020, quase dois meses antes do ataque à cadeia de suprimentos. Além do Vietnã, vimos vítimas nas Filipinas, mas infelizmente não descobrimos o mecanismo de entrega nesses casos.

Esse backdoor é bastante simples e a maioria dos recursos maliciosos provavelmente são implantados por meio de plug-ins adicionais. Ele pode recuperar a configuração de proxy da vítima e usá-la para entrar em contato com o servidor de comando e controle (C&C). Isso mostra que os alvos provavelmente funcionem em uma rede corporativa.

O PhantomNet usa o protocolo HTTPS para se comunicar com seus servidores C&C hardcodeados: vgca.homeunix[.]org e office365.blogdns[.]com. Para prevenir um ataque man-in-the-middle, o PhantomNet implementa o pinning de certificado, usando funções da biblioteca SSPI. O certificado é baixado durante a primeira conexão com o servidor C&C e, em seguida, armazenado no armazenamento de certificados do Windows.

Além do uso de provedores de DNS dinâmicos, é interessante observar que o nome do primeiro subdomínio, vgca, foi escolhido para imitar o nome da Autoridade de Certificação do Governo do Vietnã.

Os atacantes podem controlar o implante usando estes cinco comandos:

ID do comando Descrição
0x00110020 Obtém as informações da vítima (nome do computador, nome do host, nome de usuário, versão do sistema operacional, privilégios do usuário (admin ou não) e o endereço IP público consultando ipinfo.io).
0x00110030 Chama a exportação DeletePluginObject de todos os plug-ins instalados.
0x00110040 Gerencia os plug-ins (instalar, remover, atualizar). Os plug-ins têm a seguinte exportação (incluindo o erro de digitação no primeiro): GetPluginInfomation, GetRegisterCode, GetPluginObject, DeletePluginObject.
0x00110070 Define um valor de um determinado campo na estrutura principal do backdoor.
0x547CBA78 Gera e define uma senha usando as funções SSPI. O propósito final é desconhecido.

No VirusTotal, encontramos um plug-in que corresponde às exportações acima. É uma compilação em debug que se denomina como SnowballS de acordo com seu caminho PDB e outros caminhos de debug:

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

Uma análise inicial e superficial sugere que essa ferramenta pode ser usada para movimento lateral, pois incorpora Invoke-Mimikatz. Ela também pode coletar informações sobre a máquina da vítima e contas de usuário. Isso mostra que o PhantomNet pode receber plug-ins adicionais e complexos que provavelmente são implantados apenas em máquinas de interesse particular para os operadores do malware.

No caso do ataque no Vietnã, não conseguimos recuperar dados sobre a atividade pós-comprometimento e, portanto, não temos visibilidade do objetivo final dos atacantes.

Conclusão

Com o comprometimento do Able Desktop, o ataque ao WIZVERA VeraPort por Lazarus e o recente ataque à cadeia de suprimentos no Orien do SolarWinds, vemos que os ataques à cadeia de suprimentos são um vetor de comprometimento bastante comum para grupos de espionagem cibernética. Neste caso específico, eles comprometeram o site de uma autoridade de certificação vietnamita, na qual os usuários provavelmente têm um alto nível de confiança.

Os ataques à cadeia de suprimentos são normalmente difíceis de encontrar, já que o código malicioso geralmente fica oculto entre muitos códigos legítimos, tornando o seu reconhecimento bem mais difícil.

Em caso de dúvidas, entre em contato conosco pelo e-mail fearintel@eset.com. Os indicadores de comprometimento também podem ser encontrados em nosso repositório do GitHub.

Indicadores de Comprometimento (IoCs)

Arquivos

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 tabela foi construída usando a versão 8 do framework do MITER 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.