Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced...

26
Extending Minimalism Outside of the Box Dan Williams and Ricardo Koller, IBM Research USENIX HotCloud 2016 June 20, 2016, Denver, CO Unikernel Monitors

Transcript of Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced...

Page 1: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

Extending Minimalism Outside of the Box

Dan Williams and Ricardo Koller, IBM Research

USENIX HotCloud 2016June 20, 2016, Denver, CO

Unikernel Monitors

Page 2: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation2 24 June 2016

§ Reduced attack surface

§ Better understanding of the system

§ Performance

§ Management

Minimalism is good

Cloud

Application and

softwarestack

Cloud

Page 3: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation3 24 June 2016

Cloud

§ Built from fine-grained modules

§ Only include what app needs

§ Runs directly on virtual hardware

Unikernels: minimal systems?

Page 4: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation4 24 June 2016

§ Is the interface minimal?

The extent of minimalism?

Linux/KVM

QEMU

Unikernel

Page 5: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation5 24 June 2016

§ Is the interface minimal?

§ Is the monitor minimal?

The extent of minimalism?

Linux/KVM

QEMU

Unikernel

Page 6: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation6 24 June 2016

§ Is the interface minimal?

§ Is the monitor minimal?

§ Can we use similar dependency-tracking techniques?

The extent of minimalism?

Linux/KVM

QEMU

Unikernel

Page 7: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation7 24 June 2016

§ Executables contain both application and specialized monitor

Unikernel monitors

Unikernel+Monitor

Linux/KVM

Page 8: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation8 24 June 2016

§ Type-II hypervisor– Sets up memory, VCPU

§ HW-support for virtualization – provides isolated processor context

§ All exits routed to monitor

§ Runs MirageOS unikernels on Solo5 unikernel base

§ https://github.com/djwillia/solo5

Prototype monitor: ukvm

ukvm MirageOSon Solo5

Linux/KVM

Page 9: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation9 24 June 2016

§ Minimal interfaces

§ Simplified monitor implementation and interface (~ 5% code size)

§ Fast boot time (~ 10 ms)

Advantages of unikernel monitors

Unikernel+Monitor

Linux/KVM

Page 10: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation10 24 June 2016

§ Interfaces to today’s clouds are wide and general-purpose– Full virtualization, paravirtualization, OS-level (containers)

§ A general purpose interface cannot be minimal

Minimal interfaces

Page 11: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation11 24 June 2016

§ Default monitor provides generic virtual HW abstraction

Building a unikernel

net-backblk-back

tap

VMMabstraction

guestsetup

monitor

Page 12: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation12 24 June 2016

§ Default monitor provides generic virtual HW abstraction

§ Application depends on – base runtime

Building a unikernel

app

net-back

baseruntime

blk-back

tap

VMMabstraction

guestsetup

monitor

unikernel

Page 13: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation13 24 June 2016

§ Default monitor provides generic virtual HW abstraction

§ Application depends on – base runtime– TCP stack

Building a unikernel

app

TCP

net-front

net-back

baseruntime

blk-back

tap

VMMabstraction

guestsetup

monitor

unikernel

Page 14: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation14 24 June 2016

§ Default monitor provides generic virtual HW abstraction

§ Application depends on – base runtime– TCP stack– No disk

§ Monitor and interface are not minimal!– VENOM attack

Building a unikernel

app

TCP

net-front

net-back

baseruntime

blk-back

tap

VMMabstraction

guestsetup

monitor

unikernel

Page 15: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation15 24 June 2016

§ Default monitor only provides isolated guest context– Destroys unikernel on any exit

Building a unikernel and monitor

guestsetup

monitor

Page 16: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation16 24 June 2016

§ Default monitor only provides isolated guest context– Destroys unikernel on any exit

§ Application depends on – base runtime

Building a unikernel and monitor

app

baseruntime

guestsetup

monitor

unikernel

Page 17: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation17 24 June 2016

§ Default monitor only provides isolated guest context– Destroys unikernel on any exit

§ Application depends on – base runtime– TCP stack

Building a unikernel and monitor

app

TCP

netif

baseruntime

tapguestsetup

monitor

unikernel

Page 18: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation18 24 June 2016

§ Default monitor only provides isolated guest context– Destroys unikernel on any exit

§ Application depends on – base runtime– TCP stack– No disk

§ Monitor and interface is minimal!– “Off by default”

Building a unikernel and monitor

app

TCP

netif

baseruntime

tapguestsetup

monitor

unikernel

Page 19: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation19 24 June 2016

§ Legacy standards are unnecessary for the cloud– BIOS? PCI?

§ Example: shared memory to send network packet

§ What level of abstraction?– Generality tax

§ Specialized interfaces– E.g., avoid VM introspection

Simplicity

/* UKVM_PORT_NETWRITE */struct ukvm_netwrite {

void *data; /* IN */int len; /* IN */int ret; /* OUT */

}

QEMU ukvm

Solo5 Kernel

malloc 6282 6282runtime 2689 2272virtio 727 -loader 886 -

total 10484 8552

MonitorQEMU 25003 -ukvm - 990 (+ 172 tap)

total 25003 1162

Table 1: Lines of code for the kernel and the monitor forthe general-purpose QEMU, and the specialized ukvm.

