1 / 32

Roteiro

Packet Sampling for Worm and Botnet Detection in TCP Connections Amostragem de Pacotes para Detecção de Worms e Botnets em Conexões TCP Lothar Braun, Gerhard Münz, Georg Carle Technische Universität München, Germany NOMS 2010 Apresentado por: Bruno Barcarollo Gauer. Roteiro.

abbott
Download Presentation

Roteiro

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Packet Sampling for Worm and Botnet Detection in TCP ConnectionsAmostragem de Pacotes para Detecção de Worms e Botnets em Conexões TCPLothar Braun, Gerhard Münz, Georg CarleTechnische Universität München, GermanyNOMS 2010Apresentado por: Bruno Barcarollo Gauer

  2. Roteiro • Introdução / Contextualização • Bloom Filter • Trabalhos Relacionados • Detecção de Worms e Botnets • Proposta • Avaliação • Conclusões • Críticas

  3. Introdução • Botnets e worms representam uma constante ameaça a segurança das redes • Worm: programa mal-intencionado que se auto replica pela rede • Bot: worm com capacidade de comunicação a algum atacante (formam botnets) • Uso de Signature Based Network Intrusion Detection Systems (NIDS) • Análise de pacotes procurando identificar padrões (signatures) que são armazenados em uma base

  4. Introdução • Detecção pode ser complexa • Aumento no número de ataques • Surgimento de novos worms • Signatures (padrões) se tornam mais sofisticados • Crescimento das redes gera maior tráfego para análise • Recursos de um sistema de detecção podem se tornar insuficientes

  5. Introdução • Soluções possíveis: • Aumentar capacidade de processamento • Hardware específico para detecção • Distribuir pacotes entre múltiplos sistemas • Solução muito custosa • Analisar partes relevantes do tráfego • Maioria do tráfego atual de worms e botnets pode ser detectada verificando pacotes iniciais

  6. Introdução • Objetivo: apresentar um algoritmo de amostragem que analisa os primeiros N bytes do payload (dados) de cada conexão TCP • Bloom Filters para guardar estado das conexões • Estrutura de dados probabilística usada para testar se um elemento está em um conjunto • Pode gerar falso positivo

  7. Bloom Filter • Vetor de bits: m posições (inicializadas com 0) • K funções hash • Para adicionar elemento, faz hash nas k funções e seta bits como 1 (ex.: k = 3)

  8. Abordagens Amostragem de Pacotes • Time Machine • Armazena tráfego de rede por maior tempo • Guarda apenas poucos kilobytes do início de cada conexão • PAYL • Procura por anomalias no payload (dados) de pacotes

  9. Abordagens Bloom Filter • Time-out Bloom Filter: salva timestamp • Analisa o primeiro pacote de cada fluxo unidirecional • CMS (Count Min-Sketch): armazena contadores • Detectar port scans • Whitehead et al.: • Memoriza pacotes TCP SYN para detectar conexões estabelecidas e as analisa sem limitar amostragem • Canini et al.: • Cadeia de filtros para analisar primeiros J pacotes dos fluxos bidirecionais

  10. Detecção de Worms e Botnets • Detecção nos primeiros pacotes • Em geral contém informação para classificar o fluxo total como benigno ou malicioso • Avaliação desta afirmação para worms e botnets usando Snort • Sniffer e logger de pacotes usado como Lightweight IDS (Intrusion Detection System) • Determinar posições no payload de sessões TCP em que signatures são encontrados • Análise dos pacotes em ambas direções

  11. Detecção de Worms e Botnets • Análise • 93 worms e bots em ambiente controlado • Todos executado em horários e dias variados para analisar comportamentos diferentes em relação aos comandos do botmaster • Utilizados dois rule-sets (conjunto de regras para detectar eventos): • Padrão do Snort • Rule-set do emergingthreats.net

  12. Detecção de Worms e Botnets • 95 alarmes do rule set padrão do Snort • 3416 alarmes do rule set Emergingthreats

  13. Detecção de Worms e Botnets • 96% dos alertas encontrados nos primeiros 3kB do payload do início das conexões

  14. Proposta • Algoritmo de amostragem usa primeiros N bytes de payload de cada conexão TCP • Mecanismo para manter trajetória (tracking) das conexões TCP é complexo e custoso • Detectar estabelecimento/término da conexão • Conexões interrompidas indevidamente • Pacotes duplicados, perdidos, reenviados • Para grande número de conexões se torna inviável • Gasto elevado de Processamento/memória para guardar pacotes e reordená-los

  15. Proposta • Solução: Connection Tracking simplificado • Reduzir informações armazenadas • Tornar decisão de considerar ou descartar um pacote mais simples mantendo certa precisão na amostragem • Precisão x Escalabilidade e vazão • 1ª simplificação: estabelecimento de conexão • Considera estabelecida com envio de SYN seguido de pacote sem SYN flag

  16. 1ª Simplificação • Pacotes trocados entre mesmo IP e porta (direção ignorada) dentro de 3 segundos

  17. 2ª Simplificação • Pacotes não são reordenados • Serão escolhidos N bytes de payload em ordem de chegada • Pacotes duplicados não são descartados • Tarefas deixadas para fase de análise dos pacotes (no IDS) • Pequeno risco de pegar pacotes que não deveriam ser amostrados

  18. 3ª Simplificação • Conexão TCP é considerada terminada com detecção de pacote FIN ou RST • Pode haver perda de alguns pacotes

  19. Proposta • Necessário considerar chegada do primeiro SYN e um contador de bytes do payload a serem amostrados • Pacotes armazenados até: • o máximo (N) ser amostrado • receber FIN/RST • conexão sofrer time-out • Nº de conexões pode crescer em ataques • Algoritmo com memória fixa usando Bloom Filters

  20. Proposta • Utilizar duas variações do Bloom Filter • Time-out Bloom Filter • Armazena timestamp ao invés de bits que são sobrescrevidos com horários atuais • Elemento sofre time-out após tempo definido • Count Min-Sketch (CMS) • Posições são contadores • Quando elemento é inserido é somado valor as posições referentes • Quando elemento é buscado: posição com menor valor é a que o representa

  21. Proposta • Algoritmo • Mecanismo simplificado de armazenamento de estado de conexões TCP • 2 filtros Time-Out e 1 CMS • 2 funções hash para os filtros • Conexões identificadas pela quadrupla: • (SA, DA, SP, DP) • Source Address • Destination Address • Source Port • Destination Port

  22. Proposta • Elemento armazenado é resultado da concatenação: • Ex: 200.11.11.11:8080 → 200.10.10.10:8080 • Concatenação: • 200.10.10.10:8080 || 200.11.11.11:8080 • Ambas as direções são mapeadas para mesmo elemento

  23. Proposta • 1º Time-Out Bloom Filter – Start Filter • Armazena timestamp de pacotes SYN • CMS Bloom Filter – Export Filter • Contador dos N bytes de payload que devem ser exportados para uma determinada conexão • 2º Time-Out Bloom Filter – Stop Filter • Armazena timestamp do horário em que conexão terminou

  24. Proposta • Quando pacote SYN chega: • Timestamp é escrito no start filter e pacote é amostrado • Pacotes que não são SYN, FIN ou RST • Caso exista conexão no export filter • decrementa contador com tamanho do payload • Else: compara timestamps do start e stop filter • se start mais recente que stop e start menos de 3 segundos da hora atual • Pacote pertence a nova conexão e deve ser amostrado (decrementado no export filter)

  25. Proposta • Pacotes FIN e RST: • Se conexão existe no export filter • Pacote é amostrado e conexão deletada subtraindo valor do elemento nos contadores associados • Timestamp é salvo no stop filter • Senão pacote é ignorado

  26. Proposta • Análise do Algoritmo • Conexões no Bloom Filter: memória constante • TCP Scans e ataques de flood de SYN • Preenchem start filter e podem gerar falsos positivos • Aumento no número de conexões pode provocar colisões • Pacotes vazios não afetam algoritmo (apenas payload é analisado)

  27. Avaliação – Tráfego Amostrado • Twente: entre 0,5% e 2,1% do tráfego total • Munich: entre 0,2% e 0,8% do tráfego total

  28. Avaliação – Bloom x Hash Table • Twente: maior tráfego → para amostragem alta hash gera menos erros • Munich: menor tráfego → valor da amostragem não influenciou erros

  29. Avaliação – Tipos de Erros Bloom • Falsos negativos predominam (não analisar pacotes que deveriam ser)

  30. Avaliação – Tamanho Bloom • Amostragem = 5kB

  31. Críticas – Possíveis brechas • Atacante poder burlar amostragem • Posicionar pacotes maliciosos após N primeiros bytes do payload • Enviar pacotes com mesmo endereço IP e porta mas com valores inválidos no campo sequência • TCP Scan: preencher start filter e gerar colisões • Solução possível: variar N de acordo com critérios predefinidos

  32. Críticas / Conclusão • Algoritmo seleciona primeiros N bytes do payload da conexão TCP • Maioria das ameaças pode ser detectada no inicio das conexões • Mecanismo simplificado para manter estado das conexões TCP • Bloom Filter (consumo de memória constante) • Eficiente para redes de alta velocidade • Número de erros na amostragem foi baixa

More Related