Bagikan melalui


Daftarkan komputer dengan Host Guardian Service

Berlaku untuk: SQL Server 2019 (15.x) dan yang lebih baru - Hanya Windows

Artikel ini menjelaskan cara mendaftarkan komputer SQL Server untuk membuktikan dengan Host Guardian Service (HGS).

Catatan

Proses mendaftarkan SQL Server dengan HGS memerlukan upaya bersama administrator HGS dan administrator komputer SQL Server. Lihat Peran dan tanggung jawab saat mengonfigurasi pengesahan dengan HGS.

Sebelum memulai, pastikan Anda telah menyebarkan setidaknya satu komputer HGS dan menyiapkan layanan pengesahan HGS. Untuk informasi selengkapnya, lihat Menyebarkan Layanan Wali Host untuk SQL Server.

Langkah 1: Instal komponen klien pengesahan

Catatan

Langkah ini harus dilakukan oleh administrator komputer SQL Server.

Untuk memungkinkan klien SQL memverifikasi bahwa klien berbicara dengan komputer SQL Server yang dapat dipercaya, komputer SQL Server harus berhasil membuktikan dengan Layanan Wali Host. Proses pengesahan dikelola oleh komponen Windows opsional yang disebut Klien HGS. Langkah-langkah di bawah ini akan membantu Anda menginstal komponen ini dan mulai membuktikan.

  1. Pastikan komputer SQL Server memenuhi prasyarat yang diuraikan dalam dokumen perencanaan HGS.

  2. Jalankan perintah berikut di konsol PowerShell yang ditinggikan untuk menginstal fitur Dukungan Hyper-V Host Guardian, yang berisi Klien HGS dan komponen pengesahan.

    Enable-WindowsOptionalFeature -Online -FeatureName HostGuardian -All
    
  3. Mulai ulang untuk menyelesaikan penginstalan.

Langkah 2: Verifikasi keamanan berbasis virtualisasi sedang berjalan

Catatan

Langkah ini harus dilakukan oleh administrator komputer SQL Server.

Saat Anda menginstal fitur Dukungan Hyper-V Host Guardian, keamanan berbasis virtualisasi (VBS) secara otomatis dikonfigurasi dan diaktifkan. Enklave untuk SQL Server Always Encrypted dilindungi oleh dan dijalankan di dalam lingkungan VBS. VBS mungkin tidak dimulai jika komputer tidak memiliki perangkat IOMMU yang diinstal dan diaktifkan. Untuk memeriksa apakah VBS berjalan, buka alat Informasi Sistem dengan menjalankan msinfo32.exe dan menemukan Virtualization-based security item di bagian bawah Ringkasan Sistem.

System Information screenshot showing virtualization-based security status and configuration

Item pertama yang harus diperiksa adalah Virtualization-based security, yang dapat memiliki tiga nilai berikut:

  • Running berarti VBS dikonfigurasi dengan benar dan berhasil dimulai. Jika komputer memperlihatkan status ini, Anda dapat melompat ke Langkah 3.
  • Enabled but not running berarti VBS dikonfigurasi untuk dijalankan, tetapi perangkat keras tidak memiliki persyaratan keamanan minimum untuk menjalankan VBS. Anda mungkin perlu mengubah konfigurasi perangkat keras di BIOS atau UEFI untuk mengaktifkan fitur prosesor opsional seperti IOMMU atau, jika perangkat keras benar-benar tidak mendukung fitur yang diperlukan, Anda mungkin perlu menurunkan persyaratan keamanan VBS. Lanjutkan membaca bagian ini untuk mempelajari lebih lanjut.
  • Not enabled berarti VBS tidak dikonfigurasi untuk dijalankan. Fitur Dukungan Hyper-V Host Guardian secara otomatis mengaktifkan VBS, jadi disarankan agar Anda mengulangi langkah 1 jika Anda melihat status ini.

Jika VBS tidak berjalan di komputer, periksa Virtualization-based security properti. Bandingkan nilai dalam Required Security Properties item dengan nilai dalam Available Security Properties item. Properti yang diperlukan harus sama dengan atau subset properti keamanan yang tersedia untuk dijalankan VBS.

