Sistema determinístico de rastreamento de pacotes TCP/IP usando mensagens ICMP Cadernos de Julio J. F. Villarreal Aluno do Curso de Mestrado do Programa de em Engenharia da Universidade Presbiteriana Mackenzie Nizam Omar Professor do Programa de da Universidade Presbiteriana Mackenzie RESUMO IP Spoofing é uma técnica de falsificação de endereços usada freqüentemente em ataques digitais. Por ser uma conseqüência direta do modo de desenvolvimento dos protocolos TCP/IP, não há ainda nenhuma solução nativa contra o uso dessa técnica. Muitos sistemas para rastreamento de pacotes IP já foram propostos, a maioria baseados em marcação de pacotes ou transmissão de mensagens de rastreamento, usando esquemas probabilísticos para minimizar o impacto no tráfego total da rede. Este novo sistema, chamado Deterministic ICMP-Based Spoofing Traceback (DIST), apresenta uma abordagem determinística, fazendo com que seja possível a detecção da rota completa de qualquer pacote a partir do destino, facilitando a identificação de tentativas de uso do spoofing, mantendo ainda o tráfego gerado e a latência adicionada em níveis aceitáveis. Isto é feito através de uma arquitetura de cache, implementada nos roteadores, para o envio de mensagens ICMP com informações de rastreamento. Palavras-chave: IP spoofing. Rastreamento de pacotes. Ataques DoS. 1 INTRODUÇÃO A técnica denominada IP Spoofing tem sido usada com um acessório para vários tipos de ataques digitais, comumente ataques de negação de serviço, ou DoS. Esta técnica permite ações anônimas na Internet, fazendo com que ataques digitais não possam ser rastreados. Nos últimos anos, muitos sistemas foram desenvolvidos para 27 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Cadernos de inibir o uso desta técnica e rastrear pacotes na Internet. Apesar de existirem propostas que não envolvem modificação no software dos roteadores, como o Hop Count Filtering (SIN; WANG; SHIN, 2003), a maioria dos sisteams existentes requerem algum tipo de modificação aos roteadores, são vistos como mais eficientes em comparação com os outros. Alguns destes, como PPM (AL-DUWAIRI; MANIMARAN, 2004; AL-DUWAIRI; CHAKRACARTI; MANIMARAN, 2004) e EPPM (GO- MES; SIN; CHOI, 2002), são baseados em marcação probabilística de pacotes. A proposta principal é marcar o cabeçalho de pacotes em trânsito com o endereço do roteador que está fazendo a marcação, usando uma função probabilística. Isto torna possível a reconstrução da rota tomada por um conjunto de pacotes, mas apenas após um certo número de pacotes recebidos. Este tipo de sistema detecta ataques de grande tráfego com facilidade, mas tem dificuldades em detectar ataques menores, e não detecta ataques de um só pacote. Historicamente, ataques como Ping Of Death, e o recentemente revisto LAND são exemplos de ataques de um só pacote, que usam a técnica de spoofing para manter anonimidade. Mudar a função de marcação e torná-la determinística apenas, não mudaria a situação, posto que marcar um pacote com todos os endereços de roteadores pelos quais o mesmo passou é inviável. Mesmo usando o campo de source-routing, o tamanho do cabeçalho somente permitiria o registro de nove roteadores. Tentar marcação maior pode causar fragmentação do pacote. Outros sistemas propostos usam uma abordagem baseada em mensagens. Em particular, as mensagens itrace (BELLOVIN; LEECH; TAYLOR, 2001) são a proposta de um padrão para mensagens de rastreamento. Estas mensagens seriam enviadas por cada roteador, contendo informações sobre a passagem de um certo pacote, e uma função probabilística também é usada para minimizar o uso da rede. Um sistema semelhante usa um conceito de intenção para evitar envio desnecessário de mensagens, onde cada host de destino manifesta sua intenção de receber essas mensagens de rastreamento. O sistema proposto, Deterministic ICMP-based Spoofing Traceback (DIST), usa uma combinação das principais técnicas, com uma inovação: um mecanismo do tipo cache, aliado a uma combinação entre marcação de pacotes e envio de mensagens de rastreamento, formam um processo determinístico para mapeamento das rotas tomadas por qualquer pacote. Isto permite o rastreamento de qualquer situação de uso de spoofing, até mesmo em ataques digitais de um só pacote. Em particular, o mecanismo de cache ajuda a manter o custo de rede razoavelmente baixo, evitando o envio de mensagens redundantes. Um mecanismo de intenção também é provido, permitindo aos hosts a opção de não receber mensagens de rastreamento por um determinado período, para reduzir o custo do rastreamento em situações de estresse da rede. 2 DIST DETERMINISTIC ICMP-BASED SPOOFING TRACEBACK 28 O sistema DIST pretende conseguir: Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Reconstrução da rota tomada por qualquer pacote recebido por qualquer máquina na rede; Envio de mensagens orientado a intenção, permitindo suspensão autenticada do envio de mensagens; Estabelecer um compromisso entre uso da rede e uso de memória e processamento do roteador, usando um mecanismo de cache para diminuir o envio de mensagens. Para possibilitar a reconstrução do caminho dos pacotes, o sistema DIST implementa três mecanismos: Cadernos de a) O mecanismo de envio de mensagens de rastreamento (mensagens DIST), implementado nos roteadores, responsável por envio de mensagens de rastreamento, e assegurando que todo pacote enviado pela Internet possa ser mapeado a uma rede de origem; b) O mecanismo de intenção, compartilhado entre os roteadores e os hosts, que faz possível a interrupção do envio de mensagens de rastreamento de forma autenticada, diminuindo o tráfego na rede sob demanda; c) O mecanismo de reconstrução das rotas, presente no host de destino, responsável por efetivamente determinar a rede de origem de um determinado pacote. O MECANISMO DE ENVIO DE MENSAGENS DIST O mecanismo de envio de mensagens DIST depende de uma tabela, armazenada em cada roteador, que contém 5 campos: Endereço de origem Endereço de destino Identificador de autenticação do fluxo, usado no mecanismo de intenção flag de intenção time stamp, usado para expiração das mensagens O tamanho de um registro na tabela DIST deverá ser de 128 bits, conforme visto na Tabela 1. Todo roteador deverá inspecionar o cabeçalho dos pacotes em trânsito, e enviar mensagens de rastreamento baseado nas seguintes regras: Se o pacote analisado é uma mensagem DIST, apenas rotear o pacote, sem enviar mensagem alguma; Tabela 1: Tamanho dos campos da tabela DIST Campo Tamanho (bits) Endereço de Origem 32 Destination Address 32 Flow ID 15 Intention 1 Padding 16 Time Stamp 32 Total 128 Padding is provided for optimization purposes and future enhancements to the model. 29 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Cadernos de Se não é uma mensagem DIST, verificar na tabela DIST se o destino tem a intenção de receber mensagens de rastreamento (a resposta padrão deverá ser sim ). Se o host não tem a intenção de receber mensagens de rastreamento, apenas rotear o pacote, sem enviar mensagem; Caso haja a intenção, verificar o par origem-destino ( fluxo ) do pacote na tabela DIST, e verificar a expiração do fluxo. Se o fluxo ainda não tiver expirado, renovar o time stamp e rotear o pacote; Se o fluxo estiver expirado ou não existir, renovar (ou criar) o registro, e enviar uma nova mensagem DIST do destino, de acordo com as regras de marcação e envio. O tempo de expiração de uma mensagem deverá ser definido para cada roteador, e deverá ter em consideração valores práticos de estudos futuros. REGRAS DE MARCAÇÃO DE PACOTES E ENVIO DE MENSAGENS A forma mais fácil que encontramos para fazer a correlação entre as mensagens DIST e os pacotes originais foi através do campo IPID do cabeçalho do pacote IP. Se, no pacote original, o campo IPID contiver um valor, esse valor deverá ser copiado para a mensagem DIST. Se não estiver sendo usado, o roteador fará a marcação do pacote no campo IPID com um valor aleatório, que será usado nas mensagens de rastreamento. Figura 1: Formato de uma mensagem DIST. Esta mensagem é semelhante à da proposta itrace, com a adição do identificador de fluxo, usado para a detecção autenticada da intenção. Todo roteador deve também criar, no momento em que gera a mensagem, um número de 15 bits, relacionado a cada fluxo através da tabela DIST. Este identificador, chamado de Identificador de Fluxo (FID), fará parte do mecanismo de autenticação como uma espécie de autenticação. O formato de uma mensagem DIST deverá ser como o da Figura 1. O campo marcado como R não é usado, pois um bit nas tabelas DIST é reservado para o mecanismo de intenção. Este campo poderá também ser usado para melhorias futuras. O MECANISMO DE INTENÇÃO Conforme mencionado no tópico anterior, a intenção de um host de receber mensagens de rastreamento deverá ser positiva por padrão. Porém, o envio de men- 30 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
sagens DIST a este deverá poder ser interrompido a qualquer momento pelo mesmo. Isto é importante para minimizar a possibilidade de uso do sistema DIST como uma ferramenta de negação de serviço, e para minimizar o tráfego de rede em situações de estresse, com o compromisso de não poder rastrear pacotes temporariamente. O mecanismo de intenção faz com que o envio de mensagens a um determinado host possa ser temporariamente cancelado. Se o envio de mensagens DIST é temporariamente cancelado, não há meios do host mapear rotas de novos fluxos, portanto este mecanismo deverá ser usado com cuidado. A intenção de suspensão temporária do envio de mensagens DIST é manifestada aos roteadores por meio de uma mensagem especial, que tem o formato visto na Figura 2. Figura 2: Formato da mensagem de intenção DIST. O roteador que receber esta mensagem deverá deixar de enviar mensagens de rastreamento pelo número de segundos especificado. Como o campo de identificação de autenticação do fluxo é único para cada tupla (origem, destino, roteador), o roteador poderá decidir se o pedido de suspensão é legítimo. Para falsificar uma requisição de cancelamento, um intruso teria que Ter controle sobre o roteador em questão ou capacidade de sniffer no link do mesmo, e se isso acontecesse qualquer sistema anti-spoofing baseado em roteador perderia sua utilidade. O campo Tempo expressa quantos segundos o roteador deverá manter-se isento de enviar mensagens DIST a um determinado destino. O valor máximo desse campo é 65535 segundos, aproximadamente 18 horas, e acreditamos ser suficiente para o proposto. Mais tempo poderia ser comprado do roteador mediante uma nova mensagem. Testes futuros em um ambiente real deverão dar resultados mais precisos. Quando receber uma mensagem de intenção, o roteador deverá, para aquele destino, mudar o flag de intenção para zero, indicando o cancelamento, e o time stamp deverá conter o momento em que o roteador poderá retomar o envio de mensagens. Cadernos de O MECANISMO DE RECONSTRUÇÃO DAS ROTAS O mecanismo de reconstrução das rotas poderá estar presente no host de destino ou no seu sistema de detecção de intrusos, presente na mesma sub-rede. Deverá coletar toda mensagem DIST recebida, e manter uma tabela com os dados: 31 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Cadernos de Endereço de origem Endereço de destino hop anterior, IPID, TTL, FID e o endereço do roteador de cada mensagem recebida A Figura 3 mostra uma rede hipotética, na qual todos os roteadores implementam o sistema DIST. Seja um pacote indo de H1 para H2, passando pelos roteadores R1, R2 e R6. Isto causa a emissão de uma mensagem DIST de R1 para H2, outra de R2 para H2 e uma terceira de R6 para H2. Ao receber essas mensagens, H2 poderá criar a tabela de reconstrução das rotas, como mostrado na Tabela 2. A partir desta tabela, pode-se identificar o caminho tomado pelo pacote, conforme descrito na Figura 4. Note-se que a sub-rede de origem é identificada, assim como todo o caminho do pacote, e o endereço de origem contido no pacote pode ser comparado com o endereço da sub-rede mapeada, validando sua origem. Ainda, no caso de um segundo pacote ser enviado dentro do limite de tempo, nenhuma mensagem DIST é gerada, e isto significa que todo o tráfego daquela comunicação entre os dois hosts não gera tráfego de rastreamento adicional. Figura 3: Inter-rede exemplo Tabela 2: Tabela de reconstrução das rotas H1/H2 Origem: H1 Destino: H2 Endereço do roteador Hop anterior IP ID FID R1 H1 X A R2 R1 X B R6 R2 X C Figura 4: Rota reconstruída em H2 3 CONSIDERAÇÕES DE REDE Em teoria, o sistema DIST pode ser facilmente provado efetivo, e tentativas de spoofing podem ser detectadas de forma direta. Porém, existem alguns desafios para o sistema, que devem ser contemplados antes de tomar os próximos passos para implementação. Em particular, a explicação dada no item anterior é baseada em duas importantes premissas: 1 Que todos os roteadores no caminho do pacote implementam o sistema DIST; e 2 Que todos os pacotes transmitidos entre dois determinados hosts seguem exatamente o mesmo caminho. 32 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Quanto à primeira premissa, apesar de desejado, o sistema é capaz de trabalhar mesmo com uma parte dos roteadores convertidos para o mesmo, desde que estes sejam os roteadores mais próximos da borda. Roteadores de backbone poderiam não usar o sistema, e mesmo assim seria possível identificar a rede de origem de um pacote. Porém, informação sobre a rota completa não estaria Figura 5: Dois pacotes do mesmo fluxo por caminhos diferentes disponível. A segunda premissa traz considerações importantes. Se, para a rede exemplo mostrada na Figura 1, dois pacotes tomarem rotas diferentes, por exemplo as indicadas Tabela 3: Tabela de reconstrução das rotas H1/ H2 segundo pacote Origem: H1 Destino: H2 Endereço do roteador Hop anterior IP ID FID R1 H1 X A R2 R1 X B R6 R2 X C R4 R1 Y D R3 R4 Z E na Figura 5, haverá mais roteadores entre H1 e H2 do que originalmente suposto. Conseqüentemente, a tabela de reconstrução das rotas em H2 seria como mostrado na Tabela 3, e o caminho reconstruído agora apresenta uma bifurcação, e pode ser mostrado como na Figura 6. Cadernos de Questões de segurança também devem ser consideradas. Um intruso poderia forjar mensagens DIST na tentativa de confundir o sistema de reconstrução das rotas para encobrir um Figura 6: Caminho reconstruído em H2, com bifurcação. ataque. Porém, o efeito de tal prática tem limitações, uma vez que, mesmo forjando as mensagens, as mensagens legítimas reconstroem o caminho para o lugar certo. O processamento necessário para reconstruir esta rota seria maior, mas a detecção é possível. É importante notar, também, que no evento de uma tentativa de uso do sistema DIST como ferramenta de negação de serviço, o mecanismo de intenção poderá garantir que o tráfego DIST seja suspendido a qualquer momento, ainda permitindo a detecção da origem do ataque, visto que apenas o primeiro pacote do mesmo é necessário para mapear a rede de origem. 33 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Cadernos de 34 4 DESEMPENHO O sistema DIST, pela sua natureza determinística, tende a sofrer maiores problemas de desempenho que seus semelhantes probabilísticos. Porém, como modelo determinístico, tem a característica desejada de detectar o caminho de qualquer pacote, permitindo a detecção de ataques de um único pacote. Ainda assim, os mecanismos apresentados deverão manter o tráfego de rede em níveis razoáveis, trocando desempenho de rede por poder de processamento e memória nos roteadores e reconstrutores de rotas. Uma das ferramentas para manter os custos de rede em níveis razoáveis é a arquitetura tipo cache do mecanismo de envio de mensagens. Tempos de expiração razoáveis deverão fazer com que o número de mensagens enviadas seja suficientemente baixo, ainda mantendo informados todos os hosts sobre os caminhos das comunicações recebidas. O parâmetro do tempo de expiração deverá ser definido em estudos práticos a serem realizados no futuro. Outra consideração importante é a geração de tráfego propriamente dita, que possui um componente independente dos tempos de expiração. A quantidade de mensagens gerada por fluxo, em uma implementação completa do DIST, será exatamente igual ao número de hops entre as duas pontas. Conforme estudos recentes (THEILMANN; ROTHERMEL, 2000), uma rota típica pela Internet teria 15 hops. Isto significa que, para um determinado par de nós da rede, o primeiro pacote enviado em um dos sentidos gerará 15 mensagens. O tamanho de cada mensagem é 40 bytes, logo estas 15 mensagens terão um tamanho total de 600 bytes. Sendo o MTU da maioria dos links de Internet acima de 500 bytes, todas as mensagens de rastreamento somadas não geram maior tráfego que um único pacote em uma conexão TCP convencional. Ainda, um efeito colateral importante do sistema é no desempenho dos roteadores, e consequentemente na latência introduida nos pacotes. Para manter o uso da rede em níveis aceitáveis e aplicar a política de expiração, alguns roteadores deveriam armazenar tabelas de milhões de registros. Ainda que a preocupação da memória individualmnte nos roteadores não seja uma preocupação, pois um milhão de registros poderiam ser inseridos em 16MB de memória, a busca dentre esses registros poderá levar muito tempo sem nenhum tipo de índice. Assumindo que uma busca de um registro DIST em memória leva 100ns, o pior caso de busca em uma tabela de um milhão de registros levaria 100ms. Isto, em uma rota típica de 15 hops, adiciona uma latência de 1,5s, sendo o total de latência de ida e volta da comunicação 3s. Isto não é aceitável, pois é muitas vezes maior que o tempo de resposta visto hoje em comunicações típicas. Uma forma de abordar essa questão seria organizar a tabela DIST em uma árvore blanceada, usando o par origem-destino como seu índice. A estrutura de árvore balanceada reduziria dramaticamente o tempo de busca na tabela a um custo de processamento baixo. A fórmula para calcular a altura de uma árvore balanceada dado seu grau mínimo t e p número de registros n é: Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
o que mostra uma altura igual a 6 para uma tabela de um milhão de registros e grau mínimo 10. Isto faz com que o pior caso de busca em uma tabela de um milhão de registros passe para 114 buscas, que, para o mesmo tempo de busca em memória, traduzir-se-ia em 22,8ms de latência. Este tempo é aceitável, pois não é significativo comparado ao tempo de resposta visto em transmissões hoje pela Internet. Estudos futuros deverão confirmar isto. Cadernos de 5 CONCLUSÃO O sistema DIST sugere uma abordagem determinística para rastreamento de pacotes IP, e como tal, seu desempenho de uma forma geral deverá ser inferior ao dos seus semelhantes probabilísticos. Deve ser notado, porém, que a capacidade de rastrear ataques de um só pacote é desejada, e nenhuma anonimidade deverá ser tolerada. As mais importantes questões de desempenho foram abordadas, e o modelo é analiticamente mostrado possível. Futuros estudos, de uma simulação ou implementação parcial, deverão provar a viabilidade do sistema. Alguns parâmetros, como o tempo de expiração das mensagens DIST e a quantidade correspondente de memória alocada para isso, devem ser definidos por roteador, e devem ter em consideração dados de tráfego rel que serão analisados em trabalho futuro. A Deterministic Trace back system for TCP/IP packets using ICMP messages ABSTRACT IP Spoofing is an address falsification technique largely used for digital attacks. Being a direct consequence of the development model of the TCP/IP suite of protocols, there is no native solution against it. Many systems for IP trace back have been developed, mostly based in packet marking or message transmission, using probabilistic schemes for traffic economy. This system, called Deterministic ICMP-Based Spoofing Trace back (DIST), presents a unique, deterministic approach, making any host capable of detecting the whole route taken by any packet received, thus making it easy to identify spoofing attempts, while keeping network traffic and added latency reasonably low. This is possible due the use of a cache-like behavior and intention-driven message passing. Keywords: Network Security. IP spoofing. Packet trace back. Network anonymity. 35 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.
Cadernos de REFERÊNCIAS AL-DUWAIRI, B.; CHAKRABARTI, A.; MANIMARAN, G. An efficient probabilistic packet marking scheme for IP traceback. 2004. Trabalho apresentado na 3rd IFIP-TC6 Networking Conference, 2004. ; MANIMARAN, G. A novel packet marking scheme for IP traceback. 2004. Trabalho apresentado na 10 th IEEE International Conference on Parallel and Distributed Systems, 2004. BELLOVIN, S.; LEECH, M.; TAYLOR, T. The ICMP traceback message. 2001. GOMES, J.; JIN, F.; CHOI, H.; CHOI, H. A. Enhanced probabilistic packet marking for IP Traceback. 2002. Trabalho apresentado na 2002 IEEE Workshop on Information Assurance and Security, 2002. JIN, C.; WANG, H.; SHIN, K. Hop-count filtering: an effective defense against spoofed traffic. 2003. Trabalho apresentado na ACM Conference on Computer and Communcations Security, 2003. THEILMANN, W.; ROTHERMEL, K. Dynamic distance maps of the internet. 2000. Trabalho apresentado na IEEE INFOCOMM Conference, 2000. WU, S. F.; WU, C.; ZHANG, L.; MASSEY, D.; MANKIN, A. On design and evaluation of Intention-Driven ICMP Traceback. 2001. Trabalho apresentado na IEEE International Conference on Computer Communications and Networks, 2001. 36 Cad. de em Eng. São Paulo, v. 4, n. 1, p. 27-36, 2004.