Páginas

21 de abr de 2016

Recomendações para Melhorar o Cenário de Ataques Distribuídos de Negação de Serviço (DDoS)

Recomendações para Melhorar o Cenário de Ataques Distribuídos de Negação de Serviço (DDoS)

Autor: CERT.br
Versão: 1.0 — 19/04/2016

Sumário

1. Introdução

Negação de serviço, ou DoS (Denial of Service), é uma técnica pela qual um atacante utiliza um equipamento conectado à rede para tirar de operação um serviço, um computador ou uma rede conectada à Internet. Quando usada de forma coordenada e distribuída, ou seja, quando um conjunto de equipamentos é utilizado no ataque, recebe o nome de Ataque Distribuído de Negação de Serviço (DDoS -Distributed Denial of Service).
Um ataque DDoS não tem o objetivo direto de invadir e nem de coletar informações, mas sim de exaurir recursos e causar indisponibilidade ao alvo. Os usuários desses recursos são diretamente afetados e ficam impossibilitados de acessar ou realizar as operações desejadas, já que o alvo do ataque não consegue diferenciar os acessos legítimos dos maliciosos e fica sobrecarregado ao tentar tratar todas as requisições recebidas.
Os ataques DDoS têm sido um dos grandes problemas enfrentados pelas organizações e usuários de Internet. Apesar de não ser possível impedir que eles ocorram, com um planejamento adequado, é possível torná-los menos eficazes e danosos.
Este documento visa reunir boas práticas de segurança que devem ser seguidas pelos diversos setores que formam a Internet para tentar reduzir os ataques DDoS e minimizar os problemas por eles causados.
As soluções apresentadas são alternativas a serem consideradas para o tratamento dos ataques e não representam uma lista exaustiva de possibilidades, já que novas soluções podem surgir. Além disso, não faz parte do escopo do documento detalhar tecnicamente as soluções citadas, mas sim, que elas possam servir como referência para o leitor.

2. Principais alvos e motivações dos ataques DDoS

Qualquer rede, equipamento ou sistema acessível pela Internet pode vir a ser alvo de um ataque DDoS e, da mesma forma, também pode gerar um ataque, caso esteja infectado, mal-configurado ou invadido. Já foram observados alvos de diversos setores, como provedores, jogos, notícias, bancos, comércio eletrônico, governo, indústria e partidos políticos.
O alvo dos ataques pode vir a enfrentar problemas como indisponibilidade de acesso a serviços e recursos legítimos, danos à imagem, perdas financeiras, perda de credibilidade e dificuldade em continuar seus negócios. Os ataques também costumam gerar efeitos colaterais, como excesso de logs, problemas com backups automatizados, aumento de custos pelo maior consumo de banda e, ainda, refletir em outras redes do mesmo provedor de acesso, armazenamento ou nuvem.
Assim como os setores alvo, as motivações dos atacantes também são das mais variadas e, muitas vezes, difíceis de ser determinadas. De forma geral elas podem ser divididas nos seguintes grupos:
  • ganho econômico ou financeiro: são ataques direcionados principalmente a empresas e realizados, por exemplo, para causar prejuízos a concorrentes (concorrência desleal), tentar extorquir dinheiro e como forma de demonstrar "poder de fogo" a possíveis clientes e alvos;
  • represália ou vingança: são ataques realizados como resposta a fatos que os atacantes julgam ser injustos ou que, de alguma forma, os deixaram descontentes;
  • crença ideológica ou política: são ataques realizados por desavenças políticas e diferenças religiosas. Costumam estar associados à prática do hacktivismo;
  • distração para outros ataques: são ataques realizados com o objetivo de distrair as equipes de rede e segurança das empresas atacadas pois, enquanto estão ocupados tentando mitigar o ataque DDoS, os atacantes aproveitam para efetuar outras atividades maliciosas como, por exemplo, furtar dados e invadir sistemas;
  • desafio intelectual: na sua maioria, os atacantes desta categoria são iniciantes e realizam os ataques para experimentar e aprender como realizar diversos ataques DDoS;
  • outros: motivações individuais e genéricas, como tentativa de adiamento de prazos para a entrega de documentos e trabalhos.

3. Como são realizados os ataques DDoS

Devido à grande quantidade de ferramentas disponíveis na Internet, muitas delas gratuitas ou a preços cada vez mais acessíveis, é possível praticamente a qualquer um realizar um ataque DDoS. De forma geral os ataques ocorrem das seguintes formas:
  • por intermédio de botnets formadas por equipamentos infectados, mal-configurados ou invadidos, como computadores pessoais, servidores Web, dispositivos móveis, câmeras, CPEs, roteadores Wi-Fi,modems banda larga, etc. O controlador da botnet envia comandos a esses equipamentos para que ataquem um alvo específico;
  • pela exploração de características em serviços de Internet, como DNS, NTP, SSDP e CHARGEN, que permitem altas taxas de amplificação de pacotes. O atacante forja o endereço IP da vítima fazendo com que ela receba diversas respostas grandes, as quais consomem uma quantidade considerável de banda da rede. Diversos equipamentos, como CPEs, costumam vir com esses serviços habilitados e podem ser abusados;
  • pela ação voluntária de pessoas que, por intermédio do acesso a sites específicos ou pela instalação de ferramentas como HOIC, LOIC, RUDY e Slowloris, disponibilizam seus computadores para participar dos ataques, os quais são coordenados por redes sociais e canais de IRC, entre outros meios;
  • por meio de aplicações Web específicas chamadas de booters, IP stressers ou DDoSers, cujos serviços muitas vezes são ofertados na Internet como ferramentas legítimas de teste de carga mas que, na verdade, são usados como uma interface para os ataques que são realizados via botnets ou máquinas alugadas para este fim;
  • por meio da exploração de vulnerabilidades presentes em serviços e aplicações, geralmente causadas por erros de programação e falhas de configuração.
Há também os casos não intencionais de negação de serviço que costumam ocorrer por falhas de dimensionamento das aplicações e problemas de escalabilidade de recursos, entre outros motivos. Esses casos não devem ser confundidos com ataques, pois o próprio uso normal dos sistemas pode levar à sobrecarga e à consequente lentidão ou indisponibilidade do serviço em questão.

