Desenvolvimento de técnica baseada em aprendizado de máquina para a detecção de botnets em dispositivos móveis

Documentos relacionados
TECNOLOGIA DA INFORMAÇÃO

Realidade Aumentada aplicada ao ensino da simetria molecular

Simulado Aula 02 INSS INFORMÁTICA. Prof. Márcio Hunecke

Inicialmente as redes passaram a ser utilizadas principalmente para o compartilhamento de periféricos, principalmente discos rígidos.

Sistemas de Detecção de Intrusão

Arquitetura de um sistema integrado de defesa cibernética para detecção. de botnets

4 o Fórum Brasileiro de CSIRTs 17 e 18 de setembro de 2015 São Paulo, SP

WWW = WORLD WIDE WEB

Segurança Corporativa utilizando Sistema de Detecção de Intrusão (IDS)

Estudo sobre detecção e classificação de processos maliciosos

Serviço que permite acesso a documentos multimídia. As chamadas páginas da Web, os sites.

Mecanismo de Segurança para Redes Móveis Ad Hoc

TorBot - Protecting the Tor Network against Malicious Traffic. EnSI - VII Encontro de Segurança em Informática do CERT.Bahia

RELATÓRIO ANUAL Destaques do Tratamento de Incidentes em 2010

VICTOR GUILHERME TURRISI DA COSTA UMA ABORDAGEM BASEADA EM CHAMADAS DE SISTEMA PARA A DETECÇÃO DE BOTNETS EM DISPOSITIVOS MÓVEIS

ÍNDICE 1. OBJETIVO CONCEITOS PRINCÍPIOS DIRETRIZES CORPORATIVAS ESTRUTURA DE GERENCIAMENTO... 4

POLÍTICA DE SEGURANÇA CIBERTNÉTICA, SEGURANÇA DE INFORMAÇÃO E CONTINUIDADE.

Aprendizado de Máquina (Machine Learning)

Ataque em Sistemas Distribuídos Site :

Máquinas de suporte vetorial e sua aplicação na detecção de spam

Bacharel em Ciência da Computação, 2 Prof. Esp. Ciências da Computação, ICET/Feevale,

Coleta e Análise de Características de Fluxo para Classificação de Tráfego em Redes Definidas por Software

SNORT. Sistema de Detecção de Intrusão de Rede. Amanda Argou Vilnei Neves REDES II

FACULDADE DE TECNOLOGIA SENAC GOIÁS

POLVO-IIDS: Um Sistema de Detecção de Intrusão Inteligente Baseado em Anomalias p. 1/16

Metodologia de detecção de botnets utilizando aprendizado de máquina

Detecção de Intrusão. Intrusão. Intruso. É o processo pelo qual algo tenta violar uma sistema.

Sandnet. Análise de Tráfego de Rede Produzido por Software Malicioso

Configuração do Intrusion Prevention System (IPS) para o roteador da Segurança do gigabit do Sem fio-n WRVS4400N

Faculdade de Engenharia da Computação

INTERNET E SEGURANÇA DOS DADOS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Aprendizado de Máquina. Combinando Classificadores

SISTEMAS DE INFORMAÇÃO Prof. Esp. Fabiano Taguchi

Simulado Aula 01 INSS INFORMÁTICA. Prof. Márcio Hunecke

Segurança de Redes de Computadores

NOÇÕES DE INFORMÁTICA. Segurança da Informação Pragas Virtuais Parte 1 Prof. Flávio Lima

Mineração de Dados - II

DESCRIÇÃO E JUSTIFICATIVAS TECNICAS SOBRE A INFLUÊNCIA DO SISTEMA OPERACIONAL NA SEGURANÇA DOS SERVIÇOS IPS

Classificação da Qualidade de Vias Urbanas baseado em Sensoriamento Participativo

Plano de pesquisa de mestrado em ciência da computação. Márcio G. Morais

Segurança: Tendências Atuais e Recomendações do NBSO

Redes de Computadores

Análise de Vulnerabilidade de Sistemas Acadêmicos Web

