أعماق الافتراضيّة في Windows (الجزء 2) ── ذاكرة لا تستطيع النواة حتّى رؤيتها: كيف يعمل VBS وHVCI وCredential Guard

· آخر تحديث: · · Windows, الافتراضيّة, الأمان, VBS, HVCI, Credential Guard

سجل التعديلات (النسخة الأولى، نُشرت في 22 Aug، 2026)
النشر الأول
الاستشهاد بهذا المقال(DOI (الأرشيف المسجّل): 10.5281/zenodo.22176861)

تشير معرّفات DOI أدناه إلى إصدارات مؤرشفة سابقًا، وقد تختلف عن النص الحالي. للإشارة إلى النص الحالي، استخدم رابط هذه الصفحة.

غو كومورا (2026). أعماق الافتراضيّة في Windows (الجزء 2) ── ذاكرة لا تستطيع النواة حتّى رؤيتها: كيف يعمل VBS وHVCI وCredential Guard. شركة كومورا سوفت ذ.م.م.. https://comcomponent.com/ar/blog/windows-virtualization-internals-vbs-hvci-credential-guard/

DOI (الأرشيف المسجّل)
10.5281/zenodo.22176861
DOI (آخر إصدار مسجّل)
10.5281/zenodo.22241143

أين يضع Windows أسراراً لا يستطيع مدير ولا النواة قراءتها؟ يبدأ الجزء 2 من هذا السؤال ويتبع كيف يعمل VBS وHVCI وCredential Guard.

على Windows التقليديّ، كان مهاجم حمّل برنامج تشغيل نواة بوصفه مديراً وفرّغ ذاكرة عمليّة LSASS يستطيع سرقة تجزئات كلمات المرور وتذاكر Kerberos واستخدامها للحركة الجانبيّة إلى أجهزة أخرى.

على Windows 11 مع تشغيل Credential Guard، لا تُحفَظ تجزئات بيانات اعتماد النطاق المحميّة في أيّ مكان تستطيع النواة العاديّة البحث فيه. على أجهزة تستوفي متطلّبات الترخيص (Enterprise وEducation وما شابه) ومتطلّبات العتاد، تُفعَّل هذه الحماية افتراضيّاً من 22H2 فصاعداً.1 المتطلّبات وحالة التشغيل الفعليّة شيئان مختلفان، لذا لم يختفِ الخطر حيث لا يعمل.

أظهر الجزء 1 البنية التي يعمل فيها Windows المضيف في القسم الجذر فوق الـ hypervisor. ما يتبعه هذا المقال هو خطّ حدود إضافي، مرسوم داخل ذلك القسم نفسه.

«أعماق الافتراضيّة في Windows» ── الأجزاء الثلاثة كلّها

ننظر إلى hypervisor Windows نفسه بترتيب الأساس → عزل الأمان → التطبيق على آلات افتراضيّة خفيفة.

الجزء السؤال المركزي
الجزء 1: الـ hypervisor والأقسام أين يعمل Windows المضيف؟
الجزء 2: VBS وHVCI وCredential Guard (هذا المقال) أين تُحفَظ أسرار لا تستطيع النواة حتّى قراءتها؟
الجزء 3: WSL2 وWindows Sandbox والحاويات لماذا يمكن جعله خفيفاً مع الإبقاء على العزل؟

ما يفترضه هذا المقال

البند التفاصيل
القرّاء المستهدَفون مطوِّرون ومشغِّلون يريدون فهم ما عزل النواة وسلامة الذاكرة وCredential Guard فعليّاً
البيئة Windows 10/11 x64 أو Windows Server الحالي. نقاش الحلقات وSLAT يفترض x64؛ يستخدم Arm64 آليّات مختلفة مثل مستويات الاستثناء
المعرفة الخلفيّة مفاهيم الأقسام وSLAT من الجزء 1
الصعوبة والنطاق متوسّط. هذا ليس دليل تكوين؛ يشرح بنية الميزات الأمنيّة

كيف تقرأ هذا المقال

ما تريد معرفته الأقسام التي تقرأها
لماذا يلزم عزل أقوى من النواة، وكيف يُحقَّق حدود النموذج التقليدي في القسم 2 → VSM وVTLs وSLAT في القسم 3
ماذا يحمي HVCI وCredential Guard كلّ منهما سلامة الشيفرة في القسم 4 → بيانات الاعتماد ونطاق الحماية في القسم 5
كيف تميِّز شاشة الإعدادات عن حالة التشغيل الفعليّة كيفيّة الفحص في القسم 6 → القراءات الخاطئة في القسم 7

1. الخلاصة أوّلاً

أضاف Windows محور امتياز يُسمَّى VTL (مستوى الثقة الافتراضي) ووضع الأسرار في VTL1. لا تستطيع النواة العاديّة التي تعمل في VTL0 قراءة ذاكرة VTL1. ما يحرس الحدّ ليس النواة نفسها بل الـ hypervisor، الذي يمسك جداول ترجمة SLAT.

ذلك هيكل الأمان المستند إلى الافتراضيّة (VBS). يستخدم VBS الـ hypervisor لإنشاء بيئة معزولة ويؤوي فيها ميزات أمنيّة. مصمَّم على مقدّمة أنّ البيئة المعزولة تبقى محميّة حتّى إن اختُرقت النواة.2

العالمان اللذان ينشئهما VBSيجلس VTL0 وVTL1 داخل القسم نفسه؛ يمسك VTL0 النواة العاديّة والتطبيقات، ويمسك VTL1 النواة الآمنة والميزات الأمنيّة المعزولة، ويحرس الـ hypervisor الحدّVTL1 (العالم المعزول)VTL0 (العالم العادي)لا تستطيع القراءةميزات أمنيّة معزولةالنواة الآمنةتطبيقات (الحلقة 3)نواة NT وبرامج التشغيل (الحلقة 0)الـ hypervisor (يفرض الحدّ عبر SLAT)

الشكل 1: ثمّة عالمان داخل Windows واحد، ولا تستطيع نواة VTL0 الوصول إلى ذاكرة VTL1.

النقطة المهمّة أنّ هذا ليس «إقامة آلة افتراضيّة أخرى». VTL0 وVTL1 داخل القسم نفسه، داخل Windows نفسه. ننظر بالدور كيف يُحقَّق هذا الانقسام.

في المخطّط، يشير الخطّ المتّصل إلى علاقة قائمة دائماً، ويشير الخطّ المتقطّع إلى علاقة مشروطة (شروط قيامها مذكورة في شرح كلّ علاقة في الصفحة التفصيليّة). القائمة الكاملة للعلاقات (المجموع 22، مع الأدلّة ودرجة اليقين) وتعريفات المفاهيم الرئيسة مجمّعة في صفحة تفاصيل خريطة المعرفة (باليابانية). البيانات: JSON-LD / Turtle

2. حدود نموذج الحلقات ── الحارس والمحروس يقفان على الارتفاع نفسه

بُني أمان Windows التقليديّ على سلّم الحلقات (مستويات الامتياز). وضع المستخدم (الحلقة 3) يحرسه وضع النواة (الحلقة 0). فمن يحرس الحلقة 0؟ لا أحد يستطيع. الحلقة 0 أعلى امتياز.

لهذه البنية ضعفان بنيويّان.

  • النواة ليست كتلة واحدة. عند الحلقة 0، لا يعمل Windows نفسه فحسب بل عدد كبير من برامج تشغيل أطراف ثالثة. إن وُجدت ثغرة في أيّ منها، يحصل المهاجم على تنفيذ شيفرة عند الحلقة 0.
  • من الحلقة 0، كلّ شيء مرئي. مهما دافع عمليّة وضع مستخدم مثل LSASS عن نفسها، يستطيع مهاجم استولى على النواة قراءة ذاكرتها بحرّيّة. سمات الحماية وجداول الصفحات على حدّ سواء تديرها النواة نفسها.
مسار سرقة بيانات الاعتماد في نموذج الحلقات التقليديمهاجم يستولي على الحلقة 0 عبر برنامج تشغيل ضعيف يستطيع قراءة ذاكرة عمليّة LSASS بسلطة النواة الكاملة والحصول على تجزئات كلمات المروريستغل برنامج تشغيل ضعيفاًشيفرة المهاجميستولي على الحلقة 0يستطيع قراءة كلّ الذاكرة الفيزيائيّةيحصل على تجزئات من ذاكرة LSASSيُساء استخدامها للحركة الجانبيّة إلى أجهزة أخرى

الشكل 2: لأنّ الحارس (النواة) والمحروس (الأسرار) يقفان على الارتفاع نفسه، الضعف الجذري أنّه إن سقطت الحلقة 0 سقط كلّ شيء.

ما يلزم إذن هو «مكان أعلى من الحلقة 0». ذلك المكان ظهر أصلاً في الجزء 1. يعمل الـ hypervisor بامتياز أعلى من النواة ويتولّى حصريّاً صلاحيّات وصول ذاكرة المعالج (SLAT) مبكّراً. منطقة معزولة يحرسها الـ hypervisor محميّة حتّى ضدّ الوصول من برمجيّات نظام تشغيل الحلقة 0 (وضع المشرف).3

3. VSM وVTLs ── إضافة محور امتياز إضافي

يسير هذا القسم بترتيب مجموعة الميزات التي توفِّر العزل (VSM) → مستويات العزل (VTLs) → الآليّة التي تفرض الحدّ (SLAT) → الشيفرة التي تعمل في الداخل. تتشابه الأسماء، لكنّها ليست الشيء نفسه.

3.1. مستويات الثقة الافتراضيّة (VTLs)

مجموعة ميزات الـ hypervisor التي توفِّر هذا العزل تُسمَّى VSM (الوضع الآمن الافتراضي). VSM أساس Device Guard وCredential Guard وTPM الافتراضي وما شابه.3

المفهوم المركزي لـ VSM هو VTL (مستوى الثقة الافتراضي). النقاط الرئيسة كالتالي.3

  • VTLs هرميّة، وكلّما ارتفع الرقم ارتفع الامتياز. VTL0 الأدنى؛ VTL1 أكثر امتيازاً من VTL0.
  • معماريّاً تُعرَّف حتّى 16 مستوى، لكنّ ما هو منفَّذ حالياً اثنان: VTL0 وVTL1.
  • لكلّ VTL حمايات وصول ذاكرة مستقلّة. يدير الـ hypervisor هذه الحمايات على فضاء العناوين الفيزيائيّ للقسم، لذا لا تستطيع برمجيّات النظام داخل القسم تغييرها.
  • يملك معالج افتراضي حالة سجلّات وآليّة مقاطعات منفصلة لكلّ VTL، ولا يستطيع VTL أدنى التطلّع إلى حالة VTL أعلى.
القطع الثلاث المستقلّة التي تكوِّن عزل VTLحمايات وصول الذاكرة وحالة سجلّات المعالج الافتراضي وآليّة المقاطعات مستقلّة لكلّ VTL، ولا يستطيع VTL أدنى لمس أيّ منها في VTL أعلىما هو مستقل لكلّ VTLحمايات وصول الذاكرةحالة سجلّات المعالج الافتراضيآليّة المقاطعاتلا يستطيع VTL أدنى لمس VTL أعلى

الشكل 3: جعل لا الذاكرة فحسب بل أيضاً حالة المعالج والمقاطعات عالماً منفصلاً هو المجموعة الثلاثيّة التي لا تترك ثغرة نظر.

إن كانت الحلقات (0 و3) المحور الذي يفصل «نظام التشغيل والتطبيقات»، فـ VTLs محور ثانٍ يفصل «العالم العادي والعالم المعزول». المحوران متعامدان، وداخل VTL1 ثمّة وضع نواة ووضع مستخدم أيضاً.

