استفاده از QubesOS برای کار با ویندوز 7

مقالات زیادی در مورد Habré به سیستم عامل Qubes اختصاص داده نشده است، و مواردی که من دیده ام، تجربه استفاده از آن را توصیف نمی کنند. در زیر برش، امیدوارم با استفاده از مثال استفاده از Qubes به عنوان وسیله ای برای محافظت (در برابر) محیط ویندوز و در عین حال، تعداد کاربران روسی زبان سیستم را برآورد کنم.

استفاده از QubesOS برای کار با ویندوز 7

چرا Qubes؟

ماجرای پایان پشتیبانی فنی از ویندوز 7 و افزایش اضطراب کاربران باعث شد تا نیاز به سازماندهی کار این سیستم عامل با در نظر گرفتن الزامات زیر باشد:

  • اطمینان از استفاده از ویندوز 7 کاملاً فعال شده با قابلیت نصب به روز رسانی ها و برنامه های مختلف (از جمله از طریق اینترنت) توسط کاربر.
  • اجرای حذف کامل یا انتخابی تعاملات شبکه بر اساس شرایط (عملکرد خودکار و حالت های فیلتر ترافیک).
  • امکان اتصال انتخابی رسانه ها و دستگاه های قابل جابجایی را فراهم می کند.

این مجموعه محدودیت‌ها یک کاربر کاملاً آماده را پیش‌فرض می‌گیرد، زیرا مدیریت مستقل مجاز است و محدودیت‌ها مربوط به مسدود کردن اقدامات بالقوه او نیست، بلکه به حذف خطاهای احتمالی یا اثرات مخرب نرم‌افزار مربوط می‌شود. آن ها هیچ متخلف داخلی در مدل وجود ندارد.

در جستجوی راه حل، ما به سرعت ایده اجرای محدودیت ها با استفاده از ابزارهای داخلی یا اضافی ویندوز را کنار گذاشتیم، زیرا محدود کردن مؤثر یک کاربر با حقوق سرپرست بسیار دشوار است و به او امکان نصب برنامه ها را می دهد.

راه حل بعدی جداسازی با استفاده از مجازی سازی بود. ابزارهای معروف برای مجازی سازی دسکتاپ (به عنوان مثال، جعبه مجازی) برای حل مشکلات امنیتی مناسب نیستند و محدودیت های ذکر شده باید توسط کاربر با تغییر مداوم یا تنظیم ویژگی های ماشین مجازی مهمان (از این پس به آن اشاره شود) انجام شود. به عنوان VM)، که خطر خطا را افزایش می دهد.

در همان زمان، ما تجربه استفاده از Qubes را به عنوان سیستم دسکتاپ کاربر داشتیم، اما در مورد پایداری کار با ویندوز مهمان شک داشتیم. تصمیم گرفته شد تا نسخه فعلی Qubes را بررسی کنیم، زیرا محدودیت های بیان شده به خوبی با پارادایم این سیستم، به ویژه پیاده سازی قالب های ماشین مجازی و یکپارچه سازی بصری مطابقت دارد. در ادامه سعی می کنم با استفاده از مثال حل مسئله به طور خلاصه در مورد ایده ها و ابزارهای Qubes صحبت کنم.

انواع مجازی سازی Xen

Qubes بر اساس هایپروایزر Xen است که عملکردهای مدیریت منابع پردازنده، حافظه و ماشین های مجازی را به حداقل می رساند. تمام کارهای دیگر با دستگاه ها در dom0 بر اساس هسته لینوکس متمرکز شده است (Qubes برای dom0 از توزیع Fedora استفاده می کند).

استفاده از QubesOS برای کار با ویندوز 7