CONCEITOS WEB E SEGURANÇA

Boas Maneiras em Aprendizado de Máquinas

Segurança da Informação

Bot. Programa malicioso. Dispõe de mecanismos de comunicação com o invasor que permitem que ele seja controlado remotamente.

Antispam corporativo e Gateway


Firewall. Prof. Marciano dos Santos Dionizio

20º Fórum de Certificação para Produtos de Telecomunicações 30 de novembro de 2016 Campinas, SP

Tendências do mercado nacional:

Cibersegurança. A seguir, vamos apresentar um resumo dos principais conceitos associados à segurança que são abordados no setor de TI.

SEMINÁRIO DOS ARTIGOS:

MINERAÇÃO DE DADOS EM ARQUIVOS DE LOG GERADOS POR SERVIDORES DE PÁGINAS WEB

Segurança na Rede Estácio - II Semana de Informática - Out/05

Um Método para Melhoria de Dados Estruturados de Imóveis

Professor Jorge Alonso Módulo VIII Armazenamento e Computação nas Nuvens


LATIM - Laboratório Virtual de Técnicas de Implementação Segura. Meta 38 GerPri Gerenciamento de Identidades com Privacidade

Descoberta de conhecimento em redes sociais e bases de dados públicas

Vigilância Implacável. Aker IPS. A resistência que a sua empresa precisa contra intrusões.

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE

Gerenciamento de Comunicação em Projetos de Software - Um estudo de caso no Laboratório Gaia da UEL

Gestão de Segurança da Informação. Interpretação da norma NBR ISO/IEC 27001:2006. Curso e Learning Sistema de

Book com terminologias DE SEGURANÇA DA INFORMAÇÃO

Desafios de defesa cibernética na Internet do Futuro. Antonio M. Moreiras

UTILIZAÇÃO DE REDES NEURAIS ARTIFICIAIS NO RECONHECIMENTO DE PADRÕES EM PACOTES DE DADOS TCP/IP

Honeypots, honeynets e honeytokens

Aspectos de segurança na conectividade da rede acadêmica. Italo Valcy 25/Set/2017, VII WTR do PoP-BA

PROPOSTA DE UMA FERRAMENTA PARA MONITORAMENTO DE MÉTRICAS DE SEC-SLA NO CONTEXTO DA COMPUTAÇÃO EM NUVEM

Segurança da Informação

SEMINÁRIO Visão Computacional Aluno: Afonso Pinheiro

Escalonamento de Aplicações BoT em Ambiente de Nuvem

1. Introdução PUBLIC - 1

DoS, DDoS & Botnets. Alunos: Lucas Gomes, Marcos Seefelder, Vinicius Campos Professor: Otto Carlos Muniz Bandeira Duarte

Existem diversas formas de tratar dados e este conjunto de formas chama-se Data

SOFTWARE ANTIVÍRUS WISNIWARE BOT ANTIVIRUS

Utilização de Redes Neurais Artificiais para Detecção de Anomalia em Redes de Computadores

Questão 10. Justificativa A QUESTÃO DEVERÁ SER ANULADA

FACULDADES INTEGRADAS SANTA CRUZ DE CURITIBA MONITORAMENTO - WIRESHARK

Rede de computadores Cliente- servidor. Professor Carlos Muniz

CENTRAL DE CURSOS 29/06/2014

Utilização de técnicas de Process Mining em Sistemas de Middleware Adaptativos Proposta de Trabalho de Graduação

Segurança da Informação

Portal de inteligência de ameaças da Kaspersky: Investigação e resposta a incidentes

7 Congresso de Pós-Graduação MODELAGEM DE BASE DE CONHECIMENTO PARA TAREFA DE CLASSIFICAÇÃO EM MINERAÇÃO DE DADOS

O papel do IT Service Desk como 1ª linha de defesa contra Ciberataques. Cristiano Breder

DIREITO DA SOCIEDADE DA INFORMAÇÃO

Testes de Penetração: Força Bruta para Login em SSH

CC-226 Introdução à Análise de Padrões

AULA EXPOSITIVA SOBRE: CONCEITOS E IMPLEMENTAÇÃO DE FIREWALL, VPN E SSH (REDES PRIVADAS E SERVIÇOS DE ACESSO REMOTO)

Transcrição:

Desenvolvimento de técnica baseada em aprendizado de máquina para a detecção de botnets em dispositivos móveis Victor Guilherme Turrisi da Costa 1, Bruno Bogaz Zarpelão 1 1 Departamento de Computação Universidade Estadual de Londrina (UEL) Caixa Postal 10.011 CEP 86057-970 Londrina PR Brasil vgtc11@gmail.com, brunozarpelao@uel.br Abstract. The growth of the Internet has brought many challenges for the protection of privacy, integrity and data security. A threat of this security is a type of malware called bot malware, used to create botnets. These perform a number of malicious attacks such as theft of private data and computational resources. For the detection of botnets, machine learning is used, since the behavioral patterns generated by botnets may be learned by the algorithms, given the right circumstances. This work aims to develop a machine learning-based technique for botnet detection on mobile devices, a new trend among bot malware. The data for training these algorithms will be generated by a mobile device. These include network traffic and system calls of each running process in execution, seeking to combine them in order to increase the performance of the algorithm in the detection process. Resumo. O crescimento da Internet trouxe diversos desafios para a proteção da privacidade, integridade e segurança dos dados. Uma ameaça desta segurança é um tipo de malware chamado de bot malware, utilizado para a criação de botnets. Estas realizam uma série de ataques malignos como o roubo de dados privados e de recursos computacionais. Para a detecção das botnets, é aplicado o aprendizado de máquina, uma vez que os padrões de comportamento delas podem ser aprendidos pelos algoritmos, dados os cenários corretos. Este trabalho visa o desenvolvimento de uma técnica baseada em aprendizado de máquina para a detecção de botnets em dispositivos móveis, uma nova tendência entre os bot malwares. Os dados para o treinamento destes algoritmos serão gerados por um dispositivo móvel. Estes contemplam o tráfego de rede e as chamadas de sistema de cada um dos processos em execução, procurando combiná-los com a finalidade de aumentar o desempenho do algoritmo no processo de detecção. 1. Introdução O crescimento da Internet e a difusão de seus usos, para além de sua utilização inicial como ferramenta de estudos, trouxeram inúmeros desafios para a proteção da privacidade, integridade e segurança dos dados. A Internet se tornou parte integral de nossas vidas, suportando uma gama de serviços, como bancários, de comércio e administrativos, deixando de ser apenas uma ferramenta de acesso a informações para se tornar uma plataforma de difusão de opiniões, compartilhamento de fatos pessoais, socialização e trabalho [1] [12].

