Sistemas de Detecção de Intrusão(SDI’s) Marcelino Antero Loreno Feitosa Wagner Porto Paulo Eduardo Introdução Meio físico compartilhado possibilita que pessoas não autorizadas obtenham informações privilegiadas. Uso de SDI’s com sensores que disparam o um determinado ou não esperado evento. Motivação Necessidade de Proteger a informações contra usuários não autorizados Segurança do sistema violada por usuarios com pouco conhecimento. Uso em conjunto com outros sistemas, criptografia, firewall, etc. Ponto fundamental para uso de outras ferramentas de segurança para obter dados sobre as diferentes fontes de ataque. Visão geral O SDI tenta detectar e alertar a acao de intrusos Comunicacao com o adminitrador do sistema atraves de e-mail, pager, mensage no celular ou algum protocolo como SNMP O SDI pode reagir a intrusao como por exemplo a adicao de uma regra no firewall ou desabilitação de uma conta Tipos de Detecção de Intrusão Existem dois tipos diferentes de detecção que podem ser empregados: Baseada na Rede (SDIR) – Observam todo os dados trocados entrea as estações. Baseada na Estação (SDIE) – Atuam em uma maquina monitorando o sistema de arquivos, os processos e o uso da CPU por exemplo Baseada na Rede (SDIR) Pacotes que trafegam pela rede são capturados e analisados para verificar tentativas de ataque. Para que uma maquina receba pacotes não destinado a ela eh necessario que sua interface trabalhe em modo promiscuo. Baseada na Rede (SDIR) (-) A estacao pode não aguentar todo o procesamento de trafego da rede e Exposição de dados sigilisos. (+) Possibilita a detecção de varreduras de portas e ataques de navegação. Em redes comutadas usa-se uma tecnica de espelhamento de portas. Baseada na Estação (SDIE) Monitoram a atividade em uma estacao especifica, armazenam os dados localmente ou enviam para estação de analise. Exemplo: Sistemas de logs do Linux Um sistema de analise compara essas informações com padroes pre estabelescidos. Baseada na Estação (SDIE) Exemplo de de falha por Usuário desconhecido Sep 28 03:53:36 asckanio login(pam_unix)[854]: check pass; user unknown Sep 28 03:53:36 asckanio login(pam_unix)[854]: authentication failure; logname=LOGIN uid=0 euid=0 tty=tty2 ruser= rhost= Sep 28 03:53:38 asckanio login[854]: FAILED LOGIN 1 FROM (null) FOR marcelino, Authentication failure Sep 28 03:53:42 asckanio login(pam_unix)[854]: check pass; user unknown Sep 28 03:53:44 asckanio login[854]: FAILED LOGIN 2 FROM (null) FOR marcelino, Authentication failure Sep 28 03:53:48 asckanio login(pam_unix)[854]: check pass; user unknown Sep 28 03:53:50 asckanio login[854]: FAILED LOGIN 3 FROM (null) FOR marcelino, Authentication failure Sep 28 03:53:55 asckanio login(pam_unix)[854]: session opened for user marcel by LOGIN(uid=0) Set 28 03:54:08 asckanio su(pam_unix)[890]: session opened for user root by marcel(uid=500) Baseada na Estação (SDIE) Exemplo de de falha por Usuário desconhecido Sep 28 04:01:24 asckanio login(pam_unix)[855]: bad username [#1@8vgU] Sep 28 04:01:24 asckanio login[855]: FAILED LOGIN 1 FROM (null) FOR #1@8vgU, Authentication failure Sep 28 04:01:37 asckanio login(pam_unix)[855]: bad username [#1@8vgU] Sep 28 04:01:37 asckanio login[855]: FAILED LOGIN 2 FROM (null) FOR #1@8vgU, Authentication failure Sep 28 04:01:52 asckanio login(pam_unix)[855]: session opened for user marcel by LOGIN(uid=0) Arquivos Importantes: /etc/syslog.conf e /etc/logrotate.conf Exemplo de comando: #cat /var/log/messages |grep -i failure |mail -s "ALERTA: Tentetivas falhas de acesso" root Híbrida Apesar de diferentes os tipos de SDI’s se completam. Análise de Detecção de Intrusão Baseada na Rede Como funciona a Detecção de Intrusão baseada em Rede? Trabalha com informação trocada entre hosts que estão se comunicando Uma vez capturados vários tipos de análises podem ser feitas nos pacotes. Compara o pacote com assinaturas de ataques conhecidos. Análise do estado do lifecicle do protocolo. Análise de Detecção de Intrusão Baseada na Rede Barramento compartilhado: Todas as máquinas ligadas ao barramento enxergam os pacotes que lá são colocados. Cada estação verifica se o pacote é destinado a ela, só nesse caso a estação processa o pacote. Normalmente estações não processam pacotes que não são destinados e elas. Análise de Detecção de Intrusão Baseada na Rede Modo normal: Cada interface de rede verifica o endereço MAC do pacote. Se coincidir com o endereço físico da máquina o pacote é processado. Modo promíscuo: A estação processa todos os pacotes do barramento. Processo também conhecido como “farejar” (sniff) a rede. Análise de Detecção de Intrusão Baseada na Rede SDIRs precisam trabalhar em modo promíscuo para que mesmo os pacotes não destinados a ele sejam analisados. SDIRs trabalhando em modo promíscuo possibilitam: Detectar varredura de portas; Monitorar conexões ou datagramas maliciosos; Verificar ataques de negação de serviço. Análise por Assinaturas O que são assinaturas? Seqüências de bytes que caracterizam ataques conhecidos. Procura certos padrões nos campos dos cabeçalhos dos pacotes ou combinações de padrões em campos diferentes. Análise por Assinaturas Exemplo: Tentativa de acesso do usuário root a um servidor FTP, no qual sua entrada não é permitida. Nesse caso é necessário verificar o cabeçalho dos pacotes TCP certificando-se de que é um tráfego para a porta 21 do servidor. Ainda precisa-se analisar se o conteúdo desses pacotes é “USER root”. Análise por Assinaturas Desvantagens: Como busca por seqüências de bytes dentro dos pacotes não consegue identificar novos tipos de ataques e/ou variantes de ataques existentes. Análise por Estado do Protocolo Sabe em que estágio o protocolo se encontra. Existem vários protocolos que necessitam de uma autenticação prévia antes de entrar na fase que executa os serviços prestados. Ex: FTP, POP3 e Telnet Pela análise de estado é possível verificar se foi tentado pular alguma fase. Tentar algum comando que só seria possível depois da fase de autenticação. Análise de Detecção de Intrusão Baseada na Estação Os sistemas de detecção de intrusão baseados na estação monitoram diversas atividades que ocorrem internamente em uma estação. Porém, existem diversas possibilidades de escolhas do que é possível monitorar dentro de uma estação. Monitoramento da Atividade de Rede É possível monitorar todos os pacotes que entram e saem de uma estação. Os pacotes que entram são verificados antes de serem passados para processamento pela estação e os pacotes que saem são verificados pouco antes de serem colocados na rede. Monitoramento da Atividade de Rede Este monitor pode ser visto como um sistema de detecção de intrusão de rede restrito a analisar somente o fluxo destinado e originado de uma mesma máquina. Então, todos os conceitos explicados relacionados a SDIRs podem ser aplicados estes monitores, inclusive análises por assinaturas, protocolo e estado do protocolo. Monitoramento da Atividade de Rede Uma vantagem ao monitorar a atividade da rede na estação emissora ou receptora do tráfego é a possibilidade de analisar o conteúdo dos pacotes que passam criptografados na rede. Nas estações finais, como esse tráfego é descriptografado, o conteúdo real dos pacotes pode ser verificado e caso apresente alguma anomalia, ela pode ser detectada. Monitoramento da Atividade de Rede Isso não aconteceria caso estivesse sendo usado um sistema de intrusão que somente captura os pacotes que passam pela rede e os analisa, dado que ele não teria acesso as informações encriptadas. Assim, ele não poderia, por exemplo, fazer uma análise do protocolo que estaria sendo protegido e somente poderia analisar o protocolo responsável pela criptografia dos dados. Monitoramento da Atividade de Login Um dos artifícios que se pode usar para detectar intrusões é o acesso de usuários à estação. Através do horário em que ele é feito e dependendo do usuário tem-se o conhecimento de que uma possível intrusão ocorreu. Monitoramento da Atividade de Login Para isso, é preciso ter um perfil de acesso de todos os supostos usuários do sistema; caso contrário, não há como esse monitoramento ser possível já que não existiria uma base de dados para comparação. Monitoramento da Atividade do Super-usuário Alcançar os privilégios de super-usuário sempre foi o objetivo da maioria das invasões. Geralmente, em sistemas normais, a atividade do super-usuário só é vista em processos de manutenção do sistema, ou seja, sua atividade real não é muito grande se a rede for simples. Monitoramento da Atividade do Super-usuário Uma linha de defesa que pode ser utilizada é o monitoramento das atividades do super-usuário para que se tenha um registro de todas suas atividades realizadas. Monitoramento da Atividade do Super-usuário A tarefa de monitorar essas atividades poderia ser feita através de um sistema de registros (logs) que armazenasse todos os comandos executados por esse usuário. A partir desse registros, programas podem ser executados para varrê-los temporariamente e notificar se alguma atividade estranha for detectada. Monitoramento do Sistema de Arquivos Uma vez tendo sido o sistema comprometido por algum invasor, este será alterado através da modificação de arquivos deste sistema. Monitoramento do Sistema de Arquivos Como exemplos, os arquivos de registros muito provavelmente serão alterados com o objetivo de apagar as trilhas deixadas pelo processo de invasão; programas podem ser baixados para a estação comprometida com o objetivo de manter o acesso a ela através de backdoors; Monitoramento do Sistema de Arquivos e ainda podem ser instalados programas com o objetivo de farejar a rede procurando senhas usadas em protocolos onde a mesma passa em aberto, isto é, sem nenhum tipo de proteção ou criptografia. Monitoramento do Sistema de Arquivos Um monitoramento do sistema de arquivos, embora sendo uma atividade passiva, isto é, não toma nenhuma atitude mesmo ao detectar diferenças nos arquivos, serve para avisar ao administrador de rede quais arquivos sofreram alterações e quais foram adicionados. Monitoramento do Sistema de Arquivos Essa informação é importante para recuperar o sistema de uma invasão, podendo assim separar os arquivos que sofreram algum tipo de alteração dos inalterados. Para seu funcionamento, é necessário estabelecer uma base de dados que contém diversas informações importantes sobre arquivos cruciais para o Monitoramento do Sistema de Arquivos Essas informações são todas relacionadas a arquivos e podem ser, por exemplo: Tamanho; Data da última modificação e criação; Somas de verificação; Permissões. Monitoramento do Sistema de Arquivos Tendo essa base de dados, o programa responsável por monitorar o sistema de arquivo checaria se os arquivos presentes foram alterados através de uma comparação dos valores atuais do sistema com os valores encontrados nessa base de dados. Sendo os valores atuais do sistema, podese presumir que houve algum tipo de Monitoramento do Sistema de Arquivos É importante frisar que, se a estação tiver sido comprometido e se os dados necessários para esse tipo de monitoramento ficarem armazenados na mesma estação, não é mais possívell confiar no sistema de monitoramento. Pois o invasor pode ter alterado a base de dados que servia de comparação para o verificador de integridade do sistema de Monitoramento do Sistema de Arquivos O ideal é que esses dados fiquem armazenados em uma outra máquina, isolada e protegida ao máximo, para que seja possível saber as modificações reais feitas pelo invasor. Potes de Mel Uma estação (pote de mel) é colocada a disposição para quem quiser invadí-la. Esta estação, possui alguns serviços vulneráveis e tem por objetivo atrair usuários dispostos a invadi-la. Toda a informação usada para a invasão será armazenada. Potes de Mel Cria um ambiente totalmente falso, mas com perfeita aparência de um sistema real. Os dados não tem o menor valor para a companhia. Quando estas informações são acessadas, alarmes são acionados. Potes de Mel Deixa claro os passos seguidos pelo invasor, até onde ele conseguiu chegar e o modo como isso foi feito. Uma boa maneira de estudar o comportamento dos hackers!!! Potes de Mel Os potes de mel, por si só, não são uma uma melhoria para a segurança de rede. Fornecem informações valiosas: Como são feitas algumas intrusões. Como determinados serviços vulneráveis são explorados . Como é o comportamento dos invasores após terem comprometido a máquina. Vantagens Um pote de mel coleta muito poucos dados e o que ele coleta geralmente é de alto valor. Assume-se que praticamente todo o tráfego que entra e sai ela é pelo menos suspeito. Um dos grandes problemas em segurança é achar algum dado útil no meio de gigabytes, ou até mesmo terabytes de informação. Vantagens Os potes de mel funcionam como fonte de recursos. aprender o modo como as invasões são feitas. Tendo essas informações, regras de como evitá-las, detectá-las e reagir a elas poderiam ser elaboradas. Vantagens Pode ser uma boa iniciativa para reduzir possíveis danos como, por exemplo, ocorrências de falsos positivos. Alarmes dos sistemas verdadeiros só disparariam se realmente um ataque estivesse ocorrendo. Desvantagens Caso nenhuma ataque venha a ocorrer nos potes de mel, eles não tem sentido algum. Para isso, é importante que seja liberado o acesso àquela estação. A rede de produção deve ser isolada de onde está situado o pote de mel, preferencialmente através de um firewall. Desvantagens Os potes de mel apresentam riscos na rede do usuário. Pote de mel chamar a atenção para a rede onde ele está localizado. Sendo assim, além do pote de mel, outras máquinas podem ser testadas contra falhas de segurança e talvez possam também ser invadidas. Desvantagens - Continuação Antes de implementar qualquer tipo de pote de mel, é necessário um planejamento de toda a segurança da rede para evitar surpresas indesejáveis. Opnião de Alguns Hackers Alguns hackers já declaram que não estão impressionados!!! "Essa é uma antiga lição da escola de segurança. Só funcionará para aqueles que pararam na velha escola". (Adrian Lamo) Opnião de Alguns Hackers Só funciona com pessoas inexperientes, sendo que sua eficácia é muito baixa. Piores ataques são feitos por pessoas com alto conhecimento na rede. Pessoal com alto conhecimento de segurança e suas táticas. Em segurança os potes de mel é coisa para pegar scriptkids e afins. Exemplos de SDIs Snort Bro Real Secure Dragon Hogwash Prelude Considerações Finais Considerações Finais Os sistemas de detecção de intrusão ainda estão longe de atingir sua maturidade. Hoje em dia, existem diversos sistemas já implementados mas todos apresentam ainda falsos positivos e falsos negativos fora do esperado. Considerações Finais Há até quem diga que sistemas detectores de intrusão não têm nenhum futuro. Conclusão Os sistemas de detecção de intrusão ainda estão longe de atingir sua maturidade. Apesar de serem desenvolvidos há algum tempo, ainda existem muitos problemas a serem resolvidos. Futuramente, é inevitável que sistemas de detecção de intrusão encontrem como barreira a filtragem de uma enorme quantidade de informações. Isso irá fazer com que técnicas de mineração de dados (data mining) e inteligência artificial sejam desenvolvidas exclusivamente para esses sistemas com o intuito de melhorar sua performance.