Departamento de Eletrônica - Poli Programa de Engenharia Elétrica - COPPE Universidade Federal do Rio de Janeiro Negação de Serviço: Ataques e Contramedidas Rafael P. Laufer, Igor M. Moraes, Pedro B. Velloso, Marco D. D. Bicudo, Miguel Elias M. Campista, Daniel de O. Cunha, Luís Henrique M. K. Costa e Otto Carlos M. B. Duarte http://www.gta.ufrj.br Apoiado pelos recursos da CAPES, CNPq, FAPERJ, FINEP, RNP, FUNTTEL e UOL Roteiro • Introdução • Ataques na Internet – Pragas digitais – Mensagens não solicitadas (spam) • Negação de serviço • Rastreamento de pacotes IP – Sistemas sem estado – Sistemas baseados em auditoria • Um novo sistema de rastreamento • Considerações finais Prejuízos Financeiros Vírus $55,054 Negação de serviço $26,064 Roubo de informação proprietária $11,460 Abuso por parte de usuários internos da rede $10,601 Abuso de redes sem fio $10,159 Fraudes financeiras $7,671 Roubo de laptops $6,735 Acessos não autorizados $4,278 Fraudes em telecomunicações $3,998 $2,747 Uso indevido de aplicações web públicas Descaracterização de sítios da Internet $0,958 Invasão de sistemas $0,902 Sabotagem $0,871 0 Empresas: 269 CSI/FBI 2004 Computer Crime and Security Survey Fonte: Computer Security Institute 10 20 30 40 50 60 Milhões de dólares Prejuízo total em 2004 - $141.496.560 Introdução • Internet – Simplicidade e baixo custo – Milhões de usuários • Diversidade social, cultural, racial, etária etc. Introdução • Internet – Simplicidade e baixo custo – Milhões de usuários • Diversidade social, cultural, racial, etária etc. Æ encontros e conflitos Æ bom uso e mau uso Introdução • Internet – Simplicidade e baixo custo – Milhões de usuários • Diversidade social, cultural, racial, etária etc. Æ encontros e conflitos Æ bom uso e mau uso • Falhas de segurança – Devido à simplicidade da arquitetura • Inteligência nas extremidades • Protocolo IP – Protocolos, sistemas operacionais e aplicativos Ameaças na Internet • Segurança de computadores – Intrusos – Pragas digitais • Segurança em redes de computadores – – – – – – Confidencialidade Integridade Autenticação Não-repúdio Controle de acesso Disponibilidade Segurança de computadores • Violações por pessoas ou “intrusos” • Violações por software ou pragas digitais • Exemplos – Pragas digitais • Vírus, vermes, cavalos de Tróia, etc. – Roubo de informações confidenciais – Mensagens não solicitadas (spam), etc. Segurança em redes de computadores • Confidencialidade • Proteção do conteúdo das mensagens • Proteção da estatística do tráfego − Endereços fonte e destino, freqüência, comprimento etc. • Integridade • Proteção do conteúdo das mensagens contra alterações ou destruição • Autenticação • Garantia de que o emissor é, de fato, quem diz ser (autêntico) • Não-repúdio • Impede que emissor negue o envio e o receptor negue o recebimento das mensagens • Controle de acesso • Restrição e controle do acesso a sistemas e aplicações • Disponibilidade • Garantia da manutenção da capacidade de um sistema de realizar suas atividades Segurança em redes de computadores • Exemplos • Roubo de informações confidenciais • Mensagens não solicitadas (spam) • Negação de serviço, etc. • Prejuízo financeiro – Mais de US$ 140 milhões em 2004 nos EUA Ataques de negação de serviço • Serviço indisponível para usuários legítimos – O que é um serviço? • • • • Hospedagem de um sítio Buscador de páginas Compra e venda de produtos Troca de mensagens, etc. • Sítios já afetados – Amazon, Ebay, CNN.com, Yahoo • Mais de 4.000 ataques por semana na Internet – Domínio .br é o quarto mais atacado Ataques por Domínio Fonte: Moore et al., “Inferring Internet Denial-of-Service Activity,” 2001 USENIX Security Symposium. Negação de Serviço Segurança na Internet • Não há solução completa – Uso de ferramentas para reduzir os efeitos de ataques • • • • Firewalls Antivírus Anti-spams Atualizações automáticas, etc. • as ferramentas são ineficazes contra ataques de negação de serviço Negação de Serviço • Por que as ferramentas são ineficazes? – Não se sabe a origem dos atacantes • Endereços de origem forjados – O tráfego de ataque • Pode ser gerado por vários atacantes • É semelhante ao tráfego legítimo – Novas vulnerabilidades a cada dia • Desenvolver mecanismos específicos contra ataques de negação de serviço – Medidas preventivas – Medidas reativas Negação de Serviço • Medidas preventivas – Atualizações regulares – Super-dimensionamento – Não garantem que um computador estará protegido • Novas vulnerabilidades • Tráfego de ataque gerado por diversos atacantes • Medidas reativas – Identificar o atacante, aplicar punições e inibir futuros ataques – Rastreamento de pacotes IP • Determinar a verdadeira origem e a rota de ataque Ataques na Internet Pragas Digitais • Ataques associados a códigos maliciosos – Custam milhões de dólares a cada ano – As ações corretivas podem levar dias – Existe um constante aprimoramento das técnicas de ataque, além do surgimento de novos tipos de ataques • Os atacantes – Inicialmente (década de 80/90) eram nerds com o objetivo de auto-afirmação, de aprendizado ou por desafio – Atualmente podem ser hackers com objetivos ilícitos, ou simplesmente spammers Pragas Digitais • Guerra informacional – Profissionais de segurança x atacantes • Códigos maliciosos – São mascarados por diversos mecanismos – São executados sem o consentimento do usuário – Impedem o funcionamento correto do computador • Por que o entendimento dos ataques é importante? Pragas Digitais • Guerra informacional – Profissionais de segurança x atacantes • Códigos maliciosos – São mascarados por diversos mecanismos – São executados sem o consentimento do usuário – Impedem o funcionamento correto do computador • Por que o entendimento dos ataques é importante? – Especificação de ações preventivas/defensivas – Preparação dos usuários para as ameaças em potencial – Seleção de produtos de segurança Ataques Maliciosos • Tipos de ataques – – – – – – – Vírus Cavalos de Tróia e backdoors Vermes (worms) Spyware Adware Stealware ... Vírus • Trecho de código que se anexa a outros arquivos – Contém procedimentos maliciosos • Efeitos inofensivos irritantes – Ex.: piscar imagens na tela • Apagar arquivos essenciais ao funcionamento do computador • É executado através da intervenção humana • É composto basicamente de – Um mecanismo de propagação • E-mail, compartilhamento de arquivos, disquete, etc. – Um disparador de ações – Tarefas a serem executadas Vírus Usuário adquire vírus por um dispositivo de entrada ou pela rede Vírus Usuário executa o vírus Usuário adquire vírus por um dispositivo de entrada ou pela rede Vírus Usuário executa o vírus Usuário adquire vírus por um dispositivo de entrada ou pela rede Vírus executa suas tarefas e se replica Vírus Vírus se propaga para outro computador por um dispositivo de saída ou pela rede Usuário executa o vírus Usuário adquire vírus por um dispositivo de entrada ou pela rede Vírus executa suas tarefas e se replica Características dos Vírus • Vírus de MBR (Master Boot Record) – Infecta os primeiros setores de um disco – Cada vez menos comum, devido ao desuso de disquetes • Vírus removedor – Apaga arquivos essenciais ao funcionamento do computador ou de aplicativos • Vírus infeccioso – Se anexa a arquivos executáveis (.exe, .com) Características dos Vírus • Vírus de conteúdo embutido – Semelhante ao infeccioso – Geralmente se anexa a arquivos de som, imagem, vídeo ou até páginas Web • Vírus furtivo (stealth) – Burla heurísticas utilizadas pelos antivírus • Vírus de engenharia social e boatos (hoaxes) – Anuncia arquivos legítimos do sistema operacional como sendo vírus e requisita que o usuário o apague • Estas características podem ser combinadas Cavalo de Tróia • Programa que, a princípio, não apresenta perigo, porém ao ser executado pode causar estragos • Pode criar porta dos fundos (backdoors) • Habilita a execução de comandos remotos do atacante • Geralmente adquiridos através de acesso a sítios maliciosos ou através de e-mails • Não se replica! Cavalo de Tróia “Oi, eu sou um coelhinho, olha como sou inofensivo” A ISCA Cavalo de Tróia “Oi, eu sou um coelhinho, olha como sou inofensivo” “Ah! que coelhinho lindinho! Vou executar e ver o que acontece” A ISCA A VÍTIMA Cavalo de Tróia “Oi, eu sou um coelhinho, olha como sou inofensivo” “Ah! que coelhinho lindinho! Vou executar e ver o que acontece” A ISCA “mais um trouxa que eu pego!” ... A VÍTIMA O ATACANTE Cavalo de Tróia “Oi, eu sou um coelhinho, olha como sou inofensivo” “Ah! que coelhinho lindinho! Vou executar e ver o que acontece” A ISCA “mais um trouxa que eu pego!” ... A VÍTIMA ... “agora posso roubar informações e danificar computadores, garantindo anonimato!” O ATACANTE O ESTRAGO Verme • Pode ser considerado uma sub-classe de vírus – Apresenta as mesmas ameaças, procedimentos e classificações • Se alastra sem a intervenção humana – Se auto-envia através de e-mails – Pode utilizar falhas do sistema operacional (vulnerabilidades) – Pode se alastrar por uma rede corporativa • Geralmente, sua replicação é intensa – Computacionalmente exaustivo Verme Computador comprometido utiliza a rede para infectar outros computadores vulneráveis Verme Computador comprometido utiliza a rede para infectar outros computadores vulneráveis Verme Computador comprometido utiliza a rede para infectar outros computadores computad vulneráveis Verme Computador comprometido utiliza a rede para infectar outros computadores computad vulneráveis Verme Computador comprometido utiliza a rede para infectar outros computadores computad vulneráveis Spyware • É, geralmente, introduzido como parte de um vírus, cavalo de Tróia ou de um programa legítimo • Coleta dados dos usuários – Páginas mais acessadas, sistema operacional utilizado, aplicativos instalados, etc. • Compila os dados em perfis de usuários • Não apresenta ameaça direta ao usuário Spyware Spyware Usuários da Internet Spyware Hacker coleta dados dos diversos usuários Usuários da Internet Spyware Hacker coleta dados dos diversos usuários Hacker compila os dados em Usuários da Internet informações e perfis de usuários Spyware Hacker coleta dados dos diversos usuários Hacker compila os dados em Usuários da Internet informações e perfis de usuários Os perfis de usuários são vendidos para organizações Adware • Código malicioso anexados a programas legítimos – Freewares, Sharewares • Apresenta na janela do programa ou em “pop-ups” – Propagandas dos patrocinadores • Sustenta o desenvolvimento de softwares – Inviáveis comercialmente Stealware • “Ladrão de audiência” • Inofensivo para o usuário • Geralmente é anexado a softwares de sítios de conteúdo restrito • Afeta as organizações que lucram com a navegação do usuário na Web – Transfere o pagamento de comissões de propagandas em sítios para a organização que desenvolveu o código malicioso • Modifica cookies e endereços de páginas Web Anúncios na Internet Passando o mouse sobre o anúncio Anúncios na Internet Passando o mouse sobre o anúncio Anúncios na Internet Passando o mouse sobre o anúncio Anúncios na Internet Passando o mouse sobre o anúncio Anúncios na Internet Anúncios na Internet Como o Stealware funciona www.fotolog.net Usuário normal Como o Stealware funciona www.fotolog.net Usuário normal www.brasiltelecom.com.br Sítio patrocinador utiliza informações do usuário para contabilizar a comissão da propaganda Como o Stealware funciona www.fotolog.net Usuário normal www.brasiltelecom.com.br Sítio patrocinador utiliza informações do usuário Brasil-Telecom:”O fotolog.net me rendeu muitos cliques, este sítio é para contabilizar a um bom lugar para anunciar” comissão da propaganda Como o Stealware funciona www.fotolog.net Usuário com stealware www.brasiltelecom.com.br Como o Stealware funciona www.fotolog.net Stealware modifica a comissão do anúncio Usuário com stealware www.brasiltelecom.com.br Como o Stealware funciona www.fotolog.net Stealware modifica a comissão do anúncio Usuário com stealware www.brasiltelecom.com.br Brasil-Telecom:”O steal.org me rendeu muitos cliques, este sítio é um bom lugar para anunciar” Mensagem Não Solicitada - SPAM Spams • Mensagem eletrônica não solicitada - Spam – Correio eletrônico (e-mail) – Short Message Service (SMS) – Multimedia Message Service (MMS) – Mensagens instantâneas • Spammer – Todo o indivíduo que gera ou envia spams Mensagens não solicitadas (spams) • 68,7% dos e-mails na Internet – Crescimento de 30% a cada mês • 31% dos usuários clicam em spams – 10% compram algum produto • Aumento do custo de operação dos provedores – Desperdício de banda estimado em US$ 500 milhões Spam e o Brasil • 5o maior receptor (2005) 1. China 2. EUA 3. Coréia do Sul • Também é o 5o maior gerador - 3,34% (2004) 1. EUA: 42,11% 2. Coréia do Sul: 13,43% 3. China: 8,44% Origem da Palavra Spam • Hormel Foods LLC – “SPiced hAM” – SPAM • Controversa – Grupo Monty Python – Medalha ao exército americano • Características em comum – Repetitivo – Inesperado – Inútil Origem da Palavra Spam Definição do Grupo Brasil AntiSPAM • Pelo menos dois dos itens devem ser atendidos: – o remetente é inexistente ou possui identidade falsa – o destinatário não autorizou previamente o envio da mensagem – o destinatário não pode optar em não receber mais a mensagem – o assunto não condiz com o conteúdo da mensagem – a sigla NS (Não Solicitado) está ausente no assunto de uma mensagem que não foi previamente requisitada – o remetente não pode ser identificado – uma mensagem semelhante foi recebida anteriormente em menos de dez dias apenas com o remetente ou assunto diferentes Tipos de Spams • Diferentes codificações – HTML, texto plano, rich text – HTML é o mais utilizado • Diferentes técnicas – Modo texto → HTML – Propaganda em Figuras – Elementos aleatórios Spam em HTML • Código simples • Visualizado em todo cliente de e-mail • Executado automaticamente Spam em HTML • Código simples • Visualizado em todo cliente de e-mail • Executado automaticamente Spam em HTML • Código simples • Visualizado em todo cliente de e-mail • Executado automaticamente Links para os sítios dos spammers Spam em Figuras • Difícil de ser bloqueado – Ausência de padrão • Navegação mais complexa – Ausência de links Spam em Figuras • Difícil de ser bloqueado – Ausência de padrão • Navegação mais complexa – Ausência de links Spam em Figuras • Difícil de ser bloqueado – Ausência de padrão • Navegação mais complexa – Ausência de links Figura chamativa Spam em Figuras • Difícil de ser bloqueado – Ausência de padrão • Navegação mais complexa – Ausência de links Spam em Figuras • Difícil de ser bloqueado – Ausência de padrão • Navegação mais complexa – Ausência de links Spam em Figuras • Difícil de ser bloqueado – Ausência de padrão • Navegação mais complexa – Ausência de links Endereço do sítio Spam com Elementos Aleatórios • Dificultar o reconhecimento de padrões Spam com Elementos Aleatórios • Dificultar o reconhecimento de padrões Spam com Elementos Aleatórios • Dificultar o reconhecimento de padrões O “Re:” é para o usuário acreditar que trata-se de uma resposta a um e-mail próprio Spam com Elementos Aleatórios • Dificultar o reconhecimento de padrões Spam com Elementos Aleatórios • Dificultar o reconhecimento de padrões Spam com Elementos Aleatórios • Dificultar o reconhecimento de padrões O “[14]” é um número aleatório Objetivos do Spam • Divulgação de atividades – Políticas, religiosas, culturais – Comerciais • Venda de produtos, serviços e conteúdo • Atividades ilícitas – Disseminação de pragas digitais – Obtenção de informações • Constituição de cadastros − Endereços eletrônicos, endereços físicos, identidades • Fraudes − Senhas, CPF, Número de cartão de crédito Conseqüências dos Spams • Usuários – Custos • • • • Lesões por fraudes financeiras Aquisição de mecanismos de proteção Desperdício de tempo de conexão Internet Armazenamento dos spams – Insatisfação – Diminuição da credibilidade do correio eletrônico Obtenção de Listas de Endereços e a Escolha das Vítimas • Invasão de servidores • Interceptação de e-mails de grupos • Emprego de programas populares – MSN, Orkut, ICQ • Obtenção de perfis de usuários – Direcionamento dos spams • Aumento da lucratividade Verificação da Existência do Usuário • Presença de identificadores – Registros de HTTP • Clientes de e-mail com execução automática − Objetos baixados • Acesso à pagina anunciada • Resposta aos e-mails – Pedido de cancelamento de recebimento Identificadores • Endereço explícito • Endereço aleatório Início do Envio de Spams • Vulnerabilidades do SMTP – Protocolo simples • Desprovido de mecanismos de segurança • Desenvolvido para fins lícitos − Poucos comandos − Não há verificação: • Domínio do remetente • Autenticidade do remetente • Hospedagem de conteúdo – Spammers utilizavam as próprias máquinas Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Domínio do remetente do e-mail Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Remetente do e-mail Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Destinatário do e-mail Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Assunto do e-mail Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Uso de Telnet para Envio de Spams Corpo do e-mail Uso de Telnet para Envio de Spams • Falta de segurança do SMTP – Recebimento com sucesso! Evolução no Envio de Spams • Novas técnicas de envio de spams – Aumento do número de spams • Legislação anti-spam • Mecanismos anti-spam • Hospedagem de conteúdo – Surgimento de servidores especializados • Financiado pelo spammer – Servidores de terceiros → zumbis • Pragas digitais → trojans • Penas criminais e listas – Anonimato Novas Técnicas de Envio de Spams • Emprego de servidores proxy mal configurados – Utilizam o próprio endereço IP como origem • Emprego de servidores SMTP com relay aberto – Características semelhantes aos servidores proxy • Emprego de programas populares – Spams enviados para os usuários • Ex.: ICQ, MSN, Orkut, etc • Emprego de faixas de endereços IP dinâmicos • Emprego de máquinas pessoais de terceiros Servidores Proxy Provedor Servidor proxy Spammer Servidores Proxy Provedor Servidor proxy Spammer Servidores Proxy Provedor Servidor proxy Spammer se conecta ao proxy Spammer Servidores Proxy Provedor Servidor proxy Spammer Servidores Proxy Provedor Servidor proxy Spammer Servidores Proxy Endereço IP de origem: Proxy Endereço IP de destino: Provedor Provedor Servidor proxy Spammer Programas Populares www.orkut.com Programas Populares - Oi, que tal nos conhecermos? Entre no meu sítio e venha me visitar. www.orkut.com Programas Populares - Oi, que tal nos conhecermos? Entre no meu sítio e venha me visitar. www.orkut.com - Oi, clique no balãozinho azul para ver a sua surpresa. Faixas de Endereços IP Dinâmicos Spammer: Endereço IP: x.x.x.x Faixas de Endereços IP Dinâmicos Spammer: Endereço IP: x.x.x.x Faixas de Endereços IP Dinâmicos Endereço IP de origem: x.x.x.x Spammer: Endereço IP: x.x.x.x Faixas de Endereços IP Dinâmicos Spammer: Endereço IP: x.x.x.y Faixas de Endereços IP Dinâmicos Spammer: Endereço IP: x.x.x.y Faixas de Endereços IP Dinâmicos Endereço IP de origem: x.x.x.y Spammer: Endereço IP: x.x.x.y Faixas de Endereços IP Dinâmicos Quem é que possui o endereço IP x.x.x.x? Spammer: Endereço IP: x.x.x.y Mecanismos Anti-spam • Filtragem – Pessoal • Usuário configura seu próprio cliente de e-mail − Bloqueia remetentes, assuntos ou endereços de origem indesejados – Por cabeçalho • Verificação do domínio e do endereço IP de origem − Listas: negras, cinzas e brancas − Domínio ou faixa de endereços IP conhecidos • Verificação da consistência entre endereço e domínio de origem • Teste de consistência do DNS reverso • Análise do assunto do e-mail • Nome do remetente Mecanismos Anti-spam – Por conteúdo • Filtragem de objetos suspeitos − Anexo ou no corpo do e-mail • Bloqueia executáveis, figuras, apresentações etc • Reconhecimento de padrões − Verificação de palavras comerciais • Exs.: Viagra, Cassino − Técnicas de inteligência artificial → Adaptabilidade • Exs.: \ /iagra = Viagra, C@ssino = Cassino • SpamAssassin – Aplica diversos métodos de filtragem – Adaptativo • Mecanismos de inteligência artificial SpamAssassin • Comparação com um conjunto de regras – Definidas em arquivos de configuração • Exs.: − antidrug.cf • Spams de venda de remédios − backhair.cf • Spams com tags HTML suspeitas − bogus-virus-warnings.cf • Spams originados por pragas digitais − chickenpox.cf • Palavras escritas com caracteres semelhantes − evilnumbers.cf • Números de contato – tel., caixa postal etc − sa-blacklist.current.uri.cf • Endereços IP pertencentes a listas negras SpamAssassin SpamAssassin SpamAssassin Negação de Serviço Negação de Serviço • Diferente da maioria dos ataques na Internet • Objetivo: interromper uma atividade legítima – Nenhum dado é roubado – Nenhuma informação é alterada – Não ocorre nenhum acesso não autorizado à vítima • Como se consegue a negação de serviço? – Congelamento ou reinicialização de programas – Esgotamento de recursos Negação de Serviço • Década de 90 – Programas para ataques remotos – Computadores de grande capacidade universidades – Redes de alta velocidade • Atualmente – Ataques freqüentes • Ferramentas para automatizar algumas fases dos ataques – Prejuízos financeiros e de imagem Formas de Negação de Serviço • Consumir recursos essenciais – – – – Memória Processamento Espaço em disco Banda passante • Duas formas – Inundação – Explorar uma vulnerabilidade Ataques por Inundação • Sempre é possível negar o serviço de uma vítima – Recursos limitados • Mensagens geradas a uma taxa maior do que são tratadas • Alvo – Aplicação, infra-estrutura de rede, etc. • Tráfego de ataque idêntico ao tráfego legítimo – Empecilho para adotar medidas de contra-ataque Ataques por Inundação Rede U V Ataques por Inundação Rede U V Ataques por Inundação Rede U V Ataques por Inundação Rede U V uso da CPU Ataques por Inundação tempo Rede V fila U memória Ataques por Inundação A Rede U V Ataques por Inundação A Rede U V Ataques por Inundação A Rede U V Ataques por Inundação A Rede U V Ataques por Inundação A Rede U V uso da CPU Ataques por Inundação A tempo Rede V fila U memória Ataques por Inundação • Um computador não é capaz de inundar a vítima • Ataques distribuídos – Diversos computadores atuam em conjunto – Sempre é possível inundar a vítima • Número de computadores participantes – Ferramentas para automatizar o processo • Atacantes pouco experientes Ataques por Vulnerabilidade • Exploração de vulnerabilidades da vítima • Falhas – Aplicação – Sistema operacional – Protocolo de comunicação • Pior caso Æ exploração com um único pacote • Desafio para os sistemas de rastreamento • Exemplos – Envio de um único segmento TCP – Fragmentos IP sobrepostos – Mensagem de erro ICMP Ataques por Vulnerabilidade A Rede U V Ataques por Vulnerabilidade A Rede U V Ataques por Vulnerabilidade A Rede U V Ataques por Vulnerabilidade A Rede U V Ataques por Vulnerabilidade A Rede U V uso da CPU Ataques por Vulnerabilidade A tempo Rede V fila U memória Arquitetura da Internet • Sucesso da Internet – Velocidade – Confiabilidade – Compartilhamento de recursos • Baixo custo • Princípios da arquitetura – Facilitam a proliferação de ataques de negação de serviço Arquitetura da Internet • Sucesso da Internet – Velocidade – Confiabilidade – Compartilhamento de recursos • Baixo custo comutação de pacotes + protocolos TCP/IP • Princípios da arquitetura – Facilitam a proliferação de ataques de negação de serviço Arquitetura da Internet • Protocolo IP (Internet Protocol ) – Sem autenticação da fonte • Injeção de pacotes na rede com endereço de origem forjado • Anonimato dos atacantes – Roteamento baseado unicamente no endereço de destino • Nós intermediários selecionam as rotas • Pacotes forjados alcançam seus destinos – Ausência de estado nos roteadores • Impossível determinar a rota percorrida por um pacote Arquitetura da Internet • O problema da autenticidade de endereços Y 2 X 1 3 Arquitetura da Internet • O problema da autenticidade de endereços Y 2 X 1 3 Endereço Interface X Y outro 1 2 3 Arquitetura da Internet • O problema da autenticidade de endereços Y Origem Destino Z Y X 2 1 3 Endereço Interface X Y outro 1 2 3 Arquitetura da Internet • O problema da autenticidade de endereços Y Origem Destino Z Y X 2 1 3 Endereço Interface X Y outro 1 2 3 Origem Destino Z Y Arquitetura da Internet Casa Branca GTA/UFRJ Iraque Arquitetura da Internet Casa Branca Origem 65.17.203.38 Destino 143.108.13.123 GTA/UFRJ Iraque Arquitetura da Internet Casa Branca Origem 65.17.203.38 Destino 143.108.13.123 GTA/UFRJ Iraque Roteamento Dinâmico • Pacotes de Y endereçados a X – São roteados por R1 X Rede R1 Y R2 Roteamento Dinâmico • Pacotes de Y endereçados a X – São roteados por R1 X Rede R1 Y X Y R2 Roteamento Dinâmico • Pacotes de Y endereçados a X – São roteados por R1 Y X X Rede R1 Y X Y R2 Roteamento Dinâmico • Queda de um nó – O roteador R1 cai – Pacotes de Y para X são roteados por outros nós X Rede R1 Y R2 Roteamento Dinâmico • Queda de um nó – O roteador R1 cai – Pacotes de Y para X são roteados por outros nós X Rede R1 Y Y X R2 Roteamento Dinâmico • Queda de um nó – O roteador R1 cai – Pacotes de Y para X são roteados por outros nós X Y X Rede R1 Y Y X R2 Roteamento Dinâmico • Após a recuperação... – Pacotes legítimos de Y para X são roteados por R1 – O atacante A usa pacotes com endereço de Y para atacar X • X não pode bloquear os pacotes de ataque Æ R1 pode ter caído X Rede R1 Y R2 A Roteamento Dinâmico • Após a recuperação... – Pacotes legítimos de Y para X são roteados por R1 – O atacante A usa pacotes com endereço de Y para atacar X • X não pode bloquear os pacotes de ataque Æ R1 pode ter caído X Rede R1 Y X Y R2 A Roteamento Dinâmico • Após a recuperação... – Pacotes legítimos de Y para X são roteados por R1 – O atacante A usa pacotes com endereço de Y para atacar X • X não pode bloquear os pacotes de ataque Æ R1 pode ter caído Y X X Rede R1 Y X Y R2 A Roteamento Dinâmico • Após a recuperação... – Pacotes legítimos de Y para X são roteados por R1 – O atacante A usa pacotes com endereço de Y para atacar X • X não pode bloquear os pacotes de ataque Æ R1 pode ter caído Y X X Y X Rede R1 Y X Y R2 A Roteamento Dinâmico • Após a recuperação... – Pacotes legítimos de Y para X são roteados por R1 – O atacante A usa pacotes com endereço de Y para atacar X • X não pode bloquear os pacotes de ataque Æ R1 pode ter caído Y X X Y X Y X Rede R1 Y X Y R2 A Roteamento Dinâmico • Após a recuperação... – Pacotes legítimos de Y para X são roteados por R1 – O atacante A usa pacotes com endereço de Y para atacar X • X não pode bloquear os pacotes de ataque Æ R1 pode ter caído Y X X Y X Y X Y X Rede R1 Y X Y R2 A Arquitetura da Internet • Não há reserva de recursos – Melhor esforço – Um ataque busca consumir o máximo de recursos – Usuários legítimos prejudicados • Recursos ocupados por ações maliciosas • Topologia da Internet – Núcleo Æ alta capacidade – Bordas Æ baixa capacidade heterogeneidade – Nós da borda podem ser inundados pelo tráfego agregado Topologia da Internet • O problema dos enlaces heterogêneos A1 A2 A3 ... V An Arquitetura da Internet • Complexidade nos nós de borda – Melhor esforço • Encaminhamento de pacotes – Paradigma fim-a-fim • Requisitos garantidos pelas camadas de transporte e aplicação – Escalabilidade e custo reduzido – Mecanismos de defesa na infra-estrutura de rede • Propostas criticadas Arquitetura da Internet • Gerenciamento – Não há hierarquia • Comunidade de redes interconectadas • Gerência local • Políticas particulares – Mecanismos de defesa que requerem cooperação de nós são prejudicados • Não há entidade central • Como garantir a adoção em larga escala? • Como coordenar os nós? Motivações do Atacante • Provar a fragilidade de um serviço • Atacante recebe algo em troca – – – – Código-fonte de uma exploração Acesso a uma estação invadida Documento confidencial Reconhecimento na comunidade virtual • Ataques a sítios de grande visibilidade – Remuneração • Empresas concorrentes – Extorsão • Serviço “fora do ar” por um determinado período Motivações do Atacante • Motivos políticos – Ex. Ataque ao servidor de DNS da emissora Al-Jazeera • Aluguel da rede de zumbis Classificação dos Ataques • De acordo com – Número de atacantes – Tipo de recurso explorado, etc. • Classificados em – – – – – Por inundação Por refletor À infra-estrutura de redes Por vulnerabilidades Distribuídos Ataques por Inundação • Gerar mensagens a uma taxa maior do que elas podem ser tratadas • Sempre é possível negar o serviço – Recursos limitados • Ataque por inundação de segmentos TCP SYN – Consumir a memória e o processamento da vítima – Endereço IP de origem forjado • Se usado, SYN/ACK não volta para o atacante Inundação de Segmentos SYN • Procedimento de abertura de conexão TCP Tempo Cliente Servidor Inundação de Segmentos SYN • Procedimento de abertura de conexão TCP Cliente SYN Tempo seq = x Servidor Inundação de Segmentos SYN Cliente SYN x tempo Tempo seq = Servidor uso da CPU • Procedimento de abertura de conexão TCP memória Inundação de Segmentos SYN Cliente SYN Tempo seq = x Servidor uso da CPU • Procedimento de abertura de conexão TCP tempo K C A / N Y S 1 ck = x + ,a y = q e s memória Inundação de Segmentos SYN Cliente SYN Tempo seq = x Servidor uso da CPU • Procedimento de abertura de conexão TCP tempo te K C A / N Y S 1 ck = x + ,a y = q e s A seq = x CK +1, ack =y +1 memória Inundação de Segmentos SYN • Ataque ao processamento usando segmentos TCP SYN Tempo Atacante Vítima Inundação de Segmentos SYN • Ataque ao processamento usando segmentos TCP SYN Tempo Atacante SYN Vítima Inundação de Segmentos SYN Tempo Atacante SYN Vítima uso da CPU • Ataque ao processamento usando segmentos TCP SYN tempo Inundação de Segmentos SYN Tempo Atacante SYN Vítima uso da CPU • Ataque ao processamento usando segmentos TCP SYN tempo K SYN/AC Inundação de Segmentos SYN Atacante SYN Tempo SYN Vítima uso da CPU • Ataque ao processamento usando segmentos TCP SYN tempo K SYN/AC Inundação de Segmentos SYN Atacante SYN Tempo SYN SYN K SYN/AC Vítima uso da CPU • Ataque ao processamento usando segmentos TCP SYN tempo Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN Tempo Atacante Vítima Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN Tempo Atacante SYN Vítima Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN SYN Vítima Tempo Atacante memória Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN Tempo Atacante Vítima SYN K SYN/AC memória Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN Tempo Atacante Vítima SYN SYN K SYN/AC memória Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN Tempo Atacante Vítima SYN SYN K SYN/AC SYN memória Inundação de Segmentos SYN • Ataque à memória usando segmentos TCP SYN Tempo Atacante Vítima SYN SYN K SYN/AC SYN SYN memória Inundação de Segmentos SYN • Solução proposta por Schuba et al. – Não armazenar estados ao receber um segmento TCP/SYN • Evitar sobrecarga de memória – Enviar o SYN/ACK como resposta • No. de seqüência = hash endereços IP de origem e destino + portas TCP + no. de seqüência inicial do cliente + valor secreto – O cliente tem que enviar o ACK com no. de seq. de acordo com hash produzido pelo servidor Inundação de Segmentos SYN • Solução proposta por Schuba et al. Tempo Cliente Servidor Inundação de Segmentos SYN • Solução proposta por Schuba et al. Cliente SYN Tempo seq = x Servidor Inundação de Segmentos SYN Cliente SYN Tempo seq = x Servidor uso da CPU • Solução proposta por Schuba et al. tempo Inundação de Segmentos SYN Cliente SYN Tempo seq = x K C A / N Y S 1 ck = x + ,a y = q e s y = hash(*) Servidor uso da CPU • Solução proposta por Schuba et al. tempo Inundação de Segmentos SYN Cliente SYN Tempo seq = x K C A / N Y S 1 ck = x + Servidor uso da CPU • Solução proposta por Schuba et al. tempo ,a y = q e s A seq = x CK +1, ack =y +1 y = hash(*) memória Inundação de Segmentos SYN • Desvantagens da solução proposta por Schuba et al. – Modificação no protocolo • Todas as implementações – Conexões podem ser abertas só com segmento TCP ACK – Não há registro de conexões semi-abertas no servidor • TCP deixa de ser tolerante a falhas • Ataques de inundação não ocorrem somente com o TCP – Todo protocolo requer processamento de mensagens – Alguns protocolos alocam recursos de memória Ataques por Refletor • Também é um ataque de inundação • Presença de uma estação intermediária – Refletir o tráfego de ataque na direção da vítima – Dificultar ainda mais a identificação do atacante • Tráfego gerado pelo refletor • Idéia – O atacante envia uma requisição para o refletor • Endereço de origem da vítima – O refletor envia a resposta para a vítima • Não verifica a autenticidade do endereço de origem Ataques por Refletor • Exemplos – UDP/DNS • O atacante envia requisições para o servidor DNS do refletor − Endereço de origem da vítima • O refletor responde as requisições para a vítima – TCP SYN • Estação intermediária – Inundação ICMP • Ataque Smurf – Inundação UDP • Uso do serviço de geração de caracteres (chargen) Refletor usando TCP SYN Tempo Atacante Refletor Vítima Refletor usando TCP SYN Tempo Atacante SYN Refletor Vítima Refletor usando TCP SYN Tempo Atacante SYN Vítima Refletor SYN/AC K Refletor usando TCP SYN Tempo Atacante SYN Vítima Refletor SYN/AC K Refletor usando TCP SYN Tempo Atacante SYN Vítima Refletor SYN/AC K RST Refletor usando TCP SYN Tempo Atacante SYN SYN Vítima Refletor SYN/AC K SYN/AC K RST Inundação ICMP • O refletor é usado como amplificador – O tamanho da requisição é menor do que o da resposta • Ataque Smurf – Nome de uma das ferramentas usadas no ataque – Envio de pacotes ICMP (ping) para o endereço de difusão de uma dada rede • Endereço de origem da vítima – Todas as estações da rede respondem a requisição para a vítima • Estações usadas como refletores Æ rede refletora Inundação ICMP A V H1 H2 H3 R H4 H5 Inundação ICMP A V H1 H2 H3 R H4 H5 Inundação ICMP A V H1 H2 H3 R H4 H5 Inundação UDP • Um atacante pode atingir duas vítimas ao mesmo tempo – Serviço de geração de caracteres (chargen) Æ V2 – Serviço de impressão de caracteres (echo) Æ V1 – Pacote ICMP echo para V2 com endereço de V1 • Uma vítima envia pacotes continuamente para a outra A V1 V2 Inundação UDP • Um atacante pode atingir duas vítimas ao mesmo tempo – Serviço de geração de caracteres (chargen) Æ V2 – Serviço de impressão de caracteres (echo) Æ V1 – Pacote ICMP echo para V2 com endereço de V1 • Uma vítima envia pacotes continuamente para a outra A V1 V2 Inundação UDP • Um atacante pode atingir duas vítimas ao mesmo tempo – Serviço de geração de caracteres (chargen) Æ V2 – Serviço de impressão de caracteres (echo) Æ V1 – Pacote ICMP echo para V2 com endereço de V1 • Uma vítima envia pacotes continuamente para a outra A V1 V2 Inundação UDP • Um atacante pode atingir duas vítimas ao mesmo tempo – Serviço de geração de caracteres (chargen) Æ V2 – Serviço de impressão de caracteres (echo) Æ V1 – Pacote ICMP echo para V2 com endereço de V1 • Uma vítima envia pacotes continuamente para a outra A V1 V2 Inundação UDP • Um atacante pode atingir duas vítimas ao mesmo tempo – Serviço de geração de caracteres (chargen) Æ V2 – Serviço de impressão de caracteres (echo) Æ V1 – Pacote ICMP echo para V2 com endereço de V1 • Uma vítima envia pacotes continuamente para a outra A V1 V2 Inundação UDP • Um atacante pode atingir duas vítimas ao mesmo tempo – Serviço de geração de caracteres (chargen) Æ V2 – Serviço de impressão de caracteres (echo) Æ V1 – Pacote ICMP echo para V2 com endereço de V1 • Uma vítima envia pacotes continuamente para a outra A V1 V2 .. . Inundação UDP • O serviço chargen também é “amplificador” – Geração de uma seqüência de caracteres • Tráfego enviado pelo atacante: 128 kbps • Fator de amplificação: 50 • Tráfego que chega na vítima: 128 kbps x 50 = 6,4 Mbps Ataque à Infra-estrutura de Rede • As vítimas geralmente são sítios famosos – Maior visibilidade na comunidade – Computadores super-dimensionados • Abundância de memória e processamento • Difícil negar o serviço da vítima • Ponto crucial que não dependa da vítima – Consumir a banda passante – Servidores de DNS – Roteadores, etc. Ataque à Infra-estrutura de Rede • Consumo de banda passante – Requisições perdidas na infra-estrutura de rede Æ gargalo – Difícil de combater • Pacotes com padrões diferentes para impossibilitar a filtragem A V U Ataque à Infra-estrutura de Rede • Consumo de banda passante – Requisições perdidas na infra-estrutura de rede Æ gargalo – Difícil de combater • Pacotes com padrões diferentes para impossibilitar a filtragem A V U Ataque à Infra-estrutura de Rede • Consumo de banda passante – Requisições perdidas na infra-estrutura de rede Æ gargalo – Difícil de combater • Pacotes com padrões diferentes para impossibilitar a filtragem A V U Ataque à Infra-estrutura de Rede • Consumo de banda passante – Requisições perdidas na infra-estrutura de rede Æ gargalo – Difícil de combater • Pacotes com padrões diferentes para impossibilitar a filtragem A “Gargalo” V U Ataque à Infra-estrutura de Rede • Consumo de banda passante – Requisições perdidas na infra-estrutura de rede Æ gargalo – Difícil de combater • Pacotes com padrões diferentes para impossibilitar a filtragem A “Gargalo” V U Ataque à Infra-estrutura de Rede • Ataque ao servidor DNS (Domain Name System) – Tradução de nomes em endereços IP – Usado contra a Microsoft • Servidores DNS localizados no mesmo segmento de rede • Segmento inundado Æ serviços da empresa inacessíveis • Solução: servidores geograficamente distribuídos • Ataque aos roteadores – Inundação – Tabela de roteamento extensa • Dificultar a busca e atrasar o encaminhamento – Informações de roteamento falsas Ataques por Vulnerabilidades • Explorar vulnerabilidades – Aplicação – Pilha de protocolos • Envio de pacotes com determinadas características • Exemplos – Implementação do TCP em sistemas Windows – Fragmentação do protocolo IP – Ataques a conexões TCP usando pacotes ICMP Protocolo TCP no Windows • Construir um segmento TCP com determinadas características – Uso do campo “ponteiro para dados urgentes” (urgent pointer) do cabeçalho • Indica onde os dados urgentes terminam – Apontando para o fim do quadro Æ não há mais “dados normais” • Os sistemas Windows esperavam por dados normais – Estado inesperado • Sistema operacional aborta • Congelamento Fragmentação do Protocolo IP • Pacotes maiores quebrados em fragmentos menores • Cada fragmento – Enviado separadamente – Identificador • Receptor consegue agregar os fragmentos de um pacote – Número de seqüência • Indica aonde o fragmento se encontra no pacote original • Enviar fragmentos de um mesmo pacote com números de seqüência sobrepostos – Estado não previsto Æ congelamento ou reinicialização Ataques a Conexões TCP com ICMP • Conexões TCP já estabelecidas Æ um pacote ICMP – Relatar erros no roteamento desde a fonte até o destino • Forjar um pacote ICMP [Gont et al., 2004] – Erro no roteamento de um pacote – Fechamento da conexão TCP estabelecida – Novo procedimento de abertura • Envio contínuo de pacotes ICMP forjados – Serviços baseados no TCP são comprometidos Ataques Distribuídos • Geralmente, é um ataque por inundação – Uma estação é incapaz de consumir os recursos da vítima • Diversas estações atacam em conjunto – Tráfego agregado responsável pela negação do serviço – Estações geralmente não pertencem ao atacantes • São recrutadas • Como recrutar estações? – Explorar vulnerabilidades Æ acesso não autorizado • Atacante passa a controlar as estações Æ zumbis – Ferramentas para automatizar o processo Ataques Distribuídos A V Vantagens para o Atacante • Inundação da vítima sempre possível – Aumentar o número de zumbis – Cada zumbi gera uma parcela do tráfego • Dificuldade para interromper o ataque – Não basta identificar um zumbi – Filtragem do tráfego o mais perto possível dos zumbis • Dificuldade para identificar o atacante – Identificar os zumbis – Identificar os mestres – Mais níveis de hierarquia Æ mais difícil é a identificação Vantagens para o Atacante • Atacante envia os comandos por um canal de bate-papo – Zumbis e mestres entram automaticamente no servidor • Estado de espera • Outras estações intermediárias também podem ser usadas A Ferramentas • Winnuke – Explora a vulnerabilidade do TCP em sistemas Windows • Sistema aborta Æ “tela azul” • Smurf – Implementa a inundação ICMP • Envia pacotes ping com endereço de origem forjado • Trinoo – Primeira ferramenta para ataques distribuídos • Tribe Flood Network (TFN) – Ataques distribuídos – Inundação ICMP, UDP e TCP SYN – Variante: TFN2k Contramedidas • Como evitar ou reduzir os danos causados por ataques de negação de serviço? – Medidas preventivas • Evitar ou reduzir a probabilidade de ocorrência de um ataque • Adoção em larga escala e cooperação entre usuários – Medidas reativas • Lidar com ataques em andamento ou encerrados Medidas Preventivas • Atualização regular do sistema operacional e aplicativos – Evitar ataques por vulnerabilidade – Dificultar o recrutamento de zumbis – Responsabilidade do usuário • Super-dimensionamento de recursos – Custo elevado – Nem sempre é eficaz • Ataque à infra-estrutura de rede • Aumento do número de zumbis Medidas Preventivas • Filtragem de ingresso (ingress filtering) – Evitar que pacotes com endereço IP de origem forjado trafeguem pela rede – Roteadores verificam o endereço de origem de cada pacote • Se o endereço não pertence a uma de suas sub-redes, o pacote é bloqueado – Implementada em cada roteador da Internet Medidas Preventivas • Filtragem de ingresso: funcionamento A R1 só permite a saída de pacotes cujo endereço de origem pertence à Rede 1 V A vítima pode descobrir a origem do ataque Medidas Preventivas • Desvantagens da filtragem de ingresso – Segurança do destino depende da origem • Beneficiar computadores que estão fora do seu domínio – Implementação global • Do contrário, só alguns roteadores controlam o ataque – Processamento adicional no roteamento • Verificação do endereço IP de origem – Problemas com o IP móvel • Utiliza endereços de origem forjados legitimamente Medidas Preventivas • Alternativa: generalização da filtragem de ingresso – Protocolo para validar endereços de origem • Propagação de informações – Tabela de entrada • Endereços IP associados a uma interface de entrada • Análoga à tabela de roteamento − Endereços de origem ao invés de destino – Desvantagens • Problemas de um protocolo de roteamento − Atualizações periódicas, mudanças de topologia, etc. • Processamento adicional − Consulta a duas tabelas para encaminhar o pacote Medidas Preventivas • Proteção contra ataques por inundação de segmentos TCP SYN – Implementado em roteadores e servidores – Monitorar o número de conexões TCP semi-abertas no servidor • Definir um limiar do número de conexões – Limiar excedido • Novas conexões são bloqueadas ou • Conexões semi-abertas são fechadas – Não há informação sobre os reais atacantes – O serviço ainda pode ser negado • Configuração do limiar Medidas Preventivas • Como manter um computador sempre atualizado? • Como dimensionar os recursos para que um serviço não seja comprometido? • Como interromper um ataque que não se sabe a origem? Medidas Preventivas • Como manter um computador sempre atualizado? • Como dimensionar os recursos para que um serviço não seja comprometido? • Como interromper um ataque que não se sabe a origem? A melhor alternativa é reagir ao ataque! Rastreamento de pacotes IP Rastreamento de Pacotes IP Rastreamento de Pacotes IP • Identificar – A rota percorrida por um pacote – O verdadeiro emissor do pacote • Solução para inibir ataques de negação de serviço – Empregam endereços de origem forjado – Determinar as estações geradoras de tráfego • Atacantes • Refletores e zumbis Æ novo rastreamento a partir destes • Não é uma forma de punição ao atacante – É o primeiro passo Rastreamento de Pacotes IP • Atacantes Ai como nós de borda • Rota de ataque (R5, R2, R1) • Problema do rastreamento perfeito A1 – Determinação exata da rota de ataque A3 A2 R4 R5 • (R5, R2, R1) • Problema do rastreamento aproximado – Rota de ataque real como um sufixo • (R4, R5, R2, R1) • Duas abordagens – Rastreamento sem estado – Rastreamento baseado em auditoria R6 R3 R2 R1 V Rastreamento de Pacotes IP • Rastreamento sem estado – Nenhuma informação sobre o pacote é armazenada – Somente ataques em andamento • Estado da rede no momento do rastreamento • Rastreamento baseado em auditoria – Coletar dados de auditoria durante o ataque • Informações úteis para reconstruir o caminho do pacotes • Armazenamento na vítima ou na infra-estrutura de rede – Rastreamento pode ser feito após o ataque – Rastreamento a partir de um único pacote • Ataque distribuído e por vulnerabilidade Sistemas de Rastreamento Sem Estado Rastreamento Sem Estado • Não armazena informações sobre a origem do pacote – Alta taxa de transmissão dos sistemas atuais – Proteção à privacidade dos usuários • Idéia básica: testar os enlaces para identificar a origem do ataque – Determinar se o tráfego de ataque passa pelo enlace – Reconstrução da rota – Ataques por inundação – Ataque deve estar em andamento Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R7 R8 R11 R10 R3 R6 R4 R1 V Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R7 R8 R11 R10 R3 R6 R4 R1 V Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R7 R8 R11 R10 R3 R1 R6 R4 9 V Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R7 R8 R11 R10 R3 R1 R6 R4 9 V Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R7 R8 R11 R3 R1 R6 R10 9 R4 9 V Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R7 R8 R11 R3 R1 R6 R10 9 R4 9 V Teste de Enlaces • Observação do tráfego enquanto enlaces são inundados – Início no roteador por onde o tráfego chega à vítima • Conhecimento da topologia por parte da vítima • Suposição Æ enlaces intensamente carregados – Variação pode ser imperceptível para ataques distribuídos R2 R9 A R8 R11 9 R7 R3 R1 R6 R10 9 R4 9 V Teste de Enlaces • Desvantagens – Essencialmente manual • Contato com o provedor de serviço (Internet Service Provider – ISP) • Lentidão – Baseado em assinatura • Verificação dos enlaces em busca da assinatura – Processo recursivo • Aplicado nos roteadores identificados como parte da rota de ataque • Pode checar até d roteadores − Onde d = diâmetro da rede Otimizações • Rotear tráfego de vítimas para um roteador central – Teste em até d/2 roteadores • Criação de uma rede lógica em sobreposição (overlay) – Diâmetro da rede lógica • Teste dos enlaces de borda – Identificação do ponto de entrada num domínio • Sistemas sem estado – Otimização e automatização dos testes de enlaces • CenterTrack e inundação controlada CenterTrack • Otimização do rastreamento por teste de enlace – Construção de uma rede lógica de rastreamento • Escopo limitado a um único domínio – Identifica ponto de entrada do tráfego de ataque – Administração centralizada • Pode ser transformada em uma técnica por auditoria – Inclusão de equipamentos capazes de “farejar” o tráfego nos nós da rede de rastreamento Utilização da Rede Lógica • Aumento da complexidade da rede – Aumento nas tarefas administrativas do ISP – Túneis não podem interferir no roteamento dentro do domínio • Número menor de nós com ferramentas de diagnóstico – Nós integrantes da rede lógica (backbone de rastreamento) – Nós da borda O Rastreamento • Rede lógica com todos os nós de borda – Possíveis pontos de entrada dos ataques – Identifica a entrada • Não tenta determinar rota de ataque dentro do domínio • Após a identificação do ataque – Criação de rotas estáticas – Conectar a vítima à rede lógica • Testes de enlace feitos a partir da vítima – Através da rede de rastreamento – Determinação do ponto de entrada do tráfego de ataque • Tráfego pode ser filtrado neste roteador Limitações • Pode não funcionar para ataques de dentro do ISP – Roteador pode não fazer parte da rede lógica • Se a vítima é um dos roteadores da rede de rastreamento – Tentativa de desviar o tráfego através da rede de rastreamento pode gerar loops • Túneis precisam ser autenticados ou podem ser burlados • Atacante pode perceber o rastreamento e parar o ataque – Desvio do tráfego para a rede de rastreamento Inundação Controlada • Automatização dos testes de enlace – Utilização de ferramentas disponíveis nos roteadores • Rede composta por diferentes ISPs – Identificação da rota de ataque inteira – Ausência de administração centralizada Inundação Controlada • Testes de todos os enlaces da rede – Necessita do conhecimento da topologia • Consumo de tempo e recursos – Ferramentas devem estar disponíveis em todos os roteadores • Útil para ataques limitados a um único domínio e para ataques que atravessem mais de um domínio – Pode ser realizada sem contato explícito dos ISPs Teste de Enlace • Teste indireto • Baseado na inundação do enlace testado – Fluxo da inundação controlada concorre por recursos com os pacotes de ataque – Se enlace for rota de ataque o número de pacotes de ataque que chegam na vítima diminui A Ferramenta para Inundação • Serviço de geração de caracteres (chargen) – Gera um fluxo contínuo de pacotes do roteador a quem se conecta ao serviço – Endereços de origem forjados podem ser usados para conter a inundação a um enlace • Utilização do endereço do roteador no outro extremo do enlace – Capaz de inundar enlaces de grande capacidade • Ajudada pelo tráfego legítimo Limitações • Dependência do fluxo de ataque – Fluxos de ataque imprevisíveis podem atrapalhar o teste de enlaces por inundação • Responsável pelo roteamento deve ser capaz de inundar somente o enlace testado • Questões éticas – Uso das ferramentas disponíveis nos roteadores de terceiros – Inundação de enlaces podem prejudicar outros usuários • Rastreamento de uma negação de serviço com outra negação de serviço Sistemas de Rastreamento Baseados em Auditoria Baseado em Auditoria • Coletar informações sobre os pacotes que circulam na rede – Viabilizar a reconstrução do caminho percorrido por pacotes provindos de atacantes – Rastreamento pode ser feito após o ataque – Rastreamento a partir de um único pacote • Dois procedimentos – Coleta de informações • Roteadores notificam a vítima sobre sua presença na rota • Inserção de informação nos pacotes roteados – Reconstrução da rota • Informações recebidas são usadas para reconstruir a rota Baseado em Auditoria • Armazenamento das informações de rastreamento – Estações finais – Infra-estrutura de rede – Híbrido Sistemas de Rastreamento Baseados em Auditoria Armazenamento nas Estações Finais Estações Finais • Dados de auditoria inseridos pela infra-estrutura de rede • A vítima coleta os dados de auditoria – Reconstrução da rota de ataque a partir das informações coletadas • Mecanismos – IP Record Route – Marcação de Pacotes • Determinística • Probabilística – Rastreamento ICMP IP Record Route • Cada roteador adiciona seu endereço IP ao cabeçalho do pacote – Mecanismo mais simples cabeçalho dados A R1 R2 R3 ... V Rn IP Record Route • Cada roteador adiciona seu endereço IP ao cabeçalho do pacote – Mecanismo mais simples R1 A dados R1 R2 R3 ... V Rn IP Record Route • Cada roteador adiciona seu endereço IP ao cabeçalho do pacote – Mecanismo mais simples R2 R1 A R1 dados R2 R3 ... V Rn IP Record Route • Cada roteador adiciona seu endereço IP ao cabeçalho do pacote – Mecanismo mais simples R3 R2 R1 A R1 R2 R3 dados ... V Rn IP Record Route • Cada roteador adiciona seu endereço IP ao cabeçalho do pacote – Mecanismo mais simples Rn A R1 R2 R3 ... R3 R2 R1 ... dados V Rn IP Record Route • Vantagens – Simplicidade – Descoberta da rota de ataque com apenas um pacote • Problemas – Acréscimo significativo de processamento – Aumento do tamanho do pacote • Fragmentação desnecessária do pacote Marcação de Pacotes • Adição de informações no pacote – Informações sobre o caminho percorrido pelo pacote • Utilização de campos já existentes no cabeçalho – Raramente usados – Tamanho fixo • Determinística • Probabilística – Probabilistic Packet Marking – PPM Vantagens • Não exige cooperação entre os provedores de serviço • O tráfego adicional acrescentado não é significativo • Permite a descoberta da rota de ataque mesmo após o seu término • Não representa uma grande sobrecarga para os roteadores Marcação Probabilística de Pacotes • Roteadores inserem informações que o identifiquem no pacote – Com probabilidade p A V Marcação Probabilística de Pacotes • Reconstrução da rota de ataque – A vítima deve armazenar pelo menos um pacote de cada roteador • A probabilidade de chegar um pacote na vítima marcado pelo roteador Ri é α i = p(1 − p) d −i – d → número de roteadores na rota de ataque – d-i → distância do roteador à vítima Marcação Probabilística de Pacotes • Ordem dos roteadores na rota de ataque – Proporcional ao número de pacotes recebidos de cada roteador – Quanto maior o número de pacotes • Mais próximo da vítima estará o roteador Marcação Probabilística de Pacotes • Vantagem – Apenas alguns pacotes são marcados • Desvantagens – Número médio de pacotes coletados para receber pelo menos um pacote marcado • Para d = 15 e p = 0,51 − 300 mil para 95% de garantia – Probabilidade de chegar um pacote marcado somente pelo atacante: d α 0 = (1 − p ) Marcação Probabilística de Pacotes • Quanto maior o valor de p – Menor a probabilidade do pacote chegar marcado pelo atacante • Existe um compromisso – no de pacotes – Capacidade de forjar uma marcação • Número mínimo de pacotes necessários para a reconstrução – p ≈ 0,07 para d = 15 Amostragem de Nó • Inserção de um identificador do nó – Amostragem de nó ou de vértice • Ataque distribuído – Impossibilita a reconstrução da rota – Existirá mais de um roteador com a mesma distância Amostragem de Enlace • Objetivo – Permitir a descoberta da rota em ataques distribuídos – Facilitar a implementação progressiva • Inserção do identificador de dois roteadores consecutivos – Cada pacote contém um enlace • Utilização de um campo para marcar a distância do enlace à vítima – Garante a marcação do pacote pelo nó seguinte Amostragem de Enlace • Procedimento de marcação – Quando chega um pacote • O roteador dever marcar o pacote com probabilidade p • Caso o pacote seja marcado − Inserir seu identificador no campo endereço 1 − Zerar o campo distância • Caso o pacote não seja marcado − Se o campo distância = 0 • Inserir seu identificador no campo endereço 2 − Incrementar o campo distância Amostragem de Enlace • O atacante escolhe o valor inicial dos campos 0 dados A R1 R2 R3 ... V Rn Amostragem de Enlace • R1 decide não marcar – Campo “distância” é igual a zero • Insere seu identificador no campo “Endereço 2” 0 A R1 R1 dados R2 R3 ... V Rn Amostragem de Enlace • R1 decide não marcar – Campo “distância” é igual a zero • Insere seu identificador no campo “Endereço 2” – Incrementa a distância 1 A R1 R1 dados R2 R3 ... V Rn Amostragem de Enlace • R2 decide marcar – Insere seu identificador no campo “Endereço 1” 1 R2 R1 A R1 R2 dados R3 ... V Rn Amostragem de Enlace • R2 decide marcar – Insere seu identificador no campo “Endereço 1” – Zera o campo “distância” 0 R2 R1 A R1 R2 dados R3 ... V Rn Amostragem de Enlace • R3 decide não marcar – Campo “distância” era igual a zero • Insere seu identificador no campo “Endereço 2” 0 R2 R3 A R1 R2 R3 dados ... V Rn Amostragem de Enlace • R3 decide não marcar – Campo “distância” era igual a zero • Insere seu identificador no campo “Endereço 2” – Incrementa a distância 1 R2 R3 A R1 R2 R3 dados ... V Rn Amostragem de Enlace • Todos os roteadores após R3 decidem não marcar o pacote, inclusive Rn – Apenas incrementam a distância n-2 R2 A R1 R2 R3 ... R3 dados V Rn A Identificação do Roteador • A marcação de pacotes baseia-se na inserção de informações no cabeçalho do pacote • Proposta mais simples – Inserção do endereço IP – Necessidade de 72 bits no cabeçalho do endereço IP • O acréscimo de informações ao cabeçalho IP – Incompatibilidade com versões anteriores • Solução – Utilizar campos já existentes no cabeçalho IP • Raramente utilizados A Identificação do Roteador • Campo do cabeçalho IP a ser utilizado – Campo de identificador de fragmento – 16 bits Identification Propostas para a Identificação do Roteador • Intercalar o endereço IP com o hash do próprio endereço • Dividir em k fragmentos Propostas para a Identificação do Roteador • Ao decidir marcar um pacote, o roteador Ri deve – Inserir um fragmento aleatório n – Zerar o campo distância • O roteador seguinte Ri+1 deve – Fazer um XOR entre o seu fragmento o do roteador anterior – Inserir o resultado no campo fragmento do cabeçalho Reconstrução da Rota • A vítima terá nk fragmentos com a mesma distância pertencentes a n roteadores diferentes • A vítima terá Fragmentos com distância = r – Eliminar os fragmentos de mesma distância repetidos – Testar todas as combinações possíveis – Checar com o hash 1 2 3 4 5 6 7 8 Hash diferente 1 2 3 4 5 6 7 8 Hash diferente 1 2 3 4 5 6 7 8 Hash diferente 1 2 3 4 5 6 7 8 Hash OK 1 2 3 4 5 6 7 8 Hash diferente Reconstrução da Rota • Problemas – Dependendo do número de atacantes o processamento pode se tornar inviável • 25 atacantes pode levar dias executando a reconstrução da rota – Falso positivo • Probabilidade da função hash retornar OK para um endereço − Inexistente − Não pertencente a rota de ataque • Com 25 atacantes já pode-se chegar a milhares de falsos positivos Identificação dos Roteadores • Outra proposta – Inserção do hash do endereço IP (E) – Não precisa montar os fragmentos – Usa duas funções hash h e h’ • Identificação do sentido Reconstrução da Rota • A vítima deverá ter conhecimento da topologia da Internet – Grafo em árvore cuja folha é a própria vítima • Fn representa os filhos do roteador n • Sn representa os roteadores identificados à distância n • A vítima terá: – Comparar o valor da Função hash do endereços de seus vizinhos (Fv) • Pacotes com distância 0 • Acrescentar os vizinhos cuja comparação foi positiva em S0 – Comparar h’(S0) XOR h’(F0) com os pacotes de distância 1 • Acrescentar os vizinhos cuja comparação foi positiva em S1 Reconstrução da Rota • Falso positivo – Dois roteadores irmãos possuem o mesmo hash do endereço – Probabilidade disto ocorrer = 2-11 • Existe uma proposta para diminuir a probabilidade de falso positivo – Utilização de um conjunto de funções hash ao invés de apenas uma – É necessário um campo de identificador hash no cabeçalho – Falso positivo • As k funções hash do endereço devem coincidir Amostragem de Enlace • Todos as proposta anteriores se baseiam na PPM – amostragem de enlace • Principal problema da PPM – amostragem de enlaces – O atacante pode forjar marcações • Caso nenhum roteador do caminho resolva marcar o pacote • Apenas enlaces antes do primeiro roteador da rota de ataque A V Nova Marcação de Pacotes • Marcação de pacotes apenas pelos roteadores de borda – Os roteadores de borda marcam todos os pacotes – São utilizados 17 bits do cabeçalho IP • 16 do campo Packet ID • 1 do campo reservado flag – 16 bits para uma das metades do endereço IP – 1 bit para identificar qual é a metade – A metade que será inserida no pacote é escolhida aleatoriamente – Com apenas 7 pacotes a vítima tem 99% de chance de obter o endereço completo do roteador de borda Marcação de Pacotes Probabilística Dinâmica • Os nós marcam os pacotes com uma probabilidade pi • pi depende da distância do roteador Ri a vítima – pi =1/i • Se a distância i for correta – A probabilidade do atacante forjar uma marcação = 0 • A distância é baseada no valor do TTL (Time to Live) do cabeçalho IP • O TTL pode ser forjado pelo atacante • É proposta a utilização de um valor de TTL máximo de 64 para todos os roteadores – Os valores de TTL superiores à 64 serão sobrescritos • A probabilidade de falso positivo pode chegar a 0,36 Rastreamento ICMP • Roteadores probabilisticamente escolhem um pacote • Enviam para o endereço de destino um pacote ICMP com – Informações sobre si mesmos – Informações sobre os seus roteadores vizinhos – O próprio pacote amostrado • Após o recebimento de uma quantidade suficiente de pacotes do mesmo fluxo – A vítima usa estes dados para reconstruir a rota de ataque • As informações de rastreamento são enviadas em pacotes separados Rastreamento ICMP • Autenticação das mensagens – Necessária para evitar mensagens forjadas pelo atacante – Adoção de uma infra-estrutura de chave pública se torna inevitável Sistemas de Rastreamento Baseados em Auditoria Armazenamento na Infra-estrutura da Rede Infra-Estrutura de Rede • As informações de auditoria são armazenadas nos roteadores • Reconstrução da rota de ataque – A vítima inicia o processo – Os roteadores são responsáveis por determinar a rota Infra-Estrutura de Rede • Mecanismo mais simples – Cada roteador armazena todos os pacotes roteados – Reconstrução da rota • A vítima envia o pacote de ataque para todos seus vizinhos • Cada roteador verifica se o pacote está entre os que foram armazenados • O roteador que identifica o pacote − Repassa para todos os seus vizinhos exceto para o que o enviou – Desvantagens • Volume de dados armazenados inviável • Mineração de dados • Problemas de privacidade Infra-Estrutura de Rede • Otimizações – Diminuir a quantidade de informação armazenada em cada roteador • Armazenamento de partes do pacote • Armazenamento do hash de alguns campos do pacote − Ainda assim um volume de dados inviável • Utilização do Filtro de Bloom – Armazenar informações sobre os pacotes Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 0 h1(•) 0 h2(•) . . . hk(•) 0 0 0 0 0 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 0 s1 h1(•) 0 h2(•) . . . hk(•) 0 0 0 0 0 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 0 s1 h1(•) 0 h2(•) . . . hk(•) 0 0 0 0 0 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 0 s1 h1(•) 0 h2(•) . . . hk(•) 0 0 0 0 0 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 1 0 h1(•) s1 h2(•) . . . hk(•) 0 1 0 0 0 0 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 1 0 h1(•) s21 h2(•) . . . hk(•) 0 1 0 0 0 0 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 1 0 h1(•) s21 h2(•) . . . hk(•) 0 1 0 0 0 0 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 0 1 0 h1(•) s21 h2(•) . . . hk(•) 0 1 0 0 0 0 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s21 h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s21’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s21’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s21’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s21’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 9 9 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 8 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s4321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s4321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s4321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 m bits Filtro de Bloom • Estrutura de dados para representar um grupo • Suporte a testes de pertinência • Armazenamento eficiente – Custo de falsos positivos 1 0 1 0 h1(•) s4321’ h2(•) . . . hk(•) 0 1 0 0 0 0 1 0 1 9 9 m bits Falso positivo Filtro de Bloom e o Rastreamento • Cada roteador inicializa um Filtro de Bloom – Todos os bits em zero • Para cada pacote que passar – Inserir no Filtro de Bloom • Utilização de k funções hash • Conforme os pacotes passam – O Filtro vai sendo preenchido com 1’s Filtro de Bloom e o Rastreamento • Reconstrução da rota – A vítima envia o pacote de ataque para seus roteadores vizinhos – Cada um deve verificar em seu Filtro de Bloom se o pacote passou por ele • Em caso positivo − Repassa o pacote para todos os seus vizinhos exceto para o que o enviou Falsos Positivos • Reconhecimento de um pacote que não passou pelo roteador R8 falsos positivos R4 R7 A9 A1 R5 R6 R3 R2 R1 V Problemas • Probabilidade de ocorrer um falso positivo (Fp) – Proporcional à fração de 1’s no Filtro – Se o Filtro estiver todo em 1 • Todos os roteadores reconhecerão o pacote • Fp = 1 • O Filtro deve ser trocado com uma certa freqüência – Limitar a ocorrência de falsos positivos • Dependendo da quantidade de tráfego que passa pelo roteador – Grande volume de dados armazenados Vantagens • Reconstrução da rota de ataque com apenas um pacote • Rastreamento pode ser feito após o término do ataque Sistemas de Rastreamento Baseados em Auditoria Armazenamento Híbrido Armazenamento Híbrido • Consiste em armazenar informações – Nas estações finais – Na infra-estrutura de rede • Proposta de [Choi e Dai, ISPAN’04] – Marcação de pacotes • Os roteadores marcam no pacote o enlace pelo qual o pacote entrou – Armazenamento de informações nos roteadores • Quando acaba o espaço no cabeçalho do pacote Sistema de Choi e Dai • Marcação de pacotes – Campo de 32 bits do cabeçalho IP – 1 bit para o save flag (SF) – 31 bits para armazenar os enlaces • 1 bit de identificador de fim de enlaces (FS) • 30 bits para os enlaces Sistema de Choi e Dai • Todos os pacotes são marcados com o enlace – Por onde o pacote chegou • Identificação dos enlaces – Cada roteador possui uma tabela • Todos os enlaces • A quantidade de pacotes que passam por cada enlace – Utilização do código de Huffman • Baseado na informação da quantidade de pacotes • Enlaces por onde passam muitos pacotes − São representados com menos bits − Em média, 3,15 vizinhos, 2 bits para a representação Sistema de Choi e Dai • Quando o espaço para enlaces fica cheio – O roteador • cria um identificador do pacote (ID) − Hash do cabeçalho + uma parte dos dados • armazena todo o campo enlace associado ao ID • reinicia o campo enlace do pacote • atualiza campo SF para 1 − houve o armazenamento de informações em algum roteador Sistema de Choi e Dai • O atacante escolhe o valor inicial dos campos SF FS 0 1 0 0 0 0 0 0 0 0 A 1 R1 R2 01 001 ... R3 0 0 ... dados V Rn Sistema de Choi e Dai • Roteador R1 insere o enlace “1” SF 0 1 1 0 0 0 0 0 0 0 A 1 R1 R2 01 001 ... R3 0 0 ... 01 dados V Rn Sistema de Choi e Dai • Roteador R2 insere o enlace “01” SF 0 1 0 1 1 0 0 0 0 0 A 1 R1 R2 01 001 ... R3 0 0 ... 01 dados V Rn Sistema de Choi e Dai • Roteador R3 insere o enlace “001” SF 0 1 0 1 0 0 1 1 0 0 A 1 R1 R2 01 001 ... R3 0 0 ... 01 dados V Rn Sistema de Choi e Dai • Roteador Rn percebe que não há mais espaço SF 0 1 0 1 0 0 1 1 0 0 A 1 R1 R2 01 001 ... R3 1 0 ... 01 dados V Rn Sistema de Choi e Dai • Roteador Rn percebe que não há mais espaço – Cria um identificador para o pacote SF 0 1 0 1 0 0 1 1 0 0 A 1 R1 R2 001 01 Packet ID ... R3 1 0 ... 01 dados V Rn Sistema de Choi e Dai • Roteador Rn percebe que não há mais espaço – Armazena o campo enlace SF 0 1 0 1 0 0 1 1 0 0 A 1 R1 R2 01 001 ... R3 1 0 ... 01 dados V Rn armazenar Packet ID 1 0 1 0 0 1 1 0 0 ... 1 0 Sistema de Choi e Dai • Roteador Rn percebe que não há mais espaço – Atualiza o campo SF com 1 SF 1 1 0 1 0 0 1 1 0 0 A 1 R1 R2 01 001 ... R3 1 0 ... 01 dados V Rn armazenar Packet ID 1 0 1 0 0 1 1 0 0 ... 1 0 Sistema de Choi e Dai • Roteador Rn percebe que não há mais espaço – Zera o campo enlace e acrescenta o seu próprio enlace SF 1 0 1 1 0 0 0 0 0 0 A 1 R1 R2 01 001 ... R3 0 0 ... 01 dados V Rn armazenar Packet ID 1 0 1 0 0 1 1 0 0 ... 1 0 Sistema de Choi e Dai • Reconstrução da rota – Começa com o roteador conectado à vítima – Verifica-se de qual enlace o pacote veio • Através do campo “enlace” – O enlace é retirado do campo “enlace” – O pacote é enviado para o roteador previamente identificado Sistema de Choi e Dai • Apenas ataques com rotas grandes serão armazenadas – Se a média de vizinhos na Internet = 3,15 • Dois bits em média para representar – Pode-se armazenar no pacote 15 rotas • A grande maioria das rotas na Internet possuem menos de 30 roteadores – A grande maioria dos ataques seriam armazenados apenas em um roteador Um Novo Sistema de Rastreamento de Pacotes IP Sistema Proposto • Baseado na abordagem de marcação de pacotes – Sem estado na infra-estrutura de rede • Filtro de Bloom integrado em cada pacote – – – – Roteadores inserem o endereço IP no filtro Pouco processamento adicional Redução do espaço necessário em cada pacote Tamanho fixo evita fragmentação e processamento Sistema Proposto • Procedimento de marcação – Realizado pouco antes do encaminhamento do pacote – Endereço IP da interface de saída inserido no filtro do pacote – Atualização com uma simples operação OU bit-a-bit R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de marcação – Realizado pouco antes do encaminhamento do pacote – Endereço IP da interface de saída inserido no filtro do pacote – Atualização com uma simples operação OU bit-a-bit R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de marcação – Realizado pouco antes do encaminhamento do pacote – Endereço IP da interface de saída inserido no filtro do pacote – Atualização com uma simples operação OU bit-a-bit R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de marcação – Realizado pouco antes do encaminhamento do pacote – Endereço IP da interface de saída inserido no filtro do pacote – Atualização com uma simples operação OU bit-a-bit R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de marcação – Realizado pouco antes do encaminhamento do pacote – Endereço IP da interface de saída inserido no filtro do pacote – Atualização com uma simples operação OU bit-a-bit R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de marcação – Realizado pouco antes do encaminhamento do pacote – Endereço IP da interface de saída inserido no filtro do pacote – Atualização com uma simples operação OU bit-a-bit R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 190 0 1 0 0 1 1 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 190 0 1 0 0 1 1 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo R5 A R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo 9 R5 A R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo 190 0 1 0 0 1 1 R5 A R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo 9 R5 A R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo 9 A 9 R5 R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo 1 0 0 1 0 0 19 1 A 9 R5 R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Procedimento de reconstrução – – – – Vítima possui um filtro com os roteadores da rota de ataque Verificação da presença de roteadores vizinhos no filtro Aquele reconhecido é o próximo roteador Procedimento recursivo 9 A 9 R5 R2 R4 R7 R6 9 9 R1 R3 V Sistema Proposto • Vantagens – Rastreamento realizado com um único pacote – Nenhuma informação armazenada na rede – Baixo processamento adicional por pacote • Desvantagens – Falsos positivos decorrentes da adoção do Filtro de Bloom – Fácil burlar o sistema • Atacante preenche os bits do filtro com 1 • Probabilidade de 100% de falso positivo O Problema A R26 R27 R19 R18 R17 R20 R11 R9 R10 R22 R21 R13 R12 R6 R5 R15 R7 R2 R4 R24 R14 R1 R8 R3 V R29 R28 R23 R16 R25 O Problema A R26 R27 R19 R18 R17 R20 R11 R9 R10 R22 R21 R13 R12 R6 R5 R15 R7 R2 R4 R24 R14 R1 R8 R3 V R29 R28 R23 R16 R25 O Problema A R26 R27 R19 R18 R17 R20 R11 R9 R10 R22 R21 R13 R12 R6 R15 R5 R7 R2 R4 R1 R8 R3 9 9 R24 R14 V 9 R29 R28 R23 R16 R25 O Problema A R26 R27 R19 R18 R17 R20 R11 R9 R10 R22 R21 R13 R12 R6 R15 R5 R7 R2 R4 R1 R8 R3 9 9 R24 R14 V 9 R29 R28 R23 R16 R25 O Problema A R26 R27 R19 R18 R17 R20 R21 R5 9 9 9 R7 9 R2 R1 R3 9 9 R24 R15 V 9 R8 9 R29 R28 R23 R14 R6 R10 R4 R13 R12 R11 R9 R22 R16 R25 O Problema A R26 R27 R19 R18 R17 R20 R21 R5 9 9 9 R7 9 R2 R1 R3 9 9 R24 R15 V 9 R8 9 R29 R28 R23 R14 R6 R10 R4 R13 R12 R11 R9 R22 R16 R25 O Problema A R26 R27 R19 R18 R17 R20 R21 R12 R11 9 R9 R10 9 9 9 9 R13 99 9 R6 R5 9 R4 R22 R14 9 R1 V 9 9 R3 9 9 R16 R15 R2 9 R24 9 R7 R8 9 R29 R28 R23 9 R25 O Problema A R26 R27 R19 R18 R17 R20 R21 R12 R11 9 R9 R10 9 9 9 9 R13 99 9 R6 R5 9 R4 R22 R14 9 R1 V 9 9 R3 9 9 R16 R15 R2 9 R24 9 R7 R8 9 R29 R28 R23 9 R25 O Problema A R26 R17 9 R27 R18 9 R19 R20 9 9 R11 9 R9 9 R12 9 R10 9 9 9 9 9 R13 99 9 R6 V 9 9 R3 9 9 R16 R15 9 R7 R1 9 9 9 R2 9 9 R24 R14 R8 9 R29 R28 R23 9 R5 9 R4 R21 R22 9 R25 9 O Problema A R26 R17 9 R27 R18 9 R19 R20 9 9 R11 9 R9 9 R12 9 R10 9 9 9 9 9 R13 99 9 R6 V 9 9 R3 9 9 R16 R15 9 R7 R1 9 9 9 R2 9 9 R24 R14 R8 9 R29 R28 R23 9 R5 9 R4 R21 R22 9 R25 9 O Problema A R26 R27 9 9 R17 9 R18 9 R19 R20 9 9 R11 9 R9 9 R12 9 R10 9 9 9 9 9 R13 99 9 R6 R14 V R3 9 R16 R15 9 9 9 9 9 9 R2 9 9 R24 9 R7 R1 R28 R23 9 R5 9 R4 R21 R22 R8 9 9 R29 9 R25 9 9 Filtro de Bloom Generalizado 0 1 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 0 1 1 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s1 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 0 1 1 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s1 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 0 1 1 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s1 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 0 1 1 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s1 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 0 1 1 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s1 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21 g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s21’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 9 9 m bits Filtro de Bloom Generalizado 0 1 s12’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s12’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s12’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s12’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 Falso negativo 1 0 Invertido por s2 1 1 0 0 0 1 0 0 1 8 m bits Filtro de Bloom Generalizado 0 1 s312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 8 m bits Filtro de Bloom Generalizado 0 1 s4312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s4312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s4312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 m bits Filtro de Bloom Generalizado 0 1 s4312’ g1(•) . . . gk0(•) h1(•) . . . hk1(•) 0 1 0 1 1 0 0 0 1 0 0 1 9 9 m bits Falso positivo Resultados Resultados Filtro de Bloom Filtro de Bloom Generalizado Resultados k0 k0 k1 Fp ≈ k + k k + k 0 1 0 1 k1 Resultados 75% Resultados Atacante Vítima Resultados Filtro de Bloom Generalizado Atacante Filtro de Bloom Vítima Resultados Resultados Filtro de Bloom Generalizado Filtro de Bloom Resultados Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota R5 A R2 R4 R7 R6 R1 R3 V Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota R5 A R2 R4 R7 R6 R1 R3 V Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota R5 A R2 R4 R7 R6 9 R1 R3 V Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota R5 A R2 R4 R7 R6 9 R1 R3 V Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota R5 A R2 R4 R7 R6 9 9 R1 R3 V Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota R5 A R2 R4 R7 R6 9 9 R1 R3 V Resultados • Probabilidade de falso positivo – Depende pouco da condição inicial do filtro – Limitante superior • Probabilidade de falso negativo – Limitante superior – Prejudicial à reconstrução da rota Falso negativo 8 R5 A R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A 1 0 0 1 0 0 1 1 FBG 0 0 0 0 0 0 0 0 m0 0 0 0 0 0 0 0 0 m1 9 R2 R4 R7 R6 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 1 0 0 1 0 0 1 1 FBG 0 0 0 0 1 0 0 0 m0 0 0 0 1 0 0 0 0 m1 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados R5 A R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados 9 R5 A R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados 1 0 0 1 0 0 1 1 FBG 0 0 1 0 1 0 0 0 m0 090 0 1 0 0 0 1 m1 R5 A R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados 9 R5 A R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados 9 A 9 R5 R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados FBG 1 0 0 1 0 0 1 1 m0 0 0 1 0 1 1 0 0 m1 0 0 1 1 0 0 0 9 1 A 9 R5 R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Bits invertidos por roteadores seguintes • Informações adicionais enviadas durante a reconstrução – Filtro de Bloom Generalizado – Vetores indicando bits marcados 9 A 9 R5 R2 R4 R7 R6 9 9 R1 R3 V Reconstrução Aprimorada • Elimina os falsos negativos – Bits marcados identificados – Rota de ataque real sempre está no grafo reconstruído • Aumenta a probabilidade de falso positivo – Fração de bits marcados em m0 e m1 aumenta a cada salto – De acordo com simulações, não é grave Simulação • Simulador desenvolvido em C++ • Gerador de topologia nem – – – – Amostragem de um mapa real da Internet Extrai um subgrafo, mantendo suas propriedades Grau de vizinhos, distância média e diâmetro da rede Mapa de 10.000 roteadores • Atacante e rota escolhidos aleatoriamente • Filtro marcado pelos roteadores da rota escolhida • Procedimento de reconstrução iniciado – Procedimento de reconstrução padrão – Procedimento aprimorado de reconstrução Simulação – Padrão Simulação – Aprimorado Simulação – Aprimorado Conclusões • Ataques de negação de serviço – – – – Serviços oferecidos pela vítima inacessíveis Consideráveis prejuízos financeiros Conduzidos com pacotes com endereço de origem forjados Sem maneiras de localizar os atacantes nem evitar ataques • Rastreamento de pacotes IP surge como solução – Identificação do(s) atacante(s) – Adoção de contramedidas – Rastreamento a partir de um único pacote • Armazenamento na infra-estrutura de rede Conclusões • Nova abordagem para o rastreamento – – – – Rastreamento a partir de um único pacote Sem armazenamento na infra-estrutura da rede Pacotes marcados de acordo com o endereço do roteador Filtro de Bloom para armazenar os roteadores atravessados • Tamanho fixo evita fragmentações • Pouco processamento adicional – Generalização proposta para evitar evasão do sistema Conclusões • Redução de pelo menos 75% nos falsos positivos – Filtro convencional • Probabilidade de falso positivo máxima de 100% – Filtro generalizado • Probabilidade de falso positivo máxima de 25% • Introdução de falsos negativos – Limitante superior • Falsos positivos Æ controlado por k0 e k1 • Falsos negativos Æ controlado por k0, k1 e m/n Conclusões • Procedimento aprimorado de reconstrução de rota – Informações adicionais passadas durante a reconstrução – Bits marcados são identificados – Possível identificar bits invertidos • Desenvolvimento de um simulador – Baseado em uma topologia real da Internet – Filtro marcado por roteadores – Procedimentos de reconstrução Conclusões • Procedimento padrão limitado a rotas pequenas – Somente 7 roteadores rastreados em uma rota de 15 • • • • Procedimento aprimorado elimina os falsos negativos Pequeno aumento nos falsos positivos Compromisso entre funções hash e número de atacantes Relação entre o tamanho da rota e o tamanho do filtro – Maiores rotas exigem maiores filtros • Rota com 15 roteadores, filtro de 256 bits – Média de 1,7 possíveis atacantes Conclusões • Economia de espaço significativa – Para 15 roteadores, necessários 15 x 32 bits = 480 bits – Filtro de 256 bits é suficiente – Economia de 47% espaço no cabeçalho • Trabalhos futuros – Compressão do Filtro de Bloom Generalizado – Estudo de outros procedimentos de reconstrução Considerações Finais Conclusões • Ataques de negação de serviço – – – – Serviços oferecidos pela vítima inacessíveis Consideráveis prejuízos financeiros Conduzidos com pacotes com endereço de origem forjados Sem maneiras de localizar os atacantes nem evitar ataques • Rastreamento de pacotes IP surge como solução – Identificação do(s) atacante(s) – Adoção de contramedidas – Rastreamento a partir de um único pacote • Armazenamento na infra-estrutura de rede Discussão • Infra-estrutura global x responsabilidade local – Complexidade • Armazenamento – Infra-estrutura de rede x estações finais • Cabeçalho IP – Tamanho das informações adicionadas • Formas de punição – Como usar as informações do rastreamento? Grupos de Pesquisa • University of California, San Diego - UCSD – SYSNET - Systems and networking group http://www.cs.ucsd.edu/groups/sysnet/ – Alex C. Snoeren - http://www.cse.ucsd.edu/~snoeren • Uso de Filtros de Bloom para o rastreamento • Honeyfarms para combater pragas digitais – Stefan Savage - http://www.cse.ucsd.edu/~savage • Marcação probabilística de pacotes • Impedir a disseminação de vermes Grupos de Pesquisa • Carnegie Mellon University – CERT Coordination Center - http://www.cert.org/ • Vulnerabilidades • Incidentes • Medidas reativas – Dawn Song - http://www.ece.cmu.edu/~dawnsong • Detecção de intrusão • Rastreamento rápido de pacotes • Marcação de pacotes Grupos de Pesquisa • University of California, Los Angeles - UCLA – Peter Reiher - http://lasr.cs.ucla.edu/reiher/ • Classificação e mecanismos de proteção contra ataques de negação de serviço na Internet Referências • Mensagens não solicitadas (spams) [1a] FTC (2005). The CAN-SPAM Act: Requirements for Commercial Emailers. www.ftc.gov/bcp/conline/pubs/buspubs/canspam.htm. [2a] O Globo Online (2005). Brasil é 5o maior receptor de spam; spywares representam 22% das infecções. http://oglobo.globo.com/online/plantao/169450846.asp. [3a] Grupo Brasil AntiSPAM (2005). Código de Ética AntiSPAM e Melhores Práticas de Uso de Mensagens Eletrônicas. http://brasilantispam.org/main/codigo.htm. Referências • Mensagens não solicitadas (spams) [4a] Holmes, N. (2005). In Defense of Spam. IEEE Computer Magazine, 38(4):86–88. [5a] Hormel Foods (2000). Your Use of Our Trademark SPAM on Your “Page-O-SPAM” Website. http://www.rsi.com/spam. [6a] IBM Report (2005). Phishing attacks in May jumped more than 200 percent. Relatório técnico, IBM. [7a] Leech, M. (1996). DefUsername/Password Authentication for SOCKSv5. RFC 1929. Referências • Mensagens não solicitadas (spams) [8a] Sahami, M., Dumais, S., Heckerman, D. e Horvitz, E. (1998). A bayesian approach to filtering junk E-mail. Em Learning for Text Categorization: Papers from the 1998 Workshop, Madison, WI, EUA. AAAI Technical Report WS-98-05. [9a] SpamAssassin (2005). The apache SpamAssassin project. http://spamassassin.apache.org/. [10a] Spammer-X, Posluns, J. e Sjouwerman, S. (2004). Inside the SPAM Cartel: Trade Secrets from the Dark Side. Syngress Publishing, 1a edição. Referências • Negação de serviço [1b] CERT (1996). CERT Advisory CA-1996-26 Denial-of-Service Attack via ping. http://www.cert.org/advisories/CA-1996-26.html. [2b] CERT (1997). CERT Advisory CA-1997-28 IP Denial-of-Service Attacks. http://www.cert.org/advisories/CA-1997-28.html. [3b] CERT (1998). CERT Advisory CA-1998-01 Smurf IP Denial-ofService Attacks. http://www.cert.org/advisories/CA-1998-01.html. Referências • Negação de serviço [4b] Cisco (2003). Cisco Security Advisory: Cisco IOS Interface Blocked by IPv4 Packets. Cisco Systems, Inc. http://www.cisco.com/warp/public/707/cisco-sa20030717-blocked.shtml. [5b] CNN.com (2000). Denial of service hackers take on new targets. http://www.cnn.com/2000/TECH/computing/02/09/denial .of.service.03. [6b] Dittrich, D. (1999a). The DoS Project’s ‘trinoo’ distributed denial of service attack tool. http://staff.washington.edu/dittrich/misc/trinoo.an alysis.txt. Referências • Negação de serviço [7b] Dittrich, D. (1999b). The ‘stacheldraht’ distributed denial of service attack tool. http://staff.washington.edu/dittrich/misc/stacheldr aht.analysis.txt. [8b] Dittrich, D. (1999c). The ‘Tribe Flood Network’ distributed denial of service attack tool. http://staff.washington.edu/dittrich/misc/tfn.analy sis.txt. [9b] Garber, L. (2000). Denial-of-Service Attacks Rip the Internet. IEEE Computer, 4(33):12–17. Referências • Negação de serviço [10b] Gibson, S. (2001). The Strange Tale of the Attacks Against GRC.COM. Gibson Research Corporation. http://www.grc.com/dos/grcdos.htm. [11b] Gont, F. (2004). ICMP Attacks Against TCP. Internet Draft: draft-gonttcpm-icmp-attacks-03.txt. [12b] Gordon, L. A., Loeb, M. P., Lucyshyn,W. e Richardson, R. (2005). 2005 CSI/FBI Computer Crime and Security Survey. [13b] Gray, P. e Fried, I. (2003). Al-Jazeera suffers DoS attack. ZDNet UK. http://news.zdnet.co.uk/business/0,39020645,2132585 ,00.htm. Referências • Negação de serviço [14b] Microsoft (2002). Stop 0A in Tcpip.sys When Receiving Out Of Band (OOB) Data. Microsoft Corporation. http://support.microsoft.com/kb/q143478. [15b] Mirkovic, J., Dietrich, S., Dittrich, D. e Reiher, P. (2004). Internet Denial of Service: Attack and Defense Mechanisms. Prentice Hall PTR, 1a edição. [16b] Mirkovic, J. e Reiher, P. (2004). A Taxonomy of DDoS Attack and DDoS Defense Mechanisms. ACM SIGCOMM Computer Communications Review, 34(2):39–53. Referências • Negação de serviço [17b] Moore, D., Voelker, G. e Savage, S. (2001). Inferring Internet Denial of Service Activity. Em Proceedings of the 2001 USENIX Security Symposium, Washington, DC, EUA. [18b] Reuters (2004). Scotland Yard and the case of the rent-azombies. ZDNet.com. http://news.zdnet.com/2100-1009_22-5260154.html. [19b] Schuba, C. L., Krsul, I. V., Kuhn, M. G., Spafford, E. H., Sundaram, A. e Zamboni, D. (1997). Analysis of a Denial of Service Attack on TCP. Em Proceedings of the 1997 IEEE Symposium on Security and Privacy, páginas 208–223, Oakland, CA, EUA. Referências • Negação de serviço [20b] Shachtman, N. (2003). Porn Purveyors Getting Squeezed. Wired News. http://wired-vig.wired.com/news/print/0,1294,59574,00.html. [21b] US-CERT (2005). Vulnerability Note VU#222750: TCP/IP Implementations Do Not Adequately Validate ICMP Error Messages. http://www.kb.cert.org/vuls/id/222750. [22c] Wagner, J. (2002). Dealing With Massive Attack: DNS Protection. Internetnews.com. http://www.internetnews.com/devnews/article.php/1487331. [23d] Watson, P. A. (2004). Slipping in the Window: TCP Reset Attacks. Em 2004 CanSecWest Conference, Vancouver, Canadá. Referências • Protocolo IP [1c] Jacobson, V. (1990). Compressing TCP/IP Headers for Low-Speed Serial Links. RFC 1144. [2c] Perkins, C. E. (2002). IP Mobility Support for IPv4. RFC 3220. [3c] Postel, J. (1981). Internet Protocol. RFC 791. [4c] Postel, J. (1983). Character Generator Protocol. RFC 864. Referências • Filtro de Bloom [1d] Bloom, B. H. (1970). Space/Time Trade-offs in Hash Coding with Allowable Errors. Communications of the ACM, 7(13):442–426. [2d] Broder, A. e Mitzenmacher, M. (2003). Network Applications of Bloom Filters: A Survey. Internet Mathematics, 1(4):485–509. [3d] Mitzenmacher, M. (2002). Compressed Bloom Filters. IEEE/ACM Transactions on Networking, 10(5):604–612. Referências • Rastreamento de pacotes IP [1e] Aljifri, H., Smets, M. e Pons, A. (2003). IP Traceback using Header Compression. Computers & Security, 22(2):136–151. [2e] Bai, C., Feng, G. eWang, G. (2004). Algebraic Geometric Code Based IP Traceback. Em IEEE International Conference on Performance, Computing, and Communications, páginas 49–56, Phoenix, AZ, EUA. [3e] Belenky, A. e Ansari, N. (2003a). Accommodating Fragmentation in Deterministic Packet Marking for IP Traceback. Em IEEE GLOBECOM 2003 Conference, páginas 1374–1378, San Francisco, CA, EUA. Referências • Rastreamento de pacotes IP [4e] Belenky, A. e Ansari, N. (2003b). IP Traceback With Deterministic Packet Marking. IEEE Communications Letters, 7(4):162–164. [5e] Bellovin, S. M., Leech, M. D. e Taylor, T. (2003). ICMP Traceback Messages. Internet Draft: draft-ietf-itrace-04.txt. [6e] Burch, H. e Cheswick, B. (2000). Tracing Anonymous Packets to their Approximate Source. Em USENIX LISA’00, páginas 319–327, Nova Orleans, LA, EUA. [7e] Choi, K. H. e Dai, H. K. (2004). A Marking Scheme Using Huffman Codes for IP Traceback. Em 7th International Symposium on Parallel Architectures, Algorithms and Networks - ISPAN’04, páginas 421–428, Hong Kong, China. Referências • Rastreamento de pacotes IP [8e] Dean, D., Franklin, M. e Stubblefield, A. (2002). An Algebraic Approach to IP Traceback. ACM Transactions on Information and System Security, 5(2):119–137. [9e] Ferguson, P. e Senie, D. (2000). Network Ingress Filtering: Defeating Denial of Service Attacks which employ IP Source Address Spoofing. RFC 2827. [10e] Goodrich, M. T. (2002). Efficient Packet Marking for LargeScale IP Traceback. Em 9th ACM Conference on Computer and Communications Security - CCS’02, páginas 117–126, Washington, DC, EUA. Referências • Rastreamento de pacotes IP [11e] Hilgenstieler, E. e Duarte Jr., E. P. (2004). Uma Arquitetura para Rastreamento de Pacotes na Internet. Em IV Workshop em Segurança de Sistemas Computacionais - WSeg 2004, Gramado, RS, Brasil. [12e] Lee, T.-H., Wu, W.-K. e Huang, T.-Y. W. (2004). Scalable Packet Digesting Schemes for IP Traceback. Em IEEE International Conference on Communications ICC’04, páginas 1008–1013, Paris, França. [13e] Li, J., Mirkovic, J., Wang, M., Reiher, P. e Zhang, L. (2002). SAVE: Source Address Validity Enforcement Protocol. Em Proceedings of the IEEE INFOCOM 2002 Conference, páginas 1557–1566, Nova Iorque, NY, EUA. Referências • Rastreamento de pacotes IP [14e] Li, J., Sung, M., Xu, J. e Li, L. (2004). Large-Scale IP Traceback in High-Speed Internet: Practical Techniques and Theoretical Foundation. Em Proceedings of the 25th IEEE Symposium on Security and Privacy, Oakland, CA, EUA. [15e] Liu, J., Lee, Z.-J. e Chung, Y.-C. (2003). Efficient Dynamic Probabilistic Packet Marking for IP Traceback. Em IEEE International Conference on Networks - ICON’03, páginas 475–480, Sydney, Austrália. [16e] Mankin, A., Massey, D., Wu, C.-L., Wu, S. F. e Zhang, L. (2001). On Design and Evaluation of “Intention-Driven” ICMP Traceback. Em Proceedings of the IEEE ICCCN 2001 Conference, Scottsdale, AZ, EUA. Referências • Rastreamento de pacotes IP [17e] Park, K. e Lee, H. (2001). On the Effectiveness of Probabilistic Packet Marking for IP Traceback under Denial of Service Attack. Em Proceedings of the IEEE INFOCOM 2001 Conference, Anchorage, AK, EUA. [18e] Savage, S., Wetherall, D., Karlin, A. e Anderson, T. (2001). Network Support for IP Traceback. IEEE/ACM Transactions on Networking, 9(3):226– 237. [19e] Snoeren, A. C., Partridge, C., Sanchez, L. A., Jones, C. E., Tchakountio, F., Kent, S. T. e Strayer, W. T. (2001). Hash-Based IP Traceback. Em Proceedings of the ACM SIGCOMM’01 Conference, páginas 3–14, San Diego, CA, EUA. Referências • Rastreamento de pacotes IP [20e] Snoeren, A. C., Partridge, C., Sanchez, L. A., Jones, C. E., Tchakountio, F., Schwartz, B., Kent, S. T. e Strayer, W. T. (2002). Single-Packet IP Traceback. IEEE/ACM Transactions on Networking, 10(6):721–734. [21e] Song, D. X. e Perrig, A. (2001). Advanced and Authenticated Marking Schemes for IP Traceback. Em Proceedings of the IEEE INFOCOM 2001 Conference, Anchorage, AK, EUA. [22e] Stone, R. (2000). CenterTrack: An IP Overlay Network for Tracking DoS Floods. Em 9th USENIX Security Symposium, páginas 199–212, Denver, CO, EUA. Referências • Um novo sistema de rastreamento de pacotes IP [1f] Laufer, R. P. (2005). Rastreamento de Pacotes IP contra Ataques de Negação de Serviço. Tese de mestrado, COPPE/UFRJ. [2f] Laufer, R. P., Velloso, P. B., de O. Cunha, D. e Duarte, O. C. M. B. (2005a). Um Procedimento Alternativo de Reconstrução de Rota para o Rastreamento de Pacotes IP. Em XXII Simpósio Brasileiro de Telecomunicações -SBrT’05, Campinas, SP, Brasil. [3f] Laufer, R. P., Velloso, P. B. e Duarte, O. C. M. B. (2005b). Defeating DoS Attacks with IP Traceback. Em IFIP Open Conference on Metropolitan Area Networks - MAN’2005, Ho Chi Minh, Vietnã. Referências • Um novo sistema de rastreamento de pacotes IP [4f] Laufer, R. P., Velloso, P. B. e Duarte, O. C. M. B. (2005c). Um Novo Sistema de Rastreamento de Pacotes IP contra Ataques de Negação de Serviço. Em XXIII Simpósio Brasileiro de Redes de Computadores - SBRC’2005, Fortaleza, CE, Brasil. Departamento de Eletrônica - Poli Programa de Engenharia Elétrica - COPPE Universidade Federal do Rio de Janeiro Negação de Serviço: Ataques e Contramedidas Rafael P. Laufer, Igor M. Moraes, Pedro B. Velloso, Marco D. D. Bicudo, Miguel Elias M. Campista, Daniel de O. Cunha, Luís Henrique M. K. Costa e Otto Carlos M. B. Duarte http://www.gta.ufrj.br Apoiado pelos recursos da CAPES, CNPq, FAPERJ, FINEP, RNP, FUNTTEL e UOL