คำแนะนำใน Windows Server เพื่อป้องกันช่องโหว่ด้านสถานีดำเนินการ speculative

นำไปใช้กับ: Windows Server 2016 Version 1709Windows Server 2012 R2 StandardWindows Server 2012 Standard เพิ่มเติม

สรุป


Microsoft มีความเกี่ยวข้องของคลาสที่เปิดเผยทั่วไปใหม่ของช่องโหว่ที่เรียกว่า "การโจมตีด้านสถานีดำเนินการ speculative" และที่ส่งผลกระทบต่อโปรเซสเซอร์สมัยใหม่มากมายรวมทั้ง Intel, AMD และ ARM

หมายเหตุ  นอกจากนี้ปัญหานี้มีผลกระทบต่อระบบปฏิบัติการอื่น ๆ เช่น Android โครเมียม iOS และ macOS ดังนั้น เราแนะนำลูกค้าในการค้นหาคำแนะนำจากผู้จัดจำหน่ายเหล่านั้น

Microsoft ได้ออกการปรับปรุงต่าง ๆ เพื่อช่วยบรรเทาความเสี่ยงเหล่านี้ เรายังทำการดำเนินการเพื่อความปลอดภัยของบริการ cloud ของเรา ดูส่วนต่อไปนี้เพื่อดูรายละเอียดเพิ่มเติม

Microsoft ยังไม่ได้รับข้อมูลใด ๆ เพื่อบ่งชี้ว่า มีการใช้ช่องโหว่เหล่านี้จะถูกโจมตีลูกค้า Microsoft จะทำงานอย่างใกล้ชิดกับคู่ค้าของอุตสาหกรรมรวมทั้งผู้ผลิตชิพ Oem ฮาร์ดแวร์ และผู้จำหน่ายโปรแกรมประยุกต์เพื่อรักษาลูกค้า โปรแกรมปรับปรุงจำเป็นเพื่อรับการป้องกันอย่างพร้อมใช้งาน เฟิร์มแวร์ (microcode) และซอฟต์แวร์ทั้งหมด รุ่นนี้มี microcode จากอุปกรณ์ Oem และ ในบางกรณี การปรับปรุงซอฟต์แวร์ป้องกันไวรัส

บทความนี้ระบุถึงช่องโหว่ที่ต่อไปนี้:

เมื่อต้องการเรียนรู้เพิ่มเติมเกี่ยวกับคลาสนี้ของช่องโหว่ ดูADV180002และADV180012

Microsoft ให้ข้อมูลการติดต่อของบริษัทอื่นเพื่อช่วยให้คุณค้นหาการสนับสนุนทางเทคนิค ข้อมูลการติดต่อนี้อาจเปลี่ยนแปลงได้โดยไม่ต้องแจ้งให้ทราบ Microsoft ไม่รับประกันความถูกต้องของข้อมูลการติดต่อของบุคคลภายนอก

การดำเนินการที่แนะนำ


ลูกค้าควรจะช่วยป้องกันคุณจากช่องโหว่ที่ดำเนินการต่อไปนี้:

  1. ใช้ทั้งหมดพร้อมใช้งานระบบปฏิบัติการปรับปรุงของ Windows รวมทั้งการปรับปรุงการรักษาความปลอดภัย Windows รายเดือน สำหรับรายละเอียดเกี่ยวกับวิธีการเปิดใช้งานเหล่านี้ปรับปรุง sดู4072699 ของบทความฐานความรู้ของ Microsoft
  2. ใช้โปรแกรมปรับปรุงเฟิร์มแวร์ที่ใช้ (microcode) จากผู้ผลิตอุปกรณ์ (OEM)
  3. ประเมินความเสี่ยงกับสภาพแวดล้อมของคุณโดยยึดตามข้อมูลที่อยู่ในคำแนะนำสำหรับการรักษาความปลอดภัย MicrosoftADV180002และADV180012และ ในบทความฐานข้อมูลองค์ความรู้นี้
  4. ดำเนินการตามความจำเป็น โดยใช้คำแนะนำสำหรับและข้อมูลคีย์รีจิสทรีที่ให้ไว้ในบทความฐานข้อมูลองค์ความรู้นี้

ลดการตั้งค่าสำหรับเซิร์ฟเวอร์ของ Windows


คำแนะนำสำหรับความปลอดภัยADV180002และADV180012ให้ข้อมูลเกี่ยวกับความเสี่ยง posed โดยช่องโหว่เหล่านี้ และระบุสถานะเริ่มต้นของ mitigations สำหรับระบบ Windows Server ด้านล่างของตารางสรุปความต้องการของ CPU microcode และสถานะเริ่มต้นของการ mitigations บน Windows Server