Dalam konteks membuktikan enklave SQL Server, properti keamanan memiliki kepentingan berikut:

  • Base virtualization support selalu diperlukan, karena mewakili fitur perangkat keras minimum yang diperlukan untuk menjalankan hypervisor.
  • Secure Boot disarankan tetapi tidak diperlukan untuk SQL Server Always Encrypted. Boot Aman melindungi dari rootkit dengan mengharuskan bootloader yang ditandatangani Microsoft untuk segera berjalan setelah inisialisasi UEFI selesai. Jika Anda menggunakan pengesahan Modul Platform Tepercaya (TPM), pengaktifan Boot Aman akan diukur dan diberlakukan terlepas dari apakah VBS dikonfigurasi untuk memerlukan Boot Aman.
  • DMA Protection disarankan tetapi tidak diperlukan untuk SQL Server Always Encrypted. Perlindungan DMA menggunakan IOMMU untuk melindungi VBS dan memori enklave dari serangan akses memori langsung. Di lingkungan produksi, Anda harus selalu menggunakan komputer dengan perlindungan DMA. Di lingkungan dev/test, tidak apa-apa untuk menghapus persyaratan untuk perlindungan DMA. Jika instans SQL Server divirtualisasi, Kemungkinan besar Anda tidak akan memiliki perlindungan DMA yang tersedia dan perlu menghapus persyaratan agar VBS berjalan. Tinjau model kepercayaan untuk informasi tentang jaminan keamanan yang diturunkan saat berjalan di VM.

Sebelum menurunkan fitur keamanan yang diperlukan VBS, tanyakan kepada OEM atau penyedia layanan cloud Anda untuk mengonfirmasi apakah ada cara untuk mengaktifkan persyaratan platform yang hilang di UEFI atau BIOS (misalnya, mengaktifkan Boot Aman, Intel VT-d atau AMD IOV).

Untuk mengubah fitur keamanan platform yang diperlukan untuk VBS, jalankan perintah berikut di konsol PowerShell yang ditinggikan:

# Value 0 = No security features required
# Value 1 = Only Secure Boot is required
# Value 2 = Only DMA protection is required (default configuration)
# Value 3 = Both Secure Boot and DMA protection are required
Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name RequirePlatformSecurityFeatures -Value 0

Setelah mengubah registri, mulai ulang komputer SQL Server dan periksa apakah VBS berjalan lagi.

Jika komputer dikelola oleh perusahaan Anda, Kebijakan Grup, atau Microsoft Endpoint Manager dapat mengambil alih perubahan apa pun yang Anda buat pada kunci registri ini setelah memulai ulang. Hubungi staf dukungan TI Anda untuk melihat apakah mereka menyebarkan kebijakan yang mengelola konfigurasi VBS Anda.

Langkah 3: Mengonfigurasi URL pengesahan

Catatan

Langkah ini harus dilakukan oleh administrator komputer SQL Server.

Selanjutnya, Anda akan mengonfigurasi komputer SQL Server dengan URL untuk layanan pengesahan HGS yang telah Anda peroleh dari administrator HGS.

Di konsol PowerShell yang ditingkatkan, perbarui dan jalankan perintah berikut untuk mengonfigurasi URL pengesahan.

  • Ganti hgs.bastion.local dengan nama kluster HGS
  • Anda dapat menjalankan Get-HgsServer komputer HGS apa pun untuk mendapatkan nama kluster
  • URL pengesahan harus selalu diakhir dengan /Attestation
  • SQL Server tidak memanfaatkan fitur perlindungan utama HGS, jadi berikan URL dummy apa pun seperti http://localhost-KeyProtectionServerUrl
Set-HgsClientConfiguration -AttestationServerUrl "https://hgs.bastion.local/Attestation" -KeyProtectionServerUrl "http://localhost"

Kecuali Anda telah mendaftarkan mesin ini dengan HGS sebelumnya, perintah melaporkan kegagalan pengesahan. Hasil ini normal.

Bidang AttestationMode dalam output cmdlet menunjukkan mode pengesahan mana yang digunakan HGS.

Lanjutkan ke Langkah 4A untuk mendaftarkan komputer dalam mode TPM atau Langkah 4B untuk mendaftarkan komputer dalam mode kunci host.

Langkah 4A: Mendaftarkan komputer dalam mode TPM

Catatan

Langkah ini dilakukan bersama-sama oleh administrator komputer SQL Server dan administrator HGS. Lihat catatan di bawah ini untuk detailnya.

Siapkan

Catatan

Tindakan ini harus dilakukan oleh administrator komputer SQL Server.

Dalam langkah ini, Anda mengumpulkan informasi tentang status TPM komputer dan mendaftarkannya dengan HGS.

Jika layanan pengesahan HGS dikonfigurasi untuk menggunakan mode kunci host, lewati ke Langkah 4B sebagai gantinya.

Sebelum Anda mulai mengumpulkan pengukuran TPM, pastikan Anda mengerjakan konfigurasi komputer SQL Server yang diketahui baik. Komputer harus menginstal semua perangkat keras yang diperlukan dan pembaruan firmware dan perangkat lunak terbaru diterapkan. HGS mengukur komputer terhadap garis besar ini ketika mereka membuktikan, jadi penting untuk berada dalam keadaan yang paling aman dan dimaksudkan saat mengumpulkan pengukuran TPM.

Ada tiga file data yang dikumpulkan untuk pengesahan TPM, beberapa di antaranya dapat digunakan kembali jika Anda memiliki komputer yang dikonfigurasi secara identik.

Artefak pengesahan Apa yang diukurnya Keunikan
Pengidentifikasi platform Kunci dukungan publik di TPM komputer dan sertifikat kunci dukungan dari produsen TPM. 1 untuk setiap komputer
Garis besar TPM Kontrol platform mendaftar (PCR) di TPM yang mengukur konfigurasi firmware dan OS yang dimuat selama proses boot. Contohnya termasuk status Boot Aman dan apakah crash dump dienkripsi. Satu garis besar per konfigurasi komputer unik (perangkat keras dan perangkat lunak yang identik dapat menggunakan garis besar yang sama)
Kebijakan integritas kode Kebijakan Kontrol Aplikasi Pertahanan Windows yang Anda percayai untuk melindungi komputer Satu per kebijakan CI unik yang disebarkan ke komputer.

Anda dapat mengonfigurasi lebih dari satu dari setiap artefak pengesahan pada HGS untuk mendukung armada campuran perangkat keras dan perangkat lunak. HGS hanya mengharuskan komputer membuktikan cocok dengan satu kebijakan dari setiap kategori kebijakan. Misalnya, jika Anda memiliki tiga garis besar TPM yang terdaftar di HGS, pengukuran komputer dapat cocok dengan salah satu garis besar tersebut untuk memenuhi persyaratan kebijakan.

Mengonfigurasi kebijakan integritas kode

Catatan

Langkah-langkah di bawah ini harus dilakukan oleh administrator komputer SQL Server.

HGS mengharuskan setiap komputer yang membuktikan dalam mode TPM memiliki kebijakan Windows Defender Application Control (WDAC) yang diterapkan. Kebijakan integritas kode WDAC membatasi perangkat lunak mana yang dapat berjalan di komputer dengan memeriksa setiap proses yang mencoba menjalankan kode terhadap daftar penerbit tepercaya dan hash file. Untuk kasus penggunaan SQL Server, enklave dilindungi oleh keamanan berbasis virtualisasi dan tidak dapat dimodifikasi dari OS host, sehingga ketatnya kebijakan WDAC tidak memengaruhi keamanan kueri terenkripsi. Dengan demikian, disarankan agar Anda menyebarkan kebijakan mode audit ke komputer SQL Server untuk memenuhi persyaratan pengesahan tanpa memberlakukan pembatasan tambahan pada sistem.

