
tabi — Updated!
BGP-Hijack-Erkennung
Fortgeschrittenes Beispiel
Dieses Beispiel zeigt, wie das Modul tabi verwendet wird, um alle möglichen BGP-Hijacks zu erkennen, die von einem BGP-Collector beobachtet werden.
Voraussetzungen
WARNUNG: Bevor Sie dieses Beispiel ausprobieren, stellen Sie sicher, dass Sie mindestens 2 GB freien Arbeitsspeicher auf Ihrem Computer haben.
Das Installationsverfahren wird in der Haupt-README beschrieben.
MRT-Parser
Dieses Beispiel ist kompatibel mit mabo und bgpreader.
Hijacks erkennen
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
Dieses Beispielskript gibt die abnormalen Ereignisse aus, die vom Modul tabi erkannt wurden. Zusätzlich versucht es, die Konflikte, die höchstwahrscheinlich legitim sind, mithilfe der folgenden Methoden herauszufiltern:
- Die widersprüchliche Ankündigung wird durch eine ROA abgedeckt.
- Die widersprüchliche Ankündigung wird durch ein Route-Objekt abgedeckt.
- Es besteht eine administrative Beziehung zwischen den beiden widersprüchlichen AS.
- Der
AS_PATHdes Hijackers enthält die ASN des Opfers.
Diese Heuristiken sind im Modul tabi.annotate dokumentiert.
Interpretation der Ergebnisse
Update-Beispiel
In diesem Beispiel führt die Ankündigung, die die Route von 2403:8600:ea89::/48 aktualisiert und von AS55441 stammt, wahrscheinlich zur Umleitung des Datenverkehrs, der ursprünglich an AS131317 gerichtet war. Dies ist verdächtig, da für die ursprüngliche Route ein gültiges Route-Objekt und eine ROA existieren, nicht jedoch für das letzte Routen-Update.
{
"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"
}
- timestamp: wann die Ankündigung empfangen wurde (UTC-Zeitstempel)
- collector: welcher BGP-Collector die Ankündigung empfangen hat
- peer_ip & peer_as: welcher BGP-Peer die Ankündigung empfangen hat
- announce: Informationen über die Ankündigung
- type: entweder
U, wenn die Ankündigung aus einem BGP-Update stammt, oderF, wenn sie aus einer vollständigen BGP-Ansicht stammt
- type: entweder
- conflict_with: Informationen über den RIB-Eintrag, der mit der Ankündigung in Konflikt steht
- valid: Route-Objekte oder ROAs für das Paar
prefix&asn
- valid: Route-Objekte oder ROAs für das Paar
Withdraw-Beispiel
In diesem Beispiel führt die Ankündigung, die die Route 23.192.176.0/20 von AS5570 zurückzieht, wahrscheinlich zur Umleitung des Datenverkehrs zu AS35889, das eine Route für das weniger spezifische Präfix 23.192.0.0/11 ankündigt.
{
"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"
}
- timestamp: wann die Ankündigung empfangen wurde (UTC-Zeitstempel)
- collector: welcher BGP-Collector die Ankündigung empfangen hat
- peer_ip & peer_as: welcher BGP-Peer die Ankündigung empfangen hat
- withdraw: Informationen zum Withdraw
- conflict_with: Informationen über den RIB-Eintrag, der mit der Ankündigung in Konflikt steht