a regular C main(). The memory and register setup in-cludes setting a linear page table (a unikernel has a singleaddress space), a stack, and loading registers with somearguments for the kernel (like the memory size).The I/O interfaces between ukvm and Solo5 look like

the one in Figure 2. They provide zero-copy IO by allow-ing any address of memory to be used as a buffer (of anysize), and making the call with no more than a single VMexit (no need to probe if the PCI bus is ready, as wouldbe done with virtio). We implemented basic disk andnetwork backends in ukvm by using TAP [18] and hostfile reads and writes.Table 4 shows the lines of code needed for implement-

ing Solo5 on top of QEMU versus ukvm. Most of thereduction in Solo5 comes by removing virtio and theloader. Also, notice how an application configured not touse the network would have 10% less code in ukvm. Fora concrete estimate of the size of the monitor in relationto the unikernel, the ukvm binary is 23KB compared tothe 11MB Solo5 executable image when linked againstthe wwwMirage application (only 0.2%).Our prototype implementation does not automatically

select the minimal configuration needed to run; auto-matic selection is limited to the MirageOS components.

Boot Time. Wemeasured boot time for ukvm and com-pared it against traditional virtualization approaches likeQEMU, and to the more recent lkvm (used by kvmtoolin clear containers [1]). QEMU exposes a physical ma-chine abstraction and lkvm is a more lightweight moni-tor that skips the BIOS and bootloader phase and jumpsdirectly to the 64-bit kernel. lkvm and QEMU were con-figured to use virtio network and block devices. Thethree monitors were configured to use 512 MB of mem-ory, and one 2.90GHz CPU core. Furthermore, the mon-itors were instrumented to trace the first VM instruction,the first serial output, the first network output, and thefinal halt instruction.Figure 4 shows the boot times for QEMU, lkvm, and

Figure 4: Boot times for ukvm (U), lkvm (L), and QEMU(Q) for some applications. ’s’ and ’n’ indicate the firstserial and network output, respectively.

ukvm for 3 MirageOS applications: hello (prints “hello”to the console then exits), block (tests disk reads andwrites), and www (serves static Web pages).The gray bars on the left show the time spent on moni-

tor initialization. As expected, QEMU takes the longest,with 80ms compared to lkvm that takes an average of45ms, and ukvm with 10ms. ukvm and lkvm load the 64-bit kernel immediately, so the kernel produces its first se-rial output (the ’s’) quicker than QEMU, which unpacksan ISO file in real mode to load the kernel. The www barsshow that ukvm is able to do real work as soon as the ker-nel starts as the kernel sends its first network packet (the’n’) 18 milliseconds after its first serial output. lkvm andQEMU, on the other hand, first discover these devices,then initialize them before sending, resulting in at least100ms delay.

5 Conclusion

We propose a new unit of execution for the cloud, builtfrom the bundling of unikernels and specialized uniker-nel monitors. As a first step, with our prototype monitor,ukvm, we have shown that such monitors can be smalland simple, yet powerful enough to run real unikernels.We believe the advantages of specializing cloud softwarestacks—including the monitor—are key to realizing thesecurity and responsiveness needs of future clouds.

References[1] An introduction to Clear Containers. https://lwn.net/

Articles/644675/. (Accessed on 2016-03-06).[2] AppArmor. http://wiki.apparmor.net/index.php/

Main_Page. (Accessed on 2016-03-04).[3] AWS Lambda. https://aws.amazon.com/lambda/. (Ac-

cessed on 2016-03-04).

5

Page 20: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation20 24 June 2016

§ New application domains require on-the-fly service creation– IoT, NFV, Amazon Lambda– Zero-footprint cloud, transient microservices

§ Legacy protocols/emulation, virtual hardware negotiation, and range of guest support can slow things down

Boot time

Page 21: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation21 24 June 2016

§ 3 applications– Hello world– Block device test– Static Web server

§ QEMU: standard monitor

§ lkvm: lightweight monitor

§ ukvm: specialized monitor

Boot times

sn first network output

first serial output

monitor shutdownunikernel executionmonitor boot

Page 22: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation22 24 June 2016

§ 3 applications– Hello world– Block device test– Static Web server

§ QEMU: standard monitor

§ lkvm: lightweight monitor

§ ukvm: specialized monitor

Boot times

sn first network output

first serial output

monitor shutdownunikernel executionmonitor boot

Page 23: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation23 24 June 2016

§ 3 applications– Hello world– Block device test– Static Web server

§ QEMU: standard monitor

§ lkvm: lightweight monitor

§ ukvm: specialized monitor

Boot times

sn first network output

first serial output

monitor shutdownunikernel executionmonitor boot

Page 24: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation24 24 June 2016

§ Monitor is outside hardware protection domain

§ Small enough for formal verification, audit?

§ Cloud providers restrict monitors to certified modules?

Securing the monitors

Page 25: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2016 IBM Corporation25 24 June 2016

§ Extend minimalism through both unikernel and specialized monitor– Better security– Better performance– Better management

§ Prototype: ukvm– https://github.com/djwillia/solo5– Currently being upstreamed as

MirageOS backend– Thank you to MirageOS community,

(especially Martin Lucina, Docker)

Summary

Linux/KVM

Unikernel+Monitor

Page 26: Unikernel Monitors - USENIX · Unikernel Monitors. 2 ©2016 IBM Corporation 24 June 2016 § Reduced attack surface § Better understanding of the system § Performance § Management

©2015 IBM Corporation