Jika Anda sudah menggunakan kebijakan integritas kode WDAC kustom di komputer untuk mengeraskan konfigurasi OS, Anda dapat melompat ke Mengumpulkan informasi pengesahan TPM.

  1. Ada contoh kebijakan yang telah dibuat sebelumnya yang tersedia di setiap Windows Server 2019, Windows 10 versi 1809, dan sistem operasi yang lebih baru. Kebijakan ini AllowAll memungkinkan perangkat lunak apa pun berjalan pada komputer tanpa batasan. Konversikan kebijakan ke formulir biner yang dipahami oleh OS dan HGS untuk menggunakannya. Di konsol PowerShell yang ditingkatkan, jalankan perintah berikut untuk mengkompilasi AllowAll kebijakan:

    # We are changing the policy to disable enforcement and user mode code protection before compiling
    $temppolicy = "$HOME\Desktop\allowall_edited.xml"
    Copy-Item -Path "$env:SystemRoot\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml" -Destination $temppolicy
    Set-RuleOption -FilePath $temppolicy -Option 0 -Delete
    Set-RuleOption -FilePath $temppolicy -Option 3
    
    ConvertFrom-CIPolicy -XmlFilePath $temppolicy -BinaryFilePath "$HOME\Desktop\allowall_cipolicy.bin"
    
  2. Ikuti panduan dalam panduan penyebaran Kontrol Aplikasi Pertahanan Windows untuk menyebarkan allowall_cipolicy.bin file ke komputer SQL Server menggunakan Kebijakan Grup. Untuk komputer grup kerja, ikuti proses yang sama menggunakan Editor Kebijakan Grup Lokal (gpedit.msc).

  3. Jalankan gpupdate /force pada komputer SQL Server untuk mengonfigurasi kebijakan integritas kode baru, lalu mulai ulang komputer untuk menerapkan kebijakan.

Mengumpulkan informasi pengesahan TPM

Catatan

Langkah-langkah di bawah ini harus dilakukan oleh administrator komputer SQL Server.

Ulangi langkah-langkah berikut untuk setiap komputer SQL Server yang akan membuktikan dengan HGS:

  1. Dengan komputer dalam status dikenal baik, jalankan perintah berikut di PowerShell untuk mengumpulkan informasi pengesahan TPM:

    # Collects the TPM EKpub and EKcert
    $name = $env:computername
    $path = "$HOME\Desktop"
    (Get-PlatformIdentifier -Name $name).Save("$path\$name-EK.xml")
    
    # Collects the TPM baseline (current PCR values)
    Get-HgsAttestationBaselinePolicy -Path "$path\$name.tcglog" -SkipValidation
    
    # Collects the applied CI policy, if one exists
    Copy-Item -Path "$env:SystemRoot\System32\CodeIntegrity\SIPolicy.p7b" -Destination "$path\$name-CIpolicy.bin"
    
  2. Bagikan tiga file pengesahan dengan administrator HGS.

Mendaftarkan komputer SQL Server dengan HGS

Catatan

Langkah-langkah di bawah ini harus dilakukan oleh administrator HGS.

Ulangi langkah-langkah berikut untuk setiap komputer SQL Server yang akan membuktikan dengan HGS:

  1. Salin file pengesahan, yang Anda peroleh dari administrator komputer SQL Server ke server HGS.

  2. Di server HGS, jalankan perintah berikut di konsol PowerShell yang ditinggikan untuk mendaftarkan komputer SQL Server:

    # TIP: REMEMBER TO CHANGE THE FILENAMES
    # Registers the unique TPM with HGS (required for every computer)
    Add-HgsAttestationTpmHost -Path "C:\temp\SQL01-EK.xml"
    
    # Registers the TPM baseline (required ONCE for each unique hardware and software configuration)
    Add-HgsAttestationTpmPolicy -Name "MyHWSoftwareConfig" -Path "C:\temp\SQL01.tcglog"
    
    # Registers the CI policy (required ONCE for each unique CI policy)
    Add-HgsAttestationCiPolicy -Name "AllowAll" -Path "C:\temp\SQL01-CIpolicy.bin"
    

    Tip

    Jika Anda mengalami kesalahan saat mencoba mendaftarkan pengidentifikasi TPM unik, pastikan Anda mengimpor sertifikat menengah dan akar TPM di komputer HGS yang Anda gunakan.

Selain pengidentifikasi platform, garis besar TPM, dan kebijakan integritas kode, ada kebijakan bawaan yang dikonfigurasi dan diberlakukan oleh HGS yang mungkin perlu Anda ubah. Kebijakan bawaan ini diukur dari garis besar TPM yang Anda kumpulkan dari server dan mewakili berbagai pengaturan keamanan yang harus diaktifkan untuk melindungi komputer. Jika Anda memiliki komputer yang tidak memiliki IOMMU yang ada untuk melindungi dari serangan DMA (misalnya, VM), Anda harus menonaktifkan kebijakan IOMMU.

