csw2017 privilege escalation on high-end servers due to implementation gaps in cpu hot-add flow

64
Abusing CPU Hot-Add weaknesses to escalate privileges in Server Datacenters Cuauhtemoc Chavez-Corona, Jorge Gonzalez-Diaz, Rene Henriquez-Garcia, Laura Fuentes-Castaneda, Jan Seidl Intel Corporation Security Center of Excellence [email protected] [email protected] March 16, 2017 CanSecWest 2017 Vancouver, Canada 1/24

Upload: cansecwest

Post on 21-Mar-2017

874 views

Category:

Internet


0 download

TRANSCRIPT

Page 1: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Abusing CPU Hot-Add weaknesses to escalateprivileges in Server Datacenters

Cuauhtemoc Chavez-Corona, Jorge Gonzalez-Diaz, ReneHenriquez-Garcia, Laura Fuentes-Castaneda, Jan Seidl

Intel CorporationSecurity Center of Excellence

[email protected]

[email protected]

March 16, 2017

CanSecWest 2017 Vancouver, Canada 1/24

Page 2: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Legal Disclaimer

I The comments and statements are from the authors and notnecessarily Intel's

I Intel technologies' features and benefits depend on systemconfiguration and may require enabled hardware, software orservice activation. Learn more at intel.com, or from the OEMor retailer

I No computer system can be absolutely secure

CanSecWest 2017 Vancouver, Canada 2/24

Page 3: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Background: Datacenter’s landscape

CLOUD

Server Server Server

CanSecWest 2017 Vancouver, Canada 3/24

Page 4: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Background: Datacenter’s landscape

I Mission-critical applications such as e-commerce, ERP, CRM,BI have low tolerance for downtime

I As a response, solutions comprised of robust Hardware +reliable/serviceable FW/SW are continuously being designed

I Are these new systems being architected such that the attacksurface is not increased? We’ll see..

CanSecWest 2017 Vancouver, Canada 4/24

Page 5: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Background: Datacenter’s landscape

I Mission-critical applications such as e-commerce, ERP, CRM,BI have low tolerance for downtime

I As a response, solutions comprised of robust Hardware +reliable/serviceable FW/SW are continuously being designed

I Are these new systems being architected such that the attacksurface is not increased? We’ll see..

CanSecWest 2017 Vancouver, Canada 4/24

Page 6: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Background: Datacenter’s landscape

I Mission-critical applications such as e-commerce, ERP, CRM,BI have low tolerance for downtime

I As a response, solutions comprised of robust Hardware +reliable/serviceable FW/SW are continuously being designed

I Are these new systems being architected such that the attacksurface is not increased? We’ll see..

CanSecWest 2017 Vancouver, Canada 4/24

Page 7: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Background: Attacks coming from DMA entry pointI Understanding DMA Malware ,Patrick Stewin and Iurii

Bystrov, Proceedings of the 9th International Conference onDetection of Intrusions and Malware, and VulnerabilityAssessment,2013

I Direct Memory Attack the KERNEL, ULF FRISK, DEFCON24 August 4-7 2016

CanSecWest 2017 Vancouver, Canada 5/24

Page 8: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Background: Attacks coming from DMA entry pointI Understanding DMA Malware ,Patrick Stewin and Iurii

Bystrov, Proceedings of the 9th International Conference onDetection of Intrusions and Malware, and VulnerabilityAssessment,2013

I Direct Memory Attack the KERNEL, ULF FRISK, DEFCON24 August 4-7 2016

CanSecWest 2017 Vancouver, Canada 5/24

Page 9: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Definition: RAS features

Reliability

Can be defined as the characteristic that ensures the system willprovide correct outputs, and any corrupted data will be detectedand repaired.

Availability

Means that the system will be operating during the plannedtime, avoiding unexpected crashes.

Serviceability

Refers to the simplicity and speed of maintenance and repara-tion.

CanSecWest 2017 Vancouver, Canada 6/24

Page 10: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Definition: CPU Hot Add

