
دعم Zeek لتجزئة تدفقات Community ID.
توفر حزمة Zeek هذه دعمًا لتجزئة تدفقات Community ID، وهي طريقة موحّدة لتسمية تدفقات حركة المرور في أدوات مراقبة الشبكة. عند تحميل الحزمة، تضيف حقل سلسلة نصية community_id إلى conn.log.
ملاحظة
تتضمن إصدارات Zeek 6 والإصدارات الأحدث دعمًا لـ Community ID. لم تعد بحاجة إلى هذه الحزمة عند استخدام إصدارات Zeek هذه. يُرجى الرجوع إلى التوثيق للحصول على التفاصيل.
تنفّذ هذه الحزمة دالة BiF لتطبيق منطق التجزئة، وبالتالي تحتاج إلى ترجمة ثنائية، لذا فهي أيضًا إضافة (plugin) لـ Zeek. فيما يلي مثال على conn.log الناتج:
#separator \x09
#set_separator ,
#empty_field (empty)
#unset_field -
#path conn
#open 2018-01-31-13-06-56
#fields ts uid id.orig_h id.orig_p id.resp_h id.resp_p proto service duration orig_bytes resp_bytes conn_state local_orig local_resp missed_bytes history orig_pkts orig_ip_bytes resp_pkts resp_ip_bytes tunnel_parents community_id
#types time string addr port addr port enum string interval count count string bool bool count string count count count count set[string] string
1071580904.891921 CPcWB54kqKkvkdNEXe 128.232.110.120 34855 66.35.250.204 80 tcp - 0.311104 496 1731 SF - - 2227 ShADadfF 6 816 6 2051 - 1:LQU9qZlK+B5F3KDmev6m5PMibrg=
#close 2018-01-31-13-06-56
تدعم الحزمة Community ID في notice.log الخاص بـ Zeek للإشعارات التي تتضمن سياق اتصال. إذا كنت ترغب في استخدام هذه الوظيفة، ضع السطر التالي في ملف local.zeek أو أي إعداد محلي مشابه للموقع:
@load zeek-community-id/notice
لا تأثير لهذا السطر عندما لا تكون حزمة Community ID نفسها محمّلة. يضمن هذا النهج القائم على سكربت إضافي ألا يكون سجل notice.log لدى المستخدمين الذين لا يريدون المعرّف فيه مزدحمًا بعمود إضافي غير مستخدم دائمًا.
تتصوّر مواصفات Community ID حاليًا دعم عدد من تجمعات البروتوكولات التي لا يتتبّع Zeek حالتها على مستوى التدفق لأن محللاته لا تعرف ماذا تفعل بحركة المرور هذه. بالنسبة لمثل هذه التدفقات، لا يقوم Zeek أبدًا بتشغيل الأحداث المرتبطة بالاتصال التي تستخدمها الحزمة، لذا لن يكون هناك مخرجات في conn.log على أي حال. (إذا كانت هناك بروتوكولات يتتبّعها Zeek على مستوى التدفق ولكن الإضافة لا تدعمها، فسيكون المعرّف المُبلَغ عنه فارغًا.) ندعم حاليًا TCP و UDP عبر IPv4 أو IPv6، بالإضافة إلى ICMPv4 و ICMPv6. نحن لا ندعم بروتوكولات النقل الأخرى (مثل SCTP)، أو تدفقات أزواج عناوين IP العامة لبروتوكولات طبقة النقل غير المدعومة.
اسم الحزمة هو zeek-community-id؛ واسم الإضافة هو Corelight::CommunityID. يمكنك الاطلاع على خيارات إعداد الحزمة في سكربت Zeek المقابل.
تعمل حزمة Community ID مع أي إصدار من Zeek منذ 2.6.4. نظرًا لأن قاعدة كود Zeek شهدت تغييرات جوهرية منذ ذلك الحين، توفر الحزمة فروع توافق تدعم نطاقات محددة من إصدارات Zeek، محققةً توازنًا بين قابلية قراءة الكود وسهولة التثبيت وإدارة الفروع.
في فرعي zeek/x.y و master، تُوسَم إصدارات Community ID بوسوم git. على سبيل المثال، 3.1.0 هو الإصدار الأول على فرع zeek/3.1، ويعمل مع أي إصدار Zeek في سلسلة 3.1. سيُطلق على إصدار Community ID التالي لسلسلة Zeek 3.1 اسم 3.1.1 وسيوجد أيضًا على هذا الفرع، يليه 3.1.2، وهكذا. (لذلك فإن هذا ليس إصدارًا دلاليًا.)
يعلن كل فرع أيضًا عن نافذة توافق لإصدارات Zeek في zkg.meta، لذا لن يتم التثبيت إذا كان مقترنًا بإصدار Zeek غير متوافق. على سبيل المثال، يتطلب فرع master حاليًا Zeek 3.2.0 على الأقل، دون حد أقصى.
فيما يلي ملخص لكيفية توافق إصدارات Zeek ووسوم git وفروع git:
| إصدار Zeek | وسم Git | فرع Git |
|---|---|---|
| 2.6.4 - 3.0.x | 3.0.y | zeek/3.0 |
| 3.1.x | 3.1.y | zeek/3.1 |
| 3.2.x - master | 3.2.y | master |
تتضمن الحزمة اختبارات btests تتحقق من تحميل الإضافة وتمرير ملفات pcap الاختبارية المرفقة عبر Zeek للتحقق من مخرجات وحدة تحكم Zeek المرجعية. يمكنك تشغيلها بكتابة btest -c btest.cfg في دليل الاختبارات.
للاستفسارات والملاحظات، يُرجى التواصل عبر القائمة البريدية لـ Zeek أو Slack الخاص بـ Zeek. نرحب بمشكلات GitHub وطلبات السحب (PRs).