CVE จำเป็นต้องใช้ microcode/เฟิร์มแวร์ ของ CPU สถานะเริ่มต้นลด

CVE-2017-5753

ไม่ใช่

เปิดใช้งาน โดยค่าเริ่มต้น (ไม่มีตัวเลือกเพื่อปิดการใช้งาน)

CVE-2017-5715

ใช่

ปิดใช้งาน โดยค่าเริ่มต้น

CVE-2017-5754

ไม่ใช่

Windows Server 2019: เปิดใช้งาน โดยค่าเริ่มต้น Windows Server 2016 และรุ่นก่อนหน้า: ปิดใช้งาน โดยค่าเริ่มต้น

CVE-2018-3639

Intel: ใช่

AMD: ไม่ใช่

ปิดใช้งาน โดยค่าเริ่มต้น ดูADV180012สำหรับข้อมูลเพิ่มเติมและบทความนี้สำหรับการตั้งค่าคีย์รีจิสทรีที่เกี่ยวข้อง

ลูกค้าที่ต้องการได้รับการป้องกันอย่างพร้อมใช้งานทั้งหมดตามช่องโหว่เหล่านี้ ต้องทำการเปลี่ยนแปลงคีย์รีจิสทรีเพื่อเปิดใช้งาน mitigations เหล่านี้ที่ถูกปิดใช้งาน โดยค่าเริ่มต้น

การเปิดใช้งาน mitigations เหล่านี้อาจส่งผลกระทบต่อประสิทธิภาพการทำงาน มาตราส่วนของลักษณะพิเศษของประสิทธิภาพการทำงานขึ้นอยู่กับหลายปัจจัย เช่นชุดของชิพเฉพาะในโฮสต์ของคุณทางกายภาพและปริมาณที่ใช้ เราแนะนำให้ ลูกค้าประเมินผลประสิทธิภาพสำหรับสภาพแวดล้อมของตน และทำการปรับปรุงที่จำเป็นใด ๆ

เซิร์ฟเวอร์ของคุณอยู่ในภาวะเสี่ยงเพิ่มขึ้นถ้าแฟ้มอยู่ในหนึ่งในประเภทต่อไปนี้:

  • Hyper-V โฮสต์ – จำเป็นต้องมีการป้องกันการโจมตี VM VM และ VM โฮสต์
  • โฮสต์การบริการที่เดสก์ท็อประยะไกล (RDSH) – ต้องป้องกัน จากเซสชันหนึ่งไปอีกช่วงหนึ่ง หรือ จากการโจมตีของเซสชันโฮสต์
  • โฮสต์ที่มีอยู่จริงหรือเครื่องเสมือนที่กำลังเรียกใช้โค้ดที่ไม่น่าเชื่อถือเช่นคอนเทนเนอร์หรือส่วนขยายที่ไม่น่าเชื่อถือของฐานข้อมูล เนื้อหาเว็บที่ไม่น่าเชื่อถือ หรือทั้งปริมาณงานที่เรียกใช้โค้ดที่มาจากแหล่งภายนอก สิ่งเหล่านี้จำเป็นต้องมีการป้องกันจากการโจมตีกระบวนการการ--ขั้น ตอนอื่น หรือน่าประมวลผลการเคอร์เนลที่ไม่น่าเชื่อถือ

ใช้การตั้งค่าคีย์รีจิสทรีต่อไปนี้เพื่อเปิดใช้งานแบบ mitigations บนเซิร์ฟเวอร์ และเริ่มการทำงานของระบบสำหรับการเปลี่ยนแปลงมีผลบังคับใช้

สิ่งสำคัญนี้ส่วน วิธีการ หรืองานประกอบด้วยขั้นตอนที่บอกให้คุณทราบวิธีการปรับเปลี่ยนรีจิสทรี อย่างไรก็ตาม ปัญหาร้ายแรงอาจเกิดขึ้นหากคุณปรับเปลี่ยนรีจิสทรีอย่างไม่ถูกต้อง ดังนั้นจึงให้ตรวจสอบจนแน่ใจว่าคุณทำตามขั้นตอนเหล่านี้อย่างระมัดระวัง สำหรับการปกป้องเพิ่มเติม ให้สำรองรีจิสทรีก่อนที่คุณทำการปรับเปลี่ยน จากนั้นคุณจะสามารถคืนค่ารีจิสทรีได้หากเกิดปัญหาขึ้น สำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีการสำรองข้อมูล และคืนค่ารีจิสทรี โปรดคลิกที่หมายเลขบทความต่อไปนี้เพื่อดูบทความในฐานความรู้ของ Microsoft:

 

