{"id":3695,"date":"2019-09-12T13:06:12","date_gmt":"2019-09-12T11:06:12","guid":{"rendered":"https:\/\/vm.piszki.pl\/?p=3695"},"modified":"2019-09-12T13:06:12","modified_gmt":"2019-09-12T11:06:12","slug":"operacje-kryptograficzne-w-vsphere-czyli-o-co-chodzi-z-tym-kms-vtpm-vbs-i-innymi","status":"publish","type":"post","link":"https:\/\/vm.piszki.pl\/?p=3695","title":{"rendered":"Operacje kryptograficzne w vSphere czyli o co chodzi z tym KMS, vTPM, VBS i innymi."},"content":{"rendered":"<p align=\"justify\">Ca\u0142kiem niedawno pisa\u0142em o wsparciu dla <a href=\"https:\/\/vm.piszki.pl\/konfiguracja-tpm-2-0-w-vsphere-6-7\/\">TPM<\/a> 2.0 w vSphere 6.7, czemu warto u\u017cy\u0107 tej technologii i jak j\u0105 skonfigurowa\u0107. Dzisiaj chcia\u0142bym poci\u0105gn\u0105\u0107 temat dalej, zajmiemy si\u0119 bezpiecze\u0144stwem maszyn wirtualnych (VM). Firma VMware bardzo intensywnie rozwija tematyk\u0119 bezpiecze\u0144stwa VM poprzez wprowadzenie wsparcia dla operacji szyfrowania maszyn, wsparcia dla wirtualnego TPM (vTPM) oraz wsparcia dla technologii Microsoft Virtualization Based Security (VBS). Jest to bardzo ciekawy kawa\u0142ek wiedzy kt\u00f3ry postaram si\u0119 przybli\u017cy\u0107 mo\u017cliwie szczeg\u00f3\u0142owo.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/vsphere-encryption.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"vsphere-encryption\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/vsphere-encryption_thumb.jpg\" alt=\"vsphere-encryption\" width=\"419\" height=\"164\" border=\"0\" \/><\/a><\/p>\n<p><!--more--><\/p>\n<p align=\"justify\">Zaczniemy od Key Management Serwer (KMS), w terminologii VMware KMS to pojedynczy serwer, lub klaster serwer\u00f3w przechowuj\u0105cych klucze bezpiecze\u0144stwa s\u0142u\u017c\u0105ce do operacji kryptograficznych. KMS musi wspiera\u0107 protok\u00f3\u0142 KMIP w wersji 1.1 lub wy\u017cej. vCenter ufa ca\u0142kowicie KMS i przechowuje w nim wszystkie klucze, dlatego dost\u0119pno\u015b\u0107 tego rozwi\u0105zania jest kluczowa (bez KMS zaszyfrowana maszyna nie uruchomi si\u0119). Aktualnie operacje szyfrowania mo\u017cemy prowadzi\u0107 wielopoziomowo, mo\u017cemy zaszyfrowa\u0107 pliki konfiguracyjne VM, dyski VM lub ca\u0142y vsanDatastore.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms1.png\"><img loading=\"lazy\" decoding=\"async\" style=\"margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms1\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms1_thumb.png\" alt=\"kms1\" width=\"387\" height=\"347\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Aktualnie dost\u0119pnych jest na rynku kilkana\u015bcie certyfikowanych przez VMware rozwi\u0105za\u0144 KMS, na potrzeby tego artyku\u0142u pos\u0142u\u017cymy si\u0119 otwart\u0105 implementacj\u0105 <a href=\"https:\/\/pykmip.readthedocs.io\/en\/latest\/index.html\">PyKMIP<\/a>. Jest to napisany w Pythonie ma\u0142y serwer kt\u00f3ry jest ca\u0142kowicie zgodny z protoko\u0142em KMIP i przez to vCenter bardzo dobrze z nim wsp\u00f3\u0142pracuje. Od wersji 0.9.1 wspierane jest trwa\u0142e przechowywanie kluczy w lokalnej bazie danych co umo\u017cliwia prowadzenie wi\u0119kszych test\u00f3w. Mo\u017cna go zainstalowa\u0107 w dowolnym Linux ale mo\u017cna te\u017c \u015bci\u0105gn\u0105\u0107 <a href=\"https:\/\/github.com\/gwojcieszczuk\/kms4vsphere\">OVA<\/a> przygotowane przez koleg\u0119 Grega Wojcieszczuka. Samo pod\u0142\u0105czenie odbywa si\u0119 na poziomie vCenter w sekcji Configure \u2013&gt; Key Management Server:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms8.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms8\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms8_thumb.png\" alt=\"kms8\" width=\"559\" height=\"177\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Podajemy nazw\u0119 klastra, serwera i adres IP z portem, nast\u0119pnie musimy zestawi\u0107 dwustronne zaufanie pomi\u0119dzy vCenter a KMS. W pierwszym kroku wybieramy \u201cvCenter Certificate\u201d (i \u0142adujemy go do KMS) a w drugim \u201cKMS certificate and private key&#8221; i \u0142adujemy go do vCenter.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms9.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms9\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms9_thumb.jpg\" alt=\"kms9\" width=\"541\" height=\"318\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Dzi\u0119ki temu oba systemy b\u0119d\u0105 ufa\u0142y sobie nawzajem.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms5.png\"><img loading=\"lazy\" decoding=\"async\" style=\"margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms5\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms5_thumb.jpg\" alt=\"kms5\" width=\"539\" height=\"92\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Po poprawnym zestawieniu zaufanego po\u0142\u0105czenia do KMS w vCenter zostan\u0105 odblokowane wszystkie funkcje zwi\u0105zane z szyfrowaniem.\u00a0 Zaczn\u0119 od vSAN, w\u0142\u0105czenie szyfrowania spowoduje du\u017cy ruch danych, poniewa\u017c ka\u017cdy dysk zostanie ponownie sformatowany i zaszyfrowany. VMware zapewnia, \u017ce u\u017cycie szyfrowania nie wp\u0142ywa znacz\u0105co na obci\u0105\u017cenia, s\u0105 u\u017cywane sprz\u0119towe uk\u0142ady do operacji szyfrowania i deszyfrowania. Zale\u017cy to jednak od ruchu jaki generujemy na vSAN.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms10.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms10\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms10_thumb.jpg\" alt=\"kms10\" width=\"525\" height=\"271\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Aby zaszyfrowa\u0107 VM ca\u0142kowicie (dyski z danymi), musimy si\u0119 ju\u017c pos\u0142u\u017cy\u0107 odpowiedni\u0105 polityk\u0105 dyskow\u0105:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms11.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms11\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms11_thumb.jpg\" alt=\"kms11\" width=\"482\" height=\"193\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Teraz przejdziemy do vTPM, od czasu premiery min\u0119\u0142o ju\u017c troch\u0119 czasu ale warto przypomnie\u0107 ten temat. vTPM w wersji 2.0 spe\u0142nia dok\u0142adnie te same funkcje jak jego sprz\u0119towy odpowiednik, i co ciekawe, fizycznie nie \u0142\u0105czy si\u0119 z uk\u0142adem sprz\u0119towym. Dodanie vTPM do VM jest bardzo proste, niesie ze sob\u0105 jednak kilka warunk\u00f3w jakie musimy spe\u0142ni\u0107.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms6.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms6\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms6_thumb.jpg\" alt=\"kms6\" width=\"509\" height=\"401\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Warunkiem podstawowym jest w\u0142\u0105czenie \u201cVM Encryption\u201d, czyli defacto pod\u0142\u0105czenie si\u0119 pod KSM. Dodanie vTPM do VM powoduje automatyczne zaszyfrowanie wszystkich plik\u00f3w konfiguracyjnych tej maszyny (korzystamy z kluczy w KSM). Klucze wykorzystywane na potrzeby vTPM s\u0105 generowane przez VMware Certificate Authority (VMCA) i przechowywane w formie zaszyfrowanej w pliku nvram w katalogu domowym VM. Jest klika zalet takiego podej\u015bcia, mo\u017cemy wykona\u0107 vMotion w\u0142\u0105czonej VM kt\u00f3ra u\u017cywa vTPM (!), mo\u017cemy u\u017cy\u0107 nowej roli \u201cNo Cryptography Administrator\u201d. Taki cz\u0142owiek nie ma dost\u0119pu do konsoli VM i nie mo\u017ce jej wyeksportowa\u0107 na zewn\u0105trz \u015brodowiska, jednocze\u015bnie zachowuj\u0105c pe\u0142ni\u0119 innych praw administracyjnych. A tak to wygl\u0105da od \u015brodka VM:<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms12.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms12\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms12_thumb.jpg\" alt=\"kms12\" width=\"518\" height=\"289\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">I tutaj przejdziemy do om\u00f3wienia VBS czyli Virtualization Based Security, jest to technologia firmy Microsoft kt\u00f3ra pojawi\u0142a si\u0119 w Windows 10 i 2016. S\u0142u\u017cy do wygenerowania na poziomie VM, wspartego sprz\u0119towo lub programowo, bezpiecznego \u015brodowiska zarz\u0105dzanego przez hyperwizor. To \u015brodowisko wspiera co\u015b co nazwane zosta\u0142o Credentials Guard, dane uwierzytelniania u\u017cytkownika s\u0105 przechowywane w bezpiecznym kontenerze. I tu wchodzi TPM 2.0, bez tego uk\u0142adu dane te nie s\u0105 odpowiednio zabezpieczone i mog\u0105 by\u0107 ukradzione.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms14.jpg\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms14\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms14_thumb.jpg\" alt=\"kms14\" width=\"506\" height=\"316\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Dodanie vTPM do VM powoduje, \u017ce zaszyfrowane uprawnienia s\u0105 przechowywane poza pami\u0119ci\u0105 VM (w wirtualnym kontenerze), dzi\u0119ki temu nie s\u0105 podatne na atak \u201cPass the Hash\u201d, jest to znany exploit kt\u00f3ry potrafi wykra\u015b\u0107 loginy i has\u0142a. W\u0142\u0105czenie VBS odbywa si\u0119 w momencie kreowania nowej maszyny, wymusza te\u017c zastosowanie kilku rozwi\u0105za\u0144. Taka VM b\u0119dzie mia\u0142a w\u0142\u0105czony UEFI zamiast Bios i sprz\u0119towo wspart\u0105 wirtualizacj\u0119 (IOMMU):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms15.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms15\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms15_thumb.jpg\" alt=\"kms15\" width=\"501\" height=\"236\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Dodatkowo maszyna jest wyra\u017anie oznaczona informacj\u0105: VBS true<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/ksm16.png\"><img loading=\"lazy\" decoding=\"async\" style=\"margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"ksm16\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/ksm16_thumb.jpg\" alt=\"ksm16\" width=\"484\" height=\"210\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">A jak to wygl\u0105da od strony systemu operacyjnego? Samo dodanie TPM nic nie zmienia, wyra\u017anie wida\u0107 to w System Information (msinfo32):<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms16.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms16\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms16_thumb.jpg\" alt=\"kms16\" width=\"476\" height=\"292\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Musimy uruchomi\u0107 konsol\u0119 GPO i wprost skonfigurowa\u0107 VBS.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms17.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"kms17\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/kms17_thumb.jpg\" alt=\"kms17\" width=\"487\" height=\"347\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Po restarcie maszyny mo\u017cemy sprawdzi\u0107, \u017ce VBS funkcjonuje poprawnie. Powy\u017csza konfiguracja jest dok\u0142adnie taka sama dla systemu Windows 10 jak i 2016 i 2019.<\/p>\n<p><a href=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/ksm18.png\"><img loading=\"lazy\" decoding=\"async\" style=\"border: 0px currentcolor; margin-right: auto; margin-left: auto; float: none; display: block; background-image: none;\" title=\"ksm18\" src=\"https:\/\/vm.piszki.pl\/wp-content\/uploads\/2019\/09\/ksm18_thumb.jpg\" alt=\"ksm18\" width=\"499\" height=\"154\" border=\"0\" \/><\/a><\/p>\n<p align=\"justify\">Co ciekawe, w przypadku Windows Server w\u0142\u0105czenie VBS nie ma nic wsp\u00f3lnego z rol\u0105 Hyper-V (w Windows 10 musimy w\u0142\u0105czy\u0107 rol\u0119 Hyper-V). I to w zasadzie wszystko, przejd\u017amy zatem do podsumowania. Czy technologia kryptograficzna w vSphere b\u0119dzie przydatna? Oczywi\u015bcie 99% VM nie musi mie\u0107 nic wsp\u00f3lnego z szyfrowaniem, ale wszyscy mo\u017cemy sobie wyobrazi\u0107 scenariusz w kt\u00f3rym b\u0119dziemy mieli kontener zawieraj\u0105cy kilka lub kilkana\u015bcie VM funkcjonuj\u0105cych pod najwy\u017cszym rygorem bezpiecze\u0144stwa. Wsz\u0119dzie tam, gdzie dane finansowe, wizerunkowe lub ka\u017cde inne oznaczone jako tajne lub krytyczne, nie mog\u0105 zosta\u0107 utracone lub skompromitowane, technologia ta nie tylko b\u0119dzie przydatna ale i kluczowa.<\/p>\n<div style='text-align:left' class='yasr-auto-insert-visitor'><\/div>","protected":false},"excerpt":{"rendered":"<p>Ca\u0142kiem niedawno pisa\u0142em o wsparciu dla TPM 2.0 w vSphere 6.7, czemu warto u\u017cy\u0107 tej technologii i jak j\u0105 skonfigurowa\u0107. Dzisiaj chcia\u0142bym poci\u0105gn\u0105\u0107 temat dalej, zajmiemy si\u0119 bezpiecze\u0144stwem maszyn wirtualnych (VM). Firma VMware bardzo intensywnie rozwija tematyk\u0119 bezpiecze\u0144stwa VM poprzez &hellip; <a href=\"https:\/\/vm.piszki.pl\/?p=3695\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":1604,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"yasr_overall_rating":0,"yasr_post_is_review":"","yasr_auto_insert_disabled":"","yasr_review_type":"Product","footnotes":""},"categories":[93,45],"tags":[137,135,136,109],"class_list":["post-3695","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-nowosci","category-poradniki","tag-ksm","tag-vbs","tag-vm-encrypted","tag-vsan"],"yasr_visitor_votes":{"stars_attributes":{"read_only":false,"span_bottom":false},"number_of_votes":0,"sum_votes":0},"_links":{"self":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3695"}],"collection":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3695"}],"version-history":[{"count":5,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3695\/revisions"}],"predecessor-version":[{"id":3700,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/posts\/3695\/revisions\/3700"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=\/wp\/v2\/media\/1604"}],"wp:attachment":[{"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3695"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3695"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/vm.piszki.pl\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3695"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}