Este crescimento e a integração dela com nossas vidas cria diversos desafios para a garantia de segurança. Uma das maiores ameaças desta segurança é um software chamado de malware. Os malwares realizam uma variedade de comportamentos ilegais e prejudiciais para pôr em perigo dados de usuários e comprometer computadores infectados [12]. Existe uma grande variedade de malwares e entre eles se encontram os bot malwares que são usados para criar botnets. Estas se referem a um conjunto distribuído de computadores e/ou dispositivos móveis controlados por um atacante para realizar ataques coordenados [3] [12]. Para combater as botnets primeiramente é necessário detectá-las. Diversas técnicas são usadas com esta finalidade, sendo que a de maior sucesso utiliza de aprendizado de máquina. O uso de algoritmos de aprendizado de máquina para a detecção de botnets parte do pressuposto de que redes de robôs geram padrões distinguíveis e que estes padrões podem ser usados efetivamente pelos algoritmos [12]. Com o desenvolvimento das capacidades computacionais de smartphones, uma nova ameaça na área de botnets surgiu: os bot malwares em dispositivos móveis [11]. Existem dois métodos para a análise de malwares em dispositivos móveis: a análise estática e a dinâmica. Na primeira, não é necessária a execução do malware e as análises são baseadas nos executáveis ou realizando uma dissecação dos códigos do programa. Já análise dinâmica, são observados os padrões de execução deste programa. Criando uma sandbox (mecanismo para isolar a execução de um programa), é possível observar chamadas de sistema ou de APIs [5]. A proposta do trabalho é combinar características coletadas durante a execução de aplicações - malwares ou não - tipicamente usadas na análise dinâmica para a detecção de malwares em dispositivos móveis, com dados relacionados ao tráfego de rede, tipicamente usados para a detecção de botnets convencionais. Este documento esta organizado na seguinte estrutura: A seção 2 apresenta a fundamentação teórica necessária para a compreensão do trabalho; a seção 3 apresenta o objetivo proposto; a seção 4 contém informações sobre a metodologia e técnicas; a seção 5 apresenta o cronograma para o desenvolvimento e a 6 os resultados esperados. 2. Fundamentação Teórico-Metodológica e Estado da Arte Esta seção tem como finalidade a apresentação de conceitos teóricos para o entendimento do trabalho proposto bem como evidenciar o estado da arte. 2.1. Botnets Botnets são definidas como um conjunto distribuído de computadores e/ou dispositivos móveis que foram comprometidos conectados à Internet e estão sendo controlados por um invasor para realizar uma série de ataques coordenados, sendo um dos maiores perigos de segurança da Internet atualmente [10] [13]. Entre estes ataques encontram-se, como citados por Feily [3], Karim [5] e Saad [10]: 1. Negação distribuída de serviço (Distributed Denial of Service:DDOS). A negação de serviço (Denial of Service - DOS) consiste em tornar recursos computacionais e de rede indisponíveis por um período temporário ou indefinido sobrecarregando os

recursos computacionais do atacado com apenas um atacante. Já o ataque DDOS, é uma variação do ataque DOS mas ao invés de um atacante, é um conjunto distribuído de atacantes com IPs diferentes. 2. Disseminação de e-mails de spam e phishing, onde o primeiro são e-mails indesejados, não solicitados ou ilegais e o segundo, definido como um conjunto de e-mails que tem como objetivo o roubo de informações dos atacados; 3. Roubo de informações pessoais como senhas, dados do usuário, contas etc; 4. Distribuição ilegal de softwares e mídias piratas; 5. Utilização de recursos computacionais para mineração de Bitcoins; 6. Disseminação de outros malwares como worms, cavalos de tróia, ransomware, spyware e outros tipos de softwares maliciosos. Um dos aspectos chaves de qualquer botnet é sua arquitetura de comunicação, existindo basicamente três tipos: Internet Relay Chat (IRC), baseados em Hypertext Transfer Protocol (HTTP) e Peer to Peer (P2P). Quanto ao primeiro, é o mais encontrado em botnets tradicionais. Após infectado, um bot, membro de uma botnet, localiza e conecta-se em um servidor IRC. O bot master (o atacante que controla a botnet), então, cria um canal IRC de comando e controle (C&C) para se comunicar com e controlar os bots. O segundo utiliza HTTP, mas, assim como as botnets IRC, possuem estruturas centralizadas e uma quebra na comunicação com este servidor (IRC ou HTTP) desliga toda a botnet. Já na terceira, devido à natureza de redes P2P, um bot master pode inserir comandos em qualquer parte da botnet e o mesmo será propagado para todos os bots da rede, sendo até mesmo difícil estimar o tamanho de uma botnet [10]. Devido à alta volatilidade de vírus botnets, estes ficaram extremamente difíceis de serem identificados. Diversas técnicas foram propostas para melhorar a detecção de botnets nos últimos anos. Essas técnicas são divididas entre duas categorias principais: a construção de Honeynets ou um sistema de detecção de intrusão (Intrusion Detection System - IDS), onde o segundo é dividido em dois subgrupos, sistemas baseados em assinatura e baseados em anômalias [11]. Honeynets são mais adequadas para a coleta de informações sobre os bots, com a finalidade de entender as tecnologias utilizadas e realizar uma análise completa das características principais da botnet. Suas desvantagens são as limitações nas atividades que as Honeynets podem rastrear, uma vez que só conseguem coletar informações nas máquinas colocadas como armadilhas para as botnets, e não são capazes de capturar bot malwares que não usam, como métodos para sua propagação, spam, downloads da Internet ou examinam a rede para localizar novos dispositivos. Outro problema é a existência de técnicas para evitar as honeynets, por parte dos bot malwares [11]. Os métodos baseados em anomalia ou em assinatura são os mais comuns. No baseado em anomalia, quando o sistema de detecção observa ações anômalas na rede do usuário, como alta latência, grande volume de tráfego e uso de portas incomuns, ele determina que o usuário pode ser vítima de um vírus botnet. A vantagem deste método é a possibilidade de detecção de botnets novas, sendo a desvantagem o alto índice de falsos positivos, pois o tráfego gerado por uma botnet é similar ao tráfego gerado pelo uso normal da rede. No baseado em assinatura, um banco de dados de padrões de pacotes, comportamentos conhecidos e ligados com atividades de malwares, é criado. A partir do momento que o detector percebe que um pacote na rede do usuário possuí a mesma

