sysblog

Análise de malware em resposta a incidentes de segurança (3/3) – Análise de malware

Este é o terceiro e último de uma série de 3 posts sobre análise de malware e o seu papel na resposta a incidentes de segurança. Depois da identificação dos ficheiros descrita no post anterior, neste artigo é apresentada sumariamente a metodologia que poderá ser seguida para a análise do malware, mais concretamente do seu comportamento e capacidades.

A análise de malware tem dois grandes objectivos. A identificação do tipo de ameaça e dos seus objectivos e a recolha de informação que permita uma resposta eficiente, bloqueando o ataque e controlando os danos já sofridos. Por exemplo, indicadores que permitam detectar a presença do malware num sistema, indicadores que permitam detectar actividade do malware na rede e  tácticas de remoção do malware e de resposta ao incidente que deverão ser aplicadas.

Esta análise pode ser efectuada com níveis de profundidade que vão desde uma análise automatizada com recurso a sandboxes à engenharia reversa e análise pormenorizada do código Assembly, pelo que é necessário algum pragmatismo na selecção da metodologia para que seja identificado o máximo de informação sem que se perca demasiado tempo com detalhes de pouca utilidade prática.

A forma mais eficiente de fazer a análise e um bom primeiro passo de análise é o recurso a malware sandboxes que permitem executar o malware num ambiente controlado, monitorizando as suas acções e produzindo um relatório de forma automatizada.

Estas ferramentas permitem tirar conclusões rápidas sobre as capacidades e o funcionamento do malware. No entanto, têm diversas limitações (e.g. Detecção por parte do malware, utilização de criptografia, condições específicas de execução do malware) e muitas vezes não oferecem a flexibilidade necessária para chegar às conclusões pretendidas.

Assim, após análise inicial em sandbox, quando a informação produzida não é suficiente, é realizada uma análise estática manual dos ficheiros. Esta análise consiste na análise dos binários do malware, de forma a inferir sobre o seu comportamento. Para o fazer são realizadas operações tais como a identificação de strings presentes no ficheiro ou a análise das bibliotecas importadas. Este processo nem sempre é directo, uma vez que o malware recorre muitas vezes a técnicas que impedem a análise dos binários, sendo por isso necessário algum pré-processamento para unpacking dos binários antes da análise.

Em seguida, é normalmente realizada uma análise dinâmica, que consiste na execução do malware num ambiente controlado e especialmente preparado para o efeito. Este tipo de análise vai para além da análise efectuada por sandboxes automatizadas, já que é possível a simulação de comportamentos do utilizador mais completos para levar o malware a realizar operações adicionais e a configuração do sistema para a análise específica do malware em questão. Por exemplo, poderá ser fornecido ao malware informação que este está programado para roubar tais como credenciais ou documentos e analisar o seu comportamento nessas situações.

Por fim, quando as metodologias de análise simples não são suficientes para a obtenção da informação pretendida, poderá ser necessária a realização de engenharia reversa do malware com recurso a disassemblers e debuggers de forma a compreender a fundo o comportamento do malware. Este é um procedimento moroso e que exige conhecimentos muito especializados, pelo que na grande maioria dos casos não é levado a cabo.

Uma vez finalizada a análise, deverá ter sido gerada diversa informação util, tal como:

  • Modo de infecção (e.g. Emails ou sites visitados);
  • Vulnerabilidades exploradas para a infecção;
  • Indicadores de infecção para a pesquisa de hosts infectados;
  • Indicadores de rede para pesquisa de hosts infectados através da análise de tráfego de rede e criação de regras IDS;
  • Medidas a tomar para parar de imediato a comunicação com os servidores de comando e controlo;
  • Amostras de malware para envio a fabricantes de antivírus;
  • Informação útil sobre a ameaça, para programas de awareness e comunicação de tentativas de fraude a clientes e colaboradores;

Esta informação poderá então ser utilizada para uma resposta adequada e eficiente ao incidente, recuperando o controlo dos sistemas e tendo a capacidade de responder às questões sobre qual o incidente e o seu impacto real.

Autor: Tiago Pereira @ SysValue