CPU Hot Add (aka CPU on-lining) is a RAS feature thatallows customers to increase computing power in a Server byadding a new socket to the already running system at Intel R© QPIinterface without the necessity of shutting down the machine.

I In a multi-CPU system comprised of n processors, one cantherefore choose to boot with m CPUs where m < n

I This allows the possibility to increase the computing powerlater if required by bringing up new CPUs to the alreadyrunning system

CanSecWest 2017 Vancouver, Canada 7/24

Page 11: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Definition: CPU Hot Add

CPU Hot Add (aka CPU on-lining) is a RAS feature thatallows customers to increase computing power in a Server byadding a new socket to the already running system at Intel R© QPIinterface without the necessity of shutting down the machine.

I In a multi-CPU system comprised of n processors, one cantherefore choose to boot with m CPUs where m < n

I This allows the possibility to increase the computing powerlater if required by bringing up new CPUs to the alreadyrunning system

CanSecWest 2017 Vancouver, Canada 7/24

Page 12: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Definition: CPU Hot Add

CPU Hot Add (aka CPU on-lining) is a RAS feature thatallows customers to increase computing power in a Server byadding a new socket to the already running system at Intel R© QPIinterface without the necessity of shutting down the machine.

I In a multi-CPU system comprised of n processors, one cantherefore choose to boot with m CPUs where m < n

I This allows the possibility to increase the computing powerlater if required by bringing up new CPUs to the alreadyrunning system

CanSecWest 2017 Vancouver, Canada 7/24

Page 13: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Definition: CPU Hot Add

CPU On-lining requires coordinated support from the completeapplication stack to ensure correctness while adding a new CPU.

I Hardware. Internal logic in the CPU to drain transactions andprevent originators from sending new ones.

I Firmware. BIOS and SMM routines to trigger, handle andcoordinate CPU on-lining.

I Operating System. Currently several OS’s support this feature.

CanSecWest 2017 Vancouver, Canada 8/24

Page 14: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot process

I BSP initializationI Memory configI etc.

I Release quiesced CPUs

MotherBoard

CPU2

ON

ON

ON

CPU3

CPU1 CPU4

OFF

CanSecWest 2017 Vancouver, Canada 9/24

Page 15: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot process

I BSP initializationI Memory configI etc.

I Release quiesced CPUs

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

CanSecWest 2017 Vancouver, Canada 9/24

Page 16: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot process

I BSP initializationI Memory configI etc.

I Release quiesced CPUs

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

CanSecWest 2017 Vancouver, Canada 9/24

Page 17: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot processI BSP initializationI Memory configI etc.

I Release quiesced CPUs

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

CanSecWest 2017 Vancouver, Canada 9/24

Page 18: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot processI BSP initializationI Memory configI etc.

I Release quiesced CPUs

Interesting!

1. Boot flow is verysensitive

2. Quiesced CPUs needreconfiguration

CanSecWest 2017 Vancouver, Canada 9/24

Page 19: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot processI BSP initializationI Memory configI etc.

I Release quiesced CPUs

Interesting!

1. Boot flow is verysensitive

2. Quiesced CPUs needreconfiguration

CanSecWest 2017 Vancouver, Canada 9/24

Page 20: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot processI BSP initializationI Memory configI etc.

I Release quiesced CPUs

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

ON

CanSecWest 2017 Vancouver, Canada 9/24

Page 21: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

High level overview of Hot Add flow

I Active CPUs enter inquiesce mode

I HotAdd CPU boot processI BSP initializationI Memory configI etc.

I Release quiesced CPUs

MotherBoard

ON

ON

CPU3

ON

CPU1

CPU2

ON

CPU4

CanSecWest 2017 Vancouver, Canada 9/24

Page 22: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Brief overview of Boot Flow

The Boot Strap Processor (BSP) is

chosen

BSP Fetch Code from the Flash

Minimum System Configuration

Memory Initialization.

Memory Reference Code

(MRC)

BIOS ShadowingPAM (Programmable

Attribute Maps) registers are used to make a copy

of BIOS code into memory

SMI initialization