المناطق الأربع التي ينشئها محورا الحلقات وVTLsيفصل محور الحلقات وضع النواة عن وضع المستخدم، ويفصل محور VTL العالم العادي عن العالم المعزول، وينتج الجمع أربع مناطق: تطبيقات عاديّة ونواة NT وtrustlets في IUM والنواة الآمنةVTL1 (العالم المعزول)VTL0 (العالم العادي)الحلقة 3: IUM (trustlets)الحلقة 0: النواة الآمنةالحلقة 3: تطبيقات عاديّةالحلقة 0: نواة NT وبرامج التشغيل

الشكل 4: صارا الآن محوري امتياز، وصار «هل هي النواة؟» و«هل هو العالم المعزول؟» سؤالين منفصلين.

3.2. جوهر الحدّ هو SLAT

قال الجزء 1 إنّ جداول الترجمة من المستوى الثاني التي تسقط العناوين الفيزيائيّة للضيف (GPA) على RAM الفعلي (SPA)، أي SLAT، يمسكها الـ hypervisor. يستخدم VSM هذه الخاصّيّة بالضبط. يُبنى عزل VTL باستخدام hypervisor Hyper-V وSLAT.4

عندما يعلن VTL1 «هذه الذاكرة لا تُعرض لـ VTL0»، يزيل الـ hypervisor صلاحية الوصول لتلك الصفحة من جداول ترجمة VTL0. من ثمّ، حتّى إن حاولت نواة VTL0 لمس ذلك العنوان، تُرفَض في مرحلة ترجمة عناوين المعالج. لا يهمّ كيف تعيد النواة كتابة جداول صفحاتها.

قد تنتمي جداول الصفحات (GVA→GPA) إلى النواة، لكنّ الترجمة بعدها (GPA→SPA) وصلاحية الوصول النهائيّة تنتميان إلى الـ hypervisor.

كيف يُرفَض وصول من VTL0 إلى ذاكرة VTL1عندما تحاول نواة VTL0 قراءة ذاكرة VTL1، تستطيع المرور بجداول صفحاتها لكن تُرفَض بحماية وصول SLAT، وينتقل التحكّم إلى الـ hypervisorغير مسموحمسموحنواة VTL0 تحاول قراءة صفحة VTL1تمرّ بجداول صفحات النواة نفسهاهل تسمح حماية وصول SLAT؟يتدخّل الـ hypervisor ويرفض الوصولوصول ذاكرة عاديمحميّ في طبقة لا تستطيع النواة تغييرها

الشكل 5: الحاجز يجلس خارج النواة، ولا تستطيع برمجيّات داخل القسم تغيير حماية SLAT.

قال الجزء 1 من سلسلة الذاكرة إنّ «VAD وPTE وسمات الحماية تقرِّر هل الوصول مسموح». في بيئة VBS تصير الصورة: بعد مرور كلّ تلك، ما يزال حاجز SLAT ينتظر.

3.3. النواة الآمنة وIUM

ما يعمل داخل VTL1 ليس نواة NT العاديّة بل نواة صغيرة تُسمَّى النواة الآمنة. وضع المستخدم في VTL1 يُسمَّى IUM (وضع المستخدم المعزول)، والبرامج التي تعمل هناك تُسمَّى trustlets (عمليّات موثوق بها).4

لا يستطيع trustlet فعل أيّ شيء يحبّه كما تستطيع عمليّة عاديّة. معظم استدعاءات نظامه تُمرَّر إلى نواة NT في جانب VTL0، التي تُطلَب لفعل العمل.4 VTL1 ليس «عالماً أعلى يستطيع فعل أيّ شيء»؛ إنّه مبنيّ صغيراً عمداً، بوصفه خزنة تمسك أسراراً. كلّما قلّت الشيفرة التي يمكن إدخالها إلى الخزنة صغر سطح الهجوم.

تدفّق استدعاءات نظام trustlettrustlet في VTL1 لا يعالج معظم استدعاءات النظام بنفسه؛ يمرّرها إلى نواة NT في VTL0 ويتلقّى النتيجة فقط، وهو ما يُبقي VTL1 صغيراًفي معظم الحالاتTrustlet (IUM في VTL1)يلزم استدعاء نظاميسأل نواة NT في VTL0يتلقّى النتيجة فقطيبقى VTL1 صغيراً ويصغر سطح الهجوم

الشكل 6: للخزنة لا مرافق خاصّة؛ ترسل الأشغال إلى الخارج وتظلّ تحرس الأسرار فقط.

4. HVCI ── التحقّق من سلامة شيفرة النواة في الخزنة

الأمران اللذان يُستوعبان عن HVCI هما أين يُؤدَّى التحقّق وما المسموح على الذاكرة بعد التحقّق. ننظر إلى تلك الحماية أوّلاً، ثمّ إلى أثرها على توافق برامج التشغيل.

4.1. ما الذي يُتحقَّق منه

أوّل ميزة ممثّلة تجلس على VBS هي سلامة الذاكرة، أي HVCI (سلامة الشيفرة المحميّة بالـ hypervisor). يملك Windows آليّة سلامة شيفرة تفحص برامج تشغيل وضع النواة والملفّات التنفيذيّة قبل بدئها وترفض تحميل غير الموقَّعة أو غير الموثوق بها. يؤدّي HVCI هذا التحقّق داخل بيئة VBS المعزولة.2

سبب نقل منطق التحقّق نفسه إلى VTL1 هو بالضبط الضعف في القسم 2. إن جلس شيفرة التحقّق داخل نواة VTL0، يستطيع مهاجم استولى على النواة تبديل التحقّق. إن كان في VTL1، لا تصل يد التبديل إليه.