4. Tipos de ataques DDoS

Não existe um tipo único de ataque DDoS e, infelizmente, não há uma solução única para tratar desse problema. Por isso, conhecer e entender os diferentes tipos de ataques é essencial para que as organizações possam planejar adequadamente as ações a serem tomadas.
Basicamente existem três tipos de ataques DDoS: ataques à camada de aplicação, ataques de exaustão de recursos de hardware e os ataques volumétricos. Eles podem ser realizados de forma isolada ou em conjunto. Um atacante pode, por exemplo, realizar um ataque apenas à camada de aplicação ou combiná-lo com um ataque volumétrico. Ataques combinados costumam ter mais impacto pois requerem o uso conjunto de diferentes formas de preparação, detecção, análise e mitigação.

4.1 Ataques à camada de aplicação

Os ataques à camada de aplicação costumam ser mais difíceis de ser detectados, pois podem ser confundidos com problemas de implementação da aplicação e não necessitam de muitas máquinas e nem de muito tráfego para ser realizados.
Ataques deste tipo procuram explorar as características específicas de uma aplicação ou serviço (camada 7), de tal maneira a:
  • saturar recursos, caso o serviço não tenha sido bem dimensionado ou configurado;
  • exceder o número máximo de requisições que um servidor Web ou sistema gerenciador de banco de dados (SGBD) consegue gerenciar;
  • fazer consultas complexas aos sistemas que demandem muito processamento.
Exemplos: HTTP GET, HTTP POST, VoIP (SIP INVITE Flood) e Slow Read DDoS.

4.2 Ataques de exaustão de recursos de hardware

Os ataques de exaustão de recursos de hardware tentam consumir a capacidade de equipamentos e exaurir seus recursos. Por exemplo:
  • em roteadores: tentar consumir recursos, como CPU e memória, e a capacidade de encaminhamento de pacotes por segundo (pps);
  • em firewalls e IPSs: tentam consumir a capacidade da tabela de estado de conexões, impedindo que novas conexões sejam estabelecidas.
Exemplos: fragmentação e TCP Syn Flood.

4.3 Ataques volumétricos

Os ataques volumétricos tentam exaurir a banda disponível enviando ao alvo grande volume de tráfego. Para conseguir gerar esse volume os atacantes utilizam meios como botnets, máquinas com bastante banda, máquinas com pouca banda porém em grande quantidade ou, ainda, exploram características específicas de serviços UDP que permitem a amplificação do tráfego.
O DRDoS (Distributed Reflective Denial of Service) é um exemplo de ataque volumétrico que:
  • explora características em protocolos de Internet que permitem altas taxas de amplificação de pacotes, e;
  • utiliza endereços IP forjados (spoofados) para que os pacotes amplificados sejam direcionados para o alvo do ataque.
Muitos dos protocolos usados nos ataques DRDoS fazem parte legítima da infraestrutura pública da Internet. Entretanto, em alguns equipamentos, como CPEs, eles são instalados por padrão e abusados por atacantes, muitas vezes, sem que os donos sequer saibam que estão provendo esses serviços.
Alguns protocolos abusados e o fator de amplificação que podem representar (US-CERT Alert TA14-017A) quando explorados são:
  • DNS (53/UDP): fator de amplificação de 28 até 54 vezes;
  • NTP (123/UDP): fator de amplificação de 556.9 vezes;
  • SNMPv2 (161/UDP): fator de amplificação de 6.3 vezes;
  • NetBIOS (137–139/UDP): fator de amplificação de 3.8 vezes;
  • SSDP (1900/UDP): fator de amplificação de 30.8 vezes;
  • CHARGEN (19/UDP): fator de amplificação de 358.8 vezes.
Um exemplo de funcionamento deste tipo de ataque, abusando de servidores DNS, é mostrado no documento Recomendações para Evitar o Abuso de Servidores DNS Recursivos Abertos. A Figura 1 exemplifica o ataque.
[Visão geral do ataque de negação de serviço utilizando
servidores DNS recursivos abertos.] 

Figura 1: Visão geral do ataque de negação de serviço utilizando servidores DNS recursivos abertos.
  1. O atacante publica um registro muito grande, em geral TXT, em um servidor DNS sob seu controle (muitas vezes esse pode ser um servidor previamente comprometido pelo atacante).
  2. O atacante, de posse de uma lista de servidores DNS recursivos abertos, envia a estes servidores centenas ou milhares de consultas pelo registro publicado no passo 1, forjando o endereço IP da vítima, ou seja, colocando o endereço IP da vítima como endereço de origem da consulta (2a). Deste modo, o atacante faz com que as respostas sejam enviadas para a vítima e não para a máquina que fez as consultas. Na primeira consulta recebida por um servidor recursivo este vai buscar a resposta no servidor controlado pelo atacante (2b), nas demais consultas a resposta será enviada diretamente do cache do servidor recursivo aberto.
  3. A vítima recebe as respostas DNS, que costumam gerar uma amplificação de 28 até 54 vezes o tráfego inicial de consultas, pois para uma consulta média de aproximadamente 50 bytes podem ser retornados cerca de 2.700 bytes de resposta para a vítima.

5. Como evitar que suas redes e sistemas sejam abusados para gerar ataques DDoS

Os ataques DDoS se aproveitam da grande dependência e interligação entre as redes e sistemas na Internet. Boas práticas de segurança podem ser aplicadas para prevenir que redes e sistemas sejam abusados e gerem ataques, porém, sem uma preparação adequada, pouco pode ser feito para impedir que um ataque tenha sucesso.
Dessa forma, a segurança de cada uma das redes e sistemas depende diretamente da segurança dos demais. Para resolver o problema dos ataques DDoS é necessária uma ação conjunta dos diversos setores que formam a Internet. A seguir são descritas as ações que cada um deve executar para não gerar ataques DDoS.

5.1. Usuários finais

