[Artigo] Teste de Negação de Serviço torna-se Teste de Desempenho

5 de outubro de 2015

lgClavis (1)

A Clavis Segurança da Informação é uma empresa especializada em soluções e treinamentos na área de segurança da informação. Dentre diversas soluções em seu portfólio, o SADI – Simulador de Ataques Distribuídos de Indisponibilidade – desenvolvido pela Clavis, será analisado em um artigo que você pode conferir abaixo:

Por: Raphael Machado, Rafael Soares, Anezio Campos, José Renato e Bruno Salgado

Histórico

Nos últimos anos, a Clavis consagrou-se como uma das principais especialistas na simulação de ataques distribuídos de negação de serviços — ou, como são mais conhecidos, ataques DDoS, do inglês Distributed Denial of Service. O SADI — Simulador de Ataques Distribuídos de Indisponibilidade desenvolvido pela Clavis — vem sendo utilizado para testar o comportamento de redes, sistemas e aplicações de bancos, empresas de comércio eletrônico, órgãos públicos e vários outros tipos de instituição, face a ataques DDoS. Na totalidade das simulações de ataque, o SADI foi capaz de determinar os limites do sistema testado, a partir do qual caracterizou-se a indisponibilidade do sistema.

No “currículo” do SADI, alternam-se os sucessos na simulação de ataques DDoS de grandes proporções e os prêmios e reconhecimentos obtivos pela ferramenta, dentre os quais destacamos a seleção para o programa RHAE/CNPq 2012, a obtenção do prêmio de inovação do CIAB/FEBRABAN 2013, e o primeiro lugar na chamada TI-Maior/FINEP 2013.

As demandas do mercado, no entanto, tornaram o SADI uma ferramenta muito mais complexa do que um simples “simulador de ataques”. Ao longo dos anos, o SADI vem incorporando uma série de funcionalidades que o permite ser capaz de reproduzir uma enorme variedade de cenários de sobrecarga, incluindo cenários de ataques DDoS dos mais diversos, mas também contemplando cenários de uso legítimos, tais como aqueles decorrentes de sobrecargas causadas por promoções ou lançamentos de produto. Em particular, o SADI passou a contar com um sofisticado ambiente de simulação de navegação para o teste de aplicações web. Adicionalmente, os recursos de monitoramento das simulações e de mensuração dos efeitos de degradação tornaram-se altamente precisos. Em outras palavras, o SADI tornou-se uma ferramenta completa para a Avaliação de Desempenho de Redes, Sistemas e Aplicações.

Todo esse movimento de evolução do SADI veio acompanhado de uma modificação do perfil de atuação da Clavis em seu serviço de Teste de Negação de Serviço. A empresa passou a, não apenas, identificar cenários de ataque que ocasionavam indisponibilidade, mas também, a avaliar cenários legítimos de uso e os seus efeitos na degradação de serviços e na “experiência do usuário”. De fato, o que se observou é que era tênue a fronteira entre os cenários de ataque e os cenários legítimos de sobrecarga. Com isso, a empresa entendeu que seria sensato expandir formalmente o escopo de seu Teste de Negação de Serviço, nele incluindo todo tipo de teste de sobrecarga — maliciosa ou legítima — e renomeá-lo para Teste de Desempenho, e evidenciando a capacidade de, não apenas, identificar cenários de indisponibilidade, mas também, de mensurar os efeitos de degradação decorrentes da sobrecarga.

Ataques DDoS e o Teste de Negação de Serviço

Desde meados de 2012, a Clavis incorporou a seu portifólio de produtos e serviços o chamado Teste de Negação de Serviço. O Teste de Negação de Serviço complementava muito bem o então principal serviço da Clavis, que era o Teste de Invasão, ao seguir a mesma filosofia de Segurança Ofensiva, porém, com foco nos cenários de ataque conhecidos como Ataques DDoS.

Ataques DDoS consistem na ação coordenada de uma série de máquinas controladas por um agente malicioso que busca sobrecarregar um ativo computacional. Por serem baseados na ação de milhares de hosts distribuídos geograficamente e executando requisições que, muitas vezes, não são muito diferentes das requisições típicas de um usuário legítimo, os ataques DDoS representam um enorme desafio no que diz respeito a questões de predição, detecção, classificação, resposta e rastreamento de origens e responsáveis. Em um ataque DDoS “clássico”, os usuários de computadores responsáveis pela sobrecarga nem mesmo estão cientes de que suas máquinas estão envolvidas em um ataque – por seguirem cegamente as instruções de ataque recebidas, estas máquinas costumam ser denominadas zumbis ou slaves, enquanto as máquinas que emitem os comandos de ataque são denominadas mestres. Cada mestre emite comando para um conjunto de zumbis, e as máquinas mestres, por sua vez, é que são diretamente controladas por um atacante. A Figura 1 apresenta um esquema simplificado de como funciona um ataque DDoS.

É importante lembrar que, na prática, as máquinas atacantes consistem em milhares de hosts distribuídos nos cinco continentes, o que dificulta muito as ações de prevenção e resposta a este tipo de ataque.

Quando a Clavis concebeu o seu serviços de Ataque de Negação de Serviço, o maior desafio foi desenvolver um simulador que fosse capaz de reproduzir ataques DDoS com a maior fidelidade possível em relação aos cenários reais de ataque. Para alcançar tais objetivos – e, considerando-se as restrições óbvias quanto ao uso de máquinas de pessoas físicas na simulação de ataques – a Clavis lançou mão dos serviços de infraestrutura (IaaS) disponíveis na Internet. Por meio do uso de servidores de virtualização espalhados pelo mundo, a Clavis consegue instanciar rapidamente um enorme número de máquinas atacantes, cada uma delas capaz de executar uma grande quantidade de protocolos de ataque. Com isso, é possível alcançar o objetivo de se instanciar rapidamente uma rede de atacantes versátil e com características adequadas de distribuição geográfica. A Figura 2 apresenta as atuais bases de instanciação de máquinas de ataque do SADI.

O desenvolvimento do SADI até o seu atual estágio foi um enorme desafio técnico, e a Clavis reconhece a importância do apoio das agências de fomento CNPq e Finep em todas as etapas do desenvolvimento do SADI – desde as primeiras pesquisas a respeito de técnicas de ataque DDoS até a implementação das ferramentas de simulação de ataque.

Os tipos de sobrecarga de redes, sistemas e aplicações

Embora os ataques DDoS clássicos fossem baseados na exploração de protocolos de camadas inferiores para alcançar a indisponibilidade – por exemplo, ICMP flood (Camada 3), SYN Flood (Camada 4) e Smurf Attack (Camada 4) – o que se observou, com o passar do tempo, é que ataques baseados em protocolos superiores (Camada de Aplicação) causam impactos muito maiores para os mesmos parâmetros de ataque (vazão, memória e processamento do atacante). Dessa forma, observa-se, mais recentemente, uma tendência dos ataques que fazem uso de protocolos de Camada 7, tais como o HTTP GET Flood e o HTTP POST Flood – além de ataques que executam demandas a aplicações web, conhecidos como Ataques Transacionais. De fato, ao efetuar demandas que instanciam a execução de rotinas sofisticadas em uma aplicação web, tais como operações em bancos de dados e requisições a sistemas externos, um Ataque Transacional é capaz de causar grandes impactos na aplicação web a partir de um pequeno conjunto de demandas. Veja a Figura 3 para uma descrição dos serviços fornecidos por cada camada.

Captura de Tela 2015-10-06 às 10.29.33

Nos últimos anos, a Clavis vem se especializando na execução de testes de sobrecarga de aplicações web. Trata-se de uma atividade altamente especializada, e de baixa reprodutibilidade, uma vez que cada rotina de testes somente poderá ser aplicada a uma única aplicação web. E, mesmo o desenvolvimento de uma única rotina de testes, em geral, demanda uma forte interação com a equipe de desenvolvimento da aplicação web testada – algumas vezes, até mesmo, pequenas modificações na própria aplicação web. O SADI possui, hoje, um ambiente de especificação de cenários de sobrecarga no qual é possível especificar, de maneira relativamente simples, um conjunto de cenários de navegação em uma aplicação web, além de parâmetros de execução que especificam quantos usuários simultâneos estarão executando tais cenários de navegação. Com isso, o SADI proporciona uma variedade de cenários de sobrecarga que variam dos clássicos protocolos de camadas 3 e 4 até a sobrecarga de aplicações web, passando pela exploração de protocolos de camada 7 – além de contemplar, se for o caso, cenários de sobrecarga causados por usuários maliciosos.

A criação do Teste de Desempenho

De maneira resumida, o que se observou, com o passar do tempo, é que a Clavis passou a receber uma crescente demanda por testes que tinham por objetivo não a simulação de cenários de ataque, mas a simples reprodução de cenários legítimos de sobrecarga, tais como aos quais um sistema pode estar sujeito em decorrência de um aumento súbito de demanda – por exemplo, devido ao lançamento de um produto ou campanha promocional. Se, por um lado, as características de topologia das máquinas utilizadas na geração de sobrecarga eram bem mais simples – por exemplo, sem a necessidade de utilização de hosts distribuídos geograficamente – por outro lado, a lógica da execução dos testes era bem mais complexa. Com o tempo, a Clavis se especializou no desenvolvimento de robôs capazes de reproduzir complexos cenários de navegação e casos de uso. Estava sendo criado um novo modelo de teste de sobrecarga, caracterizado por um novo conjunto de cenários de sobrecarga com características próprias. A decisão da Clavis foi a de unificar todos os tipos de teste de sobrecarga na forma de um novo serviço, muito mais abrangente, ao qual denominamos Teste de Desempenho.

