Prévia do material em texto
BRUNO FERREIRA LEAL IDENTIFICAÇÃO DE ATRIBUTOS RELEVANTES EM CYBER SEGURANÇA São José do Rio Preto 2018 Câmpus de São José do Rio Preto BRUNO FERREIRA LEAL IDENTIFICAÇÃO DE ATRIBUTOS RELEVANTES EM CYBER SEGURANÇA Trabalho de Conclusão de Curso (TCC) apresentado como parte dos requisitos para obtenção do título Bacharel em Ciência da Computação, junto ao Departamento de Ciências da Computação e Estatística, do Instituto de Biociências, Letras e Ciências Exatas da Universidade Estadual Paulista “Júlio de Mesquita Filho”, Câmpus de São José do Rio Preto. Orientador: Prof. Dr. Adriano Mauro Cansian São José do Rio Preto 2018 BRUNO FERREIRA LEAL IDENTIFICAÇÃO DE ATRIBUTOS RELEVANTES EM CYBER SEGURANÇA Trabalho de Conclusão de Curso (TCC) apresentado como parte dos requisitos para obtenção do título Bacharel em Ciência da Computação, junto ao Departamento de Ciências da Computação e Estatística, do Instituto de Biociências, Letras e Ciências Exatas da Universidade Estadual Paulista “Júlio de Mesquita Filho”, Câmpus de São José do Rio Preto. Comissão Examinadora Profª. Drª. Adriano Mauro Cansian UNESP – Câmpus de São José do Rio Preto Orientador Prof. Dr. Geraldo Francisco Donegá Zafalon UNESP – Câmpus de São José do Rio Preto Prof. Dr. Leandro Alves Neves UNESP – Câmpus de São José do Rio Preto São José do Rio Preto 2018 AGRADECIMENTOS Primeiramente agradeço a Deus e minha família por todo suporte prestado ao longo destes anos. Agradeço ao meu pai José, minha mãe Adriana, meus irmãos Marlon e Luana pelo incentivo aos estudos desde muito tempo atrás. Agradeço à minha noiva Marcia que também foi um dos pilares para eu pudesse chegar até aqui. Também agradeço aos meus tios Amado e Maria por tudo que fizeram. Ao meu primo Jonathas também pelo incentivo. E a minha avó Veneranda que nunca esquecerei. Agradeço aos atuais membros do laboratório ACME!, Leandro Gonçalves, Amanda Barbosa, Pedro Ferracini, Álvaro Pompeu, Rafael Luizete, Leopoldo Ferreira, Marcos Silveira e Vinicios Barretos, pelos conhecimentos compartilhados e auxílio no desenvolvimento deste projeto, assim como outros membros que já se foram mas contribuíram igualmente. Ao meu orientador Prof. Dr. Adriano Mauro Cansian pelos conhecimentos passados e pela orientação, contribuindo significativamente para minha formação acadêmica e pessoal. Aos amigos feitos durante o curso, Amanda Barbosa, João Otavio e todos outros que se eu for listar não caberá aqui. “O que acontece não é tão importante quanto como você reage ao que acontece.” Ellen Glasgow RESUMO A utilização de assinaturas de ataques para identificar atividades maliciosas em redes de computadores tem sido uma abordagem amplamente utilizada em IDSs devido sua baixa taxa de falsos-positivo. No entanto, o custo para se produzir novas assinaturas que acompanhem o surgimento de novos ataques e variações de ataques existentes tem sido um desafio para estes sistemas. Em vista disto, no presente trabalho é proposta uma abordagem baseada na utilização de algoritmos de aprendizado de máquina não-supervisionados para realizar o agrupamento das assinaturas mais similares dentre aquelas que caracterizam determinado ataque, assim, reduzindo significantemente a quantidade de assinaturas redundantes. Então, a partir do agrupamento com maior quantidade de assinaturas, Pontos de Cortes (PC) foram aplicados sobre os atributos identificados até que fossem identificados cada Ponto de Corte Ótimo (PCO) determinante dos atributos suficientemente relevantes para caracterização das classes de ataque analisadas e suas variações. Palavras-chave: Cyber Segurança, Atributos Relevantes, Assinatura de Ataque, Sistema de Detecção de Intrusão. ABSTRACT The use of attack signatures to identify malicious activity in computer networks has been a widely used approach in IDSs because of its low false-positive rate. However, the cost of producing new signatures that accompany the emergence of new attacks and variations of existing attacks has been a challenge for these systems. In this work, we propose an approach based on the use of unsupervised machine learning algorithms to perform the grouping of the most similar signatures among those that characterize a given attack, thus significantly reducing the number of redundant signatures. Then, from the cluster with the largest number of signatures, Cut Points (PC) were applied on the identified attributes until each of the Optimum Cutting Point (PCO) was determined determining the attributes relevant enough to characterize the attack classes analyzed and their attributes. variations. Keywords: Cyber Security, Relevant Attributes, Attack Signature, Intrusion Detection System i LISTA DE FIGURAS Figura 1: Estrutura regra Suricata IDS. ...................................................................... 10 Figura 2: Estrutura regra SNORT IDS. ...................................................................... 11 Figura 3: Arquitetura do sistema. ............................................................................... 17 Figura 4: Arquitetura generalizada do sistema para N conjunto de assinaturas. ........ 18 Figura 5: Método de análise de atributos. .................................................................. 20 Figura 6: Visão geral do ambiente virtual de coleta de fluxo. ................................... 29 Figura 7: Escolha do ponto de corte ótimo. ............................................................... 35 Figura 8: Ataque de negação de serviço..................................................................... 37 Figura 9: Ataque de varredura de vulnerabilidades. .................................................. 37 Figura 10: Ataque de varredura de serviços. .............................................................. 38 Figura 11: Ataque de força bruta. ............................................................................... 39 Figura 12: Redução da quantidade de atributos componentes das assinaturas. ......... 40 ii LISTA DE TABELAS Tabela 1: Descrição elementos regra Suricata IDS. ................................................... 11 Tabela 2: Descrição elementos regra SNORT IDS. ................................................... 12 Tabela 3: Atributos de fluxos de rede. ....................................................................... 16 Tabela 4: Matriz de confusão. .................................................................................... 27 Tabela 5: Quantidade de fluxos coletados por tipo. ................................................... 29 Tabela 6: Resultado agrupamento utilizando o algoritmo DBSCAN. ....................... 31 Tabela 7: Resultado agrupamento utilizando o algoritmo Hierarchical Clustering. . 32 Tabela 8: Resultado agrupamento utilizando o algoritmo K-Means.......................... 32 Tabela 9: Resultado agrupamento utilizando o algoritmo Spectral Clustering. ........ 33 Tabela 10: Proporção de assinaturas por cluster para o ataque de força bruta. ......... 33 Tabela 11: Análise do PCO por classe de ataque. ...................................................... 36 iii LISTA DE ABREVIATURAS E SIGLAS ARFF: Attribute-Relation File Format CERT.br: Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil CTI: Cyber Threat Intelligence DBN: Deep Belief Network DPI:Deep Package Inspection FN: False Negative FP: False Positive FPR: False Positive Rate FRFS: Fuzzy Rough Set Feature Selection FTP: File Transfer Protocol HIDS: Host-Based Intrusion Detection System IaaS: Infrastructure as a Service IDS: Intrusion Detection System IETF: Internet Engineering Task Force IPS: Intrusion Prevention System Fintech: Financial Technology MEA: Módulo de Extração de Atributos MIFS: Mutual Information based Feature Selection NGFW: Next Generation Firewall NIDS: Network-Based Intrusion Detection System PaaS: Platform as a Service PC: Ponto de Corte PCO: Ponto de Corte Ótimo SaaS: Software as a Service SSH: Secure Shell SVM: Support Vector Machine TN: True Negative iv TP: True Positive TPR: True Positive Rate UTM: Unified Threat Management v ÍNDICE CAPÍTULO 1 - Introdução .......................................................................................... 1 1.1 Motivação ........................................................................................................... 2 1.2 Objetivo .............................................................................................................. 4 1.3 Organização da Monografia ............................................................................... 4 CAPÍTULO 2 - Revisão Bibliográfica......................................................................... 5 2.1 Fluxo de Dados ................................................................................................... 5 2.2 Ataque à Rede de Computadores ....................................................................... 6 2.2.1 Ataque de força bruta ................................................................................... 7 2.2.2 Ataque de negação de serviço ...................................................................... 7 2.2.3 Ataque de varredura ..................................................................................... 8 2.3 Sistema de Detecção de Intrusão ........................................................................ 8 2.3.1 Sistema de detecção de intrusão por abuso .................................................. 8 2.3.2 Sistema de detecção de intrusão por anomalia............................................. 9 2.4 Assinatura de Ataques ........................................................................................ 9 2.4.1 Modelo de assinatura Suricata IDS ............................................................ 10 2.4.2 Modelo de assinatura SNORT IDS ............................................................ 11 2.5 Aprendizado de Máquina ................................................................................. 12 2.6 Trabalhos Correlatos ........................................................................................ 13 CAPÍTULO 3 - Descrição do Projeto ........................................................................ 15 3.1 Conjunto de Assinatura de Entrada .................................................................. 15 3.2 Arquitetura do Sistema ..................................................................................... 16 3.2.1 Obtenção do conjunto de assinaturas ......................................................... 18 vi 3.2.2 Módulo de extração de atributos (MEA) ................................................... 18 3.2.3 Seletor de assinaturas ................................................................................. 20 3.3 Ferramentas Utilizadas ..................................................................................... 20 3.4 Considerações Finais ........................................................................................ 21 CAPÍTULO 4 - Experimentos e Resultados .............................................................. 22 4.1 Métricas para Análise dos Algoritmos de Agrupamento ................................. 23 4.1.1 Homogeneidade ......................................................................................... 23 4.1.2 Completude ................................................................................................ 24 4.1.3 Pureza......................................................................................................... 25 4.1.4 Coeficiente de silhueta ............................................................................... 25 4.2 Métricas para Análise dos Resultados .............................................................. 26 4.3 Ambiente de Simulação e Coleta ..................................................................... 28 4.4 Teste e Análise dos Resultados ........................................................................ 30 4.4.1 Algoritmos de agrupamento....................................................................... 30 4.4.2 Identificação de atributos relevantes.......................................................... 34 4.5 Considerações Finais ........................................................................................ 40 CAPÍTULO 5 - Conclusão ......................................................................................... 41 5.1 Conclusões Gerais ............................................................................................ 41 5.2 Dificuldades Encontradas ................................................................................. 42 5.3 Trabalhos Futuros ............................................................................................. 42 REFERÊNCIAS BIBLIOGRÁFICAS ....................................................................... 44 1 CAPÍTULO 1 - Introdução O aumento do acesso à internet e de dispositivos que estão interconectados através dela é notório ao longo dos anos. Estima-se que em 2019 haverá por volta de 40 bilhões de dispositivos interconectados, um crescimento de cerca de 400% em relação aos 10 bilhões existentes em 2013 (THIERER; CASTILLO, 2015). Tal crescimento reflete diretamente na forma de interação entre as pessoas, no modo de geração e absorção de conteúdo, e até mesmo na forma como serviços e aplicações são ofertados, como é o caso de ambientes em nuvem que oferecem sob demanda: serviços de software - SaaS (do inglês, Software as a Service), serviços de plataforma - PaaS (do inglês, Platform as a Service) e serviços de infraestrutura - IaaS (do inglês, Infrastructure as a Service) (KRISHNA, 2015). Como consequência de tal fenômeno, o tempo que as pessoas despendem conectadas à Internet e o volume de dados gerado tem crescido constantemente (HAZAS et al., 2016). Com a amplificação do acesso à internet e suas diferentes formas de uso, expandiu-se também a variedade de alvos e o modo como cibercriminosos podem explorar ferramentas, sistemas web, e aplicações por meio de falhas ou até mesmo do próprio funcionamento dos protocolos de comunicação de rede (MANSFIELD- 2 DEVINE, 2015). Se em outrora atacantes tinham como alvos segmentos ou aplicações específicas devido à pequena diversidade e dificuldade de acesso existente, sem estas restrições, instituições financeiras (fintechs), médicas e educacionais, públicas ou governamentais, tornaram-se alvos também visados. No ano de 2017, 24% das brechas exploradas por indivíduos mal intencionados foram em instituições de saúde, e 58% das vítimas de ataques cibernéticos no mundo foram categorizadas como sendo negócios de pequeno porte (VERIZON, 2018). A fim de lidar com tais ameaças, difundiram-se meios e ferramentas que se propõem a evitar, mitigar ou identificar um ataque o mais rápido possível. Soluções como Sistema de Detecção de Intrusão (IDS, sigla em inglês), Sistema de Prevenção de Intrusão (IPS, sigla em inglês), Gerenciamento Unificado de Ameaças (UTM, sigla em inglês) e Firewall de Próxima Geração(NGFW, sigla em inglês) tem ganhado espaço, tornando-se alternativas interessantes para instituições que buscam agregar segurança às suas redes e aplicações (NEELY, 2016). Ainda, como reflexo desta preocupação, o compartilhamento de informações sobre ataques por meio de canais públicos de divulgação de ameaças, os chamados Feeds abertos de Cyber Threat Intelligence (CTI), tem contribuído para reduzir a quantidade de alvos afetados por ataques identificados e previamente divulgados para a comunidade de segurança de informação (JASPER, 2017). Contudo, a velocidade com que variações e mutações de um mesmo ataque têm surgido dificulta a reutilização de informações como as fornecidas pelos Feeds de CTI, uma vez que mudanças simples no comportamento de um determinado ataque pode descaracterizá-lo se comparado as informações compartilhadas previamente, possibilitando, por sua vez, a evasão de sistemas de detecção que utilizam como base tais informações. 1.1 Motivação Diante do volume de dados a ser processado, a utilização de abordagens consideradas convencionais para identificação de atividades maliciosas, como a análise do conteúdo que está sendo transmitido na rede realizada por alguns IDSs, 3 tem se mostrado inviável. Isto acontece devido ao alto processamento envolvido no processo de Inspeção Profunda de Pacotes (DPI, sigla em inglês) (FALLAHI; SAMI; TAJBAKHSH, 2016), uma vez que este é diretamente proporcional ao volume de dados a ser analisado (KAZEMI; FANIAN, 2015). Em vista disso, estudos voltados para a identificação de eventos de rede por meio da análise de fluxo têm sido explorados em trabalho como os de (CORRÊA, 2009), (FERREIRA, 2016) e (GALHARDI, 2017), em que IDSs baseados na análise deste fluxo são propostos. Além disso, outro problema relacionado às abordagens convencionais de monitoramento de ameaças, é a não detecção de variações de ataques ou eventos de rede pertencentes a uma mesma classe de atividade, característica comum em IDSs que utilizam assinaturas como método de detecção, por exemplo. No entanto, a redução da taxa de falso-positivo atrelada ao método de detecção por assinaturas permite que analistas de segurança da informação deem prioridade para o tratamento de eventos que podem realmente gerar riscos para o ambiente. Além disto, a não detecção de variações de eventos relacionados a uma mesma classe de atividade, mesmo havendo assinaturas para elementos pertencentes a tal classe, é um problema recorrente deste método, permitindo que indivíduos maliciosos explorem tal característica e evadam estes IDSs alterando singelamente seu método de ataque. Neste contexto, a utilização de abordagens utilizando aprendizado de máquina e inteligência artificial para detecção de atividades maliciosas com comportamentos similares tem se mostrado um campo promissor. Em (ASHFAQ et al., 2017), (KAKIHATA et al., 2017) e (RAO; BATTULA; KRISHNA, 2017) são apresentadas metodologias que, com o aprendizado de máquina, são obtidas acurácias acima de 90% na caracterização de eventos. A eficiência adquirida utilizando tal abordagem, aliada a análise de eventos de rede baseado em fluxo, constituíram a motivação principal para o desenvolvimento deste trabalho. 4 1.2 Objetivo Este trabalho tem como objetivo a identificação de atributos relevantes em assinaturas de eventos de rede por meio da aplicação de métodos de aprendizado de máquina e do correlacionamento de atributos comuns pertencentes à mesma classe comportamental de determinado evento. Desta forma, permitindo que sejam identificados apenas aqueles suficientemente relevantes para caracterização de tal classe e, por sua vez, a criação de assinaturas genéricas para as mesmas. 1.3 Organização da Monografia Esta monografia está dividida em quatro seções principais, incluindo a atual. No Capítulo 2, é realizada uma revisão bibliográfica a fim de contextualizar o leitor sobre os conceitos e tecnologias utilizadas para o desenvolvimento desta pesquisa. No Capítulo 3, é feita uma descrição do sistema, sua arquitetura e componentes, além da metodologia utilizada para o cumprimento dos objetivos propostos. No Capítulo 4, são apresentados os testes realizados e resultados obtidos para o modelo proposto. Por fim, no Capítulo 5, são apresentadas as conclusões obtidas, as dificuldades encontradas e propostas de trabalhos futuros. 5 CAPÍTULO 2 - Revisão Bibliográfica Este capítulo tem por objetivo apresentar a fundamentação teórica necessária para o entendimento do trabalho, introduzindo os conceitos e tecnologias utilizadas para o desenvolvimento do mesmo, bem como trabalhos correlatos ao projeto. 2.1 Fluxo de Dados A extração de informações sintetizadas a partir de um conjunto de dados reduz consideravelmente a quantidade de informação a ser analisada independentemente do objetivo traçado para tal análise. Em redes de computadores toda a troca de dados entre dispositivos interconectados é conhecida como tráfego (KUROSE; ROSS, 2016). A exportação de fluxo de dados é uma técnica que permite a sumarização e contabilização de todo tráfego envolvido na comunicação entre os elementos da rede a partir de um ponto de observação na topologia da mesma (OLIVEIRA, 2016). A fim de padronizar as informações que compõem o fluxo de dados na Internet, o IETF (do inglês, Internet Engineering Task Force), órgão regulador da 6 Internet, em 2013 redefiniu através do RFC 7011 o protocolo IPFIX, que especifica de forma detalhada quais campos devem compor um fluxo de dados (CLAISE; TRAMMELL; AITKEN, 2013). A criação e especificação de tal protocolo uniformiza o processo de exportação e coleta de informações de dispositivos de rede, como roteadores e switchs, proporcionando maior eficiência no processo de armazenamento e análise de tais informações. O Netflow, definido pelo RFC 3954, é um protocolo privado de exportação de fluxo de dados criado pela Cisco para ser incorporado a seus equipamentos (CLAISE, 2004). Em sua versão 5, o Netflow passou a ser amplamente difundido e adotado por outras empresas do mesmo segmento e se tornou base para a criação do IPFIX. O Netflow V9 é a evolução do Netflow V5 e agrega campos provenientes do protocolo de rede IPv6, permitindo a extração de características do fluxo não presentes no IPv4, protocolo sobre o qual o Netflow V5 se baseia. Além disso, a implementação de templates no Netflow V9 permite a definição de quais informações serão exportadas para análise, garantindo que apenas dados relevantes sejam sumarizados e contabilizados no processo de análise. 2.2 Ataque à Rede de Computadores A fim de obter informações sigilosas a respeito de dados de usuários ou até mesmo expor falhas de segurança de determinado ambiente ou aplicação, ataques à rede de computadores fazem uso de vulnerabilidades para evadir sistemas de proteção e, por muitas vezes, causar danos alterando o funcionamento normal da rede e dos dispositivos conectados a ela (HOQUE et al., 2014). Ataques às redes de computadores podem ser classificados em duas categorias: passivos e ativos. Ataques passivos são aqueles em que o invasor captura os dados transmitidos e analisa o tráfego de rede para obter informações e identificar padrões de uso da mesma. Enquanto que, em ataques ativos o invasor executa comandos, utiliza de aplicações maliciosas, conhecidas como malware, ou induzem usuários a realizarem operações que alterem o funcionamento normal da rede (PAWAR; ANURADHA, 2015). 7 A seguir são descritos alguns dos ataques mais recorrentes em redes de computadores e amplamente abordados na literatura. 2.2.1 Ataque de força bruta Ataques de força bruta são ataques voltados parasistemas que utilizam métodos de autenticação baseados em credenciais de acesso como usuário e senha. Indivíduos maliciosos se propõem a explorar aplicações que utilizam este método de autenticação, como SSH (do inglês, Secure Shell), FTP (do inglês, File Transfer Protocol) e aplicações web, a partir de sucessivas tentativas de descoberta destas credenciais, tendo com o objetivo obter acesso ao sistema ou a aplicação alvo (NAJAFABADI et al., 2015). Também, a utilização de senhas padrões ou de variações simples contendo apenas algumas letras e números permite que mutações deste ataque tenham alta taxa de sucesso, como a utilização de dicionários contendo combinações pré-determinadas de possíveis credenciais que tenham alta taxa de acerto (SATOH; NAKAMURA; IKENAGA, 2015). 2.2.2 Ataque de negação de serviço Por meio de acessos coordenados de diferentes fontes, geralmente espalhadas pelo mundo, ataques de negação de serviço têm por objetivo sobrecarregar determinado serviço de modo que ele se torne indisponível (HOQUE et al., 2014). Tornar um determinado serviço indisponível para outras pessoas pode gerar perdas imensuráveis, uma vez que simplesmente impedir o acesso à informação em determinada circunstância pode gerar perdas não só financeiras, mas também de confiabilidade naquele serviço (D’CRUZE et al., 2018). Cerca de 26,41% dos ataques reportados ao CERT.br (Centro de Estudos, Resposta e Tratamento de Incidentes de Segurança no Brasil) no ano de 2017 foram de negação de serviço (CERT.BR, 2018). 8 2.2.3 Ataque de varredura A obtenção de informações a respeito do alvo pode ser considerada como uma etapa de preparação de indivíduos maliciosos antes de executarem ataques mais elaborados. Ataques de varredura possibilitam que atacantes descubram informações como quais serviços estão sendo executados em determinada rede, a versão do sistema operacional utilizado pelo alvo e portas vulneráveis ao ataque, de modo que permitem um ataque direcionado considerando as informações obtidas (HOQUE et al., 2014). Cerca de 53,16% dos ataques reportados ao CERT.br no ano de 2017 foram de varredura (CERT.BR, 2018). 2.3 Sistema de Detecção de Intrusão A utilização de sistemas para a identificação de atividades maliciosas de forma passiva, por meio de IDSs, ou de forma ativa, por meio de IPSs, tem como objetivo auxiliar na detecção e emissão de alertas de ameaças e na adoção de contra medidas contra as mesmas. IDSs ainda podem variar de acordo com o método de detecção empregado, podendo ser baseado em abuso ou anomalia, de acordo o ambiente a ser monitorado, podendo ser baseado em host1, os chamados HIDS (do inglês, Host- Based Intrusion Detection System), ou baseado em rede, os chamados NIDS (do inglês, Network Based Intrusion Detection System) (OLIVEIRA, 2016). 2.3.1 Sistema de detecção de intrusão por abuso Sistemas de detecção de intrusão baseados em abuso têm como característica principal a identificação de atributos que caracterizam determinada atividade que fora conhecida previamente no ambiente monitorado. A partir de tais atributos são 1 Host é um elemento computacional presente na extremidade de rede de computadores e que a s utilizam para a comunicação de dados entre si e um sistema final. 9 definidas assinaturas que distinguem dado comportamento de forma única dos demais observados (HINDY et al., 2018). Os IDSs utilizam estas assinaturas em um processo de comparação com dados trafegando na rede ou no host. Ao serem encontradas similaridades um alerta sobre tal correspondência é emitido para um analista com o intuito de notificar a presença de tal comportamento no ambiente monitorado e a tomada de medidas a respeito do mesmo. 2.3.2 Sistema de detecção de intrusão por anomalia Sistemas de detecção de intrusão baseados em anomalia têm como principal característica a identificação de comportamentos divergentes do usual no ambiente monitorado. Tal característica é importante devido sua sensibilidade ante atividades maliciosas nunca antes vistas no sistema (HINDY et al., 2018). No entanto, a alta taxa de alertas gerados para eventos não maliciosos, ou seja, de falsos-positivo, reduz sua eficiência de uso da perspectiva de analistas, visto que o tempo gasto na identificação e tratamento de falsos-positivo é muito custoso considerando-se a criticidade associada a tomada de decisões para verdadeiros-positivo. 2.4 Assinatura de Ataques Assinaturas são padrões que podem ser utilizados para identificar e representar de forma única pessoas, objetos e comportamentos. Em Segurança da Informação, assinaturas de ataques são padrões usados para identificar eventos maliciosos levando em consideração características pertencentes ao mesmo (MIRELES; CHO; XU, 2016), como quantidade de dados transmitidos em uma comunicação, tempo entre tentativas de acesso mal sucedidas e alterações comportamentais no uso da rede, de dispositivos ou aplicações. Como apresentado na Seção 2.3.1, IDSs baseados em abuso utilizam de assinaturas para identificar eventos de rede, agregando maior acurácia a seu sistema de detecção já que suas métricas de classificação exigem a combinação exata de 10 determinada atividade de rede com uma de suas assinaturas para que seja realizada a caracterização de determinado ataque. Nas Seções 2.4.1 e 2.4.2 foram descritas brevemente os modelos de assinaturas utilizados pelos IDSs Suricata e SNORT, respectivamente, ambos baseados em abuso. 2.4.1 Modelo de assinatura Suricata IDS O Suricata é um NIDS baseado em assinatura, além de IPS e Monitorador de Segurança da Rede de alta performance (SURICATA, 2018). A partir de uma base de regras pré-definidas, que caracterizam suas assinaturas, o Suricata emite alertas uma vez que haja correspondência entre o fluxo analisado e uma de suas assinaturas (WANKHADE, 2016). A estrutura de formação de regras do Suricata é apresentada na Figura 1. Figura 1: Estrutura regra Suricata IDS. Fonte: produzida pelo próprio autor. Na Tabela 1, apresenta-se uma breve descrição de cada componente da estrutura de formação de regra do Suricata. action header options 11 Tabela 1: Descrição elementos regra Suricata IDS. Elemento Descrição action determina o que irá acontecer quando houver uma correspondência com a assinatura. Ex: emitir um alerta. header onde são definidos o protocolo, endereços IP, portas e a direção do fluxo a que a regra se aplica. rule options define opções da regras como, mensagem referente a regra e conteúdo a ser analisado. Fonte: produzida pelo próprio autor. 2.4.2 Modelo de assinatura SNORT IDS Assim como o Suricata, o SNORT é um NIDS baseado em assinatura que permite, além de outras coisas, a análise do trafego de rede em tempo real (SNORT, 2018). As assinaturas utilizadas pelo SNORT são constituídas de regras que definem um determinado comportamento de interesse na rede (GHAFIR et al., 2016). A estrutura de formação de regras do SNORT é apresentada na Figura 2. Figura 2: Estrutura regra SNORT IDS. Fonte: produzida pelo próprio autor. Na Tabela 2, apresenta-se uma breve descrição da função de cada elemento que compõe a estrutura de formação de regra do SNORT. action proto source dir dest ( body ) 12 Tabela 2: Descrição elementos regra SNORT IDS. Elemento Descrição action diz ao Snort o que fazer quando uma regra "dispara", isto é, quando a assinatura coincide. Neste caso, o Snort irá registrar o evento. Ele também pode fazer algo como bloquear o fluxo ao executar inline. proto diz ao Snort qual protocolo se aplica. Isso pode ser ip, icmp, tcp, udp, http, etc. source especifica o endereçoIP e a porta de envio, sendo que qualquer um deles pode ser a palavra-chave any, que é um caractere curinga. dir deve ser unidirecional como mostra a Figura 3a ou bidirecional indicado por <>, como mostra a Figura 3b. dest semelhante à fonte, mas indica o fim de recepção. ( body ) detecção e outras informações contidas em parênteses. Fonte: produzida pelo próprio autor. 2.5 Aprendizado de Máquina Permitir que máquinas aprendam mediante novas informações dadas como entrada e as interpretem de maneira automatizada seguindo um modelo predeterminado têm proporcionado estudos e avanços em diversos segmentos, sejam eles públicos ou privados, na área financeira, hospitalar ou de estudo de consumo. Aprendizado de máquina consiste em um conjunto de técnicas matemáticas e estatísticas aplicadas em sistemas computacionais que permitem realizam o processamento de grandes volumes de dados a fim de extrair informações, detectar padrões e realizar inferências a partir dos dados analisados (CHIO; FREEMAN, 2018). 13 Algoritmos de aprendizado de máquina são classificados em dois grandes grupos, sendo eles: algoritmos de aprendizado supervisionado e algoritmos de aprendizado não supervisionado. Algoritmos de aprendizado supervisionado utilizam de conjuntos de dados previamente classificados pertencentes ao domínio do problema a ser tratado para “ensinar” o modelo o proposto, que posteriormente é avaliado submetendo-se um novo conjunto de testes pertencente ao mesmo domínio do problema para averiguar a acurácia do modelo e então realizar predições (REESE et al., 2017). Por sua vez, algoritmos de aprendizado não supervisionado utilizam de modelos que tem como objetivo encontrar relações entre os dados fornecidos, no entanto, diferentemente do modelo supervisionado, tais dados não possuem qualquer tipo de classificação prévia, deixando a cargo do modelo o agrupamento e classificação dos dados de acordo com parâmetros pré-estabelecidos (REESE et al., 2017). 2.6 Trabalhos Correlatos A identificação e extração de características representadas por atributos presentes em fluxos de rede que caracterizam atividades maliciosas têm sido uma área de estudo amplamente abordada na comunidade de segurança, muito devido ao fato de que tais atributos quando combinados permitem, como descrito na Seção 2.5., a criação de assinaturas de ataques. No entanto, a fim de lidar com o volume de dados a serem processados, bem como a grande variedade de atividades maliciosas existem atualmente, tais estudos têm se voltado tanto à identificação de tais atributos quanto e criação automatizada de assinaturas a partir deles, como abordado nos trabalhos de (ELEJLA et al., 2018), (SHARMA; SINGLA; GULERIA, 2018) e (SHIM et al., 2018). David e Netanyahu (DAVID; NETANYAHU, 2015) utilizam em seu trabalho Redes De Confiança Profundas (DBN, sigla em inglês), uma classe de aprendizado de máquina não supervisionado baseada em Redes Neurais, para a criação de vetores de características para malwares. Uma vez criados, os vetores de características distinguem classes de softwares maliciosos e são utilizados como base para a geração 14 automatizada de assinaturas para os mesmos. Os resultados apresentados pelos autores mostram que as assinaturas geradas a partir das características extraídas pelo DBN atingem cerca de 98,6% de precisão na detecção de variantes de malwares pertencentes a uma mesma família. No trabalho de Huda et al. (HUDA et al., 2017) os autores enfatizam o fato de que continuamente ataques sofrem variações para contornar e se esconder de IDSs e outros sistemas de detecção convencionais, em vista disso, os autores utilizam algoritmos de agrupamento semi-supervisionado para a identificação de ataques desconhecidos, extraindo características dos ataques intrínsecas aos agrupamentos gerados. Uma vez obtida, tais características são integradas ao sistema de classificação do mecanismo de detecção proposto. A abordagem proposta utiliza o algoritmo K-means para a formação dos agrupamentos dos quais são extraídos os atributos adicionados ao Sistema de Classificação de Vetores de Suporte (SVM, sigla em inglês). A principal contribuição da abordagem proposta é que ela não requer esforço especializado para atualizar o banco de dados do mecanismo de detecção, fazendo-o de maneira automatizada a partir das características obtidas previamente. Os autores em (YANG; WANG; ZHONG, 2014) utilizaram de métodos supervisionados e não supervisionados de aprendizado de máquina para geração automática de assinatura de ataques. No modelo proposto, foi utilizado o algoritmo supervisionado de árvore de decisão para classificar o fluxo de rede entre normal e anormal de acordo com características presentes nas camadas de rede e de transporte. Nos dados considerados anormais pelo algoritmo supervisionado, os autores também se utilizaram do algoritmo K-means para realizar o agrupamento dos k subconjuntos de dados com atributos relativamente semelhantes. Para cada k-subconjunto extraiu- se características dos elementos pertencentes ao mesmo, características a partir das quais foram elaboradas as assinaturas. A principal contribuição dada pelos autores consiste na efetividade no agrupamento de elementos semelhantes, cerca de 96%. Alinhando-se aos trabalhos correlatos, o presente trabalho discute um modelo de extração de atributos suficientemente relevantes que caracterizam classes de ataques, ora agrupados de acordo similaridades. 15 CAPÍTULO 3 - Descrição do Projeto Este capítulo tem como objetivo apresentar a metodologia utilizada durante a elaboração deste trabalho. Nas Seções 3.2, 3.3 e 3.4 foram apresentados o método de obtenção dos conjuntos de assinaturas a serem analisadas, a arquitetura do sistema proposto e as ferramentas utilizadas para o desenvolvimento do projeto, respectivamente. 3.1 Conjunto de Assinatura de Entrada Os conjuntos de assinaturas dos quais serão obtidos os atributos para análise foram gerados de forma automatizada a partir da avaliação do fluxo de rede abordada no trabalho de outro membro2 do laboratório ACME, local onde esta pesquisa foi realizada. Tanto o conjunto de assinaturas fornecido como entrada, quanto as assinaturas geradas pelo trabalho proposto podem ser adequadas aos principais IDSs baseados em assinatura da atualidade, como SNORT IDS e Suricata IDS. Na Tabela 2 Leandro Bertini Lara Gonçalves 16 3, apresenta-se todos os possíveis atributos componentes das assinaturas de entrada e que, consequentemente, serão analisados. Tabela 3: Atributos de fluxos de rede. Atributo Descrição Atributo Descrição srcaddr Endereço da origem do fluxo dpkts_response Número de pacotes enviados pelo destino destaddr Endereço do destino do fluxo TCP_dest_A Presença de flag TCP ACK de pacotes do destino srcport Número da porta da camada de transporte da origem TCP_dest_F Presença de flag TCP FIN de pacotes do destino destport Número da porta da camada de transporte destino TCP_dest_R Presença de flag TCP RST de pacotes do destino proto Protocolo de transporte utilizado TCP_dest_S Presença de flag TCP SYN de pacotes do destino first Tempo de início do fluxo TCP_src_A Presença de flag TCP ACK de pacotes da origem last Tempo de fim do fluxo TCP_src_F Presença de flag TCP FIN de pacotes da origem doct_response Número de bytes enviados pelo destino TCP_src_R Presença de flag TCP RST de pacotes da origem doct_source Número de bytes enviados pela origem TCP_src_S Presença de flag TCP SYN de pacotes da origem dpkts_source Número de pacotes enviados pela origem Fonte: produzida pelo próprio autor. 3.2 Arquitetura doSistema A arquitetura proposta para execução do projeto, descrita na Figura 3, foi segmentada em três componentes principais, sendo eles: Conjunto de Assinaturas, 17 Módulo de Extração de Atributos (MEA) e o Gerador de Assinatura. A importância de cada componente, bem como o papel desempenhado por eles são descritos de forma detalhada nas Seções 3.2.1, 3.2.2 e 3.2.3, respectivamente. Figura 3: Arquitetura do sistema. Fonte: produzida pelo próprio autor. Na Figura 4, ilustra-se a generalização da arquitetura apresentada na Figura 3 para N conjuntos distintos de assinaturas fornecidos como entrada. 18 Figura 4: Arquitetura generalizada do sistema para N conjunto de assinaturas. Fonte: produzida pelo próprio autor. 3.2.1 Obtenção do conjunto de assinaturas Este componente é responsável pelo pré-processamento de cada conjunto Ai de assinaturas, tal que, Ai = {assinatura1, assinatura2, …, assinaturaj}, i = 1, 2, …, N, j = 1, 2, ..., M, sendo N o número de conjuntos de entrada representado da Figura 3.2 e M a quantidade de assinaturas presente no conjunto. Nesta etapa, os atributos e valores de cada assinatura do conjunto Ai são reorganizados seguindo o formato de arquivo ARFF (do inglês, Attribute-Relation File Format). Arquivos no formato ARFF são amplamente usados para representar conjuntos de dados a serem processados por algoritmos de aprendizado de máquina (WITTEN et al., 2016). 3.2.2 Módulo de extração de atributos (MEA) O MEA é o componente responsável pelo processamento das informações de entrada, estas formatadas e, assim, aptas para a realização da análise e extração dos atributos mais relevantes a partir das mesmas. Uma vez que as assinaturas analisadas não possuem qualquer tipo de classificação baseada em seus atributos, o primeiro procedimento realizado pelo 19 MEA é a formação de grupos disjuntos de assinaturas, conhecidos como clusters, que mais se assemelham umas às outras, ou seja, foi realizado um processo de clusterização (WITTEN et al., 2016). Para a realização desta etapa foi utilizado o algoritmo de aprendizado de máquina não supervisionado K-means, em que o valor de K, que representa a quantidade de clusters que serão formados, foi estimado de forma empírica. Posteriormente, sobre o cluster com maior quantidade de instâncias de assinaturas da mesma classe foram aplicados dois métodos distintos de análise. Ambos os métodos propostos consideram a análise quantitativa da ocorrência de cada atributo no cluster. Na primeira abordagem, ilustrada na Figura 3.3, inicialmente os atributos são ordenados de modo decrescente segundo o número de ocorrência da cada um deles, na sequência é feita uma análise da variação quantitativa entre os atributos adjacentes, em que a maior variação encontrada se tornará o “ponto de corte” que definirá quais atributos são relevantes. Na segunda abordagem, ilustrada na Figura 5, o “ponto de corte” é definido a partir do cálculo do limite superior do valor médio de ocorrência dos atributos somado do desvio padrão. A partir da combinação dos pontos de corte obtidos por meio dos métodos de análise são identificados os atributos mais relevantes referentes àquela classe de assinatura. A combinação dos métodos permite uma maior acurácia com relação às características obtidas. 20 Figura 5: Método de análise de atributos. Fonte: produzida pelo próprio autor. 3.2.3 Seletor de assinaturas De posse dos atributos mais relevantes fornecidos pelo MEA, um subconjunto de assinaturas é extraído a partir da combinação destes. Os valores que compõem os pares {atributo, valor} para formação da assinatura são fornecidos a partir da análise estatística de valores de atributos genéricos das assinaturas abordada no trabalho de outro membro3 do laboratório ACME!. 3.3 Ferramentas Utilizadas O projeto foi desenvolvido utilizando a linguagem Python. Sua escolha deve-se a gama de bibliotecas e plataformas existentes para implementação e utilização de algoritmos de aprendizado de máquina disponíveis para a linguagem (REESE et al., 2017). Dentre estas, está a biblioteca Scikit-Learn, que contém em sua coleção de algoritmos estatísticos e de aprendizado de máquina aqueles utilizados no desenvolvimento deste projeto. Além disso, o Scikit-Learn contém ferramentas que 3 Amanda Barbosa Sobrinho ∆2 ∆N ∆1 ∆0 Ponto de corte 21 permitem o pré-processamento, classificação, clusterização e visualização dos dados analisados (SCIKIT-LEARN, 2018). 3.4 Considerações Finais Neste capítulo foram descritos o funcionamento do projeto e de seus componentes, bem como toda linha de raciocínio seguida para sua elaboração, de forma a justificar cada etapa adotada no processo de obtenção dos atributos procurados. Além disso, também foram explicitadas quais as tecnologias e ferramentas empregadas em sua construção. O próximo capítulo apresenta brevemente as próximas etapas do projeto, bem como o cronograma para finalização do mesmo. 22 CAPÍTULO 4 - Experimentos e Resultados Neste capítulo são apresentados os experimentos realizados e os resultados obtidos a partir da abordagem proposta nesta pesquisa. A fim de validar o método proposto, foram realizados testes em dois conjuntos distintos de dados contendo informações sobre fluxo de rede malicioso e fluxo de rede normal, respectivamente. Na Seção 4.1 são descritas as métricas utilizadas para realizar a análise dos algoritmos de agrupamento abordados no projeto. Na Seção 4.2 são expostas as métricas utilizadas para realizar a análise dos resultados do modelo proposto como um todo. Na Seção 4.3 é apresentado o ambiente no qual foram coletados os dados que originaram as assinaturas bases para a validação do modelo. Na Seção 4.4 são descritos os resultados obtidos a partir dos experimentos realizados. Por fim, na Seção 4.5 são feitas as considerações finais sobre os resultados obtidos e o desempenho da metodologia proposta. 23 4.1 Métricas para Análise dos Algoritmos de Agrupamento A utilização de algoritmos de aprendizado de máquina não-supervisionado, como os de agrupamento utilizados neste trabalho, tem sido amplamente aplicado na literatura para identificar relações entre dados que a princípio são totalmente independentes uns dos outros. No entanto, apesar da aplicação massiva destas técnicas para solucionar tal demanda, a avaliação da qualidade das relações identificadas por estes é essencial para atestar a confiabilidade e integridade dos agrupamentos gerados. A escolha do melhor algoritmo de agrupamento para o cenário deste trabalho justifica-se a partir da análise de métricas como Homogeneidade, Completude, Pureza e Coeficiente de Silhueta, descritas nas Seções 4.1.1, 4.1.2, 4.1.3 e 4.1.4, respectivamente. Ainda, para a discussão das métricas analisadas as seguintes asserções devem ser adotadas: - quantidade de instâncias presentes no conjunto de dados analisado - conjunto de classes associada às instâncias - conjunto de agrupamentos associado às instâncias - tabela de contingência produzida a partir do algoritmo de agrupamento - número de instâncias membro da classe e pertencente ao agrupamento . 4.1.1 Homogeneidade No contexto de agrupamento, a homogeneidade (h) refere-se à taxa de pertencimento exclusivo de determinada instância a um dado agrupamento, ou seja, um algoritmo homogêneo deve atribuir apenas uma única classe a cada instância de um conjunto de dados. Em uma escala de zero a um, quanto mais próximo de um, mais homogêneo éo agrupamento. Na Equação 1, descreve-se a formulação matemática que representa o cálculo da homogeneidade de um agrupamento. Na 24 Equação 2, apresentaa-se o cálculo da entropia das instâncias pertences a cada classe condicionada ao agrupamento associado às mesmas. Já, na Equação 3, ilustra-se unicamente o cálculo da entropia das instâncias pertences a cada classe. 4.1.2 Completude Um agrupamento é considerado completo (c) se todas as instâncias de uma determinada classe são atribuídas a um mesmo agrupamento. Em uma escala de zero a um, quanto mais próximo de um, mais completo é o agrupamento. Na Equação 4, apresenta-se a formulação matemática que descreve o cálculo da completude de um agrupamento. Na Equação 5, descreve-se o cálculo da entropia das instâncias pertences a cada agrupamento, condicionada à classe associadas às mesmas. Já, na Equação 6, ilustra-se unicamente o cálculo da entropia das instâncias pertences a cada agrupamento. , se , caso contrário onde, (Equação 1) (Equação 2) (Equação 3) 25 4.1.3 Pureza Para calcular a pureza, cada agrupamento é associado à classe de instância mais frequentes no mesmo, em seguida, a precisão dessa atribuição é medida através da razão entre o número de agrupamentos cujas classes foram atribuídas corretamente, e o número total de instâncias dos agrupamentos identificados. Na Equação 7, descreve-se como é realizado o cálculo da pureza. Onde, é número de classes existentes, é o número total de agrupamentos, é o tamanho do cluster , e é o número de instâncias da classe no cluster . Em uma escala de zero a um, quanto mais próximo de um, mais puro é o agrupamento. 4.1.4 Coeficiente de silhueta O coeficiente de silhueta, métrica de maior relevância para a escolha do algoritmo utilizado, descreve o quão bem o modelo que define o agrupamento condiz com os dados que estão sendo analisados. Para tal, ele considera a distância euclidiana entre os elementos pertencentes ao mesmo agrupamento e a distância entre os elementos pertencentes aos agrupamentos vizinhos. O cálculo do coeficiente , caso contrário , se onde, Pureza (Equação 4) (Equação 5) (Equação 6) (Equação 7) 26 de silhueta, , para cada instância, , é representado na Equação 8. Em uma escala de menos um a um, em que quanto mais próximo de um, melhor definida a instância está nos limites que definem o modelo. O valor 0 indica que a instância está ligada ou muito próxima do limite do modelo entre dois agrupamentos vizinhos. Valores negativos indicam que essas instâncias podem ter sido atribuídas ao agrupamento errado. em que, – distância média entre uma amostra e todos os outros pontos da mesma classe – distância média entre uma amostra e todos os outros pontos no próximo cluster mais próximo 4.2 Métricas para Análise dos Resultados A avaliação do modelo proposto consistente essencialmente na análise binária da identificação, ou não, de um evento de rede definido por meio do conjunto de assinaturas geradas para o mesmo. Neste contexto, para a avaliação do método proposto foram utilizadas métricas amplamente empregadas para análise binária de sistema de detecção de intrusão. Quando um caso positivo é detectado corretamente a partir de uma assinatura pré definida para o mesmo têm-se um verdadeiro positivo (TP), caso contrário, têm-se um falso negativo (FN). No entanto, da perspectiva dos casos negativos, quando estes são detectados corretamente, têm-se um verdadeiro negativo (TN), caso contrário, têm-se um falso positivo (FP). A matriz de confusão apresentada na Tabela 4 descreve a visualização dos casos descritos. (Equação 8) 27 Tabela 4: Matriz de confusão. Valor Predito Positivo (Anomalia) Negativo (Normal) Valor Real Positivo (Anomalia) TP FN Negativo (Normal) FP TN Fonte: produzida pelo próprio autor. A partir dos valores oriundos da matriz de confusão métricas expressivas a respeito do modelo são derivadas. Algumas delas são: Sensibilidade, ou taxa de verdadeiros positivos (TPR): representada na Equação 9, descreve-se a relação entre todos os casos positivos corretamente classificados sobre o total de casos corretamente classificados. Especificidade, ou taxa de falsos positivos (FPR): representada na Equação 10, descreve-se a relação entre todos os casos negativos corretamente classificados sobre o total de casos erroneamente classificados. Precisão: representada na Equação 11, descreve-se a relação entre todos os casos positivos corretamente classificados sobre o total de casos classificados como positivo. (Equação 11) (Equação 9) (Equação 10) 28 Acurácia: representada na Equação 12, descreve-se a relação entre todos os casos corretamente classificados sobre o total de casos analisados. Esta métrica é diretamente relacionada à performance do modelo. 4.3 Ambiente de Simulação e Coleta O modelo proposto neste trabalho é fundamentado na análise dos atributos presentes em assinaturas de eventos de rede gerados único e exclusivamente a partir do cabeçalho presente nos fluxos que os caracterizam. Logo, para que se pudesse avaliar o modelo, um conjunto considerável de assinaturas se fez necessário. A geração dos fluxos que deram origem a tais assinaturas foi realizada em um ambiente virtual construído a partir do uso de máquinas virtuais (VMs) sobre o software VirtualBox (VIRTUALBOX, 2018) em sua versão 5.2. O ambiente virtual, ilustrado na Figura 6, é composto por nove máquinas virtuais distribuídas da seguinte forma: cinco pertencentes ao grupo alvo dos ataques, três pertencentes ao grupo de máquinas atacantes e uma representando o roteador responsável por manter a comunicação entre os grupos de VMs existentes. Este ambiente permitiu a realização de ataques simulados como, ataque de negação de serviço (DoS), ataque de força bruta, ataque de varredura de serviços em execução e ataques de varredura de vulnerabilidades em serviços web. Os fluxos referentes aos ataques foram coletados e armazenados em uma base de dados para análise posterior das assinaturas geradas a partir dos mesmos, assim como um conjunto de fluxos legítimos originados e coletados do laboratório ACME!. (Equação 12) 29 Figura 6: Visão geral do ambiente virtual de coleta de fluxo. Fonte: produzida pelo próprio autor. Na Tabela 5, apresenta-se a quantidade de fluxos coletados para cada ataque simulado no ambiente virtual, assim como a quantidade de assinaturas geradas a partir dos mesmos. Também foram coletados 120.000 exemplares de fluxo legítimo para fins comparativos. Tabela 5: Quantidade de fluxos coletados por tipo. Tipo de Fluxo Quantidade Assinaturas Ataque de Negação de Serviço 50.002 50 Ataque de Força Bruta 50.002 50 Ataque de Mapeamento de Serviço em host 50.002 50 Ataque de Mapeamento de Vulnerabilidades 50.002 50 Legítimo 120.000 --- Fonte: produzida pelo próprio autor. 30 4.4 Teste e Análise dos Resultados Nesta Seção serão tratados os testes e resultados pertinentes ao modelo proposto. Na Seção 4.4.1 são apresentados os resultados obtidos no processo de eleição do algoritmo de agrupamento utilizado no modelo. Na Seção 4.4.2 é descrito os resultados obtidos a partir da identificação dos atributos mais relevantes para caracterizar um evento de rede, voltado para os ataques analisados. 4.4.1 Algoritmos de agrupamento Os testes para a escolha do algoritmo de aprendizado de máquina não supervisionado voltado para agrupamento das assinaturas mais semelhantes dentro do conjunto de assinaturas obtido ocorreu em função dos seguintes fatores: Algoritmo: foram consideradospara o modelo quatro dos principais algoritmos de agrupamento amplamente utilizados na literatura, sendo eles: DBSCAN, Hierarchical Clustering, K-Means e Spectral Clustering. Além disso, para cada algoritmo, foram utilizadas suas implementação padrões do Scit-Learn, respectivamente. Quantidade de agrupamentos: a quantidade de agrupamentos, fator diretamente relacionado ao modo como os dados são agrupados nos respectivos algoritmos, também foi determinante na escolha do algoritmo utilizado no modelo. Para cada um dos algoritmos de analisados, foram realizadas execuções considerando 2, 3, 4, 5 e 6 agrupamentos. Ao final dos testes, assim como observado nos trabalho citados da Seção 2.6, o algoritmo K-Means se provou a melhor escolha para o agrupamento dos conjuntos de assinaturas dados como entrada. Em sua execução considerando 5 agrupamentos, o algoritmo K-Means apresentou uma taxa de 88.25% de adequação do modelo aos dados analisados. Tal valor, observado através do cálculo do coeficiente de silhueta, foi determinante para a escolha da utilização do algoritmo no modelo. Além disso, o algoritmo foi o que se mostrou mais consistente quanto à homogeneidade, completude e pureza dos agrupamentos realizados, tais métricas foram introduzidas 31 nas Seções 4.1.1, 4.1.2 e 4.1.3, assim como o coeficiente de silhueta introduzido na Seção 4.1.4. Na Tabela 6, apresenta-se os resultados dos testes realizados para o algoritmo DBSCAN sobre as assinaturas referentes ao ataque de força bruta. Observa-se que o algoritmo se comportou mal diante as métricas analisadas. Uma vez que, os únicos resultados com pontuação acima de 50% foram no cálculo da Pureza utilizando dois e cinco agrupamentos. Tabela 6: Resultado agrupamento utilizando o algoritmo DBSCAN. Qtd. Cluster Homogeneidade Completude Pureza Coeficiente de Silhueta 2 0.10289 0.04788 0.38639 0.18589 3 0.27206 0.20060 0.59091 0.18589 4 0.18780 0.16698 0.47727 0.18589 5 0.24318 0.23912 0.52273 0.18589 6 0.15828 0.18710 0.31818 0.18589 Fonte: produzida pelo próprio autor. Na Tabela 7, apresenta-se os resultados dos testes realizados para o algoritmo Hierarchical Clustering sobre as assinaturas referentes ao ataque de força bruta. Observa-se que apesar do modelo que define o algoritmo, em sua configuração padrão, possuir 64.84% de adaptação diante os dados analisados, o mesmo se comportou de forma razoável quanto à pureza obtida e mal considerando as demais métricas avaliadas. 32 Tabela 7: Resultado agrupamento utilizando o algoritmo Hierarchical Clustering. Qtd. Cluster Homogeneidade Completude Pureza Coeficiente de Silhueta 2 0.06721 0.09815 0.56818 0.64846 3 0.07839 0.17757 0.45455 0.64846 4 0.09263 0.15848 0.43182 0.64846 5 0.09737 0.29726 0.34091 0.64846 6 0.07378 0.24367 0.29545 0.64846 Fonte: produzida pelo próprio autor. Na Tabela 8, apresenta-se os resultados dos testes realizados para o algoritmo K- Means sobre as assinaturas referente ao ataque de força bruta. Observa-se que o modelo que define o algoritmo, em sua configuração padrão e utilizando cinco agrupamentos, mostrou-se promissor quanto sua adaptação aos dados analisados, obtendo pontuação de 88.25% no coeficiente de silhueta, assim como na pureza obtida no agrupamento, obtendo pontuação de 61.36%. Apesar de ter apresentado um comportamento razoável considerando as demais métricas avaliadas, o algoritmo K- Means com cinco agrupamentos foi o que apresentou melhor performance quanto ao que lhe foi proposto, seguido pelos algoritmos Hierarchical Clustering utilizando dois agrupamentos e K-Means utilizando seis agrupamentos. Tabela 8: Resultado agrupamento utilizando o algoritmo K-Means. Qtd. Cluster Homogeneidade Completude Pureza Coeficiente de Silhueta 2 0.00449 0.01240 0.56818 0.58161 3 0.06016 0.07220 0.43182 0.50252 4 0.09304 0.22125 0.43182 0.57805 5 0.22784 0.27689 0.61364 0.88254 6 0.14550 0.32008 0.31818 0.63821 Fonte: produzida pelo próprio autor. Na Tabela 9, apresenta-se os resultados dos testes realizados para o algoritmo Spectral Clustering sobre as assinaturas referentes ao ataque de força bruta. Observa- 33 se que apesar do modelo que define o algoritmo, em sua configuração padrão, possuir 53.21% de adaptação diante os dados analisados, o mesmo se comportou de forma razoável quanto à pureza obtida e mal considerando as demais métricas avaliadas. Tabela 9: Resultado agrupamento utilizando o algoritmo Spectral Clustering. Qtd. Cluster Homogeneidade Completude Pureza Coeficiente de Silhueta 2 0.01751 0.00898 0.59091 0.53219 3 0.14309 0.11518 0.56818 0.53219 4 0.12489 0.12749 0.45455 0.53219 5 0.17990 0.19727 0.43182 0.53219 6 0.10235 0.13492 0.31818 0.53219 Fonte: produzida pelo próprio autor. A execução do algoritmo K-Means sobre as assinaturas representativas do ataque de força bruta, considerando cinco agrupamentos, permitiu a construção da Tabela 10. Na Tabela 10, descreve-se a proporção de assinaturas em cada grupo formado, destacando-se o grupo um, com cerca de 52% das assinaturas analisadas, as quais passaram pelo método de seleção de atributos ilustrado na Figura 3. Tabela 10: Proporção de assinaturas por cluster para o ataque de força bruta. Qtd. Cluster Qtd. Assinaturas Proporção 0 8 16% 1 26 52% 2 9 18% 3 4 8% 4 3 6% Fonte: produzida pelo próprio autor. 34 4.4.2 Identificação de atributos relevantes Para cada classe de ataque foi estendida a análise descrita na Tabela 10. De posse da proporção de assinaturas em cada agrupamento, os testes a seguir foram aplicados estritamente sobre aquele com maior ocorrência de assinaturas. Tal abordagem, a exemplo de Tabela 10, reduziu em cerca de 48% a quantidade de assinaturas que definem o ataquem, o que, por si só, representa um ganho de desempenho computacional considerável com relação ao processamento necessário para análise das assinaturas e identificação dos eventos na rede. De posse do conjunto de assinaturas mais semelhantes entre si foi realizada a contagem da ocorrência dos atributos descritos na Tabela 3. Os atributos considerados qualitativos, que sempre quando presentes serão considerados como parte essencial componente da assinatura, como SrcAddr, DestAddr, PortSrc, PortDst e Proto, não fizeram parte da contagem. Para os demais atributos, estes considerados quantitativos, foram analisadas quais assinaturas continham aqueles presentes a partir da definição do ponto de corte (PC) sobre o histograma dos atributos. A Figura 7 ilustra o processo de escolha do ponto de corte ótimo (PCO) sobre o histograma organizado em ordem descrente referente à ocorrência dos atributos nas assinaturas de ataque de varredura de vulnerabilidades. Descartados os atributos que não tiveram presença em nenhuma das assinaturas do conjunto, o PC1 foi disposto logo à frente do primeiro conjunto de atributos com menor ocorrência, então, todas as assinaturas contendo todos os atributos à esquerda do ponto de corte foram avaliadas novamente. O PC2 foi disposto logo à frente do segundo conjunto de atributos com menor ocorrência, então, novamente todas as assinaturas contendo todos os atributos à esquerda do ponto de corte foram avaliadas. 35 Figura 7: Escolha do ponto de corte ótimo. Fonte: produzida pelo próprio autor. Para cada ponto de corte foram avaliadas a sensibilidade, especificidade, precisão e acurácia das assinaturas resultantes, métricas estas descritas na Seção 4.3. O PCO representa o instante a partir do qual as assinaturas definidas através dos atributos analisados obtiveram o melhor desempenho seguindo o modelo proposto, obtendo-se, assim, o conjunto de atributos mais relevantes para a detecção do respectivo evento na rede. Uma análise dos resultadosobtidos para todos os PC, incluindo o PCO, de cada conjunto de assinaturas analisada permitiu a criação da Tabela 11. Em termos gerais, todos os PCOs obtiveram bons resultados com relação ao desempenho obtido considerando todas as assinaturas de cada conjunto de ataque. PC1 PC2 PCO PC0 36 Tabela 11: Análise do PCO por classe de ataque. Tipo de Ataque PC Sensibilidade Especificidade Precisão Acurácia Negação de Serviço #1 0.95230 0.22000 0.54973 0.58615 #2 0.87534 0.35054 0.49327 0.73654 PCO 0.76325 0.71800 0.84054 0.98238 Varredura de Vulnerabilidade #1 0.29981 0.86543 0.89198 0.65432 #2 0.47279 0.74541 0.93156 0.70540 PCO 0.83545 0.92455 0.95790 0.97076 Varredura de Serviços #1 0.56455 0.48520 0.71910 0.88113 #2 0.73211 0.65465 0.85770 0.76321 #3 0.71023 0.61135 0.85889 0.87330 #4 0.89231 0.78846 0.91621 0.93400 PCO 1.0000 0.98200 0.91645 0.94231 Força Bruta #1 1.00000 0.26000 0.57471 0.63000 #2 0.85055 0.62210 0.68944 0.71204 PCO 0.86570 0.93102 0.88132 0.90564 #3 0.68545 0.77645 0.59220 0.60410 Fonte: produzida pelo próprio autor. Na Figura 8, observa-se que houveram melhorias significativas na sensibilidade, precisão e acurácia na detecção do ataque de negação de serviço, considerando-se apenas assinaturas que continham os atributos identificados como suficientemente relevantes para esta classe de ataque. No entanto, houve um detrimento da especificidade na detecção, comparando-se o subconjunto de assinaturas obtido em relação à análise realizada com todas as assinaturas do conjunto de entrada, estas últimas abrangendo todos os atributos da classe. 37 Figura 8: Ataque de negação de serviço. Fonte: produzida pelo próprio autor. Na Figura 9, observa-se que houveram perdas na sensibilidade, especificidade, precisão e acurácia na detecção do ataque de varredura de vulnerabilidade, considerando-se apenas assinaturas que continham os atributos identificados como suficientemente relevantes para esta classe de ataque em ralação à análise realizada com todas as assinaturas do conjunto de entrada, estas últimas abrangendo todos os atributos da classe. Figura 9: Ataque de varredura de vulnerabilidades. Fonte: produzida pelo próprio autor. 38 Na Figura 10, observa-se que houveram melhorias significativas na especificidade, precisão e acurácia na detecção do ataque de varredura de serviços, considerando-se apenas assinaturas que continham os atributos identificados como suficientemente relevantes para esta classe de ataque. Observa-se tal resultado comparando o subconjunto de assinaturas obtido em relação à análise realizada com todas as assinaturas do conjunto de entrada, estas últimas abrangendo todos os atributos da classe. Figura 10: Ataque de varredura de serviços. Fonte: produzida pelo próprio autor. Na Figura 11, observa-se que houveram melhorias na sensibilidade e acurácia na detecção do ataque de força bruta, considerando-se apenas assinaturas que continham os atributos identificados como suficientemente relevantes para esta classe de ataque. No entanto, houve um detrimento da especificidade e precisão na detecção comparando-se o subconjunto de assinaturas obtido, em relação à análise realizada com todas as assinaturas do conjunto de entrada, estas últimas abrangendo todos os atributos da classe. 39 Figura 11: Ataque de força bruta. Fonte: produzida pelo próprio autor. Além disso, na Figura 12, é possível observar a redução do volume de atributos iniciais considerados para cada conjunto de assinaturas, 33 no total. Para o ataque de negação de serviço, após a realização do agrupamento das assinaturas representativas da classe, foram registrados 18 atributos no grupo com maior quantidade de instâncias. Destes, apenas 9 atributos foram classificados como suficientemente relevantes para caracterizar o ataque, representando uma diminuição de 72.73% na quantidade de atributos. Estendendo tal análise, para os demais ataques observou-se uma redução de 75.76%, 75.76% e 81.82% na quantidade total de atributos necessários para identificar os ataques de varredura de vulnerabilidades, varredura de serviço e força bruta, respectivamente. 40 Figura 12: Redução da quantidade de atributos componentes das assinaturas. Fonte: produzida pelo próprio autor. 4.5 Considerações Finais Com a análise dos resultados pôde-se concluir sobre a efetividade do modelo proposto. O sistema de identificação de atributos relevantes atingiu altos níveis de precisão e acurácia nos testes realizados. Além disso, o modelo reduziu consideravelmente a quantidade de atributos necessários para descrever cada conjunto de assinaturas com relação ao volume total inicial considerado. Ainda, houve um ganho com relação à performance na execução dos IDSs, devido o número reduzido de assinaturas presente no subconjunto gerado a partir da seleção daquelas contendo os atributos ora identificados como relevantes. No próximo capítulo são apresentadas as conclusões do trabalho, bem como as dificuldades encontradas para o desenvolvimento do mesmo e propostas de trabalhos futuros. 41 CAPÍTULO 5 - Conclusão 5.1 Conclusões Gerais A criação automatizada de assinaturas que definem um determinado comportamento de rede, principalmente em se tratando de ataques, tem sido um desafio amplamente explorado pela comunidade de segurança da informação. No entanto, a geração de grandes volumes de assinaturas referentes a ataques pertencentes a uma mesma classe tem se tornado um problema, afetando diretamente a qualidade na detecção de tais eventos e o desempenho de IDS que as utilizam para tal análise. Identificado tal problema, o estudo apresentado e o modelo proposto neste trabalho se mostraram de grande valia para a área de segurança da informação. Visto que, em meio a um conjunto de assinaturas de determinado evento de rede, o modelo identificou que, nestas, apenas cerca de 25% dos atributos foram suficientemente relevantes para a identificação do evento, representando um ganho considerável para sistemas que possam interpretar e executar tais assinaturas. No trabalho de Huda et. al. (2017), os autores apresentaram resultados com cerca de 98.53% de acurácia na detecção de ataques segundo o modelo proposto 42 pelos mesmos. Neste trabalho, foram obtidas acurácia de 98.23%, 97.07%, 94.23, 90.56% para os ataques de negação de serviço, varredura de vulnerabilidade, varredura de serviços e força bruta, respectivamente. Os resultados obtidos foram bastante satisfatórios no que diz respeito à eficácia geral do modelo proposto. Ressaltando-se o fato de que o método utilizado para detecção dos ataques, consistindo na utilização do fluxo para geração de assinaturas, tem se mostrado bastante promissor e explorado na literatura, diferentemente da abordagem utilizando DPI explorada no trabalho de Huda et. al. (2017). Ainda, o modelo proposto se mostrou promissor no que promete em relação à identificação dos atributos mais relevantes para caracterização de eventos de rede, proporcionando a minimização dos testes necessários para identifica-los e, de forma concomitante, o aumento a eficiência no processo de detecção das classes de ataque analisadas. 5.2 Dificuldades Encontradas Uma das dificuldades encontradas nesta pesquisa foi a falta de assinaturas de eventos de rede baseadas unicamente no cabeçalho dos fluxos, desta forma não foi possível extrair todo potencial dos algoritmos de agrupamento abordados, visto que os mesmo lidam melhor com volumes de dados maiores do que os analisados. Outra característica que acrescentou dificuldades foi a própria estruturação desta pesquisa,em que duas frentes individuais se integravam em uma frente maior. Para isso, os membros procuraram sempre estar atualizados em relação ao andamento de ambas as frentes e, dessa forma, todas as atividades dependentes da outra frente puderam ser desenvolvidas com êxito. 5.3 Trabalhos Futuros Como proposta para trabalhos futuros sugere-se uma extensão do método utilizado para seleção dos atributos com abordagens diferentes das utilizadas, 43 explorando técnicas de seleção e filtragem de atributos que não foram utilizadas, como Relief, MIFS e FRFS Além disso, outro trabalho possível consiste na integração das duas frentes desenvolvidas em paralelo, associando a identificação dos atributos mais relevantes para o Cyber Segurança a seus valores com maior importância segundo análise probabilística dos mesmos. Ainda, visando uma melhoria do sistema proposto, é interessante que seja elaborado um método para a otimização da identificação dos atributos, aplicando-se métodos probabilísticos e algoritmos de aprendizado de máquina supervisionados para classificação dos mesmos, como Bootstrapping e Árvores Aleatórias. 44 REFERÊNCIAS BIBLIOGRÁFICAS ASHFAQ, Rana A. R., WANG, Xi-Zhao., HUANG, Joshua Z., ABBAS, Haider, e HE, Yu-Lin. Fuzziness based semi-supervised learning approach for intrusion detection system. Information Sciences, v. 378, p. 484-497, 2017. CERT.BR. Incidentes Reportados ao CERT.br -- Janeiro a Dezembro de 2017. Disponível em: <https://www.cert.br/stats/incidentes/2017-jan-dec/tipos- ataque.html>. Acesso em: 28 jun. 2018. CHIO, Clarence; FREEMAN, David. Machine Learning and Security. O'Reilly Media, 2018. CLAISE, Benoit. Cisco systems netflow services export version 9. 2004. Disponível em: <https://tools.ietf.org/html/rfc3954>. Acesso em: 28 jul. 2018. CLAISE, Benoit; TRAMMELL, Brian; AITKEN, Paul. Specification of the IP flow information export (IPFIX) protocol for the exchange of flow information. 2013. Disponível em: <https://tools.ietf.org/html/rfc7011>. Acesso em: 28 jul. 2018. CORRÊA, Jorge L. Um modelo de detecção de eventos em redes baseado no rastreamento de fluxos. 2009. Dissertação (Mestrado em Ciência da Computação) - Instituto de Biociências Letras e Ciências Exatas, Universidade Estadual Paulista, São José do Rio Preto, 2009. 45 DAVID, Omid E.; NETANYAHU, Nathan S. Deepsign: Deep learning for automatic malware signature generation and classification. In: Neural Networks (IJCNN), International Joint Conference on. IEEE, p. 1-8, 2015. D’CRUZE, Hubert; WANG, Ping; SBEIT, Raed O.; RAY, Andrew. A Software- Defined Networking (SDN) Approach to Mitigating DDoS Attacks . In: Information Technology-New Generations. Springer, Cham, p. 141-145, 2018. ELEJLA, Omar E.; ANBAR, Mohammed; BELATON, Bahari; ALIJLA, Basem O. Flow-Based IDS for ICMPv6-Based DDoS Attacks Detection. Arabian Journal for Science and Engineering, p. 1-19, 2018. FALLAHI, Naser; SAMI, Ashkan; TAJBAKHSH, Morteza. Automated flow-based rule generation for network intrusion detection systems . In: Electrical Engineering (ICEE), 2016 24th Iranian Conference on. IEEE, p. 1948-1953, 2016. FERREIRA, Vinícius. O. Classificação de anomalias e redução de falsos positivos em sistemas de detecção de intrusão baseados em rede utilizando métodos de agrupamento, 2016. Dissertação (Mestrado em Ciência da Computação) - Instituto de Biociências Letras e Ciências Exatas, Universidade Estadual Paulista, São José do Rio Preto, 2016. GALHARDI, Vinícius. V. Detecção adaptativa de anomalias em redes de computadores utilizando técnicas não supervisionadas . 2017. Dissertação (Mestrado em Ciência da Computação) - Instituto de Biociências Letras e Ciências Exatas, Universidade Estadual Paulista, São José do Rio Preto, 2017. HAZAS, Mike; MORLEY, Janine; BATES, Oliver; FRIDAY, Adrian. Are there limits to growth in data traffic?: on time use, data generation and speed. In: Proceedings of the Second Workshop on Computing within Limits. ACM, p. 14, 2016. 46 HINDY, Hanan; BROSSET, David; BAYNE, Ethan; SEEAM, Amar; TACHTATZIS, Christos; ATKINSON, Robert; BELLEKENS, Xavier. A Taxonomy and Survey of Intrusion Detection System Design Techniques, Network Threats and Datasets . arXiv preprint arXiv:1806.03517, 2018. HOQUE, Nazrul; BHUYAN, Monowar H.; BAISHYA, Ram C.; BHATTACHARYYA, Dhruba K.; KALITA, Jugal K.. Network attacks: Taxonomy, tools and systems. Journal of Network and Computer Applications, v. 40, p. 307-324, 2014. HUDA, Shamsul; MIAH, Suruz; HASSAN, Mohammad M.; ISLAM, Rafiqul; YEARWOOD, John; ALRUBAIAN, Majed; ALMOGREN, Ahmad. Defending unknown attacks on cyber-physical systems by semi-supervised approach and available unlabeled data. Information Sciences, v. 379, p. 211-228, 2017. JASPER, Scott E. US cyber threat intelligence sharing frameworks . International Journal of Intelligence and CounterIntelligence, v. 30, n. 1, p. 53-65, 2017. KAKIHATA, Eduardo M.; SAPIA, Helton M.; OIAKAWA, Ronaldo T.; PEREIRA, Danilo R.; PAPA, Joao P.; ALBUQUERQUE, Victor H. C.; SILVA, Francisco A. Intrusion Detection System Based On Flows Using Machine Learning Algorithms. IEEE Latin America Transactions, v. 15, n. 10, p. 1988-1993, 2017. KAZEMI, Keihan; FANIAN, Ali. Tunneling protocols identification using light packet inspection. In: Information Security and Cryptology (ISCISC), 2015 12th International Iranian Society of Cryptology Conference on. IEEE. p. 110-115, 2015. KRISHNA, Shashank. Evolution of Cloud Computing, Comparing Cloud with Grid Computing. Evolution, v. 3, n. 4, 2015. KUROSE, James F.; ROSS, Keith W. Computer networking: a top-down approach, 6th edition,. Addison-Wesley, 2016. 47 LIAO, Hung-Jen; LIN, Chun-Hung R.; LIN, Ying-Chih; TUNG, Kuang-Yuan. Intrusion detection system: A comprehensive review. Journal of Network and Computer Applications, v. 36, n. 1, p. 16-24, 2013. MANSFIELD-DEVINE, Steve. The growth and evolution of DDoS. Network Security, v. 2015, n. 10, p. 13-20, 2015. MIRELES, Jose David; CHO, Jin-Hee; XU, Shouhuai. Extracting attack narratives from traffic datasets. In: Cyber Conflict (CyCon US), International Conference on. IEEE, p. 1-6, 2016. NAJAFABADI, Maryam M.; KHOSHGOFTAAR, Taghi M.; CALVERT,Chad; KEMP, Clifford. Detection of SSH brute force attacks using aggregated netflow data. In: Machine Learning and Applications (ICMLA), 2015 IEEE 14th International Conference on. IEEE, p. 283-288, 2015. NEELY, Lee. Exploits at the endpoint: SANS 2016 threat landscape survey. SANS Institute, Aug, v. 3, 2016. PAWAR, Mohan V.; ANURADHA, J. Network security and types of attacks in network. Procedia Computer Science, v. 48, p. 503-506, 2015. RAO, KVSN Rama; BATTULA, Sudheer K.; KRISHNA, T. L. S.R. A smart heuristic scanner for an intrusion detection system using two-stage machine learning techniques. International Journal of Advanced Intelligence Paradigms, v. 9, n. 5-6, p. 519-529, 2017. REESE, Richard M; REESE, Jennifer L.; KALUZA, Bostjan; KAMATH, Uday; CHOPPELLA, Krishna. Machine Learning: End-to-End guide for Java developers: Data Analysis, Machine Learning, and Neural Networks simplified. Packt Publishing, 1413 p, 2017. 48 SATOH, Akihiro; NAKAMURA, Yutaka; IKENAGA, Takeshi. A flow-based detection method for stealthy dictionary attacks against Secure Shell. Journal of Information Security and Applications, v. 21, p. 31-41, 2015. SCIKIT-LEARN, 2018. Disponível em: < http://scikit-learn.org/stable//>. Acesso em: 28 jun. 2018. SHARMA, Rohini; SINGLA, Ravinder K.; GULERIA, Ajay. A New Labeled Flow- based DNS Dataset for Anomaly Detection: PUF Dataset. Procedia Computer