Nuke y sus variantes (II: ICMP Attack).
El ICMP es el protocolo encargado de, entre otras cosas, informar de errores y problemas en la red. En resumen, consiste en enviar al cliente o al servidor un paquete ICMP indicando que la conexión no puede continuar debido a uno de los siguientes errores:
Network Unreachable Host Unreachable Bad Protocol Bad Port
Es decir, el agente "enemigo" envía paquetes al cliente diciéndole que el servidor tiene alguno de los problemas anteriores, o viceversa. En realidad las cosas son un poco más complicadas, ya que el atacante debe acertar con los puertos que se están utilizando en esa conexión en particular. Generalmente ello es bastante sencillo, ya que el servidor acostumbra a emplear el puerto 6667, el estándar IRC, y la víctima un puerto bajo, a partir del 1024 si usa Windows.
Detección:
Si se ataca el servidor, el cliente no verá nada. Simplemente se desconecta con toda limpieza, ya que el servidor habrá cerrado la conexión TCP y en cuanto reciba un nuevo datagrama del cliente lo rechazará con un RST. El cliente verá "conection reset by peer" y el resto de los usuarios verán alguno de los errores indicados arriba.
Un sniffer en la red del servidor detectará una prolongada ráfaga de paquetes ICMP indicando errores entre un cliente y el servidor de IRC. Cada uno de los paquetes contiene puertos distintos, ya que se está realizando un barrido. Es posible reconocer tales ráfagas y adoptar contramedidas, tales como tomar nota de la IP y la hora para ponerse en contacto con el proveedor del cual dependa el agresor.
Si se ataca el cliente, el servidor no ve nada. Simplemente recibirá un "conection reset by peer" en cuanto envíe un datagrama, ya que el cliente habrá cerrado su conexión. El cliente puede detectar el ataque observando una inusitada actividad en su módem o bien instalando software de traceo tal como el incluído en el paquete Winsock de Trumpet.
Prevención:
La protección más obvia consiste en utilizar puertos poco previsibles. Es decir, emplear un puerto diferente del 6667 en la conexión al servidor y un puerto aleatorio en nuestra máquina local (esto último suele estar fuera del alcance de la mayoría de los usuarios). Un paquete ICMP es ignorado si no contiene los puertos correctos.
Un cliente no puede protegerse salvo que instale un cortafuegos o una versión modificada de su pila TCP/IP. Un servidor puede protegerse con un cortafuegos que filtre las tramas ICMP. Dado que dichos paquetes son útiles en el diagnóstico de problemas en la red y resulta contraproducente filtrarlos todos y para todas las máquinas, se puede optar por filtrar solo los ICMP (y solo los ICMP problemáticos) dirigidos al servidor IRC.
[Indice general] - [Sexo] - [linux] - [humor] - Chat entre usuarios - [miscelanea] - [Novedades]
![]()