KB4457951: Windows-vägledning för skydd mot spekulativ exekvering

Gäller för
Windows Server 2019, all editions Windows 10, version 1809, all editions Windows Server version 1803 Windows Server 2016, all editions Windows 10, version 1803, all editions Windows 10, version 1709, all editions Windows 10, version 1703, all editions Windows 10 Windows Server 2012 R2 Windows RT 8.1 Windows 8.1 Windows Server 2012 Windows Server 2008 R2 Service Pack 1 Windows Server 2008 Service Pack 2 Windows 10, version 1607, all editions Windows 7
Ändringslogg
Datum Beskrivning av ändring
Den 27 oktober 2023 Lade till referenser till Mitigation B
Juli 17, 2023 MMIO-information tillagd

Sammanfattning

Microsoft är medveten om de nya varianterna av den typ av angreppstyp som kallas spekulativ exekvering (side-channel sites). Varianterna kallas L1 Terminal Fault (L1TF) och Microarchitectural Data Sampling (MDS). En angripare som framgångsrikt kan utnyttja L1TF eller MDS kanske kan läsa privilegierade data över förtroendegränser.

UPPDATERADES DEN 14 MAJ 2019: Den 14 maj 2019 publicerade Intel information om en ny underklass av spekulativ exekvering som kallas Microarchitectural Data Sampling. De har tilldelats följande CVE:er:

UPPDATERADES DEN 12 NOVEMBER 2019: Den 12 november 2019 publicerade Intel teknisk rådgivning om säkerhetsrisken® Intel Transactional Synchronization Extensions (Intel® TSX) Transaction Asynchronous Abort som är tilldelad CVE-2019-11135. Microsoft har släppt uppdateringar för att minska den här säkerhetsrisken. Observera följande:

  • Som standard är operativsystemskydd aktiverat för vissa Windows Server OS-utgåvor. Mer information finns i artikeln 4072698 i Microsoft Knowledge Base.
  • Som standard är operativsystemskydd aktiverat för alla Windows-klientoperativsystemutgåvor. Mer information finns i Microsoft Knowledge Base-artikeln 4073119 .

Sårbarhetsöversikt

I miljöer där resurser delas, till exempel virtualiseringsvärdar, kan en angripare som kan köra godtycklig kod på en virtuell dator komma åt information från en annan virtuell dator eller från själva virtualiseringsvärden.

Serverarbetsbelastningar som Windows Server Fjärrskrivbordstjänster (RDS) och mer dedikerade roller som služba Active Directory-domänkontrollanter är också i riskzonen. Angripare som kan köra godtycklig kod (oavsett dess behörighetsnivå) kan komma åt operativsystem- eller arbetsbelastningshemligheter som krypteringsnycklar, lösenord och andra känsliga data.

Windows-klientoperativsystem är också utsatta för risker, särskilt om de kör icke betrodd kod, utnyttjar virtualiseringsbaserade säkerhetsfunktioner som Windows Defender Credential Guard eller använder Hyper-V för att köra virtuella datorer.

Notera: Dessa säkerhetsproblem påverkar endast Intel Core-processorer och Intel Xeon-processorer.

Översikt över åtgärder

För att lösa dessa problem arbetar Microsoft tillsammans med Intel för att utveckla lösningar och vägledning för programvara. Programuppdateringar för att minska sårbarheter har släppts. För att få allt tillgängligt skydd kan det krävas uppdateringar som även kan innehålla mikrokod från OEM-tillverkare av enheter.

I den här artikeln beskrivs hur du åtgärdar följande säkerhetsrisker:

  • CVE-2018-3620 | L1-terminalfel – OS, SMM
  • CVE-2018-3646 | L1-terminalfel – VMM
  • CVE-2018-11091 | Microarchitectural Data Sampling Uncacheable Memory (MDSUM)
  • CVE-2018-12126 | Microarchitectural Store Buffer Data Sampling (MSBDS)
  • CVE-2018-12127 | MLPDS (Microarchitectural Load Port Data Sampling)
  • CVE-2018-12130 | Microarchitectural Fill Buffer Data Sampling (MFBDS)
  • CVE-2019-11135 | Säkerhetsrisker med avslöjande av information i Windows-kernel
  • CVE-2022-21123 | Delad buffertdataläsning (SBDR)
  • CVE-2022-21125 | SBDS (Shared Buffer Data Sampling)
  • CVE-2022-21127 | Special Register Buffer Data Sampling Update (SRBDS Update)
  • CVE-2022-21166 | Device Register Partial Write (DRPW)

Mer information om sårbarheterna finns i följande säkerhetsrekommendationer:

L1TF:ADV180018 | Microsofts vägledning för att minimera L1TF-varianten