Untuk menonaktifkan persyaratan IOMMU, jalankan perintah berikut di server HGS:

Disable-HgsAttestationPolicy Hgs_IommuEnabled

Catatan

Jika Anda menonaktifkan kebijakan IOMMU, IOMMUs tidak akan diperlukan untuk komputer apa pun yang membuktikan dengan HGS. Tidak dimungkinkan untuk menonaktifkan kebijakan IOMMU hanya untuk satu komputer.

Anda dapat meninjau daftar host dan kebijakan TPM terdaftar dengan perintah PowerShell berikut:

Get-HgsAttestationTpmHost
Get-HgsAttestationTpmPolicy

Langkah 4B: Mendaftarkan komputer dalam mode kunci host

Catatan

Langkah ini dilakukan bersama-sama oleh administrator komputer SQL Server dan administrator HGS. Lihat catatan di bawah ini untuk detailnya.

Langkah ini akan memandu Anda melalui proses untuk menghasilkan kunci unik untuk host dan mendaftarkannya dengan HGS. Jika layanan pengesahan HGS dikonfigurasi untuk menggunakan mode TPM, ikuti panduan di Langkah 4A sebagai gantinya.

Membuat kunci untuk komputer SQL Server

Catatan

Bagian ini harus dilakukan bersama-sama oleh administrator komputer SQL Server.

Pengesahan kunci host berfungsi dengan menghasilkan pasangan kunci asimetris pada komputer SQL Server dan menyediakan HGS dengan setengah publik dari kunci tersebut.

Ulangi langkah-langkah berikut untuk setiap komputer SQL Server yang akan membuktikan dengan HGS:

  1. Untuk menghasilkan pasangan kunci, jalankan perintah berikut di konsol PowerShell yang ditingkatkan:

    Set-HgsClientHostKey
    Get-HgsClientHostKey -Path "$HOME\Desktop\$env:computername-key.cer"
    

    Jika Anda telah membuat kunci host dan ingin membuat pasangan kunci baru, gunakan perintah berikut sebagai gantinya:

    Remove-HgsClientHostKey
    Set-HgsClientHostKey
    Get-HgsClientHostKey -Path "$HOME\Desktop\$env:computername-key.cer"
    
  2. Bagikan file sertifikat dengan administrator HGS.

Mendaftarkan komputer SQL Server dengan HGS

Catatan

Langkah-langkah di bawah ini harus dilakukan oleh administrator HGS.

Ulangi langkah-langkah berikut untuk setiap komputer SQL Server yang akan membuktikan dengan HGS:

  1. Salin file sertifikat, yang Anda peroleh dari administrator komputer SQL Server, ke server HGS.

  2. Jalankan perintah berikut di konsol PowerShell yang ditinggikan untuk mendaftarkan komputer SQL Server:

    Add-HgsAttestationHostKey -Name "YourComputerName" -Path "C:\temp\yourcomputername.cer"
    

Langkah 5: Mengonfirmasi bahwa host berhasil membuktikan

Catatan

Langkah ini harus dilakukan oleh administrator komputer SQL Server.

Setelah Anda mendaftarkan komputer SQL Server dengan HGS (Langkah 4A untuk mode TPM, Langkah 4B untuk mode kunci host), Anda harus mengonfirmasi bahwa komputer tersebut berhasil membuktikan.

Anda dapat memeriksa konfigurasi klien pengesahan HGS dan melakukan upaya pengesahan kapan saja dengan Get-HgsClientConfiguration.

Output perintah akan terlihat mirip dengan di bawah ini:

PS C:\> Get-HgsClientConfiguration


IsHostGuarded                  : True
Mode                           : HostGuardianService
KeyProtectionServerUrl         : http://localhost
AttestationServerUrl           : http://hgs.bastion.local/Attestation
AttestationOperationMode       : HostKey
AttestationStatus              : Passed
AttestationSubstatus           : NoInformation
FallbackKeyProtectionServerUrl :
FallbackAttestationServerUrl   :
IsFallbackInUse                : False

Dua bidang terpenting dalam output adalah AttestationStatus, yang memberi tahu Anda jika komputer melewati pengesahan, dan AttestationSubStatus, yang menjelaskan kebijakan mana yang gagal jika komputer gagal mengesahkan.

