Megosztás a következőn keresztül:


Védett kiszolgálók engedélyezése TPM-alapú igazolással

A TPM mód egy TPM-azonosítót (más néven platformazonosítót vagy ellenőrzőkulcsot [EKpub]) használ annak megállapításához, hogy egy adott gazdagép "védettként" van-e engedélyezve. Ez az igazolási mód biztonságos rendszerindítási és kódintegritási méréseket használ annak biztosítására, hogy egy adott Hyper-V gazdagép kifogástalan állapotban legyen, és csak megbízható kódot futtasson. Ahhoz, hogy az igazolás megértse, mi az, és mi nem egészséges, a következő összetevőket kell rögzítenie:

  1. TPM-azonosító (EKpub)

    • Az információk egyediek minden Hyper-V gazdagép számára.
  2. TPM alapkonfiguráció (rendszerindítási mérések)

    • Ez minden olyan Hyper-V gazdagépre vonatkozik, amely ugyanazon hardverosztályon fut
  3. Kódintegritási szabályzat (engedélyezett bináris fájlok engedélyezési listája)

    • Ez minden olyan Hyper-V gazdagépre vonatkozik, amely azonos hardveren és szoftveren osztozik.

Javasoljuk, hogy rögzítse az alapkonfigurációt és a CI-szabályzatot egy olyan "referencia-gazdagépről", amely az adatközponton belüli Hyper-V hardverkonfiguráció minden egyedi osztályára jellemző. A Windows Server 1709-es verziójától kezdődően a CI-mintaszabályzatok a C:\Windows\schemas\CodeIntegrity\ExamplePolicies webhelyen találhatók.

Verziószámozott igazolási szabályzatok

Windows Server 2019 introduces a new method for attestation, called v2 attestation, where a TPM certificate must be present in order to add the EKPub to HGS. A Windows Server 2016-ban használt v1-alapú igazolási módszer lehetővé tette, hogy felülbírálja ezt a biztonsági ellenőrzést úgy, hogy megadja a -Force jelzőt Add-HgsAttestationTpmHost vagy más TPM-igazolási parancsmagok futtatásakor az összetevők rögzítéséhez. A Windows Server 2019-től kezdődően a v2-igazolás alapértelmezés szerint használatos, és a -PolicyVersion v1 jelölőt kell megadnia a Add-HgsAttestationTpmHost futtatásakor, ha tanúsítvány nélkül kell regisztrálnia egy TPM-et. A -Force jelző nem működik a v2-igazolással.

A gazdagép csak akkor tud igazolni, ha az összes összetevő (EKPub + TPM alapkonfiguráció + CI-szabályzat) ugyanazt az igazolási verziót használja. Először a V2-igazolást próbálja ki a rendszer, és ha ez nem sikerül, akkor a rendszer v1-igazolást használ. Ez azt jelenti, hogy ha v1-igazolással kell regisztrálnia egy TPM-azonosítót, meg kell adnia az -PolicyVersion v1 jelölőt is, hogy v1-igazolást használjon a TPM alapkonfigurációjának rögzítésekor és a CI-szabályzat létrehozásakor. Ha a TPM alapvonal és a CI-szabályzat v2 igazolással lett létrehozva, majd később egy védett hosztot kell hozzáadnia TPM-tanúsítvány nélkül, újra kell létrehoznia minden artefaktumot a -PolicyVersion v1 jelző felhasználásával.