BSP sends the SIPI indication trough the Local

Advance Programmable Controller

Advanced ConfigurationOther platform & devices

init; dispatch drivers (network, I/O, etc.); Produce Boot and Runtime Services

Boot Manager (Select Boot Device) EFI Shell/

Apps; OS Boot Loader(s)

Boot Flow

END

CanSecWest 2017 Vancouver, Canada 10/24

Page 23: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Security Claims from CPU Hot Add definition

One fundamental Security Objective related to CPU Hot Add isthat any new CPU to be introduced in the running system mustexecute a trusted path to ensure its security won't be subverted byany attacker already present in the system

By attackers we mean

I Any rogue code already running in system’s CPUs

I DMA agents whose internal FW has been compromised

CanSecWest 2017 Vancouver, Canada 11/24

Page 24: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Security Claims from CPU Hot Add definition

One fundamental Security Objective related to CPU Hot Add isthat any new CPU to be introduced in the running system mustexecute a trusted path to ensure its security won't be subverted byany attacker already present in the system

By attackers we mean

I Any rogue code already running in system’s CPUs

I DMA agents whose internal FW has been compromised

CanSecWest 2017 Vancouver, Canada 11/24

Page 25: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Assets

There are two interesting regions to be protected in order to ensuresecurity claim presented previously

I 0x38000: Holds the code to be executed in the first SMI bythe newly-added CPU in order to perform SMBASE relocation.

I 0xe2000: Holds SIPI initialization vector code vital for thenewly-added CPU and its integration into the running system.

CanSecWest 2017 Vancouver, Canada 12/24

Page 26: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Assets

There are two interesting regions to be protected in order to ensuresecurity claim presented previously

I 0x38000: Holds the code to be executed in the first SMI bythe newly-added CPU in order to perform SMBASE relocation.

I 0xe2000: Holds SIPI initialization vector code vital for thenewly-added CPU and its integration into the running system.

CanSecWest 2017 Vancouver, Canada 12/24

Page 27: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Assets

There are two interesting regions to be protected in order to ensuresecurity claim presented previously

I 0x38000: Holds the code to be executed in the first SMI bythe newly-added CPU in order to perform SMBASE relocation.

I 0xe2000: Holds SIPI initialization vector code vital for thenewly-added CPU and its integration into the running system.

CanSecWest 2017 Vancouver, Canada 12/24

Page 28: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Why do we care about those assets?

I SMM has superior privileges as it can change different settingswhich cannot be modified by OS

I In Servers, it is usually referred to as ring -2 whereas OS isbeing considered as ring 0

I Corrupting Startup Inter-Process Interrupt vector code is alsointeresting for an attacker as it could potentially be used tomisconfigure initial configuration of the newly-added CPU

CanSecWest 2017 Vancouver, Canada 13/24

Page 29: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Why do we care about those assets?

I SMM has superior privileges as it can change different settingswhich cannot be modified by OS

I In Servers, it is usually referred to as ring -2 whereas OS isbeing considered as ring 0

I Corrupting Startup Inter-Process Interrupt vector code is alsointeresting for an attacker as it could potentially be used tomisconfigure initial configuration of the newly-added CPU

CanSecWest 2017 Vancouver, Canada 13/24

Page 30: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Why do we care about those assets?

I SMM has superior privileges as it can change different settingswhich cannot be modified by OS

I In Servers, it is usually referred to as ring -2 whereas OS isbeing considered as ring 0

I Corrupting Startup Inter-Process Interrupt vector code is alsointeresting for an attacker as it could potentially be used tomisconfigure initial configuration of the newly-added CPU

CanSecWest 2017 Vancouver, Canada 13/24

Page 31: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

CPU2

ON

ON

ON

CPU3

CPU1 CPU4

OFF

DRAM

0x3FFFF

0x30000

CanSecWest 2017 Vancouver, Canada 14/24

Page 32: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

DRAM

0x3FFFF

0x30000

CanSecWest 2017 Vancouver, Canada 14/24

Page 33: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

DRAM

0x3FFFF

