Ataques de DDoS y Blackhole

Los DDoS (ataques de denegación de servicio) son cada día más grandes y baratos de hacer y las opciones para defenderse de ellos no son del todo efectivas.

Un ataque de DDoS no consiste en algo más complejo que mandar mucho tráfico hacia un destino más o menos concreto, puede ser una IP o un grupo de las mismas y lo peor es que es relativamente fácil hacerlo, contratarlo mejor dicho.

Existen servicios online, llamados pruebas de estrés, que te permiten contratar una gran avalancha de tráfico para poder probar el comportamiento de tu red ante ese tipo de situaciones, lo que pasa es que nadie te pregunta si el ataque la prueba de estrés que estás contratando es contra tu red o contra la de un tercero.

El ataque puede ser de muchos tipos, pero al final lo más habitual consiste en llenar los tránsitos (conexiones a Internet) de los ISPs de basura y muchos ISPs lamentablemente no saben defenderse ante eso y mueren, al menos durante un rato.

La solución mágica pasa por tener uno o varios equipos que supuestamente sirven para eso y lo que hacen es limpiar el tráfico, pero tienen un pequeño problema, el tránsito ya te lo han llenado con lo que por mucho tráfico que limpien ya no va a quedar hueco para que el tráfico bueno pase. Este tipo de soluciones sirven para aquellos que tienen redes enormes.

Otra opción es que los tránsitos te ofrezcan el servicio de mitigación, lo que pasa es que las soluciones que ofrecen pasan por entregarte el tráfico mitigado a través de un túnel GRE, en fin, prefiero no opinar sobre una solución en la que te entregan el tráfico encapsulado en un túnel GRE. Por supuesto el tráfico mitigado tendrá un coste totalmente inasumible para la mayoría de ISPs.

Y luego está la opción del Blackhole, que es la más simple, barata y efectiva, sólo tiene un pequeño problema, que consiste en que el atacado es sacado de Internet, por decirlo de otra manera se borra la existencia del atacado de Internet entonces ya no le pueden atacar, pero claro, tampoco puede prestar servicio.

El proceso de blackhole consiste en utilizar la propiedad transistiva del atributo opcional community de BGP. De esta manera lo que hacemos es anunciar a nuestros tránsitos un prefijo /32 a la IP atacada con una community que defina esa IP como blackhole y nuestro transito pondrá dentro de su red una ruta a null, o lo que estime, de forma que esa IP no será accesible desde Internet.

Ahora la gracia, desde que empieza el ataque hasta que los tránsitos están llenos el tiempo que tenemos para reaccionar es muy poquito y va desde unos pocos segundos hasta dos o tres minutos, pero normalmente no va más allá, así que hay que ser muy rápido en detectar y aplicar el blackhole.

Podríamos automatizarlo, pero tendríamos que tener muy claro que no estamos incurriendo en un falso positivo, recordemos que el proceso de blackhole tiene el efecto de tirar a nuestro cliente y eso no se puede hacer a la ligera, tenemos que tener muy claro que no estamos incurriendo en falsos positivos.

También podríamos hacerlo de forma manual, pero claro, eso implica que alguien tiene que estar pendiente el tráfico constantemente y como hemos dicho el tiempo de reacción es realmente bajo.

Por supuesto ni que decir tiene que si uno es un ISP pequeñito y no tiene gente siempre dentro de la red si le atacan, como le saturarán los tránsitos, no podrá entrar para poner medidas a no ser que tenga algún sistema un tanto original porque la típica VPN para acceder por nuestra red no sirve, claro, la red está saturada.

Y ahora la segunda parte, has conseguido meter el blackhole y has parado el ataque, pero claro, tienes el cliente tirado, ¿cómo sabes si el ataque ya ha parado?, pues no, no lo sabes, así que con muchísimo cuidado tienes que probar levantar el blackhole y esperar a ver qué pasa, por supuesto teniendo preparado todo para volver a meter el blackhole de nuevo. Por supuesto se puede hacer de forma automática o no.

Por supuesto existen otras soluciones, a veces más imaginativas, a veces abocadas a un fracaso estrepitoso, pero que no sea por falta de ganas.