HEX Switch:
Hardware-assisted security extensions of OpenFlow
Taejune Park / KAIST / taejune.park@kaist.ac.kr Zhaoyan Xu / StackRox Inc. / z@stackrox.com Seungwon Shin / KAIST / claude@kaist.ac.kr
HEX Switch: Hardware-assisted security extensions of OpenFlow - - PowerPoint PPT Presentation
HEX Switch: Hardware-assisted security extensions of OpenFlow Taejune Park / KAIST / taejune.park@kaist.ac.kr Zhaoyan Xu / StackRox Inc. / z@stackrox.com Seungwon Shin / KAIST / claude@kaist.ac.kr Software-Defined Networking
Taejune Park / KAIST / taejune.park@kaist.ac.kr Zhaoyan Xu / StackRox Inc. / z@stackrox.com Seungwon Shin / KAIST / claude@kaist.ac.kr
/36
virtualized environments
2
/36
virtualized environments
3
/36
Data-Plane Layer Control-Plane Layer Network Application Network Application Network Application Network Control Apps.
Standard Protocol (e.g., OpenFlow)
Security Apps. Network Application Network Application Security Application Middle-box
4
/36
Data-Plane Layer Control-Plane Layer Network Application Network Application Network Application Network Control Apps.
Standard Protocol (e.g., OpenFlow)
Security Apps. Network Application Network Application Security Application Middle-box
5
/36
Data-Plane Layer Control-Plane Layer Network Application Network Application Network Application Network Control Apps.
Standard Protocol (e.g., OpenFlow)
Security Apps. Network Application Network Application Security Application Middle-box
6
/36
Data-Plane Layer Control-Plane Layer Network Application Network Application Network Application Network Control Apps.
Standard Protocol (e.g., OpenFlow)
Security Apps. Network Application Network Application Security Application Middle-box
7
/36
Data-Plane Layer Control-Plane Layer Network Application Network Application Network Application Network Control Apps.
Standard Protocol (e.g., OpenFlow)
Security Apps. Network Application Network Application Security Application Middle-box
8
/36
Category SDN Applications Middle-boxes
Flexibility Management Deployability Performance Functionality
9
/36
virtualization enablement within SDN data plane.” IEEE INFOCOM 2017 (Also, HotSDN 2014)
Software-defined Networking Security Applications with OFX." NDSS 2016.
10
/36
virtualization enablement within SDN data plane.” IEEE INFOCOM 2017 (Also, HotSDN 2014)
Software-defined Networking Security Applications with OFX." NDSS 2016.
11
/36
virtualization enablement within SDN data plane.” IEEE INFOCOM 2017 (Also, HotSDN 2014)
Software-defined Networking Security Applications with OFX." NDSS 2016.
12
/36
UNISAFE (based on Open vSwitch) Lookup Flow table Execute actions Security actions Flow table
MATCH Actions Flow_A sec_dos(mbps=100), output:2 Flow_B sec_dos(mbps=500),sec_scan(…),output:3 Proceedings of the 2016 ACM International Workshop on Security in Software Defined Networks & Network Function Virtualization. ACM, 2016
13
/36
14
/36
Bandwidth(Mbps) 1 10 50 100 500 1000 Throughput(%) 10 20 30 40 50 60 70 80 90 100 110 Throughput forwarding dos scan1 scan5 dpi100 dpi500 dpi1000
15
/36
Bandwidth(Mbps) 1 10 50 100 500 1000 Throughput(%) 10 20 30 40 50 60 70 80 90 100 110 Throughput forwarding dos scan1 scan5 dpi100 dpi500 dpi1000
16
/36
17
Manual Operation Controller
?
/36
18
Manual Operation Controller
?
/36
19
Security Actions Security Policy Controller communication
/36
20
Packet preprocessor
Host Intf. Flow Table Controller < HEX Security Processor > Buffering (Input selection)
Read Data Storage Update Data Storage
Inspection
Host Intf. Action processor
F l
k e y Packet
Packet buffer
Input
Data Storage (BRAM)
A l e r t M s g
F l
k e y , s t a t s & A c t i
k e y Stage 1 Stage 2 Stage 3 Stage 4-5
Input Arbiter + Output queue Policy Decision (Forwarding)
Stage 6
/36
21
Packet preprocessor
Host Intf. Flow Table Controller < HEX Security Processor > Buffering (Input selection)
Read Data Storage Update Data Storage
Inspection
Host Intf. Action processor
F l
k e y Packet
Packet buffer
Input
Data Storage (BRAM)
A l e r t M s g
F l
k e y , s t a t s & A c t i
k e y Stage 1 Stage 2 Stage 3 Stage 4-5
Input Arbiter + Output queue Policy Decision (Forwarding)
Stage 6
Flow Table Controller
/36
22
Packet preprocessor
Host Intf. Flow Table Controller < HEX Security Processor > Buffering (Input selection)
Read Data Storage Update Data Storage
Inspection
Host Intf. Action processor
F l
k e y Packet
Packet buffer
Input
Data Storage (BRAM)
A l e r t M s g
F l
k e y , s t a t s & A c t i
k e y Stage 1 Stage 2 Stage 3 Stage 4-5
Input Arbiter + Output queue Policy Decision (Forwarding)
Stage 6
Read Data Storage Update Data Storage
Data Storage (BRAM)
/36
23
Packet preprocessor
Host Intf. Flow Table Controller < HEX Security Processor > Buffering (Input selection)
Read Data Storage Update Data Storage
Inspection
Host Intf. Action processor
F l
k e y Packet
Packet buffer
Input
Data Storage (BRAM)
A l e r t M s g
F l
k e y , s t a t s & A c t i
k e y Stage 1 Stage 2 Stage 3 Stage 4-5
Input Arbiter + Output queue Policy Decision (Forwarding)
Stage 6
Inspection
/36
requires width bandwidth => Transfer the address first and read directly memory
24
Scanning Inspection Logic DoS Inspection Logic Anomaly Inspection Logic Read Pkt. Payload Deep Packet Inspection Logic
Data storage
F l
K e y , S t a t s & A c t i
K e y
HEX Action Input Selector
Wide Data Bus
Address of large data Pattern list
/36
=> If the current bps exceeds 1000 Mbps, redirect the flow to port 2.
and drop the packet
to an alternative port
25
Policy handler
Discard Alert Redirect
Inspection Logic
/36
[HEX Switch]
Processing Sequence (abbreviated)
[Host Software]
Msg Handler
OpenFlow Parser / Flow table Mgmt.
OpenFlow Protocol Device Driver
<Registers>
Flow Table Registers To Controller Others... (stats, ctrl, …) Flow Table Controller Read
HEX Security Processor
Host device and software Device driver
26
/36
[HEX Switch]
Processing Sequence (abbreviated)
[Host Software]
Msg Handler
OpenFlow Parser / Flow table Mgmt.
OpenFlow Protocol Device Driver
<Registers>
Flow Table Registers To Controller Others... (stats, ctrl, …) Flow Table Controller Read
HEX Security Processor
through a OpenFlow channel
27
/36
28
[HEX Switch]
Processing Sequence (abbreviated)
[Host Software]
Msg Handler
OpenFlow Parser / Flow table Mgmt.
OpenFlow Protocol Device Driver
<Registers>
Flow Table Registers To Controller Others... (stats, ctrl, …) Flow Table Controller Read
HEX Security Processor
/36
HEX Switch (Capacity: 1000Mbps) Flow A 800Mbps Flow B 700Mbps Flow A Flow B Actions Flow A sec_dos(mbps=1000),output:1 sec_dos(mbps=1000),output:2 Match Flow B
The total incoming bandwidth from Flow A/B evidently exceeds 1000 Mbps, but the DoS detectors never trigger an alert!
29
/36
… Actions C B
sec_xyz (id = 10, …)
Match
sec_xyz (id = 10, …)
A …
sec_xyz (id = 10, …)
sec_xyz
30
Data Storage
A c t i
k e y & C l u s t e r I D s
DoS Action Cluster Map Hash Hash
… … 5555,6666 Data 0xBB Address 3333,4444 0xAA 0xCC 1111,2222
DPI Action Cluster Map
… … @DPI_30 Data 0xFF Address @DPI_20 0xEE 0x11 @DPI_10
Data storage Distributor
aaaa Patterns 2 Num patterns 1 … vulnerable bbbb Patterns 2 Num patterns 1 … vulnerable list Patterns 2 Num patterns 1 … vulnerable
DPI_10
Build Bus Data
U p d a t e D a t a
/36
DoS detector can successfully detect the bandwidth excess and alert this.
HEX Switch (Capacity: 1000Mbps) Flow A 800Mbps Flow B 700Mbps Flow A Flow B Actions Flow A sec_dos(mbps=1000,id=10),… sec_dos(mbps=1000,id=10),… Match Flow B
700 + 800
ID
… 10 Data …
DoS Data section
Flow A 800Mbps Flow B 700Mbps
DoS Inspection logic
Detected
(Mbps > 1000) ? true : false
31
/36
and OpenFlow switch from the NetFPGA project (https://github.com/NetFPGA)
and Deep Packet Inspector (Payload inspector)
32 JTAG via 5-pin USB Power cable Power switch Intf 0 Intf 1 Intf 2 Intf 3 PCIe Gen2 x4
/36
1) Performance of the HEX switch 2) Performance of simple forwarding by the normal OpenFlow switch 3) Performance of OVS based implementation (i.e., UNISAFE)
33
HEX Switch
h1
1 GbE 1 GbE
h2
1 GbE 1 GbE
OpenFlow Switch (NetFPGA-1G-CML)
h1
1 GbE 1 GbE
h2
1 GbE 1 GbE
Reference NIC (NetFPGA-1G-CML)
h1
1 GbE 1 GbE
h2
1 GbE 1 GbE
OVS (UNISAFE)
/36
20 40 60 80 100 200 400 600 800 1000 Throughput (%) Bandwidth (Mbps) HEX (DoS+DPI) Native O.F. OVS simple OVS DoS OVS DPI 20 40 60 80 100 200 400 600 800 1000 Throughput (%) Bandwidth (Mbps) 0.2 0.4 0.6 0.8 1 0.2 0.25 0.3 0.35 0.4 0.45 CDF Latency (ms) HEX (DoS+DPI) Native O.F. OVS simple OVS DoS OVS DPI
34
HEX & Simple Fwd. UNISAFE HEX & Simple Fwd. UNISAFE
/36
35