Dela via


Planera för Always Encrypted i SQL Server med säkra enklaver utan attestering

gäller för: SQL Server 2019 (15.x) och senare – endast Windows

Att konfigurera Always Encrypted med säkra enklaver i SQL Server utan attestering är ett enkelt sätt att börja med funktionen. Men när du använder säkra enklaver i en produktionsmiljö bör du tänka på att skyddsnivån mot OS-administratörer minskar utan attestering. Om till exempel en administratör för skadligt operativsystem manipulerade SQL Server-biblioteket som körs i enklaven, skulle ett klientprogram inte kunna identifiera det. Om du är orolig för sådana attacker kan du överväga att konfigurera attestering med Host Guardian Service. Mer information finns i Plan for Host Guardian Service attestering.

I SQL Server använder Always Encrypted med säkra enklaver virtualiseringsbaserade säkerhetsklaver (VBS) (även kallat virtuellt säkert läge eller VSM-enklaver) – en programvarubaserad teknik som förlitar sig på Windows-hypervisor och inte kräver någon särskild maskinvara.

Observera

När SQL Server distribueras på en virtuell dator hjälper VBS-enklaver till att skydda dina data från attacker på den virtuella datorn. De ger dock inget skydd mot attacker med privilegierade systemkonton som kommer från värden. En minnesdumpning av den virtuella datorn som genereras på värddatorn kan till exempel innehålla minnet av enklaven.

Förutsättningar

De datorer som kör SQL Server måste uppfylla både krav för att installera SQL Server- och Hyper-V maskinvarukrav.

Dessa krav omfattar:

  • SQL Server 2019 (15.x) eller senare

  • Windows 10 eller senare eller Windows Server 2019 eller senare.

  • CPU-stöd för virtualiseringstekniker:

    • Intel VT-x med utökade sidtabeller.
    • AMD-V med snabb virtualiseringsindexering.
    • Om du kör SQL Server på en virtuell dator:
      • I Azure använder du en vm-storlek i generation 2 (rekommenderas) eller använder en vm-storlek i generation 1 med kapslad virtualisering aktiverad. Granska dokumentationen för individuella VM-storlekar för att avgöra vilka Generation 1 VM-storlekar som stöder kapslad virtualisering.
      • På Hyper-V 2016 eller senare (utanför Azure) kontrollerar du att den virtuella datorn är en virtuell dator av generation 2 (rekommenderas) eller att det är en virtuell dator av generation 1 med kapslad virtualisering aktiverad. Mer information finns i Ska jag skapa en virtuell dator av generation 1 eller 2 i Hyper-V? och Konfigurera kapslad virtualisering.
      • På VMware vSphere 6.7 eller senare aktiverar du virtualiseringsbaserat säkerhetsstöd för den virtuella datorn enligt beskrivningen i VMware-dokumentationen.
      • Andra hypervisor-program och offentliga moln kan ha stöd för kapslade virtualiseringsfunktioner som även aktiverar Always Encrypted med VBS-enklaver. I dokumentationen för virtualiseringslösningen finns kompatibilitets- och konfigurationsinstruktioner.
  • Virtualiseringsbaserad säkerhet (VBS) måste aktiveras och köras.

Verktygskrav

Krav för klientdrivrutiner

Information om klientdrivrutinsversioner som stöder användning av säkra enklaver utan attestering finns i Utveckla program med Always Encrypted med säkra enklaver.

Kontrollera att VBS körs

Notera

Det här steget bör utföras av SQL Server-datoradministratören.

Om du vill kontrollera om VBS körs öppnar du systeminformationsverktyget genom att köra msinfo32.exe och hitta de Virtualization-based security objekten längst ned i systemsammanfattningen.

Skärmbild av systeminformation som visar virtualiseringsbaserad säkerhetsstatus och konfiguration.

Det första objektet som ska kontrolleras är Virtualization-based security, som kan ha följande tre värden:

  • Running innebär att VBS är korrekt konfigurerat och kunde startas.
  • Enabled but not running innebär att VBS är konfigurerat att köras, men maskinvaran har inte minimikraven för att köra VBS. Du kan behöva ändra konfigurationen av maskinvaran i BIOS eller UEFI för att aktivera valfria processorfunktioner som en IOMMU, eller om maskinvaran verkligen inte stöder de nödvändiga funktionerna kan du behöva sänka VBS-säkerhetskrav. Fortsätt att läsa det här avsnittet om du vill veta mer.
  • Not enabled innebär att VBS inte är konfigurerat att köras.

Aktivera VBS

Om VBS inte är aktiverat kör du följande kommando i en upphöjd PowerShell-konsol för att aktivera den.

Set-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\DeviceGuard -Name EnableVirtualizationBasedSecurity -Value 1

När du har ändrat registret startar du om SQL Server-datorn och kontrollerar om VBS körs igen.

Andra sätt att aktivera VBS finns i Aktivera virtualiseringsbaserat skydd av kodintegritet.

Kör VBS om den inte körs

Om VBS är aktiverat men inte körs på datorn, kontrollera egenskaperna för Virtualization-based security. Jämför värdena i det Required Security Properties objektet med värdena i det Available Security Properties objektet. De nödvändiga egenskaperna måste vara lika med eller en delmängd av de tillgängliga säkerhetsegenskaperna för att VBS ska kunna köras. Säkerhetsegenskaperna har följande betydelse:

  • Base virtualization support krävs alltid eftersom det representerar de minsta maskinvarufunktioner som krävs för att köra ett hypervisor-program.
  • Secure Boot rekommenderas men krävs inte. Säker start skyddar mot rootkits genom att kräva att en Microsoft-signerad startladdare körs omedelbart efter att UEFI-initieringen har slutförts.
  • DMA Protection rekommenderas men krävs inte. DMA-skydd använder en IOMMU för att skydda VBS- och enklaverminne från direkt minnesåtkomstattacker. I en produktionsmiljö bör du alltid använda datorer med DMA-skydd. I en utvecklings- eller testmiljö är det okej att ta bort kravet på DMA-skydd. Om SQL Server-instansen är virtualiserad har du förmodligen inte DMA-skydd tillgängligt och måste ta bort kravet på att VBS ska köras.

Innan du sänker de nödvändiga säkerhetsfunktionerna för VBS kontrollerar du med oem- eller molntjänstleverantören om det finns ett sätt att aktivera de saknade plattformskraven i UEFI eller BIOS (till exempel aktivera Säker start, Intel VT-d eller AMD IOV).

Om du vill ändra de nödvändiga plattformssäkerhetsfunktionerna för VBS kör du följande kommando i en upphöjd PowerShell-konsol:

# 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 1

När du har ändrat registret startar du om SQL Server-datorn och kontrollerar om VBS körs igen.

Om datorn hanteras av ditt företag kan grupprincipen eller Microsoft Endpoint Manager åsidosätta alla ändringar du gör i dessa registernycklar efter omstarten. Kontakta IT-supportavdelningen för att se om de distribuerar principer som hanterar din VBS-konfiguration.

Nästa steg