ATUALIZAÇÃO (4 de fevereiro de 2021):
Após a publicação de nossa pesquisa, a BigNox nos contatou para dizer que sua negação inicial sobre o ataque foi um mal-entendido e que, desde então, a empresa passou a tomar medidas para melhorar a segurança de seus usuários:

  • O uso de HTTPS para o envio de atualizações de software a fim de minimizar os riscos de sequestro de domínio e ataques Man-in-the-Middle (MitM)
  • Implementação da verificação de integridade de arquivo usando hashing MD5 e verificações de assinaturas de arquivos.
  • A adoção de medidas adicionais para evitar expor as informações pessoais dos usuários, especialmente a criptografia de dados sensíveis.

A BigNox também afirmou que estão enviando os arquivos mais recentes para o servidor de atualização do NoxPlayer e que, na inicialização, executará uma verificação dos arquivos do aplicativo previamente instalados nas máquinas dos usuários.
A ESET não assume qualquer responsabilidade pela precisão das informações enviadas pela BigNox.

Durante 2020, a equipe de investigação e pesquisa da ESET relatou vários ataques à cadeia de suprimentos, como o caso do WIZVERA VeraPort, usado por sites governamentais e bancários na Coreia do Sul, a Operação StealthyTrident que comprometeu o software de chat Able Desktop usado por várias agências governamentais da Mongólia e a Operação SignSight, que comprometeu a distribuição de um software de assinatura distribuído pelo governo vietnamita.

Em janeiro de 2021, descobrimos um novo ataque à cadeia de suprimentos que comprometia o mecanismo de atualização do NoxPlayer, um emulador do Android para PCs e Macs que faz parte da linha de produtos da BigNox e que conta com mais de 150 milhões de usuários em todo o mundo.

Esse software é geralmente usado por gamers para jogar jogos portáteis em seus PCs, o que faz com que esse tipo de incidente não seja algo tão comum.

Os pesquisadores identificaram três famílias de malware diferentes que são distribuídas através de atualizações maliciosas personalizadas para vítimas selecionadas, sem qualquer sinal de que a ameaça esteja projetada para obter algum tipo de ganho financeiro, mas sim recursos relacionados ao monitoramento ou vigilância.

Identificamos semelhanças entre alguns dos loaders utilizados nessa operação com outros que já estávamos monitorando, como instâncias que descobrimos em um ataque ao site do escritório presidencial de Mianmar em 2018, e, no início de 2020, em uma invasão que afetou a uma Universidade de Hong Kong.

Sobre a BigNox

A BigNox é uma empresa com sede em Hong Kong que fornece vários produtos, principalmente um emulador do Android para PCs e Macs chamado NoxPlayer. O site oficial da empresa afirma ter mais de 150 milhões de usuários em mais de 150 países que falam 20 idiomas diferentes. No entanto, é importante observar que a base de seguidores da BigNox está predominantemente em países asiáticos.

A BigNox também escreveu um artigo em 2019 sobre o uso de uma VPN juntamente com o NoxPlayer, mostrando a preocupação da empresa com a privacidade de seus usuários.

Entramos em contato com a BigNox sobre a invasão e a empresa negou ter sido afetada pelo ataque. Também oferecemos nosso apoio para ajudá-los a realizar a divulgação do incidente, caso a BigNox decidisse conduzir uma investigação interna.

Fui atacado?

Como posso saber se recebi uma atualização maliciosa ou não? Verifique se algum processo em andamento tem uma conexão de rede ativa com servidores C&C ativos conhecidos ou se algum malware baseado nos nomes de arquivo que fornecemos no relatório está instalado em:

  • Atacados: usuários do NoxPlayer.
  • Como posso saber se recebi uma atualização maliciosa ou não? Verifique se algum processo em andamento tem uma conexão de rede ativa com servidores C&C ativos conhecidos ou se algum malware baseado nos nomes de arquivo que fornecemos no relatório está instalado em:
    • 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
    • Um arquivo chamado %LOCALAPPDATA%\Nox\update\UpdatePackageSilence.exe sem assinatura digital da BigNox.
  • Como estar protegido:
    • Em caso de invasão: realizar a reinstalação padrão a partir de uma mídia limpa.
    • Para usuários que não foram comprometidos: não baixe nenhuma atualização até que o BigNox informe que mitigou a ameaça.

Linha do tempo

De acordo com a telemetria da ESET, vimos os primeiros indicadores de comprometimento em setembro de 2020, e a atividade continuou até descobrirmos uma atividade explicitamente maliciosa em 25 de janeiro de 2021, momento em que relatamos o incidente para a BigNox.

Vitimologia

