A Host Guardian Service hitelesítés megtervezése

A következőkre vonatkozik: SQL Server 2019 (15.x) és újabb verziók Windows rendszeren

Az igazolás egy munkafolyamat, amely lehetővé teszi, hogy az ügyfélalkalmazás ellenőrizze, hogy egy megbízható enklávéval lép kapcsolatba az SQL Server folyamaton belül, amikor az Always Encrypted funkciót biztonságos enklávékkal együtt használja.

Az SQL Serverben az Always Encrypted biztonságos enklávékkal virtualizációalapú biztonsági (VBS) enklávékat (más néven virtuális biztonságos módokat vagy VSM-enklávékat) használ– egy szoftveralapú technológia, amely Windows hipervizorra támaszkodik, és nem igényel speciális hardvert. A VBS-enklávé igazolása magában foglalja annak ellenőrzését, hogy az enklávéban lévő kód érvényes-e, és hogy az SQL Servert futtató számítógép megbízható-e. Az igazolás ezt a célt egy olyan harmadik fél bevezetésével éri el, amely képes ellenőrizni az SQL Server-számítógép identitását (és opcionálisan a konfigurációt). Ahhoz, hogy az SQL Server enklávéval futtathassa a lekérdezést, meg kell adnia az igazolási szolgáltatásnak az üzemeltetési környezetével kapcsolatos információkat egy állapottanúsítvány beszerzéséhez. Ezt az állapottanúsítványt ezután a rendszer elküldi az ügyfélnek, amely függetlenül ellenőrizheti annak hitelességét az igazolási szolgáltatással. Miután az ügyfél megbízik a biztonsági tanúsítványban, tudja, hogy megbízható VBS-enklávéval van dolga, és kiadja a lekérdezést, amely azt az enklávét fogja használni.

Az igazolás kritikus fontosságú a rosszindulatú operációsrendszer-rendszergazdák támadásainak észleléséhez, például az enklávén belül futó SQL Server-kódtár illetéktelen beavatkozásával járó támadásokhoz. Ha nem aggódik az ilyen támadások miatt (például az Always Encrypted funkciót biztonságos enklávékkal használja egy nem éles környezetben), tekintse meg az Always Encrypted biztonságos enklávékkal való, attesztáció nélküli használatának tervezését az SQL Serveren.

A Host Guardian Service (HGS) szerepkör a Windows Server 2019 vagy újabb verzióiban távoli igazolási képességeket biztosít az Always Encrypted és a VBS enclaves számára. Ez a cikk végigvezeti az Always Encrypted VBS-enklávékkal és HGS-igazolásokkal való használatához szükséges üzembe helyezés előtti döntéseken és követelményeken.

Megjegyzés:

Ha az SQL Server üzembe helyezése egy virtuális gépen történik, a VBS-enklávék segítenek megvédeni az adatokat a virtuális gépen belüli támadásoktól. Azonban nem nyújtanak védelmet a gazdagépről származó emelt szintű rendszerfiókokat használó támadások ellen. Például a gazdagépen létrehozott virtuális gép memóriakivonata tartalmazhatja az enklávé memóriáját.

Az architektúra áttekintése

A Host Guardian szolgáltatás (HGS) egy klaszterezett webszolgáltatás, amely Windows Server 2019 vagy újabb rendszeren fut. Egy tipikus üzemelő példányban 1–3 HGS-kiszolgáló, legalább egy SQL Servert futtató számítógép, valamint egy ügyfélalkalmazást vagy -eszközt futtató számítógép lesz, például az SQL Server Management Studio. Mivel a HGS felelős az SQL Servert futtató számítógépek megbízhatóságának meghatározásáért, fizikai és logikai elkülönítést is igényel az általa védett SQL Server-példánytól. Ha ugyanezek a rendszergazdák hozzáférnek a HGS-hez és egy SQL Server-számítógéphez, konfigurálhatják az igazolási szolgáltatást úgy, hogy lehetővé tegyék a rosszindulatú számítógépek számára az SQL Server futtatását, így veszélyeztethetik a VBS-enklávét.

