Você está na página 1de 54

Data Sciente aplicado à

Segurança da Informação

Aula 01

Ricardo Sant’Ana – PhD


ricksant2003@gmail.com
Agenda

1 Introdução

2 Motivacional

3 Análise de Malware Automatizada

4 Aprendizado de Máquina - Rótulos

5 Conclusão
Agenda

1 Introdução

2 Motivacional

3 Análise de Malware Automatizada

4 Aprendizado de Máquina - Rótulos

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/

•Joshua Saxe is Chief Scientist at Sophos. He leads


the data science team with a particular focus on
inventing, evaluating and deploying deep learning
detection models in support of a next-gen endpoint
security solutions.
Introdução


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

3 Análise de Malware Automatizada

4 Aprendizado de Máquina - Rótulos

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

3 Análise de Malware Automatizada

4 Aprendizado de Máquina - Rótulos

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.

– Melhores sistemas envolvem o uso de ambas as técnicas → de


forma automatizada.
– Extração de features de análise dinâmica e estática pode mser
utilizadas para alimentar um algoritmo de aprendizado de
máquina.
Agenda

1 Introdução

2 Motivacional

3 Análise de Malware Automatizada

4 Aprendizado de Máquina - Rótulos

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

– 3251 amostras no total

Total de amostras

Treinamento Teste

2600 amostras 651 amostras


Aprendizado de Máquina - Rótulos


Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total

Treinamento Teste

2600 amostras 651 amostras

Treinamento Validação

2081 amostras 519 amostras


Aprendizado de Máquina - Rótulos


Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total

Treinamento Teste

2600 amostras 651 amostras

Treinamento Validação Teste

2081 amostras 519 amostras 651 amostras


Aprendizado de Máquina - Rótulos


Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total

Treinamento Teste

2600 amostras 651 amostras

Treinamento Validação Teste

2081 amostras 519 amostras 651 amostras

Treinamento e avaliação do modelo


Aprendizado de Máquina - Rótulos


Atividade 07 – Treinamento, Validação e Teste
– 3251 amostras no total

Treinamento Teste

2600 amostras 651 amostras

Treinamento Validação Teste

2081 amostras 519 amostras 651 amostras

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

3 Análise de Malware Automatizada

4 Aprendizado de Máquina - Rótulos

5 Conclusão
Conclusão


O que tivemos hoje ?

O que teremos na próxima aula ?
Obrigado!!!

Você também pode gostar