تنظیمات Microsoft host Guardian در ویندوز سرور 2016

تنظیمات Microsoft host Guardian در ویندوز سرور 2016

در حال حاضر ویندوز سرور 2016 با معرفی سرویس Host Guardian  برای shielded VM های hyper-V   ،به عنوان ایمن ترین نسخه ی سیستم عامل های مایکروسافت می باشد ،در این دوران که  از زیر ساختهای cloud  استفاده می شود امنیت حتی نسبت به workload distributed چالش برانگیزتر شده است. خیلی از کسب و کارها حجم کاری بالایی روی ماشین های مجازی خود هم درcloud  وهم در premises دارند ، ذاتاً ایمن کردن VM ها از سیستم های فیزیکی بسیار دشوارتر است و با توجه به افزایش استفاده از  cloud  و multi-tenant ، کسب و کارها احتیاج دارند که از حملات مخرب در امان باشند و نیز باید دسترسی به VM  ها را برای ادمین های Hyper-V  محدود کنند .

در ویندوز سرور 2016 ،Feature جدید shielded VM ها و سرویس Host Guardian  در میان ارتقاءهای امنیتی جدیدی هستند که در ماه گذشته منتشر شده اند . سرویس Host Guardian  و shielded VM ها به ادمین ها اجازه می دهد که VM ها را در برابر یکسری حملات مخرب محافظت کنند .حال یک مروری بر اینکه سرویس Host Guardian  چطور کار می کند و سپس نحوه پیکر بندی آن برای فعالسازیVMs Hyper-V shielded ارائه می دهیم .

اجزاء Shielded VM

سرویس Host Guardian دارای قسمت های مختلفی هست که ممکن است برای راه اندازی دچار مشکل شود .اجزاء اصلی به شرح زیر است :

  • Host Guardian (HGS) Role : ویندوز سرور به طور مشخص برروی cluster ای از سرورهای bare-metal نصب می شود .HGS  قادر است که کلیدهایی را برای Host های مطمئن Hyper-V منتشر کند که امکان روشن کردن VM ها  و یا live migration را به VM ها می دهد .HGS شامل سرویس Attestation و سرویس های Key protection می باشد .

 

  • Guarded host : یک Host Hyper-V قادر به راه اندازی shielded VMs می باشد .Host باید توسط سرویس HGS attestation تایید شود .shielded VM ها بدون گذر از attestation امکان روشن شدن و یا Live migration به یک هاست hyper-V را ندارند.

 

  • Guarded Fabric : هاست های Hyper-V که می تواند shielded VMs و HGS را اجرا کند . Guarded Fabric از کد یکپارچگی ، مد Virtual secure ، TPM v2 و HGS تشکیل شده است .

 

  • Shielded VM : یک VM نسل دوم است که یک TPM مجازی دارد.هارد دیسک مجازی با استفاده از Bitlocker رمزگذاری شده است و تنها می تواند هاست های سالم و تایید شده را در fabric اجرا کند .

در شکل 1 یک نمای کلی از نحوه کار shielded VM ها و HGS ها نشان داده شده است .

1

در ابتدا کاربر درخواستی مبنی بر شروع یک shielded VM خاص از یک Guarded host  را می دهد .اولین چیزی که Guarded host  ارسال می کند یک کلید درخواست به HGS می باشد ،HGS سپس پاسخی برای Guarded host می فرستد که نیازمند attestation می باشد .guarded host  یک  TCG log ارسال می کند که شامل رویدادهای بوت سیستم است و اینکه OS چه کاری انجام داده و کی شروع به کار کرده است .سپس اینها به TPM تبدیل می شود و سرویس HGS attestation درخواست را ارزیابی می کند و برای اطمینان از اینکه رویدادهای log TCG و Guarded host TPM مشابه هستند با guarded host چک می شود .

سپس guarded host ، Policy  کد یکپارچگی را ارسال می کند که مطئن شود که تنها کدهایی اجرا می شوند که سالم هستند .اگر اعتبار host  با سرویس Attestation تایید شود بعد سرویس attestation برای اینکه نشان دهد هاست تایید شده و سالم است گواهینامه attestation را برای guarded host ارسال می کند .

در مرحله بعد ، Host  مجدد یک کلیدی را برای HGS گواهینامه ی سلامت ارسال می کند . HGS  گواهینامه را برای تعیین اعتبار آن بررسی می کند .اگر گواهینامه معتبر بود قسمتی از وضعیتVM رمزگشایی می شود و سپس مجدد به مد Virtual secure رمزگذاری شده  و کلید به guarded host مد virtual secure  ارسال می شود.

مد  guarded host virtual secure کلید را رمزگشایی کرده و برای راه اندازی VM استفاده می کند .اگر VM به هاست دیگری منتقل شود و تلاش کند که بدون کلید را اندازی شود شروع به کار نخواهد کرد .به همین ترتیب اگر یک کاربر و یا ادمین برای راه اندازی VM تلاش کند سرویس attestation تعیین می کند که آنها حق دسترسی ندارند پس VM رمزگشایی نشده و راه اندازی نمی شود .

