32
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

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

Embed Size (px)

Citation preview

Page 1: 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

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 CarleTechnische Universität München, Germany

NOMS 2010

Apresentado por: Bruno Barcarollo Gauer

Page 2: 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

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

Page 3: 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

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

Page 4: 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

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

Page 5: 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

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

Page 6: 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

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

Page 7: 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

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)

Page 8: 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

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

Page 9: 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

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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

Detecção de Worms e Botnets 96% dos alertas encontrados nos primeiros 3kB do

payload do início das conexões

Page 14: 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

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

Page 15: 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

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

Page 16: 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

1ª Simplificação Pacotes trocados entre mesmo IP e porta

(direção ignorada) dentro de 3 segundos

Page 17: 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

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

Page 18: 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

3ª Simplificação Conexão TCP é considerada terminada com

detecção de pacote FIN ou RST Pode haver perda de alguns pacotes

Page 19: 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

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

Page 20: 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

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

Page 21: 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

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

Page 22: 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

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

Page 23: 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

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

Page 24: 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

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)

Page 25: 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

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

Page 26: 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

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)

Page 27: 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

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

Page 28: 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

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

Page 29: 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

Avaliação – Tipos de Erros Bloom Falsos negativos predominam (não analisar

pacotes que deveriam ser)

Page 30: 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

Avaliação – Tamanho Bloom Amostragem = 5kB

Page 31: 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

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

Page 32: 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

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