ماذا ستتعلم في هذه الغرفة؟
-
فهم آلية سحب الذاكرة العشوائية في أنظمة Linux باستخدام أداة LiME (Linux Memory Extractor).
-
بناء وتجميع وحدة النواة (Kernel Module – LKM) الموافقة لنواة النظام المستهدف.
-
تنفيذ عملية التقاط الذاكرة عبر الشبكة (Network Acquisition) لتفادي الكتابة على القرص المحلي.
-
ضمان نزاهة ملف الذاكرة المستخرج وحساب قيمة الهاش فور الانتهاء.
محتوى الدرس:
تختلف أنظمة Linux عن Windows في آلية التعامل مع الذاكرة؛ حيث أغلقت النواة الحديثة (Kernel 2.6+) إمكانية الوصول المباشر لجهاز الذاكرة /dev/mem لأسباب أمنية. لذلك تُعتبر أداة LiME المعیار الذهبي والوحيد المعتمد جنائياً لسحب الذاكرة الفيزيائية بالكامل من خوادم وأجهزة Linux.
1. آلية عمل أداة LiME (Linux Memory Extractor): تعتمد أداة LiME على تحميل وحدة نواة قابلة للتحميل (Loadable Kernel Module – LKM). تقوم هذه الوحدة بالوصول المباشر للذاكرة الفيزيائية وتفريغها دون الاعتماد على أدوات النظام الحية التي قد تكون متأثرة ببرمجيات خبيثة (Rootkits).
2. خطوات الإعداد والتجميع (Compilation & Build):
-
متطلبات التجميع: تتطلب وجود حزمة
build-essentialورؤوس النواة المطابقة (linux-headers-$(uname -r)). -
أمر التجميع:
make -C /lib/modules/$(uname -r)/build M=$PWDينتج عن هذه العملية ملف بالامتداد.ko(مثل:lime-5.15.0-generic.ko).
3. سيناريوهات التقاط الذاكرة (Memory Acquisition Scenarios):
-
التقاط محلي إلى قرص خارجي (USB):
insmod lime-5.15.0-generic.ko "path=/media/usb/ram.lime format=raw" -
التقاط عبر الشبكة (Network Acquisition): يُستخدم في الخوادم البعيدة لمنع الكتابة نهائياً على أي وسيط تخزين محلي:
-
على النظام المستهدف:
insmod lime.ko "path=tcp:4444 format=raw" -
على جهاز المحقق:
nc target_ip 4444 > ram_capture.raw
-