39
DERYK SEDLAK RIBEIRO UM ESTUDO SOBRE DETECÇÃO E CLASSIFICAÇÃO DE PROCESSOS MALICIOSOS LONDRINA–PR 2017

DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

DERYK SEDLAK RIBEIRO

UM ESTUDO SOBRE DETECÇÃO E CLASSIFICAÇÃO DEPROCESSOS MALICIOSOS

LONDRINA–PR

2017

Page 2: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 3: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

DERYK SEDLAK RIBEIRO

UM ESTUDO SOBRE DETECÇÃO E CLASSIFICAÇÃO DEPROCESSOS MALICIOSOS

Versão Preliminar de Trabalho de Conclusãode Curso apresentado ao curso de Bachare-lado em Ciência da Computação da Univer-sidade Estadual de Londrina para obtençãodo título de Bacharel em Ciência da Compu-tação.

Orientador: Prof. Dr. Fábio Sakuray

LONDRINA–PR

2017

Page 4: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

Este trabalho é dedicado às minhas avós Vlasta e Genilde.

Page 5: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

AGRADECIMENTOS

Texto de agradecimento.

Page 6: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 7: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

Great men are not born great, they grow great.(Mario Puzo, The Godfather)

Page 8: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 9: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

RIBEIRO, D. S. Um estudo sobre detecção e classificação de processos malicio-sos. 37 p. Trabalho de Conclusão de Curso – Versão Preliminar (Bacharelado em Ciênciada Computação) – Universidade Estadual de Londrina, Londrina–PR, 2017.

RESUMO

Atualmente, com o grande aumento da utilização de sistemas computacionais, a preocu-pação com a segurança e integridade de dados digitais vem aumentando ano após ano.Diversas tecnologias têm sido empregadas visando ampliar o nível de segurança de umsistema computacional, uma vez que a grande maioria delas tem como principal objetivoo reconhecimento de programas e processos maliciosos. Programas maliciosos, tambémconhecidos como malwares, são programas projetados com o objetivo de causar danos emum sistema computacional. O propósito deste trabalho é apresentar um estudo detalhadosobre técnicas de classificação e detecção de um processo malicioso, visando identificar astécnicas mais eficientes e promissoras para tal ação.

Palavras-chave: Detecção de malwares. Detecção de código malicioso. Extração de ca-racterística. Sistemas Operacionais

Page 10: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 11: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

RIBEIRO, D. S. A survey on detection and classification of malicious process.37 p. Final Project – Draft Version (Bachelor of Science in Computer Science) – StateUniversity of Londrina, Londrina–PR, 2017.

ABSTRACT

Currently, with the great increase of the use of computer systems, the concern withthe security and integrity of digital data has been increasing year after year. Severaltechnologies have been used to increase the level of security of a computer system, a greatmajority of them as main objective or recognition of programs and malicious processes.Malicious programs, also known as malwares, are programs designed to cause damage to acomputer system. The purpose of this work is to provide a detailed survey on classificationand detection techniques of a malicious process, aiming to identify the most efficient andpromising techniques for such action.

Keywords: Malware detection. Detection of malicious code. Feature extraction. Opera-ting systems.

Page 12: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 13: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

LISTA DE ILUSTRAÇÕES

Figura 1 – Estrutura de um arquivo de execução ELF. Figura traduzida de [1]. . . 21Figura 2 – Estrutura de um arquivo PE. Figura traduzida e simplificada de [2]. . . 22Figura 3 – Chamadas de sistemas em ambientes baseados em Unix . . . . . . . . . 24Figura 4 – Chamadas de sistemas em ambientes Windows . . . . . . . . . . . . . . 25Figura 5 – Ilustração de um hiperplano de separação ótima. . . . . . . . . . . . . 27Figura 6 – Representação dos métodos de análise de malware. Figura traduzida e

simplificada de [3]. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29Figura 7 – Utilização do software WinMD5 . . . . . . . . . . . . . . . . . . . . . . 30Figura 8 – Funcionamento das técnicas de ofuscação baseadas em compressão de