Alguns usuários participam dos ataques voluntariamente, disponibilizando suas máquinas por meio da instalação de ferramentas ou pelo acesso a sites específicos. Ao fazer isso acham que estão contribuindo para alguma causa que consideram importante. Essa visão pode ser explorada pelos atacantes para conseguir o apoio e a participação de um maior número de pessoas. Por isso é importante que esses usuários sejam alertados que, por trás dos ataques DDoS, nem sempre as motivações são tão dignas.
Ao contribuir voluntariamente para os ataques DDoS os usuários podem participar de ações criminosas e ser diretamente impactados pelos efeitos colaterais causados. Por exemplo, o aumento de uso de banda gerado pelos ataques pode ser convertido em aumento de gastos no provedor de conectividade que, para compensar o prejuízo, poderá cobrar mais nas mensalidades.
A maioria dos usuários, entretanto, participa dos ataques de forma involuntária, ao ter seus equipamentos (como computadores, dispositivos móveis e CPEs) infectados por bots ou invadidos e com ferramentas de DDoS neles instaladas. Por isso, devem ser conscientizados sobre a importância de manter seus equipamentos seguros.
Investir em conscientização de usuários também é uma medida essencial em organizações que permitem o uso de equipamentos pessoais dentro da rede corporativa. Sem uma política de segurança adequada, a organização pode vir a ser responsabilizada por ataques partindo de sua rede e gerados dos computadores e dispositivos móveis de seus usuários.
A proteção dos equipamentos dos usuários deve envolver tanto a aplicação de soluções técnicas como a adoção de uma postura preventiva. As soluções técnicas ajudam os usuários a se proteger das ameaças já conhecidas e para as quais já existem formas de prevenção, enquanto que a postura preventiva auxilia em outras ameaças, principalmente as que envolvem engenharia social.
As soluções técnicas envolvem:
  • proteger os equipamentos de rede, mantendo atualizado o firmware e alterando a senha de administração;
  • proteger os computadores e dispositivos móveis, mantendo os programas instalados com as versões mais recentes e com todas as atualizações aplicadas;
  • usar senhas bem elaboradas, com grande quantidade de caracteres e que não contenham dados pessoais, palavras conhecidas e sequências de teclado;
  • instalar e manter atualizados mecanismos de segurança, como antivírus e firewall pessoal.
A postura preventiva deve incluir cuidados como:
  • ficar atento ao clicar em links, independente de como foram recebidos e de quem os enviou. Ao acessar links curtos usar complementos que possibilitem que o link de destino seja visualizado;
  • não considerar que mensagens vindas de conhecidos são sempre confiáveis, pois o campo de remetente pode ter sido falsificado ou elas podem ter sido enviadas de contas falsas ou invadidas;
  • não abrir ou executar arquivos sem antes verificá-los com o antivírus.
Mais dicas para usuários finais estão disponíveis na Cartilha de Segurança para Internet.

5.2 Desenvolvedores de aplicações Web

Servidores Web costumam ser máquinas bem conectadas e com grande capacidade de processamento e, por isso, são muito visados por atacantes que, ao invadi-los, instalam artefatos maliciosos, como ferramentas para disparar ataques DDoS.
Para garantir a segurança de um servidor Web é necessário, além de seguir as boas práticas de administração de máquinas descritas na seção 5.3, adotar alguns cuidados extras como:
  • manter o servidor atualizado, incluindo o serviço Web, o SGBD e todas as extensões, módulos e plugins utilizados;
  • jamais executar os serviços usando contas privilegiadas, como "root" e "Administrador";
    • criar usuários distintos e com privilégios mínimos para diferentes serviços e funções. Por exemplo, criar um usuário para o serviço Web, outro para o SGBD e outros para cada aplicação. Assim, se uma dessas contas for invadida, os danos ficarão restritos apenas aos privilégios de acesso que essa conta possui.
  • ser criterioso com as permissões de diretórios e arquivos. Permitir, por padrão, apenas a leitura e autorizar a escrita e a execução de acordo com a necessidade de cada usuário ou grupo;
  • desabilitar os módulos, serviços e recursos desnecessários, incluindo:
    • a listagem de diretórios no servidor Web;
    • a diretiva que mostra informações do servidor Web, como versão, caminho do sistema e nome de banco de dados, pois elas podem ser usadas em ataques e para explorar vulnerabilidades;
    • os métodos TRACE e TRACK, pois eles permitem depurar informações e expõem dados contidos em cookies.
