اعرف اللي قصادك. احمي أرضك.

Volatility 3

الإطار المرجعي للتحقيق الجنائي في الذاكرة (Memory Forensics)، يستخرج العمليات النشطة والاتصالات وآثار البرمجيات الخبيثة من الذاكرة العشوائية.

دفاعمفتوحة المصدرLinuxmacOSWindows
github.com/volatilityfoundation/volatility3

Volatility 3 — الدليل الكامل

تُعد Volatility الإطار البرمجي الأبرز مفتوح المصدر للتحليل الجنائي للذاكرة (Memory Forensics). تقوم الأداة بقراءة صور الذاكرة (RAM dumps) وإعادة بناء حالة نظام التشغيل — بما يشمل العمليات (Processes)، والاتصالات الشبكية، ونماذج النواة (Kernel Modules)، وخلايا السجل (Registry Hives)، ومؤشرات البرمجيات الخبيثة (Malware Indicators). إصدار Volatility 3 هو إعادة كتابة كاملة للمشروع بلغة Python 3 وهو الإصدار المعتمد حالياً.

التثبيت (Install)

$ pipx install volatility3
$ git clone https://github.com/volatilityfoundation/volatility3 && cd volatility3 && pip install -e .

قد تتطلب ملفات الرموز (Symbol files) لأنظمة Linux / macOS إعداداً إضافياً في المسار: volatility3/symbols/.

الاستحواذ على الذاكرة (Memory Acquisition)

نظام التشغيلالأداة المقترحة
WindowsWinPmem, Magnet RAM Capture, DumpIt, Belkasoft Live RAM Capturer
LinuxLiME, avml, Microsoft AVML
macOSosxpmem
HypervisorVM snapshot (.vmem, .vmsn), Hyper-V .vmrs
# مثال لنظام Linux
$ sudo avml /tmp/host.mem
# لنظام Windows
$ .\winpmem-3.3.exe -o image.raw

التشغيل الأساسي (Basic Invocation)

$ vol -f image.raw windows.info
$ vol -f image.raw windows.pslist
$ vol -f image.raw -r jsonl windows.pslist > pslist.jsonl

يسمح الخيار -r باختيار صيغة المخرجات (Renderer): quick, pretty, csv, jsonl, json, none.

الأعلام العامة (Universal Flags)

العلم (Flag)الغرض
-f <file>مسار صورة الذاكرة
-qالوضع الصامت (Quiet)
-v / -vvوضع التفصيل (Verbose)
-r <renderer>صيغة المخرجات
-o <dir>دليل العمل / المخرجات
--save-configحفظ إعدادات الإضافة في ملف تكوين
--writeكتابة الآثار المستخرجة (Artifacts) على القرص
--cache-pathتخزين التحليل مؤقتاً لتسريع عمليات التشغيل اللاحقة

إضافات Windows (أدوات العمل الأساسية)

الإضافة (Plugin)الوظيفة
windows.infoمعلومات النظام، الإصدار (Build)، والملف التعريفي (Profile)
windows.pslistالعمليات الجارية (التسلسل الهرمي: أب/أبناء)
windows.psscanالعمليات المخفية (مسح الذاكرة مقابل تتبع القائمة المرتبطة)
windows.pstreeعرض العمليات كشجرة ASCII
windows.cmdlineأوامر التشغيل (Command Lines)
windows.netscanالاتصالات النشطة + منافذ الاستماع
windows.netstatنفس البيانات السابقة بأسلوب تتبع مختلف
windows.dlllist --pid 1234مكتبات DLL المحملة في عملية معينة
windows.handles --pid 1234المقابض المفتوحة (الملفات، مفاتيح السجل، Mutexes)
windows.malfindالبحث عن الشيفرات المحقونة (مناطق الذاكرة الخاصة RWX)
windows.ldrmodulesتحديد DLLs غير الموجودة في قوائم المحمل الثلاث (مؤشر حقن)
windows.svcscanالخدمات (Services)
windows.driverscan / windows.modulesنماذج النواة (Kernel Modules) والتعريفات
windows.callbacksاستدعاءات إشعارات النواة (كشف الـ Rootkits)
windows.hashdumpاستخراج قيم الـ NT hashes المحلية من ملف SAM
windows.lsadumpأسرار LSA
windows.cachedumpبيانات الاعتماد المخزنة للنطاق (Domain Creds)
windows.registry.printkey --key '...'قراءة مفتاح سجل معين
windows.registry.userassistسجل تشغيل البرامج للمستخدم (UserAssist)
windows.registry.shellbagsتاريخ الوصول إلى المجلدات (Shellbags)
windows.filescanالبحث عن الملفات الموجودة في الذاكرة
windows.dumpfiles --pid 1234 --dump-dir out/استخراج الملفات من الذاكرة
windows.memmap --pid 1234 --dumpتفريغ ذاكرة عملية كاملة

إضافات Linux