HGS-tartomány

A HGS beállítása automatikusan létrehoz egy új Active Directory-tartományt a HGS-kiszolgálókhoz, a feladatátvevő fürt erőforrásaihoz és a rendszergazdai fiókokhoz.

Az SQL Servert futtató számítógépnek nem kell tartományon belül lennie, de ha igen, akkor más tartománynak kell lennie, mint amelyet a HGS-kiszolgáló használ.

Magas szintű rendelkezésre állás

A HGS szolgáltatás automatikusan telepíti és konfigurálja a feladatátvevő fürtöt. Éles környezetben ajánlott három HGS-kiszolgálót használni a magas rendelkezésre állás érdekében. A fürt kvórumának meghatározásával és az alternatív konfigurációkkal kapcsolatos részletekért tekintse meg az átkapcsolási fürt dokumentációját, beleértve a külső tanúval rendelkező két csomópontos fürtöt is.

A HGS-csomópontok között nincs szükség megosztott tárolásra. Az igazolási adatbázis másolatát minden HGS-kiszolgálón tárolja a fürtszolgáltatás, és automatikusan replikálja a hálózaton.

Hálózati kapcsolat

Mind az SQL-ügyfélnek, mind az SQL Servernek HTTP-n keresztül kell tudnia kommunikálni a HGS-vel. A HGS konfigurálása TLS-tanúsítvánnyal az SQL-ügyfél és a HGS, valamint az SQL Server és a HGS közötti kommunikáció titkosításához. Ez a konfiguráció segít védelmet biztosítani a közbeékelődéses támadások ellen, és biztosítja, hogy a megfelelő HGS-kiszolgálóval kommunikáljon.

A HGS-kiszolgálóknak kapcsolatra van szükségük a fürt minden csomópontja között, hogy az igazolási szolgáltatás adatbázisa szinkronban maradjon. A feladatátvevő fürt ajánlott eljárása a HGS-csomópontok csatlakoztatása egy hálózaton fürtkommunikáció céljából, és egy külön hálózat használata a többi ügyfél számára a HGS-vel való kommunikációhoz.

Igazolási módok

Amikor egy SQL Servert futtató számítógép megpróbálja igazolni a HGS-t, először megkérdezi a HGS-től, hogyan kell igazolnia. A HGS két igazolási módot támogat az SQL Server használatához:

Igazolási mód Explanation
TPM A megbízható platformmodul (TPM) igazolása biztosítja a legerősebb biztosítékot a HGS-vel való hitelesítést tanúsító számítógép identitására és integritására vonatkozóan. Az SQL Servert futtató számítógépeken telepítve kell lennie a TPM 2.0-s verziójának. Minden TPM-chip egyedi és nem módosítható identitást (ellenőrzőkulcsot) tartalmaz, amely egy adott számítógép azonosítására használható. A TPM-ek a számítógép rendszerindítási folyamatát is mérik, és az operációs rendszer által olvasható, de az operációs rendszer által nem módosított platformvezérlő-nyilvántartásokban (PCR-kben) tárolja a biztonsági szempontból érzékeny mérések kivonatait. Ezeket a méréseket az igazolások során használjuk annak titkosítási ellenőrzésére, hogy a számítógép abban a biztonsági konfigurációban van-e, amelyről azt állítja, hogy az.
Hosztkulcs A host-kulcs igazolás az igazolás egyszerűbb formája, amely csak egy aszimmetrikus kulcspár használatával ellenőrzi a számítógép hitelességét. A titkos kulcs az SQL Servert futtató számítógépen, a nyilvános kulcs pedig a HGS-nek van megadva. A számítógép biztonsági konfigurációját nem méri a rendszer, és az SQL Servert futtató számítógépen nincs szükség TPM 2.0-s chipre. Fontos, hogy megvédje az SQL Server-számítógépen telepített titkos kulcsot, mert bárki, aki ezt a kulcsot beszerezi, megszemélyesíthet egy megbízható SQL Server-számítógépet és az SQL Serveren futó VBS-enklávét.