Para manter um ambiente Web seguro é importante também garantir a segurança das aplicações, pois elas são uma das principais portas de entrada para o acesso indevido aos servidores Web.
Atualmente as aplicações Web estão cada vez mais complexas e com novos recursos integrados. Além disso, sofrem com o descuido dos usuários e administradores em elaborar boas senhas, com a grande quantidade de sistemas vulneráveis, com a pressão econômica para ser rapidamente lançadas (mesmo que com problemas) e com a falta de desenvolvedores Web capacitados em programação segura.
A segurança de uma aplicação Web necessita ser pensada em todas as fases, incluindo o projeto, o desenvolvimento, os testes, a entrada em produção, o acompanhamento diário de logs e a manutenção. Também deve estar presente em todas as partes que compõe a aplicação, como o framework onde foi desenvolvida, o sistema gerenciador de conteúdos (Content Management System – CMS) onde é executada e o SGBD que ela acessa.
Além disso, é importante destacar que o fato de uma aplicação estar em conformidade (compliance) com padrões e certificações não garante que ela esteja segura, pois novas vulnerabilidades podem surgir e para as quais ela ainda não foi testada. Por isso, os cuidados com a segurança devem ser uma tarefa cotidiana e um processo contínuo.
Algumas dicas para melhorar a segurança de aplicações Web são:
  • incorporar práticas de desenvolvimento seguro de software logo nas primeiras fases de projeto;
  • seguir boas práticas de programação segura. Em OWASP Top Ten Project é possível verificar recomendações de como evitar os riscos de segurança mais críticos, como Cross-Site Scripting (XSS), referência insegura e direta a objetos e, principalmente, a configuração incorreta de segurança;
  • implementar os recursos de segurança, como por exemplo a validação de dados de entrada, sempre no servidor Web pois, quando implementados apenas no cliente, podem ser burlados tanto pelos usuários, ao desabilitarem o JavaScript, como por atacantes, ao usarem ferramentas específicas para interagir com o servidor sem passar pela interface cliente;
  • assegurar que as aplicações gerem logs que facilitem o monitoramento, a detecção de erros e a identificação de tentativas de ataque e de acesso indevido;
  • usar sistemas de controle de versão de código, pois caso uma falha seja encontrada será mais fácil identificar quando ela foi inserida e quais as versões que precisam ser modificadas;
  • manter seguros os computadores usados para o desenvolvimento da aplicação, pois se forem invadidos ou infectados podem comprometer também o ambiente de produção;
  • considerar que as aplicações serão executadas em um ambiente hostil e, por isso, devem ser testadas não apenas para os casos de uso, mas também, para os de abuso;
  • usar ferramentas de teste, como o OWASP Zed Attack Proxy Project que analisa o comportamento da aplicação e aponta possíveis vulnerabilidades;
  • manter o CMS protegido:
    • manter o CMS e os plugins atualizados, sempre com as versões mais novas;
    • restringir o acesso à interface de administração apenas aos administradores das aplicações;
    • não usar contas padrão de administração, como por exemplo o usuário "admin";
    • usar senhas fortes e, se disponível, habilitar a verificação em duas etapas;
    • seguir os guias de segurança dos respectivos fornecedores de CMS;
    • utilizar plugins que permitam melhorar a segurança do CMS, como por exemplo o Wordfence. Dicas de como utilizá-lo podem ser obtidas em Wordfence – Um plugin de segurança para Wordpress.
  • considerar o uso de um firewall de aplicação Web (Web Application Firewall – WAF) pois ele oferece recursos extras de proteção que ajudam a identificar e bloquear os ataques mais comuns;
    • apesar do WAF ajudar a proteger as aplicações ele deve ser usado como uma camada a mais e não como solução única de segurança, pois qualquer falha que apresente pode colocar em risco toda a aplicação.
  • estar atento a sites e blogs de segurança para ficar ciente de tendências de ataques e novas vulnerabilidades.
Mais dicas podem ser encontradas em Dicas para manter um ambiente Web seguro.

5.3 Administradores de redes

Administradores de redes podem ajudar a melhorar o cenário dos ataques DDoS implementando boas práticas que impeçam que a infraestrutura pela qual são responsáveis seja abusada para gerar ataques. Algumas boas práticas são:
  • manter os equipamentos atualizados, não apenas o sistema operacional mas também todos os serviços nele executados;
  • excluir os serviços desnecessários (hardening), pois quanto menos serviços estiverem sendo executados menores serão as chances de vulnerabilidades neles existentes serem exploradas;
  • configurar adequadamente os serviços, principalmente os que podem ser abusados para amplificação do tráfego (mais detalhes na seção 5.4);
  • ser cuidadoso ao usar e elaborar senhas e, se disponível, usar verificação em duas etapas;
  • criar usuários distintos para diferentes serviços e funções;
  • monitorar os logs, a procura de erros e de tentativas de exploração de vulnerabilidades;
  • verificar o tráfego de entrada na rede a procura de tentativas de acesso não autorizado;
  • verificar o tráfego de saída da rede, a procura de indícios de vazamento de dados, varreduras (scan) e acessos indevidos partindo da rede;
  • habilitar filtro antispoofing, implementando mecanismos de egress filtering que impedem a saída da rede de pacotes com endereço de origem pertencente a uma rede reservada e que não faça parte de um dos blocos de endereços da rede interna. Detalhes sobre esse tipo de filtragem podem ser encontrados no Portal de boas práticas para a Internet no Brasil;
  • fazer campanhas de conscientização de usuários, alertando sobre os riscos e formas de prevenção;
  • criar uma política de segurança definindo as regras de uso de equipamentos pessoais dentro da organização;
  • ter pessoal treinado para tratar incidentes de segurança, pois se a rede estiver sendo abusada para gerar ataques DDoS são grandes as chances do administrador receber notificações dos responsáveis pela rede ou sistema atacado;
  • estar atento a sites e blogs de segurança para ficar ciente de tendências de ataques e novas vulnerabilidades.

5.4 Provedores de conectividade

Assim como os administradores de rede, os provedores de conectividade (ISP – Internet Service Provider) podem ajudar a reduzir os ataques DDoS implementando boas práticas que impeçam que as infraestruturas deles e de seus clientes sejam abusadas para gerar ataques. Para isso, é essencial o combate aos ataques do tipo DRDoS.
Os principais motivos dos ataques DRDoS serem tão potentes são o tráfego de endereços forjados (spoofados), o abuso de serviços que permitem a amplificação de tráfego e a grande quantidade de equipamentos de redes, como CPEs, instalados sem preocupações de segurança. Algumas boas práticas que podem ajudar a reverter esse cenário são:
  • habilitar filtro antispoofing, implementando mecanismos de egress filtering que impedem a saída da rede de pacotes com endereço de origem pertencente a uma rede reservada e que não faça parte de um dos blocos de endereços da rede interna. Detalhes sobre esse tipo de filtragem podem ser encontrados no Portal de boas práticas para a Internet no Brasil;
  • proteger os CPEs dos clientes:
    • desabilitar os serviços desnecessários;
    • manter os equipamentos atualizados, incluindo o firmware;
    • não usar senhas padrão, pois elas são muitas vezes óbvias e facilmente encontradas em listas na Internet;
    • usar senhas bem elaboradas, com grande quantidade de caracteres e que não contenham dados pessoais, palavras conhecidas e sequências de teclado.
  • configurar adequadamente os serviços, principalmente os que podem ser abusados para amplificação do tráfego:
    • serviço DNS (53/UDP):
      • contatar os administradores dos servidores vulneráveis para que corrijam os problemas;
      • permitir acesso aos servidores recursivos apenas para a rede interna;
      • desabilitar a recursão nos servidores autoritativos;
      • usar o recurso Response Rate Limit (RRL) para limitar a quantidade de consultas. Mais detalhes podem ser encontrados no documento Recomendações para Evitar o Abuso de Servidores DNS Recursivos Abertos.
    • serviço NTP (123/UDP):
      • considerar uma implementação mais simples, como o OpenNTP;
      • atualizar para a versão mais recente;
      • desabilitar a função "monitor" no arquivo de configuração;
      • configurar para que o serviço execute apenas como cliente;
      • responder apenas a requisições da rede interna.
    • serviço SNMP (161/UDP):
      • se possível atualizar para a versão mais recente;
      • não utilizar a comunidade "Public".
    • serviço SSDP (1900/UDP):
      • desabilitar o acesso aos equipamentos via WAN e UPnP, se não for necessário.

