58
Securing Self-Virtualizing Ethernet Devices Igor Smolyar , Muli Ben-Yehuda, Dan Tsafrir Securing Self-Virtualizing Ethernet Devices Igor Smolyar , Muli Ben-Yehuda, Dan Tsafrir

Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Securing Self-Virtualizing Ethernet Devices

Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 2: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

In a Nutshell

• Two technologies, SRIOV and Ethernet Flow Control, that areindividually secure . . . . but collectively vulnerable

• We show a new attack where an untrusted virtual machine completely controlsthe network bandwidth of other, unrelated virtual machines

• This attack exploits a vulnerability in self-virtualizing Ethernet NICs

• We show how to build an attack-resistant NIC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 3: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

In a Nutshell

• Two technologies, SRIOV and Ethernet Flow Control, that areindividually secure . . . . but collectively vulnerable

• We show a new attack where an untrusted virtual machine completely controlsthe network bandwidth of other, unrelated virtual machines

• This attack exploits a vulnerability in self-virtualizing Ethernet NICs

• We show how to build an attack-resistant NIC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 4: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

In a Nutshell

• Two technologies, SRIOV and Ethernet Flow Control, that areindividually secure . . . . but collectively vulnerable

• We show a new attack where an untrusted virtual machine completely controlsthe network bandwidth of other, unrelated virtual machines

• This attack exploits a vulnerability in self-virtualizing Ethernet NICs

• We show how to build an attack-resistant NIC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 5: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

In a Nutshell

• Two technologies, SRIOV and Ethernet Flow Control, that areindividually secure . . . . but collectively vulnerable

• We show a new attack where an untrusted virtual machine completely controlsthe network bandwidth of other, unrelated virtual machines

• This attack exploits a vulnerability in self-virtualizing Ethernet NICs

• We show how to build an attack-resistant NIC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 6: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

In a Nutshell

• Two technologies, SRIOV and Ethernet Flow Control, that areindividually secure . . . . but collectively vulnerable

• We show a new attack where an untrusted virtual machine completely controlsthe network bandwidth of other, unrelated virtual machines

• This attack exploits a vulnerability in self-virtualizing Ethernet NICs

• We show how to build an attack-resistant NIC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 7: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Ramifications

• To defend against the attack, you have to either:• Trust your virtual machines, or• Give up on flow control functionality and lose performance, or• Modify device hardware/firmware

• All evaluated vendors are vulnerable

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 8: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Ramifications

• To defend against the attack, you have to either:• Trust your virtual machines, or• Give up on flow control functionality and lose performance, or• Modify device hardware/firmware

• All evaluated vendors are vulnerable

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 9: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Ramifications

• To defend against the attack, you have to either:• Trust your virtual machines, or• Give up on flow control functionality and lose performance, or• Modify device hardware/firmware

• All evaluated vendors are vulnerable

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 10: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Ramifications

• To defend against the attack, you have to either:• Trust your virtual machines, or• Give up on flow control functionality and lose performance, or• Modify device hardware/firmware

• All evaluated vendors are vulnerable

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 11: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Ramifications

• To defend against the attack, you have to either:• Trust your virtual machines, or• Give up on flow control functionality and lose performance, or• Modify device hardware/firmware

• All evaluated vendors are vulnerable

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 12: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Ramifications

• To defend against the attack, you have to either:• Trust your virtual machines, or• Give up on flow control functionality and lose performance, or• Modify device hardware/firmware

• All evaluated vendors are vulnerable

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 13: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Background: Types of I/O Virtualization

hypervisor

Emulation &Para-virtualization

Direct I/O DeviceAssignment

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 14: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Background: Direct Device Assignment

• Great performance minimizes the number of I/O-related world switchesbetween the guest and the host

• Limitation: not scalable 5–10 I/O devices per host, but 50–100 virtualmachines per host

• Self-virtualizing devices are scalable! PCI-SIG proposed the SingleRoot I/O Virtualization (SRIOV) standard for scalable device assignment

• PCI device presents itself as multiple virtual interfaces• SRIOV spec supports up to 64K virtual devices• Intel XL710 40GbE NIC implements 128 virtual interfaces

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 15: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Background: Direct Device Assignment

• Great performance minimizes the number of I/O-related world switchesbetween the guest and the host