assinatura ou padrão que um dos pacotes do banco de dados, há uma possibilidade do usuário estar infectado por um vírus botnet. A vantagem do método são suas altas taxas de detecção sendo que a desvantagem é a necessidade de uma constante atualização e manutenção do banco de padrões, uma vez que o método não detecta nenhuma botnet desconhecida [2] [4] [11]. O método mais utilizado para detecção de botnets é o baseado em anomalias, devido sua possibilidade de detecção de botnets desconhecidas. Uma técnica possível de ser utilizada em conjunto com este método é o aprendizado de máquina. Por meio dela, pode-se melhorar a distinção entre tráfego de rede normal, gerado pelos usuários, e o tráfego de rede gerado por botnets [11]. 2.2. Aprendizado de Máquina O aprendizado de máquina consiste em um conjunto de algoritmos que procuram gerar uma função ou conjunto de funções, dado um conjunto de características (variáveis destas funções), para prever um valor ou classificar uma instância ainda desconhecida [8]. Podese definir o aprendizado de máquina da seguinte maneira: A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P, improves with experience E. [7] 1 Essas experiências podem ser instâncias de um banco de dados, onde cada instância é representada por um conjunto de características, que descrevem essa instância, e cada característica pode tomar forma de um valor contínuo, categórico ou binário. Caso essas instâncias sejam fornecidas para um MLA (Machine Learning Algorithm) com os outputs (valores que o algoritmo deverá prever com base nas características da instância dada) corretos, então o aprendizado é supervisionado. Em contra partida, caso as instâncias fornecidas para o algoritmo não contenham a saída correta, o aprendizado é sem supervisão [6]. Existem dois tipos de problemas que o aprendizado de máquina resolve, sendo eles, problemas de regressão ou de classificação. Com relação ao primeiro, consistem em prever um valor numérico para instâncias desconhecidas. Um exemplo disto seria um algoritmo para a previsão de valores de casas. Dado um certo grupo de características sobre estas casas, como área total, número de quartos e idade da casa, e o valor da mesma, o algoritmo iria criar uma relação matemática entre essas características e o valor da casa, que no caso do exemplo, seria o valor que o algoritmo tentaria prever, aproximando o valor previsto pelo algoritmo do dado como correto. Após o treino do algoritmo por uso de diversas instâncias, no caso, casas, poderia-se utilizar a relação matemática encontrada para prever o valor de uma casa que só conhecemos suas características mas não seu preço real. Em relação à problemas de classificação, consistem em colocar rótulos (labels) para instâncias desconhecidas, como, por exemplo, separar um conjunto de e-mails em dois grupos, spam e não-spam [8]. Com relação ao processo de treinamento de um algoritmo de aprendizado de máquina, é buscado reduzir o valor de uma certa função, chamada de função de custo, 1 Um programa de computador que é dito para aprender com uma experiência E no que se diz respeito à uma classe de tarefas T e performance medida por P, se a performance em T, medida por P, melhora com a experiência E.