MDS:ADV190013 | Microsofts vägledning för att minska sårbarheter för datainsamling i mikroarkitektur

MMIO:ADV220002 | Microsofts vägledning om säkerhetsproblem med inaktuella data i Intel-processorn i MMIO

Sårbarhet vid avslöjande av information i Windows-kernel:CVE-2019-11135 | Säkerhetsrisker med avslöjande av information i Windows-kernel

Fastställa vilka åtgärder som krävs för att minska hotet

Följande avsnitt kan hjälpa dig att identifiera system som påverkas av L1TF- och/eller MDS-sårbarheterna, och även hjälpa dig att förstå och minimera riskerna.

Potentiell inverkan på prestanda

I testningen har Microsoft sett en viss prestandapåverkan av dessa lösningar, beroende på systemets konfiguration och vilka åtgärder som krävs.

Vissa kunder kan behöva inaktivera hypertrådning (kallas även simultaneous multithreading eller SMT) för att helt hantera risken från L1TF och MDS. Tänk på att inaktivering av hypertrådning kan orsaka försämrade prestanda. Den här situationen gäller för kunder som använder följande:

  • Hyper-V-versioner tidigare än Windows Server 2016 eller Windows 10 version 1607 (Anniversary Update)
  • Funktioner för virtualiseringsbaserad säkerhet (VBS), till exempel Credential Guard och Device Guard
  • Programvara som tillåter körning av ej betrodd kod (till exempel en inbyggd automatiseringsserver eller delad IIS-värdmiljö)

Effekten kan variera beroende på maskinvara och de arbetsbelastningar som körs i systemet. Den vanligaste systemkonfigurationen är att ha aktiverat hypertrådar. Därför är prestandapåverkan begränsad till den användare eller administratör som vidtar åtgärden för att inaktivera hypertrådning i systemet.

Notera: Så här avgör du om systemet använder VBS-skyddade säkerhetsfunktioner:

  1. Start-menyn skriver du MSINFO32.

    Notera:Fönstret Systeminformation öppnas.

  2. Skriv säkerhet i rutan Sök efter.

  3. I den högra rutan, leta reda på de två rader som är markerade i skärmbilden och kontrollera kolumnen Värde för att se om virtualiseringsbaserad säkerhet är aktiverad och vilka virtualiserade säkerhetstjänster som körs.
    Fönstret Systeminformation

Hyper-V Core-schemaläggaren mildrar L1TF- och MDS-attackvektorerna mot virtuella Hyper-V-datorer samtidigt som hypertrådning kan förbli aktiverat. Kärnschemaläggaren är tillgänglig från och med Windows Server 2016 och Windows 10 version 1607. Detta ger minimal prestandapåverkan på de virtuella datorerna.

Kärnschemaläggaren mildrar inte L1TF- eller MDS-attackvektorerna mot VBS-skyddade säkerhetsfunktioner. Mer information finns i Mitigation C och följande bloggartikel om virtualisering:

https://aka.ms/hyperclear

Detaljerad information från Intel om hur prestandan påverkas finns på följande Intel-webbplats:

www.intel.com/securityfirst

Identifiera berörda system och nödvändiga åtgärder

Flödesschemat i bild 1 kan hjälpa dig att identifiera påverkade system och fastställa rätt uppsättning åtgärder.

Viktigt: Om du använder virtuella datorer måste du överväga och tillämpa flödesschemat på Hyper-V-värdar och varje berörd VM-gäst individuellt eftersom riskreduceringar kan gälla för båda. Mer specifikt för en Hyper-V-värd ger flödesschemastegen skydd mellan virtuella datorer och skydd mellan värdar. Det räcker dock inte att tillämpa dessa åtgärder på endast Hyper-V-värden för att ge skydd inom den virtuella datorn. För att tillhandahålla skydd inom den virtuella datorn måste du tillämpa flödesschemat på varje virtuell Windows-dator. I de flesta fall innebär det att se till att registernycklarna anges på den virtuella datorn.

När du navigerar i flödesschemat stöter du på blå cirklar med bokstäver som mappas till en åtgärd eller en serie åtgärder som krävs för att mildra L1TF-attackvektorer som är specifika för dina systemkonfigurationer. Varje åtgärd som du stöter på måste tillämpas. När du stöter på en grön linje anger den en direkt väg till slutet och det finns inga ytterligare begränsningssteg.

En kortfattad förklaring av varje textförkortning finns i förklaringen till höger. Detaljerade förklaringar av varje åtgärd, inklusive stegvisa instruktioner för installation och konfiguration, finns i avsnittet "Åtgärder".

Flödesschema

Åtgärder

