Impacto de Ofuscadores e Otimizadores de Código na Acurácia de Classificadores de Programas

  • Thais Damasio UFMG
  • Michael Canesche UFMG
  • Vinícius Pacheco UFMG
  • Anderson Faustino UEM
  • Fernando Magno Quintao Pereira UFMG

Resumo


O problema de detecção de clones consiste em determinar, dado um programa inicial e classes de problemas, qual problema o programa resolve. A detecção de clones é útil em vários contextos diferentes, incluindo a identificação de código malicioso e a identificação de plágio. Uma vez que a solução exata para detecção de clones é uma impossibilidade teórica, esse problema é resolvido via heurísticas; a maior parte delas de natureza estatística. Este trabalho analisa o impacto de técnicas de transformação de código sobre essas heurísticas. Mostramos que otimizações de código padrão são tão efetivas quanto ofuscadores para enganar as heurísticas mais populares para detecção de clones, gerando, contudo, código ordens de magnitude mais eficientes. Mostramos também que histogramas de instruções são tão efetivos quanto representações mais complexas ao executar as heurísticas. E por fim mostramos que otimizações de código podem funcionar como um normalizador de programas, em alguns casos, revertendo o efeito da ofuscação, e recuperando assim a capacidade de um detector estatístico de encontrar clones.

Palavras-chave: compiler optimizations, neural network, obfuscation
Publicado
03/10/2022
Como Citar

Selecione um Formato
DAMASIO, Thais; CANESCHE, Michael; PACHECO, Vinícius; FAUSTINO, Anderson; PEREIRA, Fernando Magno Quintao. Impacto de Ofuscadores e Otimizadores de Código na Acurácia de Classificadores de Programas. In: SIMPÓSIO BRASILEIRO DE LINGUAGENS DE PROGRAMAÇÃO (SBLP), 26. , 2022, Uberlândia. Anais [...]. Porto Alegre: Sociedade Brasileira de Computação, 2022 . p. 68–75.