6. Como tratar ataques DDoS

Toda organização, cedo ou tarde, pode vir a ser alvo de um ataque DDoS e, por isso, deve planejar com antecedência as ações, tanto técnicas como não técnicas, a serem tomadas quando o ataque ocorrer. O planejamento inclui as fases de preparação, detecção e análise, mitigação e pós-ataque, que são descritas detalhadamente a seguir.

6.1 Preparação

A preparação é a fase principal do planejamento pois representa a base para todas as subsequentes (detecção e análise, mitigação e pós-ataque). Além disso, como é a única a ocorrer antecipadamente, enquanto o ataque ainda não está acontecendo, pode ser feita de forma mais detalhada e cuidadosa.
Para uma preparação adequada é importante:
Conhecer a organização: quanto maior for a base de conhecimento sobre a missão da organização e sobre seus recursos, mais fácil será definir o que deve ser protegido e priorizar as ações a serem tomadas.
  • fazer uma análise de risco, identificando o que é crítico para a organização, incluindo dados, serviços e clientes;
  • informar-se sobre o que ocorre, tanto na própria organização como em outros meios (situation awareness):
    • monitorar fontes públicas de informação, como sistemas de busca, repositórios de dados, redes sociais, canais de IRC e blogs, procurando por referências ao nome e aos produtos da organização, pois alguns ataques costumam ser previamente anunciados;
    • informar-se sobre ações da organização que podem atrair atenção demasiada, como o lançamento de novos produtos, o patrocínio de eventos e o apoio a causas polêmicas;
    • informar-se sobre os ataques já ocorridos contra a organização, tentar prever as chances deles ocorrerem novamente, procurar estabelecer a frequência com que ocorrem e identificar quais são os alvos preferidos.
  • verificar com as áreas jurídica e administrativa qual a política a ser seguida no caso de possíveis tentativas de extorsão.
Conhecer o padrão de uso: a monitoração dos recursos permite identificar previamente o comportamento normal de uso e, assim, detectar rapidamente mudanças de padrão.
  • identificar a média e os picos de tráfego de rede, tanto em bps (bits por segundo) como em pps (pacotes por segundo);
  • identificar a taxa de uso de recursos e quais os serviços mais usados pelos usuários;
  • identificar quais os serviços mais visados pelos atacantes;
  • identificar a quantidade média de erros HTTP do tipo 4xx e 5xx (por exemplo, "404 – Não encontrado" e "503 – Serviço indisponível").
Diminuir as possibilidades de ataque: quanto menos expostos estiverem os serviços, sistemas e equipamentos, menores serão as chances deles serem atacados.
  • fazer um inventário da rede, procurando detectar quais sistemas estão mais expostos, a importância deles dentro da organização e quais são os possíveis gargalos e pontos de falha. Não esquecer de mantê-lo atualizado;
  • desabilitar os serviços desnecessários:
    • quanto menos serviços estiverem sendo executados, menores serão as chances das vulnerabilidades neles existentes serem exploradas;
    • a manutenção das máquinas também será mais fácil pois os administradores poderão concentrar seus esforços nos serviços realmente necessários para a organização.
  • verificar a localização de firewalls, WAFs e IPSs na topologia da rede;
    • embora esses equipamentos possam auxiliar na mitigação de ataques DDoS simples, em alguns casos eles podem piorar o problema já que, dependendo da posição e de como estão implementados, podem representar gargalos e pontos únicos de falha. Ao tentar analisar os pacotes e as requisições eles podem ficar sobrecarregados e causar lentidão na rede. Também podem ficar inoperantes e deixar inacessíveis todas as redes e sistemas que deles dependem;
    • conhecer os limites e a capacidade de cada equipamento ou sistema e, sempre que possível, posicioná-los na topologia de forma que os de maior capacidade protejam os de menor capacidade.
  • verificar a alocação de endereços IP:
    • equipamentos de infraestrutura, como roteadores, firewalls e servidores DNS, não devem estar na mesma subrede de serviços e de clientes;
    • serviços com múltiplos endereços IP devem ter, se possível, cada IP alocado em uma subrede diferente;
    • servidores DNS autoritativos devem estar em subredes diferentes.
Proteger os recursos que podem ser atacados: serviços que são acessíveis pela Internet podem vir e ser atacados e, por isso, devem ser protegidos.
  • manter os servidores e equipamentos atualizados para que as vulnerabilidades sejam corrigidas, antes dos atacantes tentarem explorá-las;
  • habilitar ou configurar módulos específicos de servidores Web que podem bloquear alguns tipos de ataques DDoS, como ModEvasive e ModSecurity no Apache;
  • reduzir os valores de TTL (time-to-live) dos registros de DNS dos sistemas que podem ser atacados, pois isso facilita a redireção de tráfego e permite que as mudanças sejam facilmente detectadas;
  • configurar o rate limiting nos equipamentos de rede, tanto no plano de controle (control-plane) quanto no plano de dados (data-plane), caso esteja disponível. Essa funcionalidade permite que a organização descarte o tráfego baseado, por exemplo, na taxa excessiva de tráfego de um dado protocolo;
  • ativar a opção de SYN cookies nos equipamentos que suportem esta funcionalidade, para que sejam alocados recursos apenas para conexões TCP de clientes legítimos. Mais informações na RFC 4987;
  • sincronizar os servidores via NTP (Network Time Protocol), pois isso facilita a correlação de logs e a notificação do ataque. Mais informações em NTP.br.
