# Ataque Smurf

O Ataque Smurf é um ataque distribuído de negação de serviço (DDoS) distribuído pela rede, com o nome do malware DDoS.Smurf que permite sua execução. Os ataques Smurf são um pouco semelhante a inundações por ping, já que ambos são realizados pelo envio de uma série de solicitação de pacotes ICMP (Internet Control Message Protocol) Echo para o IP de origem falsificado da vítima usando um endereço de broadcast IP. A maioria dos dispositivos em uma rede, por padrão, responderá a isso enviando uma resposta para o endereço IP de origem. Se o número de máquinas na rede que recebem e respondem a esses pacotes é muito grande, o computador da vítima será inundado com o tráfego. Isso pode retardar o computador da vítima até o ponto em que se torna impossível trabalhar nele. Ao contrário da inundação por ping regular, no entanto, Smurf é um vetor de ataque de amplificação que aumenta seu potencial de dano, explorando as características das redes de transmissão.

## História

Programas para ataques remotos de DoS surgiram em meados dos anos 90, causando problemas. Para usar estes programas, era necessária uma conta em um grande computador ou rede, para obter efeito máximo. Havia nas universidades muitas “contas de aluguel”, que eram trocadas com os atacantes por software, cartões de crédito, dinheiro, etc.
Em 1996, falhas no TCP/IP foram descobertas, e no ano seguinte, ataques em larga escala em redes IRC começaram a ocorrer. Aproveitava-se de falhas nos sistemas Windows dos usuários para travar seus sistemas.
Em 1997 surgiu a técnica chamada Smurf. Lançando alguns poucos pacotes na rede, destinados a uma vítima, o atacante podia multiplicá-los por um fator de centenas, ou até milhares, dependendo do tamanho da rede, que eram enviados da vítima original para um endereço broadcast da rede. Este exército de pacotes eventualmente alcançava diversas outras vítimas, e a vítima original era a teórica culpada pelo ataque. A defesa contra este tipo de ataque era simples, no entanto. Bastava desligar as capacidades de recepção de mensagens broadcast nos roteadores. Algumas redes possibilitaram isso, enquanto outras não, permanecendo assim a ameaça de potenciais ataques Smurf.
Em 1998, as velocidades de conexão já se tornavam menos heterogêneas e ataques Smurf eram fáceis de serem combatidos.
No dia 21 de outubro de 2016, por volta das 6:00 da manhã, uma botnet composta pelo que poderia ser até dezenas de milhões de máquinas - dos quais um grande número eram dispositivos IoT - montou um ataque de negação de serviço ao Dyn , Interrompendo o DNS sobre uma grande parte da Internet nos EUA. Isso, por sua vez, levou a uma grande interrupção da Internet na costa leste dos EUA, diminuindo a velocidade da internet de muitos usuários e tornando um número de grandes sites inacessíveis, incluindo Amazon, Netflix, Reddit, Spotify, Tumblr e Twitter.
A Flashpoint, uma empresa que detecta e mitiga ameaças on-line, foi a primeira a anunciar que o ataque foi realizado por um botnet de dispositivos IoT comprometidos controlados pelo malware Mirai. Dyn posteriormente corroborou a afirmação do Flashpoint, afirmando que seus servidores estavam sob ataque de dispositivos localizados em milhões de endereços IP.

## Descrição