322756วิธีการสำรองข้อมูล และคืนค่ารีจิสทรีใน Windows

จัดการ mitigations สำหรับ CVE-2017-5715 (2 ตัวแปร Spectre) และ CVE-2017-5754 (Meltdown)


เมื่อต้องการเปิดใช้งาน mitigations สำหรับ CVE-2017-5715 (2 ตัวแปร Spectre) และ CVE-2017-5754 (Meltdown)

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

หากไม่โฮสต์ Hyper-V และการปรับปรุงเฟิร์มแวร์ที่ใช้: ปิดเครื่องเสมือนทั้งหมดอย่างสมบูรณ์ ซึ่งช่วยให้ลดที่เกี่ยวข้องกับเฟิร์มแวร์ที่จะใช้กับโฮสต์ก่อน VMs จะเริ่มต้น ดังนั้น VMs จะปรับปรุงเมื่อพวกเขากำลังเริ่มต้นใหม่

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

เมื่อต้องการปิดการใช้งาน mitigations สำหรับ CVE-2017-5715 (2 ตัวแปร Spectre) และ CVE-2017-5754 (Meltdown)

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

หมายเหตุFeatureSettingsOverrideMask ตั้งค่าเป็น3ไม่ถูกต้องสำหรับการตั้งค่าทั้ง "เปิดใช้งาน" และ "ปิดการใช้งาน" (โปรดดูส่วน "FAQ" สำหรับรายละเอียดเพิ่มเติมเกี่ยวกับรีจิสทรีคีย์)

จัดการการลดปัญหาสำหรับ CVE-2017-5715 (Spectre 2 ตัวแปร)


เพื่อปิดใช้งานตัวแปร 2: (CVE -2017 5715"สาขาใส่เป้าหมาย")ลด:  

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 1 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

การเปิดใช้งานตัวแปร 2: (CVE-2017-5715  "ใส่เป้าหมายสาขา") ลด:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 0 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

ตัวประมวลผล AMD เท่านั้น: เปิดใช้งานการลดปัญหาเต็มที่สำหรับ CVE-2017-5715 (Spectre 2 ตัวแปร)


โดยค่าเริ่มต้น ป้องกัน CVE-2017-5715 เคอร์เนลผู้ใช้ถูกปิดใช้งานสำหรับ Cpu AMD ลูกค้าต้องเปิดใช้งานการลดจะได้รับการป้องกันอย่างเพิ่มเติมสำหรับ CVE-2017-5715  สำหรับข้อมูลเพิ่มเติม ดู FAQ #15 ในADV180002

การเปิดใช้งานการป้องกันผู้ใช้เคอร์เนลบนตัวประมวลผลของ AMD พร้อมด้วยการป้องกันอย่างอื่นสำหรับ CVE 2017-5715:

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 64 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

หากไม่โฮสต์ Hyper-V และการปรับปรุงเฟิร์มแวร์ที่ใช้: ปิดเครื่องเสมือนทั้งหมดอย่างสมบูรณ์ ซึ่งช่วยให้ลดที่เกี่ยวข้องกับเฟิร์มแวร์ที่จะใช้กับโฮสต์ก่อน VMs จะเริ่มต้น ดังนั้น VMs จะปรับปรุงเมื่อพวกเขากำลังเริ่มต้นใหม่

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

จัดการ mitigations สำหรับ CVE-2018-3639 (Speculative ข้ามร้านค้า), CVE-2017-5715 (2 ตัวแปร Spectre), และ CVE-2017-5754 (Meltdown)



เมื่อต้องการเปิดใช้งาน mitigations สำหรับ CVE-2018-3639 (Speculative ข้ามร้านค้า), CVE-2017-5715 (2 ตัวแปร Spectre), และ CVE-2017-5754 (Meltdown):

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 8 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

หากไม่โฮสต์ Hyper-V และการปรับปรุงเฟิร์มแวร์ที่ใช้: ปิดเครื่องเสมือนทั้งหมดอย่างสมบูรณ์ ซึ่งช่วยให้ลดที่เกี่ยวข้องกับเฟิร์มแวร์ที่จะใช้กับโฮสต์ก่อน VMs จะเริ่มต้น ดังนั้น VMs จะปรับปรุงเมื่อพวกเขากำลังเริ่มต้นใหม่

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