Viktigt: I följande avsnitt beskrivs åtgärder som ENDAST bör tillämpas under de specifika förhållanden som bestäms av flödesschemat i bild 1 i föregående avsnitt. Tillämpa INTE dessa riskreduceringar såvida inte flödesschemat indikerar att den specifika åtgärden är nödvändig.

Förutom program- och mikrokoduppdateringar kan det också krävas manuella konfigurationsändringar för att aktivera vissa skydd. Vi rekommenderar vidare att Enterprise-kunder registrerar sig för e-postmeddelandet med säkerhetsmeddelanden för att få aviseringar om innehållsändringar. (Se Microsofts tekniska säkerhetsmeddelanden.)

Åtgärd A

Skaffa och installera de senaste Windows-uppdateringarna

Installera alla tillgängliga uppdateringar för Windows-operativsystem, inklusive de månatliga Windows-säkerhetsuppdateringarna. Du kan se tabellen över berörda produkter i Microsoft Security Advisory | ADV 180018 för L1TF, säkerhetsrådgivning | ADV 190013 för MDS, säkerhetsrådgivning | ADV220002 för MMIO och säkerhetsrisker | CVE-2019-11135 för säkerhetsrisker med avslöjande av information i Windows kernel.

Åtgärd B

Skaffa och installera de senaste uppdateringarna av mikrokod eller inbyggd programvara

Förutom att installera de senaste Windows-säkerhetsuppdateringarna kan det även krävas en uppdatering av processorns mikrokod eller inbyggd programvara. Vi rekommenderar att du skaffar och installerar den senaste mikrokoduppdateringen från enhetens OEM-tillverkare. Mer information om uppdateringar av mikrokod eller inbyggd programvara finns i följande referenser:

Notera: Om du använder kapslad virtualisering (inklusive att köra Hyper-V-containrar på en virtuell gästdator) måste du exponera de nya mikrokodsuppdateringarna för den virtuella gästdatorn. Detta kan kräva att du uppgraderar VM-konfigurationen till version 8. Version 8 innehåller mikrokodupplysningarna som standard. Mer information och nödvändiga steg finns i följande artikel Microsoft Docs artikel:

Köra Hyper-V på en virtuell dator med kapslad virtualisering

Åtgärd C

Bör jag inaktivera hypertrådning (HT)?

L1TF- och MDS-säkerhetsriskerna medför risk för att konfidentialiteten för virtuella Hyper-V-datorer och de hemligheter som underhålls av Microsoft Virtualization Based Security (VBS) kan äventyras med hjälp av en sidokanalsattack. När Hyper-Threading (HT) är aktiverat försvagas säkerhetsgränserna för både Hyper-V och VBS.

Hyper-V Core-schemaläggaren (tillgänglig från och med Windows Server 2016 och Windows 10 version 1607) mildrar L1TF- och MDS-attackvektorerna mot virtuella Hyper-V-datorer samtidigt som Hyper-Threading förblir aktiverade. Detta ger minimal påverkan på prestandan.

Hyper-V-kärnschemaläggaren mildrar inte L1TF- eller MDS-attackvektorerna mot VBS-skyddade säkerhetsfunktioner. L1TF- och MDS-sårbarheterna medför risk för att konfidentialiteten för VBS-hemligheter kan äventyras via en sidokanalsattack när Hyper-Threading (HT) är aktiverat, vilket försvagar säkerhetsgränsen som tillhandahålls av VBS. Även med den här ökade risken ger VBS fortfarande värdefulla säkerhetsfördelar och mildrar en rad attacker med HT aktiverat. Därför rekommenderar vi att VBS fortsätter att användas på HT-aktiverade system. Kunder som vill eliminera den potentiella risken för L1TF- och MDS-säkerhetsrisker på VBS-konfidentialiteten bör överväga att inaktivera HT för att minska den här ytterligare risken.

Kunder som vill eliminera risken som L1TF- och MDS-säkerhetsriskerna utgör, oavsett om det gäller sekretessen för Hyper-V-versioner som är tidigare än Windows Server 2016 eller VBS-säkerhetsfunktioner, måste överväga beslutet och överväga att inaktivera HT för att minska risken. I allmänhet kan detta beslut baseras på följande riktlinjer:

  • För Windows 10 version 1607, Windows Server 2016 och nyare system som inte kör Hyper-V och inte använder VBS-skyddade säkerhetsfunktioner bör kunder inte inaktivera HT.
  • För Windows 10 version 1607, Windows Server 2016 och nyare system som kör Hyper-V med Core Scheduler, men som inte använder VBS-skyddade säkerhetsfunktioner, bör kunder inte inaktivera HT.
  • För Windows 10 version 1511, Windows Server 2012 R2 och tidigare system som kör Hyper-V måste kunderna överväga att inaktivera HT för att minska risken.

