تعديل الذاكرة
ما هو تعديل الذاكرة؟
تعديل الذاكرة، كما تستخدم Cyber Crucible هذا المصطلح، هو عندما تكون الأقسام القابلة للتنفيذ من ذاكرة عملية ما قد تم تعديلها بطرق غير طبيعية. التنفيذ العادي لعملية معينة، دون تدخل خارجي، لا يؤدي إلى حدوث هذه التعديلات – فهي منفصلة عن عمليات "الذاكرة المتطايرة" العادية داخل العملية.
تقنية شائعة لتعديل الذاكرة هي إفراغ العملية (process hollowing)، حيث يقوم المهاجم ببدء عملية ضحية على الجهاز، غالبًا في حالة معلقة، ثم يغيّر الشيفرة القابلة للتنفيذ لتنفيذ شيفرة برنامج آخر فعليًا.
تكتيكات MITRE ذات الصلة:
-
MITRE T1055 - حقن العملية، يُستخدم عادةً لتشغيل شيفرة ضارة داخل عملية مستهدفة مع السماح للعملية الأصلية بالاستمرار.
-
MITRE T1055-12 - حقن العملية عن طريق استبدال الشيفرة داخل عملية، عادةً قبل بدء تنفيذها.
-
MITRE T1559 - يمكن أن يوفر الاتصال بين العمليات تحكمًا في العملية المستهدفة من جانب جهة الحقن بمجرد اكتمال عملية الحقن.
-
MITRE T1548 - إساءة استخدام التحكم في التصعيد يمكن أن تسمح لعملية لا تمتلك عادةً امتيازات أعلى بأن يتم تصعيدها للوصول إلى بيانات محمية.
ما هي العواقب؟
يمكن أن تكون لتعديلات الذاكرة عواقب مشابهة جدًا لتقنيات حقن العمليات الأخرى، لكنها أكثر قدرة على التخفي. نظرًا لعدم وجود إنشاء لخيوط تنفيذ عن بُعد، أو استدعاء لدوال خارجية، غالبًا ما يكون من الصعب جدًا اكتشاف تعديلات الذاكرة على الإطلاق، بل ومن الأصعب نسبها إلى عملية معينة.
يمكن إجبار عملية تم تعديل ذاكرتها على تنفيذ نشاط ضار لم تكن لتقوم به لولا ذلك. لا ينبغي الوثوق بأي عملية تم العبث بذاكرتها القابلة للتنفيذ، حيث إن ذلك ليس حدثًا طبيعيًا للاتصالات أو التفاعلات بين العمليات.
ماذا تفعل Cyber Crucible؟
تراقب Cyber Crucible حالة ذاكرة العملية طوال دورة حياتها. إذا تبين أن الذاكرة قد تم العبث بها، يتم وضع علامة على العملية واعتبارها غير موثوقة. عند وقوع حدث ابتزاز، يتم أخذ لقطة من الذاكرة لتوفيرها أثناء تحقيقات الاستجابة للحوادث المحتملة.
تحتوي لقطة الذاكرة على الذاكرة القابلة للتنفيذ الأصلية غير المعدَّلة، وأي "اختلافات" (diffs)، مع مواضعها (offsets) داخل ذاكرة العملية. قد يكون تحليل ملفات تفريغ الذاكرة هذه صعبًا، لكنه يمكن أن يوفر أدلة قوية على سلوكيات الشيفرة الضارة.
كيف يمكنني معرفة ذلك؟
تتبع الذاكرة المعدَّلة أصعب وأكثر تلاشيًا مقارنة بالطرق الأخرى لحقن العمليات. بدلاً من ذلك، نوفر قيمة منطقية سريعة (boolean) لمعرفة أن التعديل قد حدث، ومن ثم فإن تحليل الاختلافات الفعلية في الذاكرة يتطلب تعمقًا أكبر.
جمع الذاكرة هو مجرد الخطوة الأولى، فحتى بعد التفكيك يمكن أن تكون الشيفرة معقدة جدًا وصعبة القراءة. الخبر الجيد هو أن لدينا الكثير للاعتماد عليه في هذا التحليل عندما تتوفر لدينا الذاكرة الأصلية، والبيانات الوصفية المرتبطة بها، والملف التنفيذي الأصلي، وتعليمات الملف التنفيذي المعدَّل نفسها.
1. نعم، 2.