O que é Análise de Malware?

[post-views]
Agosto 23, 2022 · 14 min de leitura
O que é Análise de Malware?

Muitas crianças quebram coisas não porque são pequenas criaturas malignas, mas porque estão curiosas sobre “como é feito”. Eventualmente, algumas dessas crianças crescem e se tornam Analistas de Cibersegurança. Elas fazem basicamente o mesmo, mas em um mundo adulto.

Análise de malware é o processo de estudo de uma amostra de malware para entender do que é feito e como funciona. Às vezes você nunca sabe a menos que tente, então você precisa realmente rodar o malware. E às vezes, é necessário examinar minuciosamente o código linha por linha sem acionar a execução.

Claro, aprender o que é análise de malware traz muitos benefícios. Conhecer o inimigo significa saber as formas de vencer. Isso significa que os Pesquisadores de Malware ajudam suas equipes SOC a elaborar algoritmos de detecção mais específicos, além de melhorar sua resposta a incidentes.

A parte emocionante é que o malware moderno está se tornando cada vez mais sofisticado. Muitas vezes, Analistas de Segurança têm que estudar algo ao qual não têm acesso. Se há dez anos o malware poderia ser definido por um arquivo executável, agora, um arquivo é apenas o começo de uma jornada. Vamos nos aprofundar um pouco mais na análise de malware e ver como fazer isso.

Como Começar a Análise de Malware?

É fácil – você pode começar a análise de malware após obter uma amostra de malware. Organizações que empregam uma abordagem de Defesa em Profundidade têm múltiplas ferramentas e processos em funcionamento para regularmente encontrar novas amostras. Alguns analistas dirão que não veem nada conceitualmente novo há anos, enquanto outros admitirão que recebem novas amostras de malware aproximadamente todo mês. Tudo isso depende muito da profundidade da pesquisa.

Analisar malware pode consumir muito tempo; é por isso que muitas equipes SOC preferem não se aprofundar tanto. No entanto, o tempo gasto em pesquisa definitivamente compensa porque nunca é tarde demais para melhorar a postura de segurança.

Quais são os Tipos de Análise de Malware

A análise de malware pode ser conduzida de diferentes formas e com o uso de várias ferramentas. Existem três principais tipos de análise:

  • Estática
  • Dinâmica
  • Híbrida

Para descobrir como analisar o malware que você tem em mãos, tente responder a algumas perguntas primeiro:

  1. Como este malware pode estar acionando sua execução?
  2. De que maneiras ele tentará evadir a detecção?
  3. Quais partes do código malicioso podemos e não podemos ver?
  4. Quais ferramentas nos ajudarão a analisar todos os aspectos de uma determinada amostra de malware?

Se você tem uma amostra de um arquivo malicioso, pode realizar uma análise estática. No entanto, se este arquivo foi projetado apenas para iniciar estágios posteriores de uma cadeia de ataque, a análise estática não mostrará como a carga principal é executada. E às vezes, a única maneira de descobrir isso é executar o malware em um ambiente seguro. Então, vamos ver como realizar diferentes tipos de análise de malware e como eles podem ser úteis para um Analista de Cibersegurança.

Análise Dinâmica de Malware

A análise dinâmica de malware pode ser realizada em um sandbox automatizado ou em uma VM onde você pode testar a amostra manualmente. Lembre-se de que malwares sofisticados procurarão por sinais de estarem em um ambiente emulado, e a análise automatizada de malware não é a melhor opção nesse caso.

Assim como qualquer outro software, o malware pode ser programado para fazer praticamente qualquer coisa que um código possa fazer. Portanto, você quer entender o que o código (como um conjunto de instruções) faz e qual é a lógica por trás dele.

Por exemplo, algumas ferramentas de segurança injetam seus DLLs em processos locais. O malware irá escanear o ambiente, e se encontrar esses arquivos, ele se encerrará. Além disso, os scanners de malware procurarão por:

  • Depuradores e outras ferramentas usadas para análise interativa (chamadas de API como IsDebuggerPresent, CheckRemoteDebuggerPresent, NtQueryInformationProcess).
  • Processos, janelas, chaves de registro, arquivos, objetos de mutex, etc. para análise de malware.

Como o nome sugere, a análise dinâmica de malware é sobre observar o malware em ação. Você quer interagir com ele de tantas maneiras quanto possível e criar um quadro completo de sua funcionalidade. Para fazer isso, certifique-se de usar um ambiente totalmente isolado; ele deve estar desconectado da Internet, rodar em uma rede apenas de host e a VM não deve compartilhar pastas com o host.

Mesmo que caçadores de evasão de depuradores estejam presentes em muitas amostras de malware, os Pesquisadores de Segurança usam depuradores na análise dinâmica de malware. Essas ferramentas são boas para identificar chamadas de API arriscadas e alocações de memória. Se o malware utiliza ativamente técnicas sem arquivos, não será visível na análise estática já que funciona por meio de processos legítimos – sem necessidade de exploração.

Por exemplo, um código injetado no PowerShell aloca memória em powershell.exe e executa um código ofuscado em uma nova thread (que gera um processo confiável via Process Hollowing):

gráfico de exploit do PowerShell

Dentro do depurador, você poderá ver como o código percorre todas as instruções que foi programado para executar. Não esqueça de verificar strings na memória e compará-las com o código responsável por essas interações de memória. Procure por APIs de injeção, como VirtualAlloc, VirtualAllocEx, WriteProcessMemory, CreateRemoteThread, etc. Além disso, examine transações NTFS para injeções de Process Doppelgänging .

Use ferramentas que escondem depuradores para garantir que você pode analisar malware que evade deteção. Falaremos mais sobre ferramentas mais adiante. Agora, vamos ver como realizar a análise estática de malware.

Análise Estática de Malware

A análise estática de malware é o tipo de análise que é possível realizar sem executar um código. Esse tipo de análise pode exigir conhecimento avançado de linguagens de software de baixo nível, instruções de processador, e os princípios de gerenciamento de memória.

No entanto, analistas iniciantes também têm suas maneiras de analisar arquivos estaticamente. Por exemplo, um simples olhar para uma extensão de arquivo pode te dizer que tipo de arquivo é, o que lhe permite sugerir se esse arquivo é suspeito de estar onde foi encontrado ou não. Em seguida, você pode pesquisar seu hash ou hash difuso em recursos de inteligência de ameaças como VirusTotal. Tenha cuidado ao fazer suposições, pois mesmo que o hash não esteja no VirusTotal, o arquivo ainda pode ser malicioso. Não se esqueça de analisar outras propriedades estáticas, como informações do cabeçalho.

A análise estática pode ser realizada através de ferramentas automáticas para triagem inicial, bem como ferramentas para análise manual para um olhar mais granular. Analistas de Segurança estudam instruções de código, dependências e o que elas significam.

Se você abrir um arquivo executável no Bloco de Notas, verá o seguinte:

captura de tela de arquivo binário

É um código compilado em um formato legível por máquinas. Processadores sabem o que fazer, mas humanos são pouco prováveis de entender qualquer coisa aqui. Então, você precisa rodar esse código através de um desassemblador ou descompilador para trazê-lo de volta a um formato que você possa ler e analisar. Depois de fazer isso, o código parecerá algo assim:

captura de tela binária decompilada

Entender instruções de montagem é necessário para chegar a conclusões perspicazes. Confira este rápido guia para refrescar seu conhecimento, ou mergulhe mais fundo com este manual de referência da Oracle.

Você também pode usar a suíte Sysinternals da Microsoft para analisar strings. Suas ferramentas também podem ajudar a identificar qual executável está associado a determinadas chamadas de API do Windows e até determinar IOCs. Role até a última seção desta postagem do blog para descobrir mais sobre ferramentas para análise de malware. E agora, vamos falar sobre os prós e contras da análise estática e dinâmica de malware.

Análise Estática vs Dinâmica de Malware

Obviamente, empregar mais de um tipo de análise de malware seria a melhor opção. A análise estática mostrará como um arquivo executável específico opera. Enquanto isso, uma cadeia de ataque padrão hoje em dia muitas vezes inclui mais de um executável. Em vez disso, pode ser uma coleção de scripts e arquivos que acionam uns aos outros. Se esse for o caso, a análise estática de um dos arquivos é insuficiente para entender como a carga toda funciona.

Dependendo dos objetivos e metas da equipe SOC, alguns recursos podem ser gastos estudando amostras de malware. E é uma escolha muito individual se deve-se optar por análise estática ou dinâmica. Na maioria das vezes, há necessidade de manter um equilíbrio fino entre os dois, o que muitas vezes é chamado de análise híbrida de malware.

Análise Híbrida

A análise híbrida de malware é uma combinação da análise estática e dinâmica de malware.

Quando se trata de amostras complexas, é melhor analisar o malware em etapas. Por exemplo, primeiro, você faz uma análise estática e identifica quais chamadas de API podem estar evadindo a deteção. Depois, em um ambiente emulado, você realiza a análise dinâmica para ver a amostra em ação e verificar se ela faz download de outros binários. E se você obter estes últimos, poderá realizar novamente uma análise estática de seus internos.

Casos de Uso da Análise de Malware

Cada equipe SOC é única, e os processos de cibersegurança podem ser organizados de maneira diferente, dependendo do contexto de negócios, da escala da organização e dos fatores de risco. Abaixo, reunimos alguns dos casos de uso em que a análise de malware é aplicável.

Detectar Ameaças

IOCs e padrões comportamentais são entradas comuns para vários tipos de atividades de detecção de ameaças em programas de software específicos (SIEM, SOAR, EDR/XDR). Obter dados importantes de malware durante uma análise ajuda a detectar as ameaças mais recentes.

Obter Alertas

Receber alertas precisos é uma parte vital de qualquer pipeline de cibersegurança. A análise de malware ajuda a reduzir o número de falsos positivos e falsos negativos, garantindo assim um nível maior de proteção cibernética.

Caçar Ameaças

Novas cepas sofisticadas de malware não são tão fáceis de capturar. É aí que a caça de ameaças entra em jogo. Ter amostras de malware e entender como eles funcionam é a melhor maneira de caçar mais ameaças que estão à espreita na natureza.

Responder a Incidentes

Obviamente, não há uma boa postura de cibersegurança sem resposta a incidentes. Uma resposta adequada pode ser elaborada e executada quando os Engenheiros de Segurança possuem informações detalhadas sobre como o malware aparenta, quais sistemas ele afeta e quais processos ele tenta executar.

Quais são as Etapas da Análise de Malware?

Um trabalho analítico não é o mais fácil. O que é fácil é ficar preso em montes de dados ou interpretar erroneamente o código. Para que a defesa cibernética seja bem-sucedida, os pesquisadores dividem suas atividades em algumas etapas de análise de malware.

Avaliação e Triagem

A etapa inicial de uma análise de malware pode ser realizada com a ajuda de ferramentas de automação. Para a análise estática, algumas etapas de preparação são necessárias, como descompilar o código. De qualquer forma, na primeira etapa da análise de malware, é necessário ordenar as partes do código que requerem atenção especial. Elas também podem ser divididas em níveis de dificuldade e prioridade. Após definir e priorizar o escopo do código malicioso a ser revisado, é hora de passar para a próxima etapa.

Interpretação de Dados

Em seguida, os Analistas de Segurança passam a examinar amostras específicas de malware. Como mencionei antes, isso pode ser feito analisando as propriedades estáticas ou executando malware em um ambiente seguro e isolado. Quando o Analista de Malware obtém todos os dados que podem ser expostos durante a análise estática e dinâmica, eles tentam interpretar o que veem. Eles podem testar ainda mais as amostras renomeando variáveis, executando o código e fazendo comentários sobre os padrões de execução.