Stegen som krävs för att inaktivera HT skiljer sig från OEM till OEM. De är dock vanligtvis en del av BIOS eller konfigurationsverktyg för installation och konfiguration av inbyggd programvara.

Microsoft har också introducerat möjligheten att inaktivera Hyper-Threading teknik via en programvaruinställning om det är svårt eller omöjligt att inaktivera HT i ditt BIOS eller konfigurationsverktyg för installation och konfiguration av inbyggd programvara. Programvaruinställningen för att inaktivera HT är sekundär till BIOS eller firmware-inställningen och är inaktiverad som standard (vilket innebär att HT kommer att följa BIOS- eller firmware-inställningen). Mer information om den här inställningen och hur du inaktiverar HT med hjälp av den finns i följande artikel:

4072698 Windows Server vägledning för att skydda mot spekulativ exekvering

När det är möjligt rekommenderar vi att du inaktiverar HT i BIOS eller den inbyggda programvaran för att få den starkaste garantin för att HT är inaktiverat.

Notera: Om du inaktiverar hypertrådar minskas antalet CPU-kärnor. Detta kan påverka funktioner som kräver minst CPU-kärnor för att fungera. Till exempel Windows Defender Application Guard (WDAG).

Åtgärd D

Aktivera Hyper-V Core Scheduler och ange antalet trådar för VM-maskinvara per kärna till 2

Notera: Dessa åtgärder gäller endast för Windows Server 2016- och Windows 10 versioner före version 1809. Kärnschemaläggaren är aktiverad som standard på Windows Server 2019 och Windows 10 version 1809.

Att använda kärnschemaläggaren är en tvåstegsprocess som kräver att du först aktiverar schemaläggaren på Hyper-V-värden och sedan konfigurerar varje virtuell dator för att dra nytta av den genom att ange antalet maskinvarutrådar per kärna till två (2).

Hyper-V core-schemaläggaren som introducerades i Windows Server 2016 och Windows 10 version 1607 är ett nytt alternativ till den klassiska schemaläggarlogiken. Kärnschemaläggaren ger minskad prestandavariation för arbetsbelastningar i virtuella datorer som körs på en HT-aktiverad Hyper-V-värd.

En detaljerad beskrivning av Hyper-V:s kärnschemaläggare och stegen för att aktivera den finns i följande artikel om Windows IT Pro Center:

Förstå och använda Hyper-V hypervisor-schemaläggartyper

Om du vill aktivera Hyper-V Core-schemaläggaren i Windows Server 2016 eller Windows 10 anger du följande kommando:

bcdedit /set HypervisorSchedulerType core

Bestäm sedan om du vill konfigurera en viss virtuell dators maskinvarutrådantal per kärna till två (2). Om du exponerar det faktum att virtuella processorer är hypertrådade till en virtuell gästdator aktiverar du schemaläggaren i operativsystemet för den virtuella datorn och även arbetsbelastningarna för virtuella datorer för att använda HT i sin egen arbetsschemaläggning. Det gör du genom att ange följande PowerShell-kommando, där <VMName> är namnet på den virtuella datorn:

Set-VMProcessor -VMName< VMName> -HwThreadCountPerCore 2

Åtgärd E

Aktivera åtgärder för råden CVE-2017-5715, CVE-2017-5754 och CVE-2019-11135

Notera: Dessa lösningar är aktiverade som standard på Windows Server 2019 och Windows klientoperativsystem.

Om du vill aktivera åtgärder för råden CVE-2017-5715, CVE-2017-5754 och CVE-2019-11135 använder du anvisningarna i följande artiklar:

4072698 Windows Server vägledning för skydd mot spekulativ exekvering

4073119 Windows-klientvägledning för IT-proffs för att skydda mot spekulativ exekvering

Notera: Dessa åtgärder omfattar och aktiverar automatiskt begränsningen för säkra sidramsbitar för Windows-kernel och även för de åtgärder som beskrivs i CVE-2018-3620. En detaljerad förklaring av begränsningen av säkra sidramsbitar finns i följande artikel i Security Research & Defense Blog:

Analys och lindring av L1 Terminal Fault (L1TF)

Referenser

Vägledning för att minska sårbarheter vid spekulativ exekvering i Azure

Ansvarsfriskrivning från tredje part

Produkter från andra leverantörer som nämns i den här artikeln tillverkas av företag som inte har någon anknytning till Microsoft. Vi lämnar ingen garanti, underförstådd eller på annat sätt, om dessa produkters prestanda eller tillförlitlighet.

Vi tillhandahåller kontaktinformation från tredje part som hjälper dig att hitta teknisk support. Denna kontaktinformation kan ändras utan föregående meddelande. Vi kan inte garantera att den här kontaktinformationen från tredje part är korrekt.