UNIÃO EDUCACIONAL MINAS GERAIS S/C LTDA FACULDADE DE CIÊNCIAS APLICADAS DE MINAS Autorizada pela Portaria nº 577/2000 – MEC, de 03/05/2000 BACHARELADO EM SISTEMAS DE INFORMAÇÃO TRABALHO DE FINAL DE CURSO SISTEMA DE DETECÇÃO DE INTRUSOS - IDS MARCOS ANTÔNIO DE OLIVEIRA SANTOS UBERLÂNDIA, 2004 ii MARCOS ANTÔNIO DE OLIVEIRA SANTOS SISTEMA DE DETECÇÃO DE INTRUSOS – IDS Trabalho de Fim de Curso apresentado à Uniminas, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Orientador: Professor Especialista Gilson Marques Silva Uberlândia 2004 iii MARCOS ANTÔNIO DE OLIVEIRA SANTOS SISTEMA DE DETECÇÃO DE INTRUSOS – IDS Trabalho de Fim de Curso apresentado à Uniminas, como requisito parcial à obtenção do título de Bacharel em Sistemas de Informação. Banca Examinadora: Uberlândia, 06 de julho de 2004. ______________________________________ Professora Dra. Kátia Lopes Silva ______________________________________ Professor Esp. Alexandre Rangel ______________________________________ Professor Esp. Gilson Marques Silva ______________________________________ Professor Esp. Alexandre Campos iv RESUMO A segurança torna-se extremamente importante nos dias de hoje à medida que o número de ataques e intrusões a sistemas e redes de computadores aumenta de maneira significativa. Assim, para garantir o aumento da segurança, surgem novas técnicas e ferramentas, mas a falta de uma correta abordagem na seleção e implementação dessas técnicas faz com que se tornem ineficazes. Nesse sentido, este trabalho tem o objetivo de estudar as características e principais funcionalidades do Sistema de Detecção de Intrusos(IDS) executando em plataforma Linux. Após isso, foi feito um estudo de caso com o objetivo de demonstrar a utilização de um sistema de IDS. Com isto, pode-se constatar que um sistema de IDS é de extrema importância em ambientes corporativos, sejam eles pequenos ou grandes, para controlar acessos e vulnerabilidades que possam existir nos sistemas. v ABSTRACT Nowadays, security becomes extremely important while attacks and intrusions to systems and computers networks increase significantly. Then, to guarantee the security, new techniques and tools are created, but a nonexistent approach in the selection and implementation of this techniques become them inefficacious. In this direction, this monograph has the objective to study the characteristics and main functionalities of the Intrusion Detection System (IDS) executing in Linux platform. After this, a case study was made to demonstrate the utilization of an IDS system. This way, It is possible to notice that an IDS system has extreme importance in corporative environments, been them small or great, to control access and possible vulnerabilities in the systems. vi SUMÁRIO p. 1 INTRODUÇÃO ................................................................................................ 1 2 ESTUDO TEÓRICO DE SISTEMAS DE DETECÇÃO DE INTRUSOS........... 3 2.1 COMPONENTES DE UM IDS .............................................................................. 3 2.1.1 Módulo Sensor ........................................................................................ 4 2.1.2 Módulo Analisador .................................................................................. 4 2.1.3 Módulo de Gerência ................................................................................ 5 2.1.4 Módulo Reativo........................................................................................ 6 2.2 TIPOS DE IDS................................................................................................. 6 2.2.1 Sistema de Detecção de Intrusos em Rede (SDIR) .............................. 7 2.2.2 Sistema de Detecção de Intrusos em Host (SDIH) ............................. 10 2.2.3 Solução híbrida ..................................................................................... 12 2.3 TÉCNICAS DE ANÁLISE .................................................................................. 13 2.3.1 Métodos tradicionais............................................................................. 14 2.3.2 Análise baseada em assinaturas ......................................................... 15 2.3.3 Análise baseada em comportamento .................................................. 18 2.3.4 Métodos avançados .............................................................................. 20 2.4 POSICIONAMENTO DOS MÓDULOS .................................................................. 21 2.4.1 Implantando vários sensores na rede ................................................. 21 2.4.2 Posicionando sensores próximos a dispositivos de filtragem ......... 22 2.4.3 Posicionando sensores de IDS na rede interna ................................. 23 3 ESTUDO DE CASO DE UM SISTEMA IDS BASEADO EM FERRAMENTAS FREEWARE..................................................................................................... 24 3.1 CRONOGRAMA DO PROJETO .......................................................................... 24 3.2 TOPOLOGIA .................................................................................................. 25 3.2 PROJETO ..................................................................................................... 25 3.2.1 Objetivo Projeto..................................................................................... 25 3.2.3 Fases do Projeto ................................................................................... 26 vii 4 CONCLUSÃO ............................................................................................... 35 5 REFERÊNCIAS BIBLIOGRÁFICAS ............................................................. 36 viii LISTA DE FIGURAS p. FIGURA 1: MODELO GENÉRICO DE UM IDS........................................................... 3 FIGURA 2: IDS BASEADO EM REDE (SDIR) .......................................................... 7 FIGURA 3: ARQUITETURA DE UM SISTEMA DE REGISTROS .................................... 11 FIGURA 4: DETECÇÃO DE INTRUSOS HÍBRIDA ..................................................... 13 FIGURA 5: REDE DE PETRI PARA ANÁLISE DE SUCESSIVOS LOGINS INCORRETOS .. 17 FIGURA 6: TOPOLOGIA DE UMA PEQUENA REDE.................................................. 25 FIGURA 7: INSTALAÇÃO DO SNORT .................................................................... 27 FIGURA 8: INSTALAÇÃO DO APACHE ................................................................. 27 FIGURA 9: DESCOMPACTAÇÃO DO ACID........................................................... 28 FIGURA 10: TELA INICIAL DO ACID................................................................... 30 FIGURA 11: 15 ÚLTIMOS ALERTAS..................................................................... 31 FIGURA 12: ALERTAS DAS ÚLTIMAS 24 HORAS .................................................. 32 FIGURA 13: INÍCIO DO PACOTE DE UM ALERTA ................................................... 33 FIGURA 14: CONTINUAÇÃO DO CABEÇALHO TCP E DA APLICAÇÃO DE UM ALERTA 34 ix LISTA DE SIGLAS ACID - Analysis Console for Intrusion Database DoS - Denial of Service IDS - Intrusion Detection System IIS - Internet Information Server IP - Internet Protocol MAC - Medium Access Control SDIR - Sistema de Detecção de Intrusos em Rede SDIH - Sistema de Detecção de Intrusos em Host SNMP - Simple Mail Transfer Protocol TPC - Transmission Control Protocol UNIMINAS - União Educacional Minas Gerais S/C Ltda 1 INTRODUÇÃO Certamente o conceito de segurança não começou como uma ciência nem como uma arte, mas sim como um instinto. O maior interesse do homem, durante a sua história, está relacionado à segurança: sua própria, de sua família, de seus bens e de seu modo de vida. Ao mesmo tempo em que houve um enorme avanço tecnológico nas comunicações em rede, que possibilita o compartilhamento de informações a nível mundial, a segurança dessas informações e redes tornou-se crítica. Sendo o meio físico compartilhado, a probabilidade de que pessoas não autorizadas consigam acesso a informações sigilosas através de métodos ilícitos é grande. Desse modo, a presença de especialistas em segurança, aliados ao uso de poderosas ferramentas como firewalls (Sistema utilizado para inspecionar e controlar as conexões, que entram e saem, de uma rede ou sistema), criptografia, ids, etc, tornou-se indispensável na gestão de sistemas tecnológicos modernos. Administrar a segurança de uma rede de computadores, seja ela simples ou complexa, é hoje uma das principais preocupações de quem cuida da administração de rede. Não basta somente impor políticas de segurança, usar senhas fortes, manter os softwares atualizados, anti-vírus, backup, etc. Isto tudo e fundamental, mas e extremamente necessária a monitoração do sistema e a correta configuração dos equipamentos. Pois, os invasores das redes estão cada vez mais especializados e munidos de várias ferramentas cada vez mais sofisticadas. Devido ao elevado número de incidentes de segurança, a necessidade de identificar intrusões vem crescendo vertiginosamente. A utilização de assinaturas de ataque para reconhecer eventos, aliada à falta de padronização e recursos encontrados nos modelos atuais, gera a necessidade de desenvolver um padrão capaz de armazenar, codificar e difundir essas informações. Embora existam esforços no sentido da padronização, cada sistema ainda opera de forma proprietária. O assunto desse trabalho são os sistemas de detecção de intrusos (IDS), que tem na sua composição, sensores capazes de disparar alarmes caso algum evento determinado ou não esperado venha a acontecer. Assim sendo, 2 este trabalho realiza um estudo da tecnologia de IDS baseada em ferramentas freeware (ferramentas grátis) em ambiente LINUX (sistema operacional grátis), com baixo custo e muitas funcionalidades, sendo que este tipo de implementação vá contribuir incentivando empresas e entidades a implementar em suas redes o uso de um sistema de detecção de intrusos devido ao baixo custo e diminuição de riscos relacionados à segurança. No capítulo 2 será feito um estudo teórico de um IDS destacando os seus componentes, seus módulos e funcionalidades, os tipos mais comuns de IDS assim como as vantagens e desvantagens de cada tipo, técnicas de análise descrevendo seus métodos e posicionamento dos módulos envolvidos em uma ferramenta IDS. No capítulo 3 será descrito um estudo de caso de uma pequena rede para aplicar o estudo teórico realizado. 3 2 ESTUDO TEÓRICO DE SISTEMAS DE DETECÇÃO DE INTRUSOS 2.1 Componentes de um IDS A FIGURA 1 ilustra um modelo genérico de um IDS, com o módulo sensor entre a Internet e o firewall de entrada da rede de uma empresa, coletando assim todo o tráfego que posteriormente será enviado ao módulo analisador que interage com o módulo de gerência que por sua vez pode ordenar alguma reação ao módulo reativo, se o mesmo existir, ordenando-o a reconfigurar o firewall através da análise feita posteriormente. FIGURA 1: Modelo genérico de um IDS 4 2.1.1 Módulo Sensor Este módulo é o responsável pela captura dos dados que trafegam pela rede que posteriormente serão enviados para o módulo analisador para serem analisados. É recomendado que o módulo sensor seja o mais escondido possível, já que em muitos casos o mesmo deve ser colocado na rede externa ficando então vulnerável a vários ataques (Silva, 2004). Normalmente, no caso de um IDS de rede, o sensor é dedicado a tarefa de capturar todo o tráfego da rede, mas ainda assim são, normalmente, máquinas simples, sem grande poder de processamento e armazenamento, deixando isso para outros módulos, já que a sua tarefa é somente a simples captura e envio do tráfego coletado para o analisador. Sendo que no caso do IDS de host (Computadores), geralmente o módulo sensor está instalado na mesma máquina a qual se deseja proteger, e atua basicamente na coleta de dados do próprio servidor. 2.1.2 Módulo Analisador Este módulo e considerado o cérebro do IDS. Ele é o componente responsável por identificar o que é ou não um ataque. A maioria dos fabricantes utiliza somente análise de assinaturas e alguns produtos estão apenas começando a utilizar análise estatística, os sistemas adaptativos são assunto apenas de pesquisas atuais. O módulo analisador recebe os dados de um ou mais sensores, independente da topologia usada por eles. Usualmente o módulo analisador é uma máquina dedicada, pois consome boa parte dos recursos de seu sistema no processo de análise dos dados. Geralmente ele é protegido por um firewall, não importando qual topologia da rede. Este precisa apenas de permissão para comunicação com os sensores e demais componentes: os módulos reativo e de gerência, sendo que de preferência que essa comunicação seja feita de forma criptografada. 5 O módulo analisador verifica os dados coletados, normalmente armazenados em um banco de dados, e procura por possíveis eventos de segurança. O fato é que existe sempre uma comparação, seja com uma base de regras ou com um comportamento prévio, e em caso positivo um alerta será gerado para o sistema de gerência. Esta base de dados que contém os alarmes pode estar no analisador ou no sistema de gerência, isso depende da implementação. Há casos, inclusive, onde os sistemas de análise e de gerência estão instalados em um único servidor. O entendimento dos dados coletados é de fundamental importância para tratar de assinaturas de IDS, que são padrões procurados no tráfego da rede que caracterizam um ataque, para minimizar ao máximo os chamados falsos positivos – que é quando a atividade é classificada como um ataque e na verdade se trata de uma atividade benigna e os falsos negativos – que é quando uma assinatura falha ao gerar um alerta quando ocorre um ataque legítimo. 2.1.3 Módulo de Gerência Este módulo é responsável pelo armazenamento de eventos ocorridos para uma posterior análise ou que sejam de relativa importância para o sistema IDS. Também fornece, normalmente de forma on-line (instantaneamente e automaticamente), uma visualização dos eventos ocorrentes na rede monitorada, o sistema provê ainda meios para que consultas sejam feitas com base em vários parâmetros pré-definidos. Alguns sistemas fornecem gráficos por atacante, por serviço, por ocorrência e outros; alguns sistemas oferecem também gráficos de tendência destes alertas. Geralmente este módulo é composto por um servidor de páginas Internet, mais um programa que lê dados em um banco de dados alimentado pelo analisador e os exibem de forma estruturada para o operador de segurança, dando-lhe subsídios para a configuração de todos os demais módulos. 6 2.1.4 Módulo Reativo Este módulo pode ser usado para determinar, no caso de um ataque sério, a mudança da configuração do IDS, ou a de outros dispositivos de rede, para responder diferentemente ao tráfego dos hosts que por ventura estejam sendo atacadas. É o componente responsável por tomar ações baseadas nos eventos, deve ter a capacidade de comunicar-se com outros IDS, sistemas de firewall, ou até roteadores de rede. Além disso, outras ações podem ser sugeridas. Assim o modo reativo pode, por exemplo, alertar através de e-mail, bip, celular etc. O módulo reativo, nem sempre está presente em uma solução de IDS, e mesmo quando é fornecido, em muitos casos não é utilizado. O grande problema está relacionado com os falso-positivos, pois o inconveniente de recebermos uma alerta que na verdade é um comportamento normal, seria um grande inconveniente que levaria o módulo reativo a reconfigurar o firewall, de forma a inibir aquele acesso e também novos acessos daquele tipo para aquela origem, causando assim um ataque de negação de serviço. 2.2 Tipos de IDS Os sistemas de detecção de intrusos existem, como já mencionado, para indicar que alguma tentativa de intrusão que ocorreu ou está ocorrendo. Para isso, há dois tipos diferentes de detecção que podem ser usados, os baseados na rede e os baseados em host. Cada um tem uma maneira particular de abordar o problema e o modo como isso é realizado traz vantagens e também desvantagens para cada tipo. Em suma, pode-se dizer que os sistemas baseados em host monitoram dados em uma determinada máquina, sejam processos, sistemas de arquivos e o uso de CPU(Unidade de processamento central), por exemplo, enquanto que os sistemas baseados em rede observam todo os dados trafegados entre suas estações (Laufer, 2003). 7 2.2.1 Sistema de Detecção de Intrusos em Rede (SDIR) IDSs baseados em Rede (SDIRs) monitoram toda a informação que passa através da rede com coleta do tráfego no modo espião. Quando estes pacotes são capturados, é feita uma análise de cada um deles para averiguar se estes estão dentro dos padrões que foram pré-determinados ou não, indicando assim que se trata de um tráfego normal ou uma tentativa de ataque. Em um meio compartilhado de difusão, os dados passam livremente e todas as interfaces a ele conectadas recebem estes pacotes. Dependendo do endereço que consta no destino do nível de enlace deste pacote, a interface que passa para o barramento interno da máquina que fará um processamento posterior. Mas, a princípio, todas as interfaces recebem todo este o tráfego. Sendo assim, é necessário posicionar o SDIR na rede que se quer proteger de uma maneira que ele possa receber os pacotes necessários para sua análise. A FIGURA 2 ilustra um posicionamento de módulos sensores que está após o firewall e em dois segmentos de uma rede de uma empresa onde o administrador do IDS pode monitorar o comportamento de pacotes que trafegam no interior da rede. FIGURA 2: IDS baseado em rede (SDIR) 8 É importante frisar que os hosts conectadas à rede, também podem receber pacotes que não foram destinados à elas. Para que uma interface de rede consiga receber pacotes destinados a outra estação, é necessária que ela trabalhe em um modo especial, conhecido por modo promíscuo ou espião. Há basicamente dois modos de operação em uma rede: • Normal, onde a interface de rede verifica o endereço de destino do que consta no nível de enlace, também chamado endereço MAC (Medium Access Control), ou endereço físico. Sendo o endereço do pacote idêntico ao endereço da interface, o pacote é repassado para processamento interno. • Promíscuo ou espião, onde a verificação feita no modo anteriormente citado é completamente ignorada e todos os pacotes são repassados para processamento. Esse processo também é chamado de "farejar" (sniff) o tráfego da rede. Isso pode trazer problemas tanto para a estação de trabalho, que pode não suportar o processamento de todos estes pacotes de uma rede local (seria necessário verificar o endereço de destino da camada de rede por software); quanto para a segurança da rede, que pode ficar comprometida devido a exposição de dados sigilosos, como as autenticações. Os SDIRs precisam trabalhar no modo promíscuo para fazer a análise de pacotes não destinados a ele. Tendo todas as informações que transitam pela rede é possível ao sistema, por exemplo, detectar varreduras de portas (e.g., tentativas sucessivas de abertura de conexões TCP a diferentes portas), monitorar conexões ou datagramas maliciosos (e.g., verificação do conteúdo "GET /..%255c..%255cwinnt/system32/cmd.exe?/c+", que caracteriza um ataque antigo ao Internet Information Server (IIS) que é o servidor de páginas da Microsoft®, no pacote com destino ao servidor web) ou ainda verificar ataques de negação de serviço, DoS(Denial of Service) (e.g., através da falta de resposta de um servidor a varias requisições de um determinado serviço). 9 As principais vantagens desse tipo de IDS são (Bace, 2001): a) detecção de ataques externos: é mais fácil, para um IDS baseado em rede, detectar atividades não autorizadas desencadeadas por usuários ou programas externos à organização; b) facilidade de instalação: corretamente distribuídos poucos detectores baseados em rede podem monitorar todas as atividades de uma grande organização; c) facilidade de uso: pelo mesmo motivo acima, é mais fácil manter atualizado um IDS baseado em rede; d) desempenho: a instalação de IDSs de rede representa um impacto muito pequeno na rede existente. Compostos, em sua maioria, por dispositivos passivos, esse tipo de ferramenta praticamente não interfere no funcionamento normal do sistema; e) independência de plataforma: como os alvos dessas ferramentas são os dados coletados diretamente na rede, sua utilização é praticamente independente das plataformas monitoradas. Entre suas principais desvantagens, estão: a) tratamento de redes de alta velocidade: ferramentas desse tipo apresentam muitas dificuldades no tratamento de grandes quantidades de dados. Com a popularização de redes velozes, isso tende a se tornar um problema cada vez mais sério; b) dependência de rede: alterações na infra-estrutura de rede possuem reflexos significativos nessas ferramentas. Com a utilização de elementos de rede como switches (dispositivo normalmente utilizado para ligar hosts a uma rede), por exemplo, a tarefa de capturar pacotes fica prejudicada; c) dificuldade de reação: a reação a ataques em andamento é, muitas vezes, impossível. 10 2.2.2 Sistema de Detecção de Intrusos em Host (SDIH) IDSs baseados em Hosts (SDIHs) foram os primeiros sistemas de detecção de intrusos implementados, e seu principal objetivo é monitorar toda a atividade existente em um determinado host. O funcionamento desses sistemas se dá através da coleta e também análise de pacotes originados em um host que hospeda um determinado serviço. Depois de coletados, esses dados podem ser analisados localmente ou até enviados para uma máquina remota responsável por este exame. Vale ressaltar que em várias implementações os demais módulos também são instalados no mesmo servidor, o qual se deseja proteger, neste caso, existe alguma forma de se visualizar os alertas, no próprio servidor, normalmente um servidor web. O módulo reativo, quando implementado, efetua algumas reconfigurações no sistema operacional ou aplicativos, um bom exemplo pode ser a reação de bloqueio de um determinado endereço IP (Internet Protocol) no arquivo de configuração de TCPWrappers, em um sistema UNIX, face a uma determinada tentativa de login sem sucesso. Um exemplo típico de um sistema de coleta de dados seria um sistema de registros também conhecidos por logs(arquivos de armazenamento de mensagens). Esses sistemas são responsáveis pelo armazenamento de ocorrências em aplicações que rodam no host. Ou seja, estas aplicações estão configuradas para enviar seus registros para este sistema e ele é o encarregado de armazená-los em uma série de arquivos. Um eventual sistema de análise usaria essa base de registros do sistema comparando-a com padrões préestabelecidos com o objetivo de detectar intrusões. A arquitetura de um sistema desse tipo pode ser visualizada na FIGURA 3, que mostra o SDIH – Sistema de detecção de intrusos baseado em host - que atuam em estações que contém aplicações críticas para o funcionamento da rede e armazenando as ocorrências em uma base de registros. 11 FIGURA 3: Arquitetura de um sistema de registros SDIHs podem atuar em diversas áreas dentro de um mesmo host com o objetivo de detectar intrusões. Eles podem analisar, por exemplo, todo um sistema de arquivos através de uma analogia desse sistema com dados recolhidos anteriormente referentes a esse sistema detectando modificações. Isso poderia ser feito se as informações de arquivos críticos do sistema, como data da última modificação, por exemplo, fossem recolhidos com antecedência a um teste de verificação da integridade do sistema de arquivos. Existem outros meios que podem ajudar na detecção de intrusos em hosts, como o monitoramento da atividade de rede, monitoramento de atividades de login e do superusuário, entre outras. Essas ferramentas analisam a atividade do sistema através de dados coletados na própria máquina, permitindo a determinação exata de quais usuários e processos estão realizando operações maliciosas no sistema, o que garante boa precisão na detecção. As principais vantagens dessa abordagem são (Bace, 2001): a) independência de rede: independente da forma de comunicação utilizada entre os hosts (cifrada ou não, com switches ou não), as tarefas de um IDS baseado em hosts não são diretamente afetadas; b) detecção de ataques internos: é mais fácil, para um IDS baseado em hosts, detectar atividades não autorizadas que representem abusos de privilégio por parte de usuários ou programas; 12 c) reação: embora não sendo uma atividade de responsabilidade direta do IDS, pode-se, com maior eficiência e facilidade, confinar/avaliar danos e recuperar erros usando uma ferramenta baseada em hosts. Como desvantagens são apresentados os seguintes itens: a) dificuldade de instalação: cada host monitorado deve conter ao menos um elemento do IDS baseado em host instalado localmente, dificultando sua instalação; b) dificuldade de manutenção: pelo mesmo motivo apresentado acima, a tarefa de manutenção dessas ferramentas é dificultada; c) ataques ao próprio IDS: como os elementos da detecção devem estar localmente instalados, um atacante que conseguir invadir tal host pode desabilitar ou destruir a ferramenta instalada; d) dificuldade de tratar ataques de rede: alguns ataques são especialmente direcionados à infra-estrutura de rede, dificilmente tratados por IDSs desse tipo; e) desempenho: ferramentas desse tipo são extremamente intrusivas, ou seja, interferem diretamente no funcionamento e desempenho do sistema monitorado; f) dependência de plataforma: um IDS com essas características é altamente dependente da plataforma de monitoramento, devendo sofrer muitas modificações para se adaptar a outros ambientes. 2.2.3 Solução híbrida Além das abordagens clássicas e puras acima descritas, uma grande parte das ferramentas atuais tira proveito das diferentes arquiteturas existentes, adotando soluções híbridas. Essas soluções mesclam as vantagens de cada abordagem, criando diferentes e interessantes padrões de arquitetura. Tentando chegar a um ponto de equilíbrio entre desempenho, simplicidade, abrangência e robustez, algumas implementações atuais lançam mão de uma solução híbrida, onde mecanismos centralizados interagem com 13 módulos distribuídos, tentando aproveitar as vantagens de cada um. Além disso, a coleta de dados baseada em informações de rede também é usada em conjunto com técnicas baseadas em hosts, aumentando a capacidade de detecção dos IDSs com essas características. Tanto pela necessidade de interação com outros mecanismos de segurança, normalmente implementados de forma centralizada, quanto pelo uso das melhores características de cada abordagem, sistemas híbridos despontam como a solução ideal para o futuro dos sistemas de detecção de intrusos. Uma configuração bastante comum seria a de um SDIR para a rede local e SDIHs rodando nos servidores principais, como é mostrado na FIGURA 4 que ilustra que a medida que os SDIH – Sistema de detecção de intrusos baseado em host – atua somente em estações críticas, o SDIR – Sistema de detecção de intrusos baseado em rede – atua analisando todo o escopo da rede, inclusive para hosts que não contém um sistema de detecção rodando. FIGURA 4: Detecção de intrusos híbrida 2.3 Técnicas de Análise É importante que exista um bom domínio das técnicas empregadas na detecção de possíveis intrusões. A seguir são detalhados os principais métodos existentes de detecção atualmente empregados, visando enfocar tanto as 14 técnicas tradicionais, como a auditoria manual, como, por exemplo, estudos mais avançados e ainda em desenvolvimento (Campelo e Weber, 2001). 2.3.1 Métodos tradicionais Mesmo a busca de indícios de intrusão utilizando a forma mais correta como técnica de auditoria de sistema e conceitos tradicionais como trilhas de auditoria não ser considerada como um mecanismo de detecção de intrusão, ele já é realizado a bastante tempo. O grande problema é a dificuldade de manipular um grande volume de informações oriundas de diferentes tipos de dados e realizar essa tarefa em um tempo hábil a fim de evitar maiores danos ao sistema. A utilização de técnicas mais avançadas em conjunto com ferramentas adequadas dá a possibilidade de rastrear os danos causados em decorrência de ataques ou, até mesmo, coletar provas que levem à descoberta de antigos atacantes. Utilizando a idéia básica da análise de trilhas de auditoria registra-se e armazena as atividades do sistema em uma trilha de auditoria, selecionado por projetistas ou administradores de sistemas baseado na importância dessas atividades de segurança. Trilhas essas que podem ser formadas por registros de log gerados pelo sistema operacional, por algum elemento de rede, como filtros, roteadores ou proxies ou mesmo por algum aplicativo. O administrador do sistema ou até mesmo um auditor externo de posse desses registros, pode encontrar padrões de eventos que caracterizem um ataque, podendo rastrear a origem do mesmo e também os danos causados pelo suposto atacante. Tanto pela grande quantidade de informação armazenada para análise diretamente relacionada com o nível de segurança e pela característica manual de sua realização, este trabalho é extremamente oneroso. Quanto maior for o grau de segurança exigido, maior deverá ser a quantidade de eventos monitorados, maior será o tamanho das trilhas de auditoria geradas e menor será o desempenho do sistema, já que, existirá um grande acesso por parte dele ao disco. Uma dificuldade existente nesse tipo de abordagem é a dificuldade de proteger as informações das próprias trilhas de auditoria, já que as mesmas são 15 alvos freqüentes de atacantes interessados em apagar suas pistas (Campello e Weber, 2001). Outra forma de detectar manualmente possíveis problemas de intrusão além da análise de trilhas de auditoria é valendo-se de dados coletados na própria rede. Essa prática, relacionada à gerência de redes, visa capturar pacotes de rede, informações de gerência (através de agentes SNMP (simple network management protocol), por exemplo) e qualquer dado que retrate o estado atual da rede em questão. Após a coleta, esses dados são analisados pessoalmente por pessoal especializado, na busca de padrões que denuncie um possível desvio da política de segurança traçada. Uma ferramenta tradicional que pode ser usada para exemplificar essa abordagem é o TCPdump. Pode se criar filtros, através da captura de pacotes de rede com ele, que descartem dados não interessantes e a atenção do analisador se volte para os pacotes realmente importantes. Valendo-se de informações de rede, um outro exemplo de método tradicional de análise, é o uso de dados obtidos em consultas a agentes SNMP como subsídio para a detecção. De posse desses dados, pode-se analisar estatisticamente a rede e traçar um comparativo entre o comportamento atual e o comportamento usual do sistema. 2.3.2 Análise baseada em assinaturas A utilização de assinaturas de ataques é um dos métodos mais tradicionais de detecção (Campello e Weber, 2001). Nesse conceito, uma base de dados é criada com seqüências de ações que seriam consideradas indícios de uma intrusão. Essas seqüências chamadas de assinaturas são usadas para identificar a maioria dos ataques conhecidos como base para buscar intrusos no sistema. Essas técnicas possuem problemas como a determinação de quais são as melhores fontes de dados a serem usadas (pacotes de rede, trilhas de auditoria, chamadas de sistema, etc). Existem várias maneiras de se relacionar os dados coletados com as assinaturas existentes, otimizando o desempenho e diminuindo a ocorrência de falsos positivos e/ou negativos. Uma dessas formas é adotar o conceito de sistemas especialistas, onde o conhecimento sobre ataques é codificado na 16 forma de regras de condições do tipo if-then. Um dos grandes problemas dessa abordagem é a imposição de uma seqüência determinada por regras, nem sempre verificada nos dados reais coletados, ou seja, alguns eventos podem ocorrer em uma ordem pré-estabelecida, passando assim, despercebidos pela avaliação feita. Semelhante à apresentada acima, uma outra abordagem é descrever a semântica dos ataques com informações facilmente encontradas nos dados coletados facilitando a busca por ataques sem sobrecarregar o sistema. Em termos de desempenho e vantajoso usá-lo já que o mesmo é utilizado em grande número de IDS´s comerciais, essa técnica possui a desvantagem de exigir que todas as facetas de um ataque estejam descritas na base de assinaturas, aumentando a necessidade de atualizações freqüentes dessa base. A análise de transição de estados (Porras e Kemmerer, 1992), representa os ataques como mudanças de estado no sistema monitorado. Sucessivos estados são conectados por arcos que representam os eventos/condições necessários para a mudança de estado. O tempo gasto na análise de cada transição é a principal desvantagem dessa técnica, normalmente baseada em sistemas especialistas. A rede de Petri e outra forma de tratar o mesmo problema. A mesma apresenta como principal vantagem sua generalidade, simplicidade conceitual e sua facilidade de representação gráfica. É uma tarefa relativamente cara em termos de desempenho a análise dos dados coletados na busca por ataques complexos. A FIGURA 5 mostra um simples exemplo de uma rede de Petri que dispara um alarme se exceder em quatro o número de tentativas mal sucessivas de login. 17 FIGURA 5: Rede de Petri para análise de sucessivos logins incorretos A transição pode ocorrer se existe um token no estado S1 e uma tentativa mal sucedida de login aconteceu. O tempo da primeira tentativa é armazenado na variável T1. A transição do estado S4 para o S5 só ocorre se o token estiver em S4, uma nova tentativa acontecer e a diferença de tempo entre essa tentativa e a primeira for menor ou igual a 60 segundos. Se o estado S5 for atingido, a assinatura foi encontrada e um alarme é disparado. As principais vantagens dos métodos de detecção baseados em assinaturas são: a) baixo número de falsos positivos; b) mesmo para usuários com pouca experiência, as contra-medidas são imediatas. De posse de relatórios com as ações não-autorizadas que foram realizadas e as vulnerabilidades exploradas, o gerente de segurança tem amplas condições de avaliar os danos causados e de adotar contra-medidas eficazes que corrijam as falhas encontradas; c) redução na quantidade de informações tratadas; d) melhor desempenho, mesmo com grandes bases de assinaturas. As desvantagens são: a) detecção só para ataques conhecidos, ou seja, qualquer variação nos ataques conhecidos ou mesmo a criação de novos tipos de ataques dificulta sua detecção; 18 b) dificuldade de manutenção, sendo necessário manter a base de ataques atualizada, completa e adaptada à realidade da organização (SO, aplicações, etc); c) possível estudo da base de assinaturas para explorar vulnerabilidades não tratadas; d) dificuldade em detectar abusos de privilégio, ou seja, ações que mesmo sendo disparadas por usuários legítimos representam ataques à organização, como por exemplo, a cópia de uma base de dados corporativa. 2.3.3 Análise baseada em comportamento A realização de uma análise sobre o comportamento do sistema é outro método de grande tradição entre os IDSs atuais. Pode-se constantemente compará-lo ao estado atual, buscando indícios de mudanças bruscas de comportamento, criando, inicialmente, um padrão que retrate o comportamento do sistema em estado normal, antes de alguma intrusão. Desde o padrão de digitação de um usuário até o tráfego usual da rede, bem como diferentes técnicas para analisar os dados coletados, vários detalhes do sistema podem ser usados para tal fim (Campello e Weber, 2001). O uso de métodos estatísticos para o estabelecimento de perfis do sistema é uma dessas técnicas, muito usada nos atuais sistemas de IDSs. Dessa forma, o comportamento de algum usuário ou do sistema é medido em variáveis amostradas durante o tempo. Exemplos incluem o login e o logout de cada sessão, assim como a duração e a quantidade de recursos – processadores, memória, disco, etc – consumida durante a mesma. Este período de amostragem pode variar de alguns minutos até meses, em alguns casos. Médias de todas essas variáveis são mantidas pelo modelo original e pressupõe um ataque quando um limiar pré-estabelecido é excedido, baseado no desvio padrão da variável. Os perfis dos usuários são regularmente atualizados a medida que o comportamento dos mesmos evolui. Para analisar o comportamento do sistema, também se usam sistemas especialistas. Enquanto nas técnicas baseadas em assinaturas eram criadas 19 regras que descreviam possíveis ataques, nesse tipo de análise são usados dados estatísticos do sistema para a criação dessas regras. Nesse caso, as atividades de um usuário são amostradas e, constantemente, o sistema faz inferências utilizando o comportamento atual desse usuário. Da mesma forma que na abordagem anterior, a atualização dos dados referentes ao comportamento do sistema se faz necessária para refletir mudanças que normalmente acontecem. De uma maneira geral, as vantagens da análise baseada em comportamento são: a) possibilita a detecção de ataques desconhecidos e complexos, não dependendo de uma base que armazene todos os ataques e vulnerabilidades possíveis; b) pode ser usado para produzir informações para a geração de bases de assinaturas; c) exige um esforço de manutenção reduzido, sem a necessidade de atualizações freqüentes da base; d) menos dependentes de plataforma; e) facilitam a detecção de abusos de privilégios, poucas vezes catalogados como ataques. Como desvantagens, pode se citar: a) dificuldade de configuração, ajustando o limiar do que é considerado anômalo ou não; b) maior número de falsos positivos; c) relatórios mais difíceis de serem analisados, não expressando dados conclusivos sobre a vulnerabilidade explorada; d) menor desempenho, principalmente devido à grande quantidade de cálculos complexos exigidos; e) dificuldade em lidar com mudanças de comportamento, principalmente se essas forem sutis, podendo comprometer a eficiência da técnica (atacantes podem, conhecendo o comportamento padrão do 20 sistema, desviar-se lentamente do mesmo até que seu ataque seja considerado normal). 2.3.4 Métodos avançados Além dos métodos anteriormente descritos, alguns trabalhos apontam para novos tipos de análise na busca de identificar intrusões. Todos esses estudos visam criar técnicas alternativas que melhorem a qualidade da análise que é atualmente feita, muito baseada em regras e filtros. Muito incipientes e não aplicadas em ferramentas de larga utilização, essas técnicas esbarram na sua capacidade reduzida de processamento e na sua complexidade de desenvolvimento, uso e manutenção (Campello e Weber, 2001). Como um dos melhores exemplos de técnica avançada, o conceito de redes neurais vem sendo aplicado em vários trabalhos. Redes neurais são algoritmos que adquirem, a partir do tempo, conhecimento sobre o relacionamento entre vetores entrada/saída, generalizando essas relações para obter novos vetores entrada/saída úteis ao fim proposto. Essa técnica poderia ser usada em IDSs baseados em assinaturas para “aprender” traços de ataques e, então, procurá-los em um conjunto de dados armazenados anteriormente. Entretanto, como não existe forma de determinar quais as relações feitas pela rede neural, não é possível determinar as razões ou as explicações para o ataque encontrado. Por esse motivo, o conceito de rede neural vem sendo mais utilizado na detecção de comportamentos anômalos do sistema. Outro método bastante interessante que vem sendo discutido no meio acadêmico é o conceito de computer immunology (Forrest, Hofmeyr, Somayaji, 1997). Essa técnica constrói um modelo do comportamento normal dos serviços de rede UNIX, que consiste em determinar curtas seqüências de chamadas de sistema feitas pelos processos. Baseada na premissa de que ataques que exploram falhas de software tomam caminhos de execução pouco usuais naquele código, a ferramenta utiliza o perfil normal do processo para comparar com as chamadas de sistema realmente feitas por ele. Se essas informações forem conflitantes, ele gera um alarme indicando uma possível intrusão. Aparentemente, nada de novo foi mostrado em relação às técnicas baseadas em 21 comportamento já apresentadas. No entanto, a idéia por trás dessa técnica é determinar o que pertence ou não ao sistema e, então, assumir um comportamento similar ao sistema imunológico humano, ou seja, determinar padrões que representem o sistema e tentar encontrar “corpos estranhos” dentre os elementos legítimos do mesmo. 2.4 Posicionamento dos Módulos Na intenção de proteger a rede, pode ser difícil equilibrar o desejo de monitorar o máximo possível com as limitações financeiras e de pessoal. Deve ser examinada a necessidade de ser ter vários sensores IDS e onde eles normalmente seriam posicionados na rede levando em consideração alguns aspectos que podem afetar o posicionamento dos mesmos, além das vantagens da implementação de uma rede de gerenciamento de IDS separada. 2.4.1 Implantando vários sensores na rede Na maioria dos ambientes, devem-se implantar vários sensores de IDS. Cada sensor geralmente monitora um único segmento da rede. Em pequenas empresas, com arquitetura de rede simples e sem um grande tráfego, um único sensor e o suficiente, embora mais de um ainda possa ser aconselhável. Em ambientes grandes – principalmente aqueles com vários segmentos de rede, aqueles que oferecem serviços substanciais baseados na Internet e aqueles com diversos pontos de acesso à Internet, certamente serão necessários vários sensores para uma monitoração satisfatória e adequada ao tráfego da rede. Normalmente, para se produzir melhores resultados, a implantação de mais sensores de detecção de intrusos é recomendada. Distribuindo sensores em vários segmentos da rede, pode-se ajustar cada um deles ao tráfego ao qual se normalmente vê nesse segmento – o tipo de estações que o utilizam e os serviços e protocolos que o atravessam. Normalmente o ajuste dos sensores em um segmento conectado a Internet seria de modo diferente ao de um monitorando duas partes internas da sua rede, bastante protegidas. Ao se 22 implantar somente um sensor, a quantidade de ajuste a ser feito será bastante limitada. Uma dos motivos para se usar sensores múltiplos é a tolerância a falhas que podem ocorrer no sistema de IDS. Se por algum motivo, um único sensor falhar, ou se o segmento da rede que ele está monitorando se tornar indisponível, se existir apenas esse sensor, não será possível detectar intrusões até que a falha seja corrigida. A possibilidade de se ter mais de um sensor oferece uma solução mais robusta, pois, o monitoramento pode continuar sendo realizado pelo menos em partes da rede durante uma falha do sensor ou interrupção parcial da rede. 2.4.2 Posicionando sensores próximos a dispositivos de filtragem Normalmente, a implantação dos sensores de IDS, que geralmente são próximos com firewall ou filtros de pacotes, e feita perto de pontos de acesso à Internet. O posicionamento desses sensores pode ser em um dos lados ou dos dois lados de um desses dispositivos. Um exemplo seria, um firewall da Internet poderia ter um sensor de IDS no segmento de rede externo, para identificar toda a atividade suspeita, e um segundo sensor de IDS no segmento de rede interno, que possa identificar toda a atividade suspeita que possa estar passando pelo firewall a partir do exterior. O recomendado seria a implantação de sensores de IDS dos dois lados dos firewalls e dos filtros de pacotes. Mas, se por algum motivo isso não for possível, deverá ser decidido qual lado do dispositivo de filtragem o sensor deve ser implantado. Geralmente, a recomendação e que o sensor seja colocado na rede externa, de modo que se possa detectar todos os ataques, incluindo aqueles que não passam pela filtragem. Em alguns casos, pode-se preferir colocar o sensor na rede interna. Os sensores na rede externa, principalmente a que esteja conectada diretamente à Internet, têm mais chances de serem atacados, e eles também processarão muito mais tráfego do que um sensor em uma rede interna. Se o pessoal de segurança tiver pouco tempo para realizar análises de intrusão, a colocação do sensor na rede interna deve ser considerada já que isso diminui o tráfego a ser 23 processando e também pode ajudar a determinar se o dispositivo de filtragem está mal configurado. 2.4.3 Posicionando sensores de IDS na rede interna Os sensores de IDS da rede são colocados, em muitos ambientes, apenas no perímetro da rede, normalmente em torno dos firewalls da Internet e filtros de pacotes. Alguns ambientes se beneficiam desse posicionamento. Um exemplo clássico é a divisão de pesquisa e de desenvolvimento de uma empresa. A empresa pode ter estabelecido um firewall ou um filtro de pacotes que impede os usuários de outras divisões de acessar os servidores de pesquisa e de desenvolvimento. Como a informação armazenada nestes servidores é valiosa para os atacantes externos e os internos maliciosos, a implantação de um sensor de IDS perto do firewall ou filtro de pacotes, seria altamente prudente. Empresas que têm consciência da segurança implantam sensores de IDS por todas as suas redes, para monitorar todo o tráfego de pacotes na rede. Naturalmente, isso exige altos recursos financeiros e de pessoal, mas dá aos analistas de intrusão um grande controle sobre o que está acontecendo no seu ambiente. Se somente a verificação das atividades que ocorre nas bordas for feita, estará sendo desprezando uma grande parte do conteúdo total. Pois, os sensores de IDS não estão limitados a identificar somente ataques contra servidores; muitos também podem encontrar sinais de cavalos de Tróia, vermes e outros malware que estejam tentando se espalhar pela rede, às vezes, antes que o software de antivírus possa detectá-lo. 24 3 ESTUDO DE CASO DE UM SISTEMA IDS BASEADO EM FERRAMENTAS FREEWARE 3.1 Cronograma do Projeto Abaixo segue o cronograma do projeto com suas fases e quantidade de semanas gastas em cada uma delas: Fase Semanas 1 1 2 2 3 4 X X 3 X 4 Fase 1 - Definição e instalação do Sistema Operacional. Fase 2 - Definição e instalação do software do sistema de IDS. Fase 3 - Configuração do sistema de IDS. Fase 4 - Testes do sistema de IDS. X 25 3.2 Topologia A seguir, a topologia e um projeto de um sistema IDS para uma pequena rede é descrito. Roteador Hub IDS – Sensor, Analisador e Gerência. Firewall Switch Estações Estações FIGURA 6: Topologia de uma pequena rede 3.2 Projeto 3.2.1 Objetivo Projeto O objetivo desse projeto e implantar um sistema de IDS em uma pequena rede composta de: a) Um acesso a Internet; b) um ADSL ou um roteador; c) um Hub ou switch; 26 Obs: No caso do hub, este poderia se substituído por um switch desde que o mesmo contenha o recurso port spam ou mirror, mas o custo de um switch é maior. d) uma estação para servir como IDS; e) um firewall; f) um switch para se conectar as estações desta rede. 3.2.3 Fases do Projeto As fases deste projeto são abaixo descritas: Fase 1 - Definição e instalação do Sistema Operacional. O sistema operacional escolhido foi o Linux Fedora por se tratar de um sistema freeware, amplamente utilizado e conhecido, estável e simples de ser utilizado e, além disso, possui excelente mecanismo de atualização de pacotes. A instalação do mesmo se deu em uma estação que tinha um espaço não particionado e a mesma se deu de forma normal escolhendo as opções básicas do sistema operacional. Fase 2 - Definição e instalação do software do sistema de IDS. O software de IDS escolhido foi o snort, para servidor de Web foi escolhido o Apache e para Front End foi escolhido o ACID (Analysis Console for Intrusion Databases) todos são software freeware. Os sistemas snort e Apache, foram instalados usando-se arquivos em formato.rpm. A opção da utilização desses tipos de arquivo deu-se a sua maneira simples e de fácil instalação. O acid não precisa ser instalado e sim simplesmente descompactado e desempacotado na pasta document-root do servidor web. A justificativa para a utilização do snort, apache e acid, além de serem freeware é que são software lideres da categoria, muito estáveis, simples e conhecidos. 27 Após a instalação do sistema operacional, foi feita a instalação do snort conforme demonstra a FIGURA 7: FIGURA 7: Instalação do snort O próximo passo foi instalado o servidor de Web o Apache conforme tela capturada na FIGURA 8: FIGURA 8: Instalação do Apache Não necessitando instalação, o próximo passo foi descompactar o arquivo referente ao Front End escolhido o ACID conforme ilustra a FIGURA 9: 28 FIGURA 9: Descompactação do ACID Fase 3 - Configuração do sistema de IDS. Antes de colocar o sistema de IDS em operação, deve-se configurá-lo modificando alguns parâmetros do principal arquivo do snort que é o snort.conf. A seguir está os principais parâmetros do arquivo snort.conf que devem ser adequados para cada rede contendo a configuração mais básica do IDS para que o mesmo possa ser executado: var HOME_NET [10.1.1.0/24] var EXTERNAL_NET any var DNS_SERVERS $HOME_NET var SMTP_SERVERS $HOME_NET var HTTP_SERVERS $HOME_NET var SQL_SERVERS $HOME_NET var TELNET_SERVERS $HOME_NET var SNMP_SERVERS $HOME_NET var HTTP_PORTS 80 var SHELLCODE_PORTS !80 var ORACLE_PORTS 1521 29 var AIM_SERVERS [64.12.24.0/24,64.12.25.0/24,64.12.26.14/24,64.12.28.0/24,64.12.29.0/ 24,64.12.161.0/24,64.12.163.0/24,205.188.5.0/24,205.188.9.0/24] var RULE_PATH /etc/snort/rules output log_tcpdump: tcpdump.log Fase 4 - Testes do sistema de IDS. Para que as funcionalidades do IDS possam ser demonstradas, foram coletadas algumas telas de um sistema que está em operação em uma empresa. Algumas dessas telas são demonstradas a seguir através do front end ACID. A FIGURA 10 mostra a tela inicial do ACID onde são apresentadas as estatísticas de intrusão divididas por protocolo. Esta tela serve como menu para outras telas com outras visões. 30 FIGURA 10: Tela Inicial do ACID A FIGURA 11 exibe os 15 últimos alertas gerados pelo IDS, cada alerta e representado por uma linha da tabela na parte inferior da tela. Esta tela é muito utilizada para permitir uma visualização on-line das últimas ocorrências. 31 FIGURA 11: 15 últimos alertas Assim como a FIGURA 11, a FIGURA 12 representa uma lista de alertas, porém, das últimas 24 horas. Esta tela é muito utilizada por operadores de segurança que avaliam os eventos diariamente. 32 FIGURA 12: Alertas das últimas 24 horas As FIGURAS 13 e 14 representam um alerta em detalhes, ou seja, quando se clica em um dos alertas das FIGURAS 11 e 12 ele é representado desta forma. A FIGURA 13 representa o início do pacote incluindo o cabeçalho de camada 2 e 3. Já a FIGURA 14 continua a representação mostrando o cabeçalho TCP e da aplicação. 33 FIGURA 13: Início do Pacote de um alerta 34 FIGURA 14: Continuação do cabeçalho TCP e da aplicação de um alerta 35 4 CONCLUSÃO Esse trabalho teve como objetivo exibir uma introdução a sistemas de detecção de intrusos de forma geral. Foram vistos motivações e todo o histórico desses sistemas, destacando os seus diferentes tipos de detecção e de análise. Administrar a segurança de uma rede de computadores, seja ela simples ou complexa, é hoje uma das principais preocupações de quem cuida da administração de rede. Não basta somente impor políticas de segurança, usar senhas fortes, manter os softwares atualizados, antivírus, backup, etc. Isto tudo é fundamental, mas é extremamente necessária a monitoração do sistema e a correta configuração dos equipamentos, pois, os invasores das redes estão cada vez mais especializados e munidos de várias ferramentas cada vez mais sofisticadas. A própria natureza da Internet, entretanto, possibilita que continuamente sejam geradas novas formas de ataque ou que novos pontos fracos sejam descobertos, a própria definição do protocolo IP contribui para isso. Assim sendo, embora ainda longe de estar perfeito, o IDS surge como uma ótima ferramenta de administração e um importante auxiliar na melhoria da segurança, permitindo uma constante monitoração das atividades da rede e ainda permitindo a descoberta de deficiências ainda não documentadas e tentativas de ataques inéditos. Isto faz com que, com o passar dos anos, o IDS venha sofrendo um processo de desenvolvimento e popularização. Em um futuro próximo é inevitável que o sistema de detecção de intrusos encontre como barreira a filtragem de uma grande quantidade de informações. Isso fará com que as técnicas de mineração de dados (data mining) e de inteligência artificial sejam desenvolvidas para esses sistemas com a intenção de, cada dia mais, melhorar a sua eficiência. Alguns trabalhos relacionados ao tema sistema de detecção de intrusos vem sendo desenvolvidos e espera-se que eles atinjam resultados concretos em breve. 36 5 REFERÊNCIAS BIBLIOGRÁFICAS CAMPELLO, RAFAEL SALDANHA; WEBER, RAUL FERNANDO. Apostila “Sistema de Detecção de Intrusão”, Instituto de Informática - UFRGS http://www.inf.ufrgs.br/~gseg/producao/minicurso-ids-sbrc-2001.pdf - 2001 SILVA, GILSON MARQUES. Apostila “Auditoria e Segurança de Sistemas”, utilizada na disciplina de Segurança e Auditoria de Sistemas no curso de Bacharelado em Sistemas de Informação na UNIMINAS - 2004. FORREST, S.; HOFMEYR, S.A.; SOMAYAJI, A. Computer immunology. Communications of the ACM, 40, 10:88-96, out., 1997 LAUFER, RAFAEL P. Apostila “Introdução a Sistemas de Detecção de Intrusão” utilizada como trabalho para a disciplina de Redes de Computadores I, lecionada pelo Prof. Otto Carlos Muniz Bandeira Duarte, do curso de Engenharia Eletrônica e de Computação da Universidade Federal do Rio de Janeiro(UFRJ) – 2003. NORTHCUTT, S., ZELTSER, L., WINTERS, S., FREDERICK, K., KENT, R. e RONALD W. – Desvendando Segurança em Redes. Rio de Janeiro: Editor Campus Ltda, 2002. PORRAS, P.; KEMMERER, R. Penetration state transition analysis: a rule based intrusion detection approach. In: Annual Computer Security Applications Conf., 8., 1992. Proceedings... [S.n.:S.l.], 1992. pp. 220–229. BACE, Rebecca; MELL, Peter. NIST Special Publication on Intrusion Detection Systems. (Draft). NIST, 2001. (Disponível em http://www.nist.gov).