0x30000

0x38000

CanSecWest 2017 Vancouver, Canada 14/24

Page 34: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

DRAM

0x3FFFF

0x30000

0x38000

CanSecWest 2017 Vancouver, Canada 14/24

Page 35: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

DRAM

0x3FFFF

0x30000

0x38000

����������������������������

���������������

���������������

CanSecWest 2017 Vancouver, Canada 14/24

Page 36: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

DRAM

0x3FFFF

0x30000

0x38000Malicious SMI Handler

����������������������������

���������������

���������������

CanSecWest 2017 Vancouver, Canada 14/24

Page 37: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

ON

DRAM

0x3FFFF

0x30000

0x38000Malicious SMI Handler

����������������������������

���������������

���������������

CanSecWest 2017 Vancouver, Canada 14/24

Page 38: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Escalate to SMM privileges in a Server

MotherBoard

ON

ON

CPU3

ON

CPU1

CPU2

ON

CPU4

DRAM

0x3FFFF

0x30000

0x38000Malicious SMI Handler

����������������������������

���������������

���������������

CanSecWest 2017 Vancouver, Canada 14/24

Page 39: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Lab Setup

I HardwareI Intel Platform/Motherboard supporting CPU Hot-AddI Intel Xeon E7-8800 V2 family processorI PP3380-AB PCIe 2 x1 - USB3380-AB Evaluation boardI Attacker’s laptop with Windows 10 64bit Operating System

I FirmwareI BMC Firwmare supporting CPU Hot-Add flowI System FW (aka BIOS) supporting CPU Hot-Add Flow

I SoftwareI PCILeech solution and a batch script to automate data writes

to memoryI Operating System supporting CPU Hot-Add (i.e. Windows

2008/2012 Server)

CanSecWest 2017 Vancouver, Canada 15/24

Page 40: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Lab Setup

I HardwareI Intel Platform/Motherboard supporting CPU Hot-AddI Intel Xeon E7-8800 V2 family processorI PP3380-AB PCIe 2 x1 - USB3380-AB Evaluation boardI Attacker’s laptop with Windows 10 64bit Operating System

I FirmwareI BMC Firwmare supporting CPU Hot-Add flowI System FW (aka BIOS) supporting CPU Hot-Add Flow

I SoftwareI PCILeech solution and a batch script to automate data writes

to memoryI Operating System supporting CPU Hot-Add (i.e. Windows

2008/2012 Server)

CanSecWest 2017 Vancouver, Canada 15/24

Page 41: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0x38000 attack: Lab Setup

I HardwareI Intel Platform/Motherboard supporting CPU Hot-AddI Intel Xeon E7-8800 V2 family processorI PP3380-AB PCIe 2 x1 - USB3380-AB Evaluation boardI Attacker’s laptop with Windows 10 64bit Operating System

I FirmwareI BMC Firwmare supporting CPU Hot-Add flowI System FW (aka BIOS) supporting CPU Hot-Add Flow

I SoftwareI PCILeech solution and a batch script to automate data writes

to memoryI Operating System supporting CPU Hot-Add (i.e. Windows

2008/2012 Server)

CanSecWest 2017 Vancouver, Canada 15/24

Page 42: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

PCILeech Configuration

I Place jumper on J3 at PP3380-AB board and start platform

I Run PCILeechFlash Installer.exe

I Wait a while (1 min or so)

I Shutdown the platform

I Remove jumper on J3 at PP3380-AB board and start platform

I Use our simple batch script to write 0x38000 region to injectarbitrary code

CanSecWest 2017 Vancouver, Canada 16/24

Page 43: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Time to watch the DEMO

CanSecWest 2017 Vancouver, Canada 17/24

Page 44: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Mitigating 0x38000 attack

I The attack just described is possible because DMA engineswere still able to inject malicious code in 0x38000 region(despite Hardware effectively prevents code injection fromexisting cores in the system)

I To mitigate this, BIOS leverages existing HW protectionmechanism in Intel CPUs against rogue DMA engines:GENPROTRANGE register programming

