Uma arquitetura de segurança computacional inspirada no sistema imunológico Tese de doutorado Fabrício Sérgio de Paula Roteiro Parte I – – – Introdução Detecção de intrusão Sistema imunológico Parte II – – – – Uma arquitetura de segurança ADenoIdS Testes e resultados experimentais Conclusão Parte I Introdução Internet – – Inicialmente: confiança mútua Ambiente aberto e sem fronteiras Diversidade inclui indivíduos maliciosos Este trabalho – – Propor arquitetura de segurança computacional Inspiração provinda do sistema imunológico Introdução: número de incidentes / ano CERT/CC Introdução: segurança computacional Definição informal – Um sistema seguro é aquele que se comporta da maneira esperada Definição mais formal – – – Integridade Confidencialidade Disponibilidade Introdução: aparatos de segurança Autenticação: quem é você? Firewalls: seleção de tráfego Criptografia: cifragem/decifragem e verificação Análise de vulnerabilidades: estou vulnerável? Sistemas de detecção de intrusão: ocorreu um ataque ou intrusão? Honeypots, anti-vírus, resposta a incidentes Detecção de intrusão Primeiro passo: definir o que é legítimo – Política de segurança Detecção de intrusão: identificação de ações ilícitas (ataques) Sistema de detecção de intrusão (IDS) – – – Automatiza processo de identificação Possibilita uma rápida tomada de decisão Essencial para a segurança de corporações Detecção de intrusão: sistemas de detecção de intrusão IDS ideal – – Identifica todos os ataques Não identifica nenhuma ação legítima IDSs atuais – Deixam de identificar alguns ataques – Falso-negativo Identificam algumas ações legítimas Falso-positivo Detecção de intrusão: principais métodos de análise Baseado em conhecimento – – – Especificação manual de assinaturas de ataques Somente ações especificadas são identificadas Método preciso e rápido para ataques conhecidos Baseado em comportamento – – – – Construção de perfis do que é “usual” Comportamento não usual é visto como um ataque Identifica ataques desconhecidos Muitos falso-positivos Detecção de intrusão: monitoramento e resposta Estratégia de monitoramento – – IDS baseado em rede IDS baseado em máquina Resposta – – Passiva: envio de alertas Ativa: bloqueio, coleta de dados, contra-ataque Detecção de intrusão: melhorias Melhores técnicas de análise – Identificação precisa de ataques conhecidos e desconhecidos Adoção de melhores modelos – Redes atuais Um ambiente hostil e sujeito a falhas Intrusões aparentam ser inevitáveis Sistema imunológico Protege o corpo contra vírus e bactérias potencialmente mortais Identifica ataques conhecidos e desconhecidos Detecção através de danos durante exposição Melhora a detecção após exposição Provê respostas para dificultar e bloquear ataques Restaura as partes afetadas do corpo Forte relação com segurança Sistema imunológico: características Papel: distinguir self do nonself Divide-se em – Sistema inato – Natureza congênita Primeira linha de defesa Sistema adaptativo Sistema especializado Memória contra reinfecção Sistema imunológico: imunologia e segurança Universidade do Novo México – – – Outros – Algoritmo para distinção entre self e nonself Diversidade computacional Homeostase: regulação de processos Agentes, algoritmos genéticos + imunologia, etc. Em resumo: detecção baseada em comportamento Sistema imunológico: novas idéias para segurança Intrusões parecem ser inevitáveis – ...realmente são no sistema biológico É melhor estar preparado – – – Identificar intrusões em andamento Restaurar sistema afetado Estudar automaticamente intrusões Busca pelas assinaturas de ataque Ataque desconhecido ataque conhecido Parte II Uma arquitetura de segurança Sistema imunológico – Características e funcionalidades Principais metas 1. 2. 3. Detecção precisa de ataques conhecidos e resposta Detecção de ataques desconhecidos: evidências de intrusão Manipulação de ataques desconhecidos 4. Medidas de contenção e restauração Extração automatizada de assinatura Armazenamento de informação relevantes sobre o ataque Utilização das assinaturas extraídas: detecção e resposta Uma arquitetura de segurança: visão geral Uma arquitetura de segurança: funcionamento Seqüência lógica – – – Detecção baseada em conhecimento + resposta adaptativa Detecção baseada em comportamento + resposta inata Detecção baseada em evidências de intrusão – – – – Cenário típico de intrusão Identificação após sucesso do atacante Precisão Armazenamento de informações sobre o ataque Restauração do sistema Extração de assinatura e geração de resposta Atualização do banco de dados de assinaturas e respostas Uma arquitetura de segurança: extração de assinatura Algoritmo probabilístico – – – Entrada: eventos anteriores à intrusão, eventos legítimos, probabilidade de falso-positivos Levantamento das assinaturas candidatas Maturação das candidatas – Eliminação de falso-positivos Saída: eventos “próximos” à intrusão que aparentam não ser legítmos Assinaturas para o ataque Eventos muito raros Uma arquitetura de segurança: analogias com o sistema imune Uma arquitetura de segurança: outros trabalhos e originalidade Outros IDSs baseados no sistema imunológico – – – Assinaturas de ataques – – Analogia bastante profunda Essência: detecção baseada em comportamento Este trabalho: conhecimento + comportamento González e Dasgupta, TIM, Wisdom & Sense: geração aleatória de regras de detecção Este trabalho: extração de eventos reais relacionados com os ataques Detecção de vírus proposta por Kephart – Este trabalho: detecção de intrusão, identificação baseada em evidências, restauração mais abrangente ADenoIdS Validar principais características da arquitetura – – – Detecção baseada em evidências Restauração do sistema Extração de assinaturas Ataques buffer overflow – – Persistente classe de ataques Sem solução definitiva ADenoIdS: características Linux kernel 2.4.19 Detecção baseada em evidências – Restauração – – Verificação de chamadas ao sistema UNDOFS: undo no sistema de arquivos Eliminação de processos contaminados Extração de assinatura – – Candidatas: requisições “grandes” Maturação: descartar candidatas “menores” que requisições legítimas Testes e resultados experimentais Ambiente – – – Detecção baseada em evidências – ADenoIdS protegendo máquina virtual Atacante situado na máquina real Aplicações vulneráveis: named, wu-ftpd, imapd e amd Uso contínuo e eventuais ataques Extração de assinatura: DARPA e LAS Testes e resultados experimentais: resultados Detecção baseada em evidências – – Ausência de falso-positivos e falso-negativos Ativação de outros módulos Extração de assinatura – – – Restauração e extração de assinatura Identificou tráfego relacionado ao ataque Uma assinatura sempre foi encontrada Eficiente para eliminar falso-positivos Publicações – – IEEE Congress on Evolutionary Computation (CEC´04) International Conference on Telecommunications (ICT´04) Conclusão Assumindo que intrusões são inevitáveis – Ataques desconhecidos Identificados através de evidências de intrusão É possível tornar um ataque desconhecido em conhecido Hipótese validada Contribuições – – – – Definição da detecção baseada em evidências Exploração da oportunidade trazida por uma intrusão Algoritmo para extração de assinaturas de ataque Especificação de uma arquitetura de segurança Conclusão: experiência e trabalhos futuros Resultados interessantes podem ser alcançados adotando uma analogia mais superficial Foco nas características e funcionalidades Outras aplicações – Honeypots, análise forense Trabalhos futuros – – – Generalização de ADenoIdS Desenvolvimento de um ambiente para testes Automatização de honeypots