Anais do I WORCAP, INPE, São José dos Campos, 25 de Outubro de 2001, p. 15 - 17 Aplicação do método KDD para a detecção de eventos anômalos no tráfego de rede Emiliano F. Castejon*, Antonio Montes** Laboratório Associado de Computação e Matemática Aplicada Instituto Nacional de Pesquisas Espaciais (INPE) (*)Mestrado, Bolsa CAPES, e-mail: [email protected], (**) Orientador, e-mail [email protected] Resumo Neste artigo é apresentada a aplicação do método KDD (Knowlege Discovery in Databases) sobre o conjunto de dados proveniente da captura de tráfego de rede com a finalidade de fornecer indicações da ocorrência de eventos anômalos que possam evidenciar tentativas de ataque ou intrusão sobre a rede em monitoramento.. Palavras-Chave: detecção, intrusão, KDD, data-mining Introdução Nos últimos anos vem crescendo consideravelmente o número de incidentes relativos a tentativas de intrusão e ataque a sistemas computacionais. Dentre estes, tem-se destacado ataques que envolvem inserção de tráfego anômalo na rede, como por exemplo tentativas de denial of service, onde o atacante tenta remotamente desabilitar sistemas computacionais explorando vulnerabilidades locais ou criando sobrecarga através da utilização excessiva de recursos.[1] Outra forma de atividade comumente observada é a chamada port scanning ou varredura, que geralmente é a fase inicial de tentativas de intrusão, onde o atacante tenta mapear a rede alvo de forma a relacionar hosts e serviços nela disponibilizados. Sistemas que detectam eventos anômalos no tráfego de rede ainda são primitivos e utilizam algoritmos que podem ser eventualmente driblados por um atacante[4]. Neste documento é proposto o desenvolvimento de um modelo de um sistema detector que se baseie em análise por anomalia[2] e que seja capaz de indicar a ocorrência de eventos anômalos de caráter genérico ocorridos na rede sob monitoração, mesmo na situação onde os eventos em questão possuam um grande footprint, ou seja, o tempo entre o inicio e o final do evento é grande e envolve um grande número de hosts e serviços a eles associados o que demanda alta quantidade de recursos de armazenamento para análise.[6] Aquisição de Dados A captura do tráfego de rede é efetuada pelo módulo sensor do sistema SHADOW[8] que é posicionado na rede de modo a ter contato com todo o tráfego desejado. Os dados são então compactados e armazenados em disco ficando disponíveis para análise posterior. Estes dados passam por um processo de redução de dados úteis através do descarte de campos do cabeçalho do protocolo IP e demais protocolos nele encapsulados, como mostrado nas figuras 1 e 2 onde somente os campos em negrito serão utilizados. Isto permite uma drástica redução de recursos necessários para o armazenamento. Figura 2 – Redução de dados de cabeçalho TCP Figura 1 – Redução de dados de cabeçalho IP 4 8 16 32 bits 16 Ver. IHL Type of service Total length Source port Identification Time to live Flags Protocol Acknowledgement number Header checksum Offset Destination address Option + Padding Destination port Sequence number Fragment offset Source address 32 bits Resrvd U A P R S F Checksum Window Urgent pointer Option + Padding Data Data Depois de selecionados, os dados são então inseridos em um banco SQL (PostGreSQL) [7] que fornece interface a linguagem C/C++ além de possuir métodos de compactação internos, que aqui são de grande importância devido à enorme quantidade de dados que é adquirida diariamente pela captura de tráfego de rede. Anais do I WORCAP, INPE, São José dos Campos, 25 de Outubro de 2001, p. 15 - 17 Modelo de Análise Para efetuar a detecção de eventos anômalos sobre a nova base de dados é utilizado o modelo de análise denominado KDD (Knowledge Discovery in Databases) [5] que usa técnicas de data mining relacionadas a detecção de anomalias e vem sendo aplicado na área de segurança de sistemas computacionais. Desde sua formulação em 1995 este modelo vem obtendo bons resultados em testes e experimentos na área de avaliação de sistemas de detecção de intrusão realizados pelo DARPA(http://www.ll.mit.edu/IST/ideval). O modelo KDD pode ser visto como uma seqüência lógica de passos que são iniciados pela separação de dados úteis e o seu correspondente pré-processamento. Em tais dados, os padrões seqüenciais e de mais alta freqüência são destacados e comparados a padrões associados a dados de característica não intrusiva (previamente criados), levando à extração das principais características desejadas [3]. O processo de extração das características do tráfego sob monitoramento é composto basicamente pelas três fases (não necessariamente seqüenciais) descritas a seguir. Primeira Fase: Geração de Padrões Para a geração de padrões a partir de um conjunto de dados de tráfego são feitas todas as possíveis combinações, que associam a ocorrência de dois pacotes seqüenciais à ocorrência de um terceiro pacote, dentro de uma janela de tempo deslizante que varre todo o conjunto de dados. Estas combinações, que associam a ocorrência de três eventos no tráfego produzem padrões como o mostrado na figura 3 a seguir: (serviço=http , flag = S0),(serviço=http , flag = S0) Æ (serviço = http , flag = S0) Figura 3 - Exemplo de associação de eventos Nesta forma de codificação a ocorrência de cada um dos três pacotes é representada por um valor numérico que é composto por todos os atributos relevantes dos dados do cabeçalho. Para minimizar o gasto de memória física necessária e para melhorar o desempenho da análise, tais eventos são codificados em números inteiros ou binários, tornando possível que a comparação entre padrões e eventos seja feita através de simples operações aritméticas sobre números inteiros ou binários. A título ilustrativo, um exemplo desta codificação é mostrado na Tabela 1. Nesta tabela os atributos de maior significância para a análise desejada são codificados em dígitos que são posicionados em casas de maior valor significativo (à esquerda). Fixada a codificação dos eventos, a codificação final do padrão é feita por simples agregação dos dígitos pertencentes à codificação dos eventos. Tal agregação é feita de forma a manter os dígitos referentes a atributos de maior importância em casas de maior valor significativo, como mostrado na figura 4. (serviço=http , flag = SO),(serviço=http , flag = S) Tabela 1 – Exemplo de Codificação Associação (flag = SF, serviço = http, src_bytes = 200 (serviço = icmp_echo, dst_host = host_b) (flag = S0, serviço = http, src_host = host_a) (flag = SF, serviço = icmp_echo, dst_host = host_a, src_host = host_c) Codif. 11001 02100 21010 12120 (serviço = http , flag = SO) (21),(21) (21) (2 2 2 1 1 1) CODIFICAÇÃO FINAL Figura 4 - Exemplo de Codificação de padrões Segunda Fase: Comparação aos Padrões da Linha Base Visando a redução de falsos positivos, os padrões resultantes da fase anterior são comparados aos padrões associados a comportamento intrusivo de modo que somente os padrões semelhantes a esses, serão considerados pela próxima fase. De maneira simplificada, o processo de criação deste conjunto de padrões se faz com a utilização de dois conjuntos de dados provenientes de captura de tráfego previamente tratados com as técnicas descritas anteriormente(primeira fase). Um conjunto (denominado N) é proveniente da captura de tráfego normal e o outro (denominado I) é proveniente de captura de tráfego com características intrusivas (gerado pela inserção manual ou por meio de ferramenta de ataque). Para cada padrão I é calculada sua diferença em relação a cada Anais do I WORCAP, INPE, São José dos Campos, 25 de Outubro de 2001, p. 15 - 17 padrão N. O menor resultado de todas as comparações é mantido e passa a ser a pontuação intrusiva final para aquele padrão do conjunto I. Terminada a fase de comparações, cada padrão I cuja pontuação intrusiva é diferente de zero é movido para o grupo final de padrões intrusivos que serão utilizados durante a busca por eventos Terceira Fase: Extração de Características Nesta fase cada um dos padrões com características intrusivas resultantes da fase 2 são varridos e com a utilização de três operadores básicos (operadores de contagem, média e porcentagem) têm sua ocorrência contabilizada. Ao final do processo é gerada uma tabela que associa a janela de tempo dentro da qual foi feita a análise, a ocorrência total de padrões e a ocorrência percentual de cada tipo de padrão, evidenciando assim as características intrusivas do fluxo de dados sob monitoramento. Conclusão Com a implementação do modelo proposto neste documento será possível efetuar a detecção tanto da ocorrência de eventos anômalos simulada em testes em ambiente fechado (utilizados principalmente para a criação da linha base de conhecimento) quanto daquelas detectadas pela análise de trafego real obtido pela captura realizada com a utilização de um módulo sensor de um sistema como o SHADOW instalado estrategicamente em uma rede. E, de posse de tais dados será possível a comparação de seqüências de eventos reais detectados com o surgimento de eventos relacionados com a área de segurança de sistemas (novas vulnerabilidades, ferramentas de varreduras e exploits, dentre outros). Principais Referências [1] Computer Attacks: What They Are and How to Defend Against Them. ITL Bulletins published by the Information Technology Laboratory (ITL) of the National Institute of Standards and Technology (NIST).URL: http://csrc.nist.gov/publications/nistbul/05-99.pdf [2] Bejtlich, Richard (TaoSecurity). Interpreting Network Traffic: A Network Intrusion Detector’s Look at Suspicious Events. v 2.8, 14 May 2000. URL:http://packetstorm.securify.com/papers/IDS/intv2-8.pdf [3] Lee, Wenke. Mining in a Data-flow Environment: Experience in Network Intrusion Detection. Computer Science Department, Columbia University. URL: http://www.acm.org/pubs/articles/proceedings/ai/312129/p114-lee/p114-lee.pdf [4] Staniford, Stuart (Silicon Defence). Practical Automated Detection of Stealthy Portscans. The CCS IDS Workshop – Athens. November 1, 2000. URL: http://packetstorm.securify.com/papers/IDS/spice-ccs2000.pdf [5] U. Fayyad, G. Piatetsky-Shapiro, and P. Smyth. The KDD process of extracting useful knowledge from volumes of data. Communications of the ACM, 39(11):27-34, Novembro 1996 [6] Allen, Julia. State of the Practice of Intrusion Detection Technologies. Networked Systems Survivability Program. January 2000. Techinical Report CMU/SEI-99-TR-028 URL: http://www.sei.cmu.edu/pub/documents/99.reports/pdf/99tr028.pdf [7] PostGreSQL - Object-Relational DBMS URL: http://postgresql.crimelabs.net/ [8] NSWC Shadow URL:http://www.nswc.navy.mil/ISSEC/CID/