Preparar para absorver e filtrar o ataque: analisar a resiliência da rede e dos sistemas, ou seja, a capacidade deles de resistência, adaptação e recuperação frente a ataques DDoS.
  • usar serviços de proteção contra ataques DDoS, como comunidades BGP (Border Gateway Protocol) para Black Hole e Sink Hole;
    • serviços de Black Hole, também chamados de null-routing, descartam todo o tráfego destinado a uma determinada máquina ou serviço, reduzindo os efeitos do ataque em outros serviços porém efetivando o ataque, já que o serviço alvo ficará indisponível;
    • serviços de Sink Hole, também chamados de clean-pipe e traffic-scrubbing, redirecionam o tráfego do ataque para servidores fora da organização, que analisam e filtram o tráfego e retornam para a organização apenas o que for considerado legítimo. Devem ser usados com cautela quando o tráfego envolver dados sensíveis, pois podem afetar a confidencialidade das informações e a privacidade dos usuários;
    • considerar o modo de implantação dependendo da maneira como a rede se conecta à Internet;
      • redes que possuem sistema autônomo (Autonomous System – AS) próprio têm autonomia para controlar os anúncios de rota e ativar os serviços de Black Hole e Sink Hole;
      • redes que não possuem AS devem verificar se o contrato com o provedor de conectividade inclui serviços de proteção contra ataques DDoS e quais os custos envolvidos.
  • avaliar a possibilidade de participação no serviço colaborativo UTRS (Unwanted Traffic Removal Service), que facilita a mitigação de ataques DDoS para vítimas que tenham AS próprio. Neste serviço, a vítima anuncia via BGP seu IP sob ataque e os demais participantes podem então descartar tráfego, mais perto da origem, para este destino;
  • verificar se o contrato com o provedor de conectividade inclui as cláusulas abaixo e quais os custos envolvidos:
    • cobrança de uso de banda na modalidade 95 percentil, que permite que os picos de uso sejam desconsiderados;
    • flexibilização de banda em caso de maior consumo (modalidade de contrato on-demand);
      • nesse caso é importante planejar para que a interface física tenha capacidade maior que a banda efetivamente contratada.
  • dimensionar os recursos considerando folgas (super dimensionamento – overprovision), incluindo links com capacidade maior que os picos de tráfego e produtos/serviços que permitam escalabilidade sob demanda (elasticidade);
  • certificar-se que os servidores e equipamentos de rede estão configurados de acordo com as necessidades e preparados para tratar eventuais picos de utilização, por exemplo, emitindo alertas quando os limites normais de uso forem ultrapassados;
  • avaliar a capacidade de carga das aplicações, considerando os picos de uso;
    • identificar gargalos de processamento, como consultas muito lentas ao banco de dados, e analisar as soluções aplicáveis para melhoria de performance;
    • definir uma política de balanceamento de carga que atenda aos resultados da avaliação feita, como melhorar a capacidade e/ou a quantidade dos servidores, ter um hardware dedicado, usar um balanceador externo de carga, usar serviços que permitam escalabilidade automática sob demanda e soluções como proxy reverso, Anycast, GSLB (Global Server Load-Balance) e CDNs (Content Delivery Network);
      • CDNs oferecem funcionalidades que permitem absorver altos volumes de tráfego, distribuir o conteúdo em diferentes servidores/datacenters, fornecer o conteúdo próximo ao requisitante e filtrar os ataques mais comuns contra servidores e aplicações Web, por meio de WAFs;
      • essas funcionalidades podem introduzir latência nas comunicações e afetar o tempo de resposta nas conexões e, por isso, podem não ser recomendadas para sistemas cujo tempo de resposta é crítico para o funcionamento.
Preparar para lidar com o ataque DDoS: ter pessoal preparado para atuar frente ao problema e políticas claras de comunicação.
  • ter um grupo de resposta a incidentes preparado e treinado para tratar ataques DDoS;
    • estabelecer canais de comunicação efetivos para que usuários, clientes, administradores de rede e grupos de segurança possam reportar problemas de acesso aos serviços da organização;
    • estabelecer contato com outros grupos de segurança;
    • definir os procedimentos a serem seguidos no caso de um ataque e mantê-los atualizados;
      • alocar algumas pessoas do grupo para tratar do ataque DDoS e deixar outras alocadas às tarefas cotidianas, já que alguns ataques são realizados com o objetivo de distrair as equipes de segurança enquanto outros ataques são realizados;
      • definir modelos de notificações de incidentes para agilizar o contato com as redes envolvidas.
  • ter pessoal de rede preparado e treinado para lidar com o ataque e implantar medidas de mitigação;
    • definir dentro e fora da organização quem são os responsáveis pelos sistemas e serviços, de forma que possam ser facilmente contatados;
    • definir junto ao provedor de conectividade o canal de comunicação a ser usado e, se possível, testá-lo previamente;
      • formas de contato que dependam da rede ou de servidores específicos podem estar inacessíveis durante o ataque, por isso é importante determinar outros meios, como listar os números de telefone ou endereços de e-mail alternativos.
  • preparar formas alternativas de comunicar aos usuários/clientes da organização sobre a indisponibilidade dos serviços, como ter um blog ou página Web em locais alternativos e que possam ser direcionadas, por exemplo, via alteração de DNS;
  • capacitar os atendentes da central de atendimento (call center), caso a organização tenha esse serviço, para lidar com as reclamações de clientes/usuários e definir os procedimentos a serem seguidos por eles;
  • estar preparado para fazer relatórios gerenciais, estimando os prejuízos causados pelo ataque e os custos envolvidos na mitigação do problema;
  • estar preparado para lidar com entrevistas ou fazer declarações públicas, pois muitos ataques atraem a atenção da mídia.

6.2 Detecção e Análise