دو نوع مد attestation برای استفاده با سرویس Host Guardian  وجود دارد :

  • Admin-trusted attestation :به host این اجازه را می دهد که ما آن را به عنوان guarded host  در active directory برای رمزگشایی و را اندازی shielded VM به کار بگیریم ، ما host  ها را با انتخاب در گروه global security که در AD ایجاد شده به عنوان guarded host انتخاب می کنیم .یک رابطه trust باید بین fabric AD و HGS forest برقرار شود . این مد در اکثر business ها مورد استفاده قرار می گیرد .

 

  • TPM-trusted attestation :به هاست هایی که ما به عنوان guarded host انتخاب کرده ایم و آنها کدهای running  ای هستند که ما به عنوان trust  برای راه اندازی shielded VM ها معرفی کرده ایم اطلاق می شود .سخت افزار هاست و firmware باید شامل TPM 2.0 و UEFI 2.3.1 همراه با فعالسازی بوت ایمن باشد .راه اندازی آن یک مقدار پیچیده تر است ولی ایمن تر می باشد .TPM-trusted attestation احتمالاً توسط ارائه دهندگان هاست مورد استفاده قرار بگیرد .

الزامات و محدودیت ها

 الزامات متعددی در استفاده از VM ها و HGS ها وجود دارد :

  • یک هاست bare-metal :ما می توانیم HGS و shielded VM را در هاست قرار دهیم.

 

  • .مایکروسافت پیشنهاد می کند که HGS را برای High availability بیشتر cluster  کنیم .

 

  • نسخه data center ویندوز سرور 2016 : ایجاد و راه اندازی shielded VM ها و HGS که تنها با نسخه دیتاسنتر ویندوز 2016 پشتیبانی می شود . این تغییری بزرگ نسبت به ویندوز 2012 سرور محسوب می شود  که دارای نسخه های استاندارد و دیتا سنتر بود و feature های برابر داشت .

 

  • برای مد admin-trusted attestation :ما تنها نیازمند سخت افزار سروری هستیم که قابلیت اجرای Hyper-V در ویندوز 2016 TP5 یا بالاتر را داشته باشد .

 

  • برای TPM-trusted attestation :سرور ما باید 0 و UEFI 2.3.1 را داشته باشد و آنها باید در UEFI بوت شوند و همچنین در هاست ها باید بوت امن هم فعال شود .

 

  • Hyper-V role :باید در guarded host نصب شود .

 

  • HGS role :باید به هاست فیزیکی اضافه شود .

 

  • VM های نسل 2

 

  • یک دومین fabric AD

 

  • HGS AD که در ویندوز 2016 TP5 یک زیر ساخت AD مجزا از fabric AD می باشد .

 

در حال حاضر مایکروسافت Azure از shielded VM ها پشتیبانی نمی کند .بهرحال ،Azure رمزکذاری دیسک را ارائه داده است .

راه اندازی سرویس host Guardian

اولین قدم برای استفاده از shielded VM ها اضافه کردن Role HGS و پیکربندی HGS می باشد ، ما می توانیم HGS را از ویندوز powershell و یا گزینه add role در server manager نصب نماییم.

2

برای اضافه کردن Role HGS ، در powershell دستور زیر را وارد می کنیم.

Install-WindowsFeature –Name HostGuardianServiceRole –IncludeManagementTools -Restart

بعد از آن که HGS اضافه شد باید Install-HgsServer cmdlet اجرا شود ،این دستور AD forest  را برای HGS و همچنین پیکربندی سرویس HGS فعال می کند .با ویندوز سرور 2016 TP5 ما باید اطمینان حاصل کنیم که ماشین HGS به دومین  قبل از اجرای این گامها متصل شده است .زمانی که cmdlet در اولین node HGS اجرا می شود ، آن node  در DC اولیه برای یک دومین خاص تایید می شود و زمانی که در node، HGS اضافی داشته باشیم آن در DC ثانویه تایید می شود . دستور Install-HgsServer برای reboot مجدد سیستم مورد نیاز می باشد . 

پارامتر –HgsDomain نام HGS AD Domain را مشخص می کند.

2

پسورد تنها برای سرویسهای restore mode directory در AD به کار گرفته می شود و برای لاگین administrator ، پسورد تغییر نخواهد کرد .

ایجاد گواهینامه های self-signed

در مرحله بعد ، باید گواهینامه هایی برای سرویس HGS در راستای اهداف رمزگذاری و signing  ایجاد نماییم .سه روش برای استفاده گواهینامه ها با HGS وجود دارد:

  • گواهینامه PKI متعلق به خودمون و فایل PFX
  • گواهینامه ای که توط یک ماژول سخت افزاری ایمن پشتیبانی شده باشد .
  • با گواهینامه های self-signed