que simboliza o erro na saída do algoritmo, por meio de ajustes nas funções utilizadas pelos algoritmos para gerar as saídas. Nos algoritmos supervisionados, este erro é dado como a diferença entre o valor previsto por ele e o dado como a saída correta para aquela instância. Nos algoritmos não supervisionados, o erro é dado como a diferença entre a semelhança das instâncias dadas para treino [8]. 2.3. Método para Avaliação do Desempenho de um Algoritmo de Aprendizado de Máquina Primeiramente o conjunto de dados disposto deve ser dividido da seguinte maneira: uma parte majoritária para o treinamento do algoritmo (60% à 80%) e o restante dividido de forma igualitária para validação cruzada (cross-validation) e testes [8]. Em seguida, deverão ser escolhidos os algoritmos de aprendizado de máquina que serão utilizados no problema. O conjunto para treinamento será utilizado no momento de treino ou ajuste das funções dos algoritmos. A partir do treino dos algoritmos, ou a execução de alguns tipos deles múltiplas vezes, uma vez que a inicialização aleatória resulta em previsores com desempenhos diferentes, é selecionado o algoritmo, ou a execução, que possuir o melhor desempenho, baixo índice de falso-positivos (onde o algoritmo classifica algo falso como verdadeiro, no caso, a presença de uma botnet quando não há nenhuma) e baixo índice de falso-negativos (onde o algoritmo classifica algo verdadeiro como falso, por exemplo, a não existência de uma botnet quando ela está presente) [8]. O algoritmo, ou execução, que foi selecionado baseado no desempenho quando aplicado ao conjunto de validação cruzada, será executado sobre o conjunto de testes. Os resultados apresentados nesta execução são uma boa métrica de desempenho para o algoritmo de aprendizado de máquina [8]. 2.4. Aprendizado de Máquina aplicado à detecção de Botnets No inicio do uso de aprendizado de máquina para a detecção de botnets, os algoritmos de aprendizado de máquina utilizavam características baseadas no conteúdo de pacotes. Entretanto, com o crescimento de tráfego cifrado, estas características se tornaram ineficientes. Outro ponto importante para o fim do uso destas características são as questões de segurança que permeiam o uso direto dos dados carregados pelos pacotes. A partir disto, os algoritmos passaram a utilizar características baseadas no tráfego da rede e nos cabeçalhos dos pacotes. Algumas das características usadas são os endereços IP de origem e destino, portas de origem e destino, média do tamanho dos pacotes do fluxo, tamanho do primeiro pacote do fluxo, média de pacotes por segundo por fluxo e uma série de características baseadas em tamanho dos pacotes, protocolos, bytes transferidos e número de pacotes [2] [10] [12]. O rápido desenvolvimento das capacidades computacionais de smartphones e outros dispositivos móveis e o aumento do acesso à internet, como 3G e 4G, somado aos sistemas operacionais complexos e com vulnerabilidades que eles executam, uma nova ameaça na área de botnets surgiu, as botnets em dispositivos móveis [11]. Quando nos referimentos à mobile botnets, é possível utilizar características relacionadas as operações de sistema que o aplicativo realiza, como, por exemplo, leituras e escritas em arquivos do sistema, conexões de rede abertas, vazamento de informação, serviços do dispositivo