الإضافةالغرض
linux.bashاستعادة تاريخ الأوامر من ذاكرة Bash
linux.psaux / linux.pslistالعمليات
linux.proc.Mapsخرائط الذاكرة لكل عملية
linux.elfsملفات ELF المحملة (صيد الـ Rootkits)
linux.lsmodنماذج النواة
linux.tty_checkكشف الـ Rootkits التي تعترض المحطات الطرفية (TTY)
linux.malfindالذاكرة المحقونة
linux.check_syscall / linux.check_idtفحص اعتراض نداءات النظام (Syscalls) أو المقاطعات (Interrupts)

إضافات Mac

الإضافةالغرض
mac.pslist / mac.pstreeالعمليات
mac.bashتاريخ الأوامر
mac.netstatالاتصالات الشبكية
mac.list_filesمقابض الملفات المفتوحة

سير العمل (Workflows)

تدفق عملية الفرز الأولي (Triage flow)

$ vol -f mem.raw windows.info > info.txt
$ vol -f mem.raw windows.pslist > pslist.txt
$ vol -f mem.raw windows.pstree > pstree.txt
$ vol -f mem.raw windows.cmdline > cmdline.txt
$ vol -f mem.raw windows.netscan > netscan.txt
$ vol -f mem.raw windows.svcscan > svcscan.txt
$ vol -f mem.raw windows.malfind > malfind.txt

مقارنة مخرجات pslist مع psscan — أي عمليات تظهر في psscan فقط هي غالباً عمليات مخفية.

استخراج ملف برمجية خبيثة مشتبه به

$ vol -f mem.raw windows.dlllist --pid 4444 > dll-4444.txt
$ vol -f mem.raw windows.dumpfiles --pid 4444 --dump-dir out/
$ file out/file.4444.*

استعادة هاشات NT وأسرار LSA

$ vol -f mem.raw windows.hashdump
$ vol -f mem.raw windows.lsadump
$ vol -f mem.raw windows.cachedump

يمكن استخدام الهاشات المستخرجة لهجمات (Pass-the-Hash) أو كسرها باستخدام hashcat -m 1000.

استعادة تاريخ Bash (نظام Linux)

$ vol -f mem.lime linux.bash | head -200

غالباً ما تظهر الأوامر التي نفذها المهاجم في جلسة تفاعلية، حتى لو تم مسح ملف ~/.bash_history.

مشاكل المخرجات وحلولها

العرضالحل
Unsatisfied requirement primary.layer_name.WindowsRegistryالصورة خاطئة أو تالفة؛ تحقق من الهاش؛ استخدم windows.info أولاً
Linux: Symbol file not foundقم ببناء ملف الرموز باستخدام dwarf2json من حزمة تصحيح النواة (Kernel debug pkg)
windows.netscan فارغتم التقاط الذاكرة قبل بدء الشبكة، أو أن البيانات تم ترحيلها (Paged out)
الإضافة بطيئة جداًاستخدم --cache-path لإعادة استخدام نتائج التحليل السابقة
الأداة تقول "image is shifted"حجم الصفحة خاطئ أو الذاكرة مشفرة — جرب إضافات بديلة

منظور المدافع (Defender's perspective)

التحليل الجنائي للذاكرة هو الكلمة الفصل فيما كان يحدث فعلياً على النظام. تحاول أساليب المهاجمين الحديثة تجنب ترك آثار على القرص الصلب، لذا تظل الذاكرة هي المصدر الوحيد للحقيقة المطلقة (Ground Truth).

أنماط للبحث عنها:

  • نتائج windows.malfind في ملفات غير موقعة (Unsigned) تشير بوضوح إلى عملية حقن.
  • عملية بدون عملية أب في pstree (Orphan) تُعد مشبوهة ما لم تكن عملية نظام معروفة (مثل wininit).
  • تحميل comsvcs.dll داخل rundll32 مع مقبض نشط لـ LSASS — يشير إلى محاولة استخراج كلمات مرور (Mimikatz-style).
  • اتصالات بنطاقات تم تسجيلها حديثاً (Recently-registered domains) في netscan.

الأمن العملياتي (OPSEC)

  • يتم تشغيل Volatility على جهاز المحلل، لذا لا يوجد خطر من اكتشافه في جهة الهدف.
  • صور الذاكرة تحتوي على كل شيء سري كان موجوداً في الذاكرة وقت الالتقاط — يجب تشفيرها عند التخزين ومعاملتها كبيانات عالية السرية.

أدوات ذات صلة

الأداةالتخصص
MemProcFSتركيب الذاكرة كنظام ملفات؛ وتتكامل مع Vol3
Rekallنسخة مشتقة من Volatility (أقل نشاطاً حالياً)
PowerForensics / KAPEأدوات مكملة للتحليل من جهة القرص الصلب
Bulk Extractorاستخراج الأنماط (بطاقات الائتمان، الإيميلات) من الذاكرة
Yara on memoryاستخدام قواعد yara على memory.raw للبحث عن مؤشرات الاختراق (IOCs)