Xen از چندین نوع مجازی سازی پشتیبانی می کند (من نمونه هایی را برای معماری اینتل می آورم، اگرچه Xen از سایرین پشتیبانی می کند):

  • paravirtualization (PV) - یک حالت مجازی سازی بدون استفاده از پشتیبانی سخت افزاری که یادآور مجازی سازی کانتینر است، می تواند برای سیستم هایی با هسته سازگار استفاده شود (dom0 در این حالت عمل می کند).
  • مجازی سازی کامل (HVM) - در این حالت، از پشتیبانی سخت افزاری برای منابع پردازنده استفاده می شود و سایر تجهیزات با استفاده از QEMU شبیه سازی می شوند. این جهانی ترین راه برای اجرای سیستم عامل های مختلف است.
  • مجازی‌سازی سخت‌افزار (PVH - ParaVirtualized Hardware) - یک حالت مجازی‌سازی با استفاده از پشتیبانی سخت‌افزار زمانی که برای کار با سخت‌افزار، هسته سیستم مهمان از درایورهای سازگار با قابلیت‌های هایپروایزر (مثلاً حافظه مشترک) استفاده می‌کند و نیاز به شبیه‌سازی QEMU را از بین می‌برد. و افزایش عملکرد I/O هسته لینوکس که از 4.11 شروع می شود می تواند در این حالت کار کند.

استفاده از QubesOS برای کار با ویندوز 7

با شروع Qubes 4.0، به دلایل امنیتی، استفاده از حالت paravirtualization کنار گذاشته شد (از جمله به دلیل آسیب پذیری های شناخته شده در معماری اینتل، که تا حدی با استفاده از مجازی سازی کامل کاهش می یابد)؛ حالت PVH به طور پیش فرض استفاده می شود.

هنگام استفاده از شبیه‌سازی (حالت HVM)، QEMU در یک VM ایزوله به نام stubdomain راه‌اندازی می‌شود، در نتیجه خطرات سوءاستفاده از خطاهای احتمالی در پیاده‌سازی کاهش می‌یابد (پروژه QEMU حاوی کدهای زیادی از جمله برای سازگاری است).
در مورد ما، این حالت باید برای ویندوز استفاده شود.

خدمات ماشین های مجازی

در معماری امنیتی Qubes یکی از قابلیت های کلیدی Hypervisor انتقال دستگاه های PCI به محیط مهمان است. حذف سخت افزار به شما اجازه می دهد تا قسمت میزبان سیستم را از حملات خارجی جدا کنید. Xen این را برای حالت های PV و HVM پشتیبانی می کند، در مورد دوم به پشتیبانی از IOMMU (Intel VT-d) نیاز دارد - مدیریت حافظه سخت افزاری برای دستگاه های مجازی.

این چندین ماشین مجازی سیستم را ایجاد می کند:

  • sys-net، که دستگاه‌های شبکه به آن منتقل می‌شوند و به عنوان پل برای ماشین‌های مجازی دیگر، به عنوان مثال، آنهایی که عملکردهای فایروال یا کلاینت VPN را اجرا می‌کنند، استفاده می‌شود.
  • sys-usb، که USB و دیگر کنترل‌کننده‌های دستگاه جانبی به آن منتقل می‌شوند.
  • sys-firewall، که از دستگاه ها استفاده نمی کند، اما به عنوان یک فایروال برای VM های متصل کار می کند.

برای کار با دستگاه های USB، از خدمات پروکسی استفاده می شود که از جمله موارد زیر را ارائه می دهد:

  • برای کلاس دستگاه HID (دستگاه رابط انسانی)، ارسال دستورات به dom0.
  • برای رسانه های قابل جابجایی، تغییر مسیر حجم های دستگاه به سایر ماشین های مجازی (به جز dom0)؛
  • هدایت مستقیم به یک دستگاه USB (با استفاده از USBIP و ابزارهای یکپارچه سازی).

در چنین پیکربندی، یک حمله موفقیت‌آمیز از طریق پشته شبکه یا دستگاه‌های متصل می‌تواند منجر به به خطر افتادن تنها سرویس VM در حال اجرا شود و نه کل سیستم. و پس از راه اندازی مجدد سرویس VM در حالت اولیه بارگذاری می شود.

ابزارهای یکپارچه سازی VM

راه های مختلفی برای تعامل با دسکتاپ یک ماشین مجازی وجود دارد - نصب برنامه ها در سیستم مهمان یا شبیه سازی ویدیو با استفاده از ابزار مجازی سازی. برنامه‌های مهمان می‌توانند ابزارهای مختلف دسترسی از راه دور جهانی (RDP، VNC، Spice، و غیره) باشند یا با یک Hypervisor خاص تطبیق داده شوند (اینگونه ابزارها معمولاً به عنوان ابزار مهمان نامیده می‌شوند). هنگامی که هایپروایزر I/O را برای سیستم مهمان شبیه‌سازی می‌کند و به صورت خارجی توانایی استفاده از پروتکلی را که I/O را ترکیب می‌کند، به عنوان مثال، مانند Spice، می‌تواند استفاده کند. در عین حال، ابزارهای دسترسی از راه دور معمولاً تصویر را بهینه می کنند، زیرا شامل کار از طریق یک شبکه است که تأثیر مثبتی بر کیفیت تصویر ندارد.