iniciados, operações criptografadas e conversações HTTP e tentativas de conexão HTTP [5]. 3. Objetivos O principal objetivo desse trabalho é desenvolver uma técnica baseada em aprendizado de máquina para detectar botnets em dispositivos móveis. Entre os objetivos específicos temos: 1. Realizar uma revisão bibliográfica dos trabalhos envolvendo detecção de botnets em computadores e dispositivos móveis, que utilizem machine learning para esta detecção, e trabalhos relacionados à detecção de malwares em dispositivos Android, por meio de uma análise dinâmica das aplicações; 2. Selecionar as características mais utilizadas e relevantes para a detecção de botnets e quais informações sobre a execução do aplicativo são relevantes para sua classificação em malware ou não; 3. Escolher os algoritmos de aprendizado de máquina que possuírem os melhores índices de detecção de botnets e os mesmos serão treinados com as características relevantes escolhidas; 4. Os testes de desempenho dos algoritmos serão executados em um ambiente mais próximo da realidade, utilizando um tablet real, e seus resultados comparados com os encontrados por trabalhos na área, permitindo também a implementação de uma aplicação para a detecção em tempo real de bot malwares. 4. Procedimentos metodológicos/métodos e técnicas Primeiramente, será feito uma revisão bibliográfica dos trabalhos que tenham como tema a detecção de botnets em computadores e em dispositivos móveis e trabalhos envolvendo a detecção de malwares em dispositivos Android. Com relação aos primeiros, serão identificados os algoritmos de aprendizado de máquina utilizados, bem como ranqueá-los quanto ao seu desempenho, os conjuntos de dados que foram utilizados em cada trabalho, quais características foram utilizadas para classificar o tráfego da rede como um tráfego gerado por uma botnet e possíveis técnicas adicionais que tenham sido empregadas no processo de classificação. Com relação ao segundo grupo, serão identificados quais trabalhos realizam a detecção por meio de análise dinâmica das aplicações. Serão, então, anotadas as características que são utilizadas para a classificação de aplicações malwares e também possíveis ferramentas, como sandboxes ou ambientes virtuais para a coleta dessas informações. Os conjuntos para treino, validação cruzada e testes serão criados por meio de uma captura dos pacotes da rede utilizando a ferramenta Wireshark [9] e simultaneamente coletando chamadas de sistema por meio do comando Linux strace ou algum software que realize uma coleta similar. Os períodos de coleta serão divididos em duas partes: 1. Coleta dos dados durante um período sem botnets instaladas no dispositivo, onde este pode ser divido em outras duas partes:

(a) Um período com o dispositivo em inatividade; (b) Outro período com o uso de aplicações diversificadas. 2. Coleta dos dados durante um período com botnets instaladas no dispositivo, sendo dividido nas seguintes sub-partes: (a) Um período de inatividade, mas com os malwares bots instalados no dispositivo; (b) Períodos com a atividade de apenas um bot malware, para verificar seu comportamento quando isolado de outros malwares que podem competir por recursos; (c) Diversas combinações entre quais bots malwares estão instalados no dispositivo, para verificar seu comportamento no meio de outros bot malwares. Utilizando Python, serão filtradas as informações desejadas de cada um destes arquivos, tanto os arquivos com captura do tráfego de rede, como os arquivos contendo as chamadas de sistema executadas pelos aplicativos. Os dados encontrados serão analisados estatisticamente. Esta operação possibilitará encontrar outliers e possíveis ruídos na capturas, para então trata-los e, também, normalizar os dados gerados. Os algoritmos de aprendizado de máquina que foram escolhidos na segunda etapa serão reimplementados, ou por meio de módulos de aprendizado do Python, ou com implementação própria, dependendo das necessidades encontradas. Estes serão treinados usando o conjunto de dados separados para treino. Em seguida, os algoritmos treinados serão apresentados à base de dados para validação cruzada. Os algoritmos que obterem os melhores desempenhos serão os escolhidos para tentar classificar a base de dados para testes. Estatísticas e gráficos serão gerados para cada uma dessas execuções com finalidade de representar o desempenho de cada um deles. O último passo de validação será em tempo real, utilizando o próprio dispositivo, onde o mesmo será monitorado por algum tempo e o algoritmo selecionado tentará detectar a presença, ou não, de uma botnet no dispositivo. 5. Cronograma de Execução Atividades a serem realizadas: 1. Revisão bibliográfica; 2. Coleta dos dados necessários para o treinamento e os testes que serão realizados; 3. Escolha das características que serão utilizadas nos algoritmos de aprendizado de máquina; 4. Escolha dos algoritmos de aprendizado de máquina que serão implementados; 5. Treino dos algoritmos de aprendizado de máquina; 6. Aplicação de um feature selector para selecionar as características que tem impacto no sucesso da detecção; 7. Testes utilizando os algoritmos treinados em um conjunto de dados para testes; 8. Teste do algoritmo que possuiu melhor desempenho no tablet real; 9. Organização e criação de mecanismos que possibilitem a visualização dos resultados obtidos; 10. Escrita do TCC;