الفرق الذي يحدثه مكان شيفرة التحقّقإن جلست شيفرة التحقّق داخل نواة VTL0 تُعطَّل متى استُولي على النواة، أمّا إن كانت في VTL1 فحتّى مهاجم استولى على النواة لا يصل إليها ويبقى التحقّق محميّاًداخل نواة VTL0 (تقليدي)بيئة معزولة في VTL1 (HVCI)مهاجم استولى على النواةأين يعيش تحقّق سلامة الشيفرة؟يمكن تبديل منطق التحقّقالتبديل خارج المتناوليمكن لشيفرة بلا توقيع أن تعمل في النواةيظلّ التحقّق يعمل بعد اختراق النواة

الشكل 7: لا تضع نقطة التفتيش داخل الجانب الذي قد يُخترَق؛ ذلك نقل منطق التحقّق جوهر HVCI.

4.2. قواعد الصفحات القابلة للتنفيذ

أثر HVCI لا يقتصر على «فحص عند البدء». إنّه يقيِّد أيضاً تخصيص ذاكرة النواة.5

  • تصير صفحة نواة قابلة للتنفيذ فقط بعد أن تمرّ بتحقّق سلامة الشيفرة.
  • صفحة قابلة للتنفيذ لا تصير قابلة للكتابة أبداً (ما يُسمَّى W^X).

بهذين، حتّى إن أتاحت ثغرة كفيض مخزن إعادة كتابة ذاكرة النواة، لا تستطيع جعل المحتويات المعاد كتابتها تُنفَّذ. الصفحات القابلة للتنفيذ لا يمكن إعادة كتابتها، والصفحات التي يمكن إعادة كتابتها لا يمكن تنفيذها.5 السند النهائي لصلاحية التنفيذ هو حقّ التنفيذ في جانب SLAT، الذي لا تستطيع نواة VTL0 التلاعب به.

حتّى تصير صفحة نواة قابلة للتنفيذ في بيئة HVCIيتلقّى طلب تحميل برنامج تشغيل تحقّق سلامة شيفرة في بيئة VBS المعزولة؛ إن مرّ يُسمَح به صفحة قابلة للتنفيذ غير قابلة للكتابة، وإن فشل يُحظَر ويُسجَّل في سجلّ CodeIntegrityنجاحفشلطلب تحميل وتنفيذ شيفرة نواةتحقّق سلامة الشيفرة في البيئة المعزولةيُسمَح بها صفحة قابلة للتنفيذ (الكتابة محظورة)يُحظَر التحميليُسجَّل في سجلّ CodeIntegrity Operational (معرّف الحدث 3087)الصفحات القابلة للكتابة تبقى غير قابلة للتنفيذ

الشكل 8: القاعدة التي لا تدع التنفيذ والكتابة يتعايشان تُتحقَّق في جانب VTL1، ولا تستطيع نواة VTL0 نقضها.

تتبّع هذا من وجهة نظر المهاجم يُظهر بوضوح كيف تسري القاعدة.

كيف يفشل حقن الشيفرة في بيئة HVCIحتّى إن أتاحت ثغرة إعادة كتابة ذاكرة النواة، صفحة استطعت الكتابة إليها ليست قابلة للتنفيذ، وصفحة قابلة للتنفيذ لا يمكن إعادة كتابتها أصلاً، لذا لا يمكن تنفيذ الشيفرة المحقونة أبداًصفحة قابلة للكتابةصفحة قابلة للتنفيذحاول العبث بذاكرة النواة عبر ثغرةأيّ صفحة الهدف؟تنجح إعادة الكتابةإعادة الكتابة نفسها مستحيلةلكن تلك الصفحة ليست قابلة للتنفيذلا يمكن تنفيذ الشيفرة المحقونة

الشكل 9: أيّ مدخل اتّخذت تصطدم بنهاية مسدودة؛ تلك نقطة ألّا تدع الصفحات القابلة للكتابة والصفحات القابلة للتشغيل تتداخل.

4.3. الثمن: توافق برامج التشغيل

تصطدم هذه القاعدة ببرامج تشغيل بتصميم أقدم. برامج تشغيل تعيد كتابة شيفرتها وقت التشغيل، أو بلا توقيع، أو تطالب بذاكرة قابلة للتنفيذ والكتابة معاً، لا يمكن تحميلها في بيئة HVCI.

يمكن تأكيد واقعة الحظر في عارض الأحداث تحت Applications and Services Logs\Microsoft\Windows\CodeIntegrity\Operational (معرّف الحدث 3087 هو الممثّل).6

في حالات كثيرة، هذا ما وراء الشكوى «بعد أن فعَّلت سلامة الذاكرة، توقّف جهاز طرفي عن العمل». الإصلاح الصحيح التحديث إلى إصدار متوافق مع HVCI من برنامج التشغيل؛ ينبغي اعتبار تعطيل سلامة الذاكرة ملاذاً أخيراً يتخلّى عن الحماية بالجملة.

إن شاركت في هذا التحقّق من جانب تطوير برامج التشغيل، انظر أيضاً مقالة برامج تشغيل المرشّح («برامج تشغيل المرشّح المصغّر في Windows»).

فرز عندما يتوقّف جهاز طرفي عن العمل تحت سلامة الذاكرةحدِّد برنامج التشغيل المحظور في سجلّ CodeIntegrity Operational؛ الإصلاح الصحيح التحديث إلى إصدار متوافق مع HVCI، واسأل البائع إن لم يوجد، وعامل التعطيل ملاذاً أخيراً لا يُجعَل إعداداً دائماًنعملايتوقّف جهاز بعد تفعيل سلامة الذاكرةحدِّد برنامج التشغيل المحظور في سجلّ CodeIntegrityهل ثمّة برنامج تشغيل متوافق مع HVCI؟حدِّث وحلّ مع إبقاء HVCI شغّالاًاسأل البائع عن إصدار متوافقالتعطيل ملاذ أخير، لا إعداد دائم أبداً

