La última jornada de ekoparty en su decimoprimera edición nos permitió degustar conferencias de primer nivel sobre variadas temáticas de seguridad. En particular, presenciamos la charla “Warranty void if label removed – Attacking MPLS networks” a cargo Georgi Geshev, quien se desarrolla como investigador en seguridad para MWR InfoSecurity en el Reino Unido. Allí, Geshev se especializa en el estudio de protocolos de red, bug hunting e ingeniería reversa.

¿Qué son las redes MPLS?

MPLS –del inglés, Multiprotocol Label Switching– es un protocolo de red de alto rendimiento utilizado por proveedores de telecomunicaciones que, en vez de direccionar paquetes sobre decisiones bajo un criterio de salto a salto, lo hace con base en la etiqueta presente en cada paquete. Debido a que el encabezado MPLS es mucho menos complicado, el procesamiento es mucho más rápido y por tanto menos costoso.

Las redes MPLS funcionan entre la capa de enlace y la capa de red del modelo OSI, por lo que normalmente son conocidas como redes de capa 2,5. Su característica principal es que son transparentes al usuario; por ello, pueden ser utilizadas para redirigir diferentes tipos de tráfico entre sistemas autónomos sin que estos deban revelar su topología a otros sistemas proveedores de servicios de red.

Como actores principales del sistema encontramos el Label Switching Router (LSR) encargado de conmutar paquetes según sus etiquetas en el centro de la red, y el Label Edge Router (LER) que se encuentra en el perímetro de red y funciona como entrada y salida de los paquetes IP, aplicando y quitando las etiquetas necesarias sobre estos.

Los ataques presentados pusieron al descubierto la topología de redes MPLS y comprometieron la configuración de equipos vulnerando el protocolo SMNP

Además, resulta necesario comprender el concepto de Virtual Routing Forwarding (VRF), que funciona como una VLAN de capa de red para la virtualización de la tabla de enrutamiento del router. Es decir, permite mantener un conjunto de tablas en el mismo dispositivo.

A lo largo de la ponencia, el investigador demostró diversos escenarios de compromiso en implementaciones de redes MPLS descubiertos sobre un número de proveedores analizados. Los ataques presentados no solo lograron poner al descubierto la topología de la red, sino que también llegaron a comprometer la configuración de equipos vulnerando el protocolo SMNP. Aún más, estos ataques son llevados a cabo desde la perspectiva de un cliente del dominio MPLS, sin requerir acceso al backbone.

Reconocimiento de la red del proveedor de servicios

El reconocimiento puede incluir la recolección de direcciones MAC, protocolos de administración utilizados para publicar metadatos que no debiesen estar habilitados en las interfaces de cara al cliente –como LLDP, CDP o MNDP–, protocolos de enrutamiento –OSPF, IS-IS, entre otros– o servicios que se encuentran corriendo en la red –Telnet, SSH, HTTP, SNMP, etcétera–.

redes-mpls-eko

Otros datos que un atacante podría intentar revelar son el número de equipos de la red, sus direcciones IP y los dispositivos LSR. Pero, ¿cómo podría hacerse esto? Un escenario de ataque se vale de la propagación del TTL del paquete IP: utilizando una herramienta como traceroute un atacante podría conocer el número de dispositivos de la red.

Por otro lado, un ataque de ICMP tunneling también podría poner al descubierto la topología de la red. Los errores que ocurren en el centro de la red y que originan paquetes ICMP asociados no pueden ser transmitidos desde el núcleo hacia el origen porque solo los dispositivos de borde poseen tablas de enrutamiento. Entonces, estos paquetes ICMP son direccionados hacia el extremo lejano de la red y luego devueltos al cliente del dominio que en este escenario hipotético resulta ser un atacante. Este tipo de situación permite al atacante obtener información de los mensajes de error de la red.

Aún en proveedores que siguen buenas prácticas, Geshev encontró una fuente de información

Los ataques mencionados previamente pueden ser explotados cuando los proveedores de servicios no siguen las mejores prácticas y poseen estos mecanismos habilitados. Pero aún en proveedores que han tenido esto en cuenta, Geshev encontró otra fuente de información: para obtener las IP de los equipos de red, envió paquetes ICMP con la opción de registro de ruta habilitada. Cuando los paquetes eran retornados desde el extremo lejano de la red, estos volvían con las mismas opciones y por tanto registraban todas las IP que encontraban en su camino.

La pregunta entonces se centra en entender por qué estos dispositivos procesan los encabezados IP de los paquetes cuando simplemente deberían fijarse en las etiquetas MPLS. El expositor encontró que uno de cinco proveedores resultó vulnerable. ¿Qué consecuencias indeseadas pueden darse entonces en redes MPLS con diferentes proveedores?

Ataques a otros clientes del dominio MPLS

Para encarar este escenario, el investigador partió del concepto de VRF hopping, el cual surge de una comunicación no autorizada entre VRF. Recurriendo nuevamente a la analogía de capa de red, esto sería como enviar tráfico desde una VLAN a otra, planteando una gran problemática ya que las VLAN son universalmente utilizadas como mecanismos de seguridad.

Idílicamente, el tráfico debe fluir solo dentro de un único VRF. Atacar este precepto implicaría que un cliente pueda enviar tráfico a otro. Para confeccionar un paquete que pueda realizar esto, existen en línea listas de proveedores y sus respectivos algoritmos de asignación de etiquetas. Esto permitiría atacar a otros clientes mediante la explotación de protocolos de administración como SNMP, pudiendo causar una mala configuración y una denegación del servicio.

¿Qué medidas de seguridad deben tomarse?

Teniendo en mente la gran expansión que las redes MPLS tienen a nivel global gracias a su rápido procesamiento y alta eficiencia, resulta vital que los proveedores de servicios evalúen las medidas de protección que despliegan en ellas.

Algunas de estas prácticas son:

  1. Inhabilitar el mecanismo de propagación de TTL en el perímetro de la red;
  2. Inhabilitar ICMP tunneling a través de los LSP (Label Switched Path);
  3. Utilizar protocolos de administración seguros e inhabilitarlos en las interfaces que conectan con los clientes;
  4. Configurar medidas de seguridad generales sobre el TTL –como descartar paquetes que tengan un TTL que excede el rango de la red–;
  5. Asumir siempre la presencia de un cliente malicioso en la red;
  6. Restringir el acceso a los dispositivos LSR a través de ACL;
  7. Autenticar protocolos de enrutamiento;
  8. Autenticar protocolos para MPLS signalling;
  9. Autenticar servicios y realizar el registro de acciones de manera centralizada;
  10. Utilizar control de versiones para archivos de configuración;
  11. Cuidar una configuración consistente entre los dispositivos de la red;
  12. Seguir las especificaciones recomendadas en la RFC-5920.

En sus investigaciones Geshev encontró redes donde solo dos de doscientos dispositivos se encontraban configurados de manera insegura, permitiendo vulnerar la totalidad de la red. Esto nos recuerda que no existen fallas insignificantes en materia de seguridad.