Em comparação com o número total de usuários ativos do NoxPlayer, há um número muito pequeno de vítimas. De acordo com a telemetria da ESET, mais de 100.000 de nossos usuários têm o Noxplayer instalado em suas máquinas. Entre eles, apenas 5 usuários receberam uma atualização maliciosa, o que mostra que a Operação NightScout lida com atividades altamente direcionadas. As vítimas estão localizadas em Taiwan, Hong Kong e Sri Lanka.

Figura 1. Mapa da Ásia e dos países onde estão as vítimas detectadas.

Não conseguimos encontrar correlações que sugerissem algum tipo de vínculo entre as vítimas. No entanto, com base no software comprometido em questão e no malware entregue que exibe recursos de vigilância, acreditamos que isso pode indicar a intenção de coletar informações sobre alvos que de alguma forma estão envolvidos na comunidade gamer.

É importante destacar que, diferentemente de outras operações anteriores semelhantes, como a atividade do Grupo Winnti direcionada à indústria de jogos em 2019, não encontramos indicadores que sugerissem a proliferação indiscriminada de atualizações maliciosas entre um grande número de usuários do NoxPlayer, reforçando nossa crença que esta é uma operação altamente direcionada.

Mecanismo de atualização

Para entender a dinâmica desse ataque à cadeia de suprimentos, é importante saber qual vetor foi utilizado para propagar malware aos usuários do NoxPlayer. Este vetor foi o mecanismo de atualização do NoxPlayer.

Ao ser inicializado, caso o NoxPlayer detecte uma versão mais recente do software, ele mostra ao usuário uma caixa de mensagem (Figura 2) que oferece a opção de instalá-lo.

Figura 2. Prompt de atualização do NoxPlayer.

Esse processo é feito através de uma consulta ao servidor de atualização por meio do API REST de BigNox (api.bignox.com) para recuperar informações de atualização específicas, conforme podemos ver na Figura 3.

Figura 3. Solicitação do API do cliente de atualização do NoxPlayer.

A resposta a esta consulta contém informações específicas de atualização, como a URL do binário de atualização, seu tamanho, hash MD5 e outras informações adicionais relacionadas, conforme podemos ver na Figura 4.

Figura 4. Resposta do API do servidor do NoxPlayer.

Ao pressionar o botão “Update now” da Figura 1, o binário principal do aplicativo do NoxPlayer (Nox.exe) fornece os parâmetros de atualização recebidos para outro binário em sua caixa de ferramentas NoxPack.exe, que se encarrega de baixar a própria atualização, como podemos ver na Figura 5.

Figura 5. Cadeia de execução do NoxPlayer na atualização.

Feito isso, a barra de progresso na caixa de mensagem refletirá o estado do download (Figura 6) e, quando concluído, a atualização já terá sido realizada.

Figura 6. Atualização do NoxPlayer em andamento via NoxPack.exe

Indicadores de comprometimento da cadeia de suprimentos

Temos evidências suficientes para afirmar que a infraestrutura do BigNox (res06.bignox.com) foi comprometida para hospedar malware e também para sugerir que sua infraestrutura de API HTTP (api.bignox.com) poderia ter sido comprometida. Em alguns casos, o atualizador do BigNox baixou payloads adicionais no servidor controlados pelos atacantes. Isso sugere que o campo URL, fornecido na resposta da API do BigNox, foi adulterado pelos atacantes. O fluxo de invasão observado pode ser visto na Figura 7.

 

Figura 7. Diagrama de sequência do fluxo da invasão.

Veja uma descrição geral do que é apresentado no diagrama de sequência anterior:

  • Na execução, o principal executável do Nox.exe envia uma solicitação por meio da API para consultar informações de atualização.
  • O servidor do API do BigNox responde à solicitação do cliente com informações de atualização específicas, incluindo a URL para fazer download da atualização da infraestrutura legítima do BigNox.
  • O Nox.exe fornece os parâmetros apropriados para que o NoxPlayer.exe possa baixar a atualização.
  • A atualização legítima armazenada na infraestrutura do BigNox pode ser substituída por um malware ou pode ser um novo nome de arquivo/URL não usado por atualizações legítimas.
  • O Malware é instalado na máquina da vítima. Ao contrário das atualizações legítimas do BigNox, os arquivos maliciosos não são assinados digitalmente, sugerindo que o sistema de compilação do BigNox não foi comprometido, mas apenas seus sistemas que distribuem atualizações.
  • A ameaça realiza algumas ações de reconhecimento da vítima e as envia para os operadores do malware.
  • Os atacantes produziram atualizações maliciosas para vítimas específicas com base em algum esquema de filtragem desconhecido.
  • O Nox.exe executa solicitações de atualização esporádicas.
  • O servidor do API do BigNox responde ao cliente com informações de atualização, que indicam que a atualização está armazenada na infraestrutura controlada pelo atacante.
  • Outros malwares são distribuídos a vítimas selecionadas.

