Me deparei recentemente com o conceito de Entropia em meus estudos sobre Malwares/artefatos maliciosos. Uma pergunta surgiu; “Bom, isso é de verás interessante, mas será que é possível baypassar?” Antes de mais nada vamos a algumas definições. O que é Entropia?
Entropia pode ser definida como uma medida da aleatoriedade ou desordem de um conjunto de dados. A palavra “entropia” surgiu em meados de 1865, nos trabalhos de Termodinâmica de Rudolf Clausius. Em 1948, Claude E. Shannon utiliza esse mesmo nome para designar uma medida de informação em seu modelo matemático de comunicação, fundamentado nos conceitos de emissor, receptor, canal, ruído, redundância, codificação e decodificação. A entropia de Shannon, torna-se possível analisar a capacidade do canal de comunicação e investir em tratamentos de dados, dando origem ao que se chama atualmente de Teoria da Informação.
Como a entropia é aplicada na análise de artefatos maliciosos?
Quando falamos em entropia em detecção de arquivos maliciosos geralmente estamos nos referindo a Entropia de Shannon utilizada para identificar padrões de comportamento de programas maliciosos, onde um algoritmo que produzirá um resultado entre 0 e 8, onde 8 significa não haver padrão nos dados, portanto, é muito aleatório e 0 significa que os dados seguem um padrão.
Ocorre que uma das técnicas mais comum usada para esconder código malicioso, é o empacotamento ou realizar a codificação do código para alterar sua assinatura de padrão de bytes para enganar os produtos de segurança. Porem, ao empacotar ou ofuscar o código malicioso, sua entropia aumenta.
Segundo uma publicação do practical security analytics. Amostras maliciosas normalmente têm uma entropia acima de 7.2, enquanto o software legítimo varia de 4.8 a 7.2. Uma entropia perto de 8 será visto em 30% das amostras maliciosas, mas apenas em 1% do código não “legítimo”. Mais da metade das amostras maliciosas terá uma entropia acima de 7,2, enquanto apenas uma em cada dez aplicações legítimas terá uma entropia tão alta. Em conclusão, nem todas as amostras maliciosas têm alta entropia (mas a grande maioria terá) e não Todas as aplicações legítimas terão uma baixa entropia (mas a maioria terá).
A razão pela qual amostras legítimas podem ter alta entropia está relacionada ao fato de que o empacotamento é uma técnica válida usada para diminuir o tamanho dos executáveis, proteger recursos e muitos aplicativos aproveitam isso. Portanto, mesmo que a entropia não seja suficiente para diferenciar o código malicioso do código legítimo, algumas ferramentas de análise de malware usam a alta entropia como um dos principais elementos em seus sistemas de pontuação maliciosos para sinalizar amostras.
Formas de “Baypassar” a Entropia.
Soluções anti-malware procurarão alta entropia não apenas como um valor global, mas também seção por seção. Durante meu estudo identifiquei algumas sugestões de caminhos que possam ser utilizados para contornar a alta entropia.
Uma possibilidade seria aumentar a quantidade de código legítimo em relação ao código malicioso. Isso ocasionaria em reduzir a quantidade de código ofuscado, o que significa que o código malicioso teria que ser menor em comparação com o stub. Isso, portanto, limitará as cargas úteis.
Outra possibilidade é ofuscar o código usando um algoritmo que não aumenta a entropia (como XORing e codificação Base64). Este parece ser bem promissor já que não seria necessário limitar a carga útil. Entretanto, XORing, bem como codificação Base64 pode ser facilmente descriptografado para desmascarar o real propósito do código, algumas soluções anti-malware podem até mesmo decodificar esses esquemas simples durante a fase de emulação da análise.
Resumo
O problema central é a aleatoriedade, então o caminho seria utilizar de técnicas na tentativa de disfarçar o código ofuscado malicioso inserindo padrões para reduzir sua aleatoriedade, portanto, sua entropia global. Ignorando a detecção estática do código de alta entropia.
Obviamente existem malwares/arquivos maliciosos que utilizam destas técnicas (E com certeza técnicas muito melhores e mais engenhosas que estas) para diminuir a entropia. Por isso, é importante está sempre atento a novas técnicas implementadas por ativos maliciosos.