Escolar Documentos
Profissional Documentos
Cultura Documentos
Segurança da Informação
Aula 01
1 Introdução
2 Motivacional
5 Conclusão
Agenda
1 Introdução
2 Motivacional
5 Conclusão
Introdução
Livros utilizados na Disciplina
Malware Data Science: Attack Detection and
Attribution Paperback
Setembro, 2018
Autores: Joshua Saxe, Hillary Sanders
•Material do Livro:
•https://www.malwaredatascience.com/
Livros utilizados na Disciplina
Machine Learning for Cybersecurity
Cookbook: Over 80 recipes on how to
implement machine learning algorithms for
building security systems using Python
Novembro, 2019
Autores: Emmanuel Tsukerman
Material do Livro:
https://github.com/PacktPublishing/Machine-
Learning-for-Cybersecurity-Cookbook
Introdução
Livros utilizados na Disciplina
Machine Learning and Security: Protecting
Systems with Data and Algorithms
Janeiro, 2018
Autores: Clarence Chio e David Freeman
Material do Livro:
https://github.com/oreilly-mlsec/book-resources/
Introdução
Materiais utilizados na Disciplina
Malware Analysis Using Artificial Intelligence
and Deep Learning
Fevereiro, 2021
Mark Stamp (Editor), Mamoun Alazab
(Editor), Andrii Shalaginov (Editor)
Introdução
Materiais utilizados na Disciplina
Malware Analysis and Detection
Engineering: A Comprehensive Approach to
Detect and Analyze Modern Malware
Outubro, 2020
Abhijit Mohanta, Anoop Saldanha
•Material do Livro
•https://github.com/Apress/malware-analysis-
detection-engineering
Introdução
Materiais utilizados na Disciplina
Introduction to Machine Learning with
Applications in Information Security
Junho, 2020
Mark Stamp
•Material do Livro
•http://www.cs.sjsu.edu/~stamp/ML/
Introdução
Materiais utilizados na Disciplina
Automated Program Analysis using Machine
Learning
Fev, 2021
Hahna Kane Latonick
•https://ringzer0.training/2021-august/automated-program-analysis-ml.html
Introdução
O que é Data Science?
Segurança da
Informação
http://www.bengballard.com/uncategorized/data-science/
Introdução
Data Sciente aplicado à Análise de Malware
http://www.bengballard.com/uncategorized/data-science/
Introdução
O que é Data Science?
– Computer Science
• Aplicação de conhecimento da área de ciência da computação.
Por exemplo, ferramentas para processar grande volume de dados
(Hadoop, Spark, Flink).
– Expertise no Domínio de Conhecimento
• Conhecimento do assunto abordado. No nosso caso, análise de
malware.
– O que diferencia um malware de outro ? Características dos
malware? Análise estática e dinâmica. Entropia.
– Matemática
– Tópicos de interesse
– Cálculo → derivada parcial e regra da cadeia
– Probabilidade e Estatística
– Álgebra (vetor, matriz, produto escalar)
Introdução
O que é Data Science?
– Analisar Dados
• Entender padrões nos dados e fazer decisões. Implementar
soluções que buscam padrões com objetivo de
classificação, predição e/ou clusterização.
• Portanto envolve matemática, ciência da computação e
domínio.
Introdução
Ambiente
– Anaconda → jupyter notebook
https://repo.anaconda.com/archive/
Introdução
Ambiente → SANDBOX
– Anaconda e Arquivos com Artefatos Maliciosos em uma
VM
Agenda
1 Introdução
2 Motivacional
5 Conclusão
Motivacional
Data Science e Segurança:
– Quantidade de Amostras de Artefatos Maliciosos (Malware) aumentou
drasticamente
• 3.670.231 novos malware nos últimos 14 dias (24/jan/22).
https://www.av-test.org/en/statistics/malware/
Motivacional
Data Science e Segurança:
– Como são criadas as assinaturas (signature) dos malware
Ye, Yanfang, et al. "A survey on malware detection using data mining techniques.”
ACM Computing Surveys (CSUR) 50.3 (2017): 1-40.
Motivacional
Aplicações de Aprendizado de Máquina em Segurança
– Identificação de Ciber-ameaças
– Antivirus baseado em Aprendizado de Máquina
– Modelagem de comportamento de usuário
– Combate a ameaças com inteligência artificial
– Monitoração de email
Últimos 12 meses
https://www.geeksforgeeks.org/top-5-applications-of-machine-learning-in-cyber-security/
Motivacional
Risco Global: segunda vez que aparece Cybersecurity Failure →
primera em 2021!
https://www3.weforum.org/docs/WEF_The_Global_Risks_Report_2022.pdf
Motivacional
Especificamente para Data Science aplicado à área de Malware
– Algumas questões:
• A partir da análise de amostras coletadas em diversas
Organizações (amostra + metadados), é possível relacionar
os ataques a uma mesma origem ?
• A amostra coletada de uma perícia forense se parece com
alguma amostra do banco de dados de malware da
Organização ?
Agenda
1 Introdução
2 Motivacional
5 Conclusão
Análise de Malware Automatizada
Análise Estática
– Como não há a execução do artefato em ambiente
controlado, a Análise Estática é ideal para análise de uma
grande quantidade de artefatos maliciosos (de forma
automatizada)
– Dependendo do objetivo da análise → os atributos extraídos da
análise estática atendem à necessidade
… 75 F9 51 53
56 B8 A0 55 01
00 E8 68 D7 FF
FF 8B 1D C4 60
01 00 33 C0 55
68 6D 5B 01 00
...
Análise de Malware Automatizada
Análise Estática – PE File
– Seções típicas em um arquivo executável de Windows:
Análise de Malware Automatizada
Atividade 01 - Análise Estática – PE File
– Utilizando a biblioteca pefile do python
• Acesso o jupyter notebook pelo host (*)
• Acesse a pasta source
• Abra o notebook: 01 - Introdução ao Módulo pefile.ipynb
– Como ler um arquivo executável
– Apresentando campos do HEADER
– Apresentando informações sobre as seções
– Recuperando as DLLs utilizadas
– Recuperando as APIs utilizadas
– Recuperando o endereço de cada API
– Alterando o nome de uma seção
https://github.com/erocarrera/pefile
Análise de Malware Automatizada
Atividade 02 - Análise Estática – Extração de API e
Codificação
– Utilizando a biblioteca pefile do python
• Acesso o jupyter notebook pelo host (*)
• Acesse a pasta source
• Abra o notebook: 01 - Extração API e Codificação.ipynb
– Lista de executáveis
– Utilizar pefile para extrair APIs de cada executável
» Adicionar a um set
– Converter set → numpy
– Utilizar LabelEncoder do sklearn para codificar
https://github.com/erocarrera/pefile
Análise de Malware Automatizada
Atividade 03 – Extraindo opcodes
– Uso da biblioteca capstone → disassembly
• Acesso o jupyter notebook pelo host (*)
• Acesse a pasta source
• Abra o notebook: 01 – Opcodes.ipynb
– Analise o código de extração dos opcodes (sem
operandos)
Análise de Malware Automatizada
Alternativa interessante para disassembler
– Amoco: https://github.com/bdcht/amoco
– Capstone: https://github.com/aquynh/capstone
– Distorm3: https://github.com/gdabah/distorm
– Miasm: https://github.com/cea-sec/miasm
– Zydis: https://github.com/zyantific/zydis
– https://github.com/zyantific/zydis-py
Análise de Malware Automatizada
Atividade 04 – Contagem de Opcodes
– Acesso o jupyter notebook pelo host (*)
– Acesse a pasta source
– Abra o notebook: 01 – Opcodes Contagem.ipynb
• Realizar contagem de opcodes dos arquivos
– 7z.exe, notepad.exe, md5summer.exe
– Apenas dos primeiros 1000 bytes da seção executável
Análise de Malware Automatizada
Por que a contagem de opcodes é importante ?
– A Deep Learning Approach to the Malware Classification
Problem using Autoencoders
– Apresentado no Congresso da Sociedade Brasileira de
Computação
• http://csbc2019.sbc.org.br/
– Fruto de Dissertação de Mestrado no IME
– Visão Geral:
• Utilizando de TF-IDF + Autoencoder → classificação de
artefatos maliciosos em famílias.
• TF-IDF → é uma medida estatística que tem o intuito de
indicar a importância de uma palavra de um documento em
relação a uma coleção de documentos ou em um corpus
linguístico.
Análise de Malware Automatizada
Por que a contagem de opcodes é importante ?
– A Deep Learning Approach to the Malware Classification
Problem using Autoencoders
ni,j → contagem
Análise de Malware Automatizada
Por que a contagem de opcodes é importante ?
– A Deep Learning Approach to the Malware Classification
Problem using Autoencoders
ni,j → contagem
TF IDF
Análise de Malware Automatizada
Atividade 05 – Extração de Histogramas
– Acesso o jupyter notebook pelo host (*)
– Acesse a pasta source
– Abra o notebook: 01 - Histograma dos Hex.ipynb
• Calcula histograma e armazena em “seq”
– O código calcula o histograma dos códigos hex
possíveis (0-255) do binário 7z.exe
• Mostra seq em uma imagem
Análise de Malware Automatizada
Atividade 05 – Extração de Histogramas
– 01 - Histograma dos Hex.ipynb
Análise de Malware Automatizada
Análise Estática
VirusTotal → submissão de artefatos para verificação por
diversos Antivírus.
Análise de Malware Automatizada
Análise Estática
VirusTotal → submissão de artefatos para verificação por
diversos Antivírus.
O resultado é um json
{ "permalink" : "http://www.virustotal.com/file-scan/report.html?id=...",
"report" : [ "2011-04-29 15:06:32",
{ "AVG" : "Exploit_c.TVH",
"AhnLab-V3" : "PDF/Exploit",
"AntiVir" : "EXP/Pidief.UK",
"Antiy-AVL" : "Trojan/win32.agent",
…
"eTrust-Vet" : ""
}
],
}
Análise de Malware Automatizada
Análise Estática – PE File
– Fatores que limitam a análise estática
• Packing
• Ofuscação de recursos
• Técnicas anti-disassembly
• Downloader → código malicioso é baixado dinamicamente
• Definição features → depende de especialista
– Vantagens
• Rápida (não precisa da execução do artefato)
– Ideal para processamento inicial de grande quantidade
de amostras
Análise de Malware Automatizada
Análise Dinâmica
Principais Aspectos da Análise Dinâmica
– Cuckoo → saída é um json que pode ser codificado (para
números ou vetores).
• Versão 2.0.7 de 19 de junho de 2019.
– Processamento dos dados → fase IMPORTANTE
Useche-Peláez, David Esteban, et al. "Building malware classificators usable by State security agencies."
Iteckne 15.2 (2018): 107-121.
Análise de Malware Automatizada
Principais Aspectos da Análise Estática e Dinâmica
– Os resultados da análise dinâmica são mais demorados e
envolvem a criação de sandboxes seguras.
• Os resultados da análise estática tendem a ser mais
rápidas
– Os resultados da Análise Dinâmica complementam as
informações obtidas pela análise estática.
• Mas não garante que todo “código” malicioso foi executado.
1 Introdução
2 Motivacional
5 Conclusão
Aprendizado de Máquina - Rótulos
Temos 3.251 malware
– E como rotulá-los ?
Bem, inicialmente devemos saber qual problema
queremos resolver.
Para fins didáticos, vamos tentar diferenciar malware do
tipo “Win32” dos demais.
Análise de Malware Automatizada
Atividade 06 – Labeling
– Acesso o jupyter notebook pelo host (*)
– Acesse a pasta source
– Abra o notebook: Arquivo 01 – Labeling.ipynb
• Observe que o código calcula quantos são “Win32” e
quantos não são.
Aprendizado de Máquina - Rótulos
Atividade 06 - Labelling
– Observar resultado do dicionário. Gerar X, y
• 'Win32': 2602,
• 'Win9x': 540,
• 'Win16': 83,
• 'WinHLP': 7,
• 'WinREG': 7,
• 'Win64': 2,
• 'WinINF': 8,
• 'WinPIF': 1,
• 'WinCE': 1
– Total: 3251 amostras
Aprendizado de Máquina - Rótulos
Atividade 06 - Labelling
– Observar resultado do dicionário. Gerar X, y
• 'Win32': 2602,
• 'Win9x': 540,
• 'Win16': 83,
• 'WinHLP': 7,
• 'WinREG': 7,
• 'Win64': 2,
• 'WinINF': 8,
• 'WinPIF': 1,
• 'WinCE': 1
– Total: 3251 amostras
Aprendizado de Máquina - Rótulos
Atividade 07 – Treinamento, Validação e Teste
Total de amostras
Treinamento Teste
Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total
Treinamento Teste
Treinamento Validação
Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total
Treinamento Teste
Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total
Treinamento Teste
Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total
Treinamento Teste
Avaliação modelo em
produção
Análise de Malware Automatizada
Atividade 06 – Labeling
– Acesso o jupyter notebook pelo host (*)
– Acesse a pasta source
– Abra o notebook: Arquivo01 - Conjuntos Treinamento,
Validação e Teste
–
• Observe a separação de forma “estratificada” por y.
Agenda
1 Introdução
2 Motivacional
5 Conclusão
Conclusão
O que tivemos hoje ?
O que teremos na próxima aula ?
Obrigado!!!