Com essas informações podemos destacar várias coisas:

  • A infraestrutura legítima do BigNox distribuía malware para atualizações específicas. Observamos que essas atualizações maliciosas ocorreram apenas em setembro de 2020.
  • Além disso, observamos que, para vítimas específicas, as atualizações maliciosas foram baixadas da infraestrutura controlada pelo atacante posteriormente e ao longo do final de 2020 e início de 2021.
  • Estamos altamente confiantes de que essas atualizações adicionais foram realizadas pelo Nox.exe fornecendo parâmetros específicos para o NoxPack.exe, sugerindo que o mecanismo do API do BigNox também pode ter sido comprometido para distribuir atualizações maliciosas personalizadas.
  • Também pode sugerir a possibilidade de que as vítimas tenham sido submetidas a um ataque MitM, embora acreditemos que essa hipótese seja improvável, uma vez que as vítimas que descobrimos estão em países diferentes e os atacantes já tinham uma base na infraestrutura do BigNox.
  • Além disso, conseguimos reproduzir o download das amostras de malware hospedadas em res06.bignox.com de uma máquina de teste e usando https. Isso descarta a possibilidade de que um ataque MitM tenha sido utilizado para adulterar o binário de atualização.

Também é importante mencionar que as atualizações maliciosas baixadas da infraestrutura controlada pelo atacante imitaram o caminho das atualizações legítimas:

    • Atualização maliciosa da infraestrutura controlada pelo atacante: http://cdn.cloudfronte[.]com/player/upgrade/ext/20201030/1/35e3797508c555d5f5e19f721cf94700.exe
    • Atualização legítima do NoxPlayer:
      http://res06.bignox[.]com/player/upgrade/202012/1b31bced0a564bed9f60264f061dcdae.exe

Além disso, os nomes de domínio controlados e registrados pelos atacantes imitam o nome de domínio da rede BigNox CDN, que é cloudfront.net.

Esses indicadores sugerem que os atacantes estavam tentando evitar a detecção para que pudessem permanecer fora do radar e obter persistência a longo prazo.

Malware

Um total de três variantes de atualização maliciosa diferentes foram observadas, cada uma das quais propagando um malware diferente. Essas variantes são as seguintes:

Atualização maliciosa – Variante 1

Essa variante é uma das atualizações preliminares que apontam para a infraestrutura do BigNox comprometida. Nossa análise é baseada na amostra com SHA-1 CA4276033A7CBDCCDE26105DEC911B215A1CE5CF.

O malware propagado aparentemente não foi documentado anteriormente. A ameaça não é extremamente complexa, mas tem recursos suficientes para monitorar suas vítimas. O arquivo RAR SFX inicial coloca duas DLLs em C:\Arquivos de programas\Internet Explorer\ e executa uma delas, dependendo da arquitetura, por meio de rundll32.exe. Os nomes dessas DLLs são:

  • ieproxysocket64.dll
  • ieproxysocket.dll

A atualização também coloca um arquivo de texto chamado KB911911.LOG no disco, no qual o nome original do instalador SFX será gravado. A DLL tenta abrir e ler esse arquivo de log e, se não for encontrado, interromperá a execução, implementando uma proteção de execução.

A DLL verificará se foi carregada por algum dos seguintes processos; caso sim, ela interromperá sua própria execução:

  • smss.exe
  • winlogon.exe
  • csrss.exe
  • wininit.exe
  • services.exe
  • explorer.exe

O endereço IP da máquina será verificado para comprovar que não seja 127.0.0.1 nem 0.0.0.0; se for, será verificado novamente em um loop infinito até que mude. Caso contrário, ele continuará extraindo o UUID da máquina atual por meio de uma consulta de objeto WMI. Este UUID retornado é hasheado usando MD5 para serializar a vítima atual. As informações do nome da conta também serão recuperadas e salvas.

Uma configuração criptografada será recuperada do recurso das DLL. Esta configuração é criptografada usando um XOR de dois bytes com 0x5000. A configuração criptografada é parcialmente visível devido à fragilidade da chave usada:

Figura 8. Configuração criptografada em recursos.

O formato desta configuração é o seguinte (aproximadamente):

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

Depois que a configuração é analisada, o backdoor verifica várias vezes os processos de monitoramento de rede antes de transferir a execução para o loop do C&C. A operação é interrompida se o sinalizador Operate estiver definido ou se algum dos seguintes processos estiver em execução:

  • netman.exe
  • wireshark.exe

