Uma arquitetura de segurança computacional inspirada no sistema imunológico Tese de doutorado Fabrício Sérgio de Paula
Roteiro Parte I Parte II 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 Diversidade inclui indivíduos maliciosos 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 Algoritmo para distinção entre self e nonself Diversidade computacional Homeostase: regulação de processos Outros 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 Detecção precisa de ataques conhecidos e resposta Detecção de ataques desconhecidos: evidências de intrusão Manipulação de ataques desconhecidos 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 Analogia bastante profunda Essência: detecção baseada em comportamento Este trabalho: conhecimento + comportamento Assinaturas de ataques 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 Verificação de chamadas ao sistema Restauração 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 ADenoIdS protegendo máquina virtual Atacante situado na máquina real Aplicações vulneráveis: named, wu-ftpd, imapd e amd Detecção baseada em evidências 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 Restauração e extração de assinatura 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 Hipótese validada 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