dados. Imagem traduzida de [4]. . . . . . . . . . . . . . . . . . . . . . . 31

Page 14: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 15: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

LISTA DE TABELAS

Tabela 1 – Vantagens e desvantagens dos métodos de detecção da análise estáticabásica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

Page 16: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 17: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

LISTA DE ABREVIATURAS E SIGLAS

ELF Executable and Linkable Format

PE Portable Executable

USL Unix System Laboratories

RF Random Forest

SVM Support Vector Machine

IDS Intrusion Detection System

API Application Programming Interface

Page 18: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 19: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

SUMÁRIO

1 INTRODUÇÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . 191.1 Objetivos e Contribuições . . . . . . . . . . . . . . . . . . . . . . . 191.2 Organização do trabalho . . . . . . . . . . . . . . . . . . . . . . . 20

2 FUNDAMENTAÇÃO TEÓRICA . . . . . . . . . . . . . . . . . 212.1 Programas Executáveis . . . . . . . . . . . . . . . . . . . . . . . . 212.1.1 Executáveis no Linux . . . . . . . . . . . . . . . . . . . . . . . . . 212.1.2 Executáveis no Windows . . . . . . . . . . . . . . . . . . . . . . . 222.2 API . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.3 Malwares . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 232.4 Chamadas de Sistema (System Calls) . . . . . . . . . . . . . . . 242.5 Aprendizado de Máquina . . . . . . . . . . . . . . . . . . . . . . . 252.5.1 Support Vector Machine . . . . . . . . . . . . . . . . . . . . . . . 262.6 Trabalhos Relacionados . . . . . . . . . . . . . . . . . . . . . . . . 27

3 ANÁLISE E DETECÇÃO DE MALWARES . . . . . . . . . . 293.1 Análise Estática Básica . . . . . . . . . . . . . . . . . . . . . . . . 293.1.1 Hashing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.1.2 String . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 303.1.3 Ofuscadores de compressão de dados . . . . . . . . . . . . . . . . 31

4 CONCLUSÃO . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

REFERÊNCIAS . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

Page 20: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 21: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

19

1 INTRODUÇÃO

Sistemas computacionais estão cada vez mais presentes nas atividades diárias depessoas e empresas, onde o papel tem sido substituído por arquivos digitais. Esse novoformato de manipulação de informações produz agilidade e facilidades para empresas epessoas. No entanto, essas informações também são de extrema importância, sendo neces-sário mecanismos de proteção para manter a privacidade e integridade desses documentos[5, 6].

Garantir a confidencialidade, integridade e disponibilidade de dados armazenadosem um sistema computacional vem se tornando uma tarefa cada vez mais árdua com opassar dos anos [7], visto que o número de programas maliciosos, comumente denominadoscomo malwares, vêm crescendo de forma espantosa a cada ano, esses programas podemser compreendidos como aplicações cujo o objetivo é causar algum tipo de dano em umsistema computacional [7, 8].

Segundo o relatório da AVTest 2017 [9], em 2016 foram contabilizados um totalde 583 milhões de malwares. Sendo que a taxa de crescimento de novos malwares é deaproximadamente 20% a cada ano. Portanto, não é uma tarefa fácil proteger um ambientecomputacional de ser infectado ou danificado por algum programa malicioso, devido aogrande número de novos malwares que aparecem todos os dias [10, 11].

Consequentemente o número de empresas que fornecem soluções para combaterameaças virtuais vem aumentando gradativamente ao longo dos anos [12]. Com base nopotêncial econômico do setor de segurança digital, o financiamento e interesse por novastecnologias neste setor, gerou um aumento significativo no número de pesquisas voltadasa detecção de ameaças digitais.

Dentre todas as linhas de pesquisas de técnicas de detecção de malwares, temosque todas elas podem ser divididas em dois grupos. As Técnicas de detecção efetuadasa partir de uma análise estática, detecção baseadas em assinatura de código-fonte. E astécnicas de detecção realizadas a partir de uma análise dinâmica, detecção baseada nocomportamento de uma aplicação [5, 12, 4, 13].

1.1 Objetivos e Contribuições