Tabela 1. Cronograma de Execução abr mai jun jul ago set out nov Atividade 1 X X X X Atividade 2 X X Atividade 3 X X Atividade 4 X Atividade 5 X X Atividade 6 X Atividade 7 X X Atividade 8 X Atividade 9 X X Atividade 10 X X X X 6. Contribuições e/ou Resultados esperados Este trabalho busca relacionar características usadas para a detecção de botnets e características geradas a partir da execução de aplicativos, usadas para a detecção de malwares de dispositivos móveis, no treino de algoritmos de aprendizado de máquina, com o intuito de verificar sua eficácia na detecção de botnets em dispositivos móveis e validar seu desempenho em um ambiente real. 7. Espaço para assinaturas Londrina, 13 de junho de 2016. Referências Aluno Orientador [1] Erdem Alparslan, A Karahoca, and Dilek Karahoca. BotNet Detection: Enhancing Analysis by Using Data Mining Techniques. 2012. [2] Elaheh Biglar Beigi, Hossein Hadian Jazi, Natalia Stakhanova, and Ali A Ghorbani. Towards Effective Feature Selection in Machine Learning-Based Botnet Detection Approaches. pages 247 255, 2014. [3] Maryam Feily, Alireza Shahrestani, and Sureswaran Ramadass. A survey of botnet and botnet detection. Proceedings - 2009 3rd International Conference on Emerging Security Information, Systems and Technologies, SECURWARE 2009, pages 268 273, 2009. [4] Lin K.-C., Chen S.-Y., and Hung J.C. Botnet detection using support vector machines with artificial fish swarm algorithm. Journal of Applied Mathematics, 2014, 2014.

[5] Ahmad Karim, Rosli Salleh, and Muhammad Khurram Khan. SMARTbot: A Behavioral Analysis Framework Augmented with Machine Learning to Identify Mobile Botnet Applications. Plos One, 11(3):e0150077, 2016. [6] S. B. Kotsiantis, I. D. Zaharakis, and P. E. Pintelas. Machine learning: A review of classification and combining techniques. Artificial Intelligence Review, 26(3):159 190, 2006. [7] Tom M Mitchell. Machine Learning. Number 1. 1997. [8] Andrew Ng. Machine learning. https://class.coursera.org/ml-003/ lecture. Accessed: 05/05/2016. [9] Angela Orebaugh, Gilbert Ramirez, Jay Beale, and Joshua Wright. Wireshark & Ethereal Network Protocol Analyzer Toolkit. Syngress Publishing, 2007. [10] Sherif Saad, Issa Traore, Ali Ghorbani, Bassam Sayed, David Zhao, Wei Lu, John Felix, and Payman Hakimian. Detecting P2P botnets through network behavior analysis and machine learning. 2011 9th Annual International Conference on Privacy, Security and Trust, PST 2011, pages 174 180, 2011. [11] Sérgio S C Silva, Rodrigo M P Silva, Raquel C G Pinto, and Ronaldo M. Salles. Botnets: A survey. Computer Networks, 57(2):378 403, 2013. [12] Matija Stevanovic and Jens Myrup Pedersen. Aalborg Universitet Machine learning for identifying botnet network traffic Stevanovic, Matija; Pedersen, Jens Myrup. 2013. [13] Matija Stevanovic and Jens Myrup Pedersen. An efficient flow-based botnet detection using supervised machine learning. 2014 International Conference on Computing, Networking and Communications (ICNC), pages 797 801, 2014.