• Limitation: not scalable 5–10 I/O devices per host, but 50–100 virtualmachines per host

• Self-virtualizing devices are scalable! PCI-SIG proposed the SingleRoot I/O Virtualization (SRIOV) standard for scalable device assignment

• PCI device presents itself as multiple virtual interfaces• SRIOV spec supports up to 64K virtual devices• Intel XL710 40GbE NIC implements 128 virtual interfaces

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 16: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Background: Direct Device Assignment

• Great performance minimizes the number of I/O-related world switchesbetween the guest and the host

• Limitation: not scalable 5–10 I/O devices per host, but 50–100 virtualmachines per host

• Self-virtualizing devices are scalable! PCI-SIG proposed the SingleRoot I/O Virtualization (SRIOV) standard for scalable device assignment

• PCI device presents itself as multiple virtual interfaces• SRIOV spec supports up to 64K virtual devices• Intel XL710 40GbE NIC implements 128 virtual interfaces

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 17: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Background: Direct Device Assignment

• Great performance minimizes the number of I/O-related world switchesbetween the guest and the host

• Limitation: not scalable 5–10 I/O devices per host, but 50–100 virtualmachines per host

• Self-virtualizing devices are scalable! PCI-SIG proposed the SingleRoot I/O Virtualization (SRIOV) standard for scalable device assignment

• PCI device presents itself as multiple virtual interfaces• SRIOV spec supports up to 64K virtual devices• Intel XL710 40GbE NIC implements 128 virtual interfaces

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 18: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Single Root I/O Virtualization (SRIOV)

Each SRIOV capable device consists of at least one Physical Function (PF) andmultiple virtual partitions called Virtual Functions (VF)

• PF is a standard PCIefunction with fullconfiguration space. Cancontrol entire PCI device andperform I/O operations

• VF is a “lightweight” PCIfunction that implements onlya subset of standard PCIfunctionality, mostly performsI/O

guest VM0

hypervisor

SRIOV NIC in a virtualizedenvironment

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 19: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Where is SRIOV Used?

• HPC with SRIOV it is possible to virtualize HPC setups.

• Cloud Service Providers such as Amazon Elastic Compute Cloud (EC2)use SRIOV as the underlying technology in EC2 HPC services

• Data Centers Oracle Exalogic appliance uses SRIOV technology to share theinternal network

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 20: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Where is SRIOV Used?

• HPC with SRIOV it is possible to virtualize HPC setups.

• Cloud Service Providers such as Amazon Elastic Compute Cloud (EC2)use SRIOV as the underlying technology in EC2 HPC services

• Data Centers Oracle Exalogic appliance uses SRIOV technology to share theinternal network

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 21: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Where is SRIOV Used?

• HPC with SRIOV it is possible to virtualize HPC setups.

• Cloud Service Providers such as Amazon Elastic Compute Cloud (EC2)use SRIOV as the underlying technology in EC2 HPC services

• Data Centers Oracle Exalogic appliance uses SRIOV technology to share theinternal network

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 22: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Where is SRIOV Used?

• HPC with SRIOV it is possible to virtualize HPC setups.

• Cloud Service Providers such as Amazon Elastic Compute Cloud (EC2)use SRIOV as the underlying technology in EC2 HPC services

• Data Centers Oracle Exalogic appliance uses SRIOV technology to share theinternal network

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 23: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• Traditional Ethernet is lossy with no guarantee of delivery of Ethernetframes

• Assumes that reliability provided by upper-level protocols (e.g. TCP) or applications• Most data frame drops happen when the receiver’s buffers are full and has no

memory available to store incoming data frames

• Ethernet Flow Control (FC) proposed to create a lossless data linkmedium

• Priority Flow Control (PFC) extends FC for data centers, part ofData Center Bridging (DCB) or Converged Enhanced Ethernet (CEE)

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 24: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• Traditional Ethernet is lossy with no guarantee of delivery of Ethernetframes

• Assumes that reliability provided by upper-level protocols (e.g. TCP) or applications• Most data frame drops happen when the receiver’s buffers are full and has no

memory available to store incoming data frames

• Ethernet Flow Control (FC) proposed to create a lossless data linkmedium

