Escolar Documentos
Profissional Documentos
Cultura Documentos
EXÉRCITO BRASILEIRO
DEPARTAMENTO DE CIÊNCIA E TECNOLOGIA
INSTITUTO MILITAR DE ENGENHARIA
PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA DE DEFESA
RICARDO SANT’ANA
RIO DE JANEIRO
2020
RICARDO SANT’ANA
Rio de Janeiro
2020
©2020
INSTITUTO MILITAR DE ENGENHARIA
Praça General Tibúrcio, 80 – Praia Vermelha
Rio de Janeiro – RJ CEP: 22290-270
Este exemplar é de propriedade do Instituto Militar de Engenharia, que poderá incluí-lo em base
de dados, armazenar em computador, microfilmar ou adotar qualquer forma de arquivamento.
É permitida a menção, reprodução parcial ou integral e a transmissão entre bibliotecas deste
trabalho, sem modificação de seu texto, em qualquer meio que esteja ou venha a ser fixado,
para pesquisa acadêmica, comentários e citações, desde que sem finalidade comercial e que
seja feita a referência bibliográfica completa.
Os conceitos expressos neste trabalho são de responsabilidade do(s) autor(es) e do(s) orienta-
dor(es).
Sant’Ana, Ricardo.
Explicabilidade em Arquiteturas de Aprendizado Profundo para Análise de
Malware / Ricardo Sant’Ana. – Rio de Janeiro, 2020.
208 f.
33
3
!
"#$#%&'#$#()%*%%+,'+-'%.%*#,/$0-'%*1%23+#.4(-#(5%'6%*#*#7#$%*+8($)6)1)+
96:6)%'*#4(-#(5%'6%;<+.+'#=16$6)+&%'<6%:&%'%%+>)#(23+*+)?)1:+*#@+1)+'#.
A6B(<6%$#.4(-#(5%'6%*#*#7#$%C
D'6#()%*+'E#$FGH1:6+A#$%'@1%')##I+(%:*+I6>#6'+J+:*$<5.6*)C
K&'+L%*+#.I6+*#H%(#6'+;MN*#*#O#.>'+*#PQPQ;&#:%$#-16()#>%(<%#R%.6(%*+'%G
,'+7CSTUVWXTSYZ[Y\T]TWX^_`aYXb0@Cc<C*+8940,'#$6*#()#
,'+7CdeWYTf[^V\geV\b[0@Cc<C*+894
,'+7ChVeWTi[\UVUXTi[\\[Y\VST^V0,5C@C*+894
,'+7CjVb`[e^hYU`[Y\Ti[\\[Y\V0@Cc<C*+894
,'+7CkXeV\XTl[m[\\VXVnYWoV0@Cc<C*+A4p4"
,'+7C][\VWXTlTUT\YUTq[rsT0@Cc<C*%tpIH
I6+*#H%(#6'+
PQPQ
Este trabalho é dedicado às crianças adultas que,
quando pequenas, sonharam em se tornar cientistas.
AGRADECIMENTOS
O presente trabalho, então, busca, como diferencial, não somente definir arquiteturas,
baseadas em aprendizado profundo, claras e documentadas para análise de malware como
tratar as diversas lacunas encontradas e avaliar os resultados obtidos.
Assim, três propostas são apresentadas: um método para propor candidatos a verificação
de rótulo da base de dados de artefatos maliciosos; uma nova representação que atenue os
efeitos da distorção de representação e, finalmente, um algoritmo denominado Algoritmo
de Importância por Pixel que permite que o analista escolha apenas parte do artefato
malicioso para produzir resultados de explicabilidade.
The use of deep learning in malware analysis has been increasing lately with the growing
availability of public datasets. However, even with several works related to deep learning,
the focus is usually on optimizing a performance metric. Thus, such an approach is
incomplete when we want to understand what drives a deep learning algorithm to produce
a given output.
Considering the researches which applies deep learning on malware analysis, some gaps were
identified, such as: just a few malware databases are public available as raw data (binaries);
there are almost none or few information or documentation about hyperparameters
values which were used in deep learning architectures; there is a lack of researches on
the correctness of the labels, which is a known problem; the results of the explanability
algorithms applied to deep learning suffer from the distortion caused by the images’ resizing;
the lack of an explcability algorithm that allows the evaluation of the importance in a
desired area which would allow a better use of the processing power.
This research, therefore, seeks not only to define malware analysis architectures, based
on deep larning, but also to treat the various gaps found while evaluating the obtained
results.
Thus, three proposals will be presented, they are: a method to yield candidates from a
malware database for label checking; a new image representation that mitigates the effects
of representation distortion and, finally, an algorithm, called Pixel Importance Algorithm
that allows the analyst to select a desired area for explicability results.
The method which yields candidates for label verification obtained f1-score of 35.55% for
Lenet-5 Normal architecture and a f1-score of 46.95% for VGG16 non _top architecture .
Since the results were considered below the expected, it was considered that the algorithm
partially achieves the proposed objective.
The new representation was evaluated considering two aspects: the classification per-
formance of deep neural network architectures and the ability to generate automatic
signatures. The proposed representation achieves superior performance when compared to
the traditional representation: 93,66% against 92,51% when considering Lenet-5 Normal
architecture, 94,44% against 94,27% when considering Resnet tiny architecture, 94,58%
against 93,96% when considering VGG16 non_top architecture and 94,18% against 93,92%
when considering VGG19 non_top architecture.
The application of the Algoritmo de Importância por Pixel in regions of the artifact
where the semantics are simpler to interpret, such as the header, produced interesting and
unexpected results: the information of the amount of APIs imported by an artifact was
used to classify it in a particular family.
So, the proposal experimental results show that the identified gaps have been partially or
completely solved.
1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
1.1 MOTIVAÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
1.2 CARACTERIZAÇÃO DO PROBLEMA . . . . . . . . . . . . . . . . . . . . 29
1.3 OBJETIVO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
1.4 QUESTÕES DE PESQUISA . . . . . . . . . . . . . . . . . . . . . . . . . 32
1.5 METODOLOGIA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.6 JUSTIFICATIVA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
1.7 ESTRUTURA DO TEXTO . . . . . . . . . . . . . . . . . . . . . . . . . . 35
2 ANÁLISE DE MALWARE . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1 ANÁLISE DE MALWARE . . . . . . . . . . . . . . . . . . . . . . . . . . 37
2.1.1 MALWARE : DEFINIÇÕES E TAXONOMIA . . . . . . . . . . . . . . . . . . 37
2.1.2 FORMAS DE EVASÃO A ANÁLISE E DETECÇÃO . . . . . . . . . . . . . . 40
2.1.3 ANÁLISE DE MALWARE . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
3 APRENDIZADO DE MÁQUINA . . . . . . . . . . . . . . . . . . . . 46
3.1 DEFINIÇÕES E CONCEITOS DE APRENDIZADO DE MÁQUINA . . . . . 46
3.2 TIPOS DE SISTEMAS DE APRENDIZADO DE MÁQUINA . . . . . . . . 47
3.2.1 APRENDIZADO SUPERVISIONADO E NÃO SUPERVISIONADO . . . . . . . 47
3.2.2 SISTEMAS DE APRENDIZADO ONLINE E EM LOTE . . . . . . . . . . . . 49
3.2.3 SISTEMAS DE APRENDIZADO BASEADO EM INSTÂNCIAS E BASEADO EM
MODELOS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3 FASES DE UM SISTEMA BASEADO EM APRENDIZADO DE MÁQUINA 50
3.4 APRENDIZADO PROFUNDO . . . . . . . . . . . . . . . . . . . . . . . . 51
3.4.1 REDES NEURAIS COMPLETAMENTE CONECTADAS . . . . . . . . . . . . 53
3.4.2 REDES NEURAIS CONVOLUCIONAIS . . . . . . . . . . . . . . . . . . . . . 56
3.4.3 DROPOUT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.4.4 NORMALIZAÇÃO EM LOTE . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.5 GLOBAL AVERAGE POOLING . . . . . . . . . . . . . . . . . . . . . . . . 66
3.4.6 APRENDIZADO POR TRANSFERÊNCIA . . . . . . . . . . . . . . . . . . . 68
5 EXPLICABILIDADE . . . . . . . . . . . . . . . . . . . . . . .
. . . . 84
5.1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . .
. . . . 84
5.2 DEFINIÇÕES E TAXONOMIA EM EXPLICABILIDADE . . . . . . . . . . 85
5.3 EXPLICABILIDADE EM APRENDIZADO PROFUNDO . . . . . . . . . . . 90
5.4 ALGORITMOS DE EXPLICABILIDADE . . . . . . . . . . . . . . .
. . . . 92
5.4.1 ALGORITMOS DE EXPLICABILIDADE AGNÓSTICOS . . . . . . . .
. . . . 92
5.4.1.1 IMPORTÂNCIA PELA PERMUTAÇÃO DE ATRIBUTOS . . . . . . . .
. . . . 92
5.4.2 ALGORITMOS DE EXPLICABILIDADE EM APRENDIZADO PROFUNDO . . . 95
5.4.2.1 VISUALIZAÇÃO DE ATRIBUTOS APRENDIDOS PARA REDES NEURAIS
CONVOLUCIONAIS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95
5.4.2.2 MAPAS DE ATIVAÇÃO DE CLASSE . . . . . . . . . . . . . . . . . . . . . . 96
5.4.2.3 MAPAS DE ATIVAÇÃO DE CLASSE POR GRADIENTE . . . . . . . . . . . . 98
7 PROPOSTA DE TRABALHO . . . .
. . . . . . . . . . . . . . . . . 113
7.1 MÉTODO . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 113
7.2 PROPOSTAS . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . 115
7.2.1 ARQUITETURA RNC - PROPOSTA P0 . .
. . . . . . . . . . . . . . . . . . 115
7.2.2 RE-ROTULAGEM DE BASE DE DADOS - PROPOSTA P1 . . . . . . . . . . 116
7.2.2.1 DESCRIÇÃO DA PROPOSTA . . . . . . . . . . . . . . . . . . . . . . . . . 116
7.2.3 NOVA REPRESENTAÇÃO DO ARTEFATO MALICIOSO- PROPOSTA P2 . . . 118
7.2.3.1 DESCRIÇÃO DA PROPOSTA . . . . . . . . . . . . . . . . . . . . . . . . . 121
7.2.4 ALGORITMO DE IMPORTÂNCIA POR PIXEL - PROPOSTA P3 . . . . . . . 122
7.2.4.1 DESCRIÇÃO DO PROBLEMA . . . . . . . . . . . . . . . . . . . . . . . . . 124
7.2.4.2 SOLUÇÃO PROPOSTA: ALGORITMO DE IMPORTÂNCIA POR PIXEL . . . . 124
12 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 160
REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163
1 INTRODUÇÃO
6,62% dos malware são Worms, ou seja, em sua grande maioria, os artefatos maliciosos são
binários executáveis ou código injetado em binários executáveis (1). Portanto, os códigos
binários executáveis maliciosos para plataforma Microsoft Windows são os mais comuns
tipos de artefatos maliciosos.
Para obter um melhor panorama da situação atual, faz-se necessário avaliar a
evolução dos malware na última década. De acordo com Singh e Singh(17), comparando
malware tradicionais com os novos, observa-se que o malware novo é mais difícil de se
detectar. De fato, os malware tradicionais eram amplos, conhecidos, abertos e únicos e
evoluíram para malware direcionados, de dia zero, furtivos e persistentes, como mostra a
Figura 2.
• Controlar: explicabilidade pode ser útil para prevenir que algo dê errado: de fato,
entender mais sobre o comportamento do sistema fornece maior visibilidade sobre
vulnerabilidades e falhas desconhecidas e ajuda a identificar e corrigir rapidamente
os erros em situações de baixa criticidade (como depuração).
Desta forma, uma solução de aprendizado profundo que permita uma melhor
explicabilidade pode ser útil ao esclarecer as razões para uma determinada detecção ou
classificação, ao ajudar a prevenir que vulnerabilidades, até então desconhecidas na
arquitetura de aprendizado profundo, possam ser identificadas, ao permitir que sejam
realizadas melhorias na arquitetura de forma a melhorar seu desempenho e ao possibilitar
que novo conhecimento seja obtido a partir da interpretação das saídas da arquitetura.
4
Pode-se observar um crescente número de publicações na área de aprendizado profundo aplicado à
análise de malware a partir de 2016.
Capítulo 1. Introdução 28
1.1 Motivação
Técnicas de Aprendizado Profundo são aplicadas, atualmente, nas diversas áreas de
conhecimento e, em muitos casos, tais técnicas são o estado da arte, ou seja, o nível mais
alto de desenvolvimento para uma determinada tarefa(3). Pode-se observar este avanço,
por exemplo, nos resultados obtidos, ano após ano, no desafio anual do Imagenet(2). Na
Figura 3 tem-se a taxa de erro obtida pelo campeão da competição no período de 2010 a
2017. A primeira grande melhora foi obtida por Krizhevsky, Sutskever e Hinton(22) em
2012, com uma redução da taxa de erro de 26,1% em 2011 para 16,4% em 2012, onde, pela
primeira vez, foi utilizada uma abordagem de aprendizado profundo conhecida como rede
neural convolucional. A partir de 2012, todas as arquiteturas vencedoras foram baseadas
em técnicas de aprendizado profundo. Finalmente, em He et al.(12), foi obtido um valor
de taxa de erro de 3,6% que é um patamar de qualidade superior ao obtido por um ser
humano. Em 2017 foram alcançados valores de taxa de erro 2,2% e 29 dos 38 competidores
obtiveram taxa de erro menor que 5%5 .
de máquina tradicionais. Ao mesmo tempo, ainda que obtenham altas taxas de acurácia,
as arquiteturas de aprendizado profundo não possuem, intrinsecamente, uma forma trivial
de se obter a causa e a cadeia de raciocínio de uma determinada predição.
Em grande parte dos trabalhos analisados que tratam da aplicação de aprendizado
profundo à análise de malware, não existe a intenção de se relacionar as características de
entrada utilizadas com os resultados obtidos. Para obter as razões de uma determinada
classificação ou detecção, por parte de um algoritmo de aprendizado profundo, pode-se
utilizar algoritmos de explicabilidade, ou seja, algoritmos capazes de fornecer informações
que ajudam a melhor compreender os resultados obtidos.
Como os custos para se desenvolver uma arquitetura para análise de malware
podem ser altos quando se busca uma grande precisão, parece importante um melhor
entendimento das relações entre características e arquitetura de aprendizado profundo
nos resultados obtidos. Além disso, ao compreender essas relações é possível obter um
avanço no conhecimento na análise de malware por meio da descoberta, por parte da
explicabilidade do algoritmo de aprendizado profundo, de aspectos anteriormente ocultos.
Nesta tese, decidiu-se por utilizar a representação por Imagem do Artefato por
dois motivos: (a) a imagem de um artefato representa todo o executável e, portanto, é
mais abrangente, quando comparada com a utilização dos seus mnemônicos que apenas
consideram o código executável do artefato malicioso e (b) permite que a engenharia de
atributos aprendida pelo algoritmo de aprendizado profundo, seja utilizada para alavancar
o conhecimento pelo analista de malware. Assim, como definiu-se que a representação do
artefato será feita por Imagem do Artefato, as arquiteturas propostas serão baseadas
em Redes Neurais Convolucionais por serem mais adequadas ao processamento de imagens.
Dos trabalhos analisados que utilizam a representação do artefato por imagem e
arquiteturas de Redes Neurais Convolucionais, poucos implementam alguma forma de
explicabilidade quando aplicados à análise de malware. No geral, eles se limitam em obter
os resultados da aplicação direta de um algoritmo de explicabilidade na arquitetura de
aprendizado profundo aplicada à anaĺise de malware. Ainda, Yakura et al.(54) e Krčál
et al.(30) sofrem da distorção de representação, ou seja, definida a arquitetura de rede
Capítulo 1. Introdução 31
convolucional a ser utilizada, as imagens que alimentam a rede convolucional devem possuir
um único tamanho (tamanhos fixos), e, portanto, um redimensionamento é feito para o
treinamento da rede e, depois, desfeito para obter o resultado da explicabilidade, causando
uma distorção indesejada. Em Yakura et al.(54), Krčál et al.(30) e Raff et al.(28), os
autores obtém o resultado da explicabilidade a partir do processamento de todo artefato
malicioso, ainda que se deseje o resultado da explicabilidade apenas para uma seção do
artefato.
Assim, os trabalhos analisados que implementam explicabilidade em Redes Neurais
Convolucionais para análise de malware(28, 30, 54) apresentam as seguintes limitações:
1.3 Objetivo
O objetivo geral desta tese é propor adaptações que, aplicadas a algorit-
mos de explicabilidade, permitam melhorar a identificação de relações entre
as características de entrada da rede com os resultados obtidos para uma de-
terminada tarefa na área de análise de malware, e solucionar ou mitigar os efeitos
6
Definida uma arquitetura de aprendizado profundo como uma rede neural convolucional, todas as
imagens de entrada devem possuir o mesmo tamanho.
Capítulo 1. Introdução 32
útil sobre as razões para uma classificação ou detecção por parte do algoritmo de
aprendizado profundo.
1.5 Metodologia
Para obtenção do conhecimento necessário e para a validação do problema escolhido,
foi realizada uma pesquisa bibliográfica nos assuntos abordados por esta tese:
1.6 Justificativa
O desenvolvimento de tecnologias de segurança duais, ou seja, com aplicações na
área militar e civil, é tema a Estratégia Nacional de Defesa7 . A Estratégia Nacional de
Defesa trata da reorganização e reorientação das Forças Armadas, da organização da Base
7
https://www.defesa.gov.br/arquivos/estado_e_defesa/END-PND_Optimized.pdf
Capítulo 1. Introdução 35
2 ANÁLISE DE MALWARE
1. Backdoor: código malicioso que se instala no computador para permitir o acesso pelo
invasor. Backdoors geralmente permitem que o invasor se conecte ao computador
infectado com pouca ou nenhuma autenticação e execute comandos no sistema local;
7. Worm ou Vírus: código malicioso que pode se copiar e infectar outros computadores
automaticamente, geralmente explorando uma vulnerabilidade do sistema, ou seja,
ele é capaz de se propagar sem interferência do usuário;
8. Trojan Horse: tipo de malware que se disfarça como um arquivo ou programa normal
para induzir os usuários a baixar e instalar malware. Ele pode conceder acesso remoto
a um computador infectado.
Backdoor : W in32/Caphaw.D!lnk
O Tipo descreve o que o malware faz e alguns exemplos de tipos são os Worms,
os Trojans e os Backdoors. A Plataforma representa o sistema operacional (Microsoft
Windows, Mac OS ou Android) no qual o malware foi projetado para funcionar. A
plataforma também é usada para representar linguagens de programação e formatos de
arquivo. A Família indica o agrupamento de malware com base em características comuns,
incluindo a atribuição aos mesmos autores. A Variante é usada de forma sequencial para
todas as versões distintas de uma família de malware. Uma variante “.B” teria sido criada
após a detecção da variante “.A”. Finalmente, os Sufixos fornecem detalhes adicionais
sobre o malware, incluindo como ele é usado como parte de uma ameaça multicomponente.
Por exemplo, um sufixo .worm indica que ele é o componente worm do malware.
1
https://docs.microsoft.com/en-us/windows/security/threat-protection/intelligence/malware-naming
Capítulo 2. Análise de Malware 40
execução normal ou mesmo causar uma falha de forma a atrapalhar a análise. No caso do
malware ser um executável para Microsoft Windows, uma das formas mais simples de anti-
debbuging é fazer uma chamada a API IsDebuggerPresent. Outra forma de anti-debugging
são as verificações de tempo de execução de determinadas rotinas, o tempo de execução
das rotinas, quando estão sendo depurados, é muito superior ao tempo de execução sem o
debugger.
As técnicas anti-VM são técnicas implementadas por malware que tentam evadir
a detecção ou análise ao perceber que são executados em ambientes virtualizados. A
popularidade de técnicas anti-VM diminuiu bastante recentemente (56) devido ao aumento
no uso da virtualização em ambientes operacionais. Tradicionalmente, os autores de
malware usavam técnicas anti-VM pois partiam da hipótese de que se o malware estiver
sendo executado em uma máquina virtual ele estaria sendo analisado. No entanto, na
medida em que a utilização de virtualização aumenta, as técnicas anti-VM tendem a
ser menos comuns. Um exemplo típico de técnica anti-VM é a detecção de ferramentas
específicas instaladas no ambiente virtual, como o VMWare Tools 3 para VMWare.
Os programas de empacotamento, conhecidos como empacotadores (packers),
tornaram-se populares entre os autores de malware, porque ajudam a dificultar a de-
tecção do código malicioso do malware pelo software antivírus. A popularidade dos packers
é consequência de estarem, em sua grande maioria, disponíveis gratuitamente e exigirem
pouco conhecimento técnico para sua utilização. Em um malware empacotado, a análise
estática básica manual não é útil, pois o único código, em claro, disponível para a análise é o
código do empacotador, ou seja, para uma análise eficaz do malware compactado devemos,
inicialmente, descompactá-lo, o que torna o processo mais complicado e desafiador.
de caracteres do binário. Além disso, exitem outras ferramentas mais elaboradas, como
as que calculam a entropia de cada seção de um executável para Windows ő (PEfile) para
descobrir se o mesmo está empacotado ou cifrado (59) e ferramentas que fornecem a lista
de APIs utilizadas pelo artefato (60). Algumas são capazes de fornecer, ainda, informações
a partir do cabeçalho do arquivo PEFile como data de compilação, lista de imports, lista
de exports, nome das seções e meta informações sobre os recursos do artefato.
A análise dinâmica básica envolve executar o artefato em ambiente controlado,
como uma Sandbox, utilizando, por exemplo, uma máquina virtual devidamente configurada.
A análise dinâmica básica realiza o monitoramento de malware durante a execução ou
realiza a análise do sistema após a execução do malware. Diferentemente da análise estática,
a análise dinâmica permite observar o comportamento real malware, além de ser uma
maneira eficiente de identificar algumas das funcionalidades do malware. No processo de
análise dinâmica básica, o analista tem um papel tipicamente ativo. Um exemplo do papel
do analista no processo de análise dinâmica básica está descrito a seguir:
2. Como o malware está em ambiente controlado, não é possível realizar essa operação;
3. Para seguir a análise, o analista cria um sítio falso, com o mesmo domínio da
requisição e disponibiliza um executável falso para o malware;
3 APRENDIZADO DE MÁQUINA
Esses critérios não são exclusivos pois pode-se combiná-los. Por exemplo, um filtro
de spam pode aprender de forma online, usando um modelo de rede neural e treinado a
partir exemplos de spam e e-mails legítimos. Esse é um exemplo de um sistema aprendizado
de máquina supervisionado, online e baseado em modelo.
e seus rótulos (preço do imóvel). Com o modelo treinado é possível, a partir dos valores
dos atributos de um novo imóvel, predizer seu preço (63).
Alguns exemplos de algoritmos de aprendizado de máquina supervisionados são: K-
Nearest Neightbors (k-NN) (68), Regressão Linear (69), Regressão Logística (70), Máquinas
de Vetores de Suporte (Support Vector Machines - SVM) (71), Árvores de Decisão (72) e
Redes Neurais (73).
No aprendizado não supervisionado, os dados de treinamento não possuem rótulo:
o sistema tenta aprender sem valores alvo (sem rótulos). Como exemplos de aprendizado
não supervisionado tem-se os algoritmos de agrupamento (k-means (74), Hierarchical
Cluster Analysis (75), Expectation Maximization (76)) e os algoritmos para redução de
dimensionalidade e visualização (Principal Component Analysis - PCA (77), Kernel PCA
(78) e Locally-Linear Embedding - LLE (79)).
De acordo com Jain(80), o objetivo dos algoritmos de agrupamento de dados,
também conhecidos como algoritmos de clusterização, é descobrir o agrupamento natural
de um conjunto de padrões, pontos ou objetos. Por exemplo, a aplicação de algoritmos
de agrupamento em dados de visitantes de um blog pode produzir grupos de visitantes
que possuem interesses em comum. Assim, a partir dos agrupamentos encontrados pelo
algoritmo, pode-se direcionar postagens do blog para grupos específicos que possuam certos
interesses em comum.
No aprendizado semi-supervisionado, tem-se que parte dos dados com rótulos
(geralmente a minoria dos dados) e parte dos dados sem rótulos. A partir de um grande
número de imagens, onde a minoria é rotulada como 1 (possuem um gato) e 0 (não possuem
gato) e a maioria não é rotulada, o algoritmo de aprendizado semi-supervisionado utiliza
as imagens rotuladas para fazer inferências sobre as imagens não rotuladas e decidir sobre
a presença ou ausência de gatos.
Finalmente, no aprendizado por reforço, um agente pode observar o ambiente
- que segue regras pré-definidas - selecionar e executar ações e, como resultado, obter
recompensas ou penalidades. A partir dos resultados de recompensas ou penalidades, o
agente deve, aprender por si só qual a melhor estratégia - chamada política - para obter o
máximo de recompensas. Uma política define qual ação o agente deve escolher em uma
dada situação. Uma técnica bastante conhecida de aprendizado por reforço é o Q-learning
(81). O objetivo do Q-learning é aprender uma política, que diz a um agente qual ação
tomar sob quais circunstâncias - mas ele não requer um modelo do ambiente e pode lidar
com problemas que possuam transições e recompensas estocásticas, sem exigir adaptações.
Um exemplo recente de aprendizado por reforço é o projeto LCZero 1 - uma proposta
que utiliza aprendizado por reforço para desenvolver um programa que joga xadrez. O
1
http://lczero.org
Capítulo 3. Aprendizado de Máquina 49
ambiente é definido pelo tabuleiro, movimento das peças e regras do xadrez. Assim, com
base no nas recompensas e penalidades fruto do resultado de milhares de partidas que
o agente joga contra si mesmo, o agente define uma política para efetuar um lance em
dada uma posição. Atualmente, o programa LCZero está entre os melhores programas de
xadrez do mundo2 .
uma função de ativação. A saída da primeira camada escondida faz papel de entrada para
a segunda camada escondida, e assim por diante.
Redes neurais completamente conectadas podem ser superficiais (shallow) ou
profundas (deep). Não há realmente um consenso sobre a definição de uma rede neural
superficial, mas considera-se uma rede neural com uma camada oculta é considerada uma
rede neural superficial, enquanto uma rede com muitas camadas ocultas e um grande
número de neurônios em cada camada é considerada profunda.
Redes Neurais não são um assunto novo. De fato, em 1943, Warren McCulloch e
Walter Pitts desenvolveram o modelo matemático de uma rede neural artificial usando
lógica de limiar (threshold logic) (86). Em 1958, Frank Rosenblatt criou o modelo Per-
ceptron que foi o primeiro a realizar tarefas de reconhecimento de padrões. Em 1959,
Widrow e Hoff desenvolveram o modelo chamado ADALINE - a primeira rede neural a ser
aplicada a problemas reais. Finalmente, em 1975, Paul Werbos desenvolveu o algoritmo de
backpropagation para resolver o problema do XOR no modelo Perceptron. Nos últimos
anos, diversos avanços ocorreram de forma a permitir que redes profundas pudessem ser
implementas. Um dos problemas resolvidos foi o da dissipação do gradiente, que está
relacionado com o uso de funções de ativação similares à sigmoide em redes neurais.
A função de ativação é uma função matemática localizada, em uma arquitetura
baseada em redes neurais, entre a entrada e a saída do neurônio. Pode ser tão simples
quanto uma função que liga ou desliga a saída do neurônio ou pode ser uma transformação
mais complexa. Funções de ativação típicas de modelos tradicionais de redes neurais são as
funções sigmóide e tanh (tangente hiperbólica). A Figura 16 apresenta a função sigmóide
e a função tanh.
Um problema com as funções sigmóide e tanh é que elas saturam, ou seja, valores
grandes de entrada x produzem valores de saída muito próximos de 1,0 e valores excessiva-
mente negativos produzem valores próximos de -1 para tanh ou 0 para sigmóide. De fato,
Capítulo 3. Aprendizado de Máquina 55
em Goodfellow et al.(3),
“.. grande mudança algorítmica que melhorou bastante o desempenho das redes
feedforward foi a substituição de unidades sigmóides por unidades lineares
retificadas.”
tem um valor inteiro entre 0 e 255. A Figura 19 apresenta uma imagem com os 3 canais
RGB, largura de 4 unidades e altura de 4 unidades
Figura 23 – Exemplo de aplicação de Max Pooling (a) e Average Pooling onde o filtro tem
tamanho 2x2 e o stride é 2.
A Figura 24 apresenta uma imagem em tom de cinza com fundo branco (pixeis
com valores 255) e o resultado da aplicação de pooling utilizando o Average Pooling, o
Max Pooling e o Min Pooling. O método de Average Pooling suaviza a imagem e, portanto,
o resultado é uma imagem com menor nitidez. O Max Pooling seleciona os pixeis mais
brilhantes da imagem e o o resultado é a perda de características interessantes da imagem
original. A aplicação do Min Pooling resultou em um destaque das principais características
da imagem.
O resultado da aplicação de Max Pooling e Min Pooling seriam invertidos caso a
imagem fosse números brancos com fundo preto e, portanto, ambos funcionam como um
supressor de ruído(3), ou seja, eles descartam completamente a ativação ruidosa, mantendo
somente um único valor. Portanto, deve-se selecionar a técnica de pooling de acordo com a
imagem de entrada.
Além de filtrar a imagem de entrada, a técnica de pooling é utilizada para reduzir
o tamanho das representações e acelerar os cálculos durante o treinamento e predição da
rede. O resultado de uma camada de pooling é, portanto, um volume com largura e altura
menores que a representação de entrada. De fato, no exemplo da Figura 23, a redução é
de 75% da quantidade de informação.
Uma camada da etapa de engenharia de atributos de uma rede convolucional é
Capítulo 3. Aprendizado de Máquina 61
Figura 24 – Exemplo da aplicação de Pooling com Average Pooling, Max Pooling e Min
Pooling em uma imagem.
composta, normalmente, por uma camada de convolução e uma camada de pooling e, além
disso, a etapa de engenharia de atributos possui, comumente, diversas camadas. O resultado
da última camada da etapa de engenharia de atributos de uma rede convolucional, que é
um volume de tamanho L × A × P , onde L é a largura, A é a altura e P é a profundidade,
é achatada de forma a gerar um vetor de tamanho (L × A × P ) por 1. Esta operação é
denominada achatamento ou flatten. Este vetor é a entrada para a etapa de classificação
da rede neural convolucional, que nada mais é que uma rede completamente conectada.
Na Figura 25 tem-se um exemplo do processo de achatamento. A saída da última
camada de engenharia de atributos (camada convolucional) produz um resultado de
dimensão 3x3x3. O processo de achatamento transformará esse cubo em um vetor de 9x1.
3.4.3 Dropout
De acordo com Srivastava et al.(89), o Dropout é uma técnica para resolver o
problema de sobreajuste (overfitting). A ideia principal é descartar aleatoriamente conexões
de uma camada de uma rede neural durante o treinamento. O valor de Dropout d varia
entre 0 e 0,5 e um valor de Dropout de d = 0, 25 descarta um quarto de suas conexões
para uma determinada camada. Durante o treinamento, o Dropout ameniza o efeito da
coadaptação e do sobreajuste
A coadaptação acontece quando, em algum momento durante o treinamento,
algumas poucas conexões obtém maior capacidade preditiva que outras. Desta forma,
conforme a rede é treinada, estas conexões com maior capacidade preditiva sofrem maior
Capítulo 3. Aprendizado de Máquina 63
Figura 28 – Dropout aplicado durante predição de uma Rede neural completamente conec-
tada.
numérica(93).
Algorithm 1: Normalização em Lote
Result: yi = N Lγ,β (xi )
Input: Valores de x do lote Λ = x0 ,x1 ,...,xn ;
Parâmetros a serem aprendidos: γ,β;
Carregar Lote Λ ;
µΛ ← m1 m i=1 xi ;
P
1 Pm
σΛ ← m i=1 (xi − µΛ )2 ;
2
xi −µΛ
x̂i ← √ σ 2 +
;
yi ← γ × x̂i + β ≡ N Lγ,β (xi )
tamanho 512 (e não 25.088). Desta forma a primeira camada completamente conectada
teria (512 + 1) × 4096 = 2.101.248, ou seja, as camadas completamente conectadas
teriam 22.979.560: uma redução de mais de 80% na quantidade de parâmetros da camada
completamente conectada.
Esta proposta de Han et al.(8) pode ser ampliada com a inclusão de outras
abordagens, tais como: utilização de mais de um classificador com um sistema de votação
e utilização de sistemas baseados em aprendizado profundo onde a engenharia de atributos
é automática. De qualquer forma, como as soluções automatizadas de análise de malware
se baseiam em algoritmos de aprendizado de máquina deve-se considerar a forma de
representação dos dados de entrada (malware).
o executável: por exemplo, para calcular o endereço do início do código executável quando
carregado em memória, deve-se adicionar ao Address of Entry Point ao valor do RVA.
Além disso, o cabeçalho possui informações sobre quais objetos DLL são necessários
para a execução do arquivo sendo que, cada função de cada um desses objetos DLL é
carregada em um determinado endereço de memória que está localizada na Import Address
Table (IAT) que também está definida no cabeçalho.
A seção Section contém o conteúdo principal do arquivo, incluindo código, dados,
recursos e outros arquivos executáveis. Cada seção tem um cabeçalho e um corpo. Um
aplicativo típico pode, por convenção, possuir nove seções predefinidas: .text, .bss, .rdata,
.data, .rsrc, .edata, .idata, .pdata e .debug. Geralmente, aplicativos não possuem todas
essas seções e, ainda, autores de artefatos maliciosos costumam alterar o nome destas
seções para dificultar a análise.
Algumas seções são mais interessantes que outras quando se considera a tarefa de
análise de artefatos maliciosos, como as seções de código (.text), as seções de dados (.data,
.edata, .idata e .rdata) e a seção de recursos (.rsrc). A seção .rdata representa os dados de
leitura do executável como constantes e strings. A seção .rsrc é a seção de recursos, ou
Capítulo 4. Análise Automatizada de Malware 75
seja, ícones, imagens que o aplicativo poderá utiliza. A seção .edata contém informação
sobre os nomes e endereços de funções exportadas, ou seja, funções que outros executáveis
podem utilizar. A seção .idata contém informações sobre funções importadas definidas na
IAT. A seção .data contém dados de leitura e escrita que serão utilizados pelo executável.
A seção .text contém o código assembly executável do arquivo.
Apesar de alguns malware redefinirem os nomes das seções, é possível identificá-las.
Por exemplo, para identificar a seção do código executável, pode-se buscar no cabeçalho
pela informação de entry point address e confirmar que a seção, neste endereço, é executável.
A partir de então, também é possível identificar as seções de dados de leitura (como .rdata)
pois é uma seção não executável e definida como apenas de leitura no cabeçalho.
• Vetores de Atributos
define quais atributos são interessantes para uma determinada tarefa de classificação.
Em Anderson e Roth(96), os autores publicaram o EMBER: um conjunto de dados de
referência rotulado baseado em vetores de atributos para treinar modelos de aprendizado de
máquina para detectar, estaticamente, arquivos executáveis maliciosos para a plataforma
Windows ő . Este conjunto de dados inclui os atributos extraídos de mais de 1 milhão de
arquivos binários.
Ainda, também foi disponibilizado o código fonte das funções de processamento de
extração de atributos, permitindo a incorporação de novas amostras no conjunto de dados.
A grande vantagem desta abordagem é que é possível deixar público uma base de dados
de artefatos maliciosos na forma de atributos extraídos (ao invés do binário do artefato
malicioso propriamente) sem ferir qualquer legislação vigente relacionada a disseminação
de artefatos maliciosos 4 .
Além disso, em Anderson e Roth(96), é apresentada uma comparação de desem-
penho entre um modelo de árvore de decisão aprimorado com gradiente (Light Gradient
Boosting Model - LightGBM )e o modelo de aprendizado profundo MalConv proposto em
Raff et al.(28). Os resultados mostram que o modelo que utiliza atributos (LightGBM)
supera o modelo de aprendizado profundo MalConv.
Portanto, a sequência jnz, push, push, push, mov, call, mov é uma sequência de
mnemônicos e não uma sequência de opcodes. Nesta tese foi empregado o termo mnemônico.
A representação de um binário por meio de sequência de mnemônicos deve, ainda,
ser codificada para a forma numérica para servir como dado de entrada para um sistema de
aprendizado de máquina. Esta sequência de mnemônicos codificada é denominada vetor
de mnemônicos do código executável.
A Figura 35 apresenta o seguinte exemplo: em (1) o código executável do artefato
malicioso é desmontado (disassembled); em (2) uma sequência de mnemônicos é extraída
do código desmontado; finalmente, em (3) cada mnemônico é codificado para um vetor
numérico, gerando o vetor de mnemônicos. No exemplo da Figura, a codificação one-hot
encoder foi utilizada.
A codificação comumente utilizada é a one hot encoder. Em circuitos digitais, a
codificação one-hot consiste em gerar um grupo de bits entre os quais as combinações
legais de valores são apenas aquelas que contém um único bit um (1) e os demais zero (0)
(101). Essa definição pode ser usava para o entendimento da codificação one hot encoder
em aprendizado de máquina. Na codificação one-hot-encoder, a dimensão do vetor gerado
é igual à quantidade de mnemônicos únicos da sequência, onde cada código possui uma
Capítulo 4. Análise Automatizada de Malware 78
posição igual a um (1) e as posições restante nulas (0). Ainda, o conjunto de vetores
mnemônicos agrupados é uma matriz esparsa.
O uso de matrizes esparsas como entrada de dados para algoritmos de aprendizado
de máquina gera diversos problemas computacionais por causa da grande desproporção
entre o número de uns e zeros dos dados de entrada. Diversas áreas de aprendizado de
máquina costumam lidar dados de entrada na forma de matrizes esparsas, dentre elas,
destacam-se as seguintes:
• Visão computacional que emprega imagens que possuem muitos pixels pretos.
Figura 39 – Exemplo de variação semântica em que o byte 64h possui diversas semânti-
cas.
Figura 40 – Histogramas para tamanhos de arquivo para classe Bifrose e para Classe
Cycbot.
Pode-se observar que, a família Bifrose possui arquivos que, em sua maioria, são de
tamanho até 1500 kB, podendo chegar a 4000 kB. As amostras da família Cycbot possuem
tamanho em torno de 180 kB, podendo chegar a 450 kB. Assim, qualquer representação de
artefato malicioso na forma de imagem produzirá imagens com larguras e alturas distintas.
Uma solução que é comumente empregada em trabalhos acadêmicos para resolver
o problema de imagens de tamanhos distintos envolve realizar o redimensionamento
da largura e altura para valores pré-fixados, independente da largura ou altura original
da representação original. Uma forma típica, encontrada em trabalhos que utilizam a
representação por imagem de artefatos maliciosos como entrada para um algoritmo de
aprendizado profundo, é utilizar os mesmos valores para largura e altura. Um valor
comumente utilizado são 32x32 ou 64x64 ou 128x128.
A Figura 41 apresenta uma representação de imagem, com redimensionamento
para 32×32, para os mesmos 4 artefatos maliciosos apresentados na Figura 38. Pode-se
observar que a amostra 287 da família Bifrose parece ter textura diferente da amostra 273
da mesma família, ou seja, ao realizarmos o redimensionamento das imagens para valores
fixos, cria-se um novo problema que foi denominado, neste trabalho, de distorção da
representação.
Cabe ressaltar que até a presente data, em nenhum trabalho da área de análise de
malware pesquisado, encontrou-se uma discussão sobre a distorção da representação,
causada pelo redimensionamento de imagem. Finalmente, vale a pena lembrar que, apesar
de utilizarem imagens redimensionadas, as soluções que utilizam aprendizado profundo
Capítulo 4. Análise Automatizada de Malware 83
5 EXPLICABILIDADE
5.1 Introdução
A explicabilidade em aprendizado de máquina é um assunto recente. O maior
interesse neste tópico de pesquisa é resultado direto da adoção de algoritmos de aprendizado
de máquina nas diversas áreas do conhecimento. Mas, por muito tempo, o desempenho
sempre foi a única preocupação ao se projetar sistemas de aprendizado de máquina: o
problema é que, conforme Doshi-Velez e Kim(111),
• Controlar: explicabilidade pode ser útil para prevenir que algo dê errado: de fato,
entender mais sobre o comportamento do sistema fornece maior visibilidade sobre
vulnerabilidades e falhas desconhecidas e ajuda a identificar e corrigir rapidamente
os erros em situações de baixa criticidade (como depuração).
sua aceitação social. Uma área crítica para a utilização de aprendizado de máquina é
a segurança da informação, pois qualquer falha do algoritmo pode acarretar situações
desastrosas, podendo variar desde uma simples parada do serviço até a exfiltração de
informações sensíveis.
Assim, na área de segurança da informação, o entendimento da cadeia de raciocínio
(chain of reasoning) - que são as informações detalhadas que levam a determinadas decisões,
recomendações ou predições feitas pelo algoritmo - é fundamental e a explicabilidade surge,
exatamente, para atender a este tipo de demanda.
“garantir que decisões algorítmicas, bem como quaisquer dados que as condu-
zam, possam ser explicados aos usuários finais e outras partes interessadas em
termos não técnicos.”
Figura 42 – Sumário de Atributos para FIFA 2018 Statistics utilizando o método de (a)
Importância de Atributos e (b) com o método Partial Dependence Plot.
Os Pontos de Dados são métodos que destacam pontos (no vetor de entrada)
de forma a tornar um modelo explicável. Para ser útil, tais métodos de explicabilidade
Capítulo 5. Explicabilidade 89
requerem que os pontos de dados sejam significativos e possam ser interpretados. Por
exemplo, pode-se destacar os ponto de dados em uma imagem ou texto permitindo que se
possa identificar regiões mais importantes.
Na Figura 45 tem-se um exemplo de pontos destacados para detecção de cachorro e
gato para o modelo pré-treinado Mobilenet. Pode-se observar que os pontos destacados são
úteis para melhor compreender quais conjuntos de pixeis são relevantes para a detecção.
no sentido de que eles podem fazer boas predições, mas sua estrutura natural fornece
pouca ou nenhuma informação sobre como o modelo produziu determinada predição.
Existem dois aspectos que devem ser considerados quanto à explicabilidade em
modelos de aprendizado profundo: o compromisso (trade-off ) entre desempenho e
explicabilidade e a multiplicidade de bons modelos.
De fato, há uma troca entre o desempenho e explicabilidade obtido pelo algoritmo
e sua explicabilidade intrínseca, pois à medida que a complexidade do modelo de aprendi-
zado de máquina aumenta e um melhor desempenho é obtido, perde-se a capacidade de
interpretação do modelo.
Figura 49 – Exemplo de mapa de calor de uma amostra de malware para dois modelos
com mesma arquitetura.
_________________________________________________________________________________________
avg_pool ( G l o b a l A v e r a g e P o o l i n g 2 ( None , 2 0 4 8 ) 0 activation_49 [ 0 ] [ 0 ]
_________________________________________________________________________________________
f c 1 0 0 0 ( Dense ) ( None , 1 0 0 0 ) 2049000 avg_pool [ 0 ] [ 0 ]
A grande limitação da aplicação do CAM é que ela é específica para redes neurais
convolucionais que sejam do tipo GAP-CNN.
qualquer camada pode ser escolhida para gerar o mapa de calor. A escolha da camada
não é trivial, mas que, no caso mais geral, a última camada convolucional parece ser
adequada(11).
100
6 TRABALHOS RELACIONADOS
Assim, fica claro que a disponibilização destes conjuntos de dados foi relevante
para o recente aumento de interesse na área de aprendizado profundo aplicado à análise
de malware.
tamanho 224 × 224. Apenas a saída a última camada da Resnet-50 foi modificada: a
camada completamente conectada com 1000 neurônios passou a ter apenas 9 neurônios. A
acurácia obtida foi de 98,62%.
Em Ni, Qian e Zhang(42), os mnemônicos do código assembly do artefato malicioso
são extraídos e codificados, obtendo uma sequência de mnemônicos. Em seguida, um
algoritmo de hash de similaridade(127) é aplicado a esta sequência, originando uma
representação vetorial para cada artefato. O tamanho dessa representação pode variar,
dependendo do tamanho do algoritmo utilizado para codificar os mnemônicos, sendo que
valores comuns são 128 bits, 256 bits e 512 bits. Uma imagem é, então, gerada a partir de
uma ou mais representações vetoriais. Esta imagem é, em seguida, utilizada como entrada
para uma rede neural convolucional. Apenas os valores dos principais hiperparâmetros
da arquitetura geral da rede neural convolucional são apresentados, deixando de lados
valores como o valor do dropout e o número correto de camadas convolucionais. A base de
dados utilizada está disponibilizada em Microsoft Malware Classification Challenge (BIG
2015) (126) e possui 9 famílias de artefatos maliciosos. O resultado obtido é de 98,26% de
acurácia na classificação em famílias de malware.
Em Kalash et al.(29), a técnica de transfer learning foi aplicada a análise de
malware utilizando a rede VGG-19 (baseada na VGG-16 descrita em (116)). A entrada
de dados é uma representação, na forma de imagem de 224 × 224, do artefato malicioso.
As bases de dados utilizadas são públicas: (Microsoft Malware Classification Challenge
(BIG 2015) (126) que possui 9 famílias de artefatos maliciosos e MalIMG(13) que possui
25 famílias de artefatos maliciosos) para a tarefa de classificação de malware em famílias.
A acurácia obtida é de 97,52% para a base da Microsoft e de 99,97% para a base Malimg.
O autor não deixa claro quais camadas da VGG-19 foram usadas para transfer learning e
qual a configuração da camada de rede neural completamente conectada que foi utilizada
para classificação.
Em Yakura et al.(54), o autor transformou artefatos maliciosos da base de dados
VxHeavens 3 , que possui 542 famílias, em imagens para servir de entrada para uma rede
neural convolucional para a tarefa de classificação em famílias de malware. Os valores dos
hiperparâmetros da implementação da rede neural convolucional foram apresentados. Não
foi apresentada, entretanto, uma acurácia global da solução4 .
Em Cui et al.(128), uma rede neural convolucional foi utilizada para a tarefa de
classificar artefatos maliciosos em famílias, utilizando a base de dados MalImg(13) que
contém representação na forma de imagem de artefatos maliciosos para 25 famílias e
obtendo uma acurácia de 96,70%. Ainda, foi desenvolvida uma abordagem eficaz para
3
O sítio foi fechado pela polícia Ucraniana em 23 de março de 2012.
https://nakedsecurity.sophos.com/2012/03/28/vx-heavens-virus-writing-website-raided/
4
Os códigos fontes utilizados foram disponibilizados para o autor desta tese.
Capítulo 6. Trabalhos Relacionados 103
• Uma grande parte dos trabalhos não apresenta os valores dos hiperparâmetros da
arquitetura convolucional, o que dificulta a sua replicação;
5
Os códigos fontes utilizados foram disponibilizados para o autor desta tese.
Tabela 4 – Desempenho de Redes Convolucionais para Classificação de Malware
Trabalho Entrada Classificador Objetivo Conjunto de dados Resultadoa
Kabanga e Imagem 128 × 128. Rede neural convolucional. Classificação em 25 fa- Pública MalImg(13); Win- Acc. de 98%
Kim(37) Não apresenta valores dos mílias de malware. dows
hiperparâmetros
Rezende et 224 × 224 da representação do ar- Rede neural convolucional Classificação em 25 fa- Pública. MalIMG(13) ; Win- Acc. de 98,62%
al.(103) tefato malicioso. Resnet-50. Última camada mílias de Malware dows
modificada
Ni, Qian e Hash de similaridade da sequência Rede neural convolucional. Classificação em 9 famí- Pública. Microsoft Malware Acc. de 98,26%
Zhang(42) de mnemônicos codificada. Algumas informações não lias de Malware Classification Challenge (BIG
são apresentadas. 2015); Windows
Kalash et al.(29) Imagem 224 × 224 gerada a partir Rede neural convolucional Classificação em 9 e 25 Pública. Microsoft Malware Acc. de 97,52% e
dos dados brutos. VGG-19. famílias de malware (9 Classification Challenge (BIG 99,97%
classes) 2015) (126) e MalIMG(13) ;
Capítulo 6. Trabalhos Relacionados
Windows
Yakura et Imagem a partir do artefato mali- Rede neural convolucional. Classificação em famí- Descontinuada. VxHeavens. Acc. não apre-
al.(54) cioso. lia de malware (542 Aprox. 150.000 amostras de sentada
classes) 542 famílias; Windows
Cui et al.(128) Representação na forma de ima- Rede neural convolucional. Classificação em Famí- Pública, MalImg(13) ; Win- Acc. de 96,70%
gem do malware. Quase nenhuma informa- lia de Malware (24 clas- dows
ção sobre os hiperparâme- ses selecionadas)
tros da arquitetura.
Zhao et al.(129) Representação de imagem onde re- Rede neural convolucional. Classificação em 9 famí- Pública, Microsoft Malware Acc. de 92,5%
giões sem grandes mudanças de Alguns dos hiperparâme- lias de Malware Classification Challenge (BIG
textura são excluídas. tros da arquitetura não são 2015) (9 classes); Windows
apresentados.
Gibert et Imagem 256 × 256 gerada a partir Rede neural convolucional. Classificação em 9 e 25 Pública. Microsoft Malware Acc. de 97.48% e
al.(130) dos dados brutos. famílias de malware Classification Challenge (BIG 97.49%
2015) (9 famílias) (126) e
MalIMG(13) (25 famílias) ;
Windows
Kadri, Nassar e Primeiros 1MB dos dados brutos. Rede neural convolucional Classificação em 9 famí- Pública. Microsoft Malware Acc. de 97.48% e
Safa(131) proposta em Raff et al.(28) lias de malware Classification Challenge (BIG 97,98%.
2015) (126)) ; Windows
Proposta P0, Se- 224 × 224, Seção 8.2 Rede neural convolucional Classificação em 9 famí- Privadab ; Windows Acc. de 95,35%,
ção 7.2.1 e Seção com TODOS valores de hi- lias de malware. Seção 8.2.4
8.2 perparâmetros
a
104
• A base de dados mais próxima da utilizada nesta tese é a base Microsoft Malware
Classification Challenge (BIG 2015) que possui 9 famílias de artefatos maliciosos.
A acurácia média dos trabalhos que utilizam a base de dados Microsoft Malware
Classification Challenge (BIG 2015) (42, 29, 129, 130, 131) é de 96,62%.
7 PROPOSTA DE TRABALHO
Neste capitulo estão apresentadas as propostas desta tese e sua relação com os
objetivos específicos e lacunas encontradas além da forma de avaliação, quando for o caso.
7.1 Método
Na figura 58 tem-se uma visão geral do escopo que envolve esta tese. Os blocos (a),
(b), (c) e (d) representam uma visão geral de duas etapas do desenvolvimento de soluções
baseadas em aprendizado de máquina: a etapa de treinamento e validação para obtenção
de um modelo de aprendizado de máquina e a etapa de teste que tem como objetivo obter o
desempenho do modelo no conjunto de testes ou para estimar rótulos de amostras a partir
de um modelo treinado. Ainda, os algoritmos de explicabilidade, utilizados para atingir o
objetivo S1,S2 e S3, são amplos e envolvem as etapas de representação, do algoritmo de
aprendizado profundo e do resultado.
(i) Uma ou mais arquiteturas de redes neurais convolucionais que possuem acurácia de
forma a atender o objetivo específico S0;
Capítulo 7. Proposta de Trabalho 115
(iii) Uma técnica para representar o artefato malicioso na forma de imagem e que permita
avaliar a vantagem desta representação ,considerando os resultados dos algoritmos
de explicabilidade, buscando atender ao objetivo específico S2;
(ii) Uma solução de aprendizado profundo baseado em redes recorrentes onde a entrada
é a sequência de mnemônicos do artetfato;
7.2 Propostas
Nesta Seção estão apresentadas as 4 principais propostas desta tese: (a) Uma
solução baseada em redes neurais convolucionais (RNC) para classificação de artefatos
maliciosos - Proposta P0, (b) Um Algoritmo que resulta em candidatos à Re-Rotulagem
por meio do processamento de Atributos Aprendidos - Proposta P1, (c) Uma nova
representação do Artefato Malicioso - Proposta P2 e (d) Um algoritmo denominado
Importância por Pixel - Proposta P3.
1. Pela análise dos resultados obtidos em Gibert et al.(130), decidiu-se por selecionar
variações da arquitetura Lenet-5 (6). Estas podem incluir técnicas como Dropout
(Seção 3.4.3) e Normalização em Lote (Seção 3.4.5). É importante destacar somente
Capítulo 7. Proposta de Trabalho 116
cada amostra θ deste conjunto Θ são escolhidas ω amostras σ que possuem a menor
distância euclidiana entre Fθ e Fσ e obtém-se o conjunto Σ = θ1 , θ2 , ..., θω . Em seguida,
obtém-se o rótulo real para θ, Rθ e o rótulo real de cada amostra de Σ, RΣ . Se Rθ não
pertencer a RΣ então θ é uma amostra candidata a verificação de rótulo.
Algorithm 3: Algoritmo Proposto: Candidatos a Re-rotulagem
Data: Modelo treinado M , matriz de atributos F com dimensão m×p do conjunto
de treinamento, rótulos de real Realm×1 e rótulo preditos P redm×1
Result: Conjunto de candidatos a Verificação de Rótulos Γ
Definir conjunto de amostras Θ onde Realmx1 6= P redmx1 ;
Definir ω como a quantidade de amostras mais próximas ;
for cada amostra θ de Θ do
Obter Fθ que é o vetor de atributos da amostra ;
Calcular as ω amostras da matriz F mais próximas de Fθ e obter o conjunto Σ ;
Obter os rótulos reais de Σ, RΣ e de θ, Rθ ;
if Rθ ∈/ RΣ then
Incluir θ em Γ ;
end
end
Figura 63 – Visão geral do processo de obtenção do mapa de calor por meio do Grad-Cam
para artefatos maliciosos. Em (1) tem-se o artefato sendo representado como
uma imagem de tamanho 256 × 299. Em (2) a imagem é redimensionada para
224 × 224. Em (3) a amostra é aplicada a uma RNC treinada produzindo
um resultado (4). Além disso, por meio de um algoritmo de explicabilidade é
obtido o mapa de calor (5) de tamanho 224 × 224. Finalmente em (6) o mapa
de calor é redimensionado para 256 × 299.
Para resolver o problema, pode-se fixar o valor da altura de imagem para representar
todos artefatos maliciosos, variando somente a largura em função do tamanho do artefato.
Assim, a distorção, por causa do redimensionamento da imagem ocorrerá majoritariamente
na horizontal.
A Figura 65 apresenta um artefato da família Trojan:Win32/Koutodoor de tamanho
64 × 2626 sendo redimensionado para o tamanho de 224 × 224. Podemos observar que a
distorção na altura é de 2:1 e a distorção na largura é de 82:1 aproximadamente.
A Figura 66 apresenta uma visão geral do processo proposto, fixando o valor da
altura em 64. A diferença em relação ao método descrito na Seção 4.3.3 é que ambas as
representações do artefato malicioso em (1) e no mapa de calor obtido em (6) possuem
uma altura de 64.
Para avaliar esta proposta, dois aspectos foram considerados:
Figura 66 – Visão geral do processo de obtenção do mapa de calor por meio do método
proposto. Em (a) tem-se a imagem original de tamanho 64 × 2626. Em (b)
tem-se a imagem redimensionada para o tamanho 224 × 224. Em (c) tem-se o
mapa de calor obtido, de tamanho 224 × 224. Finalmente em (d), tem-se o
mapa de calor redimensionado para o tamanho 64 × 2626.
Figura 67 – A Figura ilustra uma visão geral do processo de obtenção da feature importance
em análise de malware.
Figura 68 – Visualização do mapa de importância para famílias (a) Vundo, (b) Cycbot e
(c) Zwangi.
cabeçalho de um arquivo do tipo PE file; para os artefatos da família Cycbot, tanto a região
de cabeçalho como a região inicial de código executável se destacaram; finalmente, para
artefatos da família Zwangi, duas regiões se destacaram: uma região inicial (cabeçalho) e
uma região no final (de dados).
O método de importância por permutação de atributos faz, para cada atributo dos
dados de entrada, uma permutação de valores entre as amostras e calcula um erro ek para
cada permutação. No caso de representação por imagem, o método é aplicado a cada pixel
da imagem de entrada (por exemplo, 32 × 32) do modelo de algoritmo de aprendizado
Capítulo 7. Proposta de Trabalho 125
Figura 70 – A Figura ilustra uma visão geral do processo de obtenção da feature importance
em análise de malware.
A métrica de medida do erro para esse algoritmo proposto pode ser definida para
cada caso. É interessante observar que o uso da métrica acurácia permite que diversas
variações em pixeis produzam um erro errok igual a erro, ou seja, nenhum resultado de
importância. Na implementação desenvolvida foi utilizada a distância euclidiana do vetor
classereal da amostra ao vetor classepred .
127
8 RESULTADOS DE DESEMPENHO
representação foi redimensionada para valores de 32 × 32, 64 × 64, 128 × 128 e 224 × 224.
O treinamento foi realizado com 20 épocas, o que já foi suficiente para estabilizar a perda
dos diversos modelos. Os resultados estão apresentados na Tabela 241 .
Da Tabela 13, pode-se concluir que nenhuma das arquiteturas se destacou na
obtenção do melhor resultado: para uma entrada de tamanho 32 × 32 a melhor arquitetura
(acurácia no conjunto de validação) foi a Tiny; para uma entrada de 64 × 64 a melhor
arquitetura foi a Tiny; para uma entrada de 128 × 128 a melhor acurácia foi na arquitetura
Normal; e finalmente para a entrada de 224 × 224 a melhor acurácia foi para a arquitetura
Normal - que também foi o melhor resultado de acurácia.
Quando se considera o tamanho da entrada, quanto maior o valor da entrada,
melhor o modelo: a entrada de tamanho 224 × 224 obteve a melhor acurácia para as
diversas arquiteturas.
Ainda, da Tabela 24, pode-se observar que há uma grande diferença entre a
acurácia no conjunto de treinamento e validação, ou seja, os modelos podem estar fazendo
sobreajuste (overfitting). A Figura 72 apresenta dois exemplos de possível sobreajuste
de acordo com a evolução dos modelos a cada época para o conjunto de treinamento e
validação para entrada do tamanho 224 × 224: em (a) é apresentada a acurácia para a
arquitetura Normal e em (b) é apresentada a acurácia obtida para a arquitetura Small.
Em (a) a diferença entre a acurácia de treinamento e a acurácia de validação é de quase
7% e em (b) esta diferença é de quase 6%.
Com intuito de melhorar os resultados no conjunto de validação, algumas alter-
nativas foram analisadas como o uso de Dropout para diminuir o sobreajuste ou o Batch
1
Idealmente, dever-se repetir o mesmo experimento diversas vezes e obter um valor médio e a variância
da acurácia.
Capítulo 8. Resultados de Desempenho 130
quando comparada às arquiteturas baseadas na Lenet-5, o que sugere que quase não há
sobreajuste. Desta forma, os modelos que obtiveram as melhores acurácias no conjunto de
validação foram a VGG16 non-top, Resnet tiny e VGG19 non-top. A Figura 73 apresenta
as acurácias no conjunto de treinamento e validação para estas três arquiteturas em função
do número de épocas do treinamento.
Figura 73 – Arquiteturas VGG16 non-top, VGG19 non-top e Renet tiny sem sobreajuste.
Tabela 15 – Acurácia para o conjunto de testes para os modelos Lenet-5 Normal, Resnet
tiny, V GG16 non-top e V GG19 non-top.
Arquitetura Tamanho da Tipo de Acurácia no
Entrada Transferência Teste
Lenet-5 Normal 224 × 224 —- 92,51%
.
Resnet tiny 224 × 224 por Inicialização 94,27%
VGG16 non-top 224 × 224 por Atributos 93,96%
VGG19 non-top 224 × 224 por Atributos 93,92%
triz de confusão, na linha 1 e coluna 2, tem-se que 24 amostras são da classe Back-
door:Win32/Bifrose (primeira família) e que o algoritmo de aprendizado profundo classifi-
cou como Trojan:Win32/Vundo (segunda família).
348 24 5 4 9 5 19 22 22
6 1314 5 1 7 2 11 7 6
0 2 715 1 0 0 6 0 0
2 2 1 171 3 0 0 0 5
11 6 3 1 860 0 1 38 5
0 6 0 1 0 1112 1 0 1
8 4 5 0 5 0 194 16 2
11 14 3 1 18 0 9 301 32
13 9 0 3 4 3 3 15 280
O desempenho da arquitetura Resnet tiny pode ser observado a partir da matriz
de confusão do conjunto de dados de teste (5.724 amostras). Observando a primeira
linha da matriz de confusão, na linha 1 e coluna 8, tem-se que 39 amostras são da classe
Backdoor:Win32/Bifrose (primeira família) e que o algoritmo de aprendizado profundo
classificou como Backdoor:Win32/Hupigon (oitava família).
376 11 0 0 12 1 5 39 14
11 1320 3 0 2 1 7 10 5
2 2 718 0 0 0 2 0 0
5 1 0 167 1 2 1 3 4
6 2 0 0 901 0 1 13 2
1 1 0 0 1 1114 1 0 3
11 2 2 0 5 1 198 14 1
13 6 0 0 21 2 3 330 14
13 6 0 3 8 6 1 21 272
O desempenho da arquitetura V GG16 non-top pode ser observado a partir da
matriz de confusão do conjunto de dados de teste (5.724 amostras). Observando a primeira
coluna da matriz de confusão, na linha 8 e coluna 1, tem-se que 24 amostras são da classe
Backdoor:Win32/Hupigon (oitava família) e que o algoritmo de aprendizado profundo
classificou como Backdoor:Win32/Bifrose (primeira família).
Capítulo 8. Resultados de Desempenho 133
390 7 0 2 21 0 6 26 6
14 1298 8 2 12 2 3 17 3
1 2 719 0 1 0 1 0 0
6 2 0 165 4 0 0 3 4
6 0 0 1 896 0 2 20 0
0 1 0 0 2 1115 1 2 0
13 3 0 1 3 0 202 8 4
24 5 0 0 31 0 3 323 3
21 6 0 2 7 2 3 19 270
Finalmente, o desempenho da arquitetura V GG19 non-top pode ser observado a
partir da matriz de confusão do conjunto de dados de teste (5.724 amostras). Observando
a primeira linha da matriz de confusão, na linha 8 e coluna 2, tem-se que 9 amostras são
da classe Backdoor:Win32/Hupigon (oitava família) e que o algoritmo de aprendizado
profundo classificou como Backdoor:Win32/Cycbot.
399 17 0 3 6 1 5 14 13
13 1321 2 1 1 2 5 9 5
3 8 711 0 0 0 2 0 0
6 1 0 170 1 0 0 1 5
20 0 1 2 889 0 2 7 4
6 2 0 1 0 1109 0 0 3
19 5 0 0 0 0 202 6 2
40 9 0 1 18 0 4 289 28
21 7 0 1 2 2 3 8 286
413 8 0 0 9 0 4 18 6
14 1330 2 0 2 1 3 6 1
2 4 717 0 0 0 1 0 0
7 0 0 173 2 0 0 1 1
8 1 1 1 902 0 2 10 0
2 2 0 0 0 1115 1 0 1
16 2 0 0 3 0 206 7 0
31 7 0 0 19 0 2 324 6
18 6 0 0 4 3 3 17 279
9 RESULTADOS DA RE-ROTULAGEM
algoritmo apresentou que não haveria esta necessidade (falso negativo). Ainda, 26 amostras
não precisavam de re-rotulagem, mas o algoritmo apresentou que era necessário (falso
positivo). Finalmente, 56 amostras não precisavam de re-rotulagem e foram identificadas
de forma correta pelo algoritmo (verdadeiro negativo); e 8 amostras precisavam de re-
rotulagem e foram identificadas de forma correta pelo algoritmo (verdadeiro positivo).
Considerando o ponto de vista de um analista de malware que precisa realizar a
verificação manual da possível re-rotulagem de artefatos, das 93 amostras selecionadas, o
algoritmo que sugere que se faça re-rotulagem em 34 amostras. Destas, apenas 8 realmente
necessitam de re-rotulagem. Finalmente, do conjunto de 93 amostras, 3 amostras que
precisam ser re-rotuladas não foram identificadas pelo algoritmo.
Finalmente, para comprovar a intuição de que somente amostras com predições
equivocadas devem ser submetidas ao algoritmo, foram selecionadas, ao acaso, 93 amostras
preditas de forma correta. A Figura 75 apresenta os valores do f1-score em função da
quantidade de pontos mais próximos selecionados.
Pode-se observar que o melhor f1-score, 13,79%, obtido está bem abaixo do f1-score
obtido para amostras preditas de forma equivocada que é de 35,55%.
foram selecionadas 132 amostras preditas de forma correta pelo V GG16 non_top para a
aplicação do algoritmo. A Figura 77 apresenta os resultados.
Novamente, pode-se observar que o maior valor de f1-score obtido 23,07% para
ω = 2 é bastante inferior ao obtido para amostras preditas de forma equivocada, 46,95%.
• O valor do f1-score ser menor que 50%1 , mesmo para amostras preditas de forma
equivocada pelo algoritmo de aprendizado de máquina;
1
Estimou-se que, para um analista de malware, avaliar o rótulo manualmente de amostras seja trabalhoso.
Assim, considera-se adequado se o algoritmo obtiver um f1-score maior que 50%.
139
Da mesma forma como apresentado na Seção 8.2.4, foi criado e avaliado um comitê
com os 4 classificadores considerando a representação proposta. O resultado do comitê
para o conjunto de testes foi de 95,21%. No total, foram cometidos 274 erros de 5.724
amostras de teste. O resultado foi pouco inferior ao resultado do comitê com classificadores
considerando a representação tradicional dos artefatos maliciosos que errou 266 amostras).
1
O valor fixo de 224 não obteve o melhor resultado, mas foi escolhido a fim de padronizar o valor fixo
de entrada para as diversas arquiteturas.
Capítulo 10. Resultados da Nova representação 140
zando tanto a representação tradicional (13) quanto a proposta. Uma amostra2 da família
Trojan:Win32/Vundo foi alimentada em cada uma das 8 arquiteturas e os resultados foram
obtidos. Na Figura 78 está ilustrada a imagem desta amostra (a) em tons de cinza, (b)
utilizando um mapa de cores para melhor visualização e (c) destacando as seções do
artefato onde amarelo é a seção de cabeçalho, azul é seção executável e vermelho seção de
dados. O artefato possui 1 seção de cabeçalho, 1 seção de código executável e 5 seções de
dados.
esta amostra pois as regiões de importância estão, em ambos os casos, bem delimitadas
e as áreas são bem menores que no caso da Resnet tiny. Da mesma forma, no caso da
representação proposta, a região da parte de baixo do mapa de calor é mais alargada na
horizontal.
Finalmente, a Figura 82 apresenta o resultado da explicabilidade quando aplicado
à V GG19 non_top. O resultado desta arquitetura para a representação tradicional e
proposta são similares. Ambas produziram uma área de importância localizada no canto
inferior direito do mapa de calor. Deve-se se observar que todos os exemplos apresentados
são para a mesma amostra e os mapas de calor são bem distintos. A explicabilidade, neste
caso, é específica do modelo, ou seja, o mapa de calor destaca o que é importante para um
Capítulo 10. Resultados da Nova representação 143
determinado modelo.
artefatos maliciosos.
2. Dado mapa de calor de uma determinada amostra, procurar a localização dos picos;
3. Para cada pico, selecionar uma quantidade de n de bytes em torno do pico. Esta
sequência de bytes de tamanho 2 × n;
Capítulo 10. Resultados da Nova representação 145
2619 0
A matriz de confusão de cada uma das 5 assinaturas foi: .
814 1
O resultado não é interessante: por um lado, 2619 amostras não deveriam ter as
assinaturas e não as tinha. No entanto, das 815 amostras da família Trojan:Win32/Vundo,
apenas 1 tinha as assinaturas. Em outras palavras, a assinatura somente servia para
identificar unicamente o artefato. O f1-score obtido foi de 0,87%.
Para a abordagem proposta, também foram selecionadas sequências de 8 bytes em
torno dos dezoito máximos identificados.
• Assinatura 10: 0x0, 0x68, 0x4, 0x1, 0x0, 0x0, 0xff, 0xb5.
• Assinatura 11: 0x68, 0x4, 0x1, 0x0, 0x0, 0xff, 0xb5, 0xb4.
• Assinatura 12: 0x4, 0x1, 0x0, 0x0, 0xff, 0xb5, 0xb4, 0xfd.
• Assinatura 13: 0x1, 0x0, 0x0, 0xff, 0xb5, 0xb4, 0xfd, 0xff.
• Assinatura 14: 0x0, 0x0, 0xff, 0xb5, 0xb4, 0xfd, 0xff, 0xff.
• Assinatura 15: 0x0, 0xff, 0xb5, 0xb4, 0xfd, 0xff, 0xff, 0x8d.
• Assinatura 16: 0x5, 0x68, 0xbe, 0x1, 0x10, 0x3, 0xf, 0x84.
• Assinatura 17: 0x68, 0xbe, 0x1, 0x10, 0x3, 0xf, 0x84, 0x19.
• Assinatura 18: 0xbe, 0x1, 0x10, 0x3, 0xf, 0x84, 0x19, 0x1.
Capítulo 10. Resultados da Nova representação 147
2999 0
, que resultam em f1-score de 21.35% e 15.67%.
398 37
(E) Estudo de Caso 5: Amostra da família Rogue:Win32/Winwebsec
A amostra escolhida foi a amostra VirusShare_4dd9514a635c463ade0531d09577dcb3 da
família Rogue:Win32/Winwebsec.
A Figura 88 apresenta o mapa de calor e seções do arquivo para (a) representação
tradicional e (b) representação proposta. O cabeçalho não está aparecendo mas ele ocupa
os primeiros 1024 bytes de ambas as imagens.
• Não foram apresentados aqui os Estudos de Caso 6 e 7 pois, nestes casos, o mapa de
calor gerado para a abordagem tradicional era nulo4
• A arquitetura Lenet-5 Normal parece não ser uma boa arquitetura para a geração
de assinaturas de forma automatizada. Talvez, o principal motivo seja por causa do
sobreajuste que está acontecendo na arquitetura, pois as regiões de mapa de calor
são bem desconectadas;
• Nesta avaliação decidiu-se por utilizar uma entrada de dados fixa no 224 × 224. No
entanto, algumas simulações foram realizadas com intuito de verificar a capacidade de
gerar assinaturas viáveis. O modelo com entrada 32 × 32 para abordagem tradicional
e proposta (fixando valor da altura na representação para 32) foram muito superiores.
Decidiu-se por manter os resultados aqui apresentados porque o foco é avaliar a
abordagem tradicional de representação e a abordagem proposta para geração de
assinaturas (e não avaliar a melhor arquitetura de rede neural convolucional).
4
Em pesquisa realizada, o motivo de serem produzidos mapas de calor nulos é uma instabilidade
computacional gerada pelo algoritmo Grad-CAM da implementação do pacote eli5. O problema não
foi resolvido.
Capítulo 10. Resultados da Nova representação 151
Para a abordagem tradicional, foram produzidos 169 picos. Assim, 169 assinaturas
de
8 bytes
foram
geradas eavaliadas. As duas melhores matrizes de confusão obtidas foram
3140 19 2095 1064
, , que possuem um f1-score de 6,57% e 15,81% respectivamente.
265 10 160 115
Para a abordagem proposta, foram encontrados 120 picos e geradas, portanto,
120 assinaturas de tamanho8 bytes. As
duas
melhores
matrizes de confusão foram obti-
3149 10 1506 1653
das nestas 120 assinaturas: , , com f1-score de 7,43% e 19,05%
264 11 72 203
respectivamente. Novamente, um resultado pouco melhor que a abordagem tradicional.
(C) Estudo de Caso 3: Amostra da família BrowserModifier:Win32/Zwangi
A amostra escolhida foi a amostra VirusShare_de98a354787f0e06758c1a03be23eb63 da
família BrowserModifier:Win32/Zwangi.
A Figura 91 apresenta o mapa de calor e seções do arquivo para (a) representação
tradicional e (b) representação proposta. O cabeçalho não está aparecendo mas ele ocupa
os primeiros 1024 bytes de ambas as imagens.
Para a abordagem tradicional, foram produzidos 23 picos. Assim, 23 assinaturas
3322 2
de 8 bytes foram geradas. As melhores matrizes de confusão obtidas foram ,
66 44
Capítulo 10. Resultados da Nova representação 153
3141 183
, que possuem um f1-score de 56,41% e 35,85% respectivamente.
46 64
Para a abordagem proposta, foram encontrados 68 picos e geradas 68 assinaturas
de
tamanho8 bytes. As melhores
matrizes de confusão foram obtidas nestas 68 assinaturas:
3216 108 3052 272
, , com f1-score de 45,39% e 44,39% respectivamente.
46 641 1 109
(D) Estudo de Caso 4: Amostra da família BrowserModifier:Win32/Zwangi
A amostra escolhida foi a amostra VirusShare_e70017930479d88b1747e3df6e99be25 da
família BrowserModifier:Win32/Zwangi.
A Figura 92 apresenta o mapa de calor e seções do arquivo para (a) representação
tradicional e (b) representação proposta. O cabeçalho não está aparecendo mas ele ocupa
os primeiros 1024 bytes de ambas as imagens.
3298 26 3195 129
obtidas foram , , que possuem um f1-score de 36,14% e 29,28%
80 30 69 41
respectivamente.
Para a abordagem proposta, foram encontrados 39 picos e, portanto, foram pro-
duzidas 39 assinaturas de tamanho
8 bytes.
As melhores
matrizes de confusão foram
3317 7 3324 0
obtidas nestas 39 assinaturas: , , com f1-score de 55,55% e 44,39%
65 45 74 36
respectivamente.
• Uma avaliação na capacidade de gerar assinaturas foi realizada e foi observado que as
arquiteturas com a entrada 32 × 32 para abordagem tradicional e proposta (fixando
valor da altura na representação para 32) para o modelo VGG16 non_top foi superior,
obtendo inclusive f1-score de 78% em alguns casos analisados. Decidiu-se por manter
os resultados aqui apresentados, pois o foco é avaliar a representação tradicional e a
representação proposta para geração de assinaturas6 .
6
Neste caso, não houve transferência de aprendizado, pois originalmente a arquitetura VGG16 tem
como entrada uma imagem 224 × 224 × 3.
156
Figura 93 – Regiões de calor geradas pelo Algoritmo de Importância por Pixel para 3
amostras.
Para gerar estes mapas de importância, um limiar de 1,2 foi criado e somente os
pixeis com importância acima de um limiar foram apresentados.
Capítulo 11. Resultados do Algoritmo de Importância por Pixel 157
Figura 94 – Importância por Pixel para os primeiros 1024 bytes das amostras 40 e 6.
Capítulo 11. Resultados do Algoritmo de Importância por Pixel 158
Outra vantagem do algoritmo de importância de pixel é que ele pode ser aplicado a
qualquer arquitetura de aprendizado profundo que tenha como entrada uma representação
de artefato malicioso na forma de imagem. Possíveis redimensionamentos da imagem (para
um valor fixo, como no caso das redes neurais convolucionais), e distorções na imagem
não afetam o resultado do algoritmo.
160
12 CONCLUSÃO
A quantidade de malware e suas variantes vem crescendo nos últimos anos e soluções
automatizadas de detecção e classificação de malware por meio de aprendizado profundo
são interessantes, pois atendem a essas demandas. No entanto, as soluções de aprendizado
profundo ainda são, tipicamente, caixas pretas, ou seja, apenas nos fornecem os resultados
de sua detecção ou classificação. Assim, nesta tese foi definido um objetivo geral e 4
objetivos específicos que solucionavam ou mitigavam os efeitos das 3 Lacunas encontradas
nos diversos trabalhos. Em todas as propostas, ou na implementação ou na forma de
avaliação, foram utilizadas técnicas de explicabilidade.
O primeiro passo para realizar esta tese foi criar uma base de dados de artefatos
maliciosos, denominada VirusShareSant. Em seguida, criou-se e documentou-se um con-
junto de arquiteturas de redes neurais convolucionais, atendendo o Objetivo Especifico
S0, que realizassem a classificação das amostras em 9 famílias com acurácia adequada.
Para atender o Objetivo Específico S1, foi proposta um método que utiliza como
base os atributos aprendidos de uma rede neural convolucional, para propor candidatos a
verificação de rotulagem das amostras. O método é inovador, no sentido de ser único a usar
uma representação de explicabilidade de uma rede neural convolucional. Os resultados
obtidos são interessantes, mas por proporcionarem um valor baixo de f1-score considerou-se
o resultado final satisfatório e, portanto, resolveu parcialmente a Lacuna L1 encontrada.
De qualquer forma, o método proposto apresenta um caminho a ser aprofundado em
trabalhos futuros como possível abordagem para resolver a Lacuna L1.
O Objetivo Específico S2 foi atendido propondo uma Nova Representação de
artefatos maliciosos na forma de imagem. A forma proposta valoriza a correlação horizontal
existente na disposição dos bytes na imagem. Este método mitiga os efeitos da distorção
de representação apresentado como Lacuna L2. Para avaliar esta representação proposta,
indicou-se uma forma de gerar assinaturas de forma automatizada utilizando o algoritmo
de explicabilidade Grad-CAM e foi mostrado que os resultados da Nova Representação são
superiores aos da representação tradicional. Ou seja, a nova representação trouxe melhoras
na aplicação do algoritmo de explicabilidade para a geração de assinaturas.
O Objetivo Específico S3 foi atendido ao se propor um método para avaliação
de apenas parte de uma região de imagem, além do método proposto ter ainda a vantagem
de ser agnóstico ao modelo. A vantagem de se utilizar um algoritmo onde uma região pode
ser definida pelo analista foi mostrada produzindo resultados satisfatórios. Portanto, foi
possível realizar uma adaptação em um método existente, o método de importância de
atributos por permutação, de forma a resolver a Lacuna L3.
Capítulo 12. Conclusão 161
REFERÊNCIAS
2 DENG, J.; DONG, W.; SOCHER, R.; LI, L.-J.; LI, K.; FEI-FEI, L. Imagenet: A large-
scale hierarchical image database. In: IEEE. Computer Vision and Pattern Recognition,
2009. CVPR 2009. IEEE Conference on. [S.l.], 2009. p. 248–255.
3 GOODFELLOW, I.; BENGIO, Y.; COURVILLE, A.; BENGIO, Y. Deep learning. [S.l.]:
MIT press Cambridge, 2016. v. 1.
4 CHOLLET, F. Deep learning with python. [S.l.]: Manning Publications Co., 2017.
8 HAN, W.; XUE, J.; WANG, Y.; LIU, Z.; KONG, Z. Malinsight: A systematic profiling
based malware detection framework. Journal of Network and Computer Applications,
Elsevier, v. 125, p. 236–250, 2019.
10 ZHOU, B.; KHOSLA, A.; LAPEDRIZA, A.; OLIVA, A.; TORRALBA, A. Learning
deep features for discriminative localization. In: Proceedings of the IEEE conference on
computer vision and pattern recognition. [S.l.: s.n.], 2016. p. 2921–2929.
11 SELVARAJU, R. R.; COGSWELL, M.; DAS, A.; VEDANTAM, R.; PARIKH, D.;
BATRA, D. Grad-cam: Visual explanations from deep networks via gradient-based loca-
lization. In: Proceedings of the IEEE international conference on computer vision. [S.l.:
s.n.], 2017. p. 618–626.
12 HE, K.; ZHANG, X.; REN, S.; SUN, J. Deep residual learning for image recognition.
In: Proceedings of the IEEE conference on computer vision and pattern recognition. [S.l.:
s.n.], 2016. p. 770–778.
18 AVTEST, T. Heightened threat scenario: all the facts in the AV-TEST Security Report
2018/2019. 2019. 4 de novembro 2019. Disponível em: <https://www.av-test.org/en/news/
heightened-threat-scenario-all-the-facts-in-the-av-test-security-report-2018-2019/>.
23 YUAN, Z.; LU, Y.; WANG, Z.; XUE, Y. Droid-sec: deep learning in android malware
detection. In: Proceedings of the 2014 ACM conference on SIGCOMM. [S.l.: s.n.], 2014. p.
371–372.
25 YUAN, Z.; LU, Y.; XUE, Y. Droiddetector: android malware characterization and
detection using deep learning. Tsinghua Science and Technology, TUP, v. 21, n. 1, p.
114–123, 2016.
26 CHOI, S.; JANG, S.; KIM, Y.; KIM, J. Malware detection using malware image and
deep learning. In: IEEE. 2017 International Conference on Information and Communication
Technology Convergence (ICTC). [S.l.], 2017. p. 1193–1195.
27 NIX, R.; ZHANG, J. Classification of android apps and malware using deep neural
networks. In: IEEE. 2017 International joint conference on neural networks (IJCNN).
[S.l.], 2017. p. 1871–1878.
Referências 165
28 RAFF, E.; BARKER, J.; SYLVESTER, J.; BRANDON, R.; CATANZARO, B.;
NICHOLAS, C. K. Malware detection by eating a whole exe. In: Workshops at the
Thirty-Second AAAI Conference on Artificial Intelligence. [S.l.: s.n.], 2018.
29 KALASH, M.; ROCHAN, M.; MOHAMMED, N.; BRUCE, N. D.; WANG, Y.; IQBAL,
F. Malware classification with deep convolutional neural networks. In: IEEE. 2018 9th
IFIP International Conference on New Technologies, Mobility and Security (NTMS). [S.l.],
2018. p. 1–5.
30 KRČÁL, M.; ŠVEC, O.; BÁLEK, M.; JAŠEK, O. Deep convolutional malware classi-
fiers can learn from raw executables and labels only. 2018.
31 CAKIR, B.; DOGDU, E. Malware classification using deep learning methods. In:
Proceedings of the ACMSE 2018 Conference. [S.l.: s.n.], 2018. p. 1–5.
32 JUNG, B.; KIM, T.; IM, E. G. Malware classification using byte sequence information.
In: Proceedings of the 2018 Conference on Research in Adaptive and Convergent Systems.
[S.l.: s.n.], 2018. p. 143–148.
34 REN, Z.; WU, H.; NING, Q.; HUSSAIN, I.; CHEN, B. End-to-end malware detection
for android iot devices using deep learning. Ad Hoc Networks, Elsevier, v. 101, p. 102098,
2020.
35 KOLOSNJAJI, B.; ZARRAS, A.; WEBSTER, G.; ECKERT, C. Deep learning for clas-
sification of malware system call sequences. In: SPRINGER. Australasian Joint Conference
on Artificial Intelligence. [S.l.], 2016. p. 137–149.
36 SU, X.; ZHANG, D.; LI, W.; ZHAO, K. A deep learning approach to android malware
feature learning and detection. In: IEEE. 2016 IEEE Trustcom/BigDataSE/ISPA. [S.l.],
2016. p. 244–251.
42 NI, S.; QIAN, Q.; ZHANG, R. Malware identification using visualization images and
deep learning. Computers & Security, Elsevier, v. 77, p. 871–885, 2018.
43 SUN, G.; QIAN, Q. Deep learning and visualization for identifying malware families.
IEEE Transactions on Dependable and Secure Computing, IEEE, 2018.
46 CUI, Z.; XUE, F.; CAI, X.; CAO, Y.; WANG, G.-g.; CHEN, J. Detection of malicious
code variants based on deep learning. IEEE Transactions on Industrial Informatics, IEEE,
v. 14, n. 7, p. 3187–3196, 2018.
47 MASABO, E.; KAAWAASE, K. S.; SANSA-OTIM, J. Big data: deep learning for
detecting malware. In: IEEE. 2018 IEEE/ACM Symposium on Software Engineering in
Africa (SEiA). [S.l.], 2018. p. 20–26.
48 CHEN, L.; SULTANA, S.; SAHITA, R. Henet: A deep learning approach on intel®
processor trace for effective exploit detection. In: IEEE. 2018 IEEE Security and Privacy
Workshops (SPW). [S.l.], 2018. p. 109–115.
49 YAN, J.; QI, Y.; RAO, Q. Detecting malware with an ensemble method based on deep
neural network. Security and Communication Networks, Hindawi, v. 2018, 2018.
50 HE, K.; KIM, D.-S. Malware detection with malware images using deep learning
techniques. In: IEEE. 2019 18th IEEE International Conference On Trust, Security And
Privacy In Computing And Communications/13th IEEE International Conference On Big
Data Science And Engineering (TrustCom/BigDataSE). [S.l.], 2019. p. 95–102.
51 PEI, X.; YU, L.; TIAN, S. Amalnet: A deep learning framework based on graph
convolutional networks for malware detection. Computers & Security, Elsevier, p. 101792,
2020.
52 NAEEM, H.; ULLAH, F.; NAEEM, M. R.; KHALID, S.; VASAN, D.; JABBAR, S.;
SAEED, S. Malware detection in industrial internet of things based on hybrid image
visualization and deep learning model. Ad Hoc Networks, Elsevier, p. 102154, 2020.
53 NIU, W.; CAO, R.; ZHANG, X.; DING, K.; ZHANG, K.; LI, T. Opcode-level function
call graph based android malware classification using deep learning. Sensors, Multidiscipli-
nary Digital Publishing Institute, v. 20, n. 13, p. 3645, 2020.
Referências 167
54 YAKURA, H.; SHINOZAKI, S.; NISHIMURA, R.; OYAMA, Y.; SAKUMA, J. Malware
analysis of imaged binary samples by convolutional neural network with attention me-
chanism. In: ACM. Proceedings of the Eighth ACM Conference on Data and Application
Security and Privacy. [S.l.], 2018. p. 127–134.
55 SKOUDIS, E.; ZELTSER, L. Malware: Fighting malicious code. [S.l.]: Prentice Hall
Professional, 2004.
56 SIKORSKI, M.; HONIG, A. Practical malware analysis: the hands-on guide to dissec-
ting malicious software. [S.l.]: no starch press, 2012.
58 YOU, I.; YIM, K. Malware obfuscation techniques: A brief survey. In: IEEE. 2010
International conference on broadband, wireless computing, communication and applications.
[S.l.], 2010. p. 297–300.
59 LYDA, R.; HAMROCK, J. Using entropy analysis to find encrypted and packed
malware. IEEE Security & Privacy, IEEE, v. 5, n. 2, p. 40–45, 2007.
60 SAMI, A.; YADEGARI, B.; RAHIMI, H.; PEIRAVIAN, N.; HASHEMI, S.; HAMZE,
A. Malware detection based on mining api calls. In: ACM. Proceedings of the 2010 ACM
symposium on applied computing. [S.l.], 2010. p. 1020–1025.
66 MITCHELL, T. M. et al. Machine learning. 1997. Burr Ridge, IL: McGraw Hill, v. 45,
n. 37, p. 870–877, 1997.
67 SAMUEL, A. L. Some studies in machine learning using the game of checkers. IBM
Journal of research and development, IBM, v. 3, n. 3, p. 210–229, 1959.
78 MIKA, S.; SCHÖLKOPF, B.; SMOLA, A. J.; MÜLLER, K.-R.; SCHOLZ, M.;
RÄTSCH, G. Kernel pca and de-noising in feature spaces. In: Advances in neural infor-
mation processing systems. [S.l.: s.n.], 1999. p. 536–542.
83 LECUN, Y.; BENGIO, Y.; HINTON, G. Deep learning. nature, Nature Publishing
Group, v. 521, n. 7553, p. 436, 2015.
85 SZEGEDY, C.; LIU, W.; JIA, Y.; SERMANET, P.; REED, S.; ANGUELOV, D.;
ERHAN, D.; VANHOUCKE, V.; RABINOVICH, A. Going deeper with convolutions. In:
Proceedings of the IEEE conference on computer vision and pattern recognition. [S.l.: s.n.],
2015. p. 1–9.
88 AGARAP, A. F. Deep learning using rectified linear units (relu). arXiv preprint
arXiv:1803.08375, 2018.
89 SRIVASTAVA, N.; HINTON, G.; KRIZHEVSKY, A.; SUTSKEVER, I.; SALAKHUT-
DINOV, R. Dropout: a simple way to prevent neural networks from overfitting. The journal
of machine learning research, JMLR. org, v. 15, n. 1, p. 1929–1958, 2014.
90 WAGER, S.; WANG, S.; LIANG, P. S. Dropout training as adaptive regularization.
In: Advances in neural information processing systems. [S.l.: s.n.], 2013. p. 351–359.
91 HINTON, G. E.; SRIVASTAVA, N.; KRIZHEVSKY, A.; SUTSKEVER, I.; SA-
LAKHUTDINOV, R. R. Improving neural networks by preventing co-adaptation of feature
detectors. arXiv preprint arXiv:1207.0580, 2012.
92 BALDI, P.; SADOWSKI, P. J. Understanding dropout. In: Advances in neural infor-
mation processing systems. [S.l.: s.n.], 2013. p. 2814–2822.
93 IOFFE, S.; SZEGEDY, C. Batch normalization: Accelerating deep network training
by reducing internal covariate shift. arXiv preprint arXiv:1502.03167, 2015.
94 LIN, M.; CHEN, Q.; YAN, S. Network in network. arXiv preprint arXiv:1312.4400,
2013.
95 OLIVAS, E. S. Handbook of Research on Machine Learning Applications and Trends:
Algorithms, Methods, and Techniques: Algorithms, Methods, and Techniques. [S.l.]: IGI
Global, 2009.
96 ANDERSON, H. S.; ROTH, P. Ember: an open dataset for training static pe malware
machine learning models. arXiv preprint arXiv:1804.04637, 2018.
97 ZHANG, J.; QIN, Z.; YIN, H.; OU, L.; HU, Y. Irmd: malware variant detection using
opcode image recognition. In: IEEE. 2016 IEEE 22nd International Conference on Parallel
and Distributed Systems (ICPADS). [S.l.], 2016. p. 1175–1180.
98 ELKHAWAS, A. I.; ABDELBAKI, N. Malware detection using opcode trigram se-
quence with svm. In: IEEE. 2018 26th International Conference on Software, Telecommu-
nications and Computer Networks (SoftCOM). [S.l.], 2018. p. 1–6.
99 SHALAGINOV, A.; BANIN, S.; DEHGHANTANHA, A.; FRANKE, K. Machine
learning aided static malware analysis: A survey and tutorial. In: Cyber Threat Intelligence.
[S.l.]: Springer, 2018. p. 7–45.
100 GUIDE, P. Intel® 64 and ia-32 architectures software developer’s manual. Volume
3B: System programming Guide, Part, v. 2, p. 5, 2011.
101 HARRIS, S.; HARRIS, D. Digital design and computer architecture: arm edition.
[S.l.]: Morgan Kaufmann, 2015.
102 YUE, S. Imbalanced malware images classification: a cnn based approach. arXiv
preprint arXiv:1708.08042, 2017.
103 REZENDE, E.; RUPPERT, G.; CARVALHO, T.; RAMOS, F.; GEUS, P. D. Malicious
software classification using transfer learning of resnet-50 deep neural network. In: IEEE.
2017 16th IEEE International Conference on Machine Learning and Applications (ICMLA).
[S.l.], 2017. p. 1011–1014.
Referências 170
104 YAJAMANAM, S.; SELVIN, V. R. S.; TROIA, F. D.; STAMP, M. Deep learning
versus gist descriptors for image-based malware classification. In: ICISSP. [S.l.: s.n.], 2018.
p. 553–561.
106 LE, Q.; BOYDELL, O.; NAMEE, B. M.; SCANLON, M. Deep learning at the shallow
end: Malware classification for non-domain experts. Digital Investigation, Elsevier, v. 26,
p. S118–S126, 2018.
107 MENG, X.; SHAN, Z.; LIU, F.; ZHAO, B.; HAN, J.; WANG, H.; WANG, J. Mcsmgs:
malware classification model based on deep learning. In: IEEE. 2017 International Confe-
rence on Cyber-Enabled Distributed Computing and Knowledge Discovery (CyberC). [S.l.],
2017. p. 272–275.
108 HUANG, T. H.-D.; KAO, H.-Y. R2-d2: color-inspired convolutional neural network
(cnn)-based android malware detections. In: IEEE. 2018 IEEE International Conference
on Big Data (Big Data). [S.l.], 2018. p. 2633–2642.
109 SU, J.; VASCONCELLOS, V. D.; PRASAD, S.; DANIELE, S.; FENG, Y.; SAKURAI,
K. Lightweight classification of iot malware based on image recognition. In: IEEE. 2018
IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC). [S.l.],
2018. v. 2, p. 664–669.
110 KUMAR, R.; XIAOSONG, Z.; KHAN, R. U.; AHAD, I.; KUMAR, J. Malicious
code detection based on image processing using deep learning. In: Proceedings of the 2018
International Conference on Computing and Artificial Intelligence. [S.l.: s.n.], 2018. p.
81–85.
113 BAROCAS, S.; FRIEDLER, S.; HARDT, M.; KROLL, J.; VENKA-
TASUBRAMANIAN, S.; WALLACH, H. The FAT-ML Workshop Series on Fairness,
Accountability, and Transparency in Machine Learning. [S.l.]: Accessed: Jun, 2018.
115 RUDIN, C. Stop explaining black box machine learning models for high stakes
decisions and use interpretable models instead. Nature Machine Intelligence, Nature
Publishing Group, v. 1, n. 5, p. 206–215, 2019.
116 SIMONYAN, K.; ZISSERMAN, A. Very deep convolutional networks for large-scale
image recognition. arXiv preprint arXiv:1409.1556, 2014.
Referências 171
117 DENG, J.; DONG, W.; SOCHER, R.; LI, L.-J.; LI, K.; FEI-FEI, L. Imagenet: A
large-scale hierarchical image database. In: IEEE. 2009 IEEE conference on computer
vision and pattern recognition. [S.l.], 2009. p. 248–255.
118 RIBEIRO, M. T.; SINGH, S.; GUESTRIN, C. " why should i trust you?" explaining
the predictions of any classifier. In: Proceedings of the 22nd ACM SIGKDD international
conference on knowledge discovery and data mining. [S.l.: s.n.], 2016. p. 1135–1144.
120 GUO, M.; ZHANG, Q.; LIAO, X.; CHEN, Y. An interpretable machine learning
framework for modelling human decision behavior. arXiv preprint arXiv:1906.01233, 2019.
121 MOROCHO-CAYAMCELA, M. E.; LEE, H.; LIM, W. Machine learning for 5g/b5g
mobile and wireless communications: Potential, limitations, and future directions. IEEE
Access, IEEE, v. 7, p. 137184–137206, 2019.
123 BREIMAN, L. Random forests. Machine learning, Springer, v. 45, n. 1, p. 5–32, 2001.
124 FISHER, A.; RUDIN, C.; DOMINICI, F. All models are wrong, but many are
useful: Learning a variable’s importance by studying an entire class of prediction models
simultaneously. Journal of Machine Learning Research, v. 20, n. 177, p. 1–81, 2019.
125 VARGAS, R.; LOURDES, R. Deep learning: previous and present applications.
Journal of Awareness, Rating Academy, v. 3, n. Special, p. 11, 2017.
126 KAGGLE. Microsoft Malware Winners’ Interview: 1st place, "NO to overfit-
ting!". 2015. 29 setembro de 2019. Disponível em: <http://blog.kaggle.com/2015/05/
26/microsoft-malware-winners-interview-1st-place-no-to-overfitting/>.
128 CUI, Z.; DU, L.; WANG, P.; CAI, X.; ZHANG, W. Malicious code detection based
on cnns and multi-objective algorithm. Journal of Parallel and Distributed Computing,
Elsevier, v. 129, p. 50–58, 2019.
129 ZHAO, Y.; XU, C.; BO, B.; FENG, Y. Maldeep: A deep learning classification
framework against malware variants based on texture visualization. Security and Commu-
nication Networks, Hindawi, v. 2019, 2019.
130 GIBERT, D.; MATEU, C.; PLANES, J.; VICENS, R. Using convolutional neural
networks for classification of malware represented as images. Journal of Computer Virology
and Hacking Techniques, Springer, v. 15, n. 1, p. 15–28, 2019.
131 KADRI, M. A.; NASSAR, M.; SAFA, H. Transfer learning for malware multi-
classification. In: Proceedings of the 23rd International Database Applications & Engineering
Symposium. [S.l.: s.n.], 2019. p. 1–7.
Referências 172
132 DAHL, G. E.; STOKES, J. W.; DENG, L.; YU, D. Large-scale malware classifica-
tion using random projections and neural networks. In: IEEE. 2013 IEEE International
Conference on Acoustics, Speech and Signal Processing. [S.l.], 2013. p. 3422–3426.
133 RIECK, K.; HOLZ, T.; WILLEMS, C.; DÜSSEL, P.; LASKOV, P. Learning and
classification of malware behavior. In: SPRINGER. International Conference on Detection
of Intrusions and Malware, and Vulnerability Assessment. [S.l.], 2008. p. 108–125.
134 RIECK, K.; TRINIUS, P.; WILLEMS, C.; HOLZ, T. Automatic analysis of malware
behavior using machine learning. Journal of Computer Security, IOS Press, v. 19, n. 4, p.
639–668, 2011.
135 BAILEY, M.; OBERHEIDE, J.; ANDERSEN, J.; MAO, Z. M.; JAHANIAN, F.;
NAZARIO, J. Automated classification and analysis of internet malware. In: SPRINGER.
International Workshop on Recent Advances in Intrusion Detection. [S.l.], 2007. p. 178–197.
136 BAYER, U.; COMPARETTI, P. M.; HLAUSCHEK, C.; KRUEGEL, C.; KIRDA, E.
Scalable, behavior-based malware clustering. In: CITESEER. NDSS. [S.l.], 2009. v. 9, p.
8–11.
137 PERDISCI, R.; U, M. Vamo: towards a fully automated malware clustering validity
analysis. In: Proceedings of the 28th Annual Computer Security Applications Conference.
[S.l.: s.n.], 2012. p. 329–338.
138 RAFIQUE, M. Z.; CABALLERO, J. Firma: Malware clustering and network signature
generation with mixed network behaviors. In: SPRINGER. International Workshop on
Recent Advances in Intrusion Detection. [S.l.], 2013. p. 144–163.
139 VASWANI, A.; SHAZEER, N.; PARMAR, N.; USZKOREIT, J.; JONES, L.; GOMEZ,
A. N.; KAISER, Ł.; POLOSUKHIN, I. Attention is all you need. In: Advances in neural
information processing systems. [S.l.: s.n.], 2017. p. 5998–6008.
140 SIMONYAN, K.; ZISSERMAN, A. Very deep convolutional networks for large-scale
image recognition. CoRR, abs/1409.1556, 2014. Disponível em: <http://arxiv.org/abs/
1409.1556>.
141 SEBASTIÁN, M.; RIVERA, R.; KOTZIAS, P.; CABALLERO, J. Avclass: A tool
for massive malware labeling. In: SPRINGER. International Symposium on Research in
Attacks, Intrusions, and Defenses. [S.l.], 2016. p. 230–253.
142 ALBAWI, S.; MOHAMMED, T. A.; AL-ZAWI, S. Understanding of a convolutional
neural network. In: IEEE. 2017 International Conference on Engineering and Technology
(ICET). [S.l.], 2017. p. 1–6.
143 NAMATĒVS, I. Deep convolutional neural networks: Structure, feature extraction
and training. Information Technology and Management Science, Sciendo, v. 20, n. 1, p.
40–47, 2017.
144 KELLER, J. M.; GRAY, M. R.; GIVENS, J. A. A fuzzy k-nearest neighbor algorithm.
IEEE transactions on systems, man, and cybernetics, IEEE, n. 4, p. 580–585, 1985.
145 SEBASTIÁN, S.; CABALLERO, J. Avclass2: Massive malware tag extraction from
av labels. In: SPRINGER. Proceedings of the 36th Annual Computer Security Applications
Conference. [S.l.], 2020. p. –.
Referências 173
146 TSYMBAL, A. The problem of concept drift: definitions and related work. Computer
Science Department, Trinity College Dublin, Citeseer, v. 106, n. 2, p. 58, 2004.
148 RONEN, R.; RADU, M.; FEUERSTEIN, C.; YOM-TOV, E.; AHMADI, M. Microsoft
malware classification challenge. arXiv preprint arXiv:1802.10135, 2018.
149 CHIO, C.; FREEMAN, D. Machine Learning and Security: Protecting Systems with
Data and Algorithms. [S.l.]: " O’Reilly Media, Inc.", 2018.
150 KIRILLOV, I.; BECK, D.; CHASE, P.; MARTIN, R. Malware attribute enumeration
and characterization. The MITRE Corporation [online, accessed Nov. 6 , 2020], 2011.
151 DULAUNOY, A.; IKLODY, A.; MOKADDEM, S.; ROMMELFANGEN, S.; SERVILI,
D.; STUDER, C.; VINOT, R. MISP Standard, The collaborative intelligence standard
powering intelligence and information exchange, sharing and modeling. 2020. 6 nov. de
2020. Disponível em: <https://www.misp-standard.org/>.
153 STROBL, C.; BOULESTEIX, A.-L.; KNEIB, T.; AUGUSTIN, T.; ZEILEIS, A.
Conditional variable importance for random forests. BMC bioinformatics, Springer, v. 9,
n. 1, p. 307, 2008.
154 ALTMANN, A.; TOLOŞI, L.; SANDER, O.; LENGAUER, T. Permutation impor-
tance: a corrected feature importance measure. Bioinformatics, Oxford University Press,
v. 26, n. 10, p. 1340–1347, 2010.
155 HARDY, M. A.; BRYMAN, A. Handbook of data analysis. [S.l.]: Sage, 2009.
174
• Ausência dos rótulos para o subconjunto de testes: a ausência de rótulos faz com que,
na prática, sejam utilizadas apenas as 10.868 amostras do conjunto de treinamento.
Assim, decidiu-se por procurar uma alternativa para a base de dados Microsoft
Malware Classification Challenge (BIG 2015) que atendesse aos critérios apresentados.
desta fonte é que ela não possui rótulos (apenas resultados do Yara) e somente é
possível acessar um total de 1.000 amostras por dia;
Aparentemente, nenhum dos sítios acima apresentados atendem aos critérios de-
finidos, pois eles não fornecem rótulos dos artefatos. No entanto, por iniciativa de John
Seymour e do MLSec Project4 , iniciou-se a criação de rótulos para os artefatos do Vi-
rusShare utilizando uma API de comunicação com o VirusTotal(149). O VirusTotal é
um serviço online que realiza uma varredura nos artefatos submetidos utilizando diversas
soluções de antivírus. A comunicação com o VirusTotal pode ser realizada via Web ou
API e a resposta a uma solicitação via API é na forma de um arquivo json. A Figura 96
apresenta uma visão geral do processo de obtenção de amostras de vírus a partir de um
pacote do VirusShare e sua respectiva submissão para o Virus Total, conforme descrito no
sítio da MLSec.
dados denominada VirusShareSant que atendesse aos critérios definidos para esta tese.
No momento do desenvolvimento da base VirusShareSant, as amostras dos pacotes de
00000 a 00233 do VirusShare já foram submetidas para varredura pelo VirusTotal.
Decidida a fonte de artefatos maliciosos e a resposta json de cada amostra, pode-se
definir o processo para obtenção de uma base de malware. A Figura 97 apresenta uma
visão geral do processo de definição da base de dados utilizada nesta tese. Inicialmente,
foram selecionadas famílias de artefatos maliciosos candidatas da fonte de artefatos
maliciosos(pacotes do VirusShare) e um critério de aceitação foi aplicado a cada amostra.
Em seguida, para cada amostra de cada família selecionada, foi validada a compatibilidade
com o padrão PE FILE. Amostras não compatíveis foram descartadas. Finalmente, as
amostras das 9 famílias com maior quantidade de artefatos foram escolhidas.
Os três critérios devem ser atendidos para que a amostra seja selecionada. Estes
critérios de aceitação foram criados com o objetivo realizar uma normalização de dos nomes
das famílias considerando a diversidade de nomenclatura entre as soluções de antivírus. Na
Tabela 19 tem-se o nome a amostra V irusShare_a1d06041214f 7df 6ddb61010153470dd,
para diversas soluções de antivírus obtidas a partir dos resultados do Virustotal de 27 de
abril de 2011.
Tabela 19 – Resultado Parcial do VirusTotal para o Artefato
V irusShare_a1d06041214f 7df 6ddb61010153470dd
Antivírus Nomenclatura
Microsoft Backdoor:Win32/Bifrose.AE
VIPRE Trojan.Win32.Agent.Betq
BitDefender Backdoor.Bifrose.ZXE
McAfee MultiDropper-SP
Symantec Backdoor.Bifrose
Panda Bck/Bifrost.gen
AVG Dropper.Generic3.BICI
TrendMicro-HouseCall null
Classe Família
1 Backdoor:Win32/Bifrose
2 Trojan:Win32/Vundo
3 Exploit:Win32/CplLnk.A
4 VirTool:Win32/Obfuscator
5 Worm:Win32/Citeary
6 Backdoor:Win32/Cycbot
7 BrowserModifier:Win32/Zwangi
8 Rogue:Win32/Winwebsec
9 Trojan:Win32/Koutodoor
10 PWS:Win32/OnLineGames
11 Backdoor:Win32/Ripin
12 Backdoor:Win32/Rbot
13 Backdoor:Win32/Hupigon
14 TrojanDownloader:Win32/Troxen
15 Worm:Win32/Hybris
16 TBrowserModifier:Win32/Istbar
17 Trojan:Win32/Startpage
try:
pe = pefile.PE(filename)
print("{:s}\t {:d}".format(name,checkSections(pe)))
except pefile.PEFormatError as e:
print("{:s}\t ERROR {:s}".format(name,e.value))
A.3 Discussão
Como diferentes antivírus caracterizam malware com diferentes abordagens, os
rótulos dos artefatos são inconsistentes entre as diversas soluções(135). A solução aqui
apresentada para realizar a rotulagem da base de dados VirusShareSantresume-se a aplicar
critérios de aceitação mínimos(Seção A.2.1) que, ao menos, consideram mais de uma solução
de antivírus. O resultado são rótulos considerados adequados para o desenvolvimento desta
tese.
No entanto, uma abordagem recente, denominadas AVClass(141) e AvClass2 (145),
propõem que um sistema especialista realize a tarefa de rotulagem de base de dados de
artefatos maliciosos de forma automática, utilizando o conhecimento pré-programado de um
especialista na área. A primeira versão, AvClass, obteve uma acurácia de agrupamento entre
93,9% e 62,3% dependendo do conjunto de dados utilizado e ela foi capaz de rotular 81%
das amostras de conjuntos de dados baseados na saída json quando o artefato é submetido
ao Virus Total. A segunda versão, AvClass2, caracteriza os artefatos maliciosos por meio
do uso de marcações (tags) baseado em padrões como Malware Attribute Enumeration and
Characterization (MAEC)(150) e Malware Information Sharing Platform (MISP)(151). O
resultado é uma ferramenta especialista capaz de rotular 98% de uma base de dados.
184
A Figura 100 apresenta uma visão geral da V GG16. Ela possui uma etapa de extra-
ção de atributos composta por 5 blocos seguido por uma etapa de classificação composta
por 3 camadas de redes completamente conectadas. A Figura 101 apresenta esta arquitetura
com mais informações sobre os hiperparâmetros. Em todas etapas convolucionais, os filtros
têm tamanho 3 × 3, strides igual a 1 e padding igual a same, ou seja, um valor de padding
de forma que o tamanho da largura e altura de saída seja igual ao da entrada. As camadas
APÊNDICE B. Arquiteturas de CNN utilizadas 187
1. big: Versão que inclui toda arquitetura original com todos os pesos congelados.
Adicionou-se 7 camadas completamente conectadas ao final com 1024, 1024, 512,
256, 128, 64 e 9 neurônios respectivamente.
C.1 Motivação
Durante o redimensionamento da imagem original (representação do artefato
malicioso) para um tamanho fixo de entrada do algoritmo de aprendizado profundo.
Durante o processo de upsampling (interpolação) a função resize da biblioteca skimage
oferece diversas alternativas, de acordo com o valor da variável order passada como
parâmetro: 0 - Nearest-neighbor, 1 - Bilinear, 2 - Biquadratic, 3 - Bicubic, 4 - Biquartic e 5
- Biquintic. Por padrão, a função resize utiliza o método Bilinear.
A Figura 105 apresenta uma visão para 1 dimensão e 2 dimensões dos métodos
Nearest-neighbor, Bilineare Bicubic. O ponto a ser calculado está na cor preta.
Desta forma, pode-se concluir que a variável order passada como parâmetro da
APÊNDICE C. Efeitos do Resize na distorção da Representação 192
Para fins de realizar uma avaliação objetiva de cada método, calculou-se o erro
quadrático médio entre a imagem gerada pela interpolação e a imagem original. Os
resultados estão apresentados na Tabela 28. Uma melhor reconstrução da imagem original
é obtida quanto menor o erro quadrático médio.
Tabela 28 – Erro médio quadrático entre imagem original e imagem com interpolação.
Algoritmo Erro médio Quadrático
Nearest-neighbor 0.004949
Bilinear 0.004117
. Biquadratic 0.003380
Bicubic 0.003514
Biquartic 0.003297
Biquintic 0.003283
Figura 107 – Visão geral do processo de obtenção do mapa de calor por meio do Grad-Cam
para artefatos maliciosos.
Tabela 29 – Quantidade de amostras de cada família com tamanho superior a 224 × 224
bytes.
Família do Artefato Qtd>224 × 224 Qtd Total Porcentagem
Backdoor:Win32/Bifrose 1.974 2.291 86,16%
Trojan:Win32/Vundo 6.413 6.794 94,39%
Backdoor:Win32/Cycbot 3.622 3.622 100,00%
BrowserModifier:Win32/Zwangi 669 920 72,72%
.
Rogue:Win32/Winwebsec 4.617 4.624 99,85%
Trojan:Win32/Koutodoor 4.055 5.605 72,35%
Backdoor:Win32/Rbot 1.077 1.170 92,05%
Backdoor:Win32/Hupigon 1.918 1.943 98,71%
Trojan:Win32/Startpage 1.357 1.648 82,34%
3214 22
, com f1-score de 18,01% e 18,93% respectivamente. Este resultado é superior
175 23
ao obtido na abordagem tradicional.
(B) Estudo de Caso 4: Amostra da família BrowserModifier:Win32/Zwangi
A amostra escolhida foi a amostra VirusShare_e70017930479d88b1747e3df6e99be25 da
família BrowserModifier:Win32/Zwangi.
A Figura 109 apresenta o mapa de calor e seções do arquivo para (a) representação
tradicional e (b) representação proposta. O cabeçalho não está aparecendo mas ele ocupa
os primeiros 1024 bytes de ambas as imagens. O redimensionamento do mapa de calor foi
realizado utilizando o algoritmo de Biquintic.
respectivamente.
Para a abordagem proposta, foram encontrados 43 picos e, portanto, foram pro-
duzidas 39 assinaturas de tamanho
8 bytes.
As melhores
matrizes de confusão foram
3322 2 3324 0
obtidas nestas 39 assinaturas: , , com f1-score de 57,32% e 58,06%
65 45 65 45
respectivamente.
Bilinear Biquintic
1 f1-score 2o f1-score
o
1 f1-score 2o f1-score
o
D.1 Motivação
Os bytes de um binário se encontram entre os valores 0 e 255. No entanto, conforme
a seção que um determinado valor se encontre, o seu significado é bastante distinto.
Como cada artefato da base de dados VirusShareSant é disponibilizado na íntegra, é
possível extrair os bytes de cada uma de suas seções A biblioteca do Python PEFile foi
utilizada para este fim. Assim, neste apêndice será proposta uma arquitetura de redes
neurais convolucionais para cada tipo de seção do binário executável: cabeçalho, executável
e dados. Ao final, uma votação majoritária selecionando-se a melhor combinação de
classificadores para cada tipo de seção, ou seja, 3 classificadores.
chimento com zeros até se obter o tamanho 150.528 e, caso necessário, descarta-se os bytes
excedentes. Uma imagem com 3 canais de tamanho 224 × 224 era gerada.
arquiteturas da proposta P0 desta tese, mas deve-se considerar que somente estão sendo
utilizadas informações das seções de dados.
D.4 Conclusão
A conclusão que pode-se tirar do experimento anterior está apresentada a seguir:
1. A arquitetura para cabeçalho que utiliza apenas 1.024 bytes do binário obteve,
sozinha, um valor de acurácia superior a quase todas as outras arquiteturas isoladas.
Deve-se aprofundar neste tipo de abordagem quando o objetivo é desempenho;
3. O comitê aqui proposto é bastante simples pois não explora a relação entre as
seções que possam existir. Uma outra alternativa é criar 3 arquiteturas SOMENTE
APÊNDICE D. Proposta para problema de Variação Semântica 202
convolucionais onde a entrada de dados de cada uma são os bytes de cada tipo de
seção. Então, uma camada ÚNICA completamente realiza o processamento de cada
uma das saídas das camadas convolucionais (atributos aprendidos).
203
em uma variável, há uma diminuição negativa em outra proporção fixa. A relação entre a
diminuição da quantidade de gás em um tanque de gás, e a velocidade do gás. Finalmente,
quando um coeficiente de correlação é 0 para cada aumento, significa que não há aumento
positivo ou negativo e as duas variáveis não estão relacionadas.
A Figura 110 apresenta um quadro geral da proposta. O sistema que produz o
erro_k é composto pela fase de redimensionamento e modelo treinado. Considerando um
cenário onde cada pixel k é independente dos pixels adjacentes, o que se deseja conhecer é
qual o valor do coeficiente de Pearson para as variáveis valor de um pixel k e erro_k. Ou
seja, há alguma relação entre o valor do pixel k e o erro_k.
Figura 110 – A Figura ilustra uma visão geral do processo de obtenção da feature impor-
tance em análise de malware.
F.1 Introdução
Os pacotes selecionados para desenvolver a base de dados VirusShareSant e suas
respectivas datas são: VirusShare_00015 (2012-10-20), VirusShare_00021 (2012-11-20),
VirusShare_00023 (2012-11-30), VirusShare_00024 (2012-12-06), VirusShare_00026 (2012-
12-22), VirusShare_00047 (2013-03-25) e VirusShare_00094 (2013-09-08). Ou seja, os
artefatos da base VirusShareSant contém amostras de 2012-10-20 a 2013-09-08.
Para avaliar o efeito do concept drifting, é preciso gerar uma base contendo amostras
das mesmas famílias que a base VirusShareSant e que seja mais recente. Assim, selecionou-
se os pacotes VirusShare_00095, VirusShare_00096, VirusShare_00097, VirusShare_00098
e VirusShare_00099. As datas de criação destes arquivos são, respectivamente, 2013-09-09,
2013-09-10, 2013-09-12, 2013-09-17 e 2013-09-18, ou seja, todos artefatos são de 2013.
A forma de rotular esta base foi a mesma utilizada para a base VirusShareSante está
descrita no Apêndice A. Assim, a Tabela 36 mostra um quadro resumo da base resultante
apresentando a quantidade de amostras por família e por pacote do VirusShare. O número
total de amostras desta nova base é de 19.090 amostras, ou seja, a mesma ordem de
grandeza do conjunto de treinamento da base VirusShareSant. A base resultante será
denominada VSS Concept Drifting.
F.3 Conclusão
Assim, a base VSS Concept Drifting pode servir como ponto de partida para
desenvolver arquiteturas ou soluções que considerem o efeito do concept drifting nos
artefatos maliciosos. A falta de base de dados pode ser o motivo pelo qual não foram
encontrados trabalhos que utilizam aprendizado de máquina em classificação ou detecção
de malware e que considerem o efeito do cncept drifting em artefatos maliciosos.
207
ANEXO A – FORMATO PE