كشفت تقنية جديدة تم اكتشافها مؤخراً عن قدرة المهاجمين على التلاعب بهياكل نواة نظام التشغيل ويندوز لإخفاء العمليات قيد التشغيل من أنظمة الكشف، حتى في ظل وجود طبقات حماية حديثة مثل PatchGuard. يتيح هذا الاكتشاف للمخترقين إبقاء نوافذ العمليات قيد التنفيذ مخفية عن أدوات المراقبة.
قام محللون من شركة Outflank بتحديد طريقة تستغل توقيت فحوصات التحقق من سلامة النظام لإخفاء الأنشطة الضارة. تسلط هذه الطريقة الضوء على ثغرة حرجة في كيفية إدارة ويندوز لرؤية العمليات أثناء الإنهاء.
بينما تظل العمليات قيد التشغيل، فإنها تعمل بشكل خفي عن أدوات المراقبة مثل Task Manager وProcess Hacker، مما يجعل هذا النهج مثالياً للحفاظ على الاستمرارية دون اكتشاف فوري. يعمل الهجوم عن طريق التلاعب بهياكل البيانات الداخلية التي يستخدمها ويندوز لتتبع جميع العمليات النشطة على النظام.
تجدر الإشارة إلى أن هذه الثغرات الأمنية المتطورة تسلط الضوء على الحاجة المستمرة لتحديث أنظمة الأمن السيبراني. وأشار باحثو Outflank إلى أن ظهور البرمجيات الخبيثة بهذه القدرات يوضح كيف يواصل المهاجمون إيجاد طرق مبتكرة لتجاوز آليات الحماية، حتى المتطورة منها.
صممت مايكروسوفت طبقات دفاع متعددة، بما في ذلك PatchGuard، الذي يقوم بفحوصات تكامل لهياكل النواة، وحمايات مدعومة بالهايبرفايزر (hypervisor-backed protections) تمنع التعديل المباشر لصفحات التعليمات البرمجية. ومع ذلك، فإن هذه التقنية الجديدة تتجاوز هذه الدفاعات من خلال العمل على البيانات بدلاً من التعليمات البرمجية.
التلاعب بقوائم العمليات وموثوقية الإنهاء
يحافظ ويندوز على جميع العمليات قيد التشغيل في قائمة مرتبطة مزدوجة تسمى ActiveProcessLinks، وهي مدمجة ضمن هيكل EPROCESS لكل عملية. تحتوي هذه البنية على مؤشرات أمامية وخلفية تربط كل عملية نشطة.
لإخفاء عملية ما، يقوم المهاجم ببساطة بإلغاء ربطها من هذه السلسلة، حيث تشير العملية الأولى مباشرة إلى العملية الثالثة، متخطية العملية الثانية تمامًا. تظهر المشكلة الحرجة عند إنهاء العملية المخفية.
تقوم وظيفة نواة ويندوز PspProcessDelete بإجراء تحقق من التكامل على هياكل LIST_ENTRY هذه قبل التنظيف. يؤكد هذا التحقق من التناسق ثنائي الاتجاه: يجب أن يشير المؤشر الخلفي للرابط الأمامي إلى إدخال العملية الأصلي، ويجب أن يفعل مؤشر الرابط الخلفي الأمامي الشيء نفسه.
إذا تم اكتشاف تلف أثناء الإنهاء، يقوم النظام بتشغيل خطأ KERNEL_SECURITY_CHECK_FAILURE (0x139)، مما يؤدي إلى ظهور شاشة زرقاء فورية. يتمثل الحل في استخدام وظيفة الاستدعاء المسجلة PsSetCreateProcessNotifyRoutineEx من مايكروسوفت، والتي تسمح للسائقين بتلقي إشعارات عند إنشاء العمليات أو إنهاءها.
باي باس ذكي لعمليات الإنهاء
من خلال تسجيل مثل هذه الاستدعاءات، يتلقى المشغلون الخبيثون هيكل EPROCESS عند وقت الإنهاء، ولكن قبل تنفيذ التحقق من PspProcessDelete. يقوم المشغل بعد ذلك بإجراء إصلاحات مستهدفة لهيكل LIST_ENTRY، واستعادة الاتساق للمؤشرات الأمامية والخلفية قبل لحظات قليلة من تشغيل فحوصات التحقق.
وهنا تكمن طريقة التجاوز الذكية: كانت العملية مخفية بالفعل طوال فترة تنفيذها، وغير مرئية لأي أداة فحص. ومع ذلك، في لحظة الإنهاء، قبل أن تفحص PspProcessDelete الهياكل، يتم “إلغاء إخفاء” الروابط وإصلاحها. لا تجد فحوصات التكامل أي خطأ. تنتهي العملية بشكل نظيف.
يعمل هذا النهج ضمن حمايات hvci (Hypervisor-Protected Code Integrity) التي تفرضها العتاد، لأن الهجوم يستهدف هياكل البيانات القابلة للكتابة، وليس صفحات التعليمات البرمجية المحمية. تمنع جداول الصفحات الممتدة (Extended Page Tables) تعديل تعليمات النواة نفسها، ولكن البيانات تظل متاحة.
تتطلب هذه التقنية امتيازات تنفيذ على مستوى النواة وتوقيع مشغل صالح، وهو ما يمثل الحاجز العملي الأساسي للاستغلال. ويظل رصد هذه التهديدات الخفية تحديًا مستمرًا لفرق الأمن السيبراني.