• Priority Flow Control (PFC) extends FC for data centers, part ofData Center Bridging (DCB) or Converged Enhanced Ethernet (CEE)

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 25: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• Traditional Ethernet is lossy with no guarantee of delivery of Ethernetframes

• Assumes that reliability provided by upper-level protocols (e.g. TCP) or applications• Most data frame drops happen when the receiver’s buffers are full and has no

memory available to store incoming data frames

• Ethernet Flow Control (FC) proposed to create a lossless data linkmedium

• Priority Flow Control (PFC) extends FC for data centers, part ofData Center Bridging (DCB) or Converged Enhanced Ethernet (CEE)

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 26: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• Traditional Ethernet is lossy with no guarantee of delivery of Ethernetframes

• Assumes that reliability provided by upper-level protocols (e.g. TCP) or applications• Most data frame drops happen when the receiver’s buffers are full and has no

memory available to store incoming data frames

• Ethernet Flow Control (FC) proposed to create a lossless data linkmedium

• Priority Flow Control (PFC) extends FC for data centers, part ofData Center Bridging (DCB) or Converged Enhanced Ethernet (CEE)

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 27: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control1 The sender (e.g. Ethernet switch) transmits data faster than the receiver can

process2 The receiver (e.g. host’s Ethernet NIC) runs out of space3 The receiver sends the sender a MAC control frame with a pause request4 The sender stops transmitting data for requested period of time

receiver buffer

PAUSE

DATA

sender receiver

sender buffer

1. sender transmits data 2. receiver buffer

reaches threshold

3. receiver sends

PAUSE request

4. sender pause

transmission

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 28: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control1 The sender (e.g. Ethernet switch) transmits data faster than the receiver can

process2 The receiver (e.g. host’s Ethernet NIC) runs out of space3 The receiver sends the sender a MAC control frame with a pause request4 The sender stops transmitting data for requested period of time

receiver buffer

PAUSE

DATA

sender receiver

sender buffer

1. sender transmits data 2. receiver buffer

reaches threshold

3. receiver sends

PAUSE request

4. sender pause

transmission

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 29: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control1 The sender (e.g. Ethernet switch) transmits data faster than the receiver can

process2 The receiver (e.g. host’s Ethernet NIC) runs out of space3 The receiver sends the sender a MAC control frame with a pause request4 The sender stops transmitting data for requested period of time

receiver buffer

PAUSE

DATA

sender receiver

sender buffer

1. sender transmits data 2. receiver buffer

reaches threshold

3. receiver sends

PAUSE request

4. sender pause

transmission

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 30: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control1 The sender (e.g. Ethernet switch) transmits data faster than the receiver can

process2 The receiver (e.g. host’s Ethernet NIC) runs out of space3 The receiver sends the sender a MAC control frame with a pause request4 The sender stops transmitting data for requested period of time

receiver buffer

PAUSE

DATA

sender receiver

sender buffer

1. sender transmits data 2. receiver buffer

reaches threshold

3. receiver sends

PAUSE request

4. sender pause

transmission

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 31: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control1 The sender (e.g. Ethernet switch) transmits data faster than the receiver can

process2 The receiver (e.g. host’s Ethernet NIC) runs out of space3 The receiver sends the sender a MAC control frame with a pause request4 The sender stops transmitting data for requested period of time

receiver buffer

PAUSE

DATA

sender receiver

sender buffer

1. sender transmits data 2. receiver buffer

reaches threshold

3. receiver sends

PAUSE request

4. sender pause

transmission

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 32: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• When receiver runs out of the buffers, what is the required pause frame rate tostop the transmission completely?

linkspeed

[Gbps]

single framepause time

[ms]

frame rate requiredto stop transmission

[frames/second]

1 33.6 3010 3.36 29940 0.85 1193

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 33: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• When receiver runs out of the buffers, what is the required pause frame rate tostop the transmission completely?

linkspeed

[Gbps]

single framepause time

[ms]

frame rate requiredto stop transmission

[frames/second]

1 33.6 3010 3.36 29940 0.85 1193

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 34: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Ethernet Flow Control

• When receiver runs out of the buffers, what is the required pause frame rate tostop the transmission completely?

linkspeed

[Gbps]

single framepause time

[ms]

frame rate requiredto stop transmission

[frames/second]

1 33.6 3010 3.36 29940 0.85 1193

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 35: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attacking VMs via Flow Control