Rögzítse az egyes gazdagépek TPM-azonosítóját (platformazonosító vagy EKpub) pontosan.

  1. A szöveti tartományban győződjön meg arról, hogy az egyes gazdagépeken a TPM készen áll a használatra - azaz, a TPM inicializálva van, és a tulajdonjog megszerezve van. You can check the status of the TPM by opening the TPM Management Console (tpm.msc) or by running Get-Tpm in an elevated Windows PowerShell window. If your TPM is not in the Ready state, you will need to initialize it and set its ownership. This can be done in the TPM Management Console or by running Initialize-Tpm.

  2. Minden védett gazdagépen futtassa az alábbi parancsot egy Windows PowerShell-konzolon, emelt szintű jogosultságokkal, az EKpub megszerzéséhez. Az <HostName> egyedi gazdagép nevét cserélje le a gazdagép azonosítására alkalmas megfelelő névvel – ez lehet a gazdagép neve vagy a hálózati nyilvántartási szolgáltatás által használt név (ha létezik ilyen). Az egyszerűség kedvéért nevezze el a kimeneti fájlt a gazdagép nevével.

    (Get-PlatformIdentifier -Name '<HostName>').InnerXml | Out-file <Path><HostName>.xml -Encoding UTF8
    
  3. Ismételje meg az előző lépéseket minden olyan gazdagépnél, amely védett gazdagép lesz, és mindenképpen adjon egyedi nevet minden XML-fájlnak.

  4. Adja meg az eredményként kapott XML-fájlokat a HGS-rendszergazdának.

  5. A HGS-tartományban nyisson meg egy emelt szintű Windows PowerShell-konzolt egy HGS-kiszolgálón, és futtassa a következő parancsot. Ismételje meg a parancsot az egyes XML-fájlokhoz.

    Add-HgsAttestationTpmHost -Path <Path><Filename>.xml -Name <HostName>
    

    Note

    Ha hibát tapasztal egy nem megbízható ellenőrzőkulcs-tanúsítvány (EKCert) TPM-azonosítójának hozzáadásakor, győződjön meg arról, hogy a megbízható TPM-főtanúsítványok hozzá lettek adva a HGS-csomóponthoz. Emellett egyes TPM-szállítók nem használnak EKCerteket. Az EKCert hiányának ellenőrzéséhez nyissa meg az XML-fájlt egy szerkesztőben, például a Jegyzettömbben, és keressen egy hibaüzenetet, amely azt jelzi, hogy nem található EKCert. Ha ez a helyzet, és bízik benne, hogy a gép TPM-je hiteles, a -Force paraméter használatával hozzáadhatja a gazdagép azonosítóját a HGS-hez. A Windows Server 2019-ben a -PolicyVersion v1 használatakor a -Force paramétert is használnia kell. Ez egy, a Windows Server 2016 viselkedésének megfelelő szabályzatot hoz létre, és a CI-szabályzat és a TPM-alapkonfiguráció regisztrálásakor is szükség -PolicyVersion v1 lesz rá.

Kódintegritási szabályzat létrehozása és alkalmazása

A kódintegritási szabályzat segít biztosítani, hogy csak az Ön által megbízhatónak ítélt végrehajtható elemek futtatása legyen megengedett a gazdagépen. A megbízható végrehajtási fájlokon kívüli kártevők és egyéb végrehajtható fájlok futtatása meg van tiltva.

A védett gazdagépeknek kódintegritási szabályzattal kell rendelkezniük ahhoz, hogy védett virtuális gépeket futtathassanak TPM módban. A megbízható kódintegritási szabályzatokat úgy adhatja meg, hogy hozzáadja őket a HGS-hez. A kódintegritási szabályzatok konfigurálhatók a szabályzat kikényszerítésére, a szabályzatnak nem megfelelő szoftverek blokkolására vagy egyszerűen naplózásra (naplózhatók olyan események, amikor a szabályzatban nem definiált szoftverek végrehajtása megtörténik).

A Windows Server 1709-es verziójától kezdve a kódintegritási mintaszabályzatok a Windowshoz tartoznak a C:\Windows\schemas\CodeIntegrity\ExamplePolicies címen. Windows Server esetén két házirend használata javasolt:

  • AllowMicrosoft: Allows all files signed by Microsoft. Ez a szabályzat olyan kiszolgálói alkalmazásokhoz ajánlott, mint az SQL vagy az Exchange, vagy ha a kiszolgálót a Microsoft által közzétett ügynökök figyelik.
  • DefaultWindows_Enforced: Allows only files that shipped in Windows and doesn't permit other applications released by Microsoft, such as Office. Ez a szabályzat olyan kiszolgálók számára ajánlott, amelyek csak beépített kiszolgálói szerepköröket és olyan funkciókat futtatnak, mint a Hyper-V.

