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.
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)
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.
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
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)
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.
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
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)
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.
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).
@bgpstream y luego con scripts propios se procedió a filtrar solo aquellos
correspondientes a secuestro de prefijos (Hijacks).
Las herramientas utilizadas fueron:
- TweetScraper
- Python3
- Adicionalmente se utilizó el API de RIPE NCC para geolocalización de varios
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
uso de RPKI e IRR. Lastimosamente igualmente creemos que será sempiterno.
database-documentation/how-to-query-the-ripe-database/14-3-restful-api-queries
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.
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.
números alarmantes.
¿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.
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.
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
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 aparece como segundo mayor cantidad de secuestros durante el mes de Marzo.
IPv6 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.
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.
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)
recibe (según Sistema Autónomo del secuestrado)
Particularmente los prefijos correspondientes a LACNIC tienen su día de mayor
movimiento los Miércoles con 131 registros.
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)
secuestros (según Sistema Autónomo del secuestrador)
Y específicamente LACNIC comparte el mismo día Jueves como su mayor
movimiento en este rubro.
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.
secuestros de red son los días de Domingo.
¿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.
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.
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?
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.
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://blog.acostasite.com/2017/03/bgp-filtrar-por-tamano-de-la-red-en-bgp.html. 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.
por tamaño de la red en BGP, he ahí el dilema” que se puede conseguir en
https://blog.acostasite.com/2017/03/bgp-filtrar-por-tamano-de-la-red-en-bgp.html. 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.
por eventos.
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.
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.
secuestros de rutas y la cantidad de eventos detectados.
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.
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.
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
Conclusiones
- Se puede apreciar que el secuestro de redes es una realidad y ninguna región
- Existe una disminución marcada de secuestros por año, gran parte debido a la
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
- A pesar de que la fuente de datos pueda tener algún margen de error pensamos
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
Referencias: