Sistemas de Detecção de Sistemas de Detecção de IntrusãoIntrusão
Estratégias de SegurançaEstratégias de Segurança Prezar a simplicidadePrezar a simplicidade
Determinar os pontos mais fracosDeterminar os pontos mais fracos
Atribuir privilégios mínimosAtribuir privilégios mínimos
Incentivar a participação universalIncentivar a participação universal
Criar ponto único de acessoCriar ponto único de acesso
Investir na diversidade de defesaInvestir na diversidade de defesa prevençãoprevenção detecçãodetecção reaçãoreação
ConseqüênciasConseqüências Prevenção não é suficientePrevenção não é suficiente
número crescente de ataquesnúmero crescente de ataques complexidade crescentecomplexidade crescente ferramentas de ataque cada vez mais ferramentas de ataque cada vez mais
eficientes (automatização)eficientes (automatização)
Solução: Detecção de IntrusãoSolução: Detecção de Intrusão garantir comportamento livre de garantir comportamento livre de
falhasfalhas
Sistemas de Detecção de Sistemas de Detecção de Intrusão (IDS)Intrusão (IDS) Detecção de intrusãoDetecção de intrusão
tarefa de coletar e analisar eventos, tarefa de coletar e analisar eventos, buscando sinais de intrusão e de mau-buscando sinais de intrusão e de mau-usouso
IntrusãoIntrusão
ações tomadas para comprometer a ações tomadas para comprometer a autenticidade, confidencialidade, autenticidade, confidencialidade, integridade ou a disponibilidadeintegridade ou a disponibilidade
IDS: históricoIDS: histórico Conceito surgido no início dos anos 80Conceito surgido no início dos anos 80
1ª Geração1ª Geração registros de auditoria eram processados registros de auditoria eram processados offlineoffline surgimento dos principais métodos de detecçãosurgimento dos principais métodos de detecção
2ª Geração2ª Geração processamento estatisticamente mais sofisticado processamento estatisticamente mais sofisticado mais medidas de comportamento monitoradasmais medidas de comportamento monitoradas alertas alertas onlineonline tornaram-se possíveis tornaram-se possíveis
IDS: históricoIDS: histórico 3ª Geração3ª Geração
uso dos conceitos anteriores para uso dos conceitos anteriores para sistemas em rede/sistemas sistemas em rede/sistemas distribuídosdistribuídos
uso de novas técnicas para detecção uso de novas técnicas para detecção (sistemas especialistas, redes (sistemas especialistas, redes neurais, data mining, etc)neurais, data mining, etc)
surgimento dos primeiros IDSs surgimento dos primeiros IDSs comerciaiscomerciais
IDS: estruturaIDS: estrutura Componentes em comumComponentes em comum
geradores de eventosgeradores de eventos analisadores de eventosanalisadores de eventos bases de dados de eventosbases de dados de eventos unidades de respostaunidades de resposta
IDS: estruturaIDS: estrutura
Coletores(rede)
Unidades de
resposta
Gerentes
Analisadores
Coletores(host)
Base de dados
IDS: classificaçãoIDS: classificação
IDS
Arquitetura
Comportam. pós-detecção
Freqüência de uso
Método de Detecção
Baseado em Comportamento
Baseado em Assinaturas
Passivo
Ativo
Monitoramento contínuo
Análise periódica
Segundo o alvo
Segundo a localização
Centralizado
Hierárquico
Distribuído
Baseado em Rede
Baseado em Host
Híbrido
IDS: métodos de detecçãoIDS: métodos de detecção Técnicas baseadas em Técnicas baseadas em
comportamentocomportamento também chamado de detecção por também chamado de detecção por
anomaliaanomalia caracteriza o comportamento do caracteriza o comportamento do
sistema em normal e anômalosistema em normal e anômalo habilidade de distinguir um habilidade de distinguir um
comportamento normal de um comportamento normal de um anômalo anômalo Anômalo Normal
Intrusão Normal
IDS: métodos de detecçãoIDS: métodos de detecção Técnicas baseadas em Técnicas baseadas em
comportamentocomportamento compara o estado atual do sistema compara o estado atual do sistema
com o comportamento considerado com o comportamento considerado normalnormal
desvios são considerados intrusõesdesvios são considerados intrusões Ex.: conexões externas em horários Ex.: conexões externas em horários
incomunsincomuns
IDS: comportamentoIDS: comportamento VantagensVantagens
detecção de ataques desconhecidosdetecção de ataques desconhecidos usado na criação de novas bases de usado na criação de novas bases de
assinaturasassinaturas esforço de manutenção reduzidoesforço de manutenção reduzido dependente menos de plataformadependente menos de plataforma facilita a detecção de abusos de facilita a detecção de abusos de
privilégiosprivilégios
IDS: comportamentoIDS: comportamento DesvantagensDesvantagens
dificuldade de configuraçãodificuldade de configuração maior número de falsos positivosmaior número de falsos positivos relatórios de difícil análiserelatórios de difícil análise menor desempenho (cálculos menor desempenho (cálculos
complexos)complexos) dificuldade de lidar com mudanças dificuldade de lidar com mudanças
normais de comportamentonormais de comportamento
IDS: métodos de detecçãoIDS: métodos de detecção Técnicas baseadas em assinaturasTécnicas baseadas em assinaturas
também chamada de detecção por também chamada de detecção por mau-usomau-uso
divide as ações do sistema em divide as ações do sistema em aceitáveis e não aceitáveisaceitáveis e não aceitáveis
habilidade de encontrar tentativas de habilidade de encontrar tentativas de exploração de vulnerabilidades exploração de vulnerabilidades conhecidasconhecidasNão aceitável Aceitável
Intrusão Normal
IDS: métodos de detecçãoIDS: métodos de detecção Técnicas baseadas em assinaturasTécnicas baseadas em assinaturas
compara as ações realizadas no compara as ações realizadas no sistema com uma base de assinaturas sistema com uma base de assinaturas de ataquesde ataques
Ex.: acesso ao arquivo de senhas Ex.: acesso ao arquivo de senhas ((/etc/passwd/etc/passwd))
IDS: assinaturasIDS: assinaturas VantagensVantagens
baixo número de falsos positivosbaixo número de falsos positivos adoção de contra-medidas imediatasadoção de contra-medidas imediatas redução na quantidade de informação redução na quantidade de informação
tratadatratada melhor desempenho melhor desempenho
IDS: assinaturasIDS: assinaturas DesvantagensDesvantagens
detecção só para ataques conhecidosdetecção só para ataques conhecidos dificuldade de manutençãodificuldade de manutenção base de assinaturas pode ser usada base de assinaturas pode ser usada
em novos ataques em novos ataques difícil detecção de abusos de difícil detecção de abusos de
privilégiosprivilégios
Baseado em RedeBaseado em Rede Dados analisados são retirados da redeDados analisados são retirados da rede
Tratar ataques à própria redeTratar ataques à própria rede
Permite determinar as operações Permite determinar as operações desencadeadas através da rededesencadeadas através da rede
Informações como:Informações como: pacotes de rede (cabeçalhos e dados)pacotes de rede (cabeçalhos e dados) estatísticas de tráfegoestatísticas de tráfego SNMPSNMP
Baseado em HostBaseado em Host Dados obtidos na própria máquinaDados obtidos na própria máquina
Detecção de ataques relacionados a Detecção de ataques relacionados a ações locaisações locais
Ex: trilhas de auditoria, cópias de Ex: trilhas de auditoria, cópias de arquivosarquivos
IDSs baseados em aplicação: outra classeIDSs baseados em aplicação: outra classe
Exemplos: SnortExemplos: Snort Um dos mais utilizadosUm dos mais utilizados
Arquitetura centralizadaArquitetura centralizada
Dados coletados na redeDados coletados na rede
Análise baseada em assinaturasAnálise baseada em assinaturas
Exemplos: SnortExemplos: Snort Simplicidade e eficiênciaSimplicidade e eficiência
Base com milhares de assinaturasBase com milhares de assinaturas
Plataforma UNIX ou WindowsPlataforma UNIX ou Windows
Distribuição livre (Distribuição livre (www.snort.orgwww.snort.org))
SnortSnort Captura de pacotes de rede (Captura de pacotes de rede (libpcaplibpcap))
uso de regras de filtragem (TCPdump)uso de regras de filtragem (TCPdump)
Analisador simplesAnalisador simples baseado em regrasbaseado em regras trata cabeçalhos e dadostrata cabeçalhos e dados
Ações: registrar, alertar ou descartarAções: registrar, alertar ou descartar
Snort: regrasSnort: regras 1ª parte: ação a ser tomada1ª parte: ação a ser tomada
log, alert log, alert ou ou passpass activate, dynamicactivate, dynamic
2ª parte: padrão procurado2ª parte: padrão procurado proto src_ip/mask src_port_range -> dst_ip/mask dst_port_rangeproto src_ip/mask src_port_range -> dst_ip/mask dst_port_range
3ª parte: opções3ª parte: opções
Snort: regrasSnort: regras PortasPortas
porta_únicaporta_única porta_inicial : porta_final (um dos dois não necessita ser especificado)porta_inicial : porta_final (um dos dois não necessita ser especificado) operador de negação: !operador de negação: ! palavra reservada: anypalavra reservada: any
Sentido do tráfegoSentido do tráfego -> unidirecional-> unidirecional <> bidirecional<> bidirecional
Snort: regrasSnort: regras OpçõesOpções
especificadas entre parêntesesespecificadas entre parênteses separadas por ponto e vírgulaseparadas por ponto e vírgula formato:formato:
opção: parâmetros;opção: parâmetros; havendo mais de uma opção, utiliza-se implicitamente o havendo mais de uma opção, utiliza-se implicitamente o
operador ANDoperador AND Existindo opções, todas devem ser satisfeitasExistindo opções, todas devem ser satisfeitas
Opções (exemplos)Opções (exemplos) msg, logto: imprimem mensagem,gera logmsg, logto: imprimem mensagem,gera log ttl, tos, id, ipoption, fragbits (para IP)ttl, tos, id, ipoption, fragbits (para IP) dsize: tamanho da parte de dadosdsize: tamanho da parte de dados seq, ack, flags (para TCP)seq, ack, flags (para TCP) itype, icode (para ICMP)itype, icode (para ICMP) content: procura por determinado stringcontent: procura por determinado string regex, nocase: usados na procuraregex, nocase: usados na procura reference, sid: referência e identificação do ataquereference, sid: referência e identificação do ataque
Snort: regrasSnort: regras
log tcp any any -> 192.168.1.1/32 23log tcp any any -> 192.168.1.1/32 23
log tcp any any <> 192.168.1.1/32 23log tcp any any <> 192.168.1.1/32 23
log icmp any any -> 192.168.1.0/24 anylog icmp any any -> 192.168.1.0/24 any
pass tcp any 80 <> 192.168.1.0/24 anypass tcp any 80 <> 192.168.1.0/24 any
Snort: regrasSnort: regras
alert tcp 192.168.1.0/24 any -> any 111 alert tcp 192.168.1.0/24 any -> any 111 (msg:"Portmapper call";)(msg:"Portmapper call";)
log tcp any :1024 -> log tcp any :1024 -> 192.168.1.0/24 :1024192.168.1.0/24 :1024
log tcp any 6000:6010 -> 192.168.1.0/24 log tcp any 6000:6010 -> 192.168.1.0/24 6000:60106000:6010
pass udp any 1024: -> 192.168.1.0/24 pass udp any 1024: -> 192.168.1.0/24 1024:1024:
Snort: regrasSnort: regras
alert tcp any any -> 192.168.1.0/24 any alert tcp any any -> 192.168.1.0/24 any (msg:"SYN-FIN scan!"; flags: SF;)(msg:"SYN-FIN scan!"; flags: SF;)
alert tcp any any -> 192.168.1.0/24 any alert tcp any any -> 192.168.1.0/24 any (msg:"Null scan!"; flags: 0;)(msg:"Null scan!"; flags: 0;)
alert tcp any any -> 192.168.1.0/24 143 alert tcp any any -> 192.168.1.0/24 143 (msg:"IMAP Buffer overflow!"; content:"|(msg:"IMAP Buffer overflow!"; content:"|90E8 C0FF FFFF|/bin/sh";)90E8 C0FF FFFF|/bin/sh";)
Snort: regrasSnort: regras
alert udp any any -> 192.168.1.0/24 any alert udp any any -> 192.168.1.0/24 any (msg:"Traceroute"; ttl:1;)(msg:"Traceroute"; ttl:1;)
alert icmp any any -> 10.1.1.0/24 any alert icmp any any -> 10.1.1.0/24 any (msg:"Being Pinged"; itype: 8;) (msg:"Being Pinged"; itype: 8;)
alert icmp any any -> any any (msg:"Port alert icmp any any -> any any (msg:"Port Unreachable"; itype: 3; icode: 1;)Unreachable"; itype: 3; icode: 1;)
Snort: regrasSnort: regras
log tcp any any -> 192.168.1.0/24 23 log tcp any any -> 192.168.1.0/24 23 (logto:"telnets";)(logto:"telnets";)
alert tcp !192.168.1.0/24 any -> alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 143 (flags: S; msg: 192.168.1.0/24 143 (flags: S; msg: "External IMAP access attempt!";)"External IMAP access attempt!";)
alert udp any !53 -> 192.168.1.0/24 alert udp any !53 -> 192.168.1.0/24 31337 (msg: "Back Orifice";)31337 (msg: "Back Orifice";)
Snort: regrasSnort: regras
alert tcp any any -> 192.168.1.0/24 any alert tcp any any -> 192.168.1.0/24 any (msg:"80+ byte packet!"; dsize: >80;)(msg:"80+ byte packet!"; dsize: >80;)
alert tcp any any -> 192.168.1.0/24 80 alert tcp any any -> 192.168.1.0/24 80 (content:"cgi-bin/phf"; offset: 4; depth: (content:"cgi-bin/phf"; offset: 4; depth: 12; msg: "PHF Probe/attack";)12; msg: "PHF Probe/attack";)
Snort: regrasSnort: regras
alert tcp any any -> $HOME_NET 143 alert tcp any any -> $HOME_NET 143 (content:"|9090 9090 9090 9090|"; (content:"|9090 9090 9090 9090|"; depth: 16; offset: 5; content:"|E8 C0FF depth: 16; offset: 5; content:"|E8 C0FF FFFF|"; depth: 10; offset: 200; FFFF|"; depth: 10; offset: 200; msg:"IMAP Buffer Overflow!";)msg:"IMAP Buffer Overflow!";)
etc….etc….
Considerações práticasConsiderações práticas Duas décadas de Duas décadas de
desenvolvimento, mas...desenvolvimento, mas... Sistemas ainda imaturosSistemas ainda imaturos
muitos falsos positivos/negativosmuitos falsos positivos/negativos dificuldade de expressão (regras)dificuldade de expressão (regras) pouca integração entre IDSspouca integração entre IDSs dificuldade de manutenção/gerênciadificuldade de manutenção/gerência
Considerações práticasConsiderações práticas Principais aplicaçõesPrincipais aplicações
detectar ataques (efetivos ou detectar ataques (efetivos ou inofensivos)inofensivos)
localizar vulnerabilidadeslocalizar vulnerabilidades validar regras e esquemas de validar regras e esquemas de firewallfirewall validar políticas de segurançavalidar políticas de segurança vigiar usuários legítimos (mau uso)vigiar usuários legítimos (mau uso)
Sensores: problemasSensores: problemas Tráfego criptografadoTráfego criptografado
Tráfego segmentadoTráfego segmentado
Tráfego de alta velocidadeTráfego de alta velocidade
Vulnerabilidades Vulnerabilidades ConhecidasConhecidas Falsos alarmesFalsos alarmes
Negação de serviço (DoS)Negação de serviço (DoS)
Tolerância a falhasTolerância a falhas
AutenticaçãoAutenticação
Vulnerabilidades Vulnerabilidades ConhecidasConhecidas Desativação de ferramentas Desativação de ferramentas
baseadas em hostbaseadas em host
Inserção de tráfegoInserção de tráfego pacotes descartados pelo sistema alvopacotes descartados pelo sistema alvo
Evasão de tráfegoEvasão de tráfego pacotes descartados pelo IDSpacotes descartados pelo IDS
Subvertendo o IDSSubvertendo o IDS Procurando pela string “su root”.Procurando pela string “su root”.
e quanto a string “su me^H^Hroot” ?e quanto a string “su me^H^Hroot” ? e quanto a string “su<telnet option> e quanto a string “su<telnet option>
root” ?root” ? e quanto a string “alias blammo su”, e e quanto a string “alias blammo su”, e
depois “blammo root” ?depois “blammo root” ?
Reconstruindo FluxosReconstruindo Fluxos Procurando pela string “USER Procurando pela string “USER
root”. Basta procurar na porção de root”. Basta procurar na porção de dados de pacotes TCP?dados de pacotes TCP?USER root
HDR USERTCP: HDR root
HDR USHDR ERHDR HDR HDR ro HDR otIP:
É necessário remontar fragmentos e colocá-los em seqüência
Mais FragmentosMais Fragmentos
HDR USHDR
ERHDR
HDR HDR ro
HDR ot
1.
2.
4.
5.
3. 1,000,000 fragmentos sem relação c/ o ataque
Mais FragmentosMais FragmentosHDR USHDR
ERHDR
HDR HDR ro
HDR ot
O que considerar ( “USER root” ou “USER foot”)?Qual decisão será tomada pelo SO?
1.
2.
3b.
4.
HDR HDR fo
3a.
Seq. #
Time
ConclusõesConclusões IDS tem problemas de desempenhoIDS tem problemas de desempenho
Não forneceram a resposta Não forneceram a resposta esperadaesperada
Novo campo: IPS (Sistemas de Novo campo: IPS (Sistemas de Prevenção de Instrusão)Prevenção de Instrusão)