Általában a következő javaslatokat tesszük:

  • Fizikai üzemi kiszolgálók esetében javasoljuk, hogy a TPM-igazolást használja az általa biztosított további garanciákhoz.
  • Virtuális gyártói kiszolgálók esetében a gazdagépkulcs-igazolást javasoljuk, mivel a legtöbb virtuális gép nem rendelkezik virtuális TPM modulokkal vagy biztonságos rendszerindítással. Ha olyan fokozott biztonságú virtuális gépet használ, mint egy helyszíni védett virtuális gép, akkor TPM módot is használhat. Minden virtualizált üzembe helyezésnél az igazolási folyamat csak a virtuálisgép-környezetet elemzi, a virtuális gép alatti virtualizálási platformot nem.
  • Fejlesztői/tesztelési forgatókönyvek esetén a gazdagépkulcs-igazolást javasoljuk, mert egyszerűbb a beállítás.

Megbízhatósági modell

A VBS enklávé megbízhatósági modellben a titkosított lekérdezések és adatok kiértékelése szoftveres enklávéban történik, hogy megvédje őket a gazdagép operációs rendszerével szemben. Az enklávéhoz való hozzáférést a hipervizor ugyanúgy védi, ahogyan az ugyanazon a számítógépen futó két virtuális gép nem tudja elérni egymás memóriáját.

Ahhoz, hogy egy ügyfél megbízhasson abban, hogy a VBS egy legitim példányával beszél, TPM-alapú igazolást kell használnia, amely létrehozza a megbízhatóság hardveres gyökerét az SQL Server-számítógépen.

A rendszerindítási folyamat során rögzített TPM-mérések tartalmazzák a VBS-példány egyedi identitáskulcsát, biztosítva, hogy az állapottanúsítvány csak az adott számítógépen érvényes legyen. Továbbá, ha egy TPM elérhető egy VBS-t futtató számítógépen, a VBS-identitáskulcs privát részét a TPM védi, megakadályozva, hogy bárki megszemélyesítse az adott VBS-példányt.

A TPM-igazolással biztonságos rendszerindításra van szükség annak biztosításához, hogy az UEFI betöltsön egy megbízható, Microsoft által aláírt rendszerindítót, és hogy egyetlen rootkit sem észlelte a hipervizor rendszerindítási folyamatát. Emellett alapértelmezés szerint IOMMU-eszközre van szükség annak biztosításához, hogy a közvetlen memóriahozzáféréssel rendelkező hardvereszközök ne vizsgálhassák vagy módosíthassák az enklávé memóriáját.

Ezek a védelem mind feltételezik, hogy az SQL Servert futtató számítógép fizikai gép. Ha virtualizálja az SQL Servert futtató számítógépet, a továbbiakban nem garantálhatja, hogy a virtuális gép memóriája biztonságban legyen a hipervizor vagy a hipervizor rendszergazdája általi ellenőrzéstől. A hipervizor rendszergazdája például memóriaképet adhat a virtuális gépnek, és hozzáférhet a lekérdezés egyszerű szöveges verziójához és az enklávéban lévő adatokhoz. Hasonlóképpen, még ha a virtuális gép rendelkezik virtuális TPM-sel is, csak a virtuális gép operációs rendszerének és rendszerindítási környezetének állapotát és integritását tudja mérni. Nem tudja mérni a virtuális gépet vezérlő hipervizor állapotát.

Az enklávét azonban még az SQL Server virtualizálásakor is védi a virtuális gép operációs rendszeréből származó támadásoktól. Ha megbízik a hipervizorban vagy a felhőszolgáltatóban, és elsősorban az adatbázis-rendszergazdai és operációsrendszer-rendszergazdai támadások miatt aggódik a bizalmas adatok ellen, a virtualizált SQL Server megfelelhet a követelményeknek.

Hasonlóképpen, a gazdagépkulcs-igazolás akkor is hasznos, ha egy TPM 2.0-modul nincs telepítve az SQL Servert futtató számítógépre, vagy olyan fejlesztői/tesztelési helyzetekben, ahol a biztonság nem elsődleges fontosságú. A VBS és az operációs rendszer egészének hatékonyabb védelme érdekében továbbra is használhatja a fent említett biztonsági funkciókat, köztük a Biztonságos rendszerindítást és a TPM 1.2 modult. Mivel azonban a HGS nem tudja ellenőrizni, hogy a számítógép valóban engedélyezi-e ezeket a beállításokat a Host Key hitelesítéssel, az ügyfél nem lehet biztos abban, hogy a gazdagép valóban minden elérhető védelmet használ.

Előfeltételek

A HGS-kiszolgáló előfeltételei

A Host Guardian Service szerepkört futtató számítógépeknek meg kell felelniük a következő követelményeknek:

Összetevő Követelmény
Operációs rendszer Windows Server 2019 vagy újabb, Standard vagy Datacenter kiadás
CPU 2 mag (min), 4 mag (ajánlott)
RAM 8 GB (minimum)
NICs 2 statikus IP-címmel rendelkező hálózati adapter ajánlott (1 a fürtforgalomhoz, 1 a HGS szolgáltatáshoz)

A HGS egy processzorhoz kötött szerepkör a titkosítást és visszafejtést igénylő műveletek száma miatt. A modern processzorok titkosítási gyorsítási képességekkel való használata javítja a HGS teljesítményét. Az igazolási adatok tárolási követelményei minimálisak, egyedi számítógép-igazolásonként 10 KB és 1 MB közötti tartományban.

A kezdés előtt ne csatlakoztassa a HGS-számítógépet vagy számítógépeket a tartományhoz.

AZ SQL Server számítógép előfeltételei

A SQL Server futtató számítógépeknek mind a SQL Server telepítési követelményeinek, mind aHyper-V hardverének követelményeinek kell megfelelniük.

Ezek a követelmények a következők:

  • SQL Server 2019 (15.x) vagy újabb
  • Windows 10, 1809-es vagy újabb verzió – Enterprise edition, Windows 11 vagy újabb – Enterprise edition, Windows Server 2019 vagy újabb – Datacenter edition. A Windows 10/11 és a Windows Server egyéb kiadásai nem támogatják a HGS-vel való igazolást.
  • Cpu-támogatás virtualizálási technológiákhoz:
    • Intel VT-x kiterjesztett oldaltáblákkal.
    • AMD-V gyorsított virtualizációs indexeléssel.
    • Ha az SQL Servert virtuális gépen futtatja:
      • Az Azure-ban használjon 2. generációs virtuálisgép-méretet (ajánlott), vagy használjon 1. generációs virtuálisgép-méretet, ha engedélyezve van a beágyazott virtualizálás. Tekintse meg az egyes virtuálisgép-méretek dokumentációját annak megállapításához, hogy az 1. generációs virtuális gépek mely méretei támogatják a beágyazott virtualizálást.
      • 2016-os vagy újabb Hyper-V (az Azure-on kívül) győződjön meg arról, hogy a virtuális gép 2. generációs virtuális gép (ajánlott), vagy egy 1. generációs virtuális gép, amelyen engedélyezve van a beágyazott virtualizálás. További információ: 1. vagy 2. generációs virtuális gép létrehozása a Hyper-V-ben? és Beágyazott virtualizálás konfigurálása.
      • A VMware vSphere 6.7 vagy újabb verziójában engedélyezze a virtualizációalapú biztonsági támogatást a virtuális gép számára. A VMware dokumentációjában útmutatást talál a VBS és a beágyazott virtualizálás engedélyezésével kapcsolatban az adott vSphere-verzióhoz.
      • Más hipervizorok és nyilvános felhők is támogathatják a beágyazott virtualizálási képességeket, amelyek lehetővé teszik az Always Encryptedt a VBS Enklávékkal is. A kompatibilitási és konfigurációs utasításokért tekintse meg a virtualizálási megoldás dokumentációját.
  • Ha TPM-igazolást szeretne használni, szüksége lesz egy TPM 2.0 rev 1.16 chipre, amely készen áll a kiszolgálón való használatra. A HGS-igazolás jelenleg nem működik a TPM 2.0 rev 1.38 chipekkel. Emellett a TPM-nek érvényes érvényesítőkulcs-tanúsítvánnyal kell rendelkeznie.

