.
Os profissionais de segurança corporativa podem detectar amostras de malware em ambientes que incorporam o código de ataque Cobalt Strike altamente evasivo, analisando artefatos na memória do processo, de acordo com pesquisadores da unidade de inteligência de ameaças Unit 42 da Palo Alto Networks.
O Cobalt Strike é possivelmente o exemplo mais conhecido de software de segurança comercial legítimo – ele foi projetado para ajudar equipes vermelhas a testar as defesas cibernéticas de suas organizações – que foi cooptado por grupos de ameaças que o usam para contornar essas defesas. A estrutura de comando e controle Nighthawk poderia se tornar outro exemplo de software infosec legítimo abusado.
O kit de ferramentas comercial Cobalt Strike é vendido apenas para clientes controlados que o usam para executar testes de segurança, mas vazamentos de código-fonte levaram grupos de ameaças – de gangues de ransomware a invasores de estado-nação – a usá-lo para obter entrada inicial nas redes visadas. Os pesquisadores da Unidade 42 observam que ela foi usada no ataque de alto perfil a SolarWinds em 2020.
“Uma das principais vantagens do Cobalt Strike é que ele opera principalmente na memória assim que o carregador inicial é executado”, escreveram os pesquisadores de malware da Unidade 42 Dominik Reichel, Esmid Idrizovic e Bob Jung em um relatório. “Esta situação representa um problema para a detecção quando a carga é blindada estaticamente, existe apenas na memória e se recusa a ser executada. Este é um desafio para muitos produtos de software de segurança, pois a varredura da memória é tudo menos fácil.”
O Cobalt Strike está incluído em uma carga fornecida com o malware do carregador de arquivos, eles escrevem. Quando o carregador é executado pela vítima, ele descriptografa ou decodifica a carga na memória e a executa. Como a carga útil está presente na memória em sua forma original, ela pode ser detectada com mais facilidade.
Os pesquisadores atestam que o Cobalt Strike pode ser detectado na memória. Palo Alto projetou um sandbox baseado em hipervisor para analisar artefatos na memória e a Unidade 42 analisou amostras de três carregadores Cobalt Strike detectados pelo sandbox.
Um dos carregadores – apelidado de KoboldLoader – usa várias técnicas para evitar a detecção. O KoboldLoader executa a carga usando injeção de mapeamento e lança um beacon Cobalt Strike SMB descriptografado que pode ser detectado na memória, apesar de alguns recursos de evasão na memória.
Teria sido impossível detectar o beacon SMB sem poder olhar dentro da memória enquanto o código malicioso estava sendo executado, de acordo com os pesquisadores.
MagnetLoader é uma DLL que imita uma biblioteca legítima do Windows e descriptografa o sinalizador Cobalt Strike em um buffer de memória, usando uma função de API do Windows para executar o carregador de sinalizador em vez de chamá-lo diretamente.
LithiumLoader é uma DLL que usa uma técnica de ataque de carregamento lateral que sequestra software legítimo para executar outra DLL maliciosa. A amostra fazia parte de um pacote de instalação Fortinet criado pelos invasores e enviado ao VirusTotal. Uma das funções do carregador executa indiretamente o código shell do stager Cobalt Strike por meio da função EnumSystemGeoID em vez de diretamente. O shellcode do stager é uma carga útil do shell HTTP reverso.
“Essas amostras não são executadas em ambientes sandbox normais”, escrevem os pesquisadores. “Mas… há uma riqueza de informações que podemos usar para detecção se olharmos dentro da memória durante a execução, como ponteiros de função, estágios decodificados do carregador e outros artefatos.”
A Palo Alto colocou táticas para analisar a memória em sua ferramenta avançada de proteção contra malware em nuvem WildFire para complementar outras técnicas, como instrumentação e registro de chamadas de API. Uma delas é a extração automática de carga útil, que ajuda quando os fabricantes de malware ofuscam as cargas úteis e executam práticas de evasão.
Construir assinaturas para as cargas pode permitir a detecção de diferentes componentes de malware como o Cobalt Strike e “se pudermos capturá-los na memória, não importa se o malware decidir não executar”, escrevem os pesquisadores.
Outra tática é usar ponteiros de função da API do Windows. Os projetistas de malware geralmente ocultam as funções da API do Windows que usam para evitar a detecção. O Advanced WildFire pode pesquisar seletivamente e usar dados sobre os ponteiros de função para detectar Cobalt Strike.
Os profissionais de segurança também podem examinar a memória para encontrar alterações nas estruturas de contabilidade do Windows, que o sistema operacional usa para rastrear as bibliotecas de características do processo que foram carregadas. Imagens executáveis também são carregadas nas estruturas de escrituração.
“Dado que muitos desses campos nunca devem ser modificados, geralmente é útil acompanhar quando e como as amostras de malware os manipulam”, argumentam os pesquisadores.
Além disso, os criadores de malware geralmente precisam alterar as permissões de memória para carregar e executar adequadamente os estágios posteriores. Os analistas de segurança que sabem quais páginas de memória tiveram suas permissões alteradas podem ver onde o código malicioso foi carregado e executado. ®
.







