🔒 بيئة تدريبية — للاستخدام الأكاديمي فقط  |  CHFI Interactive Lab م. عبدالله الأسمري  ·  Eng. Abdullah Alasmari
🔬

مختبرات التحليل الجنائي الرقمي

CHFI · Digital Forensics Interactive Labs
م. عبدالله الأسمري
استناداً إلى كتاب: التحليل الجنائي الرقمي — د. جميل حسين تويلح
🦠

مختبر تحليل البرمجيات الخبيثة

Malware Analysis Lab — الفصل العاشر
🏆 0/75 نقطة ← الرئيسية
🦠 أنواع البرمجيات
🔬 التحليل الثابت
⚡ التحليل الديناميكي
📦 Sandbox
🎯 مؤشرات الاختراق
📋 YARA Rules

🦠 أنواع البرمجيات الخبيثة

البرمجيات الخبيثة (Malware) تصنيفات متعددة لكل منها طريقة عمل وأهداف مختلفة. فهم نوع البرنامج الخبيث يساعد المحقق في تحديد مساره ومصدره.

📖 اختر نوع البرمجية لمعرفة تفاصيلها

🔴

Virus — الفيروس

يلتصق بملفات ويتكاثر

🐛

Worm — الدودة

ينتشر ذاتياً عبر الشبكة

🐴

Trojan — حصان طروادة

يتنكر كبرنامج شرعي

🔒

Ransomware — الفدية

يشفّر ملفاتك ويطلب فدية

👁️

Spyware — التجسس

يسرق بياناتك سراً

🕳️

Rootkit

يُخفي وجوده في النظام

⌨️

Keylogger

يسجّل كل ضغطة مفتاح

🤖

Botnet

جيش من أجهزة مخترقة

❓ الموظف يتلقى إيميلاً بملف PDF يحتوي برنامجاً يبدو شرعياً لكنه في الخلفية يفتح باباً خلفياً للمهاجم. ما نوعه؟

🔬 التحليل الثابت (Static Analysis)

فحص الملف الخبيث دون تشغيله — آمن تماماً. نفحص: Hash، حجم الملف، النصوص المضمّنة، الـ Imports، والـ Headers. مناسب للكشف السريع الأولي.

🧮 الخطوة الأولى — حساب Hash للملف المشبوه

analyst@sandbox:~$ md5sum suspicious_update.exe
a3f7c9d2e1b845f0123456789abcdef0 suspicious_update.exe
analyst@sandbox:~$ sha256sum suspicious_update.exe
b94d27b9934d3e08a52e52d7da7dabfac484efe04294e576f0eb8fb9ca33e67c suspicious_update.exe

📄 استخراج النصوص (strings) من الملف

كل ملف تنفيذي يحتوي نصوصاً مضمّنة — URLs، أسماء ملفات، مفاتيح تشفير — تكشف نية البرنامج.

analyst@sandbox:~$ strings suspicious_update.exe | grep -iE "(http|cmd|powershell|regedit|delete)"
جارٍ التحليل...

📦 فحص PE Header — بنية الملف التنفيذي

📊 الـ Imports — ماذا يستطيع هذا البرنامج؟

الـ Import Table تكشف الوظائف التي يستخدمها البرنامج — كل وظيفة لها دلالة:

الدالة المستوردةالمكتبةالدلالةخطورة
CreateFileAkernel32.dllإنشاء/فتح ملفاتعادي
RegSetValueExadvapi32.dllتعديل السجلمتوسط
WriteProcessMemorykernel32.dllكتابة في ذاكرة عملية أخرى⚠️ خطير
CreateRemoteThreadkernel32.dllإنشاء thread في عملية أخرى🚨 شديد الخطورة
WSAStartup / connectws2_32.dllاتصال شبكيمتوسط
CryptEncryptadvapi32.dllتشفير البيانات⚠️ خطير
IsDebuggerPresentkernel32.dllالتحقق من وجود debugger — يتجنب التحليل!🚨 Anti-Analysis

❓ وجود IsDebuggerPresent في الـ Imports يعني؟

⚡ التحليل الديناميكي (Dynamic Analysis)

تشغيل البرنامج الخبيث في بيئة معزولة ومراقبة سلوكه الفعلي. نراقب: الملفات التي يُنشئها، التعديلات على السجل، الاتصالات الشبكية، العمليات التي يُطلقها.

⚠️ قواعد التحليل الديناميكي الآمن

🔴 يجب تشغيل البرنامج الخبيث فقط في بيئة معزولة (VM) — لا على الجهاز الأصلي أبداً!
🔌 قطع الاتصال بالإنترنت أو استخدام شبكة وهمية (INetSim) لمنع الاتصال بالخادم الحقيقي
📸 أخذ Snapshot للـ VM قبل التشغيل للرجوع لها بعد التحليل

🖥️ مراقب العمليات (Process Monitor) — محاكاة

🛠️ أدوات Sysinternals للتحليل الديناميكي