Qubes ابزارهای خود را برای ادغام VM فراهم می کند. اول از همه، این یک زیر سیستم گرافیکی است - پنجره های ماشین های مجازی مختلف روی یک دسکتاپ با قاب رنگی خاص خود نمایش داده می شوند. به طور کلی، ابزارهای یکپارچه سازی مبتنی بر قابلیت هایپروایزر - حافظه مشترک (جدول Xen grant)، ابزارهای اطلاع رسانی (کانال رویداد Xen)، xenstore ذخیره سازی مشترک و پروتکل ارتباطی vchan هستند. با کمک آنها، اجزای اصلی qrexec و qubes-rpc و خدمات برنامه اجرا می شوند - تغییر مسیر صوتی یا USB، انتقال فایل ها یا محتوای کلیپ بورد، اجرای دستورات و راه اندازی برنامه ها. امکان تنظیم خط مشی هایی وجود دارد که به شما امکان می دهد خدمات موجود در ماشین مجازی را محدود کنید. شکل زیر نمونه ای از روش اولیه سازی تعامل دو ماشین مجازی است.

استفاده از QubesOS برای کار با ویندوز 7

بنابراین، کار در VM بدون استفاده از شبکه انجام می شود، که امکان استفاده کامل از ماشین های مجازی مستقل را برای جلوگیری از نشت اطلاعات فراهم می کند. به عنوان مثال، زمانی که کلیدهای خصوصی در ماشین های مجازی ایزوله استفاده می شوند و فراتر از آنها نمی روند، جداسازی عملیات رمزنگاری (PGP/SSH) چگونه اجرا می شود.

قالب ها، برنامه ها و ماشین های مجازی یکبار مصرف

تمام کارهای کاربر در Qubes در ماشین های مجازی انجام می شود. سیستم میزبان اصلی برای کنترل و تجسم آنها استفاده می شود. سیستم عامل همراه با مجموعه ای از ماشین های مجازی مبتنی بر الگو (TemplateVM) نصب می شود. این الگو یک VM لینوکس مبتنی بر توزیع فدورا یا دبیان است که ابزارهای ادغام نصب شده و پیکربندی شده و سیستم و پارتیشن‌های کاربر اختصاص داده شده است. نصب و به روز رسانی نرم افزار توسط یک مدیر بسته استاندارد (dnf یا apt) از مخازن پیکربندی شده با تأیید امضای دیجیتال اجباری (GnuPG) انجام می شود. هدف چنین VMهایی اطمینان از اعتماد به VMهای کاربردی است که بر اساس آنها راه اندازی شده اند.

هنگام راه‌اندازی، یک برنامه مجازی مجازی (AppVM) از یک عکس فوری از پارتیشن سیستم الگوی VM مربوطه استفاده می‌کند و پس از تکمیل، این عکس فوری را بدون ذخیره تغییرات حذف می‌کند. داده های مورد نیاز کاربر در یک پارتیشن کاربر منحصر به فرد برای هر برنامه VM ذخیره می شود که در فهرست اصلی نصب شده است.

استفاده از QubesOS برای کار با ویندوز 7

استفاده از ماشین های مجازی یکبار مصرف (disposableVM) می تواند از نظر امنیتی مفید باشد. چنین VM بر اساس یک الگو در زمان راه اندازی ایجاد می شود و برای یک هدف راه اندازی می شود - برای اجرای یک برنامه، تکمیل کار پس از بسته شدن. ماشین های مجازی یکبار مصرف می توانند برای باز کردن فایل های مشکوک استفاده شوند که محتویات آنها می تواند منجر به سوء استفاده از آسیب پذیری های برنامه خاص شود. توانایی اجرای یک VM یکبار مصرف در فایل منیجر (Nautilus) و ایمیل کلاینت (Thunderbird) یکپارچه شده است.

Windows VM همچنین می تواند برای ایجاد یک الگو و یک ماشین مجازی یکبار مصرف با انتقال نمایه کاربر به بخش جداگانه استفاده شود. در نسخه ما، چنین قالبی توسط کاربر برای کارهای مدیریتی و نصب برنامه استفاده می شود. بر اساس الگو، چندین VM برنامه ایجاد خواهد شد - با دسترسی محدود به شبکه (قابلیت های استاندارد سیستم فایروال) و بدون دسترسی به شبکه (دستگاه شبکه مجازی ایجاد نشده است). تمامی تغییرات و اپلیکیشن های نصب شده در قالب برای کار در این ماشین های مجازی در دسترس خواهند بود و حتی در صورت معرفی برنامه های بوکمارک، دسترسی به شبکه برای به خطر انداختن نخواهند داشت.

برای ویندوز بجنگ

ویژگی هایی که در بالا توضیح داده شد اساس Qubes هستند و کاملاً پایدار کار می کنند؛ مشکلات از ویندوز شروع می شوند. برای یکپارچه سازی ویندوز، باید از مجموعه ای از ابزارهای مهمان Qubes Windows Tools (QWT) استفاده کنید که شامل درایورهایی برای کار با Xen، یک درایور qvideo و مجموعه ای از ابزارهای کمکی برای تبادل اطلاعات (انتقال فایل، کلیپ بورد) است. فرآیند نصب و پیکربندی با جزئیات در وب سایت پروژه مستند شده است، بنابراین ما تجربه برنامه خود را به اشتراک خواهیم گذاشت.

مشکل اصلی اساساً عدم پشتیبانی از ابزارهای توسعه یافته است. به نظر می رسد برنامه نویسان کلیدی (QWT) در دسترس نیست و پروژه ادغام ویندوز در انتظار توسعه دهنده اصلی است. بنابراین، قبل از هر چیز، لازم بود عملکرد آن ارزیابی شود و درک درستی از امکان حمایت مستقل از آن در صورت لزوم شکل گیرد. سخت ترین توسعه و اشکال زدایی درایور گرافیک است که آداپتور ویدئو و نمایشگر را شبیه سازی می کند تا تصویری را در حافظه مشترک تولید کند و به شما امکان می دهد کل دسکتاپ یا پنجره برنامه را مستقیماً در پنجره سیستم میزبان نمایش دهید. در طول تجزیه و تحلیل عملکرد درایور، ما کد را برای مونتاژ در یک محیط لینوکس تطبیق دادیم و یک طرح اشکال زدایی بین دو سیستم مهمان ویندوز ایجاد کردیم. در مرحله ساخت متقاطع ، ما چندین تغییر ایجاد کردیم که کارها را برای ما ساده کرد ، عمدتاً از نظر نصب "بی صدا" ابزارهای برقی و همچنین کاهش آزاردهنده عملکرد هنگام کار در VM برای مدت طولانی را از بین برد. نتایج کار را در قسمتی جداگانه ارائه کردیم مخازن، بنابراین برای مدت طولانی نیست الهام بخش توسعه دهنده اصلی Qubes.

بحرانی ترین مرحله از نظر پایداری سیستم مهمان، راه اندازی ویندوز است، در اینجا می توانید صفحه آبی آشنا را ببینید (یا حتی آن را نبینید). برای بسیاری از خطاهای شناسایی شده، راه‌حل‌های مختلفی وجود داشت - حذف درایورهای دستگاه بلوک Xen، غیرفعال کردن تعادل حافظه VM، رفع تنظیمات شبکه و به حداقل رساندن تعداد هسته‌ها. ابزار مهمان ما روی ویندوز 7 و ویندوز 10 کاملاً به روز شده نصب و اجرا می شود (به جز qvideo).

هنگام انتقال از یک محیط واقعی به یک محیط مجازی، در صورت استفاده از نسخه های OEM از پیش نصب شده، با فعال کردن ویندوز مشکل ایجاد می شود. چنین سیستم هایی از فعال سازی بر اساس مجوزهای مشخص شده در UEFI دستگاه استفاده می کنند. برای پردازش صحیح فعال سازی، لازم است یکی از کل بخش های ACPI سیستم میزبان (جدول SLIC) را به سیستم مهمان ترجمه کنید و بقیه را کمی ویرایش کنید و سازنده را ثبت کنید. Xen به شما امکان می دهد محتوای ACPI جداول اضافی را سفارشی کنید، اما بدون تغییر جدول های اصلی. یک وصله از یک پروژه OpenXT مشابه، که برای Qubes اقتباس شده بود، به راه حل کمک کرد. اصلاحات نه تنها برای ما مفید به نظر می رسید و به مخزن اصلی Qubes و کتابخانه Libvirt ترجمه شد.

معایب آشکار ابزارهای یکپارچه سازی ویندوز شامل عدم پشتیبانی از دستگاه های صوتی، USB و پیچیدگی کار با رسانه است، زیرا پشتیبانی سخت افزاری برای GPU وجود ندارد. اما موارد فوق نه مانع استفاده از VM برای کار با اسناد اداری می شود و نه از راه اندازی برنامه های خاص شرکتی جلوگیری می کند.

نیاز به تغییر حالت کار بدون شبکه یا با یک شبکه محدود پس از ایجاد یک الگوی Windows VM با ایجاد تنظیمات مناسب ماشین های مجازی کاربردی انجام شد و امکان اتصال انتخابی رسانه های قابل جابجایی نیز توسط ابزارهای سیستم عامل استاندارد - هنگام اتصال حل شد. ، آنها در سیستم VM sys-usb موجود هستند، از آنجا می توان آنها را به VM مورد نیاز "ارسال کرد". دسکتاپ کاربر چیزی شبیه به این است.

استفاده از QubesOS برای کار با ویندوز 7

نسخه نهایی سیستم به طور مثبت (تا جایی که چنین راه حل جامع اجازه می دهد) توسط کاربران پذیرفته شد و ابزارهای استاندارد سیستم امکان گسترش برنامه را به ایستگاه کاری تلفن همراه کاربر با دسترسی از طریق VPN فراهم کرد.

به جای یک نتیجه گیری

مجازی سازی به طور کلی به شما امکان می دهد خطرات استفاده از سیستم های ویندوز بدون پشتیبانی را کاهش دهید - سازگاری با سخت افزار جدید را مجبور نمی کند، به شما امکان می دهد دسترسی به سیستم را از طریق شبکه یا از طریق دستگاه های متصل حذف یا کنترل کنید، و به شما امکان می دهد یک محیط راه اندازی یکباره را اجرا کنید.

بر اساس ایده جداسازی از طریق مجازی سازی، سیستم عامل Qubes به شما کمک می کند تا از این مکانیسم ها و سایر مکانیسم ها برای امنیت استفاده کنید. از بیرون، بسیاری از مردم Qubes را در درجه اول به عنوان تمایل به ناشناس بودن می‌دانند، اما این سیستم هم برای مهندسان که اغلب پروژه‌ها، زیرساخت‌ها و اسرار را برای دسترسی به آنها دستکاری می‌کنند و هم برای محققان امنیتی یک سیستم مفید است. جداسازی برنامه‌ها، داده‌ها و رسمی‌سازی تعامل آنها، گام‌های اولیه تحلیل تهدید و طراحی سیستم امنیتی است. این جداسازی به ساختاردهی اطلاعات و کاهش احتمال خطاهای ناشی از عامل انسانی - عجله، خستگی و غیره کمک می کند.

در حال حاضر، تاکید اصلی در توسعه بر گسترش عملکرد محیط های لینوکس است. نسخه 4.1 برای انتشار آماده می شود که مبتنی بر فدورا 31 خواهد بود و شامل نسخه های فعلی اجزای اصلی Xen و Libvirt می شود. شایان ذکر است که Qubes توسط متخصصان امنیت اطلاعات ایجاد شده است که همیشه در صورت شناسایی تهدیدات یا خطاهای جدید، به‌روزرسانی‌ها را به سرعت منتشر می‌کنند.

پس از کلمه

یکی از قابلیت‌های آزمایشی که در حال توسعه هستیم به ما امکان می‌دهد ماشین‌های مجازی با پشتیبانی از دسترسی مهمان به پردازنده گرافیکی مبتنی بر فناوری Intel GVT-g ایجاد کنیم که به ما امکان می‌دهد از قابلیت‌های آداپتور گرافیکی استفاده کنیم و دامنه سیستم را به میزان قابل توجهی گسترش دهیم. در زمان نگارش این مقاله، این قابلیت برای ساخت‌های آزمایشی Qubes 4.1 کار می‌کند و در دسترس است گیتهاب.

منبع: www.habr.com

اضافه کردن نظر