O backdoor pode usar um endereço IP sem formato ou um nome de domínio para se comunicar com o servidor do C&C. Após a conexão bem-sucedida com o C&C, o malware será capaz de executar os seguintes comandos:

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

 

Figura 9. Anatomia da variante 1 da atualização maliciosa.

Atualização maliciosa – Variante 2

Essa variante do malware também foi detectada ao ser baixada da infraestrutura legítima do BigNox. Nossa análise é baseada na amostra com SHA-1 E45A5D9B03CFBE7EB2E90181756FDF0DD690C00C.

A atualização contém vários arquivos que compõem o que é conhecido como “trident bundle”, no qual um executável assinado é usado para carregar uma DLL maliciosa, que irá descriptografar e carregar um shellcode, implementando um carregador reflexivo para o payload final.

O objetivo deste pacote de tridente era disfarçar o malware como componentes do Sandboxie. Os nomes dos componentes agrupados são os seguintes:

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

Encontramos outras instâncias desse mesmo arquivo de texto liberadas por um carregador muito semelhante em um ataque à cadeia de suprimentos que envolve o site do gabinete presidencial de Mianmar em 2018 e em uma invasão em uma universidade de Hong Kong em 2020.

O payload final implantado foi uma variante do Gh0st RAT com recursos de keylogger.

Figura 10. Anatomia da variante 2 da atualização maliciosa.

Atualização maliciosa – Variante 3

Esta variante de atualização só foi detectada em atividade após as atualizações maliciosas iniciais, baixadas da infraestrutura controlada pelo atacante. Nossa análise é baseada na amostra com SHA-1 AA3D31A1A6FE6888E4B455DADDA4755A6D42BEEB.

Da mesma forma, como com a variante anterior, esta atualização maliciosa vem incluída em um arquivo MFC e extrai dois componentes: um arquivo assinado benigno e uma dependência dele. Os componentes são:

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

Nas vítimas descobertas mais recentemente, o binário inicial baixado foi escrito em Delphi, enquanto para as vítimas anteriores a mesma URL controlada pelo atacante deixou propagou um binário escrito em C ++. Esses binários são os carregadores preliminares iniciais. Embora os carregadores tenham sido escritos em linguagens de programação diferentes, ambas as versões implantaram o mesmo payload final, que é uma instância do PoisonIvy RAT.

Figura 11. Anatomia da variante 3 da atualização maliciosa.

Conclusão

Detectamos vários ataques à cadeia de suprimentos no ano passado, como a Operação SignSight ou o comprometimento do Able Desktop, entre outros. No entanto, o ataque à cadeia de suprimentos na Operação NightScout é particularmente interessante devido aos alvos de ataque, considerando que dificilmente encontramos muitas operações de espionagem cibernética direcionada a gamers.

Os ataques à cadeia de suprimentos continuarão sendo um vetor de ataque bastante comum, alavancado por grupos de espionagem cibernética, e sua complexidade pode afetar a descoberta e a mitigação desse tipo de incidente.

Em caso de dúvidas ou para enviar amostras relacionadas ao assunto, entre em contato conosco através do e-mail threatintel@eset.com.

Reconhecimento

O autor agradece o apoio e o feedback de Matthieu Faou durante toda a pesquisa.

Indicadores de Comprometimento (IoCs)

Arquivos

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

Servidores do C&C

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

URL das atualizações maliciosas

hxxp://cdn.cloudfronter[.]com/player/upgrade/ext/20201030/1/35e3797508c555d5f5e19f721cf94700.exe
hxxp://cdn.cloudfronter[.]com/player/upgrade/ext/20201101/1/bf571cb46afc144cab53bf940da88fe2.exe
hxxp://cdn.cloudfronter[.]com/player/upgrade/ext/20201123/1/2ca0a5f57ada25657552b384cf33c5ec.exe
hxxp://cdn.cloudfronter[.]com/player/upgrade/ext/20201225/7c21bb4e5c767da80ab1271d84cc026d.exe
hxxp://cdn.cloudfronter[.]com/player/upgrade/ext/20210119/842497c20072fc9b92f2b18e1d690103.exe
hxxps://cdn.cloudfronte[.]com/player/upgrade/ext/20201020/1/c697ad8c21ce7aca0a98e6bbd1b81dff.exe
hxxp://cdn.cloudfronte[.]com/player/upgrade/ext/20201030/1/35e3797508c555d5f5e19f721cf94700.exe
hxxp://res06.bignox[.]com/player/upgrade/202009/6c99c19d6da741af943a35016bb05b35.exe
hxxp://res06.bignox[.]com/player/upgrade/202009/42af40f99512443cbee03d090658da64.exe

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