Baixe o app para aproveitar ainda mais
Prévia do material em texto
Instituto Politécnico de Leiria Escola Superior de Tecnologia e Gestão Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source Marco Paulo Crespo Silva Miguel Nuno Saraiva Sampaio Leiria Setembro de 2006 Instituto Politécnico de Leiria Escola Superior de Tecnologia e Gestão Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source Relatório final da disciplina de “Projecto I”, do curso de Licenciatura em Engenharia Informática e Comunicações Realizado entre Março e Setembro de 2006 Autores Marco Paulo Crespo Silva – 12239 Miguel Nuno Saraiva Sampaio – 10433 Orientadores Mário João Gonçalves Antunes Miguel Monteiro de Sousa Frade Leiria Setembro de 2006 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source i Dedicatória Este trabalho é dedicado ao curso de Engenharia Informática e Comunicações, um curso com um perfil tecnológico soberbo que infelizmente foi vítima de más decisões administrativas. “No mercado de trabalho provaremos o nosso valor!” Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source ii Agradecimentos Aos professores orientadores, Mário Antunes e Miguel Frade, por todo o tempo disponibilizado e ajuda prestada. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source iii Resumo Este trabalho surgiu no âmbito da disciplina de “Projecto I” do curso de Engenharia Informática e Comunicações. Uma vez que a segurança de informação se encontrava nos assuntos preferidos dos autores, decidiu-se fazer uma autoproposta para um projecto na área de segurança, abordando uma ferramenta open source. Este relatório apresenta um estudo sobre os Sistemas de Detecção de Intrusão (IDS – Intrusion Detection Systems) e incide sobre uma ferramenta open source específica, o Snort. Foi feito um enquadramento às tecnologias da segurança de informação e aos conceitos associados. Os IDS foram dissecados como objecto de estudo, pois são um elemento importante em qualquer rede informática bem protegida. O Snort foi a ferramenta eleita pois é o IDS que tem a melhor classificação no top de ferramentas de segurança de rede mais utilizadas mundialmente. Foi abordada a sua arquitectura bem como as regras, peças fundamentais em todo o processamento de pacotes, visto que, juntamente com o mecanismo de detecção, são os elementos responsáveis pela análise do tráfego que viaja na rede. No entanto, tem melhor desempenho quando combinado com uma ferramenta que interaja e efectue alterações na firewall, através da leitura dos logs (p.e. Guardian). Cada teste foi documentado de acordo com um padrão que define os resultados esperados, resultados obtidos e conclusão específica acerca do teste. Desta forma foi possível explorar o funcionamento e desempenho da aplicação em estudo. O projecto deu origem a dois documentos: o relatório e um tutorial de instalação do Snort escrito em Português, brevemente a submeter à comunidade Snort, para ser incluído na secção que contém guias de instalação (www.snort.org/docs/). Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source iv Índice 1 Introdução .............................................................................................................1 2 Enquadramento.....................................................................................................2 2.1 Segurança da Informação ..................................................................................... 4 2.2 Políticas de Segurança ........................................................................................... 5 2.3 Modelo para a Segurança da Informação............................................................ 5 2.4 Tecnologias de Segurança da Informação ........................................................... 8 2.5 Problemas e Soluções para a Segurança da Informação .................................. 10 3 Sistemas de Detecção de Intrusão ......................................................................16 3.1 Entidades e Padrões ............................................................................................. 16 3.1.1 Common Intrusion Detection Framework ......................................................................16 3.1.2 Intrusion Detection Working Group ...............................................................................18 3.2 Conceitos Básicos ................................................................................................. 21 3.3 Função dos Sistemas de Detecção de Intrusão................................................... 22 3.4 Critérios de Avaliação da Qualidade dos Sistemas de Detecção de Intrusão . 23 3.5 Categorias dos Sistemas de Detecção de Intrusão............................................. 25 3.6 Técnicas ou Princípios de Detecção de Intrusão ............................................... 27 3.7 Considerações Finais sobre IDS.......................................................................... 33 4 Um Sistema de Detecção de Intrusão de Rede: o Snort ....................................34 4.1 História do Snort.................................................................................................. 34 4.2 Arquitectura Interna do Snort............................................................................ 35 4.2.1 Mecanismo de Captura e Descodificação de Pacotes .....................................................36 4.2.2 Plugins Pré-Processador .................................................................................................37 4.2.3 Mecanismo de Detecção .................................................................................................40 4.2.4 Plugins de Saída..............................................................................................................43 4.3 Regras.................................................................................................................... 44 4.3.1 Cabeçalho da Regra ........................................................................................................46 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source v 4.3.2 Opções da Regra.............................................................................................................50 4.3.3 Exemplo..........................................................................................................................68 4.3.4 Conclusão Final sobre as Regras ....................................................................................69 5 Testes ...................................................................................................................70 5.1 Cenário de Testes ................................................................................................. 70 5.2 Regra Simples....................................................................................................... 72 5.2.1 Transferência de Ficheiro de Texto ................................................................................72 5.2.2 Transferência de Ficheiro de Texto Comprimido ...........................................................74 5.3 Nmap ..................................................................................................................... 75 5.3.1 Nmap SYN Stealth Scan.................................................................................................765.3.2 Nmap SYN Stealth Scan com IP Spoofing.....................................................................78 5.3.3 Nmap FIN Stealth Scan ..................................................................................................81 5.4 Nessus .................................................................................................................... 84 5.4.1 Ataque DoS ao Serviço RPCSS do Windows.................................................................87 5.4.2 Ataque ao Serviço ntpd de Vários Sistemas Baseados em Unix.....................................89 5.4.3 Ataque ao Serviço SMB (Brute Force por Vários Users e Passwords)...........................89 5.5 Vulnerabilidade nos Ficheiros Windows Metafile ............................................ 91 5.6 Vulnerabilidade do Internet Explorer ............................................................... 96 5.7 Snort + Guardian ................................................................................................. 99 5.8 Conclusão Final sobre os Testes........................................................................ 101 6 Conclusões.........................................................................................................102 Anexo 1 Tutorial Instalação do Snort......................................................................107 Anexo 2 Regras Simples ...........................................................................................114 Anexo 3 Conteúdo do Ficheiro test.txt .....................................................................115 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source vi Índice de Figuras Figura 1 – Estatística de ataques (www.mycert.org.my)_____________________________________2 Figura 2 – Abordagens anti-intrusão ___________________________________________________3 Figura 3 – Excerto da RFC 2196 (www.ietf.org/rfc/rfc2196.txt) ______________________________7 Figura 4 – Interacção dos componentes no modelo CIDF __________________________________17 Figura 5 – Componentes de um IDS segundo o IDWG _____________________________________19 Figura 6 – Classificação de IDS ______________________________________________________25 Figura 7 – Classificação de IDS segundo a fonte de informação _____________________________25 Figura 8 – Classificação de IDS segundo o sensor________________________________________27 Figura 9 – Classificação de IDS segundo a técnica de detecção _____________________________28 Figura 10 – Abordagens da detecção de intrusão por anomalias_____________________________28 Figura 11 – Abordagens da detecção de intrusão por regras________________________________30 Figura 12 – Outras abordagens para classificar os IDS ___________________________________32 Figura 13 – Abordagem segundo a dificuldade de implementação ___________________________33 Figura 14 – Arquitectura do Snort ____________________________________________________36 Figura 15 – Funções de descodificação de pacotes _______________________________________37 Figura 16 – Plugins de pré-processadores ______________________________________________38 Figura 17 – Ordem pela qual são verificados os tipos de regras _____________________________41 Figura 18 – Listas de regras consoante o protocolo_______________________________________42 Figura 19 – RTNs e respectivos OTNs _________________________________________________42 Figura 20 – Estrutura de uma regra ___________________________________________________45 Figura 21 – Estrutura do cabeçalho de uma regra________________________________________45 Figura 22 – Estrutura das opções de uma regra__________________________________________46 Figura 23 – Referências no BASE_____________________________________________________54 Figura 24 – Cenário de testes ________________________________________________________70 Figura 25 – BASE sem alertas _______________________________________________________72 Figura 26 – Transferência do ficheiro test.txt____________________________________________72 Figura 27 – Alertas gerados após transferência do ficheiro de texto __________________________73 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source vii Figura 28 – Transferência do ficheiro test.rar ___________________________________________74 Figura 29 – Nmap SYN Stealth Scan___________________________________________________77 Figura 30 – Resultado do Nmap ______________________________________________________77 Figura 31 – Estatística dos alertas ____________________________________________________77 Figura 32 – Listagem dos alertas _____________________________________________________78 Figura 33 – Nmap SYN Stealth Scan com IP Spoofing _____________________________________79 Figura 34 – Resultado do Nmap ______________________________________________________80 Figura 35 – Estatística dos alertas ____________________________________________________80 Figura 36 – Listagem dos alertas _____________________________________________________80 Figura 37 – Nmap FIN Stealth Scan ___________________________________________________82 Figura 38 – Resultado do Nmap ______________________________________________________83 Figura 39 – Estatística dos alertas ____________________________________________________83 Figura 40 – Listagem dos alertas _____________________________________________________83 Figura 41 – Nessus Scan ____________________________________________________________85 Figura 42 – Vulnerabilidades encontradas pelo Nessus ____________________________________86 Figura 43 – Estatística dos alertas gerados pelo Snort ____________________________________86 Figura 44 – Alertas da classe attempted-admin após execução do Nessus______________________87 Figura 45 – Alertas após execução do Nessus ___________________________________________88 Figura 46 – Alertas após execução do Nessus ___________________________________________90 Figura 47 – Primeiro passo no framework ______________________________________________91 Figura 48 – Ligação efectuada na máquina Windows2003 _________________________________92 Figura 49 – Segundo passo no framework ______________________________________________92 Figura 50 – Segundo passo no framework ______________________________________________93 Figura 51 – Terceiro passo no framework ______________________________________________94 Figura 52 – Terceiro passo no framework ______________________________________________94 Figura 53 – Alertas após execução do ataque ___________________________________________95 Figura 54 – Cenário do teste à vulnerabilidade do Internet Explorer _________________________96 Figura 55 – Cenário do teste à vulnerabilidade do Internet Explorer _________________________97 Figura 56 – Acesso á máquina Backtrack_______________________________________________97 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source viii Figura 57 – Informação do acesso da máquina Windows XP________________________________98 Figura 58 – Gestor de tarefas do Windows______________________________________________98 Figura 59 – Nessus Scan à Máquina Snort _____________________________________________100 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source ix Índice de Tabelas Tabela 1 – Medidas de segurança da informação_________________________________________10 Tabela 2 – Alertas de alto risco, prioridade 1____________________________________________56 Tabela 3 – Alertas de médio risco, prioridade 2 __________________________________________57 Tabela 4 – Alertas de baixo risco, prioridade 3 __________________________________________57Tabela 5 – Tipos de ICMPs e seus valores ______________________________________________61 Tabela 6 – Flags do cabeçalho TCP ___________________________________________________64 Tabela 7 – Opções da palavra-chave resp ______________________________________________66 Tabela 8 – Descrição do Hardware e Software das máquinas utilizadas nos testes_______________71 Tabela 9 – Teste 1 _________________________________________________________________73 Tabela 10 – Teste 2 ________________________________________________________________74 Tabela 11 – Teste 3 ________________________________________________________________78 Tabela 12 – Teste 4 ________________________________________________________________81 Tabela 13 – Teste 5 ________________________________________________________________84 Tabela 14 – Teste 6 ________________________________________________________________88 Tabela 15 – Teste 7 ________________________________________________________________89 Tabela 16 – Teste 8 ________________________________________________________________90 Tabela 17 – Teste 9 ________________________________________________________________95 Tabela 18 – Teste 10 _______________________________________________________________99 Tabela 19 – Teste 11 ______________________________________________________________100 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 1 1 Introdução A importância de interligar computadores tem crescido substancialmente a par do objectivo de aumentar a produtividade, o lucro e o desenvolvimento das organizações. Através de ferramentas e técnicas cada vez mais sofisticadas, estas organizações são constantemente expostas a um conjunto de ataques à sua rede informática. Há vários relatos diários em páginas da Internet que descrevem constantes ataques realizados a organizações, mostrando assim a fragilidade dos seus sistemas de informação. Existe um esforço diário para combater os ataques maliciosos aos sistemas, conforme se constata nas páginas web da SecurityFocus (www.securityfocus.com), SecuriTeam (www.securiteam.com), e CERT (www.cert.org). Estas páginas são actualizadas diariamente com novas vulnerabilidades de segurança, permitindo aos administradores de sistemas a correcção dessas vulnerabilidades diminuindo o tempo de exposição aos atacantes. Neste prisma, os Sistemas de Detecção de Intrusão são um mecanismo importante para monitorizar e detectar, de forma contínua, as actividades e intenções dos atacantes. Este projecto aborda os Sistemas de Detecção de Intrusão estando englobado na disciplina de “Projecto I” do 1º Ciclo da Licenciatura em Engenharia Informática e Comunicações da Escola Superior de Tecnologia e Gestão de Leiria. Este relatório está dividido em seis capítulos. Após esta breve introdução no Capítulo 1, no Capítulo 2 é feito um enquadramento geral à segurança da informação. No Capítulo 3 são explicados os Sistemas de Detecção de Intrusão e todas as suas vertentes, bem como as vantagens e desvantagens. No Capítulo 4 é abordado o Sistema de Detecção de Intrusão open source Snort, o qual é testado no Capítulo 5. No Capítulo 6 é feita a conclusão ao estudo da ferramenta Snort. Em anexo é apresentado um tutorial de instalação do Snort e aplicações necessárias para o seu funcionamento, bem como o Guardian, ferramenta que permite adicionar reactividade perante os alertas gerados por este IDS. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 2 2 Enquadramento O crescente desenvolvimento tecnológico das últimas décadas ao nível das redes de computadores é uma mais valia importante, uma vez que permite uma maior eficiência produtiva e económica por parte das organizações. No entanto, a vulgarização das Tecnologias da Informação e Comunicação (TIC) levou ao aumento dos problemas na segurança informática, pois a informação é agora, na sua maior parte informatizada. A segurança é um problema actual. Devido ao crescente número de ciberataques é fundamental a utilização de bons sistemas de defesa. As intrusões são um dos principais ataques actualmente a serem utilizados (Figura 1). É extremamente importante o desenvolvimento de ferramentas que detectem e mesmo previnam que estes intrusos possam danificar ou alterar o funcionamento normal dos sistemas informáticos. Figura 1 – Estatística de ataques (www.mycert.org.my) Os Sistemas de Detecção de Intrusão são uma parte importante de todo o sistema de defesa. Este é geralmente constituído por seis abordagens anti-intrusão: preempção, prevenção, dissuasão, detecção, deflexão e reacção. A Figura 2 Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 3 (www.dei.estg.ipleiria.pt/cs/files/19-IDS.pdf) ilustra a ordem destas abordagens, explicadas de seguida: Figura 2 – Abordagens anti-intrusão • Preempção – medidas levadas a cabo antes de uma tentativa de intrusão para diminuir a probabilidade da sua ocorrência. Por exemplo: a educação dos utilizadores e a promoção da política de segurança. • Prevenção – a prevenção da intrusão a nível interno e externo procura evitar, ou pelo menos limitar severamente, o sucesso de uma intrusão. Por exemplo as firewalls. • Dissuasão – aumentar a percepção do risco de ser apanhado através de mensagens de aviso e aumentar os obstáculos para aumentar o tempo e esforço despendido pelo atacante, para que este desista de realizar o ataque. • Detecção – técnicas que procuram diferenciar tentativas de intrusão do uso normal dos sistemas, analisando e processando a informação registada para se encontrar assinaturas de ataques conhecidos, comportamentos anormais ou resultados de interesse. • Deflexão – atrair os possíveis intrusos para um sistema desenvolvido para controlar e observar as actividades dos intrusos, fazendo-os crer que o conseguiram contornar. Por exemplo os honeypots. • Reacção – dotar os sistemas com capacidades de decisão para reagirem a uma intrusão, libertando-os da constante dependência de um administrador. Permite reacção em tempo real. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 4 Assim, é necessário assegurar diversos componentes cruciais para que a informação se mantenha segura e garantir desta forma a sobrevivência das organizações, como sejam: requisitos de segurança, políticas de segurança e mecanismos de segurança. Os requisitos de segurança respondem á questão trivial “O que é que se pode esperar que a segurança faça por nós?”. As políticas de segurança definem os passos e medidas necessárias para atingirem determinados objectivos. Por fim, os mecanismos de segurança estabelecem os instrumentos, tecnologias e procedimentos a serem usados para assegurar a efectivação dos dois componentes descritos anteriormente. Nas secções seguintes serão abordados vários aspectos que permitem assimilar os conceitos de base relacionados com a segurança da informação, assim como as politicas, tecnologias e modelos da mesma. Serão também dados alguns exemplos de problemas e soluções dentro deste tema. 2.1 Segurança da Informação A segurança da informação assenta em três pilares essenciais: confidencialidade, integridade e disponibilidade. • Confidencialidade – pressupõe que a informação só poderá ser acedida ou revelada a utilizadores devidamente autorizados; • Integridade – capacidade de garantir a detecção da alteração da informação transportada ou armazenada; • Disponibilidade – pressupõe a acessibilidade ou disponibilização imediata de serviços ou recursos do sistema,sempre que tal seja solicitado pelos legítimos utilizadores, mesmo na sequência de ataques. A autenticidade e o não repúdio são dois princípios adicionais, importantes na segurança da informação. O primeiro permite assegurar a identidade do utilizador tal como ele a reclama e assim dar-lhe acesso à informação. Este princípio só é garantido com a confidencialidade e integridade e só assim, já com a autenticação correcta, é que é possível determinar se o acesso à informação foi devidamente consentido. Por sua vez, o não repúdio assegura que o utilizador não pode, posteriormente, negar a autoria de determinada transacção ou evento, assim como garantir a identidade do Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 5 respectivo utilizador. Este princípio é de extrema importância, e deve ser efectivamente assegurado, pois, por exemplo, em transacções financeiras electrónicas, é necessário assegurar a origem, o transporte e a entrega de uma transacção. 2.2 Políticas de Segurança Uma política de segurança é um conjunto de regras, normas e práticas, de extrema importância e respeitado por todos os intervenientes da organização. Tem em vista a segurança da informação da organização, contra potenciais violações dos princípios referidos anteriormente. A política de segurança vem então definir o que é permitido e proibido num sistema através de uma das seguintes abordagens: proibitiva, em que tudo o que não é permitido é expressamente proibido ou permissiva, em que tudo o que não é proibido é expressamente permitido. As organizações que manifestam grande preocupação com as questões relacionadas com a segurança da informação apostam em políticas que respeitam uma abordagem proibitiva. Por exemplo, não permitir aos funcionários ter acesso às aplicações fora do âmbito da função que desempenham (p.e. não terem acesso ao browser comum entre outras aplicações). As políticas de segurança e respectivas abordagens estão definidas pela organização num documento também ele denominado de “Política de Segurança”. É um documento que todos os intervenientes (empregados, direcção e administradores) têm de respeitar no desenvolvimento do seu trabalho, como por exemplo a mudança de password, ou até a não utilização do browser. Este documento deve sofrer actualizações correctivas periódicas, a fim de o tornar adaptativo às necessidades da organização e à sua esperada evolução ao longo do tempo. 2.3 Modelo para a Segurança da Informação Um modelo para a segurança da informação assenta nos seguintes conceitos: vulnerabilidade, ameaça, ataque, risco e impacto. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 6 Uma vulnerabilidade é uma falha da implementação e operação do hardware ou software, ou seja, uma potencial via para tentativas de utilização não autorizadas no sistema ou mesmo exposição involuntária de informação. Uma ameaça é definida pela intenção de se infligir danos num determinado sistema informático, com a realização de ataques. As ameaças podem ser externas ou internas, sendo as últimas as que têm maior percentagem de sucesso pois um utilizador legitimo, que já “conhece os cantos à casa”, tem maior probabilidade e facilidade de causar danos relevantes no sistema. Uma ameaça pode assim ficar definida como a possibilidade da ocorrência de um acesso não autorizado e deliberado ao sistema com intenção de manipular informação, podendo assim torná-lo inconsistente ou mesmo inutilizável. O risco consiste na possibilidade do sistema ser incapaz de assegurar o cumprimento da sua política de segurança quando sujeito a um ataque. Desta forma, o grau de risco de um sistema fica definido pela exposição das suas vulnerabilidades de segurança e pelo teor da ameaça manifestada num determinado intervalo de tempo. São duas as filosofias que as organizações podem ter perante o risco: • Anulação do risco – pressupõe a remoção de qualquer vulnerabilidade do sistema e a destruição de qualquer tentativa de ataque (ou ameaça). Por exemplo com updates ao sistema para corrigir vulnerabilidades e com firewalls e IDS de forma a evitar e detectar as tentativas de ataque. • Gestão do risco – pressupõe a aceitação de um determinado grau de risco, o qual pode ser visto como um padrão normal. Neste prisma a relevância é depositada num conjunto de meios para lidar com ataques bem sucedidos. Neste caso certos riscos são aceitáveis. Por exemplo, o servidor é alcançável por “ping” (ICMP), mas no entanto os serviços principais estão protegidos e escondidos. Sendo o risco nulo algo perto da utopia, é frequente as organizações optarem por esta filosofia. Os custos e prejuízos resultantes de um ataque ao sistema são quantificados pelo impacto. Por exemplo, o downtime de um servidor web de uma organização de comércio electrónico e todos os custos e prejuízos que resultam do ataque que o causa. Convém referir a necessidade da existência de um compromisso entre despesas Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 7 e impacto, para que não se entre em gastos desnecessários para um impacto que não os justifique, ou seja, os gastos não poderão ser superiores ao valor da informação a proteger (Figura 3). Figura 3 – Excerto da RFC 2196 (www.ietf.org/rfc/rfc2196.txt) Assim, um modelo para a segurança da informação deverá assentar nas seguintes acções: 1. Estudar em pormenor as ameaças e vulnerabilidades. 2. Avaliar o impacto e custos de eventuais ataques. 3. Prever o maior número possível de ataques. 4. Definir e implementar medidas adequadas de dissuasão, detecção, prevenção e correcção que permitam uma acção sobre as ameaças e vulnerabilidades. São adoptadas diversas medidas ou soluções, aconselhadas pelo modelo, de forma a minimizar as ameaças e ataques (redução do impacto implícita): • Medidas dissuasivas – Reduzir a probabilidade de ocorrência de ataques. Por exemplo, pela realização de acções de consciencialização no sentido de alertar os utilizadores que têm acesso ao sistema, que existem riscos. Alertar que estes podem estar associados a simples acções inofensivas, como por exemplo, a navegação por páginas de Internet desconhecidas, que podem abrir “portas” a ataques futuros. • Medidas de detecção – Descobrir a realização de ataques e tentar evitar a sua concretização (p.e. IDS). Estas medidas permitem desencadear outras de tipos diferentes: • Medidas de prevenção – Proteger as vulnerabilidades detectadas precavendo falhas ou pontos fracos que o sistema apresenta. (p.e. Criptografia) Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 8 • Medidas de correcção – Reduzir o impacto de um ataque corrigindo o risco associado ao sistema. As medidas referidas anteriormente fazem parte da política de segurança a ser adoptada. Existem assim, ao nível de soluções, dois grandes campos de actuação do modelo para a segurança da informação: • Foro sociológico e psicológico – Medidas dissuasivas e de correcção em que são aplicadas medidas de consciencialização humana aos utilizadores do sistema bem como aos administradores. • Foro tecnológico ou da engenharia – Medidas de detecção e de prevenção em que, as medidas aplicadas são baseadas em tecnologia, p.e. IDS, firewall, criptografia, esteganografia, antivírus. 2.4 Tecnologias de Segurança da Informação A implementação de tecnologias específicas é uma acção necessária para garantir a segurança da informação, requerendo a implementação de: • Medidas proactivas – dizem respeito às acções realizadasatravés de um conjunto de tecnologias, de forma a assegurar a segurança dos dados ou recursos de um sistema mesmo que ocorra ou esteja em execução uma violação ou quebra de segurança. Estas medidas permitem salvaguardar a informação antes que uma ameaça potencial possa ser materializada num ataque. Por exemplo: (1) salvaguarda dos dados antes de serem transmitidos por uma rede pública de comunicação; (2) garantir um grau de confiança antes de uma comunicação ser efectuada pela rede; (3) identificar vulnerabilidades do sistema antes destas serem aproveitadas por intrusos, ou por aplicações mal intencionadas; (4) proteger o sistema contra acções de potenciais vírus informáticos; (5) proteger informação crítica antes que esta seja interceptada por intrusos e (6) impedir que intrusos possam modificar ou alterar configurações de equipamentos. • Medidas reactivas – englobam as acções de remedeio realizadas por uma determinada tecnologia, ou conjunto, de forma a assegurar a segurança dos Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 9 dados ou recursos de um sistema após a ocorrência de uma violação ou quebra de segurança. Estas medidas permitem actuar sobre incidentes específicos de segurança mal estes tenham ocorrido, decidir acerca da permissão ou negação dos pedidos de acesso ao sistema (à rede, às aplicações ou aos terminais), monitorizar os terminais numa rede para que se possa actuar assim que uma intrusão tenha ocorrido, recolher informação ou investigar incidentes de segurança que tenham ocorrido ou permitir o acesso a serviços remotos. Estes dois tipos de tecnologias de segurança de informação podem ser aplicadas a vários níveis: • Aplicação. • Rede. • Terminal. Ao nível da aplicação tentam-se proteger os dados ou os recursos partilhados pelos programas. Ao nível de rede assegura-se a protecção dos dados ou recursos que estão a ser transmitidos por um sistema de computadores interligados. Ao nível do terminal tentam-se proteger os dados ou os recursos que estão integrados num computador. As assinaturas digitais, os certificados digitais, a criptografia, as redes privadas virtuais (redes VPN – Virtual Private Network – aplicação concreta de criptografia), os antivírus, os protocolos de segurança (Internet Protocol Security e Kerberos), o hardware de segurança (módulos de encriptação e routers) e os kits de desenvolvimento de software de segurança (Java Security Manager e Microsoft .NET) são considerados tecnologias de segurança de informação proactivas. As tecnologias de segurança de informação reactivas englobam as firewalls (quando associadas a IDS), o controlo de acessos, as palavras passe, a biometria, os sistemas de detecção de intrusão (Intrusion Detection Systems - IDS), o logging e o acesso remoto. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 10 Estes exemplos apresentam-se organizados na Tabela 1: Níveis Medidas Aplicação Rede Terminal Proactivas Criptografia • Assinaturas Digitais • Certificados Digitais Kits de desenvolvimento de software seguro (Java Security Manager, Microsoft .NET) VPN Hardware Segurança (Routers) Antivírus Firewalls Reactivas Palavras Passe Logging IDS Palavras Passe Biometria Logging Acesso Remoto HIDS Tabela 1 – Medidas de segurança da informação 2.5 Problemas e Soluções para a Segurança da Informação Para enumerar algumas soluções na segurança da informação apresentam-se de seguida alguns dos problemas mais conhecidos: • Vírus – Qualquer tipo de código malicioso que apague os dados ou interfira com o funcionamento normal dos computadores. Actualmente os vírus são produzidos com objectivos diversos e utilizam técnicas bastante sofisticadas. Portanto, os administradores devem estar atentos á criação diária de novos vírus de forma a actualizarem os programas antivírus com actualizações que vão sendo disponibilizadas pelos fabricantes. • Sniffers – Programas que procuram capturar informações destinadas a uma outra máquina (sniffing). Um computador diz-se em modo promíscuo quando captura todos os pacotes, independentemente de serem ou não destinados a ele. Geralmente os crackers (atacantes especializados e mal intencionados) quando executam/desenvolvem um ataque, não anunciam a sua presença nem divulgam os ataques bem sucedidos. Instalam dispositivos de monitorização que reúnem informação sobre a rede utilizando-a para construir os seus Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 11 ataques. Os sniffers também são muito utilizados por administradores de rede para gerir e analisar o tráfego de pacotes. • Backdoor – Este conceito, também ele denominado como “porta dos fundos”, encontra-se definido na “RFC 2828” como sendo um mecanismo que dá acesso a um sistema e aos seus recursos através de um procedimento diferente do habitual. Normalmente é utilizado na fase de teste após o desenvolvimento de software ou hardware, não sendo de conhecimento público. Não possui necessariamente uma intenção maliciosa. No entanto existem autores que discordam um pouco desta definição, afirmando que um backdoor é, no fundo, uma falha na segurança de um sistema deixada deliberadamente pelo fabricante. Uma vez conhecida essa falha deixada pelo fabricante, o hacker (atacante especializado) ou o cracker (hacker mal intencionado) pode fazer uso dela para ter acesso a outros computadores sem ser bloqueado pelos mecanismos de segurança. Neste caso o backdoor é denominado trapdoor. Geralmente os atacantes tem uma listagem de backdoors deixados pelos fabricantes, que irão utilizar contra os potenciais alvos. • DoS – O DoS (Denial Of Service) é uma ameaça em que um invasor, após ter acedido e dominado um computador alheio, consegue gerar e enviar uma grande quantidade de dados, seja para uma rede, terminal ou servidor, com a finalidade de sobrecarregar a vitima, deixando as actividades da mesma indisponíveis (negação do serviço) ou muito lentas. Este tipo de ataque não tem a intenção de corromper ou modificar dados do computador, apenas de deixar o serviço indisponível. É praticamente impossível prevenir este tipo de ameaça, tornando-a assim extremamente perigosa para a organização que tem o serviço parado, pois pode corresponder a uma perda de dinheiro e credibilidade. • Scanners – Ferramentas que têm o intuito de descobrir terminais numa rede bem como informações sobre os mesmos. Estas podem ser vulnerabilidades, problemas ou erros de configuração de servidores, portos abertos e senhas fracas. Hoje em dia, os scanners são desenvolvidos para diversas plataformas Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 12 e são mais flexíveis, pois à medida que são descobertos novos problemas, os fabricantes e developers incorporam testes novos nas suas ferramentas, preparando-as para testar as vulnerabilidades. Um exemplo deste tipo de ferramenta é aplicação denominada Nessus, que foi utilizada para a realização do presente estudo e que será referida no capítulo dos testes (Capítulo 5). • Spoofing – Existem vários tipos e níveis de técnicas de spoofing. O conceito consiste em mascarar os pacotes IP com endereços de origem falsos. Para reduzir a possibilidade de um ataque de spoofing deve-se fazer uma autenticação criptografada e gestão de sessão. Existem basicamente três tipos de spoofing: o de IP, o de DNS e o de ARP. • Social Engineering – A engenharia social é um método utilizado por pessoas maliciosas quese aproveitam da fragilidade e da inocência dos utilizadores de recursos informáticos, com o intuito de obter informações necessárias para realizarem um ataque. Estas informações importantes podem ser obtidas através de telefonemas, correio electrónico, chat rooms, phising bancário e até pessoalmente. Umas das soluções para evitar este tipo de ameaça é oferecer aos funcionários da organização algumas palestras e treinos sobre o assunto, onde serão apresentadas várias dicas que podem ajudar a minimizar este problemas e melhorar a segurança da organização. Existem assim diversas soluções para combater as ameaças à segurança da informação, entre as quais: • Criptografia – é geralmente entendida como sendo o estudo dos princípios e das técnicas pelas quais a informação pode ser transformada da sua forma original para outra ilegível (cifragem), a menos que seja conhecida uma "chave secreta", o que torna difícil a leitura da mensagem por alguém não autorizado. Assim sendo, só o destinatário pode ler a informação, visto só este possuir a chave. Os algoritmos de cifragem geralmente são públicos, logo a segurança é obtida através das chaves que são utilizadas. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 13 o Algoritmos de cifragem simétricos ou de chave única – É utilizada a mesma chave para cifrar e decifrar, emissor e receptor concordam previamente sobre que chave utilizar, tendo essa chave que ser trocada entre ambos através de um canal seguro. o Algoritmos assimétricos – Cada extremo da comunicação tem duas chaves, uma pública de conhecimento geral e uma chave privada mantida em segredo pelo dono. Tudo o que seja cifrado com a chave pública de um determinado extremo apenas será decifrado por quem detiver a chave privada do dono da chave pública. • Esteganografia – é o estudo e uso de técnicas para ocultar a existência de uma mensagem dentro de outra, sendo um conceito diferente de criptografia. Na estenografia pretende-se ocultar a existência da mensagem, enquanto que na criptografia pretende-se ocultar o significado da mensagem. Muitas vezes as duas são utilizadas em conjunto. A forma mais comum da utilização desta técnica é a alteração do bit menos significativo de cada pixel de uma imagem, transformando-o num bit da mensagem que se pretende ocultar, este método apenas alterará ligeiramente a qualidade da imagem. Esta técnica também pode ser utilizada em outros meios digitais como por exemplo áudio e vídeo. • Segurança Física – relaciona-se directamente com os aspectos associados ao acesso físico a recursos e informações, sejam esses recursos informação, meios de suporte e armazenamento ou mecanismos de acesso às informações. Nem todas as organizações foram pensadas de raiz para possuírem uma rede de dados estruturada, o que leva a que as salas de distribuição de piso, edifício ou de campus nem sempre estejam bem localizadas. Estas podem estar situadas em locais de fácil acesso, em que, por exemplo, um qualquer indivíduo que visite a organização lhes possa aceder facilmente, adquirindo acesso por exemplo, à consola de um router ou servidor. • Cópias de Segurança (Backups) – devem ser feitas cópias de segurança regularmente para que a informação esteja salvaguardada de qualquer tipo de ameaças, sejam elas naturais ou provocadas por ataques. Existem dois tipos de Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 14 cópias de segurança: incrementais e completos. As cópias de segurança incrementais são aquelas em que apenas se guarda os dados que sofreram actualizações desde a última cópia de segurança completa, nas cópias de segurança completas é feita a cópia de todos os dados armazenados no disco rígido. Antes de se efectuar a cópia de segurança deve ser escolhido o tipo de dispositivo onde será guardada a informação e o local onde esse dispositivo será guardado. As empresas que trabalham com grandes quantidades de dados, recorrem a backups offsite, ou seja, diariamente ou semanalmente é feita uma cópia dos dados num local longe da origem para que em caso de catástrofe estes fiquem a salvo, existem empresas especializadas em offsitebackups pelo mundo inteiro. Estas mesmas empresas replicam todos os dados pelos quais são responsáveis em vários locais do mundo. • Antivírus – são programas com a capacidade de detectarem e eliminarem vírus. Os antivírus possuem uma base de dados contendo as assinaturas dos vírus que são conhecidos até ao momento e que podem ser detectados e removidos. Desta forma, somente após a actualização da base de dados, os vírus recém-descobertos podem ser detectados e removidos. Actualmente os antivírus são programas que estão constantemente a monitorar o sistema e verificam em tempo real se existem vírus em ficheiros que estão a ser descarregados da Internet, do servidor de e-mail ou copiados da rede local. • Logs – registo de eventos à medida que vão ocorrendo, efectuado pelo sistema operativo ou pelas aplicações. Os logs têm extrema importância, por exemplo, quando se pretende descobrir que pessoa esteve presente numa máquina em determinado dia e hora bem como as tentativas de login erradas. São úteis ainda para que o administrador da rede possa detectar possíveis causas de falhas do sistema. Geralmente os logs são armazenados no disco do próprio sistema onde foram gerados. Tal procedimento não é aconselhado uma vez que uma das tarefas de um atacante é apagar os logs referentes à sua passagem pelo sistema. Uma técnica utilizada é a criação de um loghost, máquina onde são guardados todos os logs de uma forma segura e ao mesmo tempo centralizada. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 15 • Firewalls – é o nome dado ao dispositivo de rede ou software que tem por função regular o tráfego entre redes distintas e impedir a transmissão de dados nocivos ou não autorizados de uma rede para outra. Dentro deste conceito incluem-se, geralmente, os filtros de pacotes e proxy de protocolos. Existe na forma de software e hardware, ou na combinação de ambos. A instalação depende do tamanho da rede, da complexidade das regras que autorizam o fluxo de entrada e saída de informações e do grau de segurança desejado. • IDS – processo de monitorização de eventos que ocorrem em computadores e em recursos de rede, para que estes possam ser analisados de forma a encontrar quaisquer sinais evidentes de intrusão. Este conceito será abordado em pormenor no Capítulo 3 • VPN – assentam no estabelecimento de uma ligação segura entre dois pontos através de uma rede insegura, por exemplo a Internet. Ou seja, é criado um túnel entre esses dois pontos onde a informação circula cifrada e autenticada. Esta é uma aplicação concreta da criptografia. A evolução das redes de computadores permitiu a convergência de vários sistemas de comunicação à escala global, como: voz, dados e imagem. Tal facto permitiu ás organizações a troca de informação e a partilha de recursos de uma forma rápida e segura. Contudo esta evolução não trouxe apenas benefícios, todo este avanço tecnológico, por vezes desmesurado, trouxe a crescente preocupação com a segurança que deve ser implementada a diversos níveis da rede. Tópicos como por exemplo, politicas de privacidade de utilizadores, autenticação biométrica, comparação de custos para implementação de modelos e mecanismos de segurança entre sistemas operativos Windows e UNIX, buffer overflows, Cross Site Scripting, SQL Injection, forensic computing, fuzzers, entre outros, seriam tópicosinteressantes de análise. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 16 3 Sistemas de Detecção de Intrusão As organizações preocupam-se cada vez mais com a protecção relativa a ataques aos seus sistemas informáticos, que colocam em causa a segurança da informação. Os Sistemas de Detecção de Intrusão são indispensáveis, tendo em conta o aumento de actividades danosas. Tal prende-se com o facto de serem das principais tecnologias disponíveis para garantir uma segurança automatizada dos sistemas. 3.1 Entidades e Padrões Independentemente da arquitectura ou do método utilizado para a detecção, todos os IDS possuem componentes em comum. Cada um desses componentes, muitas vezes agrupados, desempenha um papel importante na tarefa de identificar acções consideradas prejudiciais ao sistema. Assim, deve-se conhecer a anatomia de um IDS, seja com o intuito de desenvolver novas técnicas e modelos, ou pela necessidade de avaliar as diferentes soluções disponíveis. Tem vindo a ser feito um grande esforço para padronizar a nomenclatura e a função de cada um dos componentes que compõe um IDS, principalmente para facilitar a interacção entre diferentes ferramentas deste tipo. 3.1.1 Common Intrusion Detection Framework O CIDF (Common Intrusion Detection Framework – http://gost.isi.edu/cidf/) constituiu uma primeira tentativa de padronizar o funcionamento dos IDS, no final da década de 90, como uma iniciativa de Teresa Lunt funcionária da DARPA (Defense Advanced Research Projects Agency). A necessidade de padronização surgiu pelo aparecimento de ataques cada vez mais sofisticados, capazes de serem distribuídos através de redes metropolitanas durante longos períodos, exigindo assim a utilização de IDS distribuídos. Neste tipo de ambiente distribuído a capacidade dos IDS e dos seus componentes poderem partilhar informações "avançadas" tornou-se algo extremamente importante. Entre os objectivos do CIDF Work Group estavam o desenvolvimento de protocolos e interfaces de programação, de forma a que projectos de pesquisa em IDS pudessem partilhar informações e recursos. O Work Group objectivava ainda que diferentes Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 17 componentes de um IDS compartilhassem informações da forma mais detalhada e completa possível e que um sistema pudesse ser reutilizado em contextos diferentes daquele para o qual tinha sido originalmente configurado. O esforço principal do CIDF Work Group foi definir uma "linguagem" da camada de aplicação para descrever as informações de interesse do sistema, a qual foi chamada de CISL (Common Intrusion Specification Language) e um protocolo para codificar esta informação e partilhá-la entre componentes. Figura 4 – Interacção dos componentes no modelo CIDF O CIDF definiu assim uma arquitectura que divide os IDS em componentes e um modelo de camadas que apresenta a comunicação entre estes componentes. Esta arquitectura define os IDS como contendo quatro componentes que comunicam através da passagem de mensagens, denominadas GIDOs (Generalized Intrusion Detection Objects), que são representadas através de um formato comum definido pela linguagem CISL. Como disposto na Figura 4, os quatros componentes que compõem o modelo CIDF são: E-Box (gerador de eventos), A-Box (analisador de eventos), D-Box (base de dados de eventos) e C-Box (contra medidas). A E-Box gera os eventos e é responsável pela obtenção dos dados e pela posterior padronização do formato desses dados. Em ambientes Unix pode-se capturar pacotes da rede através da biblioteca de programação libpcap, em ambiente Windows é a biblioteca winpcap que realiza esta função. Os eventos devem ser gerados assim que ocorrem, em tempo real, e o armazenamento de eventos deve ficar sob a Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 18 responsabilidade das Base de Dados de Eventos – Componente D-Box. A E-Box não processa os dados gerados, ficando a cargo do componente especializado na função de processamento (A-Box), que por sua vez, após analisar os eventos (violação de políticas, anomalias, intrusão), envia os resultados para outros componentes. A A-Box analisa os eventos e constitui o componente mais importante dos IDS, pois realiza a detecção de intrusões, identificando o que é e o que não é uma intrusão. Este componente recebe as informações de outros componentes, analisa-as e envia-as de forma resumida para outros componentes. A D-Box é uma base de dados e representa o elemento responsável pelo armazenamento dos eventos obtidos na E-Box para futura análise, ou mesmo da A- Box (dados já analisados). A importância da D-Box é fundamental pois os dados armazenados são cruciais para o desempenho dos vários componentes dos IDS. O último componente é o C-Box. Basicamente este componente é formado por unidades de resposta que são responsáveis pelas contra medidas para os eventos. Podem ser desde simples alarmes a avisar os responsáveis pela rede, tal como podem tomar decisões tipo encerramento de processos ou desligar de um servidor. Em geral, este componente comunica com outros dispositivos da rede como por exemplo firewalls. O fluxo destes componentes basicamente segue da seguinte forma: os pacotes (TCP, UDP ou ICMP) são capturados pelo gerador de eventos (vulgo sensor), que os entrega ao analisador. Este consulta a base de dados de eventos e quando detecta um tipo de ataque, armazena a detecção noutra base de dados e a partir daí já pode lançar uma unidade de contra medidas. O esforço desenvolvido em volta do framework CIDF incentivou a criação de um working group do IETF (Internet Engineering Task Force), denominado IDWG (Intrusion Detection Working Group). 3.1.2 Intrusion Detection Working Group O IDWG (http://www.ietf.org/html.charters/OLD/idwg-charter.html) é um grupo de trabalho do IETF cujo objectivo foi definir formatos de dados e procedimentos de troca para a partilha de informações de interesse entre IDS. O trabalho do IDWG resultou na especificação de um formato para troca de mensagens (IDMEF - Intrusion Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 19 Detection Message Exchange Protocol) e de um protocolo de comunicação para o transporte de mensagens IDMEF (IDXP - Intrusion Detection Exchange Protocol). Entre as razões do IDWG para a especificação do IDMEF e do IDXP estiveram: o grande número de IDS gratuitos e comerciais com características distintas de funcionamento, gerar eventos relativos a intrusões num formato comum entre os IDS, facilitando o uso destes, além da possibilidade de integração de diferentes componentes de IDS distintos. O IDWG determinou uma arquitectura para IDS mais detalhada que o CIDF. Os componentes especificados não são necessariamente implementados por todos os IDS, podendo ser incluídos num único módulo ou distribuídos em vários módulos. Figura 5 – Componentes de um IDS segundo o IDWG As fontes de dados representam os dados que vão ser alvo de auditorias, por exemplo, o tráfego de um segmento de rede. Os sensores são destinados a reunir eventos suspeitos da fonte de dados e passá-los ao analisador, tal como demonstra a Figura 5. As actividades especificadas na interligação da fonte de dados com o sensor, correspondem a eventos que ocorrem na fonte e que são de interesse do operador, como por exemplo, uma sessão telnet em horário inesperado, ou utilizadores a acederem a serviços não autorizados. Estudo de Sistemas de Detecção e Prevençãode Intrusões Uma Abordagem Open Source 20 Os analisadores recebem eventos capturados e passados pelos sensores que podem gerar alertas e processá-los. Esses eventos suspeitos que foram capturados são classificados de acordo com a política de segurança do administrador da rede. Em muitos sistemas tanto os sensores como os analisadores fazem parte do mesmo componente. Quando um desses eventos suspeitos é capturado e está relacionado com alguma regra definida na política de segurança, será gerado um alerta, que por sua vez será enviado ao gestor. Este componente é manipulado por um operador ou pelo administrador da rede e é o responsável por configurar os demais componentes do IDS, além de gerir a notificação dos alertas e emitir relatórios estatísticos. O gestor quando recebe um alerta, emite uma notificação ao operador, através de e-mail, alerta sonoro ou outra forma de notificação e este último tomará providências, sejam elas automáticas ou não, como resposta ao alerta notificado. O IDMEF tem a finalidade de ser um formato de dados padrão que os IDS podem usar para reportar alertas sobre eventos suspeitos. O desenvolvimento deste formato padrão possibilitará a configuração de sistemas que utilizem componentes comerciais, open source e de pesquisa, de acordo com os seus pontos fortes e fracos, permitindo assim uma implementação optimizada. O ponto mais óbvio para implementar o IDMEF é o canal de dados entre o analisador ou o sensor, e o gestor que recebe os alertas, ou os alarmes. Mas existem outros pontos onde o IDMEF pode ser útil, tal como sistemas de base de dados que armazenam resultados de vários IDS, sistemas de correlação de eventos que podem aceitar alertas de vários produtos e também, a troca de informações relativas a incidentes de segurança entre organizações. O modelo de dados do IDMEF é uma representação orientada a objectos dos dados de alertas que podem ser enviados do analisador para o gestor O IDXP possibilita a troca de mensagens IDMEF e de dados no formato binário entre componentes de um IDS. Em parte, é especificado como um perfil específico do protocolo BEEP (Blocks Extensible Exchange Protocol). O BEEP (www.beepcore.org) é um framework para protocolos de aplicação genéricos que funcionam com interacções assíncronas e orientadas à conexão. Muitos dos Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 21 requerimentos exigidos ao IDXP são preenchidos pela framework do BEEP, por exemplo, transmissão fidedigna de mensagens e autenticação mútua. O IDWG continuou a desenvolver estes conceitos, com esperança que se tornassem o padrão que servisse de base ao desenvolvimento de IDS com um grau de interoperabilidade máximo. Este working group parou os seus trabalhos devido a uma perda de motivação e interesse pelos objectivos propostos (http://www1.ietf.org/mail- archive/web/ietf-announce/current/msg02352.html), deixando todo o trabalho (IDMEF e IDXP) em estado de RFC experimental, para o qual foi reclassificado no primeiro trimestre de 2006 (http://www1.ietf.org/mail-archive/web/ietf- announce/current/msg02371.html). 3.2 Conceitos Básicos Existem diversos conceitos básicos que serão explorados de seguida de forma a melhor compreender os IDS e o ambiente envolvente. Intrusão – é definida como o conjunto de acções desencadeadas pelo intruso que compromete a estrutura básica da segurança da informação de um sistema informático: integridade, confidencialidade e disponibilidade. A política de segurança define com clareza o que é uma intrusão, ou seja, este instrumento expressa claramente o que é permitido e o que não é. Intruso – definido como qualquer utilizador ou entidade que acede ou invade um sistema sem que para tal tenha obtido autorização. A detecção de um intruso é uma tarefa complexa, uma vez que este pode ter em seu poder a identificação de um outro utilizador legítimo ou um comportamento muito semelhante ao de um utilizador legítimo. A distinção correcta entre um utilizador legítimo e um utilizador intruso é de extrema importância. Assim, pode-se fazer a distinção de dois tipos de intrusos: • Intruso Externo – todos os utilizadores que não pertencem ao sistema e que implementam acções de intrusão ao mesmo; Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 22 • Intruso Interno – todos os utilizadores que têm algum tipo de autorização de acesso legítimo ao sistema e que, normalmente ultrapassando os seus direitos de acesso, tentam realizar acções de intrusão a esse mesmo sistema. Detecção de intrusão – consiste no processo de monitorização de eventos que ocorrem em computadores e em recursos de rede, para que estes possam ser analisados de forma a encontrar quaisquer sinais evidentes de intrusão. Um IDS é definido por englobar toda a tecnologia (software ou hardware) que permite automatizar o processo de monitorização e de análise de eventos inesperados e que podem indiciar a ocorrência de actividades maliciosas de intrusão. Estes mecanismos devem ser implementados pelos sistemas para permitirem a detecção dos dois tipos de intrusos referidos anteriormente. A classificação de IDS pode respeitar várias abordagens: tipo de fontes de informação de onde são recolhidos os dados, técnicas ou princípios de detecção utilizados ou tipo das intrusões detectadas. 3.3 Função dos Sistemas de Detecção de Intrusão O conjunto de funções atribuídas aos IDS engloba todas as actividades maliciosas, anómalas ou incorrectas que ocorrem num sistema informático. Assim o IDS tem o papel de identificar positivamente todos os verdadeiros ataques e identificar negativamente todos os falsos ataques. O IDS pode responder em tempo real a processos ou eventos de intrusão através da análise de todo o processo e das marcas (assinaturas) ou padrões comportamentais de uma intrusão. As seguintes actividades são realizadas pelos IDS e através de graus variáveis de precisão: • Monitorização e análise de actividades de sistema e dos utilizadores; • Realização de auditorias à infra-estrutura, às falhas e às vulnerabilidades do sistema; • Identificação do modelo de actividades do sistema, de forma a reconhecer-se sinais de ataques e de alertas; • Realização de uma análise estatística a um modelo de comportamento anómalo; Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 23 • Avaliação da integridade dos ficheiros de dados e de sistema; • Realização de auditorias de gestão ao sistema operativo e de reconhecimento do comportamento dos utilizadores que desobedecem à política de segurança da organização. Os IDS integram-se dentro das medidas de detecção definidas no modelo para a segurança da informação (detecção e comunicação da intrusão ao responsável pela segurança do sistema), não possuindo um carácter verdadeiramente preventivo no sentido de impedir a ocorrência de uma intrusão. No entanto existem IDS capazes de reagir aquando da detecção de acções não autorizadas, de forma a conter ou parar o causador, por exemplo desligando a ligação à rede. Um exemplo elucidativo é ao ser detectado um port scan, que visa encontrar portos abertos que possam ser aproveitados por cavalos de tróia (trojan horses), o IDS poderá bloquear ligações vindas desse terminal. 3.4 Critérios de Avaliação da Qualidade dos Sistemas de Detecção de Intrusão São vários os parâmetros que permitem avaliar a qualidade de um IDS, entre os quais: • Adaptabilidade – expressa a capacidade que o IDS possui em reconhecer ligeiras modificações de ataques já conhecidos; • Extensibilidade– traduz a capacidade que o sistema de detecção possui em poder ser personalizado (Por exemplo interagir com diversos tipos de bases de dados); • Eficiência ou precisão da detecção – traduz a capacidade que o IDS possui para detectar correctamente a ocorrência de intrusões; A eficiência dos IDS é contabilizada através do número de erros de detecção que ocorrem, tendo em conta os seguintes critérios: o Falsos Positivos – acontecem no caso de um evento ser incorrectamente identificado pelo IDS como sendo uma intrusão, quando na realidade esta não aconteceu, ou seja, constitui um falso alarme. Deste modo, um falso Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 24 positivo pressupõe que um comportamento legítimo de um utilizador é identificado pelo IDS como um comportamento de intrusão; o Falsos Negativos – acontecem no caso do IDS não conseguir identificar um ataque, quando na realidade o respectivo evento é efectivamente uma intrusão. Deste modo, um falso negativo pressupõe que um comportamento de intrusão é identificado pelo IDS como sendo um comportamento de utilização normal. • Impacto no desempenho do sistema – constitui um parâmetro que procura reflectir o peso do processamento associado à função IDS, face à quantidade de processamento da função normal do sistema. Neste parâmetro pode ser quantificado o grau de utilização do processador e os eventuais atrasos no processamento normal dos dados e o tráfego de rede gerado. De referir que actualmente não existe um sistema padronizado para efectuar benchmarks aos IDS. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 25 3.5 Categorias dos Sistemas de Detecção de Intrusão Existem diversas abordagens possíveis na classificação de IDS como se demonstra na Figura 6. Figura 6 – Classificação de IDS Uma das maneiras de catalogar IDS é em função das fontes de informação de onde são recolhidos os dados analisados. Destes tipos de processamento da informação resultam três abordagens: Figura 7 – Classificação de IDS segundo a fonte de informação Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 26 • IDS baseados na Rede (Network-based IDS - NIDS) – obtêm dados através da monitorização do tráfego na rede informática de forma a descobrir possíveis sinais de intrusão, sendo-lhes habitualmente reconhecidas as seguintes características: o São relativamente baratos; o Tornam as evidências de ataques difíceis de esconder; o Permitem uma detecção e resposta a ataques em tempo real, minimizando desta forma os estragos causados pelas intrusões; o Podem detectar tentativas de ataques falhados; o São independentes do sistema operativo. • IDS baseados em Máquinas (Host–based IDS - HIDS) – obtêm os dados do sistema operativo ou das aplicações que estão numa determinada máquina (host) que está sujeita a intrusões. A recolha dos dados é frequentemente feita com o recurso a logs do sistema. Este método de actuação permite que a recolha de dados reflicta com precisão o que está a efectivamente a acontecer no terminal. Os HIDS possuem as seguintes características: o Não necessitam de hardware adicional; o Permitem uma detecção e resposta a ataques em tempo quase real; o Dependem do sistema operativo que está instalado no terminal; o Adaptam-se bem a sistemas que utilizem a encriptação nas comunicações. • IDS Híbridos – são um misto dos NIDS e dos HIDS (p.e. Prelude). Existem diversos tipos de dados que podem ser recolhidos pelos IDS: • Dados referentes ao tráfego de rede; • Dados referentes à linha de comandos do sistema operativo; • Dados referentes às chamadas de sistema do sistema operativo; • Dados gerados ou manipulados pelas aplicações; • Todos os caracteres transmitidos; Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 27 • Dados referentes a keystrokes; • Logs de segurança activa (p.e. HTTP e FTP). A localização das tecnologias de recolha de dados (sensores) também pode servir para classificar os IDS: Figura 8 – Classificação de IDS segundo o sensor • Sensores Externos – englobam todos os componentes de monitorização que estão separados das aplicações e dos objectos que estão a ser monitorizados. Têm a seu favor o facto de poderem ser facilmente modificados, adicionados ou removidos de um terminal e da sua implementação não estar sujeita à linguagem de programação utilizada para aplicar restrições impostas pelos objectos que estão a monitorizar. No entanto, apresentam como desvantagens o facto de poderem ser desactivados ou modificados pelos intrusos e de terem impacto assinalável no desempenho do host, no caso dos HIDS. • Sensores Internos – encontram-se integrados no próprio código da aplicação que está a ser monitorizada. Este tipo de sensores apresenta como vantagens o facto de não poderem ser facilmente modificados e de não provocarem um impacto assinalável no desempenho do host. As principais desvantagens estão no facto de serem difíceis de implementar já que esta tem de ser efectuada utilizando a mesma linguagem da aplicação que pretendem monitorizar, de serem complicados de actualizar ou modificar e poderem causar sérias consequências no desempenho do sistema se forem projectados ou implementados de uma maneira incorrecta. 3.6 Técnicas ou Princípios de Detecção de Intrusão Denning apresentou o modelo de detecção de intrusões pelo qual muitos se baseiam. Neste modelo são utilizados os registos de auditoria (audit records), pacotes de rede ou ainda qualquer outra actividade observável, para a detecção de anomalias no sistema. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 28 As técnicas de detecção de intrusões dividem-se em várias categorias: Figura 9 – Classificação de IDS segundo a técnica de detecção • Detecção por Anomalias (Anomaly Detection): Consiste na tentativa de determinar uma intrusão através da verificação da ocorrência de um desvio relativamente aos padrões de utilização normal estabelecidos para o sistema. Estas técnicas assumem que todas as actividades de intrusão são necessariamente anómalas. Se um perfil de actividade normal (Baseline) poder ser estabelecido para um determinado sistema, então todas as variações estatísticas significativas do estado do sistema relativamente a esse perfil poderão ser catalogadas como uma tentativa de intrusão. Este tipo de sistema detecta tudo o que seja anómalo. No entanto, esta técnica quando aplicada, tende para uma elevada taxa de falsos positivos e falsos negativos. São várias as abordagens de implementação do princípio de detecção de intrusão por anomalias: Figura 10 – Abordagens da detecção de intrusão por anomalias Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 29 • Abordagem estatística – pressupõe que inicialmente sejam gerados os perfis de comportamento dos utilizadores do sistema, em termos de parâmetros estatísticos adequados. Posteriormente, e à medida que o sistema vai sendo utilizado, o detector de anomalias gera continuamente uma variância do perfil actual relativamente ao original. A principal vantagem está no facto deste método ser francamente adaptável, de tal modo que pode facilmente descobrir o comportamento dos utilizadores do sistema. Contudo, apresenta como desvantagem o facto do método poder ser gradualmente viciado por intrusos, de tal modo que habituem o sistema de treino à utilização intrusiva, aumentando a taxa de falsos negativos;• Criação de padrão de predição (Predictive Pattern) – tenta vaticinar a ocorrência de eventos futuros baseando-se para tal em eventos que já tenham acontecido. Os sistemas que utilizam este método são bastante adaptativos a mudanças, uma vez que os maus padrões são eliminados continuamente; • Redes neuronais – passa pelo treino de uma rede neuronal através da qual se procura vaticinar a próxima acção ou comando desencadeado pelo utilizador do sistema. Para tal, a rede é treinada com um conjunto de comandos representativos do utilizador, pelo que após o período de treino, a rede tenta comparar os comandos actuais com o perfil actual do utilizador já existente nesta rede. O IDES (Real-time Intrusion Detection Expert System), o Wisdom & Sense (Detection of Anomalous Computer Session Activity), o Hyperview (Neural Network Component for Intrusion Detection) e o DPEM (Distributed Program Execution Monitoring) são exemplos de IDS baseados em detecção de anomalias. • Detecção por má utilização, detecção por regras ou detecção por marcas (Signature Detection): A detecção de intrusão por regras baseia-se na utilização de padrões de ataques já conhecidos ou de pontos vulneráveis do sistema para tentar Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 30 descobrir e identificar a ocorrência de intrusões. Ao pressupor que existem meios para representar ataques sob a forma de um padrão, de uma marca ou de uma assinatura (signature), esta técnica é capaz de detectar até pequenas variantes do mesmo ataque. Esta técnica detecta todos os comportamentos semelhantes a padrões já conhecidos. No entanto pode apresentar alguns problemas, entre os quais: • A descoberta de um padrão que inclua todas as variações possíveis de um ataque pertinente e que não seja coincidente com uma actividade de não intrusão; • A inabilidade para detectar intrusões que ainda não sejam conhecidas pelo IDS. Ao contrário da detecção de intrusão por anomalias, que se baseia em falhas no comportamento normal do sistema, a detecção por regras tenta implementar um modelo que detecta o comportamento de intrusão do atacante. Uma vez que ambas as abordagens (detecção por anomalias e detecção por regras) têm falhas, é frequente as tecnologias de IDS serem baseadas nas duas. São várias as abordagens para os princípios de detecção de intrusão por regras: Figura 11 – Abordagens da detecção de intrusão por regras • Baseada num modelo – advoga que certos cenários de intrusão podem ser identificados pela observação de determinadas actividades. Como tal, se estas actividades forem monitorizadas, então poderá ser possível descobrir tentativas de intrusão. Com base no modelo de intrusão, o sistema pode então prever o próximo movimento do atacante. Estas previsões podem ser utilizadas para confirmar hipóteses de intrusão ou para tomar medidas preventivas. As principais desvantagens estão no facto de os padrões para cenários de intrusão terem de ser facilmente reconhecidos e não estarem associados a um comportamento normal; Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 31 • Baseada na coincidência de padrões (Pattern Matching) – pressupõe a codificação das assinaturas de intrusões conhecidas em padrões que são posteriormente comparados com os padrões monitorizados. Como tal, neste modelo é feita uma tentativa para fazer coincidir eventos de entrada com padrões representativos de cenários de intrusão. A principal desvantagem está no facto de que detecta somente ataques que se baseiam em comportamentos não autorizados já conhecidos. O DIDS (Distributed Intrusion Detection System), o ASAX (Architecture and Rule-Based Language for Universal Audit Trail Analysis) e o USTAT (State Transition Analysis) são exemplos de implementações de sistemas baseados na detecção por regras. O Haystack, o MIDAS (Expert Systems in Intrusion Detection), o NADIR (Automated System for Detecting Network Intrusion and Misuse) e o NIDES (Next Generation Intrusion Detection Expert System) são exemplos de IDS que se baseiam nas duas abordagens (baseadas em anomalias e em regras). Uma abordagem mais recente para a implementação de IDS é a detecção de intrusões baseada em data mining. Estes sistemas necessitam da realização de auditorias (trails audit) especializadas de forma a identificar padrões anómalos de utilização. No entanto, o volume de dados gerados nestas auditorias é problemático. Assim, neste contexto é necessário utilizar data mining em IDS, pois esta técnica apresenta potencial suficiente para minimizar o problema da detecção automática de padrões anómalos a partir da monitorização de grandes quantidades de dados auditados. Os IDS que implementam data mining ainda estão numa fase prematura, mostrando- se problemáticos, pois apresentam taxas elevadas de falsos positivos, possuem uma baixa eficiência durante a fase de treino e avaliação (problemas de análise em tempo real) e são mais complexos que os sistemas já existentes. Existem outras perspectivas a ter em conta para se catalogar os IDS, entre elas o tipo de detecção, a reactividade e o tipo de análise (número de máquinas), tal como demonstra a Figura 12. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 32 Figura 12 – Outras abordagens para classificar os IDS Existem diversos tipos de intrusão, que por sua vez também dividem os IDS em categorias ordenadas pelo grau de dificuldade de implementação: • Intrusões Bem Conhecidas – englobam todos os ataques perfeitamente conhecidos, estando por isso bem definido um padrão estático dos seus comportamentos, já que apresentam uma fraca variabilidade; • Intrusões Genéricas – semelhantes às anteriores, mas podem apresentar uma variabilidade maior. Este tipo de intrusões exploram falhas genéricas existentes nos sistemas, pelo que existe uma maior probabilidade para a ocorrência de variações no padrão do respectivo ataque; • Intrusões Desconhecidas – são as mais difíceis de detectar, uma vez que o sistema não possui nenhum padrão acerca do comportamento deste tipo de ataques. Estudo de Sistemas de Detecção e Prevenção de Intrusões Uma Abordagem Open Source 33 Dificuldade de Implementação Intrusões Bem Conhecidas Intrusões Genéricas Intrusões Desconhecidas Figura 13 – Abordagem segundo a dificuldade de implementação 3.7 Considerações Finais sobre IDS Não existe um método de detecção ideal, quer por anomalias, quer por assinaturas, visto ambos terem vantagens valiosas. Num plano utópico teríamos um IDS com um número baixo de falsos positivos e negativos apresentados pelos sistemas baseados em detecção por assinaturas, combinado com a dinâmica dos sistemas de detecção por anomalias. Este IDS teria actualizações constantes do baseline (padrão de normalidade), cautelosas, precisas e que não corressem o risco de considerar como normais diversas actividades maliciosas. Estaria sempre actualizado contra ataques não conhecidos. Existem diversas ferramentas que utilizam técnicas mistas, como referido (Secção 3.6), no entanto ainda estão em fase evolutiva, longe de alcançarem resultados fiáveis. O Snort, objecto de estudo deste relatório (Capitulo 4), é um IDS de rede (Network IDS) que se baseia em detecção por assinaturas. É actualmente o 3º no Top 100 de ferramentas de segurança de rede sendo o IDS com melhor classificação. Esta tabela classificativa, que apresenta as 100 melhores ferramentas de segurança de rede, na opinião de 3243 utilizadores da mailing list nmap-hackers, pode ser consultada
Compartilhar