• Flow Control works on link-level

• Link is shared between VMs; all VMs with direct access to the VFs of thesame PF share the same physical link to the edge switch

• Each FC Pause Frame halts traffic on the entire link

• All VFs associated with this PF are affected

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 36: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The Attack

• The malicious VM sends a pause frame

• All traffic on the shared link pauses• And then continues. . .

• Until the malicious VM sends the next pause frameSecuring Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 37: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The Attack

• The malicious VM sends a pause frame

• All traffic on the shared link pauses• And then continues. . .

• Until the malicious VM sends the next pause frameSecuring Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 38: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The Attack

• The malicious VM sends a pause frame

• All traffic on the shared link pauses• And then continues. . .

• Until the malicious VM sends the next pause frameSecuring Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 39: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The Attack

• The malicious VM sends a pause frame

• All traffic on the shared link pauses• And then continues. . .

• Until the malicious VM sends the next pause frameSecuring Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 40: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The Attack

• The malicious VM sends a pause frame

• All traffic on the shared link pauses• And then continues. . .

• Until the malicious VM sends the next pause frameSecuring Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 41: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Attack Evaluation—Setup

Our testbed consists of two servers: one acting as the client and the other as the hostwith SRIOV capable NIC

• VF1 assigned to VM1 and VF2to VM2

• traffic generated between VM1and the client

• VM2 attacks VM1 by sendingPAUSE frames to the switch

VF1 VF2

host

clientPF

SR-IOV

enabled NIC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 42: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Pause Frames Attack Results using SRIOV 10GbE NIC

• On the left, victim throughput as a function of pause frames rate

• On the right, victim latency as a function of pause frames rate

0

2

4

6

8

10

0 100 200 300

vic

tim

th

rou

gh

pu

t [

Gb

/s]

pause frames attacker sends each second [frames/second]

0

500

1000

1500

2000

0 50 100 150 200 250 300

vic

tim

la

ten

cy [

µs]

pause frames attacker sends each second [frames/second]

message size64B

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 43: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

What do we propose?

• Filter outbound traffic transmitted by a VF

• All valid pause frames are generated by the NIC’s hardware and have the PF’ssource MAC address

• All malicious pause frames are sent with source address of a VF

• In ideal world we would modify NIC’s hardware/firmware to filter out maliciouspause frames

• But . . . in reality NIC uses proprietary closed firmware and hardware §

• So, we built a Virtualization-Aware Network Flow Controller (VANFC)—asoftware-based prototype of an SRIOV Ethernet NIC with pause frame filtering.

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 44: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

What do we propose?

• Filter outbound traffic transmitted by a VF

• All valid pause frames are generated by the NIC’s hardware and have the PF’ssource MAC address

• All malicious pause frames are sent with source address of a VF

• In ideal world we would modify NIC’s hardware/firmware to filter out maliciouspause frames

• But . . . in reality NIC uses proprietary closed firmware and hardware §

• So, we built a Virtualization-Aware Network Flow Controller (VANFC)—asoftware-based prototype of an SRIOV Ethernet NIC with pause frame filtering.

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 45: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

What do we propose?

• Filter outbound traffic transmitted by a VF

• All valid pause frames are generated by the NIC’s hardware and have the PF’ssource MAC address

• All malicious pause frames are sent with source address of a VF

• In ideal world we would modify NIC’s hardware/firmware to filter out maliciouspause frames

• But . . . in reality NIC uses proprietary closed firmware and hardware §

• So, we built a Virtualization-Aware Network Flow Controller (VANFC)—asoftware-based prototype of an SRIOV Ethernet NIC with pause frame filtering.

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 46: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

What do we propose?

• Filter outbound traffic transmitted by a VF

• All valid pause frames are generated by the NIC’s hardware and have the PF’ssource MAC address

• All malicious pause frames are sent with source address of a VF

• In ideal world we would modify NIC’s hardware/firmware to filter out maliciouspause frames

• But . . . in reality NIC uses proprietary closed firmware and hardware §

• So, we built a Virtualization-Aware Network Flow Controller (VANFC)—asoftware-based prototype of an SRIOV Ethernet NIC with pause frame filtering.

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 47: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

What do we propose?

• Filter outbound traffic transmitted by a VF

