Identificação de Malware Metamórfico baseado em Grafos de Dependência - Martins, Gilbert Breves (2016)
Comparar um programa com um conjunto de partes de código, conhecido como assinaturas, previamente armazenadas e extraídas de programas maliciosos previamente identificados, é a forma tradicional de se identificar se este programa também se trata ou está contaminado por um código malicioso. Para tornar este processo de identificação ineficaz, os desenvolvedores de programas maliciosos podem inserir em suas criações a capacidade de alterar a forma com o seu código se apresenta, mudando o corpo do código à medida que o processo de contaminação ocorre e invalidando o processo de identificação tradicional. Uma das maneiras de lidar com esta capacidade de mutação, também conhecido como metamorfismo de código, é baseada na geração de grafos que modelem as relações de dependência existentes entre os elementos do código, uma vez que estas relações se persistem, mesmo diante da mutação do código. Estes grafos são também conhecidos como grafos de dependência. Similar ao tradicional modelo de assinaturas, a identificação dos códigos maliciosos baseadas em grafos de dependência, ocorre quando o grafo gerado a partir do programa sob investigação e comparado com um conjunto de grafos previamente armazenados em uma base de referência, construída a partir da extração dos grafos de dependência de instâncias de códigos maliciosos previamente identificados. Como o processo de comparação entre grafos pertence à classe de problemas NP-Difícil, é necessário encontrar alternativas viáveis para tratar este problema, tornando a comparação entre grafos uma alternativa viável para a identificação de códigos maliciosos metamórficos. Usando grafos de dependência extraídos a partir de códigos executáveis, esta tese apresenta uma abordagem para reduzir o tamanho dos grafos de dependência usados no processo de comparação, pela introdução da diferenciação entre os vértices, com base nas relações de dependência características de cada deles possui. Combinada com a inclusão de arestas virtuais, esta metodologia possibilita a construção de um clique virtual que é utilizado para identificar e descartar as porções menos relevantes do grafo de dependência original, diminuindo o tamanho do grafo que será inserido na base de referência. Os resultados apresentados nesta tese também demonstram que esta redução aprimora o processo de identificação, diminuindo o coeficiente de variação dos resultados e aumentando a taxa de identificações de códigos maliciosos metamórficos.