17 de marzo de 2007

Herramientas de Cisco IOS para prevenir IP spoofing

En nuestros días, las cuestiones de seguridad informática, y particularmente de seguridad en la red, son un tópico frecuente y obligatorio. Uno de los tantos posibles riesgos o ataque a los que una red se encuentra expuesta, son los ataques por IP address spoofing.

Durante un ataque de spoofing, cuando se trata de un ataque externo, el atacante reemplaza la dirección IP de los paquetes que recibimos por una que lo hace aparecer como parte de nuestra red interna. Para evitar esta situación, hay algunas medidas preventivas a considerar en cuya implementación encontramos funciones importantes de Cisco IOS que podemos implementar.

Una medida a tomar: bloquear direcciones IP
El primer paso en este punto es bloquear el posible acceso a nuestra red de paquetes originados en direcciones IP que no se consideran legítimas.

Es frecuente que quienes desean ocultar su identidad utilicen con este propósito direcciones IP privadas (RFC 1918) u otro tipo de direcciones IP reservadas o especiales. La siguiente es entonces una lista de redes que deben ser filtradas con este propósito, ya que nunca debiéramos recibir en nuestra red un paquete cuya dirección de origen fuera una de las siguientes:

  • 10.0.0.0/8
  • 172.16.0.0/12
  • 192.168.0.0/16
  • 127.0.0.0/8
  • 224.0.0.0/3
  • 169.254.0.0./16

Todas estas direcciones corresponden a redes que no debieran ser enrutadas sobre Internet, o utilizadas para generar tráfico sobre Internet, por lo que no debieran llegar hasta nuestro dispositivo de borde. Podemos asegurar casi con total certeza que todo tráfico con una dirección de origen perteneciente a alguna de estas redes es un tráfico que conlleva un cierto grado riesgo para la seguridad de nuestra red.

A estas direcciones debemos agregar direcciones pertenecientes a la red interna de nuestra empresa. Si nuestra red interna utiliza direccionamiento privado, estas direcciones ya están incluídas en la lista anterior. Si utilizamos un rango de direcciones públicas, entonces deberemos agregar ese rango de direcciones a la lista que presenté más arriba.

Con este conocimiento básico presente, hay un grupo de herramientas de Cisco IOS que pueden ser entonces útiles para segurizar nuestra red.

Implementación de Listas de Acceso (ACL)
Un modo sencillo de prevenir este tipo de accesos es filtrar estas direcciones en el punto de acceso del tráfico desde Internet (por supuesto que en este sentido es muy importante contar con un único punto de acceso de toda la red a Internet).

El filtro que generemos deberá filtrar cualquier tráfico que tenga como origen cualquiera de las dirección comprendidas dentro del rango de redes que definimos antes. En términos más precisos: hay que crear una ACL que deniegue o descarte todo el tráfico entrante que se origine en cualquier dirección IP comprendida en el rango ya definido. Por ejemplo:

Router#configure terminal
Router(config)#ip access-list extended antispoof
Router(config-ext-nacl)#deny ip 10.0.0.0 0.255.255.255 any
Router(config-ext-nacl)#deny ip 172.16.0.0 0.15.255.255 any
Router(config-ext-nacl)#deny ip 192.168.0.0 0.0.255.255 any
Router(config-ext-nacl)#deny ip 127.0.0.0 0.255.255.255 any
Router(config-ext-nacl)#deny ip 224.0.0.0 31.255.255.255 any
Router(config-ext-nacl)#deny ip 169.254.0.0 0.0.255.255 any
Router(config-ext-nacl)#permit ip any any
Router(config-ext-nacl)#exit
Router(config)#interface serial0/0
Router(config-if)#ip access-group antispoof in

El RFC 2267 define la conveniencia de que los service providers (ISP) utilicen filtros como este en sus redes.

Tengamos presente que este filtro no protege de todo acceso ilegítimo ni mucho menos, por lo que es muy importante que sea complementado con la presencia de un firewall statefull por dentro que verifique la legitimidad del tráfico que ingresa y proteja la red interna.

Hay que tener presente que esto es sólo una porción de lo que debiera ser una estrategia de seguridad global de toda la red.

Implementación de reverse path forwarding
Otro método para proteger la red de este tipo de ataques es la implementación de RPF (Reverse Path Forwarding), también conocido como "ip verify"
.

RPF opera como si fuera parte de una solución anti-spam. En una solución anti-spam se toman los correos electrónicos entrantes y se copia la dirección de correo de origen; con esta información se hace un lookup hacia el servidor que envía ese mensaje para verificar que la dirección realmente existe. Si la dirección no existe el servidor de correo elimina el mensaje porque no hay modo de responder al mismo y por lo tanto es muy probable que se trate de un spam.

RPF realiza un proceso semejante a ese con los paquetes IP que recibe. Toma la dirección IP de origen de un paquete recibido desde Internet y hace un lookup para revisar si el router tiene una ruta en su tabla de enrutamiento que le permita responder a ese paquete. Si no hay una ruta en la tabla de enrutamiento que permita una respuesta a la IP de origen entonces considera que el paquete es spoofing y descarta el paquete.

Un ejemplo de cómo configurar RPF en nuestro router es el siguiente:

Router(config)#ip cef
Router(config)#interface serial 0/0
Router(config-if)#ip verify unicast reverse-path

Nótese que la activación de esta función requiere que previamente se haya habilitado Cisco Express Forwarding (CEF). También hay que tener presente que activando esta función sólo se recibirá tráfico de redes hacia las cuales haya una ruta en nuestra tabla de enrutamiento.

Estos 2 tips no constituyen ni por cerca una implementación de seguridad. Son sólo un par de recursos disponibles a tener en cuenta e implementar sólo si se adecuan a políticas de tráfico, enrutamiento y seguridad de la red previamente definidas.

¿Tenés alguna información o referencia adicional para aportar en este tema....?
Perfecto!!!! agregá un comentario con el detalle.
Muchas gracias.
Oscar Gerometta

4 comentarios:

  1. -Buenos noches, Interesante tu blog !! leere los articulos gracias sigue subiendo articulos sobre redes.

    ResponderEliminar
  2. Muy interesante, recordé este artículo https://zarza.com/prevenir-ataques-desde-su-red-de-area-local/ espero le sea de utilidad a sus lectores.

    Gracias!

    ResponderEliminar
  3. Muchas gracias por el post, tengo una duda , si tengo un default gateway definido, y por ende tengo una ruta para llegar a cualqueira sea la IP de origen (0.0.0.0 ) , como funciona esto en este caso?
    En mi caso puntual tengo un ataque evidente de spoofing hacia mi OWA desde IP publicas sucesivas y quisiera saber si esto puede ayudarme.
    Desde ya muchas gracias.

    ResponderEliminar
  4. Alejandro.
    Las primeras soluciones que se presentan en este post son independientes del enrutamiento, así que no hay influencia de rutas estáticas. En el caso de URPF en cambio, una ruta por defecto no soluciona el problema que planteás.
    La solución dinámica para ese tipo de problemas es implementar un IPS, en su reemplazo, si tienes identificadas las IP de origen que utiliza el ataque, puedes agregarlas en la lista de acceso anti-spoofing para filtrarlas.

    ResponderEliminar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.