1 Utilização de OpenFlow em um Mecanismo de Mitigação de Ataques DDoS Gabriele Gayer Ramires1 Rafael Bohrer Ávila2 Resumo: Com o avanço da tecnologia e o desenvolvimento progressivo de novas aplicações e protocolos, nota-se a ausência de um ambiente confiável para testar essas novas tecnologias. O OpenFlow como outras tecnologias de Redes Definidas por Software supre essa carência, pois permite a customização, diferenciando-se de uma rede normal e permitindo a flexibilidade de experimentos. Outra análise a ser feita é a confiabilidade das respostas nos experimentos realizados, onde são esperadas respostas precisas para manter o nível de qualidade do desenvolvimento. Este trabalho tem o objetivo de adaptar mecanismos usados no sistema D-Ward( sistema de defesa DDoS implantado na rede local) na plataforma OpenFlow. Utilizando esta plataforma para fazer a coleta de dados e bloqueio do ataque DDoS. Com essa junção pretende-se mitigar os ataques DDoS dentro de uma rede OpenFlow, obtendo também um nível bom para tráfego legítimo. Palavras-Chave: Protocolo OpenFlow. D-Ward. Mitigação. 1 INTRODUÇÃO A popularização da Internet durante a última década apresentou um aumento na procura de serviços on-line, como compras, acesso a serviços bancários, busca por vagas de emprego, dentre outras facilidades. Esse cenário trouxe como consequência uma série de problemas de segurança, sendo um desses o ataque distribuído de negação de serviço DDoS (Distributed Denial of Service) ( MENEGAZZO, 2011). O ataque DDoS baseia-se na exploração massiva de serviços expostos na rede através do envio de uma grande quantidade de pacotes para um alvo específico, como um servidor web de aplicação ou de arquivos. Esse tipo de ataque é feito de forma coordenada a partir de várias origens e interrompe ou causa intermitência no acesso aos serviços disponibilizados pelo servidor (BRAGA , 2010). Embora os ataques distribuídos de negação de serviço não sejam um fenômeno 1 2 Gabriele Gayer Ramires, aluna do curso de Ciência da Computação, [email protected]. Rafael Bohrer Ávila, professor da Universidade do Vale do Rio dos Sinos, [email protected]. 2 recente, os métodos e os recursos disponíveis para conduzir e mascarar esses ataques tem evoluído. Na busca por novas formas para investigar e analisar ataques DDoS, bem como para executar experimentos de soluções para a detecção desses ataques, surge a possibilidade de adotar uma das tecnologias que tem como base o SDN (Redes Definidas por Software) conhecida como OpenFlow (BRAGA, 2010). Essa possibilidade se dá pelo fato de o OpenFlow prover uma interface aberta e programável, a qual permite estabelecer um controle sobre os fluxos de pacotes nos switches e roteadores de uma rede. Através desse controle é possível, por exemplo, conduzir experimentos com novos protocolos, modelos de segurança e/ou esquemas de endereçamento. (MCKEOWN, 2008). Além de possibilitar a realização de novos experimentos, a plataforma OpenFlow insere no mercado de tecnologia um formato diferente de rede, capaz de oferecer segurança, estabilidade e confiabilidade. Assim sendo, esse formato torna o OpenFlow uma plataforma importante para busca e integração de novas ideias e métodos capazes de contribuir com a evolução e a otimização da segurança nas redes (MCKEOWN, 2008). Após pesquisas realizadas na literatura da área de segurança em redes, foram analisados detalhadamente dois artigos. O primeiro é o D-Ward (MIRKOVIC, 2002) que utiliza como ponto de análise a origem da rede (LAN) para detectar ataques. Nesse caso, são geradas estatísticas de fluxos através dos registros armazenados, que são então comparados a modelos pré-definidos. O segundo artigo mostra uma opção de como detectar ataques DDoS em uma rede OpenFlow (BRAGA et. al , 2010). Neste trabalho a análise para detecção de ataques DDoS é feita na entrada da rede (WAN) e utiliza redes neurais para classificação dos fluxos de ataque. Analisando detalhadamente os dois artigos, observa-se que no trabalho D-Ward (MIRKOVIC, 2002) o uso da detecção na origem da rede (LAN), como relata o autor, pode facilitar o rastreamento e investigação do ataque, pois o fluxo de dados tende a ser menos intenso e mais passível de controle por estar em uma rede local (LAN). Por outro lado, foram analisados dois problemas um por não ser muito fácil ou prático coletar estatísticas dos roteadores. Usar uma ferramenta de gerência seria uma alternativa, mas alguns parâmetros como o número de sessões como 3 usado no D-Ward não são diretamente observáveis nestas ferramentas. E o segundo, uma vez detectado um ataque, é necessária uma forma de atuar sobre ele, bloqueando-o ou reduzindo o fluxo de dados. Não há um padrão geral para realizar tal ação em roteadores, portanto a solução sempre dependeria do fabricante do equipamento. Com ideias extraídas dos dois artigos este trabalho pretende obter um método de detecção de ataques DDoS na origem da rede, utilizando a plataforma OpenFlow para resolver as duas dificuldades apresentadas pelo D-Ward, fornecendo meios tanto para coletar os dados, de forma bastante flexível, quanto para atuar sobre o tráfego da rede local. Estes dados são armazenados para geração de estatísticas que comparadas às características pré-definidas identificam prováveis fluxos de ataques DDoS. Dessa forma, o OpenFlow pode atuar no controle e gerenciamento desta rede melhorando a segurança no fluxo de dados de produção como em testes e simulações de novos protocolos. 2 OPENFLOW OpenFlow é um padrão aberto de comunicação que possibilita gerenciar pacotes que circulam na rede. Apoia-se no conceito de redes definidas por software (SDN) como uma interface de programação de aplicativos que definem o comportamento do encaminhamento dos pacotes através dos fluxos estabelecidos (MCKEOWN, 2008). Através desta inovação, pesquisadores podem testar protocolos experimentais em redes de produção, redes metropolitanas e em backbones de redes de ensino e pesquisa (MCKEOWN, 2008). Tendo como base a característica de um padrão aberto para comunicação, que o OpenFlow oferece é possível testar, avaliar e modificar vários protocolos e cenários de testes, pondo à prova a eficácia de novos protocolos em um cenário real. Nas redes convencionais o encaminhamento de pacotes é tratado por roteadores e switches e não há garantias de que testes sejam realizados sem interferência no fluxo de produção. Com a plataforma OpenFlow existe esta possibilidade garantida através da tabela de fluxo para controle de tráfego que o 4 Figura 1 - Arquitetura de Fluxo na Plataforma OpenFlow Fonte: Elaborada pela Autora (2013). switch com a plataforma OpenFlow possui e o gerenciamento dos pacotes que pode ser realizado pelo elemento chamado controlador. O switch OpenFlow possui uma tabela onde estão armazenados todos os fluxos de pacotes que estão circulando na rede no momento . O controlador possui a capacidade de avaliar os fluxos, além de remover e criar novas entradas de fluxos na tabela para redirecionar os pacotes que chegam no switch OpenFlow. (MCKEOWN, 2008). Esta comunicação com o switch é feita através de um canal seguro que utiliza o protocolo TLS (Transport Layer Security), garantindo assim que qualquer comunicação entre os dois componentes seja criptografada (OPENFLOW, 2011). Cada uma dessas entradas da tabela consiste nos seguintes campos que estão ilustrados na figura 1: 1. Campo para o cabeçalho do pacote que define o fluxo; 2. Campo para a ação que define como o pacote é tratado; 3. Campo para as estatísticas que mantém o controle do número de pacotes e bytes de cada fluxo, além do tempo decorrido desde que o último pacote do fluxo 5 que foi identificado pelo switch. Essa última estatística auxilia na remoção de fluxos inativos (MCKEOWN, 2008). 2.1 CONTROLADOR O controlador exerce a função de gerenciamento das entradas de fluxos na rede. É ele que divide a rede entre experimentos, adicionando e removendo entradas de fluxos. Se comparado com uma rede comum, ele funciona como uma VLAN. Dessa forma, o controlador atua como uma espécie de sistema operacional (SO) para o gerenciamento e controle de redes, oferecendo uma plataforma com base na reutilização de componentes e na definição de níveis de abstração (comandos da API). Um controlador mais sofisticado poderia beneficiar vários pesquisadores ao mesmo tempo com diferentes contas e permissões, executando assim múltiplos experimentos com diferentes tipos de fluxos. Existem três eventos críticos previstos pelo controlador: a chegada de um pacote, a inicialização de um fluxo e uma mudança na rede. Com isso a escalabilidade se torna um fator importante para o controlador potencializado pelo fato de se tratar de um sistema centralizado. O controlador também pode ser configurado para tratar outros possíveis eventos na rede como quedas de links, inclusões e exclusões de hosts, alterações de fluxos, entre outros eventos que ainda possam ser tratados pelo controlador. Com base em uma rede constituída de switches, computadores e serviços como HTTP ou FTP, o controlador coleta dados que podem ser usados nas tomadas de decisões pelas aplicações de gerenciamento. Assim o tráfego da rede é controlado e gerenciado pelo controlador que tem o poder de alterar as configurações dos switches OpenFlow. Esse controle é realizado em nível de fluxo, ou seja, uma determinada ação de controle é aplicada ao primeiro pacote de um fluxo, sendo então replicada a todos os outros pacotes nesse fluxo (SHERWOOD, 2009) Ao receber um pacote o controlador deve tomar uma decisão e enviar a requisição de mudança na tabela de fluxos do switch OpenFlow. Se a entrada for equivalente à tabela de fluxo, as instruções associadas com a entrada do fluxo especificado são executadas. Caso a entrada não for equivalente, o resultado 6 Figura 2 - Mecanismo do Switch OpenFlow Fonte: Adaptado de MCKEOWN (2008) depende da configuração que o controlador irá adicionar na tabela do switch OpenFlow, podendo ser rejeitado ou continuar na próxima tabela de fluxo (MCKEOW, 2008). Dependendo da aplicação, o controlador pode ou não adicionar essa entrada, forçando que os switches sempre enviem os pacotes recebidos para o controlador. A Figura 2 apresenta a parte interna do switch OpenFlow. 3 TRABALHOS RELACIONADOS Serão apresentados nesta seção alguns métodos que auxiliam na mitigação de ataques DDoS dentro de redes públicas e de redes que utilizam o protocolo OpenFlow. Esses métodos relacionam-se com o presente trabalho quanto à abordagem adotada. Cada trabalho aborda aplicações e características diferentes, porém todos com a finalidade de proporcionar maior segurança dentro de uma rede. A partir das pesquisas realizadas a respeito de DDoS e OpenFlow, analisouse uma forma de implementar o OpenFlow na origem da rede(LAN), aproveitando características de classificação de fluxos fundamentadas nos dois artigos estudados. 7 3.1 ATTACKING DDOS AT SOURCE O D-Ward (MIRKOVIC, 2002) é um sistema que traz uma proposta diferente para minimizar ataques DDoS. Enquanto os demais mecanismos de defesa atacam o problema no alvo que sofre o ataque, o D-Ward apresenta uma estratégia que busca fazer a detecção de ataques a partir de sua origem em uma rede local. A proposta do D-Ward concentra-se no monitoramento de fluxos de saída da rede local do roteador de borda (LAN do roteador), detectando fluxos atacantes e diminuindo suas taxas de transmissão e recepção até que não se observe mais o padrão de ataque. O tipo de defesa implementada no D-Ward serviu como base para vários artigos, alguns deles como Deployment of Distributed Defense against DDoS Attacks in ISP Domain que propõem a implementação de forma incremental pela internet e o artigo Simulation Study of Flood Attacking of DDOS que verifica o mau uso e a detecção de anomalias na rede local. 3.1.1 Arquitetura do Sistema O sistema D-Ward encapsula dois componentes importantes para o seu funcionamento. Esses componentes que analisam e definem como serão tratados os fluxos de pacotes que trafegam pelo roteador onde o sistema está interagindo. A Figura 3 representa a arquitetura que é composta de um Componente de Observação e um Componente de ajuste, conforme descrição apresentada a seguir. 3.1.2 Componente de Observação Responsável por monitorar todos os pacotes que circulam pelo roteador de borda ligado à rede local. Esse monitoramento é feito com o auxílio da libpcap, que coleta as informações de todos os pacotes a fim de detectar anomalias, como a redução no número de pacotes de resposta ou intervalos longos entre uma requisição e sua respectiva resposta. Esses dados são analisados conforme os registros de fluxos armazenados na tabela hash. Estes registros contêm: 8 Pares de hosts: host e porta de origem e host e porta de destino; Protocolo (TCP, UDP e ICMP); Número de pacotes enviados e recebidos de uma sessão em um intervalo de tempo; Número de bytes enviados e recebidos de uma sessão em um intervalo de tempo; Figura 3 - Arquitetura D-Ward Fonte: Adaptado de MIRKOVI’C (2005) Número de sessões ativas; Os dados descritos acima formam então as informações e estatísticas dos fluxos na rede e são extraídos em intervalos regulares de tempo para serem analisados. O componente de observação classifica os fluxos comparando as 9 estatísticas geradas com os modelos pré-definidos. Estes modelos são descritos a seguir: Modelo de Tráfego normal TCP: durante sessões TCP são estabelecidas conexões entre o host origem e o host destino. O fluxo de dados desta conexão é controlado pela troca de mensagens que ocorre entre ambos e através das estatísticas geradas dessas trocas de mensagens que é definido pelo limiar do modelo TCP. Então é determinado o TCPrto, como sendo a razão máxima permitida de pacotes enviados e recebidos dentro de uma conexão TCP. O fluxo é classificado como um ataque caso o TCPrto esteja acima do limiar. Caso contrário, é considerado um fluxo normal. Modelo de Tráfego normal ICMP: o protocolo ICMP especifica tipos diferentes de mensagens. Durante um fluxo normal são geradas mensagens de requisições timestamp, "pedido de informações" e "mensagens echo", que recebem as suas respectivas respostas. A partir destes dados são geradas estatísticas para analisar a frequência dessas mensagens que definem o limiar deste modelo. Utilizando esta definição, é nomeado o ICMPrto - que é a razão máxima permitida de pedidos como "timestamp", "pedido de informações" e "mensagens echo" enviados e recebidos dentro de uma sessão ICMP. O fluxo é classificado como um fluxo de ataque se o ICMPrto está acima do limiar, caso contrário, é considerado um fluxo normal. Modelo de Tráfego normal UDP: o protocolo UDP não é orientado a conexões, e por isso não precisa de pacotes de resposta para seu funcionamento. Além disso, pode ter entregas fora de ordem e perda de pacotes entre origem e destino sem que haja retransmissão. Esses são alguns fatores de fazem o UDP ser considerado um protocolo pouco confiável. Com base nas observações feitas no modelo de tráfego UDP acima os autores definiram alguns parâmetros como limiares para a análise das estatísticas geradas para cada fluxo. O modelo classifica um fluxo UDP como ataque quando o limiar de algum desses parâmetros for ultrapassado: N conn: limite máximo de fluxos permitidos para o mesmo destino; 10 P conn: limite mínimo de pacotes permitidos para cada destino; UDP rate: taxa de máxima de transmissão permitida por sessão; 3.1.3 Componente de Ajuste Define uma taxa limite para transmissão e recepção em um fluxo específico com base nas características e classificação deste fluxo. Abaixo seguem as três classificações de fluxo atribuídas com base nos modelos aqui descritos. Conforme a classificação de um fluxo será adotada uma abordagem para regular a sua taxa limite: 1) Classificado como normal conforme o modelo; 2) Classificado como irregular quando os valores dos parâmetros estão fora dos limites do modelo; 3) Classificado como transitório quando não há dados suficientes para realizar a classificação dentro de seu modelo. Quando o fluxo é classificado como de ataque após um longo período de atividade normal, a sua taxa limite é redefinida através de uma fórmula baseada no número de bytes enviados e número de bytes descartados durante o fluxo de ataque. Depois de recalculada a taxa limite o fluxo continua sob monitoramento, pois este pode voltar a apresentar um comportamento normal. Nesse caso há um novo reajuste da taxa limite. Conforme citado anteriormente, o sistema D-Ward utiliza uma tabela hash para o armazenamento de registros. Os limites utilizados neste trabalho para essa tabela são de 1.000.000 registros para conexões e 10.000 registros para fluxos. Com a tabela hash utilizada o sistema possui algumas restrições estabelecendo os requisitos abaixo: Os registros de conexão são excluídos da tabela hash se a conexão é classificada como transitória; Se classificada como normal e ficou inativa por um bom período, estes registros também são excluídos; Se a tabela hash alcançou seu limite de capacidade, neste caso do overflow, os registros são excluídos até ter espaço suficiente, 11 conexões consideradas normais não são excluídas mesmo com o overflow da tabela hash. A implantação desse sistema aplica-se de forma incremental, onde cada rede deveria possuir um roteador D-WARD, reduzindo assim o número de máquinas que geram ataque na Internet. As vantagens desse sistema são muitas, os autores avaliaram que ele facilita o bloqueio de pacotes de ataque de forma mais rápida, o rastreamento e a investigação da origem do ataque torna-se o processo de identificação mais eficaz, pois com o fluxo menor de pacotes permite a detecção com uma maior precisão. 3.2 LIGHTWEIGHT DDOS FLOODING ATTACK DETECTION USING NOX/OPENFLOW Este trabalho mostra uma opção para minimizar ataques DDoS em uma rede OpenFlow (BRAGA, 2010). Usando o Switch OpenFlow, os autores averiguaram como trabalhar com o fluxo de pacotes da rede, quais as informações necessárias para a análise desses fluxos e como o controlador poderia interagir com o Switch OpenFlow. Partindo dessas questões e com base nos dados coletados, verificou-se que o swicth precisa autenticar-se junto ao controlador para adquirir uma identificação a qual ajudaria na detecção dos ataques, pois através dela seria mais fácil identificar em qual switch está ocorrendo um provável fluxo de ataque. No estudo realizado sobre os fluxos de pacotes, identificou-se que ao acessar o switch cada pacote tem o seu cabeçalho comparado com as entradas da tabela de fluxo naquele equipamento (BRAGA, 2010). É então verificado se os dados do pacote correspondem a alguma entrada na tabela de fluxos do switch e as estatísticas desta tabela são atualizadas. No caso, as estatísticas de bytes e pacotes do fluxo são incrementadas e a ação referente àquela entrada é executada sobre o pacote em questão. Se as informações do pacote não correspondem a nenhuma 12 entrada na tabela, é solicitada ao controlador a adição de uma nova entrada correspondente ao pacote recebido. Tendo como base essas premissas, os autores identificaram que a utilização do Switch OpenFlow em conjunto com o controlador consiste em um bom método de Mtiigação de ataques DDoS. Sabendo que em uma rede pública circula um grande volume de dados, os autores optaram pelo uso de redes neurais para classificação dos fluxos. Figura 4 - Operação do Loop de Detecção Fonte: Adaptado de BRAGA (2010) Para a criação de novos registros na tabela de fluxos é primeiramente necessário um método de classificação desses fluxos. O método eleito nesse trabalho utiliza redes neurais artificiais conhecidas como SOM (Mapas autoorganizáveis), que trabalham com aprendizado não supervisionado e são capazes de detectar padrões (KOHONEN, 1990). O treinamento da rede neural foi baseado somente nos padrões de entrada com amostras sendo coletadas para alimentar a rede. Neste caso, cada amostra 13 constitui uma série características específicas extraídas dos fluxos coletados das tabelas dos switches OpenFlow. A arquitetura do método, representado na figura 4, usa o Controlador NOX, que interage diretamente com os switches solicitando e enviando informações com os três módulos, que são: Módulo Coletor de Fluxo: é responsável, em intervalos de tempo determinados pelo controlador, por solicitar através do canal seguro todas as entradas de fluxo que estão registradas nos switches naquele momento, que retransmitem as repostas pelo mesmo canal seguro. Este módulo também recebe o resultado da classificação dos fluxos e caso nenhum ataque seja identificado nas características enviadas é liberado a circulação dos fluxos nos switches. Módulo Extrator de características - recebe fluxos coletados, extrai as seis características desses fluxos que foram definidas como parâmetros importantes para detecção de um ataque DDoS e insere na 6-tupla, correspondente a seis campos que auxiliam na classificação do fluxo. Depois de constituir a 6-tupla, esta é enviada para o módulo classificador. Classificador (SOM): analisa se as seis características correspondem a um fluxo de ataque ou um fluxo normal, se o fluxo for considerado normal ele retorna para o módulo coletor, caso seja detectado como um fluxo de ataque é emitido um alerta para o administrador da rede. Uma descrição mais detalhada das seis características. 1) Média de pacotes por fluxo (APF): esta característica tem como finalidade identificar se os fluxos que foram coletados possuem um número de pacotes plausível, não muito pequeno, que identificaria um fluxo de um provável ataque (BRAGA et al., 2010). Antes de extrair a informação dos fluxos coletados, estes são ordenados de forma ascendente conforme número de pacotes. Depois dos fluxos ordenados é calculada a média de pacotes por fluxo com base no número de pacotes de cada fluxo e o número total de fluxos. 2) Média de Bytes por fluxo (ABF): tendo como base os ataques de inundação TCP, onde são enviados às vítimas pacotes de 120 bytes. Esta característica busca 14 encontrar fluxos que tenham como parâmetro um número pequeno de bytes que se tornam prováveis fluxos de ataque. Neste cálculo é feita média de bytes por fluxo extraindo o número de bytes por fluxo e número total de fluxo. 3) Duração média por fluxo (ADF): esta definição tem a finalidade de reduzir o número de falsos positivos na rede, verificando o intervalo de tempo médio que um fluxo permanece na tabela pelo pequeno número de pacotes trocados entre aplicações. 4) Crescimento de diferentes portas (GDP): como o IP spoofing é um ataque que consiste em mascarar pacotes IPs utilizando endereços de origem falsos, as portas de origem e destino também podem ser geradas aleatoriamente em um ataque.Este atributo tem a finalidade de verificar se ocorreu um crescimento no número de portas dos fluxos analisados. 5) Crescimento dos Fluxos (GSF): tendo como base os ataques de inundação TCP por causa do crescimento rápido do fluxos, esta particularidade verifica-se houve um crescimento do número de fluxos nas entradas das tabelas do switch, pois seria um sinal característico de um ataque. 6) Percentual de pares de fluxos (PPF): Esta característica, informa quantos pares de fluxos ocorrem no intervalo de tempo para verificar se ocorre um aumento de número de fluxos simples na rede, pois eles enviam pacotes com um IP falso sinalizando um ataque. Exemplo, dado quaisquer dois fluxos, ou seja, fluxo 1 e 2, as seguintes condições são verificadas para analisar se esses fluxos constituem um par de fluxo: - Se o IP de origem do fluxo 1 e igual ao IP destino do fluxo 2. - Se o IP de destino do fluxo 1 é igual ao IP da origem do fluxo 2. - E se ambos os fluxos tem o mesmo protocolo de comunicação. Este trabalho apresentou um método leve para detecção de ataques DDoS .Foram mostradas técnicas de extração de características de interesse com uma baixa sobrecarga. O método é capaz de monitorar mais de um ponto de observação com a utilização do auto-organização Mapas(SOM), abrangendo muitos casos e proporcionando eficiência na detecção de um ataque. 4 . SISTEMA PROPOSTO 15 O sistema desenvolvido foi baseado na literatura de redes de segurança e em informações relevantes dos dois trabalhos descritos acima com ênfase no primeiro, que relatou a detecção de ataques na origem da rede. O objetivo do sistema em conjunto com a plataforma OpenFlow, é verificar se as características definidas no artigo D-Ward (MIRKOVIC, 2005) também serão eficazes na detecção de ataques DDoS. Foram definidas algumas características que serão examinadas nos pacotes que circulam pela rede. Estes parâmetros são utilizados para realizar uma filtragem dos fluxos indicando assim os prováveis fluxos de ataques. As características citadas acima são: - Mecanismo de Anti-spoofing: tem o objetivo de verificar se os pacotes enviados a partir da rede local não estão com seus IPs de origem falsificados. - Estabelecer limiares adaptativos utilizando os modelos TCP, UDP e ICMP conforme proposto no trabalho D-Ward (MIRKOVIC, 2005). Para o levantamento de dados estatísticos sobre as características citadas, são armazenados pelo controlador em uma tabela hash registros referentes aos fluxos que circulam no switch OpenFlow. Cada registro contêm os seguintes parâmetros: - Tipo de protocolo; - IP de origem do pacote; - IP de destino do pacote; - Porta de entrada do pacote no Switch OpenFlow; - Quantidade de pacotes enviados e recebidos; - Total de bytes enviados e recebidos. O hash de cada registro da tabela é calculado a partir dos quatro primeiros parâmetros. A estrutura do sistema está divida em componentes conforme representado na Figura 5, cada componente exerce uma função que define se o sistema irá se comportar conforme o esperado ou não. Abaixo uma explicação sobre cada componente do sistema: 4.1 CONTROLADOR 16 Executa o algoritmo que define as políticas do sistema. Sua função é extrair informações que circulam no switch OpenFlow através de troca de mensagens que ocorrem pelo canal seguro. No sistema proposto estas trocas de mensagens servem para tratar os pacotes de entrada e saída do switch e os fluxos que estão armazenados na tabela do switch. Figura 5 – Arquitetura do Sistema Fonte: Elaborada pela Autora (2013) O controlador envia para o gerador de estatísticas os registros e recebe em intervalos de tempo informações para verificar se algum limiar definido foi ultrapassado, indicando um ataque. Caso seja um ataque, ele remove o fluxo identificado como ataque da tabela do switch referente a porta do switch que recebeu, até que este fluxo suspeito receba uma nova estatística. 4.2 GERADOR DE ESTATÍSTICAS Este componente faz a análise dos dados de cada pacote novo que chega no switch e em intervalos de tempo ele gera as estatísticas. Conforme proposto no 17 artigo D-Ward (MIRKOVIC, 2005) os limiares definidos dos modelos TCP, ICMP e UDP são: TCPrto: razão entre pacotes enviados e recebidos de um fluxo. ICMPrto: razão entre pacotes enviados e recebidos de um fluxo. N conn: limite máximo de fluxos permitidos para o mesmo destino; P conn: limite mínimo de pacotes permitidos para cada destino; As estatísticas são geradas através da comparação dos parâmetros de cada registro de fluxo coletado no momento com os limiares pré-definidos acima. Além das quatro características citadas que são os modelos definidos como limiares é tratado mais um parâmetro que se refere à primeira característica. Este parâmetro trata do mecanismo anti-spoofing, que faz uma análise dos pacotes enviados da rede local (LAN) para a rede pública, pois pode ocorrer por erro ou intencionalmente, que um dispositivo tente encaminhar pacotes cujo endereço de origem não esteja no espaço de endereços da rede a que esteja conectado. Como as redes internas são controláveis, os IPs dos computadores que formam a rede local são configurados e comparados aos IP de origem dos pacotes que circulam no switch. Se o IP de origem do pacote pertencer a lista de IPs da rede local o fluxo segue o seu destino, caso contrário a porta do switch deste fluxo será bloqueada seguindo a política mencionada anteriormente. 4.3 COMPONENTE DE CONTROLE DE TRÁFEGO Este componente recebe os fluxos suspeitos de gerarem o ataque, identifica a porta do switch e envia para o controlador tratar a resposta. 5. TESTES E RESULTADOS O Sistema proposto, implementado em Python, atua em conjunto com o controlador POX na detecção de ataques DDoS. O objetivo dos testes é avaliar a taxa de identificação e bloqueio pelo sistema correspondente a ataques e também o possível impacto nos tráfegos legítimos. Para realização dos testes foram utilizadas ferramentas como o Mininet que é a base para proporcionar um cenário de testes com a plataforma OpenFlow, o 18 Wireshark para monitorar os testes, o TCPReplay para reproduzir os traces legítimos e de ataques e o TFN2K para gerar fluxo de ataque. Abaixo uma breve explicação de cada ferramenta. Controlador POX: é o principal componente de uma Rede Definida por Software, é responsável por concentrar a comunicação com todos os elementos programáveis da rede, oferecendo uma visão unificada da rede. O controlador POX foi desenvolvido especificamente para fins de pesquisa e ensino (NOXREPO.org). Mininet : O Mininet foi instalado a partir de uma imagem Linux Ubuntu executada em VMware ou VirtualBox , com aplicativos OpenFlow já instalados. O Mininet possibilita a criação de um cenário com redes virtuais escaláveis baseados na plataforma OpenFlow (McKeown,2010). Wireshark: é um analisador de protocolo que captura tráfego de uma rede em tempo de execução usando a interface de rede do computador (wireshark.org). TCPReplay: é um um conjunto de ferramentas para sistemas UNIX para edição e reprodução de tráfego de rede que foi previamente capturado por ferramentas como o tcpdump e ethereal / wireshark. O objetivo do tcpreplay é fornecer meios para proporcionar ambientes confiáveis para testar uma variedade de dispositivos de rede, como switches, roteadores, firewalls, detecção de intrusão e sistemas de prevenção (IDS e IPS). TFN2K: Tribe Flood Network 2000 (TFN2K) é uma ferramenta que simula ataques DDoS contra um host. Consiste de um cliente e um servidor. O cliente controla um ou mais daemons, que enviam um volume de tráfego para o host destino. O cliente pode usar os protocolos UDP, TCP, ICMP para gerar tráfego através dos daemons. Estrutura de um ataque DDoS que é composta por quatro elementos fundamentais: Atacante: aquele que coordena o ataque controla os clientes; Cliente: inicia o ataque nos daemons; 19 Daemons: processo que roda nas máquinas responsável por receber e executar os comandos enviados pelo Cliente; Vítima: alvo do ataque; 5.1 EXPERIMENTOS Figura 6 – Topologia do Teste Fonte: Elaborada pela Autora (2013). Os testes basearam-se nos traces e na topologia utilizada pelo artigo D-Ward (MIRKOVIC, 2005). Os traces utilizados foram capturados durante o mês de agosto de 2001 no UCLA (Laboratório da Universidade da Califórnia), onde foram capturados traces de tráfego legítimo e traces de ataque, os de ataque foram gerados a partir de uma ferramenta desenvolvida pelo próprio grupo de projeto do DWard, os tipos de ataques gerados foram: TCP SYN flood, ICMP flood e UDP flood, que também podem ser gerados pelas ferramentas TFN2K, TFN entre outras. 20 No caso do cenário utilizado os fluxos de ataque foram gerados a partir da ferramenta TFN2K e armazenados como traces. A Figura 6 representa o cenário criado na ferramenta Mininet onde a partir dos host 1 é gerado o tráfego legítimo e do host 2 o tráfego de ataque, ambos em direção à vítima, que possui um link limitado em 10Mbps. Cada host utilizou a ferramenta TCPReplay para reproduzir um trace, sendo um legítimo e um de ataque. As taxas utilizadas para gerar os tráfegos de ataque foram as mesmas utilizadas nos testes do D-Ward. As taxas de ICMP e UDP são de 1Mbps a 180Mbps com objetivo de gerar um ataque acima do link estabelecido para a vítima. Já no TCP a intenção do ataque é extrapolar o buffer de conexões da vítima e foram gerados tráfegos com mensagens TCP SYN com taxa de 1 até 25 kpps. Essas taxas são menores porque os pacotes não carregam dados, somente os pedidos de conexão. No caso do tráfego legítimo foram geradas taxas de 1 Mbps nos protocolos UDP,TCP e ICMP. O teste foi realizado durante 300 segundos para cada taxa definida conforme testes realizados no artigo D-Ward. A topologia utilizada no artigo D-Ward é mais ampla, pois possui mais roteadores com o sistema acoplado e cada roteador possui duas máquinas na rede local. Devido a fatores de desempenho da máquina virtual usada nos testes, o sistema proposto trabalha com somente uma combinação de roteador e hosts na rede local. Entende-se que esse cenário menor não afeta a validade dos testes, pois no D-Ward a aplicação do mecanismo é feita individualmente em cada roteador. Os testes foram realizados utilizando uma métrica de avaliação do artigo DWard (MIRKOVIC, 2005) que se refere à percentagem do tráfego legítimo que chega a vítima enquanto está sendo gerado tráfego de ataque em direção a ela. Adicionalmente, foi analisada nos mesmos testes a percentagem do tráfego de ataque detectado. Os gráficos foram ilustrados a partir de dados coletados das ferramentas de geração de tráfego e monitoramento. A métrica analisa a quantidade de tráfego legítimo que chega à vítima enquanto o ataque está em curso, através de duas formas: com a detecção e sem a detecção de ataques no sistema. A quantidade de tráfego legítimo recebido é expressa em percentagem: no caso ideal onde o ataque não interferir no tráfego legítimo o valor seria de 100%. 21 Na Figura 7 está representado o teste do protocolo UDP, onde o eixo x representa a vazão de tráfego de ataque e o eixo y mostra a percentagem do tráfego legítimo. Como pode ser visto no gráfico, quando o ataque ultrapassa a banda do link da vítima ocorre uma degradação relevante do tráfego legítimo no cenário sem defesa. Já quando a defesa é habilitada, observa-se que quase 100% do tráfego legítimo é recebido pela vítima. Figura 7 – Percentual de Detecção de Tráfego Legítimo UDP Percentual de Tráfego Legítimo (%) 100 80 60 UDP com Detecção 40 UDP sem Detecção 20 0 20 40 60 80 100 120 140 160 180 Taxa de Transmissão (Mbps) Fonte: Elaborada pela Autora (2013). Figura 8 – Percentual de Detecção de Tráfego Legítimo ICMP 22 Percentual Tráfego Legítimo (%) 100 80 60 ICMP com Detecção 40 ICMP sem Detecção 20 0 20 40 60 80 100 120 140 160 180 Taxa de Transmissão (Mpps) Fonte: Elaborada pela Autora (2013). Figura 9 – Percentual de Detecção de Tráfego Legítimo TCP Percentual de tráfego Legítimo (%) 100 80 60 TCP com Detecção 40 TCP sem Detecção 20 0 5 10 15 20 25 Taxa de Transmissão (kpps) Fonte: Elaborada pela Autora (2013). Figura 10 – Tráfego de Ataque Detectado TCP 23 Percentual de Tráfego de Ataque Detectado (%) 100 80 60 40 TCP com Detecção 20 0 0 5 10 15 20 25 Taxa de Transmissão (kpps) Fonte : Elaborada pela Autora (2013). Na Figura 8 é ilustrado o resultado do teste do protocolo ICMP. Assim como no teste do UDP foi gerado tráfego de inundação em direção à vítima, que resultou nas seguintes análises: sem a detecção a partir da taxa estabelecida no link a proporção de mensagens ICMP recebidas pela vítima diminui consideravelmente, com a taxa de ataque muito alta faz com que o tráfego legítimo não siga o seu percurso. A Figura 9 representa os resultados do teste do protocolo TCP. O objetivo do teste não é ocupar banda e sim gerar tráfego a vítima usando o TCP SYN flood. Verificando o desempenho no gráfico quando a detecção está desativada o nível de tráfego legítimo é rapidamente reduzido para em torno de 80%, isso ocorre porque diferentemente dos ataques de UDP e ICMP flood, o ataque do TCP ocasionou uma baixa degradação no tráfego legítimo, uma vez que ele afeta somente o estabelecimento das conexões. Assim, as conexões estabelecidas antes do início dos ataques não sofreram perdas. Mesmo assim, pode-se observar que o mecanismo de defesa possibilitou que o tráfego legítimo chegasse à 100%. A partir da Figura 10 é representado o percentual de ataques Detectados. A Figura 10 representa que a percentagem de detecção de fluxo foi para quase o ideal a partir de 10kpps, isto ocorre porque existe um atraso na detecção dos ataques DDoS, mesmo que pequeno , pelo fato que os primeiros fluxos de um 24 ataque não são considerados como ataque, até uma pré-avaliação. Então uma pequena perda de detecção de fluxos de ataque pode ocorrer para qualquer um dos três protocolos analisados. Figura 11 – Tráfego de Ataque Detectado UDP Percentual de Tráfego de Ataque Detectado (%) 100 80 60 40 UDP com Detecção 20 0 20 40 60 80 100 120 140 160 180 Taxa de Transmissão (Mbps) Fonte: Elaborada pela Autora (2013). Figura 12 – Tráfego de Ataque Detectado ICMP 25 Percentual de Tráfego de Ataque Detectado 100 80 60 40 ICMP com Detecção 20 0 20 40 60 80 100 120 140 160 180 Taxa de Transmissão (Mbps) Fonte : Elaborada pela Autora (2013). A Figura 11 também mostra que a detecção ficou mais estável depois do aumento da taxa de transmissão de pacotes. E pelos dados coletados foi verificado um atraso da identificação do ataque, pois uma característica de ataque definida pelo do D-Ward é o número de fluxos UDP para o mesmo destino. Este dado deve chegar ao valor do parâmetro pré-definido, para assim ser considerado um fluxo de ataque. Assim que este valor é ultrapassado todos os fluxos que entrarem nesta mesma regra devem ser bloqueados. Na Figura 12 o gráfico apresenta uma percentagem de ataques detectados no caso do ICMP que também chegou próximo de 100% de detecção. 6. CONCLUSÃO Neste trabalho o OpenFlow surge como uma alternativa para desenvolver uma opção de defesa contra ataques DDoS. Essa plataforma é utilizada para coleta de dados e bloqueio dos ataques, em conjunto com os mecanismos de detecção abordados no artigo D- Ward (MIRKOVIC, 2005). A união desses dois recursos possibilitou mais uma forma de usar a plataforma OpenFlow como um benefício dentro de redes que necessitam de segurança e ambientes controláveis. Um item importante a comentar é o uso da 26 própria plataforma OpenFlow para desenvolvimento do sistema, que é implementado no próprio controlador sem a necessidade de agregar sistemas ao roteador que não pertençam já a rede. O sistema proposto neste trabalho apresentou resultados semelhantes comparados aos resultados do artigo D-Ward (MIRKOVIC, 2005) quando se trata de garantir um serviço de tráfego legítimo. Já os resultados apresentados sobre o percentual de tráfegos de ataque bloqueados é uma contribuição original, pois não foram apresentados naquele artigo. Como o sistema foi implementado em Python e utilizando o controlador POX para desenvolvimento e controle do tráfego, o desempenho foi fator limitante na execução dos experimentos. Para trabalhos futuros é recomendável a utilização do controlador NOX que utiliza a linguagem de programação em C/C++ possibilitando assim um melhor desempenho para volumes grandes de tráfego. 27 USING OPENFLOW ON A MECHANISM FOR DDOS ATTACK MITIGATION Abstract: With technology advancement and the accelerated development of new applications and protocols, there is a demand for a reliable environment to test such technologies. OpenFlow was other technologies for SDN fills that need, it allows customization, permitting high level of flexibility. Another analysis to be done is the reliability of the results of the executed tests, where precise results are expected to maintain quality of service. This work aims to adapt mechanisms used in the system D-Ward (DDoS defense system deployed in the network) in the OpenFlow platform. Using this platform to make data collection and blocking DDoS attack. With this merger is intended to mitigate the DDoS attacks in an OpenFlow network, also obtaining a good level for legitimate traffic. Keywords: OpenFlow Protocol, D-Ward, Mitigation. 28 REFERÊNCIAS SACHDEVA M. DDoS Incidents and their Impact: A Review Department of Computer Science and Engineering, SBS College of Engineering and Technology, India. Disponível em: The International Arab Journal of Information Technology, Vol. 7, No. 1, January 2010. Acesso em: 20 outubro 2012 BRAGA R. Lightweight DDoS flooding attack detection using NOX/OpenFlow , In: CONFERENCE PUBLICATIONS, 10-14 Oct. 2010 Dept.de Cienc.da Comput.,Univ. Fed. Do Amazonas,Brazil. Disponível em: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=5735752&url=http%3A%2F%2 Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D5735752. Acesso em: 08 agosto 2012 SHERWOOD R. FlowVisor: A Network Virtualization Layer Deutsche Telekom Inc R&D Lab, Stanford University, OPENFLOW-TR-2009 Disponivel em : http://www.OpenFlow.org/downloads/technicalreports/OpenFlow-tr2009-1-flowvisor.pdf Acessado em : 10 agosto de 2012 MCKEOWN A. OpenFlow: enabling innovation in campus networks. Newsletter ACM SIGCOMM Computer Communication Review archive, Volume 38 Issue 2, April 2008 Pages 69-74.Disponível em: http://dl.acm.org/citation.cfm?id=1355746 .Acesso em: 10 agosto 2012 MIRKOVIC J. Attacking DDoS at the Source, University of California Los Angeles Computer Science Department, Network Protocols, 2002. Proceedings. 10th IEEE International Conference on, Disponível em : http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1181418&url=http%3A%2F%2 Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D1181418. Acesso em: 08 agosto 2012 MIRKOVIC J. D-WARD: A Source-End Defense Against Flooding Denial-ofService Attacks, University of California Los Angeles Computer Science Department, Dependable and Secure Computing, IEEE Transactions on , 2005, Volume 2. Disponível em: http://ieeexplore.ieee.org/xpl/login.jsp?tp=&arnumber=1510618&url=http%3A%2F%2 Fieeexplore.ieee.org%2Fxpls%2Fabs_all.jsp%3Farnumber%3D1510618 Acesso em: 20 de setembro 2013 Y. Zhang e L. Qiu. Understanding the End to End Perfomance Impact of RED in a Heterogeneous Environment, Cornell University Library,July 2000, Disponível em: http://www.aciri.org/floyd/red.html Acesso em:17 de outubro de 2013 29 Lantz B, Brandon H, McKeown N. A Network in a Laptop: Rapid Prototyping for Software-Defined Networks. 9th ACM Workshop on Hot Topics in Networks, October 20-21, 2010, Monterey, CA. Acesso em: 12 de novembro de 2013 T. Kohonen, The self-organizing map, Proceedings of the IEEE, vol. 78, no. 9, pp. 1464–1480, 1990. Acesso em: 10 de outubro de 2012 FARIAS F. Pesquisa Experimental para a Internet do Futuro:Uma Proposta Utilizando Virtualização e o Framework OpenFlow, XXIX Simpósio Brasileiro de Redes de Computadores e Sistemas Distribuídos SBRC 2011 Disponível em: http://sbrc2011.facom.ufms.br/files/mc/mc1.pdf - Acesso em: 10 agosto 2012 Sachdeva M. Deployment of Distributed Defense against DDoS Attacks in ISP, Domain, International Journal of Computer Applications (0975 – 8887) Volume 15– 25 No.2, February 2011 Disponível em: http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.206.5582&rep=rep1&type= pdf Ming L. Simulation Study of Flood Attacking of DDOS, International Conference on Internet Computing in Science and Engineering , Janeiro 2008. Disponível em: http://www.asres07.umac.mo/rectors_office/docs/weizhao_cv/pub_refereed_conferen ces/2008/3112a286%5B1%5D.pdf OpenFlow.org, 2011. Disponível em: <http://www.OpenFlow.org/>. Acesso em: 10 agosto de 2012. Wireshark.org, 2006. Disponível em: <http://www.wireshark.org>. Acesso em: 02 de novembro 2013. NOXREPO.org, 2011. Disponivel em:< http://www.noxrepo.org/pox/about-pox/> . Acesso em: 04 de abril de 2013. Sourceforge, 2010. “tcpreplay tool,” http://tcpreplay.sourceforge.net/. Tribe Flood Network 2000 Tool, 2000 Disponivel em : <http://packetstormsecurity.com/search/?q=tfn2k>. Acesso em : 10 de maio de 2013.