الخلاصة

  • يسجل conn.log الاستنتاج المختصر لحساس Zeek من الحركة التي وصلت إليه؛ ولا تمثل حقوله، بما فيها history، تسلسلاً كاملاً لكل حزمة.
  • يتطلب الاستنتاج القابل للمراجعة حفظ السجل الأصلي ومخططه وإصدار Zeek والبرامج النصية وموقع الالتقاط ومرشحه والساعة وبيانات الفقد والسجلات التي يجمعها uid.

الاختصار كان قراراً هندسياً

قسم Paxson نظام Bro، الذي أصبح اسمه Zeek لاحقاً، في ورقته المنشورة عام 1998 إلى وظيفتين. يحول محرك الأحداث تياراً مرشحاً من الحزم إلى أحداث شبكية أعلى مستوى، ثم يقرر مفسر سياسة الموقع معنى تلك الأحداث وما يستحق التنبيه أو الاستجابة. بقيت آلية الرصد منفصلة عن حكم المؤسسة.

أتاح هذا التصميم مراقبة وصلة مزدحمة في الزمن الحقيقي. لكنه يحدد أيضاً نطاق الدليل. قبل أن يظهر السطر المقروء توجد نقطة على الشبكة وواجهة ومرشح التقاط وفحوص للسلامة وآلة حالة وبرامج نصية محملة. السجل نتيجة لهذه السلسلة، لا نسخة محايدة من كل ما حدث بين الطرفين.

تعاملت الورقة المبكرة مع فقد الحزم باعتباره خطراً مباشراً. إذا لم يستهلك التطبيق الحزم بالسرعة الكافية امتلأ مخزن المرشح وبدأ إسقاط الواصل منها؛ وقد تكون الحزمة المفقودة هي التي تكشف المتسلل. وافترض التصميم أيضاً أن المهاجم سيفهم المراقب ويحاول مراوغته أو إغراقه. لذلك لا تنفصل صحة الحساس عن صدقية الحادثة.

أضف إلى كل حقل عبارة «كما رآه الحساس»

تقول وثائق Zeek الحالية إن conn.log يسجل أساساً عناصر الطبقتين الثالثة والرابعة: من تحدث مع من، ومتى، وكم استمر الاتصال، وبأي بروتوكول. يشمل TCP وUDP، وفي حالة UDP وICMP تعني «الاتصالات» تدفقات الحزم، لا جلسات لها حالة TCP. حتى اسم السجل لا يحمل معنى واحداً عبر البروتوكولات.

يمثل ts وقت أول حزمة رآها Zeek، لا برهاناً على عدم وجود حزمة أسبق في موضع آخر من المسار. أما uid فهو معرف فريد للاتصال داخل منظومة سجلات Zeek ويصل السطر بسجلات DNS وHTTP وTLS وغيرها. لم يصدره الطرفان ولم يتفقا عليه.

يلخص conn_state الحالة التي استنتجها Zeek. تعني S0 أن محاولة شوهدت من دون رد، وتعني SF أن الإنشاء والإنهاء ظهرا طبيعيين، بينما تصف رموز أخرى الرفض أو إعادة الضبط أو الإغلاق الجزئي. وقد يلخص حساس يرى اتجاهاً واحداً، أو بدأ متأخراً، أو فقد حركة، التبادل نفسه بطريقة مختلفة.

ولا يمثل history شريطاً زمنياً للحزم. يدل الحرف الكبير على حدث من البادئ، والصغير على حدث من المجيب؛ وتختصر الحروف SYN وSYN-ACK وACK والبيانات وFIN وRST والفجوات وإعادة الإرسال. بعض العلامات لا تسجل إلا مرة لكل اتجاه، وبعضها يتكرر بطريقة لوغاريتمية. تكشف السلسلة شكل التفاعل لكنها لا تحتفظ بالترتيب والعدد الكاملين اللذين يسمحان بإعادة بناء PCAP.

حتى الأرقام تعتمد على قواعد. في TCP تُستنتج orig_bytes وresp_bytes من أرقام التسلسل وقد تكون غير دقيقة، ومنها الاتصالات الكبيرة. ولا تشمل duration بعض الحزم المتأخرة التي لا تضيف حمولة جديدة بعد إغلاق اتجاه، مع أن history قد يعكسها. عدادات الحزم اختيارية وتتوقف على تشغيل محلل الحجم. وتتوقف علامات المحلي والبعيد على Site::local_nets. قد يكون الفراغ أثراً للإعداد لا دليلاً على الغياب.

قياس حدود الشاهد

يحصي missed_bytes البايتات المفقودة في فجوات المحتوى. تؤدي القيمة غير الصفرية عادة إلى فشل تحليل البروتوكول، ولو أن جزءاً من التحليل ربما اكتمل قبل الفقد. ويبحث capture_loss.log عن فجوات في أرقام تسلسل TCP ويفترض أن الحركة الغائبة تمثل فقداً أثناء الالتقاط. تفيد الطريقة لأنها معلنة، وهي لا تقيس كل حركة لم تصل إلى الحساس.

يسجل reporter.log التحذيرات والأخطاء الداخلية المرتبطة بمعالجة الحركة ومتطلبات الحوسبة. ينبغي وضعه على الخط الزمني نفسه مع تقديرات الفقد وإعادة تشغيل العملية وتغييرات المرشح وحالة الواجهة. استمرار كتابة conn.log لا يثبت وحده اكتمال الرؤية.

ولا تنفي قيمة صفر في missed_bytes فقداً قبل الواجهة أو مساراً غير متناظر أو فئة استبعدها المرشح أو فترة سبقت تشغيل الحساس. وبالمقابل لا يبطل مؤشر الفقد كل حقل تلقائياً. عدم اليقين المفيد يحدد الوقت والاتجاه والحساس ومرحلة المعالجة.

وحدة الدليل حزمة قابلة لإعادة الفحص

إذا كان الاستنتاج سيعود بعد أشهر في تحقيق أو إجراء وظيفي أو دعوى أو مطالبة تأمين أو إخطار تنظيمي، فاحفظ السجل الخام ومخططه الدقيق، وإصدار Zeek، والبرامج النصية المحملة والإعدادات المهمة، وموقع الحساس وواجهته ومرشح الالتقاط، ومصدر الوقت والانحراف المقاس. وأرفق capture_loss.log وreporter.log للفترة والسجلات الأخرى ذات uid نفسه.

عندما تسمح الخصوصية وسياسة الاحتفاظ، أضف مقطع PCAP غير قابل للتغيير أو بصمة تقود إلى نسخته الخاضعة للسيطرة. للتقاط الحزم أيضاً موضع رؤية وطول لقطة وفقد وسلسلة حيازة؛ فهو ليس حقيقة شاملة. لكنه يتيح اختبار الاستنتاج المختصر بملاحظة أقرب إلى الحزم.

إذا لم يوجد PCAP فاذكر ذلك. عبارة «رصد حساس Zeek الموجود في هذا الموضع وبهذا الإعداد ولخص…» تحدد ادعاء يمكن اختباره. أما الحديث المطلق عما فعلته الحزم فيتجاوز المادة المحفوظة.

ويجب حفظ مخطط الحقول. تشير الوثائق الحالية إلى أن ip_proto أضيف في Zeek 7.1، ويمكن للبرامج النصية إضافة أعمدة أو تغيير التسجيل. من دون الإصدار والرأس قد تطبق أداة لاحقة معنى اليوم على سطر الأمس.

المصادر