Memory Forensics With Volatility Lab


في البداية نتعرف عن الـ Memory Forensics ماهي؟

  • Memory Forensics أو تحليل الذاكرة هو يعتبر فرع من التحقيق الجنائي الرقمي (Digital Forensics) يركز على تحليل ذاكرة الوصول العشوائي (RAM) الخاصة بالجهاز لفهم الأنشطة التي حدثت عليه. يتم ذلك بغرض اكتشاف الاختراقات الأمنية، تعقب الأنشطة الضارة، جمع الأدلة الرقمية، أو تحليل البرمجيات الخبيثة (Malware).

  • يُشير مصطلح تحليل الذاكرة إلى تحليل الـ Volatile Data وعمل Memory Dump للجهاز. في العادة يقوم المحللون بإجراء تحليلات للـ Memory لتحديد مؤشرات الاختراق أو مايُسمى بالـ Indicators of Compromise لمعرفة الأنشطة الضارة والسلوكيات وحركة المرور على الشبكة الضارة أو حتى على خوادم الشركات التي تعمل بشكل مستمر.

  • مُصطلح الـ Memory Volatile يعني أن البيانات تُفقد كلما تم إيقاف تشغيل الجهاز ، مما يعني عند التعامل مع جهاز مخترق، قد يكون أحد ردود الفعل الأولى هو إيقاف تشغيل الجهاز لاحتواء التهديد أو مايُسمى بالـ Containment ، فإذا تم إنشاء أي برامج ضارة أو تنفيذ اوامر على الجهاز ( Command and Control ) ، فسيتم تشغيلها في الذاكرة وإذا تم إيقاف تشغيل الجهاز، فسيتم فقد هذه المعلومات. فهذه الأحداث مهمة عند كتابة تقرير الإستجابة للحوادث وتحليلها. وهذا هو السبب في أن إحتواء الشبكة بمعنى عزل الجهاز عن بقية الشب هو الخيار الأمثل عند عزل جهاز مخترق ، وايضاً من ضمن الأسباب المهمة هي عندما يحدث إختراق لجهاز معين لابد الحصول على أدلة مهمة قبل أن تُفقد عند إيقاف تشغيل الجهاز مثل الـ Logs وعمل نسخة من الـ Disk Images..

  • هنا مراحل مهمة في عملية الـ Digital Forensics Process :

  •  المرحلة الأولى تعني انه لابد من الحصول على الأدلة وجمعها من الأجهزة الرقمية لتحليلها وعرضها لاحقًا.

  • المرحلة الثانية تحتوي على الكثير من المعلومات المفيدة مثل الـ Passwords والـ Usernames والـ Running Processes وما إلى ذلك.

  • المرحلة الثالثة تعتبر مرحلة عمل الـ Capture للملفات المُراد تحليلها.

  • الـ Disk Forensics هنا تكون عملية الفحص للذاكرة بطريقة تحليلية لاسترداد البيانات المرتبطة بالبرمجيات الخبيثة المحتملة لمزيد من التحليل ايضاً تتضمن استخراج المعلومات من الـ Memory Dumps والبحث عن معلومات محددة لتحديد التعليمات البرمجية الضارة والبيانات المرتبطة بها.

  • آخر مرحلة وهي توثيق جميع الأحداث في تقرير..


