العودة إلى التحديثات
UpdatedJul 28, 2026

tabi — Updated!

إطار عمل لكشف وتصنيف أحداث اختطاف بادئات IP الخاصة ببروتوكول BGP من خلال معالجة ملفات تفريغ MRT، مع دعم لعدة محللات إدخال وتحليل تلقائي للتعارضات.

مشاركة

مثال متقدم

يوضح هذا المثال كيفية استخدام وحدة tabi من أجل اكتشاف جميع اختطافات BGP المحتملة التي تُرى من مجمع BGP.

المتطلبات

تحذير: قبل تجربة هذا المثال، تأكد من أن لديك على الأقل 2 جيجابايت من الذاكرة الحرة على جهاز الكمبيوتر الخاص بك.

تم وصف إجراء التثبيت في ملف README الرئيسي.

محلل MRT

هذا المثال متوافق مع 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. بالإضافة إلى ذلك، يحاول تصفية التعارضات التي من المرجح أن تكون مشروعة باستخدام الطرق التالية:

  1. الإعلان المتعارض مشمول بـ ROA
  2. الإعلان المتعارض مشمول بكائن مسار
  3. هناك علاقة إدارية بين AS المتعارضين
  4. يحتوي 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"
}
  • timestamp: عندما تم استلام الإعلان (طابع زمني UTC)
  • collector: أي مجمع BGP استلم الإعلان
  • peer_ip و peer_as: أي نظير BGP استلم الإعلان
  • announce: معلومات حول الإعلان
    • type: إما U إذا تم استلام الإعلان من تحديث BGP أو F إذا كان من عرض كامل لـ BGP
  • conflict_with: معلومات حول إدخال RIB المتعارض مع الإعلان
    • valid: كائنات المسار أو ROA على الزوج 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"
}
  • timestamp: عندما تم استلام الإعلان (طابع زمني UTC)
  • collector: أي مجمع BGP استلم الإعلان
  • peer_ip و peer_as: أي نظير BGP استلم الإعلان
  • withdraw: معلومات حول السحب
  • conflict_with: معلومات حول إدخال RIB المتعارض مع الإعلان

الفئات