Dado aos diversos tipos de malwares e suas ameaças – ransomwares, spywares, trojans, bots – os modos de combatê-los passam, principalmente, por identificá-los e analisá-los. Para isso, uma das primeiras abordagens é conhecida como análise estática. Esse tipo de análise identifica o malware através do código do arquivo PE (executáveis), ou seja, não é preciso rodar a aplicação e monitorar seu funcionamento. As principais partes do PE que usa-se para a análise são:
# HASHES: são uma série única, criptada, que identifica o arquivo, extraído por programas como MD5 ou SHA-1, o hash dos arquivos capta as modificações nos arquivos, mostrando se foi ou não adulterado. Com ele em mãos, pode-se compartilhar com outros especialistas que ajudarão na identificação do malware ou pesquisá-lo online para ver se o mesmo tipo de arquivo já foi mapeado.
# STRINGS: são o espaço, com várias sequências, onde estão identificadas as funcionalidades do programa, por exemplo se o malware se conecta a alguma URL.
# PACKER E OFUSCAMENTO: são técnicas utilizadas para dificultar a análise, o ofuscamento tenta encobrir a execução do malware, com códigos reduzidos e criptografados, já o packing compacta o código impossibilitando a análise. Essas técnicas podem ser encontradas pelas strings, quando o código apresenta poucas linhas é possível que tenha sido empacotado ou ofuscado.
A vantagem da análise estática é que não há obrigatoriedade em acompanhar o malware rodando. Mas, com apenas ela, devido às técnicas de criptografia e camuflagem dos malwares, ainda é difícil realizar um combate ou uma identificação bem sucedida. Nesses casos, outros tipos de análises são requeridas, como a dinâmica e a engenharia reversa.
Diferentemente da análise estática, a análise dinâmica funciona executando o arquivo malware e o monitorando enquanto atua, também é conhecida como análise de comportamento. O funcionamento do malware é percebido através de suas tentativas de conexão à internet, pela inspeção de processos, na criação e modificação de arquivos e criação de objetos de registro.
O funcionamento pode ser coletado com uma combinação de ferramentas diferentes ou ser automatizado em sandboxes. O relatório das sandboxes ou as informações combinadas dos outros programas são um importante material para que o analista de segurança tome a decisão correta a partir do entendimento da ameaça proporcionada pelo malware. As principais técnicas para a análise dinâmica podem ser dividas em 3 modos de aproximação do arquivo:
# VIRTUAL MACHINE INSPECTION: é rodada em um ambiente virtualizado ou emulado, com uma camada intermediária entre o guest system e o host system e diminui os riscos de comprometimento da máquina, contudo alguns malwares possuem ferramentas para identificar se estão sendo rodados nesses ambientes, dificultando a análise.
# HOOKING: é uma técnica de interceptação do fluxo de execução e sua resposta ao sistema, para perceber quais chamadas os malwares estão executando. O userland hooking funciona a nível de usuário, pouco privilegiado e sendo facilmente detectado, já o kernel hooking, como o SSDT (System Service Dispatch Table) funciona no nível do kernel, nas syscalls, podendo armazenar as funções e modificar a lista de endereços, posteriormente retornando ao original, o que identifica os pedidos feitos por aplicações maliciosas.
# DEBUGGING: é usado para captar as características dos malwares, pois ele conta com breakpoints onde cada instrução pode ser analisada, quebrando o malware em diversas funções. Se rodado em um debugger que emula o processamento, fica quase impossível para a aplicação entender que está dentro desse processo.
Já a engenharia reversa consiste em, sem acesso ao projeto do produto ou do serviço, estudá-lo para descobrir suas partes e funcionamento. Para os malwares, é um processo que, mesmo sem o código-fonte do arquivo original, consegue-se compreender o arquivo malicioso em sua totalidade, refazendo seus passos. Para isso, são empregadas conjuntamente as diversas técnicas de análise dinâmica e estática de maneira a compreender e facilitar o processo de entendimento do malware.
A vantagem desse tipo de análise é a maior eficácia contra os mecanismos anti-análise dos malwares. Os procedimentos de análise dinâmica rodando automaticamente podem ser percebidos pelo arquivo, o anti-debugging percebe que o malware está sendo estudado e passa a dificultar a análise, assim como na análise estática as strings podem estar ofuscadas e empacotadas.
Desse modo, a engenharia reversa, por ser manual, consegue perceber o funcionamento do malware na tentativa de esconder seus rastros. Ela exige mais conhecimento e é mais trabalhosa, mas é também o fundamento de toda a solução de segurança bem estruturada: uma combinação de estratégias que captam até aquilo que está sendo escondido. Assim, vemos como a análise de malwares exige um trabalho conjunto, com os melhores recursos de cibersegurança disponíveis para sua proteção! Conte conosco para embarcar no mundo digital sem risco. #VEMSERORAEX
Deixe um comentário