استخدام QubesOS للعمل مع Windows 7

لا توجد مقالات كثيرة عن حبري مخصصة لنظام التشغيل Qubes، وتلك التي رأيتها لا تصف الكثير من تجربة استخدامه. أسفل القطع، آمل تصحيح ذلك باستخدام مثال استخدام Qubes كوسيلة للحماية (ضد) بيئة Windows، وفي الوقت نفسه، تقدير عدد مستخدمي النظام الناطقين باللغة الروسية.

استخدام QubesOS للعمل مع Windows 7

لماذا كيوبس؟

أدت قصة انتهاء الدعم الفني لنظام التشغيل Windows 7 والقلق المتزايد لدى المستخدمين إلى ضرورة تنظيم عمل نظام التشغيل هذا مع مراعاة المتطلبات التالية:

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

تفترض مجموعة القيود هذه وجود مستخدم مستعد بشكل واضح، حيث يُسمح بالإدارة المستقلة، ولا تتعلق القيود بحظر أفعاله المحتملة، ولكن باستبعاد الأخطاء المحتملة أو التأثيرات الضارة للبرامج. أولئك. لا يوجد مجرم داخلي في النموذج.

في بحثنا عن حل، تخلينا سريعًا عن فكرة تنفيذ القيود باستخدام أدوات Windows المضمنة أو الإضافية، نظرًا لأنه من الصعب جدًا تقييد المستخدم بشكل فعال بحقوق المسؤول، مما يترك له القدرة على تثبيت التطبيقات.

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

في الوقت نفسه، كانت لدينا خبرة في استخدام Qubes كنظام سطح مكتب للمستخدم، ولكن كانت لدينا شكوك حول استقرار العمل مع Windows الضيف. تقرر التحقق من الإصدار الحالي من Qubes، نظرًا لأن القيود المذكورة تتلاءم جيدًا مع نموذج هذا النظام، وخاصة تنفيذ قوالب الآلة الافتراضية والتكامل المرئي. بعد ذلك، سأحاول التحدث بإيجاز عن أفكار وأدوات Qubes، باستخدام مثال حل المشكلة.

أنواع المحاكاة الافتراضية Xen

يعتمد Qubes على برنامج Hypervisor Xen، الذي يقلل من وظائف إدارة موارد المعالج والذاكرة والأجهزة الافتراضية. تتركز جميع الأعمال الأخرى مع الأجهزة في dom0 استنادًا إلى Linux kernel (يستخدم Qubes for dom0 توزيع Fedora).

استخدام QubesOS للعمل مع Windows 7

يدعم Xen عدة أنواع من المحاكاة الافتراضية (سأقدم أمثلة على بنية Intel، على الرغم من أن Xen يدعم أنواعًا أخرى):

  • المحاكاة الافتراضية (PV) - يمكن استخدام وضع المحاكاة الافتراضية دون استخدام دعم الأجهزة، الذي يذكرنا بمحاكاة الحاوية الافتراضية، للأنظمة ذات النواة المُكيَّفة (يعمل dom0 في هذا الوضع)؛
  • المحاكاة الافتراضية الكاملة (HVM) - في هذا الوضع، يتم استخدام دعم الأجهزة لموارد المعالج، ويتم محاكاة كافة الأجهزة الأخرى باستخدام QEMU. هذه هي الطريقة الأكثر عالمية لتشغيل أنظمة التشغيل المختلفة؛
  • المحاكاة الافتراضية للأجهزة (PVH - ParaVirtualized Hardware) - وضع المحاكاة الافتراضية باستخدام دعم الأجهزة عندما تستخدم نواة النظام الضيف، للعمل مع الأجهزة، برامج تشغيل تتكيف مع قدرات برنامج Hypervisor (على سبيل المثال، الذاكرة المشتركة)، مما يلغي الحاجة إلى محاكاة QEMU وزيادة أداء الإدخال/الإخراج. يمكن لنواة Linux بدءًا من 4.11 أن تعمل في هذا الوضع.

استخدام QubesOS للعمل مع Windows 7

بدءًا من Qubes 4.0، ولأسباب أمنية، تم التخلي عن استخدام وضع المحاكاة الافتراضية (بما في ذلك بسبب نقاط الضعف المعروفة في بنية Intel، والتي يتم تخفيفها جزئيًا عن طريق استخدام المحاكاة الافتراضية الكاملة)؛ ويتم استخدام وضع PVH افتراضيًا.

عند استخدام المحاكاة (وضع HVM)، يتم تشغيل QEMU في جهاز افتراضي معزول يسمى stubdomain، مما يقلل من مخاطر استغلال الأخطاء المحتملة في التنفيذ (يحتوي مشروع QEMU على الكثير من التعليمات البرمجية، بما في ذلك التوافق).
في حالتنا، يجب استخدام هذا الوضع لنظام التشغيل Windows.

