Secuestro de prefijos BGP o BGP hijacking

Internet se creó en un momento en el que el Mundo era más inocente y se confiaba mucho en el saber hacer y en la falta de maldad de los demás.

En el año 1989, en Junio más concretamente, se publica la RFC 1105 que tenía el nombre de «A Border Gateway Protocol (BGP)», era la versión 1 del protocolo, de ahí, de esas 17 páginas sale todo lo demás, a partir de ahí, esa es su raíz.

En aquella época los problemas eran otros y a quien configuraba un router se le presuponía un saber hacer y una profesionalidad que ahora no se presupone. También es verdad que el número de sistemas autónomos que podía haber en la primera mitad de los 90 era más bien bajito y es probable que incluso hubiera gente que fuera capaz de escribir de memoria el esqueleto de Internet, sobre todo en los primeros años.

Los tiempos cambiaron y ahora ya no es como antes, ahora hay errores en las configuraciones de los routers, de hecho, en las últimas 24 horas, hoy es 1 de septiembre cuento 5 secuestros de prefijos BGP, entiendo que la mayoría realizados por fallos humanos y hoy es 1 de septiembre, sábado, y por tanto día de baja actividad. Así que ya veis que los secuestros de prefijos BGP están a la orden del día.

Ya sabéis que Internet está dividido en unas entidades lógicas denominadas Sistemas Autónomos y que cada sistema autónomo tiene asignado un direccionamiento, uno o cientos de direcccionamientos obviamente.

Cuando anunciamos un prefijo, un rango, una red lo que hacemos es decir al resto de routers del Mundo que esa red está en el sistema autónomo que sea, identificando a ese sistema autónomo con un número de 16 ó 32 bits. Una vez hecho esto ese prefijo se propaga gracias a BGP y llega a todos los routers BGP del Mundo.

Este sería el funcionamiento en un Mundo ideal en el que yo pesara 70 kilos, pero a veces no es así y a veces por la razón que sea pues sufrimos un secuestro del prefijo por otro Sistema Autónomo, pero ¿cuando se produce exactamente?

  • El secuestro puede producirse si un AS anuncia nuestro prefijo tal cual o con una métrica más baja, por error o malicia
  • El secuestro también puede producirse si un AS anuncia nuestro prefijo, pero de una forma más específica, con la máscara del prefijo más específica.

El primer secuestro que viví en tiempo real fue en el año 2008, cuando Pakistan Telecom decidió bloquear You Tube dentro del país, y lo que consiguieron fue liarla parda, secuestrar el direccionamiento de You Tube y tirar You Tube en todo el Mundo, y por supuesto tirarse a si mismos, una obra maestra.

Por cierto, de ahí viene lo de la broma del becario pakistaní que de vez en cuando se suelta en el grupo de Telegram del podcast.

El problema diremos que es del que ha originado ese prefijo erróneo, pero su transito debería de haber filtrado ese anuncio y no debería de haber sido anunciado, vale, en este caso lo perdonamos porque fue muy al principio, pero es que en Abril de 2018 a alguien se le ocurrió secuestrar los rangos de unos DNSs de Amazon para poder hacer un ataque de DNS y poder robar criptomonedas y Hurricane Electric distribuyó esas rutas faltas, imagino que en algún punto neutro sin comprobar absolutamente nada de nada y sin filtrar nada, y estamos hablando de hace 5 meses, esto último ya no tiene perdón de Dios, pero bueno, sucedió y lo importante es buscar soluciones para que esto no suceda más. Por cierto, este ataque os lo comenté en el Podcast #152: Ataque a myetherwallet, como se podría haber minimizado

Parta solucionar esto se han inventado cosas como el Resource Public Key Infrastructure (RPKI), el cual sirve para validar el origen de un prefijo, en el caso de RIPE sólo hay que rellenar un formulario y es bastante sencillo, ahora, hay que implementarlo.

Hay que decir que los que vivimos en la zona RIPE, Europa, Oriente Medio y las naciones que se generaron después dela desintegración de la antigua Unión Soviética tenemos suerte, mucha suerte, porque en RIPE funcionan las cosas relativamente bien y los objetos están bastante bien mantenidos, hay herramientas y realizar los filtrados a día de hoy es bastante sencillo, si se quiere claro, eso hay que tenerlo en cuenta. Pero en otros sitios como Estados Unidos por ejemplo está todo, en comparación hecho unos zorros, ya me entendéis lo que os quiero decir.

¿Qué hace la gente?, pues muy sencillo, en vez de anunciar un prefijo /20 anuncian 16 prefijos /24, y esto ¿para qué?, pues como os he comentado al principio había dos maneras de hacer un secuestro de un prefijo, la primera es anunciando el mismo prefijo, pero desde otro AS y la otra es la misma, pero anunciando prefijos más específicos y como en BGP existe una norma no escrita que la unidad mínima es el /24, así que anunciando los prefijos más específicos posibles pues se quitan esa posibilidad.

Pues con esa tontería superamos los 700.000 prefijos de IPv4 y subiendo, me gustaría saber qué piensa Sam Halabi de todo esto, aunque creo que me lo puedo imaginar.

Bueno, pues si tenéis curiosidad en ver cada vez que se produce un secuestro de prefijo BGP como este:

podéis hacerlo siguiendo en Twitter a @bgpstream.

 

ENLACES: