Merhaba,
Bu yazımda sizlere vSphere 6.7 ile gelen vTPM konusundan bahsedicem. Güvenlik gittikce daha büyük bir konu haline geldikçe, Guest işletim sistemlerinde desteklemek gereken özellikler hardware ortamında olduğu gibi sanallaştırılma ortamlarında da artıyor. Geçmiş dönemlerde sadece fiziksel olarak kullana bildiğimiz TPM’i artık sanal ortamlardada kullana bilme imkanımız var.
Sanal TPM nedir?
Bir vTPM veya “virtual Trusted Platform Module 2.0”, fiziksel bir TPM 2.0 aygıtı ile aynı işlevleri yerine getirir, ancak kriptografik işlemci işlerini yazılımda gerçekleştirir. Trusted Computing Group web sitesinde (Trusted Computing Group) daha fazla bilgi edinebilirsiniz.
Virtual TPM for Guests
Requirements:
Windows 10 veya 2016 VM’ye sanal bir TPM eklemek için gerekli aşağıdaki gereksinimler vardır:
-Sanal Makine Donanım Versiyon 14 olmalı
– EFI firmware kullanılmalı
– VCenter’da VM Şifreleme yapılmış olmalı.
VTPM kullanımı
VSphere üzerinde vTPM in kullanım amacı Windows 10 ve 2016 işletim sistemlerinde güvenlik özelliklerini desteklemesi içindir. HTML5 UI de bu düşünceyle tasarlanmıştır. VBS’nin etkinleştirmek için vTPM olması gerekmez.
Windows 10 ve 2016 dışındaki herhangi bir VM için vTPM’nin etkinleştirilmesi API yoluyla yapılır.
Kendi kendimize soralım;
“Şimdi bu bir Windows VM’de Bitlocker çalıştırabileceğim anlamına mı geliyor ?!”
Teknik olarak, Bitlocker’ı çalıştırmak için tüm parçalar var ama “Neden ??” diye sormak zorundayım. Unutmayın, vTPM’yi etkinleştirmek için zaten VM Şifrelemeye sahip olmanız gerekiyor!
Bu, Guest işletim sisteminden bağımsız olarak, vSphere’de desteklenen her sanal makine için yönetilmesi ve çalışması kolay bir sanal makine şifreleme çözümüne sahip olduğunuz anlamına gelir. Ayrıca, şifrelemeyi “Guest’te” yönetmek zorunda olmadığınız için genel iş yükünüzü önemli ölçüde azaltan bir yöntemdir. #NoSecuritySnowflakes
vTPM ekleme
Sanal TPM eklemek, sanal makineye yeni bir sanal device eklemek kadar kolaydır.
Bu işlemi vCenter’da key manager’ı açtıysanız yapabilirsiniz.
VTPM eklendiğinde, sanal makinenin “home” dosyaları şifrelenir. Aşağıdaki gibi.
vTPM
Donanım tabanlı bir TPM, Unique bir Onay Anahtarı- Endorsement Key (EK) ile üretilir. EK’nin private ve public bir anahtarı vardır. Bu anahtarlar Vendor Sertifika Yetkilisi (CA) tarafından oluşturulur ve çip’e önceden yüklenir.
VTPM cihazı eklendiğinde VMCA tarafından bir Onay Anahtarı Sertifikası (Endorsement Key Certificate) verilir. Bu, vTPM’e unique bir kimlik sağlamak için kullanılır. VTPM’ye unique bir kimlik sağlamak için verilen anahtar çifti (Public/private key) vTPM bağlı oldukça yaşar. VTPM bir anahtarı kullandığında genellikle tekrar değişmez, çünkü değiştiğinde vTPM’de saklanan hassas bilgileri geçersiz/kullanılmaz kılar.
Anahtar çifti, VMware Sertifika Yetkilisi (VMCA) veya bir üçüncü taraf Sertifika Yetkilisi (CA) tarafından verilen bir dijital sertifika olmasına karşın. VTPM, hiçbir zaman sertifika yetkilisi (CA) ile iletişim kurmaz.
Bu yanı fiziksel bir TPM’e benzemektedir. Fiziksel bir TPM, TPM satıcısının CA’i si ile iletişim kurabileceği bir yönteme sahiptir. TPM tarafından kullanılan dijital sertifikayı sertifika sağlayıcıdan onaylayabilirsiniz.
VMCA da bulunan default sertifikaların kendi Sertifika Yetkilisinden alınan sertifika ile değiştirilmesi, HTML5 UI aracılığıyla yapılır. Aşağıdaki resimden inceleyebilirsiniz
Sanal bir TPM güvenliğini sağlama
Bir fiziksel TPM bilgileri “Geçici Olmayan Güvenli Depolama” (“Non-Volatile Secure Storage”) olarak adlandırılan alanda saklayabilmektedir. Fiziksel bir TPM’de sağlanan bu alan aygıtının kendisinin donanım tabanlı bir bileşenidir. Kurcalamaya karşı dayanıklı bir entegre devrenin parçasıdır.
Trusted Computing Group’tan alınan aşağıdaki TPM içeriğinin resmine bakabilirsiniz.
“Platform Yapılandırma Kayıtlarının”( Platform Configuration Registers) güvenli bir şekilde saklanması için kimlik bilgileri veya sertifikalar gibi öğeler için sınırlı bir depolama alanı olduğunu görebilirsiniz. Bu, güvenlik ile ilgili metrikleri saklamak ve raporlamak için tasarlanmıştır. Bu depolama alanları kilobayt cinsinden ölçülür.
Sanal TPM’nin donanım tabanlı bir bileşeni yoktur, bunun yerine, güvenceye alınacak veriler guest işletim sistemi tarafından “Uçucu Olmayan Güvenli Depolama” (“Non-Volatile Secure Storage”) ya (Guest TPM 2.0 API’sı aracılığıyla) VM Encryption kullanılarak şifrelenerek “.nvram” dosyana yazılır.
Bu da yazılım kontrollü, “kurcalamaya karşı dayanıklı”( “tamper resistant”) bir veri depolama alanı sağlar. VM Encryption ile şifrelenmiş olduğundan “kurcalamaya dayanıklı” olup yazılım kontrolü VM’de yapılmıyor. Bu kontrol sanal Makineye sunulan sanal cihazın bir parçasıdır ve ESXi tarafından kontrol edilir.
Operasyonel Faydaları Nelerdir ?
Bir IT and Security operations açısından açıklarsa sanal TPM’nin kullanımı bir dizi temel özellik ve fayda sağlar:
- VTPM’ye yazılan veriler çok güçlü şifreleme ile güvenceye alınır. (AES-XTS-256)
- Guest işletim sistemi tarafından vTPM’ye yazılan tüm veriler “.nvram” dosyasında saklanır.
- VM Şifreleme kullandığımız için sanal makinelerin taşınabilirliğini korunur.
Örneğin, bir vTPM ile sanal makineyi vMotion yapabilirsiniz.
- VM şifrelenmiş olduğundan, önceden tanımlanmış olan “No Cryptography Administrator” rolü artık VM’nin yönetimini kısıtlamak için kullanılabilir. Bu rolün kullanımı, sanal makinenin yönetimine bir takım kısıtlamalar getirmektedir:
- VSphere istemcisinde konsol erişimi kısıtlar
- Sanal makinenin tarayıcısı üzerinden veri deposundan indirilmesini önler
- VM’den vTPM’yi kaldırma özelliği kısıtlar
- En az ayrıcalık (“least privilege”) operasyonel moda zorlar.
Şifreleme, VMDK’ları şifrelemeyi seçmedikçe, VMDK’ları değil, sadece VM “Home” dosyalarınında gerçekleştirilir. Bundan dolayı, yalnızca birkaç dosyayı veri deposunda şifrelediğimizden, performansa olan etki azdır.
“home” altında şifrelenen dosyalar aşağıdaki gibidir.
- .nvram
- VMX dosyaları
- Swap, log, .vmss, .vmsn, namespacedb
- DeployPackage (Guest Customization için kullanılan)
Neden ana bilgisayardaki fiziksel TPM’yi kullanmıyorsunuz?
vTPM, fiziksel TPM’ye bağlı değildirdemiştik fiziksel TPM’ye bağılılığı olmadığı için fiziksel TPM tarafından kullanılan depolama alanı bulundurmaz.
Fiziksel bir TPM’nin bazı özelliklerini ve neden VM’ler için kullanılmadığını inceleyelim;
- Fiziksel TPM’ler yüzler yada binlerce VM’in kimlik bilgilerini saklamak için tasarlanmamıştır. “Non-Volatile Secure Storage” alanı kilobayt cinsinden ölçülür
- Fiziksel TPM, Düşük Pin Sayısı ( “Low Pin Count” ) veriyolunda oturan bir cihazdır. Bu, seri bağlantı noktası veya PS / 2 fare gibi eski aygıtların bağlandığı aynı veri yoludur. Buda çok yavaştır.
- TPM’nin işlevlerinden biri, şifreleme işlemlerini gerçekleştirmek olduğunda 100’ten fazla VM’in bir ana bilgisayarda bulunması ve her birinin bir kripto işlemi yapmak için bir TPM API’sine veri göndermesi gerekecektir .Buda Serial bir device ta işlerin sıraya sokulması anlamına gelir ki scheduler’a ihtiyaç duyulur.
Tüm bu verileri fiziksel bir TPM’de depolayabilsek bile, vMotion veya host’u senkronize tuttutmak isteğimizde onu başka bir ana bilgisayara güvenli bir şekilde nasıl taşıyabilirim?
Tahmin edeceğiniz gibi, fiziksel bir TPM kullanım zorlukları çok fazla.
vTPM güçlü güvenlik ile operasyonel esneklik sağlar ama bir felaket (Disaster) kurtarma durumunuda düşününürseniz, bulundurmak istediğiniz son şey esnek olmayan bir güvenlik çözümü olacaktır..
Vtpm Disaster’da Nasıl Kullanılır
vCenter’inizin olmadığını ve şifrelenmiş sanal makineyle dolu bir disk array’inizin var olduğunu düşünelim. KMS altyapınızın hala mevcut olması kaydıyla, yeni bir vCenter oluşturabilir, KMS altyapısıyla güveni kurabilir ve şifreli VM’lerinizi kaydettirebilir ve bunları açabilirsiniz.
.Nvram dosyası VM ile her yere taşındığından dolayı ve VM “şifrelenmiş” olduğundan, veriler güvenceye alınmıştır olacaktır. Bu VM’i başka bir vSphere kurulumuna taşımak istiyorsanız aynı prensipler geçerlidir. Bu vSphere kurulumunun, aynı Anahtar Yönetim( Key Management ) altyapısına güvenilir bir bağlantı üzerinden erişmesi gerekir.
Şifrelenmiş bir VM Cross vCenter vMotion’u desteklenmez. Bu senaryoda sanal makinenin cold migration ile aktarılması gerekir
Backup and Restore
Bir vTPM ile etkinleştirilen sanal makineyi yedekleyebilirsiniz. Yedekleme, * .nvram dosyası dahil olmak üzere tüm sanal makine verilerini içermelidir. Yedeklemeniz * .nvram dosyasını içermiyorsa, bir sanal makineyi vTPM ile geri yükleyemezsiniz. Ayrıca, vTPM özellikli bir sanal makinenin VM home dosyaları şifrelendiğinden, şifreleme anahtarlarının (encryption keys’lerin) geri yükleme sırasında erişilebilir olduğundan emin olunması gerekir.
Operasyonel Kavramlar
vTPM nedeniyle VM Şifrelemesi kullanıyorsanız Least Privilege kavramını göz önünde bulundurmanız gerekir. 10 sysadmins varsa, hepsine Yönetici rolünü verdiyseniz, bu hakları yeniden değerlendirmeniz gerekir. “Yönetici” olan herkes, vTPM ile ilgili olan tasklara da erişebileceği için potansiyel olarak tehlikeye atabilecek görevlere sahip olmuş olacaktır.
Bundan dolayı bu gibi kullanıcılara “No Cryptography Administrator” rolünü vermek uygun olacaktır.
TPM teknolojisinin fiziksel yada sanal olarak kullanmanın oluşturduğu farkları vTPM’in faydalarını ve esnekliğini kullanarak operasyonel olarak daha esnek bir yapıya sahip olabilirsiniz