Korumalı Sanal Makine

Korumalı Sanal Makine, Compute Engine sanal makinesi örnekleriniz için doğrulanabilir bir bütünlük sunar. Böylece başlatma veya çekirdek düzeyinde kötü amaçlı yazılım ya da rootkit'ler tarafından örneklerinizin güvenliğinin ihlal edilmediğinden emin olabilirsiniz. Korumalı Sanal Makinenin doğrulanabilir bütünlüğü; Güvenli Başlatma, etkin sanal güvenilir platform modülü (vTPM) Ölçülmüş Başlatma ve bütünlük izlemesi kullanılarak elde edilir.

Korumalı Sanal Makine, Korumalı Bulut girişiminin ilk hizmetidir. Korumalı Bulut girişiminin, doğrulanabilir bütünlük sağlayarak ve vTPM koruması veya mühürleme gibi veri hırsızlığını önlemeye yardımcı olan özellikler sunarak tüm Google Cloud Platform (GCP) için daha güvenli bir temel sağlaması amaçlanmıştır.

Güvenli Başlatma

Güvenli Başlatma, tüm başlatma bileşenlerinin dijital imzasını doğrulayarak ve imza doğrulaması başarısız olduğunda başlatma işlemini durdurarak sistemin yalnızca orijinal yazılım çalıştırmasını sağlar.

Korumalı Sanal Makine örnekleri, Google'ın Sertifika Yetkilisi kullanılarak imzalanan ve doğrulanan bir ürün yazılımı çalıştırarak örnek donanım yazılımının değiştirilmemiş olmasını ve Güvenli Başlatma için güven kökü oluşturmasını sağlar. Birleşik Genişletilebilir Donanım Yazılımı Arayüzü (UEFI) 2.3.1 donanım yazılımı, sistem üreticilerinin sistem donanımı yazılımını, sistem başlatma yükleyicisini ve yükledikleri tüm ikili programları imzalamak için kullandığı anahtarları içeren sertifikaları güvenle yönetir. Korumalı Sanal Makine örnekleri, UEFI donanım yazılımını kullanır.

UEFI donanım yazılımı, her başlatma bileşeninin dijital imzasını onaylanmış anahtarların güvenli deposuna göre doğrular. Uygun şekilde imzalanmamış veya hiç imzalanmamış herhangi bir başlatma bileşeninin çalıştırılmasına izin verilmez.

Böyle bir durumda sanal makine örneği, GCP konsolunda bir hata durumu gösterir ve sanal makine örneğinin seri konsol günlüğünde, UEFI: Görüntü yüklenemedi ve Durum: Güvenlik İhlali dizinlerinin yanı sıra başarısız olan başlatma seçeneğinin açıklamasını da içeren bir giriş görünür. Arızayı gidermek için Korumalı Sanal Makine Seçeneklerini Değiştirme bölümündeki talimatları kullanarak Güvenli Başlatma'yı devre dışı bırakın. Böylece sanal makine örneğini başlatabilir, sorunu teşhis edip çözebilir, ardından Güvenli Başlatma'yı yeniden etkinleştirebilirsiniz.

Sanal Güvenilir Platform Modülü (vTPM)

vTPM, sisteminize erişimi doğrulamak için kullandığınız anahtarlar ve sertifikalar gibi nesneleri korumak için kullanabileceğiniz özel bir bilgisayar çipi olan sanallaştırılmış bir güvenilir platform modülüdür. Korumalı Sanal Makine vTPM, Trusted Computing Group (TPM) kitaplık özelliği 2.0 ile tamamen uyumludur ve FIPS 140-2 L1 onaylı olan BoringSSL'yi kullanır.

Korumalı Sanal Makine vTPM, bütünlük politikası referansı adı verilen bilinen iyi bir başlatma referansı oluşturmak için gereken ölçümleri yaparak Ölçülmüş Başlatma'yı etkinleştirir. Bütünlük politikası referansı, herhangi bir değişiklik olup olmadığını belirlemek için sonraki sanal makine başlatmalarında yapılan ölçümlerle karşılaştırmak için kullanılır.

vTPM'yi, kalkan veya mühürleme yoluyla gizli anahtarları korumak için de kullanabilirsiniz. Bu amaçla vTPM'nin nasıl kullanılacağını gösteren GitHub for Go dili örnekleriyle ilgili Go-TPM projesine bakın.

Ölçülmüş Başlatma

Ölçülmüş Başlatma sırasında, her bir bileşenin karması (örneğin; donanım yazılımı, bootloader veya çekirdek) bileşen yüklenirken oluşturulur ve bu karma, aşağıda gösterildiği gibi daha önce yüklenmiş olan tüm bileşenlerin karma değerleriyle birleştirilir ve yeniden kullanılır.

Ölçülmüş Başlatma işlemi.

Bu bilgi hem yüklenen bileşenleri hem de yük sırasını tanımlar.

Bir sanal makine örneğini ilk başlattığınızda Ölçülmüş Başlatma, bu ölçümlerin ilk kümesinden gelen bütünlük politikası referansını oluşturur ve bu verileri güvenli bir şekilde saklar. Bundan sonra sanal makine örneği her açıldığında bu ölçümler tekrar alınır ve bir sonraki yeniden başlatmaya kadar güvenli bellekte saklanır. Bu iki ölçüm kümesine sahip olmak, bir sanal makine örneğinin başlatması sırasındaki değişikliklerin olup olmadığını belirlemek için kullanabileceğiniz bütünlük izlemeyi sağlar.

Bütünlük izleme

Bütünlük izleme, sanal makine örneklerinin durumunu anlamanıza ve kararlar almanıza yardımcı olur.

Bütünlük izleme, Ölçülmüş Başlatma'nın oluşturduğu ölçümlere dayanır. Ölçülmüş Başlatma, hem bütünlük politikası referansının (bilinen iyi başlatma sırası) hem de en son başlatma sırasının bileşenleri ve bileşen yük sırası hakkında bilgi depolamak için platform yapılandırma kayıtlarını (PCR'ler) kullanır.

Bütünlük izleme, en yeni başlatma ölçümlerini bütünlük politikası referansına göre karşılaştırır ve eşleşip eşleşmediklerine bağlı olarak biri erken başlatma sırası biri de geç başlatma sırası için olan bir çift başarılı/başarısız sonuç verir. Erken başlatma, UEFI donanım yazılımının başlangıcından kontrolü bootloader'a geçirene kadar süren başlatma sırasıdır. Geç başlatma, kontrolü bootloader'dan işletim sistemi çekirdeğine geçene kadar süren başlatma sırasıdır. En yeni başlatma sırasının herhangi bir kısmı referansa uymuyorsa bütünlük doğrulama hatası alırsınız.

Başarısızlık bekleniyorsa (örneğin o sanal makine örneğine bir sistem güncellemesi uyguladıysanız) bütünlük politikası referansını güncellemeniz gerekir. Bütünlük politikası referansını güncellemek, referansı en son başlatma sırasından alınan ölçümlere ayarlar. Başarısızlık beklenmiyorsa bu sanal makine örneğini durdurmanız ve hatanın nedenini araştırmanız gerekir.

Bütünlük raporlarını Stackdriver Monitoring'de görüntüleyebilir ve bütünlük hataları için uyarılar ayarlayabilirsiniz. Bütünlük izleme sonuçlarının ayrıntılarını Stackdriver Logging'de inceleyebilirsiniz. Daha fazla bilgi için bkz. Korumalı Sanal Makine Örneklerinde Bütünlüğü İzleme.

Bütünlük izleme etkinlikleri