خدمة الأجهزة الافتراضية

في بنية أمان Qubes، تتمثل إحدى الإمكانيات الرئيسية لبرنامج Hypervisor في نقل أجهزة PCI إلى بيئة الضيف. يسمح لك استبعاد الأجهزة بعزل الجزء المضيف من النظام عن الهجمات الخارجية. يدعم Xen هذا الوضع PV وHVM، وفي الحالة الثانية يتطلب دعم IOMMU (Intel VT-d) - إدارة ذاكرة الأجهزة للأجهزة الافتراضية.

يؤدي هذا إلى إنشاء العديد من الأجهزة الافتراضية للنظام:

  • sys-net، الذي يتم نقل أجهزة الشبكة إليه والذي يُستخدم كجسر لأجهزة افتراضية أخرى، على سبيل المثال، تلك التي تنفذ وظائف جدار الحماية أو عميل VPN؛
  • sys-usb، الذي يتم نقل USB وأجهزة التحكم في الأجهزة الطرفية الأخرى إليه؛
  • sys-firewall، الذي لا يستخدم الأجهزة، ولكنه يعمل كجدار حماية للأجهزة الافتراضية المتصلة.

للعمل مع أجهزة USB، يتم استخدام خدمات الوكيل، والتي توفر، من بين أمور أخرى:

  • بالنسبة لفئة الأجهزة HID (جهاز الواجهة البشرية)، يتم إرسال الأوامر إلى dom0؛
  • بالنسبة للوسائط القابلة للإزالة، إعادة توجيه وحدات تخزين الجهاز إلى أجهزة افتراضية أخرى (باستثناء dom0)؛
  • إعادة التوجيه مباشرةً إلى جهاز USB (باستخدام USBIP وأدوات التكامل).

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

أدوات التكامل VM

هناك عدة طرق للتفاعل مع سطح مكتب الجهاز الظاهري - تثبيت التطبيقات في نظام الضيف أو محاكاة الفيديو باستخدام أدوات المحاكاة الافتراضية. يمكن أن تكون تطبيقات الضيف عبارة عن أدوات وصول عالمية متعددة عن بُعد (RDP، وVNC، وSpice، وما إلى ذلك) أو يمكن تكييفها مع برنامج Hypervisor محدد (تسمى هذه الأدوات عادةً أدوات مساعدة للضيوف). يمكن أيضًا استخدام خيار مختلط، عندما يحاكي برنامج Hypervisor الإدخال/الإخراج لنظام الضيف، ويوفر خارجيًا القدرة على استخدام بروتوكول يجمع بين الإدخال/الإخراج، على سبيل المثال، مثل Spice. وفي الوقت نفسه، تعمل أدوات الوصول عن بعد عادةً على تحسين الصورة، نظرًا لأنها تتضمن العمل عبر شبكة، وهو ما لا يؤثر بشكل إيجابي على جودة الصورة.

توفر Qubes أدواتها الخاصة لتكامل VM. بادئ ذي بدء، هذا نظام فرعي للرسومات - يتم عرض النوافذ من أجهزة افتراضية مختلفة على سطح مكتب واحد بإطار ألوان خاص بها. بشكل عام، تعتمد أدوات التكامل على إمكانيات برنامج Hypervisor - الذاكرة المشتركة (جدول منح Xen)، وأدوات الإعلام (قناة حدث Xen)، والتخزين المشترك xenstore وبروتوكول اتصال vchan. بمساعدتهم، يتم تنفيذ المكونات الأساسية qrexec و qubes-rpc وخدمات التطبيقات - إعادة توجيه الصوت أو USB، ونقل الملفات أو محتويات الحافظة، وتنفيذ الأوامر وتشغيل التطبيقات. من الممكن تعيين سياسات تسمح لك بالحد من الخدمات المتوفرة على جهاز افتراضي. الشكل أدناه هو مثال على الإجراء الخاص بتهيئة التفاعل بين جهازين افتراضيين.

استخدام QubesOS للعمل مع Windows 7

وبالتالي، يتم تنفيذ العمل في الجهاز الافتراضي دون استخدام الشبكة، مما يسمح بالاستخدام الكامل للأجهزة الافتراضية المستقلة لتجنب تسرب المعلومات. على سبيل المثال، هذه هي الطريقة التي يتم بها تنفيذ فصل عمليات التشفير (PGP/SSH)، عندما يتم استخدام المفاتيح الخاصة في أجهزة افتراضية معزولة ولا تتجاوزها.

