0x5. Cyber Attack Lifecycle
بسم الله الرحمن الرحيم.
عندما نقوم بالتعامل مع البرمجيات الخبيثة (Malware) ويتطلب منا الأمر فحصها، يجب أن نعلم كيفية تفكير المهاجم والخطوات التي يسعى إليها. لذلك، في هذا المقال سنناقش إن شاء الله التسلسل الهجومي أو ما يعرف بـ Attack Lifecycle، وسنشرح بعض المصطلحات الأساسية في تطوير البرمجيات الخبيثة.
تقسم دورة الهجوم إلى ثلاث مراحل رئيسية:
شكل (1): توضيح دورة حياة الهجمات.
المرحلة الأولى: الوصول الأولي (Stage 1: Initial Access)
هذه المرحلة تركز على كسر خطوط الدفاع الأولى والوصول إلى داخل النظام.
- الاستطلاع (Reconnaissance): تبدأ العملية بجمع المعلومات عن الهدف. يشمل ذلك البحث عن عناوين الـ IP، فحص المنافذ المفتوحة، أو حتى جمع معلومات عن الموظفين لاستخدامها في الهندسة الاجتماعية (Social Engineering).
- الاستغلال (Exploitation): بعد العثور على نقطة ضعف (ثغرة في نظام، خدمة غير محدثة، أو حتى موظف يمكن خداعه)، يقوم المهاجم باستخدام أداة أو كود معين لاستغلال هذه الثغرة.
- التسلل والاختراق (Infiltration): هي لحظة النجاح في الاستغلال وتخطي الجدار الأمني، حيث يحصل المهاجم على موطئ قدم أولي (Initial Foothold) داخل الشبكة.
المرحلة الثانية: التثبيت والاستكشاف الداخلي (Stage 2: Entrenchment & Discovery)
بعد دخول المهاجم، يحتاج إلى فهم بيئته الجديدة وضمان عدم طرده منها.
- الاستطلاع الداخلي (Internal Reconnaissance): المهاجم الآن داخل الشبكة، ويبدأ بالبحث حوله ليرى ما هي الأجهزة المتاحة، ما هي الصلاحيات التي يملكها، وأين توجد البيانات الحساسة (مثل قواعد البيانات أو خوادم الإدارة).
- التثبيت (Entrenchment): هذه الخطوة حاسمة؛ المهاجم لا يريد أن يفقد الوصول إذا قام مدير النظام بإعادة تشغيل السيرفر أو ترقيع الثغرة الأولى. لذلك، يقوم بإنشاء أبواب خلفية (Backdoors) أو زرع برمجيات خبيثة لضمان بقائه.
ملاحظة: هذه هي النقطة التي يكون فيها الـ Reverse Engineering وتحليل الشيفرات الخبيثة في غاية الأهمية لفهم كيف يختبئ المهاجم وكيف يحافظ على صلاحياته في النظام.
المرحلة الثالثة: تنفيذ الهدف النهائي (Stage 3: Objective Execution)
هنا يبدأ المهاجم في جني ثمار اختراقه وتنفيذ العملية التي جاء من أجلها.
- التحكم والسيطرة (Command & Control - C2): تقوم البرمجيات الخبيثة التي تم زرعها بالاتصال بخوادم خارجية يسيطر عليها المهاجم. من خلال هذه القناة، يتلقى المهاجم الأوامر ويرسلها إلى النظام المخترق بشكل مستمر ومخفي.
- تهريب البيانات (Exfiltration): تجميع البيانات الحساسة (أرقام بطاقات ائتمان، أسرار تجارية، كلمات مرور) ونقلها خلسة إلى خارج شبكة الضحية.
- إخفاء الأثر (Purge): الخطوة الأخيرة وتتمثل في مسح السجلات (Logs)، وحذف الأدوات التي استخدمها المهاجم لإخفاء أي دليل على وجوده. في بعض الحالات، قد تشمل هذه المرحلة تدمير النظام (مثل تشفير الملفات في هجمات الفدية Ransomware أو مسحها عبر برمجيات Wiper).
خلاصة: أصبحت لدينا الآن نظرة عن منهجية كل هجوم يتم عبر الإنترنت. ونحن كمهندسين عكسيين ومحللي برمجيات خبيثة، يتركز عملنا بشكل أساسي على المرحلة الثانية (Stage 2) و المرحلة الثالثة (Stage 3).
مصطلحات أساسية في تطوير البرمجيات الخبيثة (Malware Terminology)
الخطوات السابقة لها مصطلحات تقنية خاصة يجب علينا معرفتها لتسهيل عملية التحليل:
1. الضغط (Compression / Packing)
عبارة عن دمج الملفات المضغوطة بواسطة Packer مع كود فك الضغط في ملف تنفيذي واحد. الفكرة هي أن الملف عندما يصل إلى جهاز الضحية، يكون فعلياً عبارة عن غلاف (Wrapper Program) وظيفته الأساسية فك ضغط الملف الخبيث الحقيقي وتنفيذه في الذاكرة لتجنب برامج الحماية.
شكل (2): توضيح كيف يتم ضفط وفك ضفط الملفات.
2. التشويش (Obfuscation)
فعل متعمد لإنشاء كود يصعب على البشر (والمحللين) فهمه أو قراءته بسهولة.
- تظهر النصوص (Strings) البسيطة مشفرة بخوارزميات مثل Base64 أو XOR.
- يتم إدراج دوال (Functions) لا فائدة منها لتشتيت الانتباه (Junk Code).
- في لغة الأسمبلي، قد ترى تعليمات NOP (No Operation) بكثرة والتي لا تؤدي أي وظيفة.
- استخدام تعليمات push بشكل متكرر كتقنية لإخفاء بناء الـ Strings في الذاكرة.
شكل (3): كود يوضح كيف يتم التمويه.
وهذا مثال توضيحي لكيفية تصميم كود مشوش بلغة C:
شكل (4): توضيح كيف يتم التلاعب بالكود.
3. الاستمرارية (Persistence)
يسعى مطور البرمجيات الخبيثة إلى جعل الـ Malware يعمل على الجهاز ويستمر لأطول فترة ممكنة، حتى بعد إعادة التشغيل.
- الملفات الخاصة (Special Files): يتم وضع البرمجية في مسارات النظام المخفية أو التي لا يتفقدها المستخدم العادي غالباً، مثل مجلد %APPDATA%. بعض هذه المسارات تمتلك صلاحيات وصول أعمق للنظام.
- تقنيات متقدمة: يمكنك البحث والقراءة أكثر عن استخدام الـ Shared Files، والوصول عبر الـ Namespaces، أو استخدام الـ Alternative Data Streams (ADS) في نظام ملفات NTFS.
4. تصعيد الصلاحيات (Privilege Escalation)
استغلال ثغرة في تصميم أو إعدادات النظام (Configuration) للوصول المتقدم لموارد النظام (Resources) بصلاحيات مدير (Admin) أو جذر (Root).
التقنيات الشائعة:
- DLL Hijacking
- DLL Injection
- Buffer Overflow
- Stack Overflow
- Heap Spray
- ROP (Return-Oriented Programming)
- UAC Bypasses
5. تجنب الكشف وتخطي الدفاعات (Defense Evasion)
يعني إدخال البرمجية الخبيثة على مراحل وتجميعها داخل النظام على فترات متفاوتة لتجنب إثارة الشبهات.
التقنيات الشائعة:
- (Killing AV)
- (Deleting itself after run)
- (Time bombs / Time stomping)
- DLL Side-Loading
- Process Hollowing
- Code Injection