Memory Analysis Procedures

  • هنا سنتطرق لكيفية إجراء تحليل حول ما يجب البحث عنه لتحديد أي نشاط ضار.

  1. تحديد العمليات الضارة أو الـ Identifying Malicious Processes

    أحد أهم النقاط التي لابد أن نركز عليها هي الـ Running Processes فمثلاً في أنظمة التشغيل لدينا مايُسمى بالـ Process ID أو الـ (PID) وإعطائه رقمًا فريدًا بحيث لن يكون لعمليتين مختلفتين نفس الرقم في نفس الوقت.

  2. تحديد اتصالات الشبكة الضارة أو الـ Identifying Malicious Network Connections

    تظل أي اتصالات شبكة نشطة أو مغلقة مؤخرًا في الذاكرة. فيمكننا تحديد الـ IP Address  والمجالات الضارة التي يتصل بها الـ host. في بعض الأحيان، يمكن أيضًا الحصول على الـ Process ID المتعلقة بإتصال شبكة معينة والذي قد يساعدنا في تحديد العمليات الضارة.

  3. اكتشاف عمليات حقن الذاكرة أو الـ Detecting Memory Injections

    كلما حدث شيء غير عادي أو مريب في الـ memory space فإنه يترك بعض الآثار، لأن مساحة الذاكرة معقدة. وبينما تبدو الأنظمة على ما يرام تمامًا من السطح، فإن الأمور ليست طبيعية على مستوى الذاكرة ، بمعنى إن هناك كود برمجي ضار يتم برمجته وحقنه في الذاكرة بحيث يهرب من الكشف أو يعمل تصعيد إمتيازات بلا أن يتم الكشف عنه.

  4. الملفات المرتبطة أو الـ Associated Files (DLL, EXE)

    يحتاج كل برنامج إلى بعض الملفات الإضافية مثل مكتبات الارتباط الديناميكي أو مايُسمى بالـ Dynamic Link Libraries (DLLs) أو ملفات أخرى حتى يتمكن من تنفيذ عمله والتواصل مع نظام التشغيل للقيام به ، فكلما وجدنا عملية خبيثة، يجب علينا أيضًا إسترداد هذه الملفات الإضافية وتحليلها لفهم البرامج الضارة والوظيفة التي قامت بها على النظام المصاب.

  5. الـ Registry Keys

    يحتوي الـ Windows Registry على معلومات حول كل شيء يحدث تقريبًا في نظام التشغيل، ويخزن المعلومات كـ Keys  فهذه تعتبر كـ artifact  قيمة وهي واحدة من الـ artifacts التي تم تحليلها أثناء الـ Host Forensics لأنها تحتوي على معلومات مهمة ويمكن أن تساعد في فهم ما حدث أثناء الـ Incident.


Lab With Volatility

  • بالبداية نتعرف عن آداءة الـ Volatility وتعتبر هذه الآداء من أدوات تحليل البرمجيات الخبيثة لـ RAM فهي تُستخدم لإستخراج وتحليل المعلومات المخزنة في ذاكرة النظام بهدف الكشف عن الأنشطة المشبوهة أو تحديد آثار الاختراقات.

  • من أهم مميزات هذه الآداءة هي تحليل العمليات بمعنى نستطيع إستعراض العمليات النشطة في النظام ، وايضاً تعقب العمليات المخفية أو المشبوهة ، وايضاً نستطيع من خلال هذه الآداءة تحليل الشبكات وهي من خلالها نستطيع إستخراج تفاصيل الإتصالات النشطة (مثل المنافذ المفتوحة وعناوين IP) وايضاً كشف الإتصالات الخبيثة التي قد تكون مخفية ، وايضاً نستطيع كشف محاولات تسجيل الدخول غير المصرح بها.

                               Masqueraded Process
  • قبل الدخول في تفاصيل اللاب العملي ، سنشرح مفهوم العملية المتنكرة أو مايُسمى بالـ Masqueraded Process وهي تعني بأن هناك عملية ضارة يتلاعب بها المهاجم أو الـ Attacker لتبدو وكأنها عملية موثوقة من النظام ، والهدف من هذا هو إخفاء النشاط الضار لجعله يبدو طبيعياً عند مراقبته من قبل الـمحلل. مثال على ذلك svchost.exe  (تعتبر عملية تُساعد الـ Windows services على تشغيل الخدمات ، فمثلاً يتم التلاعب بها بإستبدال حرف “o” بـ صفر مثلاً “0” فتكون بهذه الطريقة svch0st.exe ..

  • كيف يتم التلاعب بالـ Process؟

    يوجد مايُسمى بالـ Parent-Child Process وهي ترتبط بالعمليات بمعنى هناك عمليات رئيسية أو ماتُسمى بالـ Parent Process والفرعية منها ماتُسمى بالـ Child Process  وهي في الغالب يتم التلاعب بها لتبدو وكأنها عمليات موثوقة متابعة للنظام.

  • من الأوامر المهمة في الـ Volatility

    حتى نستعرض ماهي العمليات أو الـ Process التي تعمل حالياً نستخدم هذا الآمر pslist

بالمراجعة للعمليات السابقة نرى أن الـ services.exe لها عملية رئيسية (Parent Process) وهي الـ wininit.exe وهي تعتبر عملية مشروعة أو ماتُسمى بالـ Legitimate Process ولديها الـ Process ID وهي رقم 604.

والآن سنرى أكثر من 10 عمليات svchost.exe وكلها لها عملية رئيسية "604" والتي يجب أن تكون كذلك، باستثناء واحدة كما ظاهر في الصورة التالية :

Join