انتقل إلى المحتوى

تحليل نتائج Hayabusa باستخدام Timeline Explorer

نبذة

Timeline Explorer هي أداة مجانية لكنها مغلقة المصدر لتحل محل Excel عند تحليل ملفات CSV لأغراض DFIR. وهي أداة واجهة رسومية تعمل على Windows فقط ومكتوبة بلغة C#. هذه الأداة رائعة للتحقيقات الصغيرة التي يجريها محلل واحد ولمن يتعلمون تحليل DFIR لأول مرة، إلا أن الواجهة قد يصعب فهمها في البداية لذا يرجى استخدام هذا الدليل لفهم الميزات المختلفة.

التثبيت والتشغيل

لا حاجة لتثبيت التطبيق. ما عليك سوى تنزيل أحدث إصدار من https://ericzimmerman.github.io/#!index.md، وفك ضغطه وتشغيل TimelineExplorer.exe. إذا لم يكن لديك بيئة تشغيل .NET المناسبة، ستظهر رسالة تخبرك بأنك بحاجة إلى تثبيتها. في وقت كتابة هذا الدليل (2025/2/14)، كان أحدث إصدار هو 2.1.0 الذي يعمل على .NET الإصدار 9.

تحميل ملف CSV

ما عليك سوى النقر على File -> Open من القائمة لتحميل ملف CSV.

سترى شيئًا كهذا:

البدء لأول مرة

في الأسفل تمامًا، يمكنك رؤية اسم الملف وTotal lines وVisible lines.

بالإضافة إلى الأعمدة الموجودة في ملف CSV، هناك عمودان على اليسار أضافهما Timeline Explorer: Line وTag. يعرض Line رقم السطر لكنه عادةً غير مفيد للتحقيقات، لذا قد ترغب في إخفاء هذا العمود. يتيح لك Tag وضع علامة على الأحداث التي تريد تدوين ملاحظة عنها لتحليلها لاحقًا، إلخ... للأسف، لا توجد طريقة لإضافة وسوم مخصصة للأحداث ولا لكتابة تعليقات حول الأحداث لأن ملف CSV يُفتح في وضع القراءة فقط لمنع الكتابة فوق البيانات.

تصفية البيانات

إذا حرّكت الماوس فوق الجزء العلوي الأيمن من ترويسة، سترى أيقونة تصفية سوداء تظهر.

تصفية البيانات الأساسية

يمكنك وضع علامات على مستوى الخطورة لفرز تنبيهات high وcrit (critical) أولًا. هذه التصفية مفيدة جدًا أيضًا لتصفية التنبيهات المزعجة عن طريق تحديد كل شيء تحت Rule Title ثم إلغاء تحديد القواعد المزعجة.

كما هو موضح أدناه، إذا نقرت على Text Filters، يمكنك إنشاء عوامل تصفية أكثر تقدمًا:

تصفية البيانات المتقدمة

لكن بدلًا من إنشاء عوامل التصفية هنا، عادةً ما يكون من الأسهل النقر على أيقونة ABC تحت الترويسة وتطبيق عوامل التصفية هنا:

تصفية ABC

للأسف، يوفر هذان الموضعان خيارات تصفية مختلفة قليلًا لذا يجب أن تكون على دراية بكلا الموضعين لتصفية البيانات.

على سبيل المثال، إذا كان لديك عدد كبير جدًا من أحداث Proc Exec التي ترغب في تصفيتها، يمكنك اختيار Does not contain وكتابة Proc Exec لتجاهل تلك الأحداث:

تصفية القواعد

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

إذا أردت تجاهل قاعدة مزعجة أخرى، يجب فتح Filter Editor عن طريق النقر على Edit Filter في الزاوية السفلية اليمنى:

محرر التصفية

انسخ نص Not Contains([Rule Title], 'Proc Exec')، أضف and، ألصق نفس عامل التصفية وغيّر Proc Exec إلى Possible LOLBIN والآن يمكنك تجاهل هاتين القاعدتين:

عوامل تصفية متعددة

أسهل طريقة لدمج عوامل تصفية متعددة هي أولًا إنشاء صيغة عامل التصفية من أيقونة ABC، ثم نسخ ذلك النص ولصقه وتحريره ودمج عوامل التصفية باستخدام and وor وnot.

يمكنك أيضًا النقر على أي من النصوص الملونة للحصول على قائمة منسدلة بالخيارات الممكنة لتحرير عوامل التصفية:

التحرير عبر القائمة المنسدلة

خيارات الترويسة

إذا نقرت بزر الماوس الأيمن على أي من الترويسات، ستحصل على الخيارات التالية:

خيارات الترويسة

معظم هذه الخيارات واضحة بذاتها.

  • بعد إخفاء عمود، يمكنك إظهاره مرة أخرى عن طريق فتح Column Chooser، والنقر بزر الماوس الأيمن على اسم العمود والنقر على Show Column.
  • Group By This Column له نفس تأثير سحب ترويسة عمود إلى الأعلى للتجميع حسبه. (موضّح بمزيد من التفصيل لاحقًا.)
  • Hide Group By Box سيُخفي فقط نص Drag a column header here to group by that column وينقل شريط البحث.

التنسيق الشرطي

يمكنك تنسيق النص بلون وخط عريض، إلخ... عن طريق النقر على Conditional Formatting -> Highlight Cell Rules -> Equal To...:

التنسيق الشرطي

على سبيل المثال، إذا أردت إظهار تنبيهات critical بـRed Fill، فقط اكتب crit واختر Red Fill من الخيارات، وحدد Apply formatting to an entire row واضغط OK.

Crit

الآن ستظهر تنبيهات critical باللون الأحمر كما هو موضح أدناه:

تعبئة حمراء

يمكنك الاستمرار في ذلك عن طريق إضافة لون لتنبيهات low وmedium وhigh أيضًا.

البحث

افتراضيًا، عند كتابة نص ما في شريط البحث، سيقوم بإجراء تصفية ويُظهر فقط النتائج التي تحتوي على النص في مكان ما في الصف. يمكنك معرفة عدد النتائج التي حصلت عليها عن طريق التحقق من حقل Visible lines في الأسفل.

يمكنك تغيير هذا السلوك بالنقر على Search options في أقصى الأسفل يمينًا. سيُظهر هذا ما يلي:

خيارات البحث

إذا غيّرت Behavior من Filter إلى Search يمكنك البحث عن النص بشكل طبيعي.

ملاحظة: عادةً ما يستغرق تبديل السلوك بعض الوقت وسيتوقف Timeline Explorer قليلًا، لذا تحلَّ بالصبر بعد النقر.

Match criteria الافتراضي هو Mixed لكن يمكن تغييره إلى Or أو And أو Exact. إذا غيّرته إلى أي شيء باستثناء Mixed، يمكنك بعد ذلك ضبط Condition من Contains إلى Starts with أو Like أو Equals.

Match criteria بقيمة Mixed معقد لأنه يستخدم أحيانًا منطق AND وأحيانًا OR لكنه قد يكون مرنًا جدًا بمجرد تعلّمه. يعمل كما يلي:

  • إذا فصلت الكلمات بمسافات، فسيُعامَل كمنطق OR.
  • إذا أردت تضمين مسافات في بحثك، فأنت بحاجة إلى إضافة علامات اقتباس.
  • اسبق الشرط بـ+ لمنطق AND.
  • اسبق الشرط بـ- لاستبعاد النتائج.
  • صفِّ على عمود محدد باستخدام صيغة ColumnName:FilterString.
  • إذا صفّيت على عمود محدد وأدرجت أيضًا كلمة مفتاحية منفصلة، فسيكون منطق AND.

أمثلة:

معايير البحث الوصف
mimikatz يحدد السجلات التي تحتوي على السلسلة mimikatz في أي عمود بحث.
one two three يحدد السجلات التي تحتوي على one أو two أو three في أي عمود بحث.
"hoge hoge" يحدد السجلات التي تحتوي على hoge hoge في أي عمود بحث.
mimikatz +"Bad Guy" يحدد السجلات التي تحتوي على كل من mimikatz وBad Guy في أي عمود بحث.
EventID:4624 kali يحدد السجلات التي تحتوي على 4624 في العمود الذي يبدأ بـEventID وتحتوي على kali في أي عمود بحث.
data +entry -mark يحدد السجلات التي تحتوي على كل من data وentry في أي عمود بحث، باستثناء السجلات التي تحتوي على mark.
manu mask -file يحدد السجلات التي تحتوي على menu أو mask، باستثناء السجلات التي تحتوي على file.
From:Roller Subj:"currency mask" يحدد السجلات التي تحتوي على Roller في العمود الذي يبدأ بـFrom وتحتوي على currency mask في العمود الذي يبدأ بـSubj.
import -From:Steve يحدد السجلات التي تحتوي على import في أي عمود بحث، باستثناء السجلات التي تحتوي على Steve في العمود الذي يبدأ بـFrom.

تجميد الأعمدة

رغم أنه ليس خيار بحث، يمكنك تكوين First scrollable column ضمن قائمة Search options. سيضبط معظم المحللين هذا على Timestamp حتى يتمكنوا دائمًا من رؤية الوقت الذي وقعت فيه أحداث معينة.

سحب ترويسات الأعمدة للتجميع حسبها

إذا سحبت ترويسة عمود إلى Drag a column header here to group by that column، سيقوم Timeline Explorer بالتجميع حسب ذلك العمود. من الشائع التجميع حسب Level حتى تتمكن من ترتيب أولوية التنبيهات حسب الخطورة:

التجميع حسب

إذا كان لديك أجهزة كمبيوتر متعددة في نتائجك، يمكنك التجميع كذلك حسب Computer لفرزها بناءً على مستويات الخطورة المختلفة لكل كمبيوتر.

فحص الحقول

افتراضيًا، سيفصل Hayabusa بيانات الحقول برمز الأنبوب المكسور: ¦. عندما تكون بيانات الحقل على سطر أفقي، فإن هذا يجعل من السهل جدًا التمييز بين الحقول المتعددة لأن هذا الحرف لا يُوجد كثيرًا في السجلات:

معلومات الحقل

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

محتويات الخلية

المشكلة هي أن Timeline Explorer يتيح لك فقط تنسيق بيانات الحقول حسب أحرف السطر الجديد (CRLF وCR وLF) والفواصل وعلامات الجدولة.

إذا استخدمت الخيار -M, --multiline، يمكنك فصل الحقول بحرف سطر جديد وعند النقر المزدوج لفتح محتويات خلية، سيتم تنسيقها بشكل صحيح:

التنسيق متعدد الأسطر

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

حقل واحد متعدد الأسطر

للأسف، لا يدعم Timeline Explorer الأسطر المتعددة في عرض الجدول الزمني.

للتغلب على هذا، اعتبارًا من Hayabusa v3.1.0، يمكنك فصل الحقول بعلامات الجدولة:

الفصل بعلامات الجدولة

من الأصعب قليلًا التمييز بين مكان انتهاء حقل وبداية الحقل التالي. أيضًا، عند النقر المزدوج وفتح محتويات الخلية لا تُنسَّق الحقول تلقائيًا:

الفصل بعلامات الجدولة غير منسق

لكن، إذا نقرت على Tab في الأسفل ثم Format يمكنك تنسيق الحقول في عرض سهل القراءة:

الفصل بعلامات الجدولة منسق

السمات (Skins)

يمكنك تغيير سمة الألوان من Tools -> Skins إذا كنت تفضل الوضع الداكن، إلخ...

الجلسات

إذا خصصت الأعمدة والمظهر وأضفت عوامل تصفية، إلخ... وأردت حفظ تلك الإعدادات لوقت لاحق، فتأكد من حفظ جلستك من File -> Session -> Save.