I This mitigation is already in place as part of BIOS referencecode delivered to OEMs

CanSecWest 2017 Vancouver, Canada 18/24

Page 45: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Mitigating 0x38000 attack

I The attack just described is possible because DMA engineswere still able to inject malicious code in 0x38000 region(despite Hardware effectively prevents code injection fromexisting cores in the system)

I To mitigate this, BIOS leverages existing HW protectionmechanism in Intel CPUs against rogue DMA engines:GENPROTRANGE register programming

I This mitigation is already in place as part of BIOS referencecode delivered to OEMs

CanSecWest 2017 Vancouver, Canada 18/24

Page 46: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Mitigating 0x38000 attack

I The attack just described is possible because DMA engineswere still able to inject malicious code in 0x38000 region(despite Hardware effectively prevents code injection fromexisting cores in the system)

I To mitigate this, BIOS leverages existing HW protectionmechanism in Intel CPUs against rogue DMA engines:GENPROTRANGE register programming

I This mitigation is already in place as part of BIOS referencecode delivered to OEMs

CanSecWest 2017 Vancouver, Canada 18/24

Page 47: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part I: Take control of the system byinserting rogue code

Corruption of SIPI initialization vector

I DMA malicious writes could be attempted to attack 0xe2000if not properly protected

I However, rogue code already present in other CPUs could tryto corrupt the vector either before CPU on-lining flow getstriggered or in between SMIs

I Mitigation: Secure Integrity check before attempting SIPIvector code execution

CanSecWest 2017 Vancouver, Canada 19/24

Page 48: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part I: Take control of the system byinserting rogue code

Corruption of SIPI initialization vector

I DMA malicious writes could be attempted to attack 0xe2000if not properly protected

I However, rogue code already present in other CPUs could tryto corrupt the vector either before CPU on-lining flow getstriggered or in between SMIs

I Mitigation: Secure Integrity check before attempting SIPIvector code execution

CanSecWest 2017 Vancouver, Canada 19/24

Page 49: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part I: Take control of the system byinserting rogue code

Corruption of SIPI initialization vector

I DMA malicious writes could be attempted to attack 0xe2000if not properly protected

I However, rogue code already present in other CPUs could tryto corrupt the vector either before CPU on-lining flow getstriggered or in between SMIs

I Mitigation: Secure Integrity check before attempting SIPIvector code execution

CanSecWest 2017 Vancouver, Canada 19/24

Page 50: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Depiction of 0xe2000 attack part I

MotherBoard

CPU2

ON

ON

ON

CPU3

CPU1 CPU4

OFF

DRAM

0xE2000

CanSecWest 2017 Vancouver, Canada 20/24

Page 51: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Depiction of 0xe2000 attack part I

MotherBoard

CPU2

ON

ON

ON

CPU3

CPU1 CPU4

OFF

DRAM

0xE2000Malicious Vector

CanSecWest 2017 Vancouver, Canada 20/24

Page 52: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Depiction of 0xe2000 attack part I

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

DRAM

0xE2000Malicious Vector

CanSecWest 2017 Vancouver, Canada 20/24

Page 53: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Depiction of 0xe2000 attack part I

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

BOOT

x

DRAM

0xE2000Malicious Vector

CanSecWest 2017 Vancouver, Canada 20/24

Page 54: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Depiction of 0xe2000 attack part I

MotherBoard

ONON

CPU1

CPU3CPU2

ON

CPU4

ON

x

DRAM

0xE2000Malicious Vector

CanSecWest 2017 Vancouver, Canada 20/24

Page 55: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Depiction of 0xe2000 attack part I

MotherBoard

ON

ON

CPU3

ON

CPU1

CPU2

ON

CPU4 x

DRAM

0xE2000Malicious Vector

CanSecWest 2017 Vancouver, Canada 20/24

Page 56: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part II: Confusion due to name collision

Integrity verification of 0xe2000 region was meant to be achievedthrough a cryptographically strong hash function

I It turns out sometimes one can refer to the output of acryptographic hash function as a checksum