O propósito deste trabalho é apresentar um estudo detalhado sobre técnicas declassificação e detecção de um processo malicioso, visando identificar as técnicas maiseficientes e promissoras para tal ação. Fornecendo um estudo comparativo com o levan-tamento dos prós e contra de cada uma das técnicas utilizadas, servindo como um estudobase para futuras linhas de pesquisas.

Page 22: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

20

1.2 Organização do trabalho

Este trabalho está organizado da seguinte forma: o capítulo 2 apresenta os conceitose técnicas fundamentais, nas áreas de sistemas operacionais, Aprendizado de Máquina eos algoritmos comumente utilizados, além do levantamento de trabalhos relacionados àproposta. O capítulo 3 aborda os possíveis meios de detecção e classificação de um processomalicioso, assim como suas vantagens e desvantagens de cada meio. No capítulo ?? seráefetuado um levantamento das implementações de sistemas e técnicas de detecção, e seusrespectivos resultados. E por último, o capítulo 4, apresenta as as conclusões obtidas comeste trabalho assim como a proposta para trabalhos futuros.

Page 23: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

21

2 FUNDAMENTAÇÃO TEÓRICA

Para uma melhor compreensão e entendimento do trabalho, será apresentada afundamentação teórica sobre todos os conceitos utilizados para o desenvolvimento destetrabalho. O presente capítulo abordará conceitos e técnicas utilizados nas áreas de sistemasoperacionais e Aprendizado de Máquina.

2.1 Programas Executáveis

Um programa executável, arquivo executável ou simplesmente executável, é umdocumento que contém um conjunto de instruções de máquina, pronto para ser executadoem um sistema operacional [14].

Os executáveis podem possuir instruções de máquinas comuns ou até mesmo re-quisições de serviços do sistema operacional (system call). Isto significa que um arquivoexecutável é escrito para um sistema operacional em específico.

2.1.1 Executáveis no Linux

Desenvolvido pela Unix System Laboratories (USL), o formato de arquivo ELF(Executable and Linkable Format) foi rapidamente aceito por diversos sistemas operaci-onais, os sistemas Linux, foram praticamente os pioneiros em adotar esse formato comopadrão [15].

Figura 1 – Estrutura de um arquivo de execução ELF. Figura traduzida de [1].

Apresentando uma documentação bastante completa, bem como uma arquiteturaflexível e modular, o formato ELF pode ser implementado em diferentes sistemas operacio-nais. No formato ELF os arquivos de ligação, arquivos que são utilizados na construção de

Page 24: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

22

um executável, possuiem uma estrutura diferente dos arquivos executáveis, neste trabalhoiremos abordar apénas os arquivos executáveis.

A arquitetura de um executável no formato ELF é feita pelo conjunto de diversasseções, conforme a Figura 1, a primeira seção e a mais importante, é o cabeçalho ELF, suafunção é amarzenar e descrever todas as informações necessárias para a execução corretadas demais seções. Em um arquivo ELF apenas o cabeçalho ELF possui uma localizaçãofixa, ou seja, todas as demais seções não possuem uma ordem específica de localização ouaparição. [1, 16]

2.1.2 Executáveis no Windows

Diferente das distribuições Linux a família de sistemas operacionais Windows ado-tou outro padrão em seus arquivos executáveis. O formato PE (Portable Executable),conforme apresentado na Figura 2, é dividido em duas repartições principais, Cabeçalhoe Seções [4, 2].

Figura 2 – Estrutura de um arquivo PE. Figura traduzida e simplificada de [2].

A repartição Cabeçalho é composta por um conjunto de seções que realizam aespecificação do arquivo, tais seções são de extrema importância para o arquivo, poissão essas que armazenam todas as informações necessárias para a execução correta doarquivo, apresentando o número de seções, seus respectivos tamanhos e pontos de acesso,assim como o formato do arquivo, por exemplo, se a extensão do arquivo é um .exe, .dllou .ocx [17].

Do mesmo modo a repartição Seções também é formada por um conjunto de se-ções, essas por sua vez apresentam o conteúdo do programa, métodos e funções a seremexecutadas, assim como variáveis, constantes e bibliotecas utilizada. É interessante lem-brar que cada uma das seções possuem flags apresentando seu respectivo nível de acesso,

