miércoles 19 de septiembre de 2007

Algunas reglas para protegerse de tráfico sospechoso

En nuestro país es común el uso de GNU/Linux para proveer servicios de Internet en muchas empresas (grandes, medianas, pequeñas) pero también es común que los muros de fuego de los servidores en Internet no se configuren de tal forma que identifiquen el tráfico de red que podría signficar un ataque a la pila tcp de los servidores públicamente expuestos.

Por ejemplo, un ataque común es enviar pings de difusión a las redes directamente alcanzables por el atacante. Desde un equipo GNU/Linux es muy sencillo enviar pings de difusión

debian-1:~# ping -b -i 5 -p 1024 172.16.45.255
PATTERN: 0x1024
WARNING: pinging broadcast address
PING 172.16.45.255 (172.16.45.255) 56(84) bytes of data.


En ese ejemplo se está enviando tráfico icmp a la dirección de difusión 172.16.45.255. El tamaño de los datos es 1024 bytes y se solicita una respuesta cada 5 segundos. Bien, enviar tráfico de difusión implica un incremento exponencial del tráfico de red porque todas aquellas estaciones que no estén "explícitamente" configuradas para no responder enviarán tráfico. Luego de cierto intervalo de tiempo, la red podría colapsar por o los equipos podrían no establecer más conexiones tcp.

Este es tráfico capturado en mi estación de trabajo al tráfico icmp generado localmente (el ping de difusión).

IN=eth0 OUT= MAC=ff:ff:ff:ff:ff:ff:00:14:2a:68:e9:fe:08:00 SRC=172.
16.45.7 DST=255.255.255.255 LEN=43 TOS=0x10 PREC=0x00 TTL=128 ID=50812 PROTO=UDP SPT=2000 DPT=2001 LEN=23


Como puede verse, el destino (DST) en la entrada de registro, se ha cambiado a 255.255.255.255 lo que implicaría tráfico a todas la redes directamente alcanzables.

Para protegerse de inundaciones por pings de difusión podría colocar una regla como esta:

iptables -t mangle -A PREROUTING -d 255.255.255.255 \
-p icmp -m icmp --icmp-type 8 -m limit --limit 1/sec \
-j LOG --log-prefix "Ping de difusion: "

iptables -t mangle -A PREROUTING -d 255.255.255.255 \
-p icmp -m icmp --icmp-type 8 -j DROP

La primera regla es para registrar el origen del ataque, la segunda para no permitir ese tipo de tráfico en particular.

Por supuesto, hay muchos tipos de ataques que representan ataques a la pila tcp, a los recursos del servidor como CPU, memoria RAM o disco duro que provienen del tráfico malintencionado generado contra los servidores públicamente expuestos.

1 comentarios:

Noel dijo...

Excelente post... me mandaste a leer sobre IPTables!