Abstract-Metamorphism have been successfully used in original malicious code to the creation and proliferation of new malware instances, making them harder to detect. This work presents an approach that identifies metamorphic malware through data dependency graphs comparison. Features are extracted on data dependency graphs to build an index that is used to determine which malware family a suspicious code belongs to. Experimental results on 3045 samples of metamorphic malware showed that our proposed approach obtained accuracy rate higher than most commercial anti-malware tools.Index Terms-malware, metamorfismo, grafos de dependência, engenharia reversa, aprendizagem de máquina.
I. INTRODUÇÃOApesar dos crescentes investimentos e esforços realizados pelas companhias de segurança na criação de soluções de detecção de software maliciosos (e.g. antivirus, antispyware e adware), a infecção de malware continua sendo uma das principais ameaças a segurança dos sistemas computacionais no mundo. A sofisticação dos ataques e o aumento cada vez maior das famílias de malware tem tornado a defesa contra cibercriminosos uma tarefa ainda mais difícil. De acordo com a empresa AV-Test [2], considerando somente os anos de 2013 e 2014, a quantidade de novas amostras de malware aumentou de 83 para 142 milhões, representando uma taxa de crescimento superiorà 71%. Um relatório produzido pela Symantec descreve um aumento de 274 milhões de amostras de vírus em 2014 para 357 milhões em 2016 [3]. Esses estudos reconhecem a falta de capacidade das ferramentas de detecção de malware existentes em lidar com as técnicas usadas pelos atacantes para evadir tais ferramentas.Essa dificuldade ocorre principalmente porque os criadores de programas maliciosos empregam várias técnicas de evasão como polimorfismo e metamorfismo de código para criar novas variantes de um malware a partir de uma mesma instância de código original, gerando diversas estruturas e padrões de código aleatórios [4]. Tal nível de variedade pode ser obtido de forma automatizada, a uma taxa exponencial, o que torna a criação de modelos de identificação de malware um processo ainda mais difícil.Este artigo corresponde a uma versão estendida do artigo:"Detecção de malware metamórfico baseada na indexação de grafos Dentre as abordagens citadas, o uso de Grafos de Dependência de Dados (GDDs) se apresenta como uma alternativa promissora para detecção de malware metamórficos, visto que as relações semânticas representadas pelos GDDs se mantêm praticamente inalteradas mesmo quando uma nova versão de malwareé criada. Um GDDé uma representação que usa uma notação baseada em grafos para descrever todas as relações de dependências de dados existentes entre as instruções de um programa de computador. Liu et al. [14] e Kim e Moon [13], por exemplo, demonstraram que possível usar GDDs para identificar efetivamente pelo menos cinco tipos diferentes de técnicas de ofuscação de código: i) alteração de formato; ii) mudança no nome das variáveis; iii) reordenamento de estruturas; iv) troca de estr...