Page 25: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

23

leitura, escrita ou execução, ou seja, não é possível escrever em uma seção de memóriademarcada com o nível de acesso de somente leitura [2, 17].

2.2 API

Uma API (Application Programming Interface), é um conjunto de funções quepossuem como objetivo o fornecimento de funcionalidades para outras aplicações, semdescrever a sua implementação de forma detalhada [18, 14].

2.3 Malwares

Malwares são um tipo específico de software projetado para causar danos em umsistema computacional, conforme a sua ação um malware pode ser categorizado de diversasformas [8, 4]:

∙ Backdoors – Os Backdoors são malwares que fornecem um acesso remoto clan-destino do local infectado, eles são o tipo de malware mais comum de se encontrar.

∙ Bots – Os Bots são malwares que fornecem um acesso de controle remoto parao local infectado. O local infectado geralmente faz parte de uma rede de máqui-nas infectadas, denominado como botnet. Os Bots podem ser utilizados para enviode spam, ataque de denação de serviço, realizar operações distribuidas como, porexemplo, mineração de bitcoins.

∙ Downloaders and droppers – Os Downloaders e Droppers realizam a instalaçãode malwares adicionais em uma máquina já infectada. Downloaders baixam ummalware adicional de um servidor remoto, enquanto droppers realiza a instalaçãodeste malware adicional.

∙ Ransomware – Os ransomware restringem o acesso da máquina infectada, desa-bilitando ou escondendo funções do sistema ou encripta arquivos e informações. Osransomware são tipicamente usados para extorquir dinheiro do usuário infectado.

∙ Rootkit – Os Rootkits fornecem um acesso privilegiado e persistente à máquinainfectada. Rootkit são tipicamente utilizados para esconder processos, esconder ar-quivos e interferir na segurança de um software para escapar da detecção.

∙ Spyware – Os Spywares roubam informações privadas do usuário, tais como:informações financeiras, hábitos de navegação, chaves de licença e credenciais delogin. Spyware tipicamente transmite as informações roubadas para um servidorremoto.

Page 26: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

24

∙ Scareware – Os Scarewares usam o medo de um usuário leigo para vender umaproduto inútil. Por exemplo: rogue antivirus (AV) erroneamente realiza um relatórioencontrando malwares e utiliza dessa informação para vender um serviço de remoçãodestes malwares supostamente encontrados.

∙ Exploits – Os Exploits aproveitam-se de uma vulnerabilidade em um softwarepara permitir a execução privilegiada de um malware.

∙ Logic bombs – Os Logic bombs são funções maliciosas incorporadas em softwaresnão maliciosos.

∙ Virus – Os vírus são malwares auto-replicantes que inserem códigos maliciosos emoutros programas e arquivos.

∙ Trojan horse – Os Trojan Horse (em português: cavalo de troia), também co-nhecido como Trojan, são malwares disfarçados como um software legítimo com oobjetivo de instalar outros malwares de forma oculta.

∙ Worms – Os Worms são malwares auto-replicantes que se espalham para outroshosts, normalmente em uma rede de computadores.

Algumas aplicação maliciosa são um conjunto de malwares que aplicam diversasfunções maliciosas em sua execução, ou seja, uma aplicação maliciosa pode abrangermúltiplas categorias, efetuando assim diversas ações danosas simultaneamente [4].

2.4 Chamadas de Sistema (System Calls)

Uma Chamada de sistema é um mecanismo utilizado pelos programas computaci-onais para solicitar a execução de algum serviço ao kernel do sistema operacional [8, 14].Ou seja, uma chamada do sistema consiste em uma ou mais funções que são utilizadaspelos aplicativos para efetuar a requisição de recursos gerenciados pelo núcleo do sistemaoperacional. [19].

Figura 3 – Chamadas de sistemas em ambientes baseados em Unix

Page 27: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

25