Engenharia Reversa

Esta é a parte mais desafiadora, especialmente se houver uma amostra criptografada e não estiver claro o que ela faz e por quê. Além disso, o código pode ter múltiplas dependências que também não são tão óbvias. Tentar realizar engenharia reversa sobre malware é uma tarefa avançada. No entanto, é fundamental para uma abordagem de Defesa em Profundidade.

Conclusões & Ações Futuros

Quando os resultados da análise são formulados, é hora de documentá-los e tomar medidas adicionais. O Analista escreve um relatório de malware onde descreve uma amostra de malware, etapas de análise que foram tomadas e conclusões. Eles também podem dar algumas recomendações de remediação.

Quais são as Ferramentas para Análise de Malware?

Há uma ampla seleção de ferramentas para análise de malware que Engenheiros de Segurança usam diariamente. Vamos começar com as ferramentas de análise estática:

  • PeStudio é amplamente usado por equipes CERT em todo o mundo para capturar artefatos de arquivos maliciosos.
  • PEiD reconhece facilmente malwares empacotados e criptografados e fornece detalhes do que é composto.
  • BinText é um extrator de texto que pode encontrar strings Ascii, Unicode e de recurso em um arquivo.
  • MD5deep calculará os hashes maliciosos. Usado como um analisador de malware, este pacote de software rodará muitos arquivos por vários digests criptográficos.
  • Dependency walker irá escanear módulos Windows de 32 bits ou 64 bits e criar uma árvore de dependência.
  • IDA Pro irá desmontar o código binário em código-fonte. Ele também oferece uma capacidade de depuração multiplataforma que pode lidar com aplicativos remotos.

Quando se trata de analisar malware em sandboxes, você pode ter tentado Cuckoo, ainda recomendo conferir ANY.RUN and Joe Sandbox Cloud. Ambos possuem mapeamento MITRE ATT&CK, usam regras e fornecem uma visão muito detalhada dos comportamentos.

Claro, Wireshark dispensa apresentações, pois ainda é uma das ferramentas mais amplamente usadas para análise de rede em tempo real. INetSim simula realisticamente serviços da internet em um ambiente de laboratório (as amostras são altamente improváveis de reconhecer a simulação). Então, há a Microsoft Sysinternals suíte que já mencionei acima. Você encontrará lá toda uma gama de ferramentas para análise dinâmica de malware. ScyllaHide é outra ferramenta interessante que permitirá ocultar um depurador do malware que você deseja executar. E se você está com vontade de fazer um projeto sério de engenharia reversa, confira Ghidra – uma suíte de ferramentas desenvolvidas pela Diretoria de Pesquisa da NSA.

Aprender a fazer análise de malware pode parecer chato no início, mas tenha paciência e aprofunde-se para encontrar verdadeiros tesouros. Uma vez que você se sentir confortável com dados de baixo nível, você será capaz de ver o que poucas pessoas veriam. Então, em vez de pensar que engenheiros de malware são os caras mais inteligentes do mundo, você será capaz de provar que mesmo o malware mais avançado não faz mágica – é apenas mais uma peça de software que pode ser decomposta e neutralizada.

Por fim, para Detecção de Ameaças e Caça de Ameaças rápidas e eficientes, assine a Platforma Detection as Code da SOC Prime – aqui, você encontrará milhares de regras baseadas em Sigma para detectar os ataques cibernéticos mais recentes. E se você está pronto para compartilhar sua própria experiência e monetizar seu conhecimento, junte-se à nossa iniciativa de crowdsourcing global, Threat Bounty, que ajuda a tornar o mundo cibernético um lugar mais seguro.

Este artigo foi útil?

Curta e compartilhe com seus colegas.
Junte-se à plataforma Detection as Code da SOC Prime para melhorar a visibilidade das ameaças mais relevantes para o seu negócio. Para ajudá-lo a começar e obter valor imediato, agende uma reunião agora com os especialistas da SOC Prime.

Publicações Relacionadas