Javasoljuk, hogy először auditálási (naplózási) módban hozza létre a CI-házirendet, hogy lássa, hiányzik-e valami, majd érvényesítse a házirendet az éles környezetben futó gazdagép számítási feladatokhoz.

If you use the New-CIPolicy cmdlet to generate your own code integrity policy, you will need to decide the rule levels to use. We recommend a primary level of Publisher with fallback to Hash, which allows most digitally signed software to be updated without changing the CI policy. Az ugyanazon közzétevő által írt új szoftverek a CI-szabályzat módosítása nélkül is telepíthetők a kiszolgálón. A nem digitálisan aláírt végrehajtható fájlok kivonatolva lesznek. A fájlok frissítéséhez új CI-szabályzatot kell létrehoznia. Az elérhető CI-szabályzatszabály-szintekről további információt a kódintegritási szabályzatok üzembe helyezése: szabályzatszabályok, fájlszabályok és parancsmag súgója című témakörben talál.

  1. A referencia-gazdagépen hozzon létre egy új kódintegritási szabályzatot. The following commands create a policy at the Publisher level with fallback to Hash. Ezután az XML-fájlt bináris fájlformátumba konvertálja, amelyre a CI-szabályzat alkalmazásához a Windowsnak, illetve méréséhez a HGS-nek van szüksége.

    New-CIPolicy -Level Publisher -Fallback Hash -FilePath 'C:\temp\HW1CodeIntegrity.xml' -UserPEs
    
    ConvertFrom-CIPolicy -XmlFilePath 'C:\temp\HW1CodeIntegrity.xml' -BinaryFilePath 'C:\temp\HW1CodeIntegrity.p7b'
    

    Note

    A fenti parancs csak naplózási módban hoz létre CI-szabályzatot. Nem blokkolja a jogosulatlan bináris fájlok futtatását a gazdagépen. Csak kötelező érvényű szabályzatokat kell használnia éles környezetben.

  2. Tartsa meg a Kódintegritási szabályzatfájlt (XML-fájlt), ahol könnyen megtalálhatja. Később szerkesztenie kell ezt a fájlt a CI-szabályzat kényszerítéséhez, vagy egyesítenie kell a rendszer későbbi frissítéseinek módosításait.

  3. Alkalmazza a CI-szabályzatot a referencia-gazdagépre:

    1. Futtassa a következő parancsot a gép CI-szabályzatának használatára való konfigurálásához. You can also deploy the CI policy with Group Policy or System Center Virtual Machine Manager.

      Invoke-CimMethod -Namespace root/Microsoft/Windows/CI -ClassName PS_UpdateAndCompareCIPolicy -MethodName Update -Arguments @{ FilePath = "C:\temp\HW1CodeIntegrity.p7b" }
      
    2. Indítsa újra a gazdagépet a beállítások érvényesítéséhez.

  4. A kódintegritási szabályzat tesztelése egy tipikus számítási feladat futtatásával. Ez magában foglalhatja virtuális gépek, hálókezelési ügynökök, biztonsági mentési ügynökök vagy hibaelhárítási eszközök futtatását a gépen. Ellenőrizze, hogy vannak-e kódintegritási szabálysértések, és szükség esetén frissítse a CI-szabályzatot.

  5. Módosítsa a CI-szabályzatot kényszerített módra az alábbi parancsok futtatásával a frissített CI-házirend XML-fájlja ellen.

    Set-RuleOption -FilePath 'C:\temp\HW1CodeIntegrity.xml' -Option 3 -Delete
    
    ConvertFrom-CIPolicy -XmlFilePath 'C:\temp\HW1CodeIntegrity.xml' -BinaryFilePath 'C:\temp\HW1CodeIntegrity_enforced.p7b'
    
  6. Alkalmazza a CI-szabályzatot az összes gazdagépre (azonos hardver- és szoftverkonfigurációval) az alábbi parancsokkal:

    Invoke-CimMethod -Namespace root/Microsoft/Windows/CI -ClassName PS_UpdateAndCompareCIPolicy -MethodName Update -Arguments @{ FilePath = "C:\temp\HW1CodeIntegrity.p7b" }
    
    Restart-Computer
    

    Note

    Legyen óvatos, amikor CI-szabályzatokat alkalmaz a gazdagépekre, és amikor frissíti a szoftvereket ezeken a gépeken. A CI-szabályzatnak nem megfelelő kernel módú illesztőprogramok megakadályozhatják a gép indítását.

  7. Adja meg a bináris fájlt (ebben a példában HW1CodeIntegrity_enforced.p7b) a HGS-rendszergazdának.

  8. A HGS-tartományban másolja a kódintegritási szabályzatot egy HGS-kiszolgálóra, és futtassa a következő parancsot.

    Adja meg a <PolicyName> CI-házirend nevét, amely leírja, milyen típusú gazdagépre vonatkozik. Az ajánlott eljárás az, ha a gép make/modellje és a rajta futó speciális szoftverkonfiguráció után nevezik el. Adja meg a <Path> kódintegritási szabályzat elérési útját és fájlnevét.

    Add-HgsAttestationCIPolicy -Path <Path> -Name '<PolicyName>'
    

    Note

    Ha aláírt kódintegritási szabályzatot használ, regisztráljon ugyanannak a szabályzatnak egy aláíratlan példányát a HGS-ben. A kódintegritási szabályzatok aláírása a szabályzat frissítéseinek szabályozására szolgál, de nincs beépítve a gazdagép TPM-jébe, ezért a HGS nem tudja tanúsítani.