Formalmente, o novo Teste de Desempenho da Clavis tem por objetivo avaliar o desempenho de redes de computadores, sistemas de informação e aplicações web face a diversos tipos de cenário de sobrecarga. O serviço baseia-se na simulação de uma série de cenários de sobrecarga, observando-se, para cada cenário, quais os efeitos de indisponibilidade ou degradação de serviços na rede, sistema ou aplicação avaliada. Para simular os diversos cenários de sobrecarga desejados, a Clavis faz uso de seu simulador SADI, o qual baseia-se na instanciação de milhares de hosts remotos distribuídos nos cinco continentes e que executam diversos tipos de demandas a redes, sistemas e aplicações conforme o roteiro especificado pela central de comando-e-controle da Clavis. Desta forma, a Clavis é capaz de reproduzir com fidelidade os mais diversos tipos de cenários de sobrecarga, sejam eles legítimos ou maliciosos, localizados ou distribuídos, orientados a recursos de rede, a hosts e servidores, ou a aplicações web.

O Teste de Desempenho da Clavis possibilita ao cliente avaliar os cenários-limite de funcionamento de suas redes de computadores, sistemas de informação e aplicação web,  permitindo-o antecipar-se a cenários de sobrecarga e redimensionar seus recursos computacionais. Os relatórios gerados pela Clavis permitirão ao cliente entender quais os cenários que causam degradação de serviço – assim como a intensidade da degradação – e quais os cenários que causam completa indisponibilidade, apontando para as necessidades de redimensionamento de recursos que permitirão alcançar as capacidades desejadas pelo cliente.

O Teste de Desempenho da Clavis permitirá ao cliente:

  • Antecipar e prever o comportamento de redes, sistemas e aplicações em cenários de sobrecarga;
  • Caracterizar os cenários limites de funcionamento de suas redes, sistemas e aplicações, entendendo que, para cenários com demandas ainda superiores, tais recursos estarão indisponíveis;
  • Planejar o redimensionamento de recursos críticos para melhorar os parâmetros de disponibilidade de redes, sistemas e aplicações.

Usuários do Teste de Desempenho

O Teste de Desempenho é um serviço interessante para qualquer organização que necessite caracterizar o comportamento de uma rede, sistema ou aplicação face a cenários de sobrecarga, aí incluídos desenvolvedores de sistemas, provedores de infraestrutura de redes, e usuários de redes, sistemas e aplicações.

Alguns clientes típicos são listados a seguir

  • Empresas de comércio eletrônico que desejam avaliar se o aumento súbito de clientes – por exemplo, decorrente de uma promoção – irá causar degradação ou indisponibilidade de seus sistemas de venda.
  • Empresas em geral que desejam saber se seu website irá tolerar um cenário de sobrecarga causada pelo lançamento de um produto.
  • Empresas em geral que desejam saber se estão suscetíveis a um ataque distribuído de negação de serviço.
  • Provedores de serviços de rede e internet que desejam executar testes de sobrecarga para determinar os parâmetros de qualidade dos serviços que estão oferecendo.
  • Empresas de desenvolvimento de aplicações web que desejam testar seus produtos em cenários próximos àqueles aos quais os produtos estarão submetidos em produção.

Considerações finais

A Clavis, por meio de seu novo serviço de Teste de Desempenho, oferece ao mercado um novo modelo para a avaliação de desempenho de redes, sistemas e aplicações. Por basear-se no SADI, o simulador desenvolvido pela Clavis para a reprodução de cenários de ataque DDoS, o Teste de Desempenho é capaz de reproduzir uma enorme quantidade de cenários de sobrecarga — sempre caracterizando com precisão os efeitos de degradação sobre a rede, sistema ou aplicação avaliada.

O Teste de Desempenho da Clavis é um importante aliado de desenvolvedores, provedores e usuários de redes de computadores, sistemas de informação e aplicações web, permitindo uma percepção precisa a respeito dos limites destas redes, sistemas e aplicações e possibilitando validá-los frente a requisitos concretos de desempenho e disponibilidade.

Conheça os serviços da Clavis através do link: www.clavis.com.br/servico/.