terça-feira, 1 de janeiro de 2008

Smurf

Smurf

O ataque smurf é o mais conhecido ataque que se beneficia do sistema de endereços broadcast de uma rede, e é um ataque baseado em negação de serviço, ou seja, também é um Denial of Service. O seu funcionamento é simples, porém, o resultado de um ataque smurf pode ser bem impressionante.

Esse tipo de ataque não tem intenção de parar um computador, mas sim uma rede inteira. É realizado enviando contínuas stream (cadeias) de pacote ICMP modificadas para a rede alvo. Tudo funciona da seguinte forma:

1. Um usuário malicioso cria uma lista de endereços broadcast de rede.

2. Ele envia pacotes "spoofados" com o IP da vítima para cada um desses endereços.

3. As máquinas das redes que receberam os pacotes respondem, mandando mais pacotes para a vítima, e não para o computador do agressor.

Dependendo da quantidade de endereços utilizados e da quantidade de máquinas dentro das redes, o ataque pode ser realmente devastador.

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.

Em vez de enviar pacotes de ICMP ECHO_RESPONSE, ele envia pacotes UDP "spoofados" 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. O smurf4 é somente uma revisão do smurf. 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.

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.

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.

Nos últimos meses, as redes brasileiras cuja configuração de roteadores permitem este tipo de ataque têm sido utilizadas, com intensidade cada vez maior, criando prejuízos tanto para as vítimas quanto para as redes amplificadoras.

Funcionamento

Os pacotes são modificados de modo que o endereço da máquina que envia os dados é idêntico ao endereço do alvo (spoofing). Além disso, os pacotes são enviados para os chamados endereços broadcast, o que resulta em os pacotes modificados serem enviados para todos os computadores de uma rede. Os computadores dessa rede irão responder enviando uma mensagem de ICMP ECHO_RESPONSE para o computador que eles assumem ter enviado a mensagem (o computador-alvo da rede). Se o atacante tiver uma conexão rápida, não é preciso ser um grande matemático para saber que a quantidade de dados gerados pode parar a rede atacada. A rede irá parar até que o atacante pare de enviar os pacotes ou o tráfego seja bloqueado.