Para se perceber este tipo de ataques é necessário entender como funciona o endereçamento ICMP broadcast. Um endereço de broadcast é um simples endereço IP que é enviado como um pacote e serve para comunicar com todos os hosts num segmento de rede. Por exemplo, o IP broadcast para a rede 12.0.0.0 é o 12.255.255.255. Este endereço envia então o pacote para todas as máquinas da rede 12. Se existir um número elevado de máquinas nesse segmento de rede, utilizando um endereço de broadcast leva a consumir uma elevada largura de banda da rede, pois o sistema irá gerar pacotes individuais para cada máquina no segmento de rede.
Em um cenário padrão, o host A envia uma solicitação ICMP Echo (ping) para o host B, desencadeando uma resposta automática. O tempo que leva para uma resposta chegar é usado como uma medida da distância virtual entre os dois hosts.
Um cenário para o Ataque Smurf pode ser dividido da seguinte forma:
outro comando de ataque smurf:
O fator de amplificação do Ataque Smurf correlaciona-se com o número de hosts na rede intermediária. Por exemplo, uma rede de distribuição de IPs com 500 hosts produzirá 500 respostas para cada falsa solicitação de Echo. Normalmente, cada uma das dependências é do mesmo tamanho que a solicitação de ping original.
Note-se que, durante o ataque, o serviço na rede intermediária é susceptível de ser degradado.
Esse tipo de ataque tem sido usado para parar vários Provedores de Acesso à Internet e todos os seus usuários. Efetivamente, é muito difícil proteger-se de um ataque de broadcast bem planejado. Se a pessoa que está atacando conseguiu elaborar uma grande lista de endereços de broadcast vulneráveis e se a vítima não possui a proteção de um firewall, sua conexão com certeza ficará congestionada.
Em muitos casos, firewalls também são ineficientes. Os administradores de rede podem evitar que suas redes sejam utilizadas como amplificadores. Podem ser instalados firewalls que evitem a entrada de pacotes ICMP/UDP que tenham destino o endereço de broadcast. Podem ainda tomar precauções simples, como desativar serviços que não estão sendo utilizados pelos computadores de rede.

### Amplificadores

Um amplificador smurf é realizado recorrendo a uma companhia cuja rede não só aceita ICMP echo requests enviados para um endereço de broadcast, mas que permite ICMP echo replies enviados para fora. Como tem vindo a ser um elevado problema em ascensão na Internet, o site http://www.netscan.org está permanentemente procurando por redes que amplificam pacotes UDP/ICMP, mantendo uma lista de redes que fazem esta amplificação. O site http://www.powertech.no/smurf/ verifica na hora se uma rede pode ser utilizada como amplificadora ou não.

## Como se proteger

A proteção contra este tipo de ataque pode ser realizada de duas formas: protegendo o intermediário, e protegendo a vitima. As soluções para o intermediário podem ser separadas em duas formas preventivas: desativar o IP-directed broadcast' no router, e configurar o sistema operativo por forma a evitar responder a pedidos ICMP enviados para o endereço broadcast.
A proteção do lado da vitima, é mais difícil de encontrar, pois é necessário arranjar uma forma de evitar receber um grande número de resposta a Echo ICMP enviados para um endereço broadcast.
Soluções para os intermediários: Descativando os IP-directed broadcast no router, é possível configurar de forma que seja negado o trafego broadcast para a rede interna vindo de outras redes. É claro que o atacante procura comprometer uma máquina interna da rede para dessa forma lançar o Ataque Smurf. Alguns só podem ser configurados de forma a não responderem a pacotes ICMP enviados para um endereço IP broadcast.

### Prevenção em um Roteador Cisco

Um exemplo de configuração de um roteador para que ele não encaminhe pacotes para endereços de broadcast, para um roteador Cisco, é:
    Router(config-if)# no ip directed-broadcast
(Este exemplo não protege uma rede de se tornar o alvo do ataque Smurf, mas simplesmente impede a rede de participar de um Ataque Smurf.)
Um amplificador Smurf é uma rede de computadores que se presta a ser usado em um ataque Smurf. Amplificadores Smurf agem para piorar a gravidade de um Ataque Smurf porque eles são configurados de tal forma que eles geram um grande número de ICMP respostas à vítima no endereço IP de origem falsificado.

## Variações

Logo após a liberação do código do smurf, começaram a surgir variações, tais como o papasmurf, fraggle e o smurf4. O fraggle é um smurf baseado em UDP. O smurf4 é somente uma revisão do smurf.

### Ataque Fraggle

Em vez de enviar pacotes de ICMP ECHO_RESPONSE, ele envia pacotes UDP "spoofados" (através das portas 7 e 19) para os endereços de broadcast. As máquinas da rede, ao receberem o pacote UDP, respondem à vítima. A vítima, em certas circunstâncias, envia mais uma resposta, gerando uma grande quantidade de tráfego na rede.

### Papasmurf

O Papasmurf (também conhecido como smurf5) foi criado para "celebrar" o 1º aniversário do smurf. O autor do exploit resolveu então reescrever o código-fonte, deixando-o mais limpo, e juntando os dois ataques de broadcast (Smurf e Fraggle) num só programa.