Korumalı Sanal Makine, aşağıdaki etkinlik türleri için günlük girişleri oluşturur:

  • clearTPMEvent: vTPM'nin temizlenip temizlenmediğini tanımlar. vTPM'nin temizlenmesi, içinde saklanan tüm gizli anahtarları siler. Bu, Korumalı Sanal Makine'nin herhangi bir özelliğini etkilemez. Bu nedenle bu işlem, sizi yalnızca Sanal Güvenilir Platform Modülü'nde (vTPM) açıklandığı gibi hassas verileri korumak için vTPM kullanıyorsanız ilgilendirir.
  • earlyBootReportEvent: Erken başlatma sırası bütünlüğünün denetimi geçip geçmediğini belirler ve karar vermek için karşılaştırılan referans ile en yeni başlatma sırasından PCR değeriyle ilgili ayrıntılar verir.
  • lateBootReportEvent: Geç başlatma sırası bütünlüğünün denetimi geçip geçmediğini belirler ve karar vermek için karşılaştırılan referans ile en yeni başlatma sırasından PCR değeriyle ilgili ayrıntılar verir.
  • setShieldedInstanceIntegrityPolicy: Bütünlük politikası referansını her güncellediğinizde günlüğe kaydedilir.
  • shutdownEvent: Sanal makine örneği her durdurulduğunda günlüğe kaydedilir.
  • startupEvent: Sanal makine örneği her başlatıldığında günlüğe kaydedilir. Bu etkinlikle ilgili dikkat çekici bilgi, bu örneğin kaç kez yeniden başlatıldığını tanımlayan bootCounter değeridir.
  • updateShieldedInstanceConfig: Korumalı Sanal Makine seçeneklerinden birini etkinleştirdiğinizde veya devre dışı bıraktığınızda günlüğe kaydedilir.

Günlüklerde gördüğünüz tipik etkinlik ilerlemesi, aynı sanal makine örneği başlatma sırasını tanımlamak için hepsi aynı bootCounter değerine sahip olan startupEvent, earlyBootReportEvent, lateBootReportEvent ve son olarak shutdownEvent etkinliklerini görürsünüz.

Bir sanal makine örneğinde beklenen bütünlük hatasına yanıt olarak bütünlük politikası referansını güncellerseniz yeni bütünlük politikası referans ölçümlerini tanımlayan ek earlyBootReportEvent ve lateBootReportEvent olaylarını görürsünüz. Aşağıdaki örnek beklenen sırayı göstermektedir:

  • startupEvent
  • Orijinal referansı en son başlatma sırasıyla karşılaştıran earlyBootReportEvent (başarılı)
  • Orijinal referansı en son başlatma sırasıyla karşılaştıran lateBootReportEvent (başarısız)
  • Referansı, en son başlatma sırasından aldığı ölçümlere ayarlayan bütünlük politikası referansını güncellediğinizde setShieldedInstanceIntegrityPolicy
  • Yeni referansı en son başlatma sırasıyla karşılaştıran earlyBootReportEvent (başarılı)
  • Yeni referansı en son başlatma sırasıyla karşılaştıran lateBootReportEvent (başarılı)

Windows

earlyBootReportEvent

earlyBootReportEvent içindeki önemli bilgiler, aşağıdaki bölümleri ve öğeleri içeren earlyBootReportEvent bölümünde yer alır:

  • actualMeasurements: En son başlatma sırası için platform yapılandırma kaydı (PCR) değerlerini içerir. PCR değerleri, başlatma bileşenlerini ve son başlatma sırası tarafından kullanılan bileşen yük sırasını tanımlayan değerlerdir. Ayrıca, sanal makine örneği başlatma sırasında herhangi bir değişiklik olup olmadığını belirlemek için bütünlük politikası referansıyla (değerleri policyMeasurements bölümünde saklanır) karşılaştırılan değerlerdir. actualMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: UEFI başlatma yöneticisi kodu ve başlatma denemeleri hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Diskin GUID bölümü tablosu hakkında bilgilerin bulunduğu PCR5 değerini içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 3: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.
  • policyEvaluationPassed: Başlatma sırasının belirli bir bölümünün bütünlük politikası referansına göre doğrulamadan geçip geçmediğini belirler.

  • policyMeasurements: Bütünlük politikası referansı için PCR değerlerini içerir. policyMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: UEFI başlatma yöneticisi kodu ve başlatma denemeleri hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.

