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.
Figura 1: Visão geral do ataque de negação de serviço utilizando
servidores DNS recursivos abertos.
- 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).
- 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.
- 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
$Date: 2022/03/16 19:17:47 $