I In fact, this confusion led to erroneously implement anintegrity verification mechanism in the form of a weakchecksum (from a security standpoint)

I Such mechanism can easily be bypassed by crafting a specialrogue code through some tweaks to arithmetically map it tothe expected checksum

CanSecWest 2017 Vancouver, Canada 21/24

Page 57: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part II: Confusion due to name collision

Integrity verification of 0xe2000 region was meant to be achievedthrough a cryptographically strong hash function

I It turns out sometimes one can refer to the output of acryptographic hash function as a checksum

I In fact, this confusion led to erroneously implement anintegrity verification mechanism in the form of a weakchecksum (from a security standpoint)

I Such mechanism can easily be bypassed by crafting a specialrogue code through some tweaks to arithmetically map it tothe expected checksum

CanSecWest 2017 Vancouver, Canada 21/24

Page 58: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part II: Confusion due to name collision

Integrity verification of 0xe2000 region was meant to be achievedthrough a cryptographically strong hash function

I It turns out sometimes one can refer to the output of acryptographic hash function as a checksum

I In fact, this confusion led to erroneously implement anintegrity verification mechanism in the form of a weakchecksum (from a security standpoint)

I Such mechanism can easily be bypassed by crafting a specialrogue code through some tweaks to arithmetically map it tothe expected checksum

CanSecWest 2017 Vancouver, Canada 21/24

Page 59: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

0xe2000 attack part II: Confusion due to name collision

Integrity verification of 0xe2000 region was meant to be achievedthrough a cryptographically strong hash function

I It turns out sometimes one can refer to the output of acryptographic hash function as a checksum

I In fact, this confusion led to erroneously implement anintegrity verification mechanism in the form of a weakchecksum (from a security standpoint)

I Such mechanism can easily be bypassed by crafting a specialrogue code through some tweaks to arithmetically map it tothe expected checksum

CanSecWest 2017 Vancouver, Canada 21/24

Page 60: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Mitigating 0xe2000 attack

I Instead of verifying code vector’s integrity, always shadow afresh copy into 0xe2000 region before its execution

I This mitigation is already in place as well by Intel into theBIOS reference code

CanSecWest 2017 Vancouver, Canada 22/24

Page 61: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Conclusions

I Datacenter products and their features deserve a thoroughsecurity analysis despite old assumptions of being isolatedbehind building walls

I DMA remains as an interesting entry point since it mightenable remote exploitation of security weaknesses; also, itturns out this entry point might be overlooked whilearchitecturing new technologies

I Implementation-wise, it is critical to ensure developerscorrectly understand the exact security mechanism thatmitigates a corresponding threat; failure in this regard couldlead to mistakenly break overall system’s security

CanSecWest 2017 Vancouver, Canada 23/24

Page 62: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Conclusions

I Datacenter products and their features deserve a thoroughsecurity analysis despite old assumptions of being isolatedbehind building walls

I DMA remains as an interesting entry point since it mightenable remote exploitation of security weaknesses; also, itturns out this entry point might be overlooked whilearchitecturing new technologies

I Implementation-wise, it is critical to ensure developerscorrectly understand the exact security mechanism thatmitigates a corresponding threat; failure in this regard couldlead to mistakenly break overall system’s security

CanSecWest 2017 Vancouver, Canada 23/24

Page 63: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Conclusions

I Datacenter products and their features deserve a thoroughsecurity analysis despite old assumptions of being isolatedbehind building walls

I DMA remains as an interesting entry point since it mightenable remote exploitation of security weaknesses; also, itturns out this entry point might be overlooked whilearchitecturing new technologies

I Implementation-wise, it is critical to ensure developerscorrectly understand the exact security mechanism thatmitigates a corresponding threat; failure in this regard couldlead to mistakenly break overall system’s security

CanSecWest 2017 Vancouver, Canada 23/24

Page 64: CSW2017 Privilege escalation on high-end servers due to implementation gaps in CPU Hot-Add flow

Thank you!

Time for Q&As

CanSecWest 2017 Vancouver, Canada 24/24