
Обнаружение перехвата BGP
В этом примере показано, как использовать модуль tabi для обнаружения всех возможных BGP-перехватов, наблюдаемых с BGP-коллектора.
ПРЕДУПРЕЖДЕНИЕ: Прежде чем запускать этот пример, убедитесь, что на вашем компьютере есть как минимум 2 ГБ свободной памяти.
Процедура установки описана в основном README.
Этот пример совместим с mabo и bgpreader.
python detect_hijacks.py -c rrc01 -i mabo \
--rpki-roa-file roa.csv \
--irr-ro-file routes.csv \
--irr-mnt-file maintainers.csv \
--irr-org-file organisations.csv \
../../{bview,updates}.*.gz
Этот скрипт выводит аномальные события, обнаруженные модулем tabi. Кроме того, он пытается отфильтровать конфликты, которые, скорее всего, являются легитимными, используя следующие методы:
AS_PATH перехватчика содержит ASN перехваченной стороныЭти эвристики описаны в модуле tabi.annotate.
В этом примере объявление, обновляющее маршрут 2403:8600:ea89::/48, исходящее от AS55441, приводит к вероятному перенаправлению трафика, который изначально направлялся в сторону AS131317. Это подозрительно, поскольку для исходного маршрута существуют валидные объект маршрута и ROA, а для последнего обновления маршрута — нет.
{
"timestamp" : 1451609472,
"collector" : "rrc01",
"peer_ip" : "2001:7f8:4::7992:1",
"peer_as" : 31122,
"announce" : {
"prefix" : "2403:8600:ea89::/48",
"asn" : 55441,
"as_path" : "31122 6939 6453 4755 45820 55441",
"type" : "U"
},
"conflict_with" : {
"prefix" : "2403:8600:ea89::/48",
"asn" : 131317,
"valid" : [
"apnic",
"roa"
]
},
"type" : "ABNORMAL"
}
U, если объявление было получено из BGP-обновления, или F, если из полного BGP-представления (full view)prefix и asnВ этом примере объявление, отзывающее маршрут 23.192.176.0/20 у AS5570, приводит к вероятному перенаправлению трафика в сторону AS35889, который объявляет маршрут для менее специфичного префикса 23.192.0.0/11.
{
"timestamp" : 1451609643,
"collector" : "rrc01",
"peer_ip" : "195.66.224.138",
"peer_as" : 2914,
"withdraw" : {
"asn" : 55740,
"prefix" : "23.192.176.0/20",
"type" : "W"
},
"conflict_with" : {
"prefix" : "23.192.0.0/11",
"asn" : 35994
},
"type" : "ABNORMAL"
}