A utilização de chamadas de sistema para o reconhecimento de padrões de ativi-dades maliciosas é ricamente encontrada na literatura [8, 20, 21, 22, 23]. Esta técnica ébastante empregada em sistemas baseados no Unix, uma vez que todas as chamadas desistemas estão documentadas e disponíveis ao usuário, ou seja, uma aplicação qualquerconsegue ter acesso direto ao núcleo do sistema operacional, a Figura 3 ilustra como éefetuado a requisição de uma chamada de sistema em um ambiente Unix.

Diferente dos sistemas baseados em Unix, a família de sistemas operacionais Micro-soft Windows não fornecem nenhuma documentação das chamadas de sistemas efetuadaspelo sistema operacional, toda e qualquer requisição ao núcleo do sistema operacionalé feita através de uma interface intermediária, dificultando a compreensão e acesso dousuário ao núcleo do sistema operacional [14, 24, 25]. A Figura 4 apresenta a estruturadas requisições de chamadas de sistemas em ambientes Windows.

Figura 4 – Chamadas de sistemas em ambientes Windows

2.5 Aprendizado de Máquina

O aprendizado de máquina consiste em um grupo de algoritmos com o propósito dedesenvolver uma função ou um conjunto de funções, dado um conjunto de característicasque serão inseridas nessas funções, gerando assim resultados específicos e definidos. Esseprocesso poderá permitir prever um resultado esperado para uma instância de entradaainda não conhecida [26].

Examinando o aprendizado de máquina de modo mais abrangente, temos que esteé capaz de fornecer a resolução para dois tipos de problemas, o problema da regressão ouo problema da classificação, ambos podem ser descritos da seguinte maneira:

1. O problema de regressão:Consiste em prever um valor exato para uma instância de entrada desconhecida.

Page 28: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

26

Por exemplo: calcular o valor de um dispositivo eletrônico com base no preço doscomponentes internos.

2. O problema da classificação:Consiste em definir categorias (labels) para instâncias de entrada desconhecidas. Porexemplo: classificar se um determinado documento é importante ou não.

A etapa de treinamento do algoritmo de aprendizado de máquina pode ser re-alizado de duas formas distintas: supervisionado e não-supervisionado. O treinamentosupervisionado consiste quando um usuário determina quais parâmetros devem ser com-parados e análisados pelo algoritmo. Em contrapartida, quando o usuário não fornece osparâmetros para comparação e análise, este é considerado um aprendizado de máquinanão supervisionado [26].

Com relação a etapa de treinamento de um algoritmo de Aprendizado de Máquina,busca-se reduzir o valor de uma função, chamada de função de custo, que simboliza o erroentre o valor de saída do algoritmo e a saída esperada, por meio de ajustes nas funçõesutilizadas pelos algoritmos para gerar estas saídas. Nos algoritmos supervisionados, esteerro é dado como a diferença entre o valor previsto por ele e o valor de saída correta paraaquela instância. Nos algoritmos não supervisionados, o erro é calculado com auxílio dealguma métrica que mede a semelhança entre as instâncias dadas para treino, buscando-seaumentar a semelhança entre as amostras, reduzindo o sua diferença, o erro [26].

Neste trabalho, foram selecionados os algoritmos tradicionalmente conhecidos naliteratura de análise e detecção de malwares [5, 13, 21, 27, 28], por possuírem uma boa per-formance e também pela facilidade de otimizar os parâmetros, sendo eles: SVM (SupportVector Machine), RF (Random Forest) e ELM (Extreme Learning Machine)

2.5.1 Support Vector Machine

A SVM é um algoritmo de classificação binária [29]. Seu funcionamento consisteem dividir um conjunto de dados em duas classes distintas, essa classificação acontece pormeio da construção de um hiperplano com uma separação ótima entre as classes, visandomaximizar a fronteira ou margem de decisão entre as classes.

São denominados como vetores de suporte, os pontos utilizados para a criação damargem de decisão, localizados nas fronteira das margens do hiperplano de separação [29].A Figura 5 apresenta um hiperplano de separação ótima entre duas classes, onde a linhavermelha representa o hiperplano, os vetores de suporte são os objetos que encostam naslinhas pontilhada, e as linhas pontilhadas são denominadas como margem de decisão.

Page 29: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

27

Figura 5 – Ilustração de um hiperplano de separação ótima.

2.6 Trabalhos Relacionados

Os trabalhos [13, 5] apresentam uma linha de pesquísa aprofundada sobre a utli-zação de técnicas e algoritmos de Aprendizado de Máquina para realizar a detecção eclassificação de malwares.

Diferente da análise dinâmica de dados, onde é empregado algoritmos de Aprendi-zado de Máquina, a análise estática de dados, tem foco em compreender a composição dedados de um arquivo. O trabalho [30] aprendesenta um estudo detalhado da arquiteturade um arquivo executável, ilustrando o processo de compilação e geração de instruçõesde máquina, assim como o precesso reverso, a descompilação, onde a partir de valoreshexadecimal é possível adquirir um código-fonte correspondente.

E trabalhos como [23, 10, 31], apresentam uma análise estática dos dados, a partirda construção de gráfos CFG que representam as atividades efetuadas por um processo,tentando assim construir um padrão de comportamento através das características presen-tes neste documento como, por exemplo, as chamadas de sistemas efetuadas pela aplicaçãomaliciosa.

Page 30: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 31: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

29

3 ANÁLISE E DETECÇÃO DE MALWARES

A análise de malwares objetiva fornecer uma maior compreensão sobre o funcio-namento de um malware e suas respectivas peculiaridades, pois assim, poderá determinarquais características podem ser prejudiciais, ou não, para o sistema.

Existem duas abordagens fundamentais para a análise de malware, a estáticae análise dinâmica. A análise estática consiste na análise do malware sem executá-lo,ou seja, coletando informações da sua arquitetura de execução, bem como apresentandoquais bibliotecas serão utilizadas. A análise dinâmica consiste em coletar informações domalware em execução, observado as alterações que serão feitas no sistema computacional[4, 8, 21, 11].

As duas abordagens de análise malwares também podem ser subdivididas em maisduas categorias, análise básica e análise avançada [3, 4]. A Figura 6 apresenta os métodosde análise de malwares, para melhor compreensão do estudo.

Figura 6 – Representação dos métodos de análise de malware. Figura traduzida e simpli-ficada de [3].

3.1 Análise Estática Básica

A análise estática basica consiste em examinar um programa procurando por pa-drões maliciosos em sua estrutura, mas sem executá-lo, observando a sequência de bytesdeste programa, também conhecida como assinatura de código.

Page 32: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

30

Devido a simplicidade dos métodos abordados na análise estática básica, temosque este processo de reconhecimento é aplicado de forma inicial, sendo apenas os primei-ros passos para determinar se um processo é ou não malicioso, a Tabela 1 apresenta asvatanges e desvatangens dos métodos da análise estática básica.

3.1.1 Hashing

Um dos métodos mais comuns na análise estática básica é o método hashing, estemétodo consiste em fornecer uma impressão digital de um malware, gerando e associandoum código hash para cada uma das diversas aplicações maliciosas, após a obtenção de umcódigo que identifique um malware, é possivel construir um banco de dados para detectaressa aplicação novamente de forma simples, rápida e compacta [4].

O algoritmo MD5 (The Message-Digest Algorithm 5), é um dos métodos maiscomuns na obteção de códigos hash, entretanto ele não é o único, algoritmos SHA (SecureHash Algorithm), também são comumente útilizados. A Figura 7 apresenta a geração docódigo hash de um arquivo pdf, através da utilização do software WinMD5, obtendo ocódigo 9962ba2b965e3e982elcac67d597d6c2 como seu respectivo representante.

Figura 7 – Utilização do software WinMD5

3.1.2 String

O método de análise de strings consiste em procurar por uma sequência de bytes nocorpo da aplicação, essa busca pode ser feita de diversas formas uma delas é analisando osbytes em uma determinada formatação, como ASCII ou Unicode [4], ou observado os bytesem sua forma primitiva, utilizando os algoritmos de LCS (Longest Common Subsequenceou Longest Common Substring) [6].

Page 33: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

31