Process Monitor (ProcMon): يراقب كل عملية على الملفات والسجل والشبكة في الوقت الحقيقي. الأقوى لتتبع ما يفعله الـ Malware.
Process Explorer: مستعرض العمليات المتقدم — يكشف العمليات المخفية والـ DLL Injection.
Autoruns: يكشف كل البرامج المضبوطة للتشغيل التلقائي — أول مكان يراقبه المحقق.
TCPView: يعرض كل الاتصالات الشبكية المفتوحة وأي عملية تستخدمها.

❓ المحقق يرى في Process Monitor أن البرنامج المشبوه يكتب في HKCU\Software\Microsoft\Windows\CurrentVersion\Run. ماذا يعني هذا؟

📦 محاكاة Sandbox التلقائية

Sandbox هو بيئة تحليل تلقائية تُشغّل الملف الخبيث وتُقدّم تقريراً كاملاً عن سلوكه. أمثلة: Cuckoo Sandbox، ANY.RUN، Hybrid Analysis.

🚀 تقرير Sandbox — suspicious_update.exe

درجة الخطورة
آمنخطير
82
/ 100 درجة خطورة
🔴 MALICIOUS
⏱️ مدة التحليل: 120 ثانية
🌐 الشبكة: متصل (مُراقَب)
🖥️ نظام التشغيل: Windows 10 x64
🔍 المحرّك: Cuckoo Sandbox 2.0

📊 ملخص السلوك

🗂️ الملفات (13 عملية)
أنشأ 8 ملفات، عدّل 3، حذف 2 — في %TEMP% و AppData
🗝️ السجل (9 تعديلات)
أضاف نفسه لـ Run، عدّل إعدادات الأمان
🌐 الشبكة (5 اتصالات)
اتصل بـ C2 server، أرسل بيانات جهاز الضحية
⚙️ العمليات (4 عمليات)
أطلق cmd.exe و powershell.exe بامتيازات عالية

🎯 مؤشرات الاختراق (Indicators of Compromise)

IOC هي آثار تدل على حدوث هجوم أو وجود برمجية خبيثة — IP، Hash، اسم ملف، مسار في السجل. نستخدمها للكشف والمنع والتحقيق.

📋 IOCs المستخرجة من التحليل

النوعالقيمةالخطورةالوصف
Hash MD5a3f7c9d2e1b845f0...🔴Hash الملف الخبيث
IP185.220.101.42🔴خادم C2 — روسيا
Domainupdate-service.ru🔴نطاق الخادم الخبيث
Registry KeyHKCU\...\Run\svchost32🟠مفتاح الثبات (Persistence)
File Path%APPDATA%\svchost32.exe🟠موقع الملف الخبيث
MutexGlobal\XYZ_MutexName_v2🟡يتجنب تشغيل نسختين
User-AgentMozilla/4.0 (compatible; MSIE 6.0)🟡Browser قديم جداً — مشبوه
URL Patternhttp://[C2]/gate.php?id=[UUID]🔴رابط التسجيل مع C2

🔗 C2 Communication — اتصال بالخادم

🚨 الـ C2 (Command & Control) هو الخادم الذي يتحكم المهاجم من خلاله بالأجهزة المخترقة. اكتشافه يكشف البنية التحتية للهجوم.
💻
الضحية
192.168.1.105
HTTP POST كل 60 ثانية
→ بيانات الجهاز + Screenshots ←
أوامر من المهاجم
🖥️
خادم C2
185.220.101.42 🇷🇺
Captured C2 Traffic (decrypted): [Beacon] → {"id":"abc123","os":"Windows 10","user":"khalid","domain":"COMPANY"} [Response] ← {"cmd":"screenshot","interval":60} [Beacon] → {"id":"abc123","data":"[base64_screenshot...]"} [Response] ← {"cmd":"upload","path":"C:\\secret_transfer.xlsx"}

❓ ما الخطوة الأولى عند اكتشاف اتصال C2 نشط؟

📋 YARA Rules — كتابة قواعد الكشف

YARA هي لغة لكتابة قواعد للكشف عن البرمجيات الخبيثة بناءً على أنماط في الملفات. يستخدمها المحققون وفرق الأمن لمسح الأجهزة.

📝 بنية قاعدة YARA

/* اسم القاعدة وصف البرنامج الخبيث المؤلف: د. التحليل الجنائي التاريخ: 2024-03-21 */ rule Malware_SvcHost32_Backdoor { meta: description = "Detects svchost32 backdoor seen in COMPANY breach" author = "Forensics Team" date = "2024-03-21" hash_md5 = "a3f7c9d2e1b845f0..." strings: $str1 = "update-service.ru" // نطاق خادم C2 $str2 = "gate.php?id=" // رابط الـ beacon $str3 = "svchost32" nocase // اسم الملف $bytes1 = { FF 25 ?? ?? ?? ?? 48 8B ?? 48 } // نمط ثنائي مميز $mutex = "Global\\XYZ_MutexName_v2" condition: uint16(0) == 0x5A4D // PE file (MZ header) and filesize < 2MB and (2 of ($str*) or $bytes1 or $mutex) }

🛠️ اكتب قاعدة YARA بسيطة

تمرين: ابحث عن أي ملف يحتوي نصّي "secretupload.ru" و "POST /upload.php" معاً

❓ في قاعدة YARA: 2 of ($str*) تعني؟