مشروع عملي: حقّق في حادثة من السجلات إلى التقرير
درس 2 من 6
2مشروع عملي: حقّق في حادثة من السجلات إلى التقرير
الصورة الكبيرةالساعة 02:07 فجرًا يصل تنبيه: «تصدير كبير للبيانات من خادم التطبيق إلى عنوان خارجي». أنت المحلل المناوب. المدير سيسألك في الصباح سؤالًا واحدًا: ماذا حدث، وهل تسربت بيانات العملاء؟ أمامك السجلات فقط.
ماذا تشاهد في الرسم: مسار المحلل في أي حادثة: يتأكد أن التنبيه حقيقي، ثم يجمع الأدلة في خط زمني، ثم يسمّي ما حدث، ثم يحتوي ويوثق. كل خطوة تبني على التي قبلها.
خارطة هذا الجزء
المفاهيم بالترتيب، اضغط أيًّا منها للقفز إليه:
طريقان إلى نفس الفكرة
تخيّل أنك محقق وصل لمكان سرقة في متحف. لديك ثلاثة شهود لا يعرف أحدهم الآخر: كاميرا الباب (سجل الدخول)، ودفتر الزوار (سجل خادم الويب)، وحارس البوابة الخارجية (الجدار الناري). كل واحد رأى جزءًا. عملك أن ترتب ما رأوه حسب الساعة، فتظهر القصة: من دخل، ومن أين، وماذا أخذ، ومتى خرج. ثم تكتب تقريرًا يفهمه مدير المتحف دون مصطلحات، ويقول ما الذي يجب إصلاحه حتى لا تتكرر.
المنهج: (1) الفرز: تأكد أن التنبيه ليس إنذارًا كاذبًا (هل العنوان الخارجي معروف؟ هل هو نسخ احتياطي مجدول؟). (2) الخط الزمني: وحّد المنطقة الزمنية (UTC) واجمع الأحداث من المصادر واربطها بمفاتيح مشتركة (IP، والحساب، والمضيف). (3) ATT&CK: سمِّ كل خطوة تكتيكًا وتقنية (مثل T1110 Brute Force، وT1078 Valid Accounts، وT1041 Exfiltration Over C2 Channel). (4) النطاق: أي أجهزة وحسابات وبيانات تأثرت، ومؤشرات IOC للبحث عنها في بقية البيئة. (5) الاحتواء مع حفظ الأدلة. (6) التقرير حسب دورة NIST SP 800-61r3: ملخص تنفيذي، وخط زمني، وأثر، وإجراءات، وتوصيات بمالك وموعد. تدرّب على حوادث حقيقية التصميم في CyberDefenders وفي مسار SOC Level 1 على TryHackMe.
قبل أن تبدأ
🚨الرصد والاستجابة للحوادث
تعرف SIEM ودورة الاستجابة.
🐧Linux وسطر الأوامر للمدافع
تقرأ auth.log وتبني أنبوبًا.
🎯كيف يفكر المهاجم
تعرف تكتيكات ATT&CK.
الفكرة الجوهرية
1الفرز: هل التنبيه حقيقي؟
أول دقائق المحلل ليست للتحقيق العميق بل للإجابة عن سؤال واحد: هل هذا حقيقي وكم هو خطير؟ افحص السياق: هل العنوان الخارجي مزوّد نسخ احتياطي معروف؟ هل هناك تغيير مجدول الليلة؟ هل الحساب يعمل عادة في هذا الوقت؟ إن لم تجد تفسيرًا بريئًا، صنّفه حادثة وابدأ الخط الزمني.
| سؤال الفرز | أين تجد الجواب | في حادثتنا |
|---|---|---|
| هل الوجهة معروفة؟ | قائمة الموردين واستخبارات التهديد | 203.0.113.50 غير معروف |
| هل هناك تغيير مجدول؟ | نظام إدارة التغيير | لا يوجد |
| هل السلوك طبيعي للحساب؟ | سجل الدخول التاريخي | الحساب svc-report لا يدخل تفاعليًا أبدًا |
| الحكم | حادثة، أولوية عالية |
2الخط الزمني من ثلاثة مصادر
كل مصدر يكتب بصيغته وتوقيته. الخطوة الحاسمة أن توحّد الوقت وتدمج الأحداث في قائمة واحدة مرتبة، ثم تبحث عن المفتاح المشترك الذي يربطها: هنا عنوان المهاجم واسم الحساب. شغّل السكربت: هو ما تفعله أدوات SIEM في الخلفية.
ثلاث صيغ وقت مختلفة صارت خطًا واحدًا. القصة: تخمين، ثم دخول بحساب خدمة، ثم تصدير جدول العملاء، ثم خروج 48.6 ميغابايت لعنوان خارجي.
from datetime import datetime, timezone
# three sources, three formats (all fictional, documentation IP ranges)
auth = [("2026-11-02T01:52:10Z", "web01", "Failed password for svc-report from 198.51.100.77"),
("2026-11-02T01:52:41Z", "web01", "Failed password for svc-report from 198.51.100.77"),
("2026-11-02T01:53:05Z", "web01", "Accepted password for svc-report from 198.51.100.77")]
web = [("02/Nov/2026:01:58:30 +0000", "198.51.100.77", "GET /admin/export?table=customers 200 48213992")]
firewall = [(1793585220, "10.0.2.15", "203.0.113.50", 443, "ALLOW", "48.6 MB")]
events = []
for ts, host, msg in auth:
events.append((datetime.fromisoformat(ts.replace("Z", "+00:00")), "auth", msg))
for ts, ip, req in web:
events.append((datetime.strptime(ts, "%d/%b/%Y:%H:%M:%S %z"), "web", f"{ip} {req}"))
for epoch, src, dst, port, action, size in firewall:
when = datetime.fromtimestamp(epoch, tz=timezone.utc)
events.append((when, "firewall", f"{src} -> {dst}:{port} {action} {size}"))
for when, source, what in sorted(events):
print(f"{when:%H:%M:%S} UTC {source:<8} {what}")3سمِّ كل خطوة بلغة ATT&CK
ربط الخطوات بـ ATT&CK ليس ترفًا: يجعل تقريرك مفهومًا لأي فريق في العالم، ويكشف الثغرات في دفاعك: كل تقنية نجحت تعني ضابطًا غائبًا أو لم يعمل.
| الوقت (UTC) | ما حدث | التكتيك | التقنية | الضابط الغائب |
|---|---|---|---|---|
| 01:52 | محاولات كلمة مرور على svc-report | Credential Access | T1110 Brute Force | حد للمحاولات وتنبيه |
| 01:53 | دخول ناجح بحساب الخدمة | Initial Access | T1078 Valid Accounts | MFA، ومنع الدخول التفاعلي لحسابات الخدمة |
| 01:58 | تصدير جدول العملاء من لوحة الإدارة | Collection | T1213 Data from Information Repositories | لوحة الإدارة مكشوفة للإنترنت |
| 02:07 | 48.6 MB إلى عنوان خارجي عبر 443 | Exfiltration | T1041 Exfiltration Over C2 Channel | تنبيه الحجم نجح لكن لا منع تلقائي |
4الاحتواء والتقرير
الاحتواء هنا: عطّل svc-report وغيّر سره، وامنع العنوانين 198.51.100.77 و203.0.113.50، واحفظ نسخة من السجلات والخادم قبل أي تغيير، ثم ابحث عن المؤشرات في بقية الخوادم. وبعدها اكتب التقرير: صفحة واحدة تبدأ بما يحتاجه المدير، ثم التفاصيل للمهندسين.
لاحظ: لا مصطلحات في الملخص، وكل توصية لها مالك وموعد، وجملة «يجب اعتبار البيانات مسربة» مكتوبة بوضوح لأن القرار القانوني يُبنى عليها.
INCIDENT REPORT IR-2026-031 Severity: HIGH Status: Contained Analyst: <your name> Opened: 2026-11-02 02:07 UTC 1. Summary (for management) A service account with a weak password was guessed from the internet and used to export the customers table (about 48 MB) to an unknown external server. Customer data should be treated as leaked. The account and addresses are blocked. 2. Timeline (UTC) 01:52 password guessing on svc-report from 198.51.100.77 T1110 01:53 successful sign-in on svc-report T1078 01:58 GET /admin/export?table=customers (48 MB) T1213 02:07 48.6 MB sent to 203.0.113.50:443, alert fired T1041 3. Scope and indicators Host web01, account svc-report, table customers. IOCs: 198.51.100.77, 203.0.113.50. No matches found on other hosts so far. 4. Actions taken Account disabled and secret rotated; both IPs blocked; logs and disk image preserved. 5. Recommendations Owner Due No interactive sign-in for service accts IT ops 2026-11-09 Admin panel behind VPN with MFA App team 2026-11-16 Auto-block on large outbound transfers SOC 2026-11-30 Legal and privacy review of the leak Legal/DPO 2026-11-04
مثال محلول
المسألة: في حادثة أخرى، التنبيه «دخول ناجح من بلد غير معتاد» على حساب موظف مبيعات. السجل يظهر بعده مباشرة قاعدة بريد جديدة تحوّل كل الرسائل التي فيها كلمة «فاتورة» إلى عنوان خارجي. ماذا تفعل وبماذا تسمي الخطوات؟
الحل: الفرز: هل الموظف مسافر؟ اسأل مديره. إن لم يكن فهي حادثة. ATT&CK: دخول بحساب صالح مسروق (T1078)، ثم قاعدة تحويل بريد (T1114.003 Email Forwarding Rule) تمهيدًا لاحتيال الفواتير (BEC). الاحتواء: ألغِ كل جلسات الحساب وغيّر كلمة المرور وفعّل MFA مقاومًا للتصيّد، واحذف القاعدة بعد تصويرها كدليل، وابحث عن القاعدة نفسها في صناديق أخرى. التقرير: نبّه المالية فورًا لتتحقق هاتفيًا من أي طلب تغيير حساب بنكي وصل مؤخرًا، لأن هذا هو الضرر الحقيقي المحتمل.
خرافة مقابل حقيقة
| الخرافة | الحقيقة |
|---|---|
| التحقيق يعني إيجاد المخترق بالاسم. | الهدف معرفة ما حدث ونطاقه وإيقافه؛ الإسناد لجهة بعينها نادر ويحتاج أدلة أكبر بكثير. |
| التقرير الجيد طويل ومليء بالمصطلحات. | التقرير الجيد يبدأ بملخص يفهمه المدير في دقيقة، والتفاصيل للمهندسين بعده. |
| أعِد بناء الخادم فورًا لتنهي المشكلة. | احفظ الأدلة أولًا، وإلا لن تعرف كيف دخل المهاجم وسيعود من الباب نفسه. |
أين تقابله في العمل
🚨محلل SOC
يكتب ملاحظات الفرز والخط الزمني لكل حادثة يصعّدها.
💼ملف أعمالك
تقرير حادثة واحد مكتوب جيدًا يقنع المقابِل أكثر من عشر شهادات.
⚖️الامتثال
التقرير المؤرخ هو ما تطلبه الجهات التنظيمية بعد أي تسرب.
اختبر فهمك
ما أول هدف للمحلل حين يصله تنبيه؟
الفرز أولًا؛ التحقيق العميق للحوادث الحقيقية فقط.
لماذا تحوّل كل السجلات إلى UTC قبل بناء الخط الزمني؟
فرق ثلاث ساعات قد يجعل النتيجة تسبق السبب.
دخول ناجح بحساب حقيقي سُرقت كلمة مروره. أي تقنية في ATT&CK؟
استخدام حساب صالح للدخول هو T1078.
ما المفتاح الذي يربط سجل الدخول بسجل خادم الويب في حادثتنا؟
العنوان نفسه ظهر في الدخول وفي طلب التصدير.
ما الذي يجب أن يكون في كل توصية في التقرير؟
بدون مالك وموعد تبقى التوصية أمنية لا خطة.
لماذا تحفظ الأدلة قبل حذف قاعدة البريد الخبيثة؟
الدليل يحدد النطاق ويمنع التكرار.
بطاقات مراجعة سريعة
تحقق من فهمك
ماذا تكتب في ملخص الإدارة لو لم تتأكد بعد إن كانت البيانات سُرّبت؟
ما تعرفه وما لا تعرفه بوضوح: «خرج 48 ميغابايت لعنوان مجهول؛ نتحقق من المحتوى، ونتعامل معه كتسريب حتى يثبت العكس»، مع موعد التحديث القادم.
لماذا يُعد حساب خدمة يدخل تفاعليًا علامة خطر؟
حسابات الخدمة تستخدمها البرامج لا البشر؛ دخولها التفاعلي يعني غالبًا أن شخصًا سرق سرها.
أين تتدرب على حوادث مشابهة بشكل قانوني؟
CyberDefenders وتحديات Blue Team، ومسار SOC Level 1 في TryHackMe، وعينات Wireshark العامة. كلها بيئات مصممة للتدريب.
مصادر هذا الدرس
مرتّبة بالنوع. ابدأ بالتوثيق الرسمي إذا تبي المرجع الدقيق، وبالمقال أو الفيديو إذا تبي الشرح أولًا.
خلّصت الدرس؟
سجّل الدخول ليُحفظ تقدّمك.