3.1.3 Ofuscadores de compressão de dados

Este método consiste em procurar por um Packed dentro do código de um pro-cesso ou aplicação. Um Packed é um conjunto de programas ofuscadores, onde uma vezaplicado no malware o mesmo comprime parte do seu funcionamento, dificultando assimo reconhecimento e análise do código.

Para o funcionamento correto de um Packed, é necessário incluir junto ao malwareuma aplicação que será responsável por compactar e descompactar as demais funções daaplicação durante a sua execução [4]. A detecção de um packed é realizada em conjuntocom o método string, a Figura 8 demonstra uma explicação do funcionameto de umpacked.

Figura 8 – Funcionamento das técnicas de ofuscação baseadas em compressão de dados.Imagem traduzida de [4].

Tabela 1 – Vantagens e desvantagens dos métodos de detecção da análise estática básica.

VantagensFácil implementaçãoBaixa utilização de recursos da CPUDetecção com um baixo número de alertas falsos.

DesvantagensNão detecta aplicações desconhecidasPequenas alterações podem tornar uma aplicação desconhecida.

Page 34: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 35: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

33

4 CONCLUSÃO

Page 36: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in
Page 37: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

35

REFERÊNCIAS

[1] DINDA, P. A. Executable and Linkable Format (ELF). 2017. Disponível em:<http://www.cs.northwestern.edu/~pdinda/icsclass/doc/elf.pdf>.

[2] HUBBALLI, N.; DOGRA, H. Detecting packed executable file: Supervised oranomaly detection method? In: 2016 11th International Conference on Availability,Reliability and Security (ARES). [S.l.: s.n.], 2016. p. 638–643.

[3] S, S. Y.; PRAYUDI, Y.; RIADI, I. Article: Implementation of malware analysisusing static and dynamic analysis method. International Journal of ComputerApplications, v. 117, n. 6, p. 11–15, May 2015. Full text available.

[4] SIKORSKI, M.; HONIG, A. Practical Malware Analysis: The Hands-On Guide toDissecting Malicious Software. 1st. ed. San Francisco, CA, USA: No Starch Press,2012. ISBN 1593272901, 9781593272906.

[5] CHUMACHENKO, K.; TECHNOLOGY, I. Machine Learning Methods for MalwareDetection and. 2017.

[6] NAKAMURA, D. Detecção de intrusão e extração automática de assinaturas deataques. p. 191–196.

[7] YE, Y. et al. A survey on malware detection using data mining techniques. ACMComput. Surv., ACM, New York, NY, USA, v. 50, n. 3, p. 41:1–41:40, jun. 2017.ISSN 0360-0300. Disponível em: <http://doi.acm.org/10.1145/3073559>.

[8] CANZANESE, R. J. Detection and Classification of Malicious Processes UsingSystem Call Analysis. Dissertação (Diss) — Drexel University, May 2015.

[9] AVTEST. Malware Statistics Trends Report. 2017. Disponível em: <https://www.av-test.org/en/statistics/malware>.

[10] DAM, K.-H.-T.; TOUILI, T. Automatic extraction of malicious behaviors. In: 201611th International Conference on Malicious and Unwanted Software (MALWARE).[S.l.]: IEEE, 2016. p. 47–56.

[11] HăJMăşAN, G.; MONDOC, A.; CREț, O. Dynamic behavior evaluation for malwaredetection. In: 2017 5th International Symposium on Digital Forensic and Security(ISDFS). [S.l.: s.n.], 2017. p. 1–6.

[12] TAN, Y. Artificial immune system. In: . Artificial Immune System:Applicationsin Computer Security. Wiley-IEEE Press, 2016. p. 208–. ISBN 9781119076582.Disponível em: <http://ieeexplore.ieee.org/xpl/articleDetails.jsp?arnumber=7547447>.

[13] BASET, M. Masters Dissertation Machine Learning for malware detection. p. 1–61,2016.

[14] TANENBAUM, A. S. Sistemas Operacionais Modernos. 3rd. ed. [S.l.]: Pearson,2009.

Page 38: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

36