การปิดการใช้งาน mitigations สำหรับ CVE-2018-3639 (ข้ามร้านค้า Speculative) mitigations AND CVE-2017-5715 (2 ตัวแปร Spectre) และ CVE-2017-5754 (Meltdown)

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 3 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

 

ตัวประมวลผล AMD เท่านั้น: เปิดใช้งานการลดปัญหาเต็มที่สำหรับ CVE-2017-5715 (2 ตัวแปร Spectre) และ CVE 2018-3639 (Speculative ข้ามร้านค้า)


โดยค่าเริ่มต้น ป้องกัน CVE-2017-5715 เคอร์เนลผู้ใช้ถูกปิดใช้งานสำหรับตัวประมวลผลของ AMD ลูกค้าต้องเปิดใช้งานการลดจะได้รับการป้องกันอย่างเพิ่มเติมสำหรับ CVE-2017-5715  สำหรับข้อมูลเพิ่มเติม ดู FAQ #15 ในADV180002

เปิดใช้งานการป้องกันผู้ใช้เคอร์เนลบนตัวประมวลผลของ AMD พร้อมด้วยการป้องกันอย่างอื่นสำหรับ CVE 2017 5715 และป้องกันอย่างสำหรับ CVE-2018-3639 (ข้ามร้านค้า Speculative):

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverride /t REG_DWORD /d 72 /f

reg add "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management" /v FeatureSettingsOverrideMask /t REG_DWORD /d 3 /f

reg add "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Virtualization" /v MinVmVersionForCpuBasedMitigations /t REG_SZ /d "1.0" /f

หากไม่โฮสต์ Hyper-V และการปรับปรุงเฟิร์มแวร์ที่ใช้:เต็มปิดเครื่องเสมือนทั้งหมด ซึ่งช่วยให้ลดที่เกี่ยวข้องกับเฟิร์มแวร์ที่จะใช้กับโฮสต์ก่อน VMs จะเริ่มต้น ดังนั้น VMs จะถูกปรับปรุงเมื่อพวกเขากำลังเริ่มต้นใหม่

รีสตาร์ทเครื่องคอมพิวเตอร์สำหรับการเปลี่ยนแปลงมีผลบังคับใช้

ตรวจสอบว่า มีการเปิดใช้งานป้องกันอย่าง


เพื่อช่วยตรวจสอบว่า การป้องกันอย่างถูกเปิดใช้งานของลูกค้า Microsoft ได้เผยแพร่สคริปต์ของ PowerShell ที่ลูกค้าสามารถเรียกใช้บนระบบของตน ติดตั้ง และเรียกใช้สคริปต์ โดยการเรียกใช้คำสั่งต่อไปนี้

การตรวจสอบของ PowerShell โดยใช้แกลเลอรีของ PowerShell (Windows Server 2016 หรือ WMF 5.0/5.1)

ติดตั้งโมดูล PowerShell:

PS> Install-Module SpeculationControl

เรียกใช้โมดูล PowerShell เพื่อตรวจสอบว่า มีการเปิดใช้งานป้องกันอย่าง:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> Import-Module SpeculationControl

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

ตรวจสอบ PowerShell โดยใช้การดาวน์โหลดได้จาก Technet (ต้นรุ่นของระบบปฏิบัติการ และรุ่นก่อนหน้า WMF)

ติดตั้งโมดูล PowerShell จาก Technet ScriptCenter:

  1. ไปที่https://aka.ms/SpeculationControlPS
  2. ดาวน์โหลด SpeculationControl.zip ไปยังโฟลเดอร์ภายในเครื่อง
  3. ขยายเนื้อหาไปยังโฟลเดอร์ภายในเครื่อง ตัวอย่าง: C:\ADV180002

เรียกใช้โมดูล PowerShell เพื่อตรวจสอบว่า มีการเปิดใช้งานป้องกันอย่าง:

เริ่มการทำงานของ PowerShell และจากนั้น ใช้ตัวอย่างก่อนหน้านี้เพื่อคัดลอก และการเรียกใช้คำสั่งต่อไปนี้:

PS> # Save the current execution policy so it can be reset

PS> $SaveExecutionPolicy = Get-ExecutionPolicy

PS> Set-ExecutionPolicy RemoteSigned -Scope Currentuser

PS> CD C:\ADV180002\SpeculationControl

PS> Import-Module .\SpeculationControl.psd1

PS> Get-SpeculationControlSettings

PS> # Reset the execution policy to the original state

PS> Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

สำหรับคำอธิบายโดยละเอียดของการแสดงผลของสคริปต์ของ PowerShell ดูบทความ Knowledge base 4074629 

คำถามที่ถามบ่อย


อ้างอิง