A detecção de ataques DDoS depende diretamente de quão preparada a organização está, ou seja, de quanto ela investiu em tempo e recursos na fase de preparação, pois pode ser bastante difícil perceber mudanças e anomalias naquilo que não está sendo monitorado.
A detecção e a análise envolvem os seguintes passos:
Descartar outras opções de problemas: é necessário ter cautela antes de sair considerando qualquer mudança comportamental como sendo um ataque DDoS, pois:
  • alguns limites configurados nos equipamentos podem estar inadequados a realidade de uso;
  • pode se tratar de um problema não intencional, causado, por exemplo, por:
    • alguma atualização recente em serviços que possa ter introduzido falhas;
    • alguma campanha de marketing ou lançamento que possa estar atraindo tráfego acima do normal;
    • algum problema de conectividade, como falha em equipamento de rede ou rompimento de fibra;
    • alguma falha local de conexão que afete apenas alguns usuários;
Tentar identificar o tipo de ataque: após concluir que realmente se trata de um ataque DDoS é necessário tentar entender as suas características e identificar qual o seu tipo, ou seja, se é volumétrico, de aplicação, de exaustão de recursos de hardware ou misto.
  • procurar por mudanças de padrão, comparando os resultados atuais com os anteriores, por meio, por exemplo, de ferramentas de análise e monitoramento de fluxo de rede (netflows) que fornecem informações sumarizadas sobre protocolos, portas e endereços IP de origem/destino mais acessados;
  • tentar levantar quais os recursos estão sendo ou foram afetados, como uso de banda de rede acima do normal, número excessivo de requisições a um determinado serviço ou carga excessiva em algum equipamento de rede;
  • tentar identificar se o ataque é direcionado para uma ou mais máquinas, um ou mais serviços ou, ainda, uma ou mais aplicações.
Obter mais detalhes sobre o ataque: após restringir as possibilidades é o momento de tentar levantar a maior quantidade possível de dados sobre o ataque.
  • tentar determinar o horário de início e de fim, a duração e se o ataque ainda está ocorrendo;
  • detectar quais os serviços que estão sendo usados, tanto na origem como no destino;
  • analisar os logs mais específicos, por exemplo, da aplicação ou do equipamento que está sendo atacado;
  • levantar outras informações que possam ser úteis para a análise.
Tentar determinar o impacto: procurar determinar o impacto do ataque dentro da organização.
  • sistemas críticos que afetam a imagem e os negócios da empresa devem ser tratados com alta prioridade;
  • enquanto que os sistemas não críticos não necessariamente precisam de prioridade máxima e podem ser tratados de forma mais corriqueira.
Ficar atento a outros ataques: mesmo que o ataque já tenha encerrado é importante redobrar a atenção para novos ataques, tanto de DDoS como de outros tipos.
  • alguns ataques ocorrem em "ondas", como forma de testar a capacidade da organização em lidar com o problema, ou seja, podem ocorrer novamente e de forma mais potente;
  • alguns ataques são realizados com o objetivo de distrair as equipes de rede e segurança, pois enquanto estão lidando com o DDoS, outros ataques também estão sendo realizados contra a organização e podem não receber a atenção devida.

6.3 Mitigação

Após analisar e concluir que realmente se trata de um ataque DDoS é necessário manter a calma e seguir os procedimentos definidos na etapa de preparação.
A etapa de preparação é essencial para tornar a mitigação do ataque mais rápida e efetiva. Entretanto, se a organização está sofrendo um ataque DDoS pela primeira vez e/ou não se planejou com antecedência, não significa que não possa fazer nada para mitigar o problema, apenas que talvez seja mais demorado e trabalhoso.
É importante lembrar que não é simples conter totalmente um ataque DDoS em andamento, porém há algumas ações e técnicas que podem auxiliar a reduzir os danos causados. De preferência, a mitigação deve ser aplicada o mais próximo possível da origem do ataque para que o excesso de tráfego impacte o menos possível as demais redes.
As técnicas listadas nessa seção são um resumo de alguns itens citados com detalhes na seção 6.1.
Documentar as ações tomadas: antes de começar a agir é importante lembrar de registrar as ações que estão sendo tomadas.
  • o registro das ações irá ajudar a relatar os problemas e será essencial na etapa pós-ataque (seção 6.4).
Distribuir o alvo do ataque: usar recursos para distribuir o tráfego do ataque entre diferentes servidores, de preferência, entre os que estão localizados próximo dos atacantes.
  • distribuir o serviço alvo entre diferentes servidores, por meio de técnicas como GSLB, Anycast e CDN.
Usar serviços de mitigação: por meio de comunidades BGP é possível redirecionar e filtrar o tráfego.
  • ativar serviços de Sink Hole (clean-pipe ou traffic-scrubbing) para tentar filtrar o tráfego malicioso;
  • ativar serviços de Black Hole (null-routing) para descartar o tráfego destinado ao alvo do ataque;
  • ativar o serviço colaborativo UTRS, informando o IP atacado para que os demais participantes possam descartar o tráfego a ele destinado.
Tentar reduzir o volume de tráfego: efetuar a filtragem de tráfego, respeitando os limites da infraestrutura já que, dependendo do ataque, o processamento (overhead) necessário para analisar e filtrar o tráfego pode sobrecarregar os equipamentos e deixar a rede indisponível.
  • filtrar o tráfego por IP ou porta de origem ou destino;
  • usar rate-limiting e ACLs em equipamentos de rede;
  • usar controle de banda (bps) e de taxa de pacotes (pps);
  • ativar o recurso de SYN cookies nos equipamentos que suportem essa funcionalidade;
  • verificar a possibilidade de aumento temporário de banda.
Tentar mitigar os ataques à camada de aplicação: aplicar medidas de mitigação para proteger a aplicação que está sendo atacada.
  • se possível servir temporariamente páginas estáticas ao invés de dinâmicas e imagens com resolução menor;
  • se a aplicação alvo executar em um computador que também serve outros serviços, tentar movê-la para um servidor exclusivo e, assim, minimizar o impacto sobre os demais serviços;
  • mover a aplicação para uma máquina com mais capacidade de processamento ou usar serviços de virtualização que permitam agregar recursos sob demanda.
Notificar as redes que estão gerando o ataque: informar as redes que estão gerando o ataque para que tomem medidas para interromper essa atividade maliciosa.

6.4. Após o ataque

Após o ataque é o momento de:
  • documentar o incidente, destacando tanto as ações que ajudaram como as que não surtiram o efeito desejado;
  • observar o que poderia ter sido feito previamente que teria auxiliado nas etapas de preparação, detecção, análise e mitigação do ataque;
  • atualizar os contatos de prestadores de serviço, como provedor de conectividade e de serviços de nuvem e de CDN;
  • rever as cláusulas dos contratos, caso eles não estejam de acordo com as necessidades;
  • adequar as etapas de preparação, detecção, análise e mitigação que apresentaram problemas;
  • verificar outros incidentes que possam ter acontecido durante o tempo do ataque;
  • analisar cuidadosamente os arquivos com os logs gravados durante o ataque para tentar coletar outras informações que possam ser úteis;
  • notificar instituições que contribuíram para gerar tráfego durante o ataque. Apesar disso ser pouco viável se houver evidência de uso de IPs forjados, pode ser útil em caso de serviços mal configurados que estão sendo abusados, por exemplo, DNS aberto (open resolver).

7. Glossário

ACL
Access Control List – Lista de controle de acesso.
AS
Autonomous System – Sistema autônomo. É um grupo de redes IP, abaixo de uma única gerência técnica e que compartilham uma mesma política de roteamento. RFC 1930 –https://tools.ietf.org/html/rfc1930.
BGP
Border Gateway Protocol. Protocolo de roteamento usado para trocar informações sobre caminhos entre diferentes redes.
bps
bits per second – bits por segundo.
CDN
Content Delivery Network – Rede de distribuição de conteúdo.
CHARGEN
Character Generator Protocol – Protocolo de geração de caracteres. Utiliza as portas 19/UDP e 19/TCP.
CMS
Content Management System – Sistema de Gerenciamento de Conteúdo.
CPE
Customer Premises Equipment. Nome genérico que se refere aos equipamentos de rede instalados na ponta de acesso do usuário/assinante de um serviço de telecomunicações. Exemplos: modem ADSL, roteador Wi-Fi (Fonte: Wikipedia).
DNS
Domain Name System – Sistema de nomes de domínios. Serviço responsável pela tradução, entre outros tipos, de nome de máquinas/domínios para o endereço IP correspondente e vice-versa. Utiliza as portas 53/UDP e 53/TCP.
DDoS
Distributed Denial of Service – Negação distribuída de serviço. Atividade maliciosa, coordenada e distribuída pela qual um conjunto de computadores e/ou dispositivos móveis é utilizado para tirar de operação um serviço, um computador ou uma rede conectada à Internet.
DoS
Denial of Service – Negação de serviço. Atividade maliciosa pela qual um atacante utiliza um computador ou dispositivo móvel para tirar de operação um serviço, um computador ou uma rede conectada à Internet.
DRDoS
Distributed Reflective Denial of Service – Negação distribuída de serviço com uso de amplificação. Tipo de ataque volumétrico que explora características em protocolos de Internet, que permitem altas taxas de amplificação de pacotes, e utiliza endereços IP forjados (spoofados), para que os pacotes amplificados sejam direcionados para o alvo do ataque.
GSLB
Global Server Load-Balance. Balanceador de carga de servidor global.
HOIC
High Orbit Ion Cannon. Ferramenta que pode ser usada para geração de ataques DDoS.
IPS
Intrusion Prevention System – Sistema de prevenção de intrusão.
IRC
Internet Relay Chat.
ISP
Internet Service Provider – Provedor de serviços de Internet.
LOIC
Low Orbit Ion Cannon. Ferramenta que pode ser usada para geração de ataques DDoS.
NetBIOS
Network Basic Input/Output System – Sistema básico de rede de entrada e saída. Utiliza as portas 137/UDP, 138/UDP e 139/UDP.
NTP
Network Time Protocol – Protocolo de tempo na rede. Tipo de protocolo que permite a sincronização dos relógios dos dispositivos de uma rede, como servidores, estações de trabalho, roteadores e outros equipamentos, à partir de referências de tempo confiáveis (Fonte:http://ntp.br/). Utiliza a porta 123/UDP.
OWASP
Open Web Application Security Project – https://www.owasp.org/.
pps
packets per second – pacotes por segundo.
RUDY
R.U.D.Y., R-U-Dead-Yet?. Ferramenta que pode ser usada para gerar ataques DDoS.
RRL
Response Rate Limit.
SGBD
Sistema gerenciador de banco de dados ou Database Management System (DBMS).
Slowloris
Ferramenta que pode ser usada para gerar ataques DDoS.
SNMP
Simple Network Management Protocol – Protocolo simples de gerenciamento de rede. Utiliza as portas 161/UDP e 161/TCP.
SSDP
Simple Service Discovery Protocol. Protocolo simples de descoberta de serviços. Utiliza a porta 1900/UDP.
TTL
Time to Live.
UPnP
Universal Plug and Play.
WAF
Web Application Firewall.
WAN
Wide Area Network.
XSS
Cross-Site Scripting.



8. Referências

Segue abaixo uma lista de referências que subsidiaram a escrita deste documento e que são recomendadas como leitura complementar.
Relatórios, artigos e guias sobre ataques DDoS
Artigos sobre ataques de DRDoS
Apresentações em eventos sobre ataques DDoS
Boas práticas – AntiSpoofing
Dicas de segurança para ambientes Web
Recomendações e modelos para notificação de incidentes
Outras referências

9. Agradecimentos

Gostaríamos de agradecer a Miriam von Zuben pelo desenvolvimento da versão inicial deste documento e a Cristine Hoepers, Gustavo Rodrigues Ramos, Iguatemi Eduardo da Fonseca, Klaus Steding-Jessen, Lucimara Desiderá, Marcelo H. P. C. Chaves e Wilson Rogério Lopes pela revisão e por sugestões para o desenvolvimento deste documento.

10. Histórico de Revisões

  • Versão 1.0 Versão Inicial, 19/04/2016