Análise de Malware
Uma visão geral
Introdução
• Uso crescente da Internet
▫ Redes sociais, Internet Banking, eCommerce, etc
Introdução
• Uso crescente da Internet
▫ Redes sociais, Internet Banking, eCommerce, etc
• Usuários mal intencionados
▫ Dinheiro
▫ Reputação
Introdução
• Uso crescente da Internet
▫ Redes sociais, Internet Banking, eCommerce, etc
• Usuários mal intencionados
▫ Dinheiro
▫ Reputação
• Malware
▫ “Os malwares são a próxima bomba nuclear”
[Kaspersky]
Introdução
• Malware no Linux
▫ Winter, Winux/Lindose, Diesel, Coin, Mighty,
Adore, Slapper, Kork, Millen, etc
Introdução
• Malware no Linux
▫ Winter, Winux/Lindose, Diesel, Coin, Mighty,
Adore, Slapper, Kork, Millen, etc
• Malware em Android
▫ Crescimento de 472% em 2011
Introdução
• Malware no Linux
▫ Winter, Winux/Lindose, Diesel, Coin, Mighty,
Adore, Slapper, Kork, Millen, etc
• Malware em Android
▫ Crescimento de 472% em 2011
• 2008: 1.6M de amostras
▫ É necessário um meio eficiente de identificação
Introdução
• Ferramentas de proteção
▫ Baseadas em assinaturas e heurísticas
 Base de dados de assinaturas
 Padrão de comportamento
Introdução
• Ferramentas de proteção
▫ Baseadas em assinaturas e heurísticas
 Base de dados de assinaturas
 Padrão de comportamento
▫ Assinaturas genéricas
 Identificar variações
 Não gerar falso-positivos
O que é “Malware”?
• “Software that deliberately fulfills the harmful
intent of an attacker” [Moser]
O que é “Malware”?
• “Software that deliberately fulfills the harmful
intent of an attacker” [Moser]
• Vírus, os pioneiros
▫ Vulnerabilidades de segurança
▫ Habilidade técnica
O que é “Malware”?
• “Software that deliberately fulfills the harmful
intent of an attacker” [Moser]
• Vírus, os pioneiros
▫ Vulnerabilidades de segurança
▫ Habilidade técnica
• Enorme cadeia econômica
Tipos de malware
• Worm
▫ “a program that can run independently and can
propagate a fully working version of itself to other
machines” [Spafford]
Tipos de malware
• Vírus
▫ “A virus is a piece of code that adds itself to other
programs, including operating systems. It cannot
run independently” [Spafford]
Tipos de malware
• Spyware
▫ Software que coleta informações sensíveis da
vítima e envia para o atacante
Tipos de malware
• Trojan horse
▫ Tenta se passar por um software útil – ou não
malicioso – mas executa atividades maliciosas em
segundo plano
Tipos de malware
• Bot
▫ Um bot é um malware que permite que seu
controlador (bot master) opere remotamente o
sistema comprometido.
Tipos de malware
• Rootkit
▫ A principal característica é a habilidade de
esconder certas informações do usuário, como sua
presença
Vetores de infecção
• Explorando vulnerabilidade em serviços de rede
▫ Infectam através de vulnerabilidades em serviços
de rede, como compartilhamento de arquivos
Vetores de infecção
• Explorando vulnerabilidade em serviços de rede
▫ Infectam através de vulnerabilidades em serviços
de rede, como compartilhamento de arquivos
• Orientados a download
▫ Ataca vulnerabilidades no browser da vítima,
baixando código malicioso sem seu conhecimento
Vetores de infecção
• Explorando vulnerabilidade em serviços de rede
▫ Infectam através de vulnerabilidades em serviços
de rede, como compartilhamento de arquivos
• Orientados a download
▫ Ataca vulnerabilidades no browser da vítima,
baixando código malicioso sem seu conhecimento
• Engenharia social
▫ Convence o usuário a executar o código malicioso
Análise de malware
• Obter informações para identificar e tratar uma
infecção
Análise de malware
• Obter informações para identificar e tratar uma
infecção
• Responder a um incidente de segurança
envolvendo malware
Análise de malware
• Obter informações para identificar e tratar uma
infecção
• Responder a um incidente de segurança
envolvendo malware
• Determinar o que um programa suspeito faz de
fato
Análise de malware
• Obter informações para identificar e tratar uma
infecção
• Responder a um incidente de segurança
envolvendo malware
• Determinar o que um programa suspeito faz de
fato
• Gerar informações para ferramentas
automatizadas
Análise de malware
• Análise estática
▫ Sem execução do código
•
▫
Técnicas de análise de malware
• Análise estática básica
▫ Determinar se o software é malicioso
▫ Informações sobre seu funcionamento
▫ Informações para gerar assinaturas simples
Técnicas de análise de malware
• Análise estática básica
▫ Determinar se o software é malicioso
▫ Informações sobre seu funcionamento
▫ Informações para gerar assinaturas simples
▫ Simples e rápida
▫ Ineficiente contra malwares avançados
Técnicas de análise de malware
• Análise estática básica
▫ Execução contra antivírus
▫ Hashing
▫ Strings
▫ Packers
▫ Formato do Arquivo (PE, ELF, COFF, etc)
▫ Bibliotecas e Funções
Técnicas de análise de malware
• Análise estática avançada
▫ Analisar software mais a fundo
▫ Entender melhor o que o software faz
▫ Entender interação com SO
Técnicas de análise de malware
• Análise estática avançada
▫ Analisar software mais a fundo
▫ Entender melhor o que o software faz
▫ Entender interação com SO
▫ Curva de aprendizado mais longa
▫ Requer conhecimento especializado
 Assembly
 SO
Técnicas de análise de malware
• Análise estática avançada
▫ Análise do código-fonte
▫ Fluxo de execução
▫ Inferência de parâmetros
▫ Strings
▫ Engenharia reversa
▫ Análise de código assembly
Técnicas de análise de malware
• Problemas da análise estática
▫ Código-fonte indisponível
▫ Análise estática do binário é difícil
▫ Uso de packers/obfuscação
▫ Código auto-gerado
▫ Dependência de valores e estados em tempo de
execução
Análise de malware
•
▫
• Análise dinâmica
▫ Com execução do código
Técnicas de análise de malware
• Análise dinâmica básica
▫ Executar o software
▫ Observar seu comportamento
▫ Remoção do sistema
▫ Assinaturas simples
Técnicas de análise de malware
• Análise dinâmica básica
▫ Acesso a registros e configurações
▫ Uso de rede
▫ Uso de disco
▫ Processos e threads
▫ Coleta de pacotes de rede
Técnicas de análise de malware
• Análise dinâmica avançada
▫ Análise avançada das ações do software
▫ Estudo aprofundado do comportamento
▫ Identificação de técnicas de evasão
Técnicas de análise de malware
• Análise dinâmica avançada
▫ Análise avançada das ações do software
▫ Estudo aprofundado do comportamento
▫ Identificação de técnicas de evasão
▫ Conhecimento avançado no SO alvo
▫ Expertise em linguagem assembly e debbuging na
arquitetura alvo
Técnicas de análise de malware
• Análise dinâmica avançada
▫ Debbuging
▫ Interação com o kernel
Técnicas de evasão
• Código auto-modificável e packers
• Detecção de ambientes de análise
• Bombas lógicas
Pesquisas recentes
• Geração automática de vacinas
• Análise de comportamento aleatório
• Similaridade de funções
• Usando aprendizado de máquina
Geração automática de vacinas
• Motivação: estudo sobre o Conficker
• Desenvolvimento de protótipo “AGAMI” para
gerar as vacinas automaticamente
• Gerou vacinas para malwares das famílias
Conficker e Zeus
• Simula a existência de recursos computacionais
• Previne a criação de tais recursos pelo malware
Comportamento aleatório
• Malware altera seu comportamento entre
execuções
▫ Evadir técnicas de detecção
• Software não-malicioso não precisa desse
comportamento
• Detecção baseada nas mudanças de
comportamento
• Lista de sequências de chamadas de sistema
Similaridade de funções
• Famílias de malware compartilham funções
similares
• Base de comparação criada a partir de malwares
conhecidos e já analisados
• Similaridade usando algoritmos de filtros
• Classificação das funções de acordo com as
características
WinAPI e Machine Learning
• Modelar sequência de chamadas a API usando
Cadeias de Markov
• Classificação baseada em mineração de
associações
• Número reduzido de regras, removendo
redundantes
• Processo de aprendizado interativo
Referências
Egele, M., Scholte, T., Kirda, E., Kruegel, C. 2012. A survey on Automated
Dynamic Malware-Analysis Techniques and Tools, ACM Computing
Surveys, Vol 44.
Hunt, R., Zeadally, S. 2012. Network Forensic - An Analysis of Techniques,
Tools, and Trends, IEEE.
Manoharan, R., Chandrasekar, R. 2012. Malware Detection using Windows
API Sequence and Machine Learning, International Journal of COmputer
Applications.
Zabidi, M., Maarof, M., Zainal, A. 2012. Malware Analysis With Multiple
Features. 14th International Conference on Modeling and Simulation.
Xu, Z., Gu, G., Zhang, J., Lin, Z. 2012. Automatic Generation of Vaccines for
Malware Immunization. ACM.
Kasama, T., Yoshioka, K., Inoue, D., Matsumoto, T. 2012. Malware Detection
Method by Catching Their Random Behavior in Multiple Executions, IEEE
12th International Symposium on Applications and the Internet.
Zhong, Y., Yamaki, H., Takakura, H. 2012. A malware Classification Method
based on Similarity of Functions Structure. IEEE 12th International
Symposium on Applications and the Internet.

