Seguro que muchos de vosotros conocéis OSPF (Open Shortest Path First), uno de los protocolos de enrutamiento dinámico IGP (Interior Gateway Protocol) más extendidos en grandes redes. OSPF es un protocolo de enlace-estado que utiliza el algoritmo Dijkstra.
Antes de hablar de su seguridad y de los ataques conocidos más comunes, vamos a resumir un poco su funcionamiento:
- La red OSPF se puede descomponer en áreas. La principal es conocida como backbone.
- Los routers de un mismo dominio de multidifusión o de un enlace punto a punto se descubren los unos a los otros mediante mensajes de tipo 'hello state' y eligen un router DR (designated router) y un BDR (backup designated router) para que sean los que distribuyan la información de la topología reduciendo así el tráfico general.
- Los routers del área se intercambian mensajes LSA (Link State Advertisement) con información sobre:
. Las redes asignadas con su máscara correspondiente
. El tipo de red (broadcast o point-to-point)
. El coste asignado a cada interface calculado a partir de parámetros como la distancia, el throughput y la disponibilidad.
- A través de estos mensajes se construye una base de datos con el estado de los enlaces (Link State Database o LSDB). Si un router está conectado a dos áreas (Area Border Router o ABR) o a dos AS (AS Boundary Router o ASBR) tendrá dos LSDBs independientes.
- Cuando todos los routers tienen la misma versión de base de datos (están sincronizados), cada uno se genera su propio árbol de rutas (shortest-path tree o SPT) con el mismo como raíz.
- Si el interfaz de un router cambia, se detecten nuevas conexiones o se pierdan las existentes, se repetirá de nuevo el proceso. Si el LSA actualizado se confirma como válido (nº de secuencia, tiempo, autenticación, etc.) la LSDB se actualizará y se reconstruirán los árboles de rutas.
Distintos tipos de ataques contra el protocolo OSPF
OSPF implementa un checksum de los LSAs para garantizar su integridad, un control de secuencia para evitar ataques de tipo replay y puede proveer autenticación con un password en texto plano o cifrado con MD5.
Quizás sea más difícil atacar a OSPF que a otros protocolos de enrutamiento del tipo vector-distancia pero no es ni mucho menos imposible. A parte (claro está) de tomar el control de un router y reconfigurarlo, es posible realizar varios tipos de ataques por medio de un router propio simulado con Quagga (un fork de Zebra) u otros o a través de generadores de paquetes.
Entre estos ataques podríamos encontrar los siguientes:
- Eavesdropping: si está habilitada la autenticación y la contraseña no es cifrada es posible capturarla esnifando la red. Si es cifrada además podemos obtener el hash MD5 e intentar obtenerla utilizando un ataque de diccionario con Cain & Abel por ejemplo. En cualquier caso, los datos de routing no van cifrados, así que podemos obtener información sensible de la topología de la red.
- Inserción maliciosa de rutas: el objetivo de este ataque es que nuestra máquina (por ej. un Linux configurado como router OSPF) obtenga prioridad para añadir rutas simulando que tiene una gran cantidad de ancho de banda (ospf auto-cost referencebandwidth) o manipulando directamente el coste del interface (ip ospf cost).
- Convertirse en un DR o BDR: similar al anterior, el objetivo es obtener la máxima prioridad para que nuestro equipo se convierta en DR (255) o BDR (254). Si los administradores no han establecido máximas prioridades, simplemente podemos configurar la nuestra con ip ospf priority 255.
- Lanzar el exploit OoopSPF: se trata de un viejo exploit para las IOS más viejas del lugar. Concretamente un desbordamiento de buffer cuando se anuncian con OSPF Hello más de 255 nodos adyacentes.
- Ataques de denegación de servicio: existen también otros vectores de ataque que podrían incurrir en la pérdida de disponibilidad de un router con OSPF como por ejemplo modificando tiempos o los números secuencia del LSA.
Antes de hablar de su seguridad y de los ataques conocidos más comunes, vamos a resumir un poco su funcionamiento:
- La red OSPF se puede descomponer en áreas. La principal es conocida como backbone.
- Los routers de un mismo dominio de multidifusión o de un enlace punto a punto se descubren los unos a los otros mediante mensajes de tipo 'hello state' y eligen un router DR (designated router) y un BDR (backup designated router) para que sean los que distribuyan la información de la topología reduciendo así el tráfico general.
- Los routers del área se intercambian mensajes LSA (Link State Advertisement) con información sobre:
. Las redes asignadas con su máscara correspondiente
. El tipo de red (broadcast o point-to-point)
. El coste asignado a cada interface calculado a partir de parámetros como la distancia, el throughput y la disponibilidad.
- A través de estos mensajes se construye una base de datos con el estado de los enlaces (Link State Database o LSDB). Si un router está conectado a dos áreas (Area Border Router o ABR) o a dos AS (AS Boundary Router o ASBR) tendrá dos LSDBs independientes.
- Cuando todos los routers tienen la misma versión de base de datos (están sincronizados), cada uno se genera su propio árbol de rutas (shortest-path tree o SPT) con el mismo como raíz.
- Si el interfaz de un router cambia, se detecten nuevas conexiones o se pierdan las existentes, se repetirá de nuevo el proceso. Si el LSA actualizado se confirma como válido (nº de secuencia, tiempo, autenticación, etc.) la LSDB se actualizará y se reconstruirán los árboles de rutas.
Distintos tipos de ataques contra el protocolo OSPF
OSPF implementa un checksum de los LSAs para garantizar su integridad, un control de secuencia para evitar ataques de tipo replay y puede proveer autenticación con un password en texto plano o cifrado con MD5.
Quizás sea más difícil atacar a OSPF que a otros protocolos de enrutamiento del tipo vector-distancia pero no es ni mucho menos imposible. A parte (claro está) de tomar el control de un router y reconfigurarlo, es posible realizar varios tipos de ataques por medio de un router propio simulado con Quagga (un fork de Zebra) u otros o a través de generadores de paquetes.
Entre estos ataques podríamos encontrar los siguientes:
- Eavesdropping: si está habilitada la autenticación y la contraseña no es cifrada es posible capturarla esnifando la red. Si es cifrada además podemos obtener el hash MD5 e intentar obtenerla utilizando un ataque de diccionario con Cain & Abel por ejemplo. En cualquier caso, los datos de routing no van cifrados, así que podemos obtener información sensible de la topología de la red.
- Inserción maliciosa de rutas: el objetivo de este ataque es que nuestra máquina (por ej. un Linux configurado como router OSPF) obtenga prioridad para añadir rutas simulando que tiene una gran cantidad de ancho de banda (ospf auto-cost referencebandwidth) o manipulando directamente el coste del interface (ip ospf cost).
- Convertirse en un DR o BDR: similar al anterior, el objetivo es obtener la máxima prioridad para que nuestro equipo se convierta en DR (255) o BDR (254). Si los administradores no han establecido máximas prioridades, simplemente podemos configurar la nuestra con ip ospf priority 255.
- Lanzar el exploit OoopSPF: se trata de un viejo exploit para las IOS más viejas del lugar. Concretamente un desbordamiento de buffer cuando se anuncian con OSPF Hello más de 255 nodos adyacentes.
- Ataques de denegación de servicio: existen también otros vectores de ataque que podrían incurrir en la pérdida de disponibilidad de un router con OSPF como por ejemplo modificando tiempos o los números secuencia del LSA.
Comentarios
Publicar un comentario