Başlatma bütünlüğü doğrulama hatasını tanılamak amacıyla earlyBootReportEvent PCR değerlerinin nasıl kullanılacağını öğrenmek için bkz. Başlatma bütünlüğü doğrulama hatasının nedenini belirleme.

lateBootReportEvent

lateBootReportEvent içindeki önemli bilgiler, aşağıdaki bölümleri ve öğeleri içeren lateBootReportEvent bölümündedir:

  • actualMeasurements: En son başlatma sırası için platform yapılandırma kaydı (PCR) değerlerini içerir. PCR değerleri, başlatma bileşenlerini ve son başlatma sırası tarafından kullanılan bileşen yük sırasını tanımlayan değerlerdir. Ayrıca, sanal makine örneği başlatma sırasında herhangi bir değişiklik olup olmadığını belirlemek için bütünlük politikası referansıyla (değerleri policyMeasurements bölümünde saklanır) karşılaştırılan değerlerdir. actualMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: UEFI başlatma yöneticisi kodu ve başlatma denemeleri hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Diskin GUID bölümü tablosu hakkında bilgilerin bulunduğu PCR5 değerini içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 3: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.
    • 4: BitLocker Sürücü Şifreleme erişimi kontrolü hakkında bilgilerin bulunduğu PCR11 değerini içerir.
    • 5: Veri etkinlikleri hakkında bilgilerin bulunduğu PCR12 değerini içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 6: Windows çekirdeği ve başlatma sürücüleri hakkında bilgilerin bulunduğu PCR13 değerini içerir.
    • 7: Windows başlatma yetkilileri hakkında bilgilerin bulunduğu PCR14 değerini içerir.
  • policyEvaluationPassed: Başlatma sırasının belirli bir bölümünün bütünlük politikası referansına göre doğrulamadan geçip geçmediğini belirler.

  • policyMeasurements: Bütünlük politikası referansı için PCR değerlerini içerir. policyMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: UEFI başlatma yöneticisi kodu ve başlatma denemeleri hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.
    • 3: BitLocker Sürücü Şifreleme erişimi kontrolü hakkında bilgilerin bulunduğu PCR11 değerini içerir.
    • 4: Windows çekirdeği ve başlatma sürücüleri hakkında bilgilerin bulunduğu PCR13 değerini içerir.
    • 5: Windows başlatma yetkilileri hakkında bilgilerin bulunduğu PCR14 değerini içerir.

Başlatma bütünlüğü doğrulama hatasını tanılamak amacıyla lateBootReportEvent PCR değerlerinin nasıl kullanılacağını öğrenmek için bkz. Başlatma bütünlüğü doğrulama hatasının nedenini belirleme.

Linux

earlyBootReportEvent

earlyBootReportEvent içindeki önemli bilgiler, aşağıdaki bölümleri ve öğeleri içeren earlyBootReportEvent bölümünde yer alır:

  • actualMeasurements: En son başlatma sırası için platform yapılandırma kaydı (PCR) değerlerini içerir. PCR değerleri, başlatma bileşenlerini ve son başlatma sırası tarafından kullanılan bileşen yük sırasını tanımlayan değerlerdir. Ayrıca, sanal makine örneği başlatma sırasında herhangi bir değişiklik olup olmadığını belirlemek için bütünlük politikası referansıyla (değerleri policyMeasurements bölümünde saklanır) karşılaştırılan değerlerdir. actualMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: İşletim sistemi dolgusu hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Diskin GUID bölümü tablosu hakkında bilgilerin bulunduğu PCR5 değerini içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 3: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.
  • policyEvaluationPassed: Başlatma sırasının belirli bir bölümünün bütünlük politikası referansına göre doğrulamadan geçip geçmediğini belirler.

  • policyMeasurements: Bütünlük politikası referansı için PCR değerlerini içerir. policyMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: İşletim sistemi dolgusu hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.

