Resumo
- Em 23 de fevereiro, a comunidade de inteligência de ameaças começou a observar uma nova amostra de malware que circulava em organizações ucranianas.
- Nossa análise mostra que um driver assinado está sendo usado para implantar um limpador que tem como alvo dispositivos Windows, manipulando o MBR resultando em falha de inicialização subsequente.
- Este blog inclui os detalhes técnicos do limpador, apelidado de HermeticWiper, e inclui IOCs para permitir que as organizações fiquem protegidas desse ataque.
- Esta amostra está sendo usada ativamente contra organizações ucranianas, e este blog será atualizado à medida que mais informações forem disponibilizadas.
- Também analisamos um ‘ransomware’, chamado PartyTicket, supostamente usado como isca durante operações de limpeza.
- Os clientes do SentinelOne estão protegidos contra essa ameaça, nenhuma ação é necessária.
Fundo
Em 23 de fevereiro, nossos amigos da Symantec e da ESET, pesquisa, tuitaram hashes associados a um ataque de limpador na Ucrânia, incluindo um que não está disponível publicamente a partir desta redação.

Começamos a analisar esse novo malware do limpador, chamando-o de ‘HermeticWiper’ em referência ao certificado digital usado para assinar a amostra. O certificado digital é emitido sob o nome da empresa ‘Hermetica Digital Ltd’ e válido a partir de abril de 2021. Até agora, não vimos nenhum arquivo legítimo assinado com este certificado. É possível que os invasores usaram uma empresa de fachada ou se apropriaram de uma empresa extinta para emitir este certificado digital.

Este é um esforço inicial para analisar a primeira amostra disponível de HermeticWiper. Reconhecemos que a situação em solo na Ucrânia está evoluindo rapidamente e esperamos que possamos contribuir com nossa pequena parte para o esforço de análise coletiva.
Análise Técnica
À primeira vista, o HermeticWiper parece ser um aplicativo personalizado com pouquíssimas funções padrão. A amostra de malware tem 114KBs de tamanho e cerca de 70% disso é composta de recursos. Os desenvolvedores estão usando uma técnica testada e testada de malware de limpador, abusando de um driver benigno de gerenciamento de partição, a fim de realizar os componentes mais prejudiciais de seus ataques. Tanto o Lazarus Group (Destover) quanto o APT33 (Shamoon) aproveitaram-se do Eldos Rawdisk para obter acesso direto ao sistema de arquivos sem chamar o Windows DE APIs. HermeticWiper usa uma técnica semelhante abusando de um motorista diferente, .empntdrv.sys

As cópias do motorista são recursos comprimidos por MS. O malware implanta um desses dependendo da versão do SISTEMA, bitness e redirecionamento SysWow64.

O motorista benigno easeus é abusado para fazer uma parte justa do levantamento pesado quando se trata de acessar unidades físicas diretamente, bem como obter informações de partição. Isso aumenta a dificuldade de analisar o HermeticWiper, pois muitas funcionalidades são adiadas para chamadas com IOCTLs específicos.DeviceIoControl
Corrupção de MBR e Partição
HermeticWiper enumera várias vezes uma gama de unidades físicas, de 0 a 100. Para cada Unidade Física, o dispositivo é chamado para um número de dispositivo.\\.\EPMNTDRV\

O malware então se concentra em corromper os primeiros 512 bytes, o Master Boot Record (MBR) para cada Unidade Física. Embora isso deva ser suficiente para o dispositivo não inicializar novamente, o HermeticWiper passa a enumerar as partições para todas as unidades possíveis.
Eles então diferenciam entre partições FAT e NTFS. No caso de uma partição FAT, o malware chama o mesmo ‘violinista de bits’ para corromper a partição. Para o NTFS, o HermeticWiper analisa a Tabela de Arquivos Mestres antes de chamar essa mesma função de mexer de bit novamente.