الشكل 10: أوّل ما يُنظَر إليه ليس شاشة الإعدادات بل السجلّ، ومعرّف الحدث 3087 يعرف أيّ برنامج تشغيل حُظِر.

5. Credential Guard ── التجزئات داخل LSAIso

حيث يحرس HVCI سلامة شيفرة النواة، يحرس Credential Guard بيانات الاعتماد. فكّر في مكتب الاستقبال الذي يقبل المصادقة والمكان الذي تُحفَظ فيه الأسرار شيئين منفصلين، فتقع البنية ونطاق الحماية في مواضعهما.

5.1. LSASS وLSAIso

ثاني ميزة ممثّلة تجلس على VBS هي الجواب عن لغز الافتتاح: Credential Guard.

كان Windows التقليدي يحتفظ بتجزئات NTLM وتذاكر Kerberos في ذاكرة عمليّة LSA (lsass.exe). عندما يُفعَّل Credential Guard، ينتقل تخزين الأسرار المحميّة من بينها، كتجزئات NTLM لبيانات اعتماد النطاق وTGT لـ Kerberos (تذاكر منح التذاكر)، إلى LSAIso.exe، trustlet يعمل في IUM في VTL1.7

  • يظلّ lsass.exe (VTL0) يعمل مكتب استقبال لمعالجة المصادقة، كما كان.
  • تمسك LSAIso.exe (VTL1) الأسرار الفعليّة ولا يمكن الوصول إليها من VTL0.
  • يتواصل الاثنان عبر RPC (استدعاء إجراء بعيد).
  • لا تستضيف LSAIso أيّ برامج تشغيل أجهزة على الإطلاق وتؤوي فقط الحدّ الأدنى من الملفّات التنفيذيّة الموقَّعة. تُتحقَّق التوقيعات مقابل شهادة يثق بها VBS.7
أين تجلس بيانات الاعتماد عندما يُفعَّل Credential Guardيتواصل lsass في VTL0، بوصفه مكتب استقبال المصادقة، مع LSAIso في VTL1 عبر RPC؛ وتمسك LSAIso التجزئات وTGT الفعليّة لبيانات اعتماد النطاق المحميّة، لذا مهاجم يحصل على صلاحيّات مدير في VTL0 ويفرّغ lsass ما يزال لا يحصل على الأسرار المحميّة نفسهاVTL1VTL0RPCتفريغ ذاكرةلا يصلLSAIso.exe (خزنة الأسرار)lsass.exe (مكتب استقبال المصادقة)مهاجم (صلاحيّات مدير)

الشكل 11: لأنّ مكتب الاستقبال والخزنة فُصلا، لم يعد تفريغ lsass يُعطي التجزئات الفعليّة لبيانات اعتماد النطاق المحميّة.

شروط التفعيل افتراضيّاً

من Windows 11 الإصدار 22H2 فصاعداً، يُفعَّل VBS وCredential Guard افتراضيّاً على أجهزة تستوفي متطلّبات الترخيص (Enterprise E3/E5 وEducation A3/A5) ومتطلّبات العتاد. على إصدارات مثل Pro، لا يُفعَّل Credential Guard تلقائيّاً (ثمّة استثناءات، كجهاز فُعِّل تحت ترخيص مؤهِّل في الماضي ثمّ خُفِّض لاحقاً).1

هذه حماية بيانات الاعتماد ليست شأن منتج إضافي خاصّ؛ إنّها الحالة القياسيّة لـ Windows الحالي على الإصدارات المؤهِّلة.

تدفّق بيانات الاعتماد من تسجيل الدخول إلى المصادقةبعد تسجيل الدخول تُحفَظ الأسرار الفعليّة في LSAIso في VTL1؛ وفي كلّ مرّة تلزم مصادقة، يطلب lsass في VTL0 الحساب عبر RPC، ولا يعود إلى VTL0 إلّا نتيجة معالجة المصادقة دون أن تُعاد الأسرار طويلة الأمد المحميّة نفسها أبداًيطلب الحساب عبر RPCيعيد النتيجة (لا السرّ أبداً)يسجِّل المستخدم الدخوليعالجه lsass مكتب استقبالتُحفَظ الأسرار الفعليّة في LSAIsoطلبات مصادقة لاحقة

الشكل 12: الأسرار طويلة الأمد المحميّة نفسها لا تغادر الخزنة أبداً؛ ما يعود إلى VTL0 نتيجة معالجة المصادقة، كتذكرة.

5.2. اعرف بدقّة ما ليس محميّاً

بيانات الاعتماد المحميّة

Credential Guard ليس درعاً لكلّ غرض. ما يحميه هو تجزئات NTLM لبيانات اعتماد النطاق، وTGT لـ Kerberos (تذاكر منح التذاكر)، وأيّ شيء مخزَّن بوصفه بيانات اعتماد نطاق.

خارج النطاق

التالي خارج النطاق.8

  • تذاكر خدمة Kerberos (TGT محميّة)
  • بيانات اعتماد الحسابات المحلّيّة وحسابات Microsoft
  • سرقة الإدخال بمسجِّل مفاتيح، والهجمات الفيزيائيّة
  • بيانات اعتماد على مسارات تستخدم NTLMv1 أو MS-CHAPv2 أو Digest أو CredSSP
  • دواخل برمجيّات أطراف ثالثة تدير بيانات اعتماد بنفسها

منفصلاً عن نطاق الحماية، افحص توافق المصادقة أيضاً

كذلك، عندما يُفعَّل Credential Guard، لم يعد يمكن استخدام NTLMv1 وتفويض Kerberos غير المقيَّد وما شابه، لذا تحتاج أنظمة أعمال تعتمد على مصادقة تراث فحص توافق.8 ليس «فعِّله وانتهيت»؛ افهم ما داخل نطاق الحماية وخارجه واملأ الباقي بضوابط أخرى. تلك الطريقة الصحيحة لاستخدامه في الممارسة.