Nilai paling umum yang mungkin muncul dijelaskan di AttestationStatus bawah ini:

AttestationStatus Penjelasan
Kedaluwarsa Host melewati pengesahan sebelumnya, tetapi sertifikat kesehatan yang dikeluarkan telah kedaluwarsa. Pastikan waktu host dan HGS sinkron.
InsecureHostConfiguration Komputer tidak memenuhi satu atau beberapa kebijakan pengesahan yang dikonfigurasi di server HGS. Untuk informasi selengkapnya, lihat AttestationSubStatus .
Tidak Dikonfigurasi Komputer tidak dikonfigurasi dengan URL pengesahan. Mengonfigurasi URL pengesahan
Lulus Komputer melewati pengesahan dan dipercaya untuk menjalankan enklave SQL Server.
TransientError Upaya pengesahan gagal karena kesalahan sementara. Kesalahan ini biasanya berarti ada masalah saat menghubungi HGS melalui jaringan. Periksa koneksi jaringan dan pastikan komputer dapat menyelesaikan dan merutekan ke nama layanan HGS.
TpmError Perangkat TPM komputer melaporkan kesalahan selama upaya pengesahan. Periksa log TPM untuk informasi selengkapnya. Menghapus TPM dapat menyelesaikan masalah, tetapi berhati-hatilah untuk menangguhkan BitLocker dan layanan lain yang bergantung pada TPM sebelum menghapus TPM.
UnauthorizedHost Kunci host tidak diketahui oleh HGS. Ikuti instruksi di Langkah 4B untuk mendaftarkan komputer dengan HGS.

Ketika menampilkan AttestationStatusInsecureHostConfiguration, AttestationSubStatus bidang akan diisi dengan satu atau beberapa nama kebijakan yang gagal. Tabel di bawah ini menjelaskan nilai yang paling umum dan cara memulihkan kesalahan.

PengesahanSubStatus Apa artinya dan apa yang harus dilakukan
CodeIntegrityPolicy Kebijakan integritas kode di komputer tidak terdaftar di HGS atau komputer saat ini tidak menggunakan kebijakan integritas kode. Lihat Mengonfigurasi kebijakan integritas kode untuk panduan.
DumpsEnabled Komputer dikonfigurasi untuk mengizinkan crash dump, tetapi kebijakan Hgs_DumpsEnabled melarang pencadangan. Nonaktifkan cadangan pada komputer ini atau nonaktifkan kebijakan Hgs_DumpsEnabled untuk melanjutkan.
FullBoot Komputer dilanjutkan dari status tidur atau hibernasi, yang mengakibatkan perubahan pada pengukuran TPM. Hidupkan ulang komputer untuk menghasilkan pengukuran TPM yang bersih.
HibernationEnabled Komputer dikonfigurasi untuk mengizinkan hibernasi dengan file hibernasi yang tidak terenkripsi. Nonaktifkan hibernasi pada komputer untuk mengatasi masalah ini.
HypervisorEnforcedCodeIntegrityPolicy Komputer tidak dikonfigurasi untuk menggunakan kebijakan integritas kode. Periksa Kebijakan Grup atau Templat >> Administratif Konfigurasi > Komputer Kebijakan > Grup Lokal Aktifkan Perlindungan > Berbasis Virtualisasi Keamanan > Berbasis Virtualisasi Virtualisasi Integritas Kode. Item kebijakan ini harus "Diaktifkan tanpa kunci UEFI".
Iommu Komputer ini tidak mengaktifkan perangkat IOMMU. Jika komputer fisik, aktifkan IOMMU di menu konfigurasi UEFI. Jika ini adalah komputer virtual dan IOMMU tidak tersedia, jalankan Disable-HgsAttestationPolicy Hgs_IommuEnabled di server HGS.
SecureBoot Boot Aman tidak diaktifkan pada komputer ini. Aktifkan Boot Aman di menu konfigurasi UEFI untuk mengatasi kesalahan ini.
VirtualSecureMode Keamanan berbasis virtualisasi tidak berjalan pada komputer ini. Ikuti panduan di Langkah 2: Pastikan VBS berjalan di komputer.

Langkah berikutnya