Introducción

El objetivo del presente post es exponer de una manera sencilla la realidad en cuanto al secuestro de redes. Se verán estadísticas de lo que sucede en las regiones de todos los RIRs, sin embargo siempre se brindará más detalle de lo que acontece en la región de LAC.

Terminología

Secuestro de red o Hijack

Es el apoderamiento ilegítimo de una red IP manipulando las tablas BGP

Evento

Para este documento, “evento” corresponde a cualquier actividad en torno al secuestro de redes (pe, secuestrar / ser secuestrado)

Secuestrador

El actor que realiza el secuestro de una red.

Secuestrado

Es la organización dueña de los recursos que son víctima del secuestro.

Los datos

El origen de los datos corresponde a la cuenta de twitter @bgpstream ubicada en: https://twitter.com/bgpstream la cual es mantenida por bgpmon (ahora parte de Cisco).

Se aprecia que incluso es un CSV donde podemos extraer mucha información valiosa.

Un ejemplo de la información contenida en un tweet es:

BGP,HJ,hijacked prefix AS58065 196.196.120.0/24, PACKETEXCHANGE, SE,-,By AS57858 AS57858, EU, http://bgpstream.com/event/240117

Veamos en detalle la información de los datos del ejemplo:

HJ = La info contentiva de este tweet que corresponde a un Hijack, un secuestro de red (estos son los tipos de tweets que precisamos)

AS58065 = AS Origen del prefijo de la red

SE = Código del país correspondiente al prefijo de la red

196.196.120.0/24 = Prefijo de red secuestrado

AS57858 = AS del secuestrador

http://bgpstream.com/event/240117 URL para obtener más detalles del evento. Es importante destacar que luego de entrar al link, @bgpstream define estos eventos como: “Possible BGP hijack”. En este sentido se presume que en algunas oportunidades existirán falsos positivos.

Para la geolocalización de los recursos de Sistemas Autónomos (AS) se utilizó el API de RIPE NCC ubicado en: https://www.ripe.net/manage-ips-and-asns/db/support/documentation/ripe-database-documentation/how-to-query-the-ripe-database/14-3-restful-api-queries

Universo del estudio

Todos los tweets desde el 1 de Enero de 2016 al 31 de Mayo de 2020 de la cuenta twitter @bgpstream siendo un total de 45.000 (todos los eventos)

Muestra utilizada para el estudio

La muestra para el estudio se obtuvo mediante la selección de los tweets que contenían en el texto siglas HJ (indicando Hijack). Resultaron un total de 6573 tweets que constituyen la muestra del estudio.

Procedimiento para el procesamiento de los datos

TweeterScraper fue la herramienta utilizada para extraer los tweets de la cuenta @bgpstream y luego con scripts propios se procedió a filtrar solo aquellos correspondientes a secuestro de prefijos (Hijacks).

Las herramientas utilizadas fueron:

  • TweetScraper

https://github.com/jonbakerfish/TweetScraper

  • Python3

https://www.python.org/

Resultados obtenidos

Cantidad de secuestros por año (1 de Enero 2016 hasta 31 de Mayo 2020)

En la tabla y gráfica siguientes se aprecian la cantidad de secuestros conseguidos desde el 2016 a la fecha.

Si se realiza la matemática para un cálculo diario se puede apreciar que son números alarmantes.

Año Total Secuestros  IPv4  IPv6
2016  2065 1825 240
2017  1880 1595 285
2018  1879 1693 186
2019  577 539 38
2020  172 148 24
6573 5800 773

¿Cómo es el comportamiento por mes?

Se quiso determinar si este comportamiento estaba más o menos acentuado según el mes del año.

Colocando la lupa al gráfico anterior quisimos averiguar cual mes del año es el que más eventos posee. Para conseguir este valor se tomó la data desde el año 2016 al 2019 (6383 registros), no se procesó el año 2020 debido a ser el año en curso. Se agruparon los eventos por mes y se hizo un desglose adicional según IPv4 e IPv6.

A continuación se muestran las gráficas con los resultados.

Se puede distinguir para los totales que el mes con más actividad es Noviembre y el mes con menos movimiento es Marzo. Sin embargo, es interesante destacar que IPv6 si aparece como segundo mayor cantidad de secuestros durante el mes de Marzo.

¿Alguna hora del día donde exista mayor cantidad de secuestros?

Adicionalmente tuvimos la curiosidad de conocer si quizás existían algunas horas del día más propensas a observar secuestros de red. Para este estudio se utilizaron todos los registros disponibles y se tomó únicamente el entero de la hora del reporte (indicadas en UTC -4). Por ejemplo, un reporte donde el horario indica 14:23 se procesó únicamente el número 14.

Las horas de más pico son las 11 y 16 (UTC -4) y las horas menos ocupadas fueron desde las 21 hasta la 01 (UTC -4). Una vez más se puede aprovechar el desglose adicional de IPv4 e IPv6.

Cantidad de secuestro de rutas diferenciada por RIR

En la tabla inferior se muestra por día de la semana cuál es el RIR que más secuestros recibe (según Sistema Autónomo del secuestrado)

RIPE  APNIC  LACNIC  ARIN  AFRINIC
Friday 393 307 115 328 24
Monday 411 284 81 280 16
Saturday 264 130 46 140 16
Sunday 140 90 31 77 3
Thursday 517 280 127 372 21
Tuesday 411 183 66 282 27
Wednesday 375 240 131 284 53

Particularmente los prefijos correspondientes a LACNIC tienen su día de mayor movimiento los Miércoles con 131 registros.

¿Desde cuál RIR se generan más secuestros de rutas?

