Os ataques de negação de serviço, do inglês Denial of Service (DoS), são uma preocupação constante dos administradores de redes e devem ser objeto de muita atenção dos provedores de acesso à internet. Os ataques ocorrem, geralmente, quando uma rede ou aplicação são sobrecarregadas por um volume de tráfego ou processamento anormal, provocados intencionalmente para prejudicar a disponibilidade de um serviço.

O analista de segurança Rildo Souza, do Centro de Atendimento a Incidentes de Segurança (Cais), mantido pela Rede Nacional de Ensino e Pesquisa (RNP), conta, neste entrevista, quais as principais vulnerabilidades que permitem a ocorrência desses ataques e como se prevenir.

O que são os ataques de negação de serviços?
Rildo Souza – São ataques que têm como objetivo indisponibilizar os recursos de um sistema e impedir o acesso dos usuários.

Quais as formas de ataque?
Souza – Podemos dividir as formas de ataques de negação de serviço em três categorias:

1 – Volumétricos: visam consumir toda a largura de banda disponível no alvo. O objetivo principal desse tipo de ataque é congestionar a rede e causar indisponibilidade no acesso. Normalmente esse tipo de ataque é causado pela exploração de vulnerabilidades em serviços que utilizam o protocolo UDP.

2 – Exaustão de recursos de hardware: esse tipo de ataque está associado às tabelas de estado de conexões TCP que muitos componentes utilizam, exaurindo recursos como processador e memória de dispositivos como balanceador de carga, servidores de aplicação e firewalls. Geralmente é causado pelo envio de pacotes IP fragmentados ou pelo envio de pacotes TCP Syn pelo atacante.

3 – Ataques na camada de aplicação: são restritos, como o nome diz, à camada de aplicação, isto é, a camada 7,  diferente do primeiro ataque. Nesse caso, é necessário pouco tráfego para se gerar um grande ataque. Muitas vezes  podem ser confundidos com problemas de implementação da aplicação. Normalmente esse tipo de ataque é causado pelo envio de diversas requisições HTTP GET e HTTP Post ao servidor web .

Quais as principais vulnerabilidades que permitem acontecer os ataques?
Souza – As principais vulnerabilidades envolvem configuração incorreta ou insuficiente por parte dos administradores de redes em serviços que utilizam o protocolo UDP para se comunicarem. Os principais protocolos que são explorados e consequentemente mal configurados são DNS, NTP, SNMP, SSDP e Netbios.

Como identificar o problema rapidamente?
Souza – O jeito mais rápido de identificar ataques de negação de serviço é pela análise do tráfego de rede que está sentra e/ou sai pela rede, ferramentas de monitoramento de tráfego, coleta de flows e comportamento anormal, consumo excessivo de hardware, de dispositivos como firewalls e IPS podem ser utilizados.

Como se prevenir?
Souza – A melhor forma é realizar configurações seguras nos serviços que usam o protocolo UDP e que precisam ficar disponíveis publicamente, isto é, ficar disponíveis para acesso na internet. É importante colocar controles de rate-limit , habilitar os módulo do Apache modsecurity e mod-evaside. Essas ações aumentam a segurança do seu servidor web visto que na grande maioria das vezes é o principal alvo desse tipo de ataque.

O que fazer diante de um ataque?
Souza – A primeira recomendação seria entrar em contato com o ISP e informar que está sofrendo um ataque de negação de serviço e solicitar ajuda deles. O ISP provavelmente irá realizar o bloqueio do tráfego malicioso antes do mesmo chegar até você.
Outras medidas seriam:
1 – Realizar bloqueio no IPS/Firewall do tráfego malicioso
2 – Verificar a possibilidade de criar blackhole para as redes atacantes

Especificamente para pequenos ISPs, há soluções acessíveis?
Souza – Nossas recomendações para pequenos ISPs, nos casos de ataques de negação de serviço, são:
1 – Implementação da BCP-38. Basicamente consiste em evitar a técnica de spoofing de endereços IP através de regras de firewall ou habilitar a opção RPF no seu switch/roteador.
2 – Implementar Blackholing para endereços bogons. Bogons são prefixos BGP que são reservados ou que não foram disponibilizados publicamente ainda.
3 – Eliminar looping estáticos, isto é, assegurar que todo seu espaço anunciado no BGP tem rotas internas para suas redes, evitando assim os loopings.
4 – Utilizar ferramentas open source para mitigar ataques, como Fastnetmon + ExaBGP