Nós me refricamos eufemisticamente à função de mexer bit no interesse da brevidade. Olhando através dele, vemos chamadas para APIs do Windows para adquirir um provedor de contexto criptográfico e gerar bytes aleatórios. É provável que isso esteja sendo usado para uma implementação cripto inlina e sobrescrição de byte, mas o mecanismo não está totalmente claro no momento.
Outra funcionalidade refere-se a campos MFT interessantes (), e fluxos NTFS (, , . O malware também enumera pastas comuns (‘Meus documentos’, ‘Desktop’, ‘AppData’), faz referências ao registro (‘ntuser’) e logs de eventos do Windows (). Nossa análise está em andamento para determinar como essa funcionalidade está sendo usada, mas é claro que já tendo corrompido o MBR e partições para todas as unidades, o sistema de vítimas deve ser inoperável a esta altura da execução.$bitmap$logfile$DATA$I30$INDEX_ALLOCATION"\\\\?\\C:\\Windows\\System32\\winevt\\Logs"
Ao longo do caminho, as operações mais mundanas da HermeticWiper nos fornecem mais IOCs para monitorar. Isso inclui a criação momentânea do motorista abusado, bem como um serviço de sistema. Ele também modifica várias chaves de registro, incluindo a configuração da chave para 0, efetivamente desativando despejos de acidentes antes que a execução do motorista abusado comece. SYSTEM\CurrentControlSet\Control\CrashControl CrashDumpEnabled

Finalmente, o malware espera em roscas para dormir antes de iniciar um desligamento do sistema, finalizando o efeito devastador do malware.
Um Decoy Ransomware – PartyTicket
Em 24 de fevereiro de 2022, pesquisadores da Symantec apontaram para um novo ransomware Go sendo usado como isca, juntamente com a implantação do HermeticWiper. Durante a análise out decidimos nomeá-lo PartyTicket com base em algumas das strings usadas pelos desenvolvedores de malware:

A ideia de usar um ransomware como isca para um limpador é contra-intuitiva. Em particular, um ransomware tão mal codificado quanto o PartyTicket é mais provável que amarre recursos durante a execução de um limpador de outro lado eficiente.
Como acontece frequentemente com desenvolvedores amadores do Go, o malware tem pouco controle sobre seus threads simultâneos e os comandos que ele tenta executar. Isso leva a centenas de threads e eventos gerados em nossos consoles. Ou seja, é um ransomware muito alto e ineficaz que deve disparar alertas para a esquerda e para a direita.
A organização da pasta e as convenções de nomeação de funções dentro do binário mostram a intenção do desenvolvedor de insultar o governo dos EUA e a administração Biden.

Provocações semelhantes podem ser encontradas na nota de resgate após a execução:

Ao tentar entender o fluxo de execução do PartyTicket, vemos a função recursivamente enumerando pastas:403forBiden.wHiteHousE.primaryElectionProcess()

O número resultante de pastas será usado como uma entrada superior para threads simultâneos, um erro dos devs Go, pois isso efetivamente vincula todos os recursos do sistema. Enquanto os arquivos encontrados estão todos na fila em um canal para os threads fazerem referência.

A função indiretamente chamada para cada segmento é . Ele, por sua vez, pega um nome de arquivo, faz uma cópia com um nome e exclui o arquivo original. Em seguida, esperamos um segundo loop para aliviar essa fila de arquivos e executar cada um através de uma implementação cripto Go AES padrão. No entanto, é improvável que a execução seja tão longe com o projeto atual do PartyTicket.main.subscribeNewPartyMember()<UUID>.exe
(Obrigado a Joakim Kennedy (Intezer) por apontar esta chamada indireta)

Overall our analysis of PartyTicket indicates it to be a rather simple, poorly coded, and loud malware. Its possible role as a decoy ransomware deployed alongside HermeticWiper is more likely to be effective for its accidental hogging of the victim organization’s system resources rather than the encryption of files itself. IOCs and Yara rules have been added below.
Conclusão
Após uma semana de desfigurações e crescentes ataques DDoS, a proliferação de operações de sabotagem através de malware de limpador é uma escalada esperada e lamentável. Neste momento, temos uma pequena fatia de abertura nos ataques na Ucrânia e subsequente repercussão em países vizinhos e aliados. Se há um lado bom para uma situação tão difícil, é ver a colaboração aberta entre equipes de pesquisa de inteligência de ameaças, pesquisadores independentes e jornalistas que procuram esclarecer a história. Nossos agradecimentos aos pesquisadores da Symantec, ESET, Stairwell e RedCanary, entre outros que contribuíram com amostras, tempo e experiência.
Clientes SentinelOne Protegidos
Indicadores de Compromisso
(Atualizado em 28 de fevereiro de 2022)
| ms-comprimido recursos | SHA1 |
| RCDATA_DRV_X64 | 5ceebaf1cbb0c10b95f7edd458804a646c6f215e |
| RCDATA_DRV_X86 | 0231721ef4519ec776ff7d1f25c937545ce9f4 |
| RCDATA_DRV_XP_X64 | 9c2e465e8dfdfc1c0c472e0a34a7614d796294af |
| RCDATA_DRV_XP_X86 | ee764632adedf6bb4cf4075a20b4f6a79b8f94c0 |
| HermeticWiper | SHA1 |
| Win32 EXE | 0d8cc992f279ec45e8b8dfd05a700ff1f0437f29 |
| Win32 EXE | 61b25d11392172e587d8da3045812a66c3385451 |
| Win32 EXE | 912342f1c840a42f6b74132f8a7c4ffe7d40fb77 |
| Win32 EXE | 9518e4ae0862ae871cf9fb634b50b07c66a2c379 |
| Win32 EXE | d9a3596af0463797df4ff25b799184946e3bfa2 |
| PartyTicket | SHA-1 |
| Win32 EXE | f32d791ec9e6385a91b45942c230f52aff1626df |
Regras yara
(https://github.com/SentineLabs/yara/blob/main/APT_ZZ_Unknown_HermeticWiper.yar)
rule MAL_HERMETIC_WIPER {
meta:
desc = "Hermetic Wiper - broad hunting rule"
author = "Hegel @ SentinelLabs"
version = "1.0"
last_modified = "02.23.2022"
hash = "1bc44eef75779e3ca1eefb8ff5a64807dbc942b1e4a2672d77b9f6928d292591"
reference = "https://www.sentinelone.com/labs/hermetic-wiper-ukraine-under-attack/"
strings:
$string1 = "DRV_XP_X64" wide ascii nocase
$string2 = "EPMNTDRV\\%u" wide ascii nocase
$string3 = "PhysicalDrive%u" wide ascii nocase
$cert1 = "Hermetica Digital Ltd" wide ascii nocase
condition:
uint16(0) == 0x5A4D and
all of them
}
rule MAL_PARTY_TICKET {
meta:
desc = "PartyTicket Golang Ransomware - associated with HermeticWiper campaign"
author = "Hegel @ SentinelLabs"
version = "1.0"
last_modified = "02.24.2022"
hash = "4dc13bb83a16d4ff9865a51b3e4d24112327c526c1392e14d56f20d6f4eaf382"
reference = "https://twitter.com/juanandres_gs/status/1496930731351805953"
strings:
$string1 = "/403forBiden/" wide ascii nocase
$string2 = "/wHiteHousE/" wide ascii
$string3 = "vote_result." wide ascii
$string4 = "partyTicket." wide ascii
$buildid1 = "Go build ID: \"qb0H7AdWAYDzfMA1J80B/nJ9FF8fupJl4qnE4WvA5/PWkwEJfKUrRbYN59_Jba/2o0VIyvqINFbLsDsFyL2\"" wide ascii
$project1 = "C:/projects/403forBiden/wHiteHousE/" wide ascii
condition:
uint16(0) == 0x5A4D and
(2 of ($string*) or
any of ($buildid*) or
any of ($project*))
}
Regras do SentinelOne STAR
EventType = "Process Creation" and TgtProcPublisher = "HERMETICA DIGITAL LTD" ( SrcProcSignedStatus = "signed" AND IndicatorPersistenceCount = "2" AND RegistryValue = "4" AND RegistryKeyPath = "MACHINE\SYSTEM\ControlSet001\Services\VSS\Start" ) AND SrcProcImagePath !~ "devsetup64.exe"
FONTE: SENTINEL ONE