Analise de Malware e Pesquisas Recentes

  • 1.
  • 2.
    Introdução • Uso crescenteda Internet ▫ Redes sociais, Internet Banking, eCommerce, etc
  • 3.
    Introdução • Uso crescenteda Internet ▫ Redes sociais, Internet Banking, eCommerce, etc • Usuários mal intencionados ▫ Dinheiro ▫ Reputação
  • 4.
    Introdução • Uso crescenteda Internet ▫ Redes sociais, Internet Banking, eCommerce, etc • Usuários mal intencionados ▫ Dinheiro ▫ Reputação • Malware ▫ “Os malwares são a próxima bomba nuclear” [Kaspersky]
  • 5.
    Introdução • Malware noLinux ▫ Winter, Winux/Lindose, Diesel, Coin, Mighty, Adore, Slapper, Kork, Millen, etc
  • 6.
    Introdução • Malware noLinux ▫ Winter, Winux/Lindose, Diesel, Coin, Mighty, Adore, Slapper, Kork, Millen, etc • Malware em Android ▫ Crescimento de 472% em 2011
  • 7.
    Introdução • Malware noLinux ▫ Winter, Winux/Lindose, Diesel, Coin, Mighty, Adore, Slapper, Kork, Millen, etc • Malware em Android ▫ Crescimento de 472% em 2011 • 2008: 1.6M de amostras ▫ É necessário um meio eficiente de identificação
  • 8.
    Introdução • Ferramentas deproteção ▫ Baseadas em assinaturas e heurísticas  Base de dados de assinaturas  Padrão de comportamento
  • 9.
    Introdução • Ferramentas deproteção ▫ Baseadas em assinaturas e heurísticas  Base de dados de assinaturas  Padrão de comportamento ▫ Assinaturas genéricas  Identificar variações  Não gerar falso-positivos
  • 10.
    O que é“Malware”? • “Software that deliberately fulfills the harmful intent of an attacker” [Moser]
  • 11.
    O que é“Malware”? • “Software that deliberately fulfills the harmful intent of an attacker” [Moser] • Vírus, os pioneiros ▫ Vulnerabilidades de segurança ▫ Habilidade técnica
  • 12.
    O que é“Malware”? • “Software that deliberately fulfills the harmful intent of an attacker” [Moser] • Vírus, os pioneiros ▫ Vulnerabilidades de segurança ▫ Habilidade técnica • Enorme cadeia econômica
  • 13.
    Tipos de malware •Worm ▫ “a program that can run independently and can propagate a fully working version of itself to other machines” [Spafford]
  • 14.
    Tipos de malware •Vírus ▫ “A virus is a piece of code that adds itself to other programs, including operating systems. It cannot run independently” [Spafford]
  • 15.
    Tipos de malware •Spyware ▫ Software que coleta informações sensíveis da vítima e envia para o atacante
  • 16.
    Tipos de malware •Trojan horse ▫ Tenta se passar por um software útil – ou não malicioso – mas executa atividades maliciosas em segundo plano
  • 17.
    Tipos de malware •Bot ▫ Um bot é um malware que permite que seu controlador (bot master) opere remotamente o sistema comprometido.
  • 18.
    Tipos de malware •Rootkit ▫ A principal característica é a habilidade de esconder certas informações do usuário, como sua presença
  • 19.
    Vetores de infecção •Explorando vulnerabilidade em serviços de rede ▫ Infectam através de vulnerabilidades em serviços de rede, como compartilhamento de arquivos
  • 20.
    Vetores de infecção •Explorando vulnerabilidade em serviços de rede ▫ Infectam através de vulnerabilidades em serviços de rede, como compartilhamento de arquivos • Orientados a download ▫ Ataca vulnerabilidades no browser da vítima, baixando código malicioso sem seu conhecimento
  • 21.
    Vetores de infecção •Explorando vulnerabilidade em serviços de rede ▫ Infectam através de vulnerabilidades em serviços de rede, como compartilhamento de arquivos • Orientados a download ▫ Ataca vulnerabilidades no browser da vítima, baixando código malicioso sem seu conhecimento • Engenharia social ▫ Convence o usuário a executar o código malicioso
  • 22.
    Análise de malware •Obter informações para identificar e tratar uma infecção
  • 23.
    Análise de malware •Obter informações para identificar e tratar uma infecção • Responder a um incidente de segurança envolvendo malware
  • 24.
    Análise de malware •Obter informações para identificar e tratar uma infecção • Responder a um incidente de segurança envolvendo malware • Determinar o que um programa suspeito faz de fato
  • 25.
    Análise de malware •Obter informações para identificar e tratar uma infecção • Responder a um incidente de segurança envolvendo malware • Determinar o que um programa suspeito faz de fato • Gerar informações para ferramentas automatizadas
  • 26.
    Análise de malware •Análise estática ▫ Sem execução do código • ▫
  • 27.
    Técnicas de análisede malware • Análise estática básica ▫ Determinar se o software é malicioso ▫ Informações sobre seu funcionamento ▫ Informações para gerar assinaturas simples
  • 28.
    Técnicas de análisede malware • Análise estática básica ▫ Determinar se o software é malicioso ▫ Informações sobre seu funcionamento ▫ Informações para gerar assinaturas simples ▫ Simples e rápida ▫ Ineficiente contra malwares avançados
  • 29.
    Técnicas de análisede malware • Análise estática básica ▫ Execução contra antivírus ▫ Hashing ▫ Strings ▫ Packers ▫ Formato do Arquivo (PE, ELF, COFF, etc) ▫ Bibliotecas e Funções
  • 30.
    Técnicas de análisede malware • Análise estática avançada ▫ Analisar software mais a fundo ▫ Entender melhor o que o software faz ▫ Entender interação com SO
  • 31.
    Técnicas de análisede malware • Análise estática avançada ▫ Analisar software mais a fundo ▫ Entender melhor o que o software faz ▫ Entender interação com SO ▫ Curva de aprendizado mais longa ▫ Requer conhecimento especializado  Assembly  SO
  • 32.
    Técnicas de análisede malware • Análise estática avançada ▫ Análise do código-fonte ▫ Fluxo de execução ▫ Inferência de parâmetros ▫ Strings ▫ Engenharia reversa ▫ Análise de código assembly
  • 33.
    Técnicas de análisede malware • Problemas da análise estática ▫ Código-fonte indisponível ▫ Análise estática do binário é difícil ▫ Uso de packers/obfuscação ▫ Código auto-gerado ▫ Dependência de valores e estados em tempo de execução
  • 34.
    Análise de malware • ▫ •Análise dinâmica ▫ Com execução do código
  • 35.
    Técnicas de análisede malware • Análise dinâmica básica ▫ Executar o software ▫ Observar seu comportamento ▫ Remoção do sistema ▫ Assinaturas simples
  • 36.
    Técnicas de análisede malware • Análise dinâmica básica ▫ Acesso a registros e configurações ▫ Uso de rede ▫ Uso de disco ▫ Processos e threads ▫ Coleta de pacotes de rede
  • 37.
    Técnicas de análisede malware • Análise dinâmica avançada ▫ Análise avançada das ações do software ▫ Estudo aprofundado do comportamento ▫ Identificação de técnicas de evasão
  • 38.
    Técnicas de análisede malware • Análise dinâmica avançada ▫ Análise avançada das ações do software ▫ Estudo aprofundado do comportamento ▫ Identificação de técnicas de evasão ▫ Conhecimento avançado no SO alvo ▫ Expertise em linguagem assembly e debbuging na arquitetura alvo
  • 39.
    Técnicas de análisede malware • Análise dinâmica avançada ▫ Debbuging ▫ Interação com o kernel
  • 40.
    Técnicas de evasão •Código auto-modificável e packers • Detecção de ambientes de análise • Bombas lógicas
  • 41.
    Pesquisas recentes • Geraçãoautomática de vacinas • Análise de comportamento aleatório • Similaridade de funções • Usando aprendizado de máquina
  • 42.
    Geração automática devacinas • Motivação: estudo sobre o Conficker • Desenvolvimento de protótipo “AGAMI” para gerar as vacinas automaticamente • Gerou vacinas para malwares das famílias Conficker e Zeus • Simula a existência de recursos computacionais • Previne a criação de tais recursos pelo malware
  • 43.
    Comportamento aleatório • Malwarealtera seu comportamento entre execuções ▫ Evadir técnicas de detecção • Software não-malicioso não precisa desse comportamento • Detecção baseada nas mudanças de comportamento • Lista de sequências de chamadas de sistema
  • 44.
    Similaridade de funções •Famílias de malware compartilham funções similares • Base de comparação criada a partir de malwares conhecidos e já analisados • Similaridade usando algoritmos de filtros • Classificação das funções de acordo com as características
  • 45.
    WinAPI e MachineLearning • Modelar sequência de chamadas a API usando Cadeias de Markov • Classificação baseada em mineração de associações • Número reduzido de regras, removendo redundantes • Processo de aprendizado interativo
  • 46.
    Referências Egele, M., Scholte,T., Kirda, E., Kruegel, C. 2012. A survey on Automated Dynamic Malware-Analysis Techniques and Tools, ACM Computing Surveys, Vol 44. Hunt, R., Zeadally, S. 2012. Network Forensic - An Analysis of Techniques, Tools, and Trends, IEEE. Manoharan, R., Chandrasekar, R. 2012. Malware Detection using Windows API Sequence and Machine Learning, International Journal of COmputer Applications. Zabidi, M., Maarof, M., Zainal, A. 2012. Malware Analysis With Multiple Features. 14th International Conference on Modeling and Simulation. Xu, Z., Gu, G., Zhang, J., Lin, Z. 2012. Automatic Generation of Vaccines for Malware Immunization. ACM. Kasama, T., Yoshioka, K., Inoue, D., Matsumoto, T. 2012. Malware Detection Method by Catching Their Random Behavior in Multiple Executions, IEEE 12th International Symposium on Applications and the Internet. Zhong, Y., Yamaki, H., Takakura, H. 2012. A malware Classification Method based on Similarity of Functions Structure. IEEE 12th International Symposium on Applications and the Internet.