القوالب والتطبيقات وأجهزة افتراضية لمرة واحدة

تتم جميع أعمال المستخدم في Qubes في الأجهزة الافتراضية. يتم استخدام النظام المضيف الرئيسي للتحكم فيها وتصورها. يتم تثبيت نظام التشغيل مع مجموعة أساسية من الأجهزة الافتراضية القائمة على القالب (TemplateVM). هذا القالب عبارة عن جهاز Linux VM يعتمد على توزيع Fedora أو Debian، مع تثبيت أدوات التكامل وتكوينها، وأقسام النظام والمستخدم المخصصة. يتم تثبيت البرنامج وتحديثه بواسطة مدير الحزم القياسي (dnf أو apt) من المستودعات التي تم تكوينها مع التحقق الإلزامي من التوقيع الرقمي (GnuPG). الغرض من هذه الأجهزة الافتراضية هو ضمان الثقة في التطبيقات الافتراضية التي يتم إطلاقها على أساسها.

عند بدء التشغيل، يستخدم تطبيق VM (AppVM) لقطة لقسم النظام الخاص بقالب VM المقابل، وعند الانتهاء يحذف هذه اللقطة دون حفظ التغييرات. يتم تخزين البيانات التي يطلبها المستخدم في قسم مستخدم فريد لكل تطبيق VM، والذي تم تثبيته في الدليل الرئيسي.

استخدام QubesOS للعمل مع Windows 7

يمكن أن يكون استخدام أجهزة افتراضية يمكن التخلص منها (disposableVM) مفيدًا من الناحية الأمنية. يتم إنشاء هذا الجهاز الافتراضي بناءً على قالب في وقت بدء التشغيل ويتم تشغيله لغرض واحد - تنفيذ تطبيق واحد، واستكمال العمل بعد إغلاقه. يمكن استخدام الأجهزة الافتراضية التي يمكن التخلص منها لفتح الملفات المشبوهة التي قد تؤدي محتوياتها إلى استغلال نقاط ضعف معينة في التطبيق. تم دمج القدرة على تشغيل جهاز افتراضي لمرة واحدة في مدير الملفات (Nautilus) وعميل البريد الإلكتروني (Thunderbird).

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

الكفاح من أجل ويندوز

الميزات الموضحة أعلاه هي أساس Qubes وتعمل بثبات تام، وتبدأ الصعوبات مع Windows. لدمج Windows، يجب عليك استخدام مجموعة من أدوات الضيف Qubes Windows Tools (QWT)، والتي تتضمن برامج تشغيل للعمل مع Xen، وبرنامج تشغيل qvideo ومجموعة من الأدوات المساعدة لتبادل المعلومات (نقل الملفات، الحافظة). تم توثيق عملية التثبيت والتكوين بالتفصيل على موقع المشروع، لذلك سنشارك تجربة التطبيق لدينا.

تكمن الصعوبة الرئيسية في نقص الدعم للأدوات المطورة. يبدو أن المطورين الرئيسيين (QWT) غير متاحين وأن مشروع تكامل Windows ينتظر مطورًا رئيسيًا. لذلك، أولا وقبل كل شيء، كان من الضروري تقييم أدائها وتكوين فهم لإمكانية دعمها بشكل مستقل، إذا لزم الأمر. الأكثر صعوبة في التطوير والتصحيح هو برنامج تشغيل الرسومات، الذي يحاكي محول الفيديو والعرض لإنشاء صورة في الذاكرة المشتركة، مما يسمح لك بعرض سطح المكتب بالكامل أو نافذة التطبيق مباشرة في نافذة النظام المضيف. أثناء تحليل تشغيل برنامج التشغيل، قمنا بتكييف التعليمات البرمجية للتجميع في بيئة Linux ووضعنا نظام تصحيح الأخطاء بين نظامي Windows Guest. في مرحلة البناء المتقاطع، قمنا بإجراء العديد من التغييرات التي سهّلت الأمور بالنسبة لنا، خاصة فيما يتعلق بالتثبيت "الصامت" للأدوات المساعدة، وكذلك القضاء على التدهور المزعج في الأداء عند العمل في جهاز افتراضي لفترة طويلة. لقد قدمنا ​​​​نتائج عملنا بشكل منفصل مستودعات، وبالتالي ليس لفترة طويلة الملهمة مطور Qubes الرئيسي.