Szerepkörök és felelősségek az igazolás HGS-vel való konfigurálásakor

Az igazolások HGS-sel való beállításához különböző típusú összetevőket kell konfigurálni: HGS- és SQL Server-számítógépek, SQL Server-példányok és enklávéigazolást aktiváló alkalmazások. Az egyes típusú összetevők konfigurálását a felhasználók az alábbi különböző szerepkörök egyikével hajtják végre:

  • HGS-rendszergazda – üzembe helyezi a HGS-t, regisztrálja az SQL Server-számítógépeket a HGS-ben, és megosztja a HGS igazolási URL-címét az SQL Server-számítógép rendszergazdáival és az ügyfélalkalmazás-rendszergazdákkal.
  • SQL Server számítógép-rendszergazda – telepíti az igazolási ügyfél összetevőit, engedélyezi a VBS-t az SQL Server-számítógépeken, megadja a HGS-rendszergazdának az SQL Server-számítógépek HGS-ben való regisztrálásához szükséges információkat, konfigurálja az igazolási URL-címet az SQL Server-számítógépeken, és ellenőrzi, hogy az SQL Server-számítógépek sikeresen tanúsíthatják-e a HGS-t.
  • DBA – biztonságos enklávékat konfigurál az SQL Server-példányokban.
  • Alkalmazásadminisztrátor – az alkalmazást a HGS-rendszergazdától kapott igazolási URL-címmel konfigurálja.

Éles környezetekben (amelyek valós bizalmas adatokat kezelnek) fontos, hogy a szervezet betartsa a szerepkörök elkülönítését az igazolás konfigurálásakor, ahol a különböző szerepköröket különböző személyek feltételezik. Különösen, ha az Always Encrypted szervezeten belüli üzembe helyezésének célja a támadási felület csökkentése azáltal, hogy az SQL Server számítógépgazdák és adatbázis-rendszergazdák nem férhetnek hozzá a bizalmas adatokhoz, az SQL Server-rendszergazdáknak és a DBA-knak nem szabad szabályoznia a HGS-kiszolgálókat.

Fejlesztési vagy tesztelési környezettel kapcsolatos szempontok

Ha az Always Encryptedt VBS-enklávékkal használja fejlesztési vagy tesztelési környezetben, és nem igényli az SQL Servert futtató számítógép magas rendelkezésre állását vagy erős védelmét, az egyszerűsített üzembe helyezéshez az alábbi engedményeket teheti:

  • Az Always Encrypted biztonsági enklávékkal való használata attestáció nélkül – lásd: Tervezés az Always Encrypted biztonsági enklávékkal az SQL Serveren attestáció nélkül.
  • Alternatívaként
    • Egyetlen HGS-csomópontot helyezzen üzembe. Annak ellenére, hogy a HGS egy feladatátvevő fürtöt telepít, nem kell további csomópontokat hozzáadnia, ha a magas rendelkezésre állás nem okoz problémát.
    • TPM mód helyett gazdagépkulcs-módot használjon az egyszerűbb beállítási élmény érdekében.
    • Virtualizálja a HGS-t és/vagy az SQL Servert a fizikai erőforrások mentéséhez.
    • Futtassa az SSMS-t vagy más eszközöket az Always Encrypted biztonságos enklávékkal való konfigurálásához ugyanazon a számítógépen, mint az SQL Server. Így az oszlop főkulcsai ugyanazon a számítógépen maradnak, mint az SQL Server, ezért éles környezetben ne alkalmazza ezt.