[15] BARKAKATI, N. Red Hat Fedora Linux Secrets. [S.l.]: Wiley-IEEE Press, 2005.

[16] TORRI, S.; BRITT, W.; HAMILTON, J. A. A compiler classification framework foruse in reverse engineering. In: 2009 IEEE Symposium on Computational Intelligencein Cyber Security. [S.l.: s.n.], 2009. p. 159–166.

[17] A, B. F. Estrutura e Funcionamento de um Executável. 2017. Disponível em:<http://www.fergonez.net/files/tut_win32_exe.pdf>.

[18] MICROSOFT. Catálogo de referência e API da Microsoft. 2017. Disponível em:<https://msdn.microsoft.com/library>.

[19] CARDOZO, E.; MAGALHãES, F. M.; FAINA, F. L. Introdução aos SistemasOperacionais. 1st. ed. Campinas, SP, Brasil: [s.n.], 2002.

[20] JOY, J.; JOHN, A. Host based attack detection using system calls. In:Proceedings of the Second International Conference on Computational Science,Engineering and Information Technology. New York, NY, USA: ACM,2012. (CCSEIT ’12), p. 7–11. ISBN 978-1-4503-1310-0. Disponível em:<http://doi.acm.org/10.1145/2393216.2393218>.

[21] CANZANESE, R.; MANCORIDIS, S.; KAM, M. System call-based detectionof malicious processes. In: IEEE International Conference on Software Quality,Reliability and Security. [S.l.]: IEEE, 2015. p. 119–124.

[22] NIKOLOPOULOS, S. D.; POLENAKIS, I. Malicious software classification based onrelations of system-call groups. In: Proceedings of the 19th Panhellenic Conferenceon Informatics. New York, NY, USA: ACM, 2015. (PCI ’15), p. 59–60. ISBN978-1-4503-3551-5. Disponível em: <http://doi.acm.org/10.1145/2801948.2802017>.

[23] ALAEIYAN, M. H.; PARSA, S. Automatic loop detection in the sequence of systemcalls. In: 2015 2nd International Conference on Knowledge-Based Engineering andInnovation (KBEI). [S.l.: s.n.], 2015. p. 720–723.

[24] MICROSOFT. Introduction to the UNIX Custom Application Migration Guide. 2017.Disponível em: <https://technet.microsoft.com/en-us/library/bb496993.aspx>.

[25] DYNAMORIO. Client Transparency. 2017. Disponível em: <https://css.csail.mit.edu/6.858/2010/labs/dr-docs/transparency.html>.

[26] NG, A. Machine Learning. 2017. Disponível em: <https://www.coursera.org/learn/machine-learning>.

[27] GAVRILUT, D. et al. Malware detection using machine learning. In: InternationalMulticonference on Computer Science and Information Technology. [S.l.]: IEEE,2009. p. 735–741.

[28] AYDOGAN, E.; SEN, S. Analysis of machine learning methods on malwaredetection. In: 22nd Signal Processing and Communications Applications Conference(SIU). [S.l.]: IEEE, 2014. p. 2066–2069.

[29] KINTO, E. A. Otimização e análise das máquinas de vetores de suporte aplicadas àclassificação de documentos. Tese (Doutorado) — Escola Politécnica, Universidadede São Paulo, São Paulo, 2011.

Page 39: DERYKSEDLAKRIBEIRO · 2018. 2. 12. · RIBEIRO, D. S. A survey on detection and classification of malicious process. 37 p. Final Project – Draft Version (Bachelor of Science in

37

[30] KINDER, J. Static Analysis of x86 Executables. Tese (Doutorado) — TechnischeUniversität, Darmstadt, November 2010. Disponível em: <http://tuprints.ulb.tu-darmstadt.de/2338/>.

[31] CHRISTODORESCU, M.; JHA, S. Static analysis of executables to detect maliciouspatterns. In: Proceedings of the 12th Conference on USENIX Security Symposium -Volume 12. Berkeley, CA, USA: USENIX Association, 2003. (SSYM’03), p. 12–12.Disponível em: <http://dl.acm.org/citation.cfm?id=1251353.1251365>.