• All valid pause frames are generated by the NIC’s hardware and have the PF’ssource MAC address

• All malicious pause frames are sent with source address of a VF

• In ideal world we would modify NIC’s hardware/firmware to filter out maliciouspause frames

• But . . . in reality NIC uses proprietary closed firmware and hardware §

• So, we built a Virtualization-Aware Network Flow Controller (VANFC)—asoftware-based prototype of an SRIOV Ethernet NIC with pause frame filtering.

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 48: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The VANFC design

• Internal switch replicatesEthernet switch

• We add a software basedextension to the NICinternal switch

• Switch extension filtersmalicious pause frameswith source address of aVFs Schema of VANFC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 49: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The VANFC design

• Internal switch replicatesEthernet switch

• We add a software basedextension to the NICinternal switch

• Switch extension filtersmalicious pause frameswith source address of aVFs Schema of VANFC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 50: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The VANFC design

• Internal switch replicatesEthernet switch

• We add a software basedextension to the NICinternal switch

• Switch extension filtersmalicious pause frameswith source address of aVFs Schema of VANFC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 51: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

The VANFC design

• Internal switch replicatesEthernet switch

• We add a software basedextension to the NICinternal switch

• Switch extension filtersmalicious pause frameswith source address of aVFs Schema of VANFC

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 52: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

VANFC performance evaluation results in 10GbE setup• We attack with 150 pause frames per second, to reduce perfromance to 50%• VANFC completely blocks the attack and introduces no performance

penalty

0

0.2

0.4

0.6

0.8

1

iperfstream[Mb/s]

apache1MB

[req/s]

netperf RR64B

[packets/s]

netperf RR1024B

[packets/s]

memcached[req/s]

apache1KB

[req/s]

norm

aliz

ed thro

ughput

[rela

tive to b

aselin

e s

yste

m]

baseline systembaseline system under attackprotected system

protected system under attack

latency oriented throughput oriented

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 53: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Current Situation in the Industry

• Mellanox• updated firmware for ConnectX-3 NICs provided for testing and planned to be

released in August• fix for ConnectX-4 is in progress

• Qlogic (Broadcom chip)• updated driver/firmware provided for testing• fix is based on the proposed solution of filtering malicious pause frames sent from

VF’s• public release is in progress

• Other major vendors were notified, no solution provided yet

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 54: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Current Situation in the Industry

• Mellanox• updated firmware for ConnectX-3 NICs provided for testing and planned to be

released in August• fix for ConnectX-4 is in progress

• Qlogic (Broadcom chip)• updated driver/firmware provided for testing• fix is based on the proposed solution of filtering malicious pause frames sent from

VF’s• public release is in progress

• Other major vendors were notified, no solution provided yet

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 55: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Current Situation in the Industry

• Mellanox• updated firmware for ConnectX-3 NICs provided for testing and planned to be

released in August• fix for ConnectX-4 is in progress

• Qlogic (Broadcom chip)• updated driver/firmware provided for testing• fix is based on the proposed solution of filtering malicious pause frames sent from

VF’s• public release is in progress

• Other major vendors were notified, no solution provided yet

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 56: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Current Situation in the Industry

• Mellanox• updated firmware for ConnectX-3 NICs provided for testing and planned to be

released in August• fix for ConnectX-4 is in progress

• Qlogic (Broadcom chip)• updated driver/firmware provided for testing• fix is based on the proposed solution of filtering malicious pause frames sent from

VF’s• public release is in progress

• Other major vendors were notified, no solution provided yet

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 57: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Conclusions

• Removing host from the I/O path requires adding filtering functionality to thehardware

• Current implementation of Ethernet SRIOV devices is incompatible withEthernet flow control

• We show the new attack that exploits vulnerability in Ethernet SRIOV devices

• Our solution, the VANFC, prevents the attack and imposes no overhead

• Future work: extend our findings to SRIOV InfiniBand, Fiber Channel, NVMeSSD and GPGU

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir

Page 58: Securing Self-Virtualizing Ethernet Devices...Self-virtualizing devices are scalable! PCI-SIG proposed the Single Root I/O Virtualization (SRIOV) standard for scalable device assignment

Thank You

Questions?

Securing Self-Virtualizing Ethernet Devices Igor Smolyar, Muli Ben-Yehuda, Dan Tsafrir