نطاق حماية Credential Guardتجزئات NTLM للنطاق وTGT وبيانات اعتماد النطاق المخزَّنة محميّة، بينما تذاكر الخدمة والحسابات المحلّيّة ومسجِّلات المفاتيح والهجمات الفيزيائيّة وبيانات الاعتماد التي يخزّنها تطبيق بنفسه خارج النطاقفي أيّ جانب من نطاق الحماية هذا السرّ؟تجزئات NTLM للنطاق وTGTتذاكر الخدمة والحسابات المحلّيّةمحميّ في LSAIsoغير محميّ (تلزم ضوابط أخرى)ضغطات المفاتيح والهجمات الفيزيائيّة ومخازن التطبيقات الخاصّة أيضاً خارج النطاق

الشكل 13: نطاق الحماية مرسوم بخطّ واضح، وخارج الخطّ يُملأ بمصادقة متعدّدة العوامل وتصميم جانب التطبيق.

6. انظر بعينك

يمكنك فحص حالة تشغيل VBS وكلّ ميزة على جهازك. اقرأ حالة VBS، الأساس، منفصلة عن حالة الخدمات التي تعمل فوقه.

6.1. افحص VBS والخدمات العاملة في PowerShell

Get-CimInstance -Namespace root/Microsoft/Windows/DeviceGuard `
    -ClassName Win32_DeviceGuard |
    Select-Object VirtualizationBasedSecurityStatus,
                  SecurityServicesConfigured,
                  SecurityServicesRunning

اقرأ المخرجات كالتالي.9

  • إن كان VirtualizationBasedSecurityStatus هو 2، فـ VBS مفعَّل ويعمل.
  • إن احتوى SecurityServicesRunning على 1، يعمل Credential Guard؛ وإن احتوى على 2، تعمل سلامة الذاكرة (HVCI).

6.2. اقرأ msinfo32 وشاشة الإعدادات قراءة مختلفة

لفحص حالة التشغيل في واجهة رسوميّة، انظر حقل «Virtualization-based security» في msinfo32 (الخدمات العاملة مدرجة هناك، مثل «Hypervisor enforced Code Integrity»).

مفتاح «سلامة الذاكرة» تحت «أمان الجهاز > عزل النواة» في تطبيق أمان Windows شاشة تعكس الإعداد. يمكن أن يبدو شغّالاً بينما HVCI لا يعمل فعليّاً، كما أثناء إعادة تشغيل معلَّقة فور التفعيل أو عند مشكلة توافق عند البدء، لذا احكم هل يعمل من msinfo32 أو من SecurityServicesRunning في Win32_DeviceGuard.6

6.3. لا تحكم «يعمل» من وجود عمليّة وحدها

ثمّة أثر أيضاً في علامة تبويب التفاصيل في مدير المهام. على جهاز يعمل فيه VBS سترى عمليّة تُسمَّى «Secure System». LsaIso.exe العمليّة التي تظهر عندما تُستضاف خدمة Isolated LSA في VTL1، ولا تظهر عادة في تكوين فُعِّل فيه HVCI فقط.

غير أنّ وجود عمليّة أو غيابها أثر فقط، لذا احكم هل يعمل Credential Guard من SecurityServicesRunning (هل يحتوي 1)، كما وُصف أعلاه. كلاهما نافذتان، مرئيتان من VTL0، على العالم في جانب VTL1.

إجراء فحص أنّ الميزات المرتبطة بـ VBS تعملأكِّد أنّ VBS يعمل بالاستعلام عن Win32_DeviceGuard، واحكم هل يعمل Credential Guard وHVCI من قيم SecurityServicesRunning، وانظر سجلّ CodeIntegrity لمشكلات برامج التشغيللانعميحتوي 1يحتوي 2استعلم عن Win32_DeviceGuardهل حالة VBS هي 2؟VBS لا يعمل (افحص المتطلّبات والإعدادات)ماذا يحتوي SecurityServicesRunning؟Credential Guard يعملسلامة الذاكرة (HVCI) تعمللمشكلات برامج التشغيل، افحص سجلّ CodeIntegrity (3087)

الشكل 14: فحص الحالة يسير في ثلاث مراحل: VBS نفسه، وكلّ خدمة فوقه، والسجلّ عندما تحدث مشكلة.

7. ثلاث قراءات خاطئة تُتجنَّب في الممارسة

7.1. «حماية صلاحيّات المدير كافية. VBS قصّة جانب الخادم»

ما يمنعه Credential Guard هو انتشار الضرر بعد أخذ صلاحيّات المدير (استخراج التجزئات والحركة الجانبيّة). بعبارة أخرى VBS طبقة دفاع في العمق تفترض الاختراق، وعلى حواسيب العملاء تؤتي أكلها. على Windows 11 الذي يستوفي المتطلّبات، التفعيل افتراضيّاً هو المعيار، لذا الموقف الصحيح ليس «هذا لا علاقة له بنا» بل «أدِر التوافق على افتراض أنّه يعمل أصلاً».

مراحل الاختراق وأين يسري VBSالوصول الأوّلي تغطّيه ضوابط أخرى كمصادقة متعدّدة العوامل والتدريب؛ يمنع HVCI حقن الشيفرة في النواة الذي يتبع تصعيد الصلاحيّات؛ ويمنع Credential Guard سرقة أسرار النطاق المحميّة والحركة الجانبيّة، لكنّه لا يصل إلى أسرار خارج نطاقهوصول أوّلي (تصيّد وما شابه)تصعيد صلاحيّاتحقن شيفرة في النواةسرقة أسرار النطاق المحميّة والحركة الجانبيّةMFA والتدريب وEDR تغطّي هذاHVCI يحظر هذه الخطوةCredential Guard يحظر هذا (الأسرار المحميّة فقط)

الشكل 15: VBS ليس تقنيّة «أبقِهم خارجاً»؛ إنّه تقنيّة «لا تدعهم يفوزوا متى دخلوا»، والمرحلة التي يحرسها مختلفة.

7.2. «إن سبّبت سلامة الذاكرة مشكلة، عطِّلها فحسب»

تعطيلها سيجعل الأمور تعمل للحظة، لكنّه يزيل الحاجز ضدّ حقن الشيفرة في النواة بالجملة. الإصلاح الصحيح تحديد برنامج التشغيل المحظور أوّلاً في سجلّ CodeIntegrity ثمّ تطبيق الإصدار المحدَّث من البائع. حتّى عندما تعطِّله مؤقّتاً للتحقّق، نوصي بممارسة تشغيل لا تجعل ذلك إعداداً دائماً.

7.3. «مع Credential Guard، لا يمكن سرقة كلمات المرور»

ذلك ثقة زائدة وُلدت من خلط نطاق الحماية. تذاكر الخدمة والحسابات المحلّيّة وضغطات المفاتيح نفسها وبيانات الاعتماد التي يخزّنها تطبيق بنفسه خارج النطاق.8 التصيّد ومسجِّلات المفاتيح تحتاج ضوابط أخرى (مصادقة متعدّدة العوامل وWindows Hello ومراجعة كيفيّة إدارة التطبيق نفسه لبيانات الاعتماد).

8. الخلاصة

  • يستخدم VBS الـ hypervisor لإنشاء بيئة معزولة ويحمي ميزات أمنيّة على افتراض أنّ النواة ستُخترَق.2
  • وحدة العزل هي VTL؛ حالياً مستويان منفَّذان، VTL0 (العالم العادي) وVTL1 (النواة الآمنة وIUM).3
  • جوهر الحدّ حماية وصول ذاكرة SLAT، التي لا تستطيع برمجيّات داخل القسم، بما فيها النواة، تغييرها.3
  • يؤدّي HVCI تحقّق سلامة الشيفرة في البيئة المعزولة ويفرض «غير قابل للتنفيذ حتّى يمرّ التحقّق» و«الصفحات القابلة للتنفيذ غير قابلة للكتابة».5 الثمن أنّ توافق برامج التشغيل يجب إدارته.6
  • يعزل Credential Guard تجزئات NTLM وTGT لبيانات اعتماد النطاق في LSAIso في VTL1. من Windows 11 22H2 فصاعداً يُفعَّل افتراضيّاً على أجهزة تستوفي متطلّبات الترخيص (Enterprise وEducation) ومتطلّبات العتاد (استخدم هذا مع فحص حالة التشغيل).71
  • يمكن فحص حالة التشغيل من SecurityServicesRunning في Win32_DeviceGuard (1 = Credential Guard، 2 = HVCI).9

يتبع في الجزء 3، «آلات افتراضيّة تقلع في ثوانٍ ── WSL2 وWindows Sandbox والحاويات».

حتّى الآن نظرنا إلى الافتراضيّة من جانب «قوّة العزل». ينظر الجزء الأخير من الجانب المقابل، «الخفّة»، ويتبع أين تقتطع الآلات الافتراضيّة الخفيفة التي خلعت ثقل آلة افتراضيّة كاملة.

مقالات ذات صلة

مجالات الاستشارة ذات الصلة

تتعامل شركة كومورا سوفت ذ.م.م. مع تحقيقات التوافق بين تطبيقات Windows والميزات الأمنيّة، وتحليل الإخفاقات التي تسبّبها برامج التشغيل، والتحقّق التقني لبيئات الحواسيب الداخليّة.

روابط مرجعيّة

  1. Microsoft Learn, Credential Guard overview. حول تفعيل Credential Guard افتراضيّاً من Windows 11 الإصدار 22H2 فصاعداً على أجهزة تستوفي متطلّبات الترخيص والعتاد والبرمجيّات ولم تُعطَّل صراحة؛ وكون الإصدارات/التراخيص المؤهِّلة Enterprise (E3/E5) وEducation (A3/A5)، مع خروج Pro عن النطاق؛ وبقاء جهاز Pro فُعِّل سابقاً تحت ترخيص مؤهِّل مؤهَّلاً للتفعيل افتراضيّاً بعد خفض. ↩ ↩2 ↩3

  2. Microsoft Learn, Virtualization-based Security (VBS). حول استخدام VBS الافتراضيّة العتاديّة وhypervisor Windows لإنشاء بيئة معزولة وجعلها جذر ثقة نظام التشغيل على افتراض أنّ النواة يمكن أن تُخترَق؛ وأداء سلامة الذاكرة تحقّق سلامة شيفرة وضع النواة داخل تلك البيئة المعزولة؛ وكون SLAT متطلَّباً إلزاميّاً لـ VBS. ↩ ↩2 ↩3

  3. Microsoft Learn, Virtual Secure Mode. حول كون VSM أساس Device Guard وCredential Guard وTPM الافتراضي وما شابه؛ والتحكّم في الوصول إلى المناطق المعزولة عبر الـ hypervisor فقط وحمايتها حتّى من برمجيّات نظام تشغيل الحلقة 0؛ وهرميّة VTLs مع تنفيذ مستويين من حدّ أقصى 16؛ وعدم إمكان تغيير حمايات وصول الذاكرة لكلّ VTL ببرمجيّات النظام داخل القسم. ↩ ↩2 ↩3 ↩4 ↩5

  4. Microsoft Learn, Isolated User Mode (IUM) Processes. حول إنشاء VSM لـ VTLs باستخدام hypervisor Hyper-V وSLAT؛ وعمل النواة الآمنة وIUM في VTL1؛ وتمرير trustlets استدعاءات النظام إلى نواة VTL0؛ وعمل LSAIso في VTL1 وتواصله مع lsass عبر RPC. ↩ ↩2 ↩3

  5. Microsoft Learn, Memory integrity and virtualization-based security. حول أداء سلامة الذاكرة (HVCI) تحقّق سلامة الشيفرة في بيئة معزولة، وصيرورة صفحات ذاكرة النواة قابلة للتنفيذ فقط بعد مرور التحقّق وعدم صيرورة الصفحات القابلة للتنفيذ قابلة للكتابة أبداً. ↩ ↩2 ↩3

  6. Microsoft Learn, Memory integrity and VBS enablement. حول تفعيل سلامة الذاكرة افتراضيّاً على تثبيت نظيف لـ Windows 11 عندما يكون العتاد متوافقاً؛ وفحص الحالة في msinfo32 وتطبيق أمان Windows؛ وتأكيد برنامج تشغيل محظور عبر معرّف الحدث 3087 في سجلّ CodeIntegrity Operational. ↩ ↩2 ↩3

  7. Microsoft Learn, How Credential Guard works. حول تواصل LSA مع عمليّة LSA المعزولة (LSAIso.exe) لتخزين الأسرار عندما يُفعَّل Credential Guard؛ وحماية البيانات المخزَّنة بـ VBS وتعذّر الوصول إليها من بقيّة نظام التشغيل؛ وعدم استضافة عمليّة LSA المعزولة أيّ برامج تشغيل أجهزة وإيوائها فقط حدّاً أدنى من ملفّات تنفيذيّة مُتحقَّق من توقيعها. ↩ ↩2 ↩3

  8. Microsoft Learn, Credential Guard protection limits. حول خروج تذاكر الخدمة والحسابات المحلّيّة ومسجِّلات المفاتيح والهجمات الفيزيائيّة وما شابه عن نطاق حماية Credential Guard؛ وحماية TGT بينما تذاكر الخدمة ليست كذلك؛ وتعذّر استخدام NTLMv1 والتفويض غير المقيَّد عندما يُفعَّل. ↩ ↩2 ↩3

  9. Microsoft Learn, Enable virtualization-based protection of code integrity. حول كيفيّة فحص حالة VBS وسلامة الذاكرة عبر صنف Win32_DeviceGuard، ومعنى قيم SecurityServicesRunning (1 هو Credential Guard، 2 هو سلامة الذاكرة). ↩ ↩2

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

ترتبط هذه المقالة بشكل طبيعي بصفحات الخدمات التالية.

الأسئلة الشائعة

أسئلة شائعة حول موضوع هذه المقالة.

هل VBS (الأمان المستند إلى الافتراضيّة) وعزل النواة (Core isolation) الشيء نفسه؟
بالمعنى الدقيق، مختلفان. VBS التقنيّة الأساسيّة التي تستخدم الـ hypervisor لإنشاء بيئة معزولة، و«Core isolation» في تطبيق أمان Windows اسم شاشة تجمع عدّة حمايات مبنيّة فوق VBS. الممثّل هو «سلامة الذاكرة»، الذي يشير إلى HVCI (سلامة الشيفرة المحميّة بالـ hypervisor). أكِّد حالة تشغيل كلّ خدمة فرديّة بالاستعلام عن Win32_DeviceGuard، لا ممّا تعرضه الشاشة.
هل حقّاً لا يمكن قراءة ذاكرة VTL1، حتّى بصلاحيّات مدير أو من برنامج تشغيل نواة؟
لا يمكن. حمايات وصول الذاكرة لكلّ VTL يديرها الـ hypervisor على فضاء العناوين الفيزيائيّ للقسم، ولا تستطيع البرمجيّات التي تعمل داخل القسم تغييرها. حتّى الشيفرة التي تعمل في النواة (الحلقة 0) غير مسموح لها بالوصول إلى ذاكرة VTL1 من VTL0.
لماذا يمكن أن يوقف تفعيل سلامة الذاكرة (HVCI) برنامج تشغيل عن العمل؟
في بيئة HVCI، تصير صفحة نواة قابلة للتنفيذ فقط بعد أن تمرّ بتحقّق السلامة، ولا تُسمَح الكتابة إلى صفحات قابلة للتنفيذ. برنامج تشغيل بلا توقيع، أو برنامج تشغيل بتصميم أقدم يعيد كتابة ذاكرة قابلة للتنفيذ، لا يستطيع استيفاء هذا القيد، فيُحظَر تحميله. يمكنك تأكيد الحظر في سجلّ CodeIntegrity Operational (معرّف الحدث 3087 وما شابه).
ماذا يحمي Credential Guard، وماذا لا يحمي؟
يحمي، في بيئة معزولة، تجزئات كلمات مرور NTLM لبيانات اعتماد النطاق، وTGT لـ Kerberos، وأيّ شيء خزّنه تطبيق بوصفه بيانات اعتماد نطاق. تذاكر خدمة Kerberos، وبيانات اعتماد الحسابات المحلّيّة وحسابات Microsoft، وسرقة الإدخال بمسجِّل مفاتيح، والهجمات الفيزيائيّة خارج النطاق.
أين يمكنني فحص ما إذا كان VBS يعمل؟
انظر حقل «Virtualization-based security» في msinfo32، أو استعلم عن صنف Win32_DeviceGuard في مساحة الأسماء root/Microsoft/Windows/DeviceGuard من PowerShell. إن احتوى SecurityServicesRunning على 1، يعمل Credential Guard؛ وإن احتوى على 2، تعمل سلامة الذاكرة (HVCI).

الملف الشخصي للمؤلف

صفحة الملف الشخصي لمؤلف المقالة.

غو كومورا

مؤسّس شركة كومورا سوفت ذ.م.م.

يركّز على تطوير برامج ويندوز، والاستشارات التقنية، والتحقيق في الأخطاء، ويتميّز في المشاريع التي تبقى فيها الأصول القديمة ناشطة، وفي تشخيص الأعطال التي يصعب تحديد سببها.

العودة إلى المدونة