430 likes | 573 Views
Sistemas de Detecção de Intrusão. Estratégias de Segurança. Prezar a simplicidade Determinar os pontos mais fracos Atribuir privilégios mínimos Incentivar a participação universal Criar ponto único de acesso Investir na diversidade de defesa prevenção detecção reação. Conseqüências.
E N D
Estratégias de Segurança • Prezar a simplicidade • Determinar os pontos mais fracos • Atribuir privilégios mínimos • Incentivar a participação universal • Criar ponto único de acesso • Investir na diversidade de defesa • prevenção • detecção • reação
Conseqüências • Prevenção não é suficiente • número crescente de ataques • complexidade crescente • ferramentas de ataque cada vez mais eficientes (automatização) • Solução: Detecção de Intrusão • garantir comportamento livre de falhas
Sistemas de Detecção de Intrusão (IDS) • Detecção de intrusão • tarefa de coletar e analisar eventos, buscando sinais de intrusão e de mau-uso • Intrusão • ações tomadas para comprometer a autenticidade, confidencialidade, integridade ou a disponibilidade
IDS: histórico • Conceito surgido no início dos anos 80 • 1ª Geração • registros de auditoria eram processados offline • surgimento dos principais métodos de detecção • 2ª Geração • processamento estatisticamente mais sofisticado • mais medidas de comportamento monitoradas • alertas online tornaram-se possíveis
IDS: histórico • 3ª Geração • uso dos conceitos anteriores para sistemas em rede/sistemas distribuídos • uso de novas técnicas para detecção (sistemas especialistas, redes neurais, data mining, etc) • surgimento dos primeiros IDSs comerciais
IDS: estrutura • Componentes em comum • geradores de eventos • analisadores de eventos • bases de dados de eventos • unidades de resposta
Analisadores Base de dados Unidades de resposta Coletores (host) Gerentes Coletores (rede) IDS: estrutura
Baseado em Comportamento Baseado em Assinaturas Centralizado Hierárquico Distribuído Baseado em Rede Baseado em Host Híbrido IDS: classificação Método de Detecção Segundo o alvo Arquitetura Segundo a localização IDS Passivo Comportam. pós-detecção Ativo Monitoramento contínuo Freqüência de uso Análise periódica
IDS: métodos de detecção • Técnicas baseadas em comportamento • também chamado de detecção por anomalia • caracteriza o comportamento do sistema em normal e anômalo • habilidade de distinguir um comportamento normal de um anômalo Anômalo Normal Normal Intrusão
IDS: métodos de detecção • Técnicas baseadas em comportamento • compara o estado atual do sistema com o comportamento considerado normal • desvios são considerados intrusões • Ex.: conexões externas em horários incomuns
IDS: comportamento • Vantagens • detecção de ataques desconhecidos • usado na criação de novas bases de assinaturas • esforço de manutenção reduzido • dependente menos de plataforma • facilita a detecção de abusos de privilégios
IDS: comportamento • Desvantagens • dificuldade de configuração • maior número de falsos positivos • relatórios de difícil análise • menor desempenho (cálculos complexos) • dificuldade de lidar com mudanças normais de comportamento
IDS: métodos de detecção • Técnicas baseadas em assinaturas • também chamada de detecção por mau-uso • divide as ações do sistema em aceitáveis e não aceitáveis • habilidade de encontrar tentativas de exploração de vulnerabilidades conhecidas Não aceitável Aceitável Normal Intrusão
IDS: métodos de detecção • Técnicas baseadas em assinaturas • compara as ações realizadas no sistema com uma base de assinaturas de ataques • Ex.: acesso ao arquivo de senhas (/etc/passwd)
IDS: assinaturas • Vantagens • baixo número de falsos positivos • adoção de contra-medidas imediatas • redução na quantidade de informação tratada • melhor desempenho
IDS: assinaturas • Desvantagens • detecção só para ataques conhecidos • dificuldade de manutenção • base de assinaturas pode ser usada em novos ataques • difícil detecção de abusos de privilégios
Baseado em Rede • Dados analisados são retirados da rede • Tratar ataques à própria rede • Permite determinar as operações desencadeadas através da rede • Informações como: • pacotes de rede (cabeçalhos e dados) • estatísticas de tráfego • SNMP
Baseado em Host • Dados obtidos na própria máquina • Detecção de ataques relacionados a ações locais • Ex: trilhas de auditoria, cópias de arquivos • IDSs baseados em aplicação: outra classe
Exemplos: Snort • Um dos mais utilizados • Arquitetura centralizada • Dados coletados na rede • Análise baseada em assinaturas
Exemplos: Snort • Simplicidade e eficiência • Base com milhares de assinaturas • Plataforma UNIX ou Windows • Distribuição livre (www.snort.org)
Snort • Captura de pacotes de rede (libpcap) • uso de regras de filtragem (TCPdump) • Analisador simples • baseado em regras • trata cabeçalhos e dados • Ações: registrar, alertar ou descartar
Snort: regras • 1ª parte: ação a ser tomada • log, alert ou pass • activate, dynamic • 2ª parte: padrão procurado • proto src_ip/mask src_port_range -> dst_ip/mask dst_port_range • 3ª parte: opções
Snort: regras • Portas • porta_única • porta_inicial : porta_final (um dos dois não necessita ser especificado) • operador de negação: ! • palavra reservada: any • Sentido do tráfego • -> unidirecional • <> bidirecional
Snort: regras • Opções • especificadas entre parênteses • separadas por ponto e vírgula • formato: opção: parâmetros; • havendo mais de uma opção, utiliza-se implicitamente o operador AND • Existindo opções, todas devem ser satisfeitas
Opções (exemplos) • msg, logto: imprimem mensagem,gera log • ttl, tos, id, ipoption, fragbits (para IP) • dsize: tamanho da parte de dados • seq, ack, flags (para TCP) • itype, icode (para ICMP) • content: procura por determinado string • regex, nocase: usados na procura • reference, sid: referência e identificação do ataque
Snort: regras log tcp any any -> 192.168.1.1/32 23 log tcp any any <> 192.168.1.1/32 23 log icmp any any -> 192.168.1.0/24 any pass tcp any 80 <> 192.168.1.0/24 any
Snort: regras alert tcp 192.168.1.0/24 any -> any 111 (msg:"Portmapper call";) log tcp any :1024 -> 192.168.1.0/24 :1024 log tcp any 6000:6010 -> 192.168.1.0/24 6000:6010 pass udp any 1024: -> 192.168.1.0/24 1024:
Snort: regras alert tcp any any -> 192.168.1.0/24 any (msg:"SYN-FIN scan!"; flags: SF;) alert tcp any any -> 192.168.1.0/24 any (msg:"Null scan!"; flags: 0;) alert tcp any any -> 192.168.1.0/24 143 (msg:"IMAP Buffer overflow!"; content:"|90E8 C0FF FFFF|/bin/sh";)
Snort: regras alert udp any any -> 192.168.1.0/24 any (msg:"Traceroute"; ttl:1;) alert icmp any any -> 10.1.1.0/24 any (msg:"Being Pinged"; itype: 8;) alert icmp any any -> any any (msg:"Port Unreachable"; itype: 3; icode: 1;)
Snort: regras log tcp any any -> 192.168.1.0/24 23 (logto:"telnets";) alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 143 (flags: S; msg: "External IMAP access attempt!";) alert udp any !53 -> 192.168.1.0/24 31337 (msg: "Back Orifice";)
Snort: regras alert tcp any any -> 192.168.1.0/24 any (msg:"80+ byte packet!"; dsize: >80;) alert tcp any any -> 192.168.1.0/24 80 (content:"cgi-bin/phf"; offset: 4; depth: 12; msg: "PHF Probe/attack";)
Snort: regras alert tcp any any -> $HOME_NET 143 (content:"|9090 9090 9090 9090|"; depth: 16; offset: 5; content:"|E8 C0FF FFFF|"; depth: 10; offset: 200; msg:"IMAP Buffer Overflow!";) etc….
Considerações práticas • Duas décadas de desenvolvimento, mas... • Sistemas ainda imaturos • muitos falsos positivos/negativos • dificuldade de expressão (regras) • pouca integração entre IDSs • dificuldade de manutenção/gerência
Considerações práticas • Principais aplicações • detectar ataques (efetivos ou inofensivos) • localizar vulnerabilidades • validar regras e esquemas de firewall • validar políticas de segurança • vigiar usuários legítimos (mau uso)
Sensores: problemas • Tráfego criptografado • Tráfego segmentado • Tráfego de alta velocidade
Vulnerabilidades Conhecidas • Falsos alarmes • Negação de serviço (DoS) • Tolerância a falhas • Autenticação
Vulnerabilidades Conhecidas • Desativação de ferramentas baseadas em host • Inserção de tráfego • pacotes descartados pelo sistema alvo • Evasão de tráfego • pacotes descartados pelo IDS
Subvertendo o IDS • Procurando pela string “su root”. • e quanto a string “su me^H^Hroot” ? • e quanto a string “su<telnet option> root” ? • e quanto a string “alias blammo su”, e depois “blammo root” ?
USER root TCP: HDR USER HDR root IP: HDR HDR US HDR ER HDR HDR ro HDR ot Reconstruindo Fluxos • Procurando pela string “USER root”. Basta procurar na porção de dados de pacotes TCP? É necessário remontar fragmentos e colocá-los em seqüência
HDR HDR US HDR ER HDR HDR ro HDR ot Mais Fragmentos 1. 2. 3. 1,000,000 fragmentos sem relação c/ o ataque 4. 5.
HDR HDR HDR HDR fo ro HDR ot Mais Fragmentos Seq. # 1. HDR HDR US Time 2. HDR ER 3a. 3b. 4. O que considerar ( “USER root” ou “USER foot”)? Qual decisão será tomada pelo SO?
Conclusões • IDS tem problemas de desempenho • Não forneceram a resposta esperada • Novo campo: IPS (Sistemas de Prevenção de Instrusão)