Virtualization Based Security
امنیت مجازی سازی همواره یکی مهمترین دغدغه های کارشناسان حوزه امنیت بوده است. مهمترین اصل در امنیت مجازی سازی ایزوله بودن ماشین های مجازی نسبت به هم و در دسترسی به منابع اشتراکی می باشد که پلتفرم مجازی سازی شرکت VMware یعنی ESXi به خوبی این اصل را پیاده سازی کرده است. با این حال کاربران و کارشناسان حوزه امنیت و مجازی سازی همواره به دنبال قابلیت ها و امکانات امنیتی در محیط مجازی سازی و vSphere بوده و هستند.
شرکت VMware قابلیت های امنیتی متعددی را به نسخه 6.5 و 6.7 پلتفرم vSphere افزوده است؛ یکی از مهمترین قابلیت های امنیتی vSphere 6.7 امکان استفاده از Virtualization Based Security است. توجه داشته باشید که Virtualization Based Security یا VBS، اساساً تکنولوژی شرکت Microsoft برای سیستم عامل های Windows 10 و Windows Server نسخه 2016 و 2019 می باشد و هیچ ربطی به شرکت VMware و vSphere ندارد. vSphere 6.7 فقط به شما اجازه می دهد که روی ماشین های مجازی با سیستم عامل های Windows 10 و Windows Server نسخه 2016 و 2019، قابلیت VBS را فعال کنید.
قابلیت Virtualization Based Security
هدف ما در این مقاله نحوه فعال سازی VBS در محیط vSphere است. اما قبل از هر چیز لازم است که با تکنولوژی VBS کمی بیشتر آشنا شویم؛ از آنجا که در مورد VBS وارد جزئیات نمی شویم، توصیه می کنیم جهت بررسی بیشتر این تکنولوژی به مستندات شرکت مایکروسافت مراجعه کنید.
ایده اصلی VBS از مفاهیم و مزایای مجازی سازی گرفته شده است؛ ایده اصلی این است که اگر بتوانیم یک پروسه یا بخشی از داده را از سایر پروسه ها و اجزای سیستم عامل مجازی سازی کنیم، در نتیجه ایزوله سازی اتفاق خواهد افتاد و ایزوله شدن، دسترسی به آن پروسه یا داده را محدود می کند. حال اگر بتوانیم یک سری Subsystem های مهم و امنیتی سیستم عامل و حافظه را از سایر اجزا ایزوله کنیم، امنیت تا حد قابل ملاحظه ای افزایش می یابد، چون دسترسی به این زیر سیستم ها کنترل می شود.
به عنوان مثال سامانه اعتبار سنجی یا Credential Subsystem یکی از زیر سامانه هایی است که جدا کردن پروسه ها و داده های آن، امنیت سیستم عامل را تا حد بسیار زیادی افزایش خواهد داد. این کار حداقل از حملات شناخته شده Pass-the Hash جلوگیری خواهد کرد. همانطور که میدانید بخشی از Credentialها به صورت Hash (NTLM Hash) در حافظه نگهداری می شود. درست است که با Hash شدن، اصل پسورد محافظت می شود، اما هنوز آسیب پذیری های دیگری وجود دارد. زمانی که شما با نام کاربری و پسورد خود وارد یک کلاینت شبکه می شوید، پسورد شما به صورت NTLM Hash در حافظه نگهداری می شود. چنانچه شما نیاز به دسترسی به سایر منابع روی شبکه مثل فایل سرور داشته باشید، Authentication از طریق ارسال این NTLM Hash انجام خواهد شد، نه خود پسورد. حال اگر یک بد افزار بتواند به با دسترسی به حافظه، NTLM Hash را استخراج کند، کار تمام خواهد بود! حال اگر بتوانیم این NTLM Hash و پروسه های درگیر در Authentication را در یک فضای امن و ایزوله، مجازی سازی و نگهداری کنیم، جلوی حمله تا حدود زیادی گرفته خواهد شد. خوب راه حل Microsoft برای مجازی سازی چیست؟ Hyper-V؛ بنابراین کلید VBS در دستان Hyper-V است!
در محیط فیزیکی شما روی رایانه همراه، رایانه شخصی و یا حتی روی سرور فیزیکی، سیستم عامل ویندوز را مستقیم روی سخت افزار نصب می کنید و تمام. اما اگر VBS فعال شود، ابتدا روی سخت افزار یک Hyper-V بالا می آیند، Hyper-V قبل از هر چیز یک سری Subsystemهای امنیتی مثل Credential Subsystem را بالا میاورد؛ در نهایت Window 10 بالا می آید. این دو در کنار هم مثل دو ماشین مجازی محافظت شده و ایزوله خواهند بود.
در محیط مجازی تنها اتفاقی که خواهد افتاد این است که یک لایه مجازی سازی دیگر و یک Hypervisor دیگر به اسم ESXi به فرآیند فوق افزوده خواهد شد. در محیط مجازی، Hyper-V روی ESXi به عنوان یک ماشین مجازی بوت می شود؛ زیر سامانه های امنیتی را لود کرده و نهایتاً سیستم عامل ویندوز 10 یا سرور 2016 یا 2019 را اجرا خواهد کرد.
مجازی سازی روی یک لایه مجازی دیگر را اصطلاحاً Nested Virtualization می گویند؛ برای کسب اطلاعات بیشتر در رابطه با این مدل از مجازی سازی به مقاله “مجازی سازی چیست؟” مراجعه کنید.
پیاده سازی VBS
برای پیاده سازی VBS در محیط vSphere 6.7 حتماً پیش نیازهای زیر را فراهم کنید:
Nested Virtualization (Expose Hardware Assisted Virtualization to the Guest OS)
I/O MMU
EFI Firmware
Secure Boot
VM Hardware Version 14
در گام اول یک ماشین مجازی با در نظر گرفتن مشخصات فوق ایجاد کنید. برای این منظور اگر در حال ساخت ماشین مجازی هستید، کافی است در مرحله انتخاب Guest OS، Virtualization Based Security را فعال کنید.
در غیر این صورت و چنانچه از قبل ماشین مجازی را ایجاد کرده اید، کافی است ماشین مجازی را خاموش کرده؛ در قسمت Edit Settings؛ اولاً برای CPU گزینه های Nested Virtualization و I/O MMU را فعال کنید.
در قسمت VM Options، Virtualization Based Security را Enable کنید که به صورت خودکار باعث تغییر Firmware به EFI و فعال شدن Secure Boot خواهد شد. توجه دارید که اگر روی ماشین مجازی شما سیستم عامل نصب شده باشد، تغییر Firmware از BIOS به EFI ممکن است باعث بوت نشدن سیستم عامل شود.
گام اول با موفقیت به پایان رسیده است و حال شما یک ماشین مجازی دارید که می توانید روی سیستم عامل آن قابلیت VBS را فعال کنید. در گام دوم لازم است که قابلیت Hyper-V را روی سیستم مورد نظر خود فعال کنید. انتخاب Hyper-V Hypervisor برای این منظور کافی خواهد بود.
در گام سوم لازم است که از طریق Group Policy، قابلیت VBS را فعال کنید. برای این منظور از طریق Local Group Policy Editor مسیر زیر را دنبال کنید.
Computer Configuration >> Administrative Templates >> System > Device Guard >> Turn On Virtualization Based Security
این گزینه را Enable و تنظیمات زیر را روی آن اعمال کنید:
Select Platform Security Level: Secure Boot and DMA Protection
Virtualization Based Protection of Code Integrity: Enabled with UEFI lock
Credential Guard Configuration: Enabled with UEFI lock
در نهایت با استفاده از دستور msinfo32.exe و در بخش System Summary از فعال بودن VBS روی سیستم عامل خود اطمینان حاصل کنید.
نتیجه گیری:
درست است که شرکت VMware به طور کامل امنیت مجازی سازی را در پلتفرم vSphere پیاده سازی کرده است و این موضوع تضمین شده است؛ اما استفاده از قابلیت های امنیتی منحصر به فرد تعبیه شده در vSphere نسخه 6.5 و 6.7، نظیر Virtualization Based Security، VM Encryption و vTPM، ضریب اطمینان و امنیت محیط شما را تا حد بسیار زیادی افزایش خواهد داد؛ فعال سازی VBS در محیط vSphere گام بسیار مهمی در این راستا خواهد بود.