A TPM alapkonfigurációjának rögzítése az egyes egyedi hardverosztályokhoz

Az adatközpont-háló minden egyedi hardverosztályához TPM-alapkonfiguráció szükséges. Használjon ismét egy "referencia-gazdagépet".

  1. A referencia-gazdagépen győződjön meg arról, hogy a Hyper-V szerepkör és a Gazdagépőr Hyper-V támogatási funkció telepítve van.

    Warning

    A Gazdagépőr Hyper-V támogatási funkció lehetővé teszi a kódintegritás virtualizáláson alapuló védelmét, amely egyes eszközökkel nem kompatibilis. Javasoljuk, hogy a funkció engedélyezése előtt tesztelje ezt a konfigurációt a laborban. Ennek elmulasztása váratlan meghibásodásokhoz vezethet, beleértve az adatvesztést vagy a kék képernyős hibát (más néven leállási hiba).

    Install-WindowsFeature Hyper-V, HostGuardian -IncludeManagementTools -Restart
    
  2. Az alapkonfigurációs szabályzat rögzítéséhez futtassa az alábbi parancsot egy emelt szintű Windows PowerShell-konzolon.

    Get-HgsAttestationBaselinePolicy -Path 'HWConfig1.tcglog'
    

    Note

    You will need to use the -SkipValidation flag if the reference host does not have Secure Boot enabled, an IOMMU present, Virtualization Based Security enabled and running, or a code integrity policy applied. Ezeket az érvényesítéseket úgy tervezték, hogy tisztában legyenek a védett virtuális gépek gazdagépen való futtatásának minimális követelményeivel. A -SkipValidation jelző használata nem módosítja a parancsmag kimenetét; csupán elhallgattatja a hibákat.

  3. Adja meg a TPM alapkonfigurációját (TCGlog-fájlt) a HGS-rendszergazdának.

  4. A HGS-tartományban másolja a TCGlog fájlt egy HGS-kiszolgálóra, és futtassa a következő parancsot. A szabályzatot általában az általa képviselt hardverosztály után fogja elnevezni (például "Gyártó modellváltozat").

    Add-HgsAttestationTpmPolicy -Path <Filename>.tcglog -Name '<PolicyName>'
    

Next step