SLIDE 1 CapNet: Security and Least Authority in a Capability- Enabled Cloud
Anton Burtsev University of California, Irvine David Johnson, Josh Kunz, Eric Eide, Jacobus Van der Merwe University of Utah
SLIDE 2
Modern clouds are vulnerable
SLIDE 3
Step 1: End-device
SLIDE 4 Endpoints are inherently vulnerable
50 100 150 200 250 300 350 400 2009 2010 2011 2012 2013 2014 2015 2016 2017
Linux Kernel Vulnerabilities by Year
SLIDE 5 Step 2: cloud network
Cloud network is the main attack amplifier
SLIDE 6 Legacy network-isolation primitives
- Global tenant-wide access
control rules
- E.g., security groups
- Lack of mutual isolation
- Lack of decentralized access
control
- Need to trust a third party
SLIDE 7
Capability-enabled network
SLIDE 8
CapNet Architecture
SLIDE 9 Threat model
- We trust
- Cloud provider infrastructure
- Network switches
- SDN controller
- Hypervisors
- Cloud software stack
- Hosts are malicious
- Virtual and physical hosts on the network
- Providers of third-party cloud services
SLIDE 10 CapNet Architecture
- Software defined network (SDN)
- CapNet runs as an SDN
controller application
- Tracks resources of the network
- By default nodes are completely
isolated
SLIDE 11
Objects and capabilities
SLIDE 12 CapNet Architecture
- On the host, capabilities are just
64-bit numbers
- Have no meaning outside of the
host
- Capabilities are resolved through
Node’s CSpace into pointers to
- ther objects
- CapNet associates a Node object
with each host on the network
- Unique {switch, port} pair
SLIDE 13 CapNet Objects
Physical resources Capability graph
SLIDE 14 Nodes
- Node is "born" with
- ne special capability,
rp0, connecting it to creator
SLIDE 15 RendezvousPoints
allow Nodes exchange capabilities
trees (CDT)
SLIDE 16 Flows
communication channel
- The ability to send packets to a
particular network endpoint
SLIDE 17 Grant
i nvoke ( c a p c , m e t hod m , a r gs ) gr a nt . gr a nt ( c a p c )
- Grant allows a node to operate on behalf of another node
- i.e., create objects on its behalf, enable network connections
- Support for legacy capability-oblivious hosts
SLIDE 18 Grant
i nvoke ( c a p c , m , a r gs ) gr a nt . gr a nt ( c a p c ) gr a nt . t a ke ( c a pa bi l i t y_i d c a p_i d)
SLIDE 19 Grant
i nvoke ( c a p c , m , a r gs ) gr a nt . gr a nt ( c a p c ) gr a nt . t a ke ( c a pa bi l i t y_i d c a p_i d) gr a nt . c r e a t e ( Fl ow)
SLIDE 20 Convenient network programming
two nodes A and B
- 1. connect (cap gantA, cap grantB)
2. flowA = grantA.create(Flow) 3. flowB = grantB.create(Flow) 4. grantA.grant(flowB) 5. grantA.grant(flowA)
SLIDE 21
Decentralized Authority and Collaboration
SLIDE 22 Reset operation
- Reset the node to a clean, isolated state irrespective of its prior
state and ownership
SLIDE 23 Reset operation: internals
- Tracking and cleaning authority of the node
SLIDE 24
Reset preserves ownership
SLIDE 25
Membranes: recursive isolation of capability graphs
SLIDE 26
Membranes
SLIDE 27
Membranes
SLIDE 28
Membranes
SLIDE 29 SealersUnsealers
FAIL!
SLIDE 30
In CapNet SealersUnsealers go through membranes unlabeled
SLIDE 31
Protocols of Secure Collaboration
SLIDE 32
Secure provider protocol
SLIDE 33
Recursion
SLIDE 34 Trees and general graphs
- Membranes and reset allow the construction of trees in
capability graphs
SLIDE 35 Trees and general graphs
- SealerUnsealer enable cloud topologies that are general graphs
SLIDE 36
Joint computation protocol
SLIDE 37
SLIDE 38
CapNet in OpenStack
SLIDE 39 Thank you!
Anton Burtsev aburtsev@uci.edu Paper: SoCC’17 Source: https://gitlab.flux.utah.edu/tcloud/capnet Test drive in CloudLab: https://www.cloudlab.us/p/TCloud/OpenStack-Capnet
SLIDE 40
Endpoint
SLIDE 41
Recursive isolation of capability graphs
SLIDE 42 CapNet Objects
- Node – hosts on the network
- RendezvousPoint – exchange of capabilities
- Flow – network flows
- Grant – support for unmodified hosts
- Membrane – transitive isolation of capability graphs
- SealerUnsealer – secure transport of capabilities
Physical resources Capability graph