المرحلة الأكثر أهمية من حيث استقرار نظام الضيف هي بدء تشغيل Windows، وهنا يمكنك رؤية الشاشة الزرقاء المألوفة (أو حتى عدم رؤيتها). بالنسبة لمعظم الأخطاء التي تم تحديدها، كانت هناك حلول مختلفة - إزالة برامج تشغيل أجهزة كتلة Xen، وتعطيل موازنة ذاكرة الجهاز الظاهري، وإصلاح إعدادات الشبكة، وتقليل عدد النوى. تعمل أدوات الضيف الخاصة بنا على إنشاء عمليات التثبيت والتشغيل على نظامي التشغيل Windows 7 وWindows 10 المحدثين بالكامل (باستثناء qvideo).

عند الانتقال من بيئة حقيقية إلى بيئة افتراضية، تنشأ مشكلة في تنشيط Windows في حالة استخدام إصدارات OEM المثبتة مسبقًا. تستخدم هذه الأنظمة التنشيط بناءً على التراخيص المحددة في UEFI الخاص بالجهاز. لمعالجة التنشيط بشكل صحيح، من الضروري ترجمة أحد أقسام ACPI بالكامل للنظام المضيف (جدول SLIC) إلى نظام الضيف وتحرير الأقسام الأخرى قليلاً، وتسجيل الشركة المصنعة. يسمح لك Xen بتخصيص محتوى ACPI للجداول الإضافية، ولكن دون تعديل الجداول الرئيسية. وقد ساعد التصحيح من مشروع OpenXT مماثل، والذي تم تكييفه ليناسب Qubes، في إيجاد الحل. بدت الإصلاحات مفيدة ليس لنا فقط، وتمت ترجمتها إلى مستودع Qubes الرئيسي ومكتبة Libvirt.

تشمل العيوب الواضحة لأدوات تكامل Windows عدم دعم الصوت وأجهزة USB وتعقيد العمل مع الوسائط، نظرًا لعدم وجود دعم الأجهزة لوحدة معالجة الرسومات. لكن ما سبق لا يمنع استخدام الجهاز الافتراضي للعمل مع المستندات المكتبية، ولا يمنع إطلاق تطبيقات معينة خاصة بالشركة.

تم استيفاء متطلبات التبديل إلى وضع التشغيل بدون شبكة أو بشبكة محدودة بعد إنشاء قالب Windows VM عن طريق إنشاء التكوينات المناسبة لأجهزة VM الخاصة بالتطبيقات، كما تم أيضًا حل إمكانية توصيل الوسائط القابلة للإزالة بشكل انتقائي بواسطة أدوات نظام التشغيل القياسية - عند الاتصال ، فهي متوفرة في النظام VM sys-usb، حيث يمكن "إعادة توجيهها" إلى الجهاز الظاهري المطلوب. يبدو سطح مكتب المستخدم مثل هذا.

استخدام QubesOS للعمل مع Windows 7

تم قبول الإصدار النهائي من النظام بشكل إيجابي (بالقدر الذي يسمح به هذا الحل الشامل) من قبل المستخدمين، كما أتاحت الأدوات القياسية للنظام توسيع التطبيق ليشمل محطة العمل المحمولة الخاصة بالمستخدم مع إمكانية الوصول عبر VPN.

بدلا من خاتمة

تسمح لك المحاكاة الافتراضية بشكل عام بتقليل مخاطر استخدام أنظمة Windows التي تُركت دون دعم - فهي لا تفرض التوافق مع الأجهزة الجديدة، وتسمح لك باستبعاد الوصول إلى النظام أو التحكم فيه عبر الشبكة أو من خلال الأجهزة المتصلة، وتسمح لك تنفيذ بيئة الإطلاق لمرة واحدة.

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

حاليًا، ينصب التركيز الرئيسي في التطوير على توسيع وظائف بيئات Linux. يتم الآن إعداد الإصدار 4.1 للإصدار، والذي سيعتمد على Fedora 31 ويتضمن الإصدارات الحالية من المكونات الرئيسية Xen وLibvirt. تجدر الإشارة إلى أنه تم إنشاء Qubes بواسطة متخصصين في مجال أمن المعلومات والذين يقومون دائمًا بإصدار التحديثات على الفور في حالة اكتشاف تهديدات أو أخطاء جديدة.

خاتمة

تتيح لنا إحدى القدرات التجريبية التي نقوم بتطويرها إنشاء أجهزة افتراضية مع دعم وصول الضيف إلى وحدة معالجة الرسومات استنادًا إلى تقنية Intel GVT-g، والتي تتيح لنا استخدام إمكانيات محول الرسومات وتوسيع نطاق النظام بشكل كبير. في وقت كتابة هذا التقرير، كانت هذه الوظيفة تعمل مع الإصدارات التجريبية من Qubes 4.1، وهي متاحة على جيثب.

المصدر: www.habr.com

إضافة تعليق