La siguiente tabla muestra según el día de la semana cual es el RIR que realiza más secuestros (según Sistema Autónomo del secuestrador)

RIPE  APNIC  LACNIC  ARIN  AFRINIC
Friday 416 213 150 341 24
Monday 362 194 168 326 14
Saturday 220 123 49 167 24
Sunday 121 87 36 86 6
Thursday 462 183 200 349 108
Tuesday 388 181 117 257 12
Wednesday 333 159 152 387 32

Y específicamente LACNIC comparte el mismo día Jueves como su mayor movimiento en este rubro.

¿Cuál es el día de la semana con menos secuestros por RIR?

Sin sorpresa podemos darnos cuenta que el día de menos actividad en cuanto a los secuestros de red son los días de Domingo.

AFRINIC  Sunday
LACNIC  Sunday
APNIC  Sunday
ARIN  Sunday
RIPE  Sunday

¿Cuáles prefijos son los más secuestrados?

Para esta sección creamos la siguiente tabla de frecuencias.

Mostramos únicamente los bloques secuestrados 4 o más veces.

Prefijo Nro de veces
150.150.150.0/24 4
192.5.59.0/24 4
2a04:c007::/32 4
78.24.184.0/21 4
79.143.84.0/24 4
87.236.213.0/24 4
91.209.131.0/24 4
91.220.21.0/24 4
121.52.203.0/24 5
185.76.17.0/24 5
5.5.5.0/24 5
103.15.168.0/24 7
185.58.128.0/24 7
187.16.216.0/21 7
2.2.2.0/24 7
2001:bf7:170::/44   8
80.249.208.0/21 18

En la tabla anterior es muy llamativo el valor de la moda, corresponde al prefijo 80.249.208.0/21, curiosamente supera en más del doble la frecuencia inmediata anterior.

En otro orden de ideas, en lo personal esperábamos observar los prefijo 1.1.1.0/24 o 1.0.0.0/24 sin embargo los mismos no aparecen.

Por otro lado es llamativo que el prefijo 2.2.2.0/24 que no posee ROA si se encuentra en la lista, ¿se deberá a la magia de RPKI?

¿Cuál máscara de red se utiliza más frecuentemente para secuestrar prefijos?

Luego de obtener los prefijos con mayor frecuencia de secuestro se nos ocurrió identificar qué máscara/longitud de prefijo eran los más utilizados. Para obtener este valor utilizamos toda la muestra. Aquí la respuesta tanto para v4 como para v6.

En el mundo IPv4

En el mundo IPv6

Lo anterior indiscutiblemente me recordó un antiguo post llamado: “BGP: Filtrar por tamaño de la red en BGP, he ahí el dilema” que se puede conseguir en https://labs.lacnic.net/BGP-Filtrar-tamano/. En ese documento se realiza una recomendación para aprender cierto tamaño de prefijos en caso de no poder recibir la tabla completa BGP.

TOP 10 de países más afectados por secuestro de prefijos

La siguiente tabla muestra el código de país y la cantidad de veces que fue afectado por eventos.

Ranking  Country  Times
1 US 859
2 BR 702
3 IN 350
4 CN 319
5 GB 277
6 DE 264
7 RU 208
8 NL 199
9 IR 177
10 HK 172

Se puede observar que en la región de LACNIC, Brasil es el país que sufre la mayor cantidad de secuestros de prefijos (y segundo en el mundo). Por otro lado, no se aprecia en la tabla pero para la región de LAC le seguirían Argentina con 80, Colombia con 59 y Chile con 58, secuestros de red respectivamente.

¿Y cuales son los países que realizan más secuestros de red?

La siguiente tabla muestra el código de país desde el cual se han realizado más secuestros de rutas y la cantidad de eventos detectados.

Ranking  Eventos  CC
1 1034 US
2 703 BR
3 307 RU
4 226 IN
5 181 DE
6 172 HK
7 172 GB
8 153 PL
9 148 IR
10 146 CH

  Una vez más observamos a nuestros amigos de Brasil en segundo lugar. Ahora bien, si seguimos en la lista, en nuestra región tenemos a Argentina en el puesto 17 con 85, Colombia en el 28 con 42 y Venezuela en el 38 con 25 secuestros.

¿Alguna curiosidad?

  Revisando ASs que hayan realizado secuestros conseguimos el AS2147483647 el cual es reservado, el mismo realizó un total de 36 secuestros entre el año 2016 y el 2018, siendo el último evento el día 2 de Junio del 2018.

¿Algunas sumas no te cuadran?

  • Nuestras disculpas, en algunas pocas oportunidades no ha sido posible obtener el RIR y/o país de algún prefijo y/o AS.

    Conclusiones

  • Se puede apreciar que el secuestro de redes es una realidad y ninguna región se escapa de ellos.
  • Existe una disminución marcada de secuestros por año, gran parte debido a la mejora de las buenas prácticas buscando redes más resilientes, implementación y uso de RPKI e IRR. Lastimosamente igualmente creemos que será sempiterno.
  • La región de LACNIC no escapa de esta problemática y por ello se hace necesario un arduo trabajo de concientización en torno a este tema
  • A pesar de que la fuente de datos pueda tener algún margen de error pensamos que como información referencial es suficientemente convincente.

    Futuros pasos

  • Identificar la duración de un secuestro
  • Obtener más fuentes de información
  • Conocer el margen de error de los datos mostrados (recordemos que los datos publicados por @bgpstream son “possible hijacks” )

    Referencias

  • https://twitter.com/bgpstream?lang=es
  • https://monitor.fortproject.net/hijacks
  • http://bgpstream.com/
  • https://bgpmon.net/

    Agradecimiento
    A Graciela Martinez por sus valiosos comentarios durante la revisión del documento.