Uma das técnicas mais avançadas usadas pelos cibercriminosos para burlar as defesas e comprometer os sistemas é conhecida como process hollowing.

O que é Process Hollowing?

Process hollowing é uma técnica de injeção de código em que um invasor cria um processo legítimo em estado suspenso, substitui sua memória por código malicioso e, em seguida, retoma o processo para executar o código malicioso sob o disfarce de um processo legítimo.

A ESET observou que o processo oco é uma técnica usada em várias campanhas de malware, como Bandidos ou Guinea Pig. Ferramentas maliciosas, como o Smoke Loader e o TrickBot, também são conhecidas por usar essa técnica para executar seu código em processos legítimos, facilitando a evasão da detecção por soluções antivírus e sistemas de detecção de intrusão (MITRE ATT&CK - Elastic).

Capacidade de evasão de segurança

Essa técnica permite que o malware evite medidas de segurança que dependem da identificação de processos com base na legitimidade de seus arquivos executáveis, com base nas seguintes características:

  • Ocultação: o malware é executado dentro de um processo legítimo, dificultando a detecção por antivírus e outras ferramentas de segurança.
  • Privilégios: o malware herda privilégios do processo original, permitindo que ele acesse recursos e execute ações que normalmente não conseguiria.
  • Persistência: o malware pode manipular o processo original para garantir sua própria sobrevivência, mesmo que o sistema seja reiniciado.

Como isso funciona?

Os cibercriminosos implementam o processo hollowing por meio de uma série de etapas meticulosas para injetar código malicioso em um processo legítimo para burlar as defesas do sistema. A seguir, você verá um passo a passo de como os cibercriminosos implementam o process hollowing:

  1. Criação de processo em estado suspenso: o invasor inicia um processo legítimo (por exemplo, svchost.exe) em um estado suspenso usando a função CreateProcess da API do Windows com o sinalizador CREATE_SUSPENDED.
  2. Desmapeamento/Esvaziamento da memória do processo: usando funções como ZwUnmapViewOfSection ou NtUnmapViewOfSection, o atacante desmapeia a memória do processo, liberando o espaço onde reside o executável legítimo.
  3. Injeção de código mal-intencionado: o invasor aloca nova memória dentro do processo suspenso com VirtualAllocEx e grava código malicioso nesse espaço usando WriteProcessMemory.
  4. Modificação do contexto da thread: com a função SetThreadContext, o invasor modifica o ponto de entrada do processo para apontar para o código malicioso recém-injetado.
  5. Retomada do processo: finalmente, o processo suspenso é retomado com ResumeThread, e o código malicioso começa a ser executado sob o disfarce do processo legítimo.

Sinais do uso de process hollowing

O process hollowing pode ser difícil de detectar, mas há alguns sinais gerais que podem indicar seu uso:

  • Alto uso de CPU/memória: o Process Hollowing pode envolver uso intensivo de CPU e memória, especialmente durante a fase de injeção de código.
  • Atividade incomum do processo: os processos comprometidos pelo process hollowing podem apresentar um comportamento incomum, como a abertura de arquivos ou portas de rede inesperados.
  • Incompatibilidades de tamanho de processo: os processos comprometidos por process hollowing podem ter um tamanho de memória significativamente menor do que o esperado.

Há também abordagens mais específicas que os profissionais de cibersegurança podem adotar:

  • Monitoramento de chamadas de API: o monitoramento de chamadas de API, como CreateRemoteThread, VirtualAllocEx e WriteProcessMemory, pode ajudar a identificar comportamentos suspeitos associados à injeção de código.
  • Análise de contexto: examinar os contextos de threads de processos em busca de anomalias, como alterações inesperadas nos pontos de entrada, pode ser um indicativo de process hollowing.
  • Uso de software de segurança avançado: as soluções de segurança que empregam análise comportamental e monitoramento da integridade da memória podem detectar e bloquear as técnicas de process hollowing.

Ferramentas para detectar process hollowing

Há várias ferramentas que podem ajudar a detectar manualmente um process hollowing, como:

  • Process Explorer: o Process Explorer é uma ferramenta gratuita da Microsoft que permite que visualizar detalhes dos processos em execução, incluindo a memória e a atividade de rede.
  • Sysinternals PsExec: o PsExec é outra ferramenta gratuita da Microsoft que permite que executar processos no contexto de outro usuário. Ela pode ser usada para injetar ferramentas de análise de memória em processos suspeitos.
  • Falconsgaze: o Falcongaze é uma ferramenta comercial de análise de malware que inclui a capacidade de detectar a process hollowing.

Dicas adicionais

Como vimos, o process hollowing é uma técnica de evasão avançada que pode ser usada pelo malware para ocultar sua presença e obter privilégios elevados e, além das ferramentas disponíveis que mencionamos para detectar sua presença, é importante destacar algumas recomendações gerais para detectá-la e atenuá-la.

  • Mantenha os sistemas e o software atualizados com os patches de segurança mais recentes;
  • Use uma solução de segurança confiável, como o ESET Endpoint Security e o  ESET Inspect;
  • Implemente controles de acesso baseados em funções para limitar os privilégios dos usuários;
  • Realize auditorias de segurança regulares para identificar e corrigir vulnerabilidades.

Conclusão

O process hollowing representa uma ameaça significativa no cenário atual da cibersegurança, mas, ao entender como essa técnica funciona e conhecer seu impacto, é possível tomar medidas proativas para detectá-la e atenuá-la. É importante manter-se à frente da curva para proteger com eficácia os sistemas e as redes de computadores; manter-se atualizado com as táticas e técnicas mais recentes dos invasores é fundamental, pois elas costumam variar com o tempo.