
كيف تقرأ سجل الحكم
(Trace)
يحفظ Threat Correlator مع كل حكم سجلًا يبيّن ما الذي نظر إليه، وأي أدوات استدعى، وعلى أي أساس وصل إلى النتيجة.
ليس لدينا بعد سجلات تشغيل فعلية ننشرها، لذلك نشرح في هذه الصفحة بنية السجل ونقرأ مثالًا واحدًا من أوله إلى آخره.
ما يتضمنه السجل الواحد
القراءة من الأعلى إلى الأسفل تتبع الترتيب الذي تكوّن به الحكم.
يضم الحكم الواحد عدة خطوات (step)، وكل خطوة تجمع الملاحظة واستدعاء الأداة والدليل والاستنتاج.
| الحقل | المحتوى | ما يجب التحقق منه عند القراءة |
|---|---|---|
| input_hash | بصمة SHA-256 لمجموعة المدخلات كاملة التي دخلت في الحكم | بهذه القيمة نتأكد عند إعادة التشغيل من استخدام المدخلات نفسها |
| sources | مصادر المدخلات (EDR، بوابة البريد، الوكيل وغيرها) ونطاقها الزمني | إذا غاب مصدر ما، يضيق نطاق الحكم بالقدر نفسه |
| steps[].observation | الحقيقة التي لوحظت في تلك الخطوة | هي جملة تلخص السجل الأصلي، فتحقق من اتساقها مع الدليل أدناه |
| steps[].tool_call | الأداة المستدعاة ومعاملاتها وملخص النتيجة | تحقق من صحة معاملات مثل النطاق الزمني واسم المضيف |
| steps[].evidence | معرّف الدليل وموضعه الأصلي وبصمته | تُرفق أيضًا نتيجة المقارنة الآلية التي تتحقق من وجود السجل المقتبس في المصدر الأصلي |
| steps[].reasoning | سبب الانتقال من الدليل إلى النتيجة، ومعرّف تقنية ATT&CK | يجب أن تشير كل جملة تعليل إلى معرّف دليل |
| verdict · confidence | تصنيف الحكم ومستوى الخطورة ودرجة الثقة وأسباب خفضها | تحقق من ذكر أسباب انخفاض درجة الثقة |
| recommended_actions | الإجراءات الموصى بها وهل تتطلب موافقة | عزل المضيف وقفل الحساب يتطلبان الموافقة دائمًا |
| approval | معرّف دور صاحب الموافقة، والقرار (موافقة أو تعديل أو رفض)، والوقت، والتعليق | من هنا يُعرف أيضًا الوقت الذي استغرقته الموافقة |
| versions | إصدار النموذج وإصدار قالب الأوامر وإصدار السياسة | مجرد تغيير صياغة الأمر يعني أن معيار الحكم قد تغيّر |
| replay | نتيجة إعادة التشغيل لاحقًا بالشروط نفسها والفرق عن الحكم الأصلي | لا بأس باختلاف الجمل، المهم تطابق التصنيف ومستوى الخطورة |
نقرأ سجلًا مثاليًا واحدًا من البداية
سجل مثالي · ليس بيانات عملاء حقيقية ولا سجل تشغيل فعليًا. أعددناه بربط تقنيات المرحلة الأولى من برامج الفدية الموثقة في MITRE ATT&CK (مرفق تصيّد احتيالي، تشغيل PowerShell، حذف النسخ الظلية). أسماء المضيفين والحسابات والأوقات ودرجات الثقة كلها للتوضيح، واستخدمنا للنطاقات وعناوين IP قيمًا محجوزة للتوثيق (.example، 203.0.113.0/24).
أين تنظر أولًا في هذا السجل
ابدأ بسبب توقف درجة الثقة في سطر الحكم عند 0.91. في هذا المثال يذكر السجل أن تشفير الملفات لم يُلاحظ بعد، وأن بصمة الملف التنفيذي المنزَّل لم تتطابق مع أي سجل في استخبارات التهديدات. وفي المقابل، إذا رأيت سجلًا درجة ثقته مرتفعة وخانة أسباب الخفض فيه فارغة، فهذا هو السجل الذي يستحق شكًا أكبر.
انتقل بعدها إلى سطر الموافقة. عزل المضيف لا يُنفَّذ آليًا بموجب السياسة. ويمكنك أن تقرأ في هذا السجل أيضًا أن المحلل احتاج إلى ما يزيد قليلًا على دقيقتين بعد صدور الحكم ليقرأ الأدلة ويوافق.
القراءة خطوة بخطوة
- استلام الرسالة (step 1). في سجل بوابة البريد رسالة واردة من
billing@invoice-notice.example، ومرفقها견적서_1021.docm. استعلم الذكاء الاصطناعي عن البيانات الوصفية الأصلية للرسالة عبرmail.search(message_id=…)، وعن معلومات النطاق عبرintel.domain_whois("invoice-notice.example"). النتيجة: أُنشئ النطاق قبل 3 أيام. جملة التعليل هي "مرفق Office يحتوي على ماكرو مع نطاق حديث الإنشاء، احتمال T1566.001"، وتشير إلى الدليلين E1 وE2. لم يصدر حكم بناءً على هذه الخطوة وحدها. - تشغيل PowerShell (step 2). في حدث Sysmon رقم 1 (إنشاء عملية) سطر عمليته الأم
WINWORD.EXEوعمليته الفرعيةpowershell.exe -NoP -W Hidden -enc JABjAD0A…. حصل الذكاء الاصطناعي على شجرة العمليات عبرedr.process_tree(host="fin-ws-0412", from="09:12", to="09:20")، وفكّ ترميز الأمر المرمّز فتبيّن أنه شيفرة تنزّلhttps://203.0.113.45/u.ps1. وأظهر الاستعلامbaseline.parent_child(host, 30d)أن تطبيقات Office على هذا المضيف لم تشغّل PowerShell قط خلال الثلاثين يومًا الماضية. التعليل T1059.001، والدليلان E3 وE4. - حذف النسخ الظلية (step 3). سجّل حدث Sysmon رقم 11 (إنشاء ملف) ظهور
C:\Users\user01\AppData\Local\Temp\upd.exe، وبعد نحو 20 ثانية ظهر في الحدث رقم 1 الأمرvssadmin.exe delete shadows /all /quiet، وعمليته الأمupd.exe. وعاد الاستعلامintel.hash_lookupدون تطابق. التعليل T1490 (Inhibit System Recovery، تعطيل استرداد النظام)، وصفحة هذه التقنية في ATT&CK تذكر عدة أمثلة لبرامج فدية حذفت النسخ الظلية قبل التشفير. - الحكم. رصد صحيح، مرحلة التحضير لتشغيل برنامج فدية، الخطورة CRITICAL، درجة الثقة 0.91. وسُجّل سببان لخفض درجة الثقة: "لم يُلاحظ تغيير جماعي في الملفات" و"بصمة upd.exe غير متطابقة في الاستخبارات".
- الإجراءات الموصى بها والموافقة. عزل المضيف عن الشبكة (يتطلب موافقة)، واسترجاع الرسائل التي تحمل بصمة المرفق نفسه، وحظر نطاق المرسل والعنوان 203.0.113.45. وافق analyst-07 على العزل في 09:17، وترك تعليقًا نصه "يرجى التحقق من جلسات SMB على خادم الملفات". أما الحظران فنُفّذا دون موافقة لأنهما ضمن نطاق سياسة الاستجابة الآلية المتفق عليها مع العميل.
- إعادة التشغيل. في اليوم التالي أُعيد التشغيل بالقيمة نفسها لـ input_hash وبإصداري النموذج والسياسة نفسيهما، فجاء التصنيف ومستوى الخطورة متطابقين، ودرجة الثقة 0.89، مع اختلاف في صياغة بعض جمل التعليل. ولأن الجمل ليست موضع مقارنة، سُجّلت النتيجة "متطابقة".
السجل نفسه في صيغته الأصلية
نقلنا المثال أعلاه بصيغة السجل نفسها مع اختصاره.
أسماء الحقول للتوضيح، وسننشر صيغة التصدير الفعلية في وثائق عند الإطلاق.
// سجل مثالي · ليس بيانات عملاء حقيقية ولا سجل تشغيل فعليًا
{
"trace_id": "VT-EXAMPLE-0001",
"input_hash": "sha256:9f3a…c21e",
"sources": [
{"type": "mail_gateway", "range": "09:00~09:20"},
{"type": "edr_sysmon", "host": "fin-ws-0412", "range": "09:00~09:20"}
],
"steps": [
{"n": 1,
"observation": "مرفق يحتوي على ماكرو (견적서_1021.docm)، ونطاق المرسل أُنشئ قبل 3 أيام",
"tool_calls": ["mail.search(message_id=…)", "intel.domain_whois(\"invoice-notice.example\")"],
"evidence": [{"id": "E1", "ref": "mailgw/2026/10/21/09.log#L2207", "sha256": "1c0d…7be2", "verified": true},
{"id": "E2", "ref": "intel/whois/invoice-notice.example", "verified": true}],
"reasoning": "E1+E2: احتمال مرفق تصيّد موجّه", "attack": ["T1566.001"]},
{"n": 2,
"observation": "WINWORD.EXE → powershell.exe -NoP -W Hidden -enc …",
"tool_calls": ["edr.process_tree(host=\"fin-ws-0412\", from=\"09:12\", to=\"09:20\")",
"baseline.parent_child(host=\"fin-ws-0412\", window=\"30d\")"],
"evidence": [{"id": "E3", "ref": "sysmon:EventID=1 RecordID=884213", "verified": true},
{"id": "E4", "ref": "baseline/fin-ws-0412/parent_child", "verified": true}],
"reasoning": "E3: تطبيق Office شغّل PowerShell مرمّزًا، E4: لا سابقة خلال 30 يومًا",
"attack": ["T1059.001"]},
{"n": 3,
"observation": "إنشاء upd.exe ثم vssadmin.exe delete shadows /all /quiet",
"tool_calls": ["edr.process_tree(…)", "intel.hash_lookup(\"sha256:3b7e…a19f\")"],
"evidence": [{"id": "E5", "ref": "sysmon:EventID=11 RecordID=884240", "verified": true},
{"id": "E6", "ref": "sysmon:EventID=1 RecordID=884251", "verified": true}],
"reasoning": "E6: حذف وسائل الاسترداد، ويُقدَّر أنها مرحلة ما قبل التشفير", "attack": ["T1490"]}
],
"verdict": {"label": "true_positive", "severity": "critical",
"summary": "مرحلة التحضير لتشغيل برنامج فدية",
"confidence": 0.91,
"confidence_notes": ["لم يُلاحظ تغيير جماعي في الملفات", "بصمة upd.exe غير متطابقة في الاستخبارات"]},
"recommended_actions": [
{"action": "isolate_host", "target": "fin-ws-0412", "requires_approval": true},
{"action": "recall_mail", "match": "attachment_sha256", "requires_approval": false},
{"action": "block", "targets": ["invoice-notice.example", "203.0.113.45"], "requires_approval": false}
],
"approval": {"action": "isolate_host", "by": "analyst-07", "decision": "approved",
"at": "2026-10-21T09:17:40+09:00", "comment": "يرجى التحقق من جلسات SMB على خادم الملفات"},
"versions": {"model": "correlator-model-x.y", "prompt_template": "triage-vNN", "policy": "auto-response-YYYY.MM"},
"replay": {"at": "2026-10-22T10:05:12+09:00", "same_input_hash": true,
"label_match": true, "severity_match": true, "confidence": 0.89,
"text_diff": "اختلاف في صياغة بعض جمل التعليل"}
}
الحقل verified هو نتيجة المقارنة الآلية التي تتحقق من وجود السجل المقتبس فعلًا في المخزن الأصلي. إذا كانت قيمة واحدة false يُعلَّق الحكم ويُحال إلى المحلل. أما طريقة احتساب هذه المقارنة فمشروحة في بند رصد المخرجات المختلَقة في صفحة جودة أحكام الذكاء الاصطناعي.
ما يفعله من يتسلّم السجل
سجل الحكم ليس سجلًا داخليًا تطّلع عليه Genox وحدها.
نبنيه على افتراض أن فريق الأمن لدى العميل والمدققين سيفتحونه بأنفسهم.
الاستجابة للتدقيق
إذا سُئلت في تدقيق أو تحقيق في حادث "لماذا عُزل هذا المضيف؟" فالإجابة في سجل واحد. ما الذي رُصد تجده في evidence، ومن وافق تجده في approval، وأي نموذج وأي سياسة كانا يعملان حينها تجده في versions. ولأن الأدلة تُحفظ بمواضعها وبصماتها، ينبغي أن تجعل مدة الاحتفاظ بالسجلات الأصلية مساوية لمدة الاحتفاظ بسجلات الأحكام.
تحليل الإنذارات الكاذبة
في كل حكم ثبت أنه إنذار كاذب نبحث عن الخطوة التي حدث فيها الانحراف. هل كانت معاملات استدعاء الأداة خاطئة، أم أن استعلام خط الأساس عاد فارغًا، أم أن الاستنتاج تجاوز ما تقوله الأدلة؟ تتبّع الخطوات (step) واحدة واحدة يكشف ذلك عادة. وحين ننشر حالات الإنذار الكاذب في التقرير الشهري نرفق هذا السجل كما هو.
تحسين القواعد
إذا تكررت أحكام خُفضت درجة ثقتها للسبب نفسه، تظهر المواضع التي تحتاج إلى تعديل في نطاق الجمع أو في قواعد الرصد. في المثال أعلاه لم تكن سجلات تدقيق خادم الملفات ضمن sources، فلم يكن ممكنًا التحقق من وجود حركة جانبية. وبعد تعديل السياسة نعيد تشغيل الأحكام السابقة على إصدار السياسة الجديد ونتحقق من الفروق.
سننشر السجلات الفعلية
حين تصبح جاهزة
نعيد حاليًا إنتاج تقنيات هجوم منشورة داخل البيئة المعزولة في Research Lab، ونرتب السجلات التي أصدر فيها Threat Correlator أحكامه. حين تتراكم سجلات تشغيل لا تختلط بها بيانات العملاء سننشرها في هذه الصفحة بنصها الأصلي. وحتى ذلك الحين، كل السجلات في هذه الصفحة أمثلة.
ما سنلتزم به عند النشر
- ننشر السجلات التي أخطأ فيها الحكم إلى جانب السجلات التي أصاب فيها
- نذكر معرّفات التقنيات المستخدمة في إعادة الإنتاج وخطوات إعادة الإنتاج
- نحفظ إصدار النموذج والسياسة مع كل سجل، وإذا تغير الإصدار نضيف نتيجة إعادة التشغيل
- ننشئ أسماء المضيفين والحسابات في البيئة المعزولة بحيث لا تتطابق مع بيئات العملاء الفعلية
صفحات يفيد الاطلاع عليها
كيف نقيس جودة أحكام الذكاء الاصطناعي
طريقة قياس الدقة والإنذارات الكاذبة والتهديدات الفائتة وغياب الأدلة وتطابق إعادة التشغيل بالاعتماد على سجلات الأحكام.
طريقة القياسThreat Correlator
المحرك الذي يجمع التنبيهات في حالات، ويسجل الأدلة والتعليل والحكم والإجراءات الموصى بها ودرجة الثقة.
Threat Correlatorالمنصة
كيف تترابط Vulnerability Scanner وBehavioral Analyzer وThreat Correlator وResearch Lab.
صفحة المنصةالمراجع
- Phishing: Spearphishing Attachment (T1566.001)، MITRE ATT&CK
- Command and Scripting Interpreter: PowerShell (T1059.001)، MITRE ATT&CK
- Inhibit System Recovery (T1490)، MITRE ATT&CK
- Sysmon، Microsoft Sysinternals (الحدث رقم 1 إنشاء عملية، والحدث رقم 11 إنشاء ملف)
- vssadmin delete shadows، Microsoft Learn
- RFC 5737 IPv4 Address Blocks Reserved for Documentation، IETF
- RFC 2606 Reserved Top Level DNS Names، IETF