Başlatma bütünlüğü doğrulama hatasını tanılamak amacıyla earlyBootReportEvent PCR değerlerinin nasıl kullanılacağını öğrenmek için bkz. Başlatma bütünlüğü doğrulama hatasının nedenini belirleme.

lateBootReportEvent

lateBootReportEvent içindeki önemli bilgiler, aşağıdaki bölümleri ve öğeleri içeren lateBootReportEvent bölümündedir:

  • actualMeasurements: En son başlatma sırası için platform yapılandırma kaydı (PCR) değerlerini içerir. PCR değerleri, başlatma bileşenlerini ve son başlatma sırası tarafından kullanılan bileşen yük sırasını tanımlayan değerlerdir. Ayrıca, sanal makine örneği başlatma sırasında herhangi bir değişiklik olup olmadığını belirlemek için bütünlük politikası referansıyla (değerleri policyMeasurements bölümünde saklanır) karşılaştırılan değerlerdir. actualMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: İkinci aşama başlatma yükleyicisi ve çekirdek hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Diskin GUID bölümü tablosu hakkında bilgilerin bulunduğu PCR5 değerini içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 3: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.
  • policyEvaluationPassed: Başlatma sırasının belirli bir bölümünün bütünlük politikası referansına göre doğrulamadan geçip geçmediğini belirler.

  • policyMeasurements: Bütünlük politikası referansı için PCR değerlerini içerir. policyMeasurements bölümü aşağıdaki öğeleri içerir:

    • 0: Donanım yazılımı bileşenleri hakkında bilgilerin bulunduğu PCR0 değerini içerir. Bu PCR uygulanmaz ve bunun yerine statik bir değer içerir. Bütünlük politikası referansına göre en son başlatma sırasını doğrularken kullanılmaz.
    • 1: İkinci aşama başlatma yükleyicisi ve çekirdek hakkında bilgilerin bulunduğu PCR4 değerini içerir.
    • 2: Örneğin Güvenli Başlatma politikası hakkında bilgilerin bulunduğu PCR7 değerini içerir.

Başlatma bütünlüğü doğrulama hatasını tanılamak amacıyla lateBootReportEvent PCR değerlerinin nasıl kullanılacağını öğrenmek için bkz. Başlatma bütünlüğü doğrulama hatasının nedenini belirleme.

Cloud Identity and Access Management yetkilendirmesi

Korumalı Sanal Makine, yetkilendirme için Cloud IAM kullanır.

Korumalı Sanal Makine işlemleri, aşağıdaki Compute Engine izinlerini kullanır:

  • compute.instances.updateShieldedInstanceConfig: Kullanıcının bir sanal makine örneğindeki Korumalı Sanal Makine seçeneklerini değiştirmesine izin verir.
  • compute.instances.setShieldedInstanceIntegrityPolicy: Kullanıcının bir sanal makine örneğindeki bütünlük politikası referansını güncellemesini sağlar.
  • compute.instances.getShieldedInstanceIdentity: Kullanıcının onay anahtarı bilgilerini vTPM'den almasına izin verir.

Korumalı Sanal Makine izinleri aşağıdaki Compute Engine rollerine verilir:

  • roles/compute.instanceAdmin.v1
  • roles/compute.securityAdmin

Özel rollere de Korumalı Sanal Makine izinleri verebilirsiniz.

Korumalı Sanal Makine için kuruluş politikası kısıtlamaları

Kuruluşunuzdaki Compute Engine Sanal Makine örneklerinin, Korumalı Sanal Makine örnekleri olmasını sağlamak için constraints/compute.requireShieldedVm kuruluş politikası kısıtlamasını, True olarak ayarlayabilirsiniz.

constraints/compute.requireShieldedVm kısıtlamasını Kuruluş politikasında boole kısıtlamaları kullanma sayfasından nasıl ayarlayacağınızı öğrenin. Bir kısıtlama ayarlamak için kuruluş politikası yöneticisi olmanız gerekir.

Sonraki adım

Bu sayfayı yararlı buldunuz mu? Lütfen görüşünüzü bildirin:

Şunun hakkında geri bildirim gönderin...