برای تست و ارزیابی ، ساده ترین راه این است که از certificate های self-signed استفاده کنیم ، برای ایجاد گواهینامه self-signed در کنسول powershell دستور   New-SelfSignedCertificate را اجرا نمایید .در اینجا _DNSName  می تواند هرآنچه که ما انتخاب می کنیم باشد .همچنین می توانیم از دستور Export-PfxCertificate برای صدور گواهینامه های self-signed  استفاده می کنیم :

3

سپس ،با اجرای دستور زیر می توانیم گواهینامه رمزگذاری شده ایجاد و صادر کنیم .

مقداردهی اولیه ی سرور HGS با استفاده از Admin-Trusted Attestation

مرحله بعدی از shielded VM ها برای مقداردهی اولیه ی HGS و انتخاب نوع Attestation استفاده می شود . اکثر business ها احتمالاً از Admin-trusted attestation را انتخاب می کنند در حالی که ارائه دهندگان host بیشتر تمایل به انتخاب TPM-trusted attestation دارند .همچنین می توانیم در صورت نیاز Attestation mode را تغییر دهیم .برای تنظیم HGS باید Initialize-HGSServer cmdlet را در Powershell اجرا نماییم تا از certificate  های رمزگذاری و signing  استفاده نماید .

4

برای سادگی کار مثال زیر از پسورد مشابه برای رمزگذاری و signing  استفاده کرده است .

5

زمان اجرای دستور ممکن است با خطاهای زیر روبرو شوید .

اگر با همچنین مشکلی روبرو شدید برای حل این مشکل دستور زیر را اجرا نمایید.

6

تنظیم DNS resolution  و ایجاد گروه security

برای Admin-trusted attestation باید DNS forwarding  لازم از دومین HGS را برای fabric domain تنظیم نماییم .تنظیمات فوق به این منظور است که Admin-trusted attestation ، host های قانونی را در گروه global AD security  در DNS Domain نشان دهد .از دستور theAdd-DnsServerConditionalForwarderZone برای ایجاد DNS forwarder در سیستم HGS استفاده می نماییم .همچنین می توانیم چند DNS server  را با کاما از هم جدا کنیم .دستور netdom  برای ارتباط های Trust  مورد استفاده قرار می گیرد.

7

همچنین باید یک DNS Forwarder از domain Fabric و domin HGS تعریف شود ،برای تعریف DNS forwarder باید Add-DnsServerConditionalForwarderZone cmdlet را در fabric DNS server اجرا نماییم .

8

Admin-trusted attestation ، host  های Trust  را در گروه security AD نشان می دهد .برای ایجاد گروه security ، ابتدا باید به Domain fabric  برویم و سپس از Active directory users and computers استفاده نماییم . این گروه security برای شناسایی هاست های مورد اعتماد VM shield ها کاربرد دارد و سپس در سرور HGS برای ثبت گروه با HGS از Add-HgsAttestationHostGroup استفاده می شود .

9

برای نامگذاری تنها می توانیم از (-) استفاده نماییم و مجاز به استفاده از نقطه و یا فاصله نیستیم .با اجرای دستور Get-ADGroup می توانیم از Fabric Domain ، SID بگیریم.

10

برای اطمینان از اینکه گروه guarded host  اضافه شده دستور زیر را اجرا نمایید Get-HgsAttestationHostGroup و در آخر از دستور Get-HgsTrace cmdlet برای بررسی اینکه آیا HGS به درستی نصب شده یا خیر استفاده می شود . Cmdlet  برای چک کردن مشکلات پیکربندی استفاده می شود .

11

مایکروسافت HA clustering  را برای HGS پیشنهاد می کند .

ایجاد shielded VM ها

بعد از پیکربندی HGS برای مدیریت shielded VM ها اقدام می نماییم .روشهای متعددی برای ایجاد shielded VM ها وجود دارد .مایکروسافت دارای پشتیبان built-in  برای HGS در System Center Virtual Machine Manager 2016 (VMM) می باشد . همچنین برای ایجاد shielded VM ها می توان از windows Azure pack استفاده نماییم و یا به صورت دستی در Hyper-V وارد نماییم .البته مایکروسافت سرویس VMM را برای ایجاد VM shield های جدید پیشنهاد می کند .

حل مشکل VM Protection

کنترل سطح دسترسی به VM ها مشکلی است که هیچ ارتباطی به این که ما از چه Hypervisor ای استفاده می کنیم ندارد (Hyper-V ، VMware ، KVM )

HGSجدید در windows server 2016 یک راه حل منحصر به فرد برای امنیت VM ها برای کنترل سطح دسترسی ارائه داده است . اگر چه HGS دارای تنظیمات پیچیده ای می باشد ولی VM ها را محدود کرده به طوری که تنها در هاست های trust  راه اندازی می شوند ، همچنین از نرم افزار های مخرب و یا دسترسی های غیر مجاز ادمین ها محافظت کرده و از به خطر افتادن VM ها جلوگیری می کند .

نویسنده و مترجم : مهندس سحر بیگی

admin