37
sVirt: Hardening Linux Virtualization with Mandatory Access Control James Morris Red Hat Security Engineering Linux.conf.au 2009 Hobart, Australia

sVirt: Hardening Linux Virtualization with Mandatory Access Control

Embed Size (px)

DESCRIPTION

sVirt talk given at Linux.conf.au, Hobart, 2009. Video of the talk: http://video.google.com.au/videoplay?docid=5750618585157629496

Citation preview

Page 1: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt: Hardening Linux Virtualization with Mandatory

Access Control

James MorrisRed Hat Security Engineering

Linux.conf.au 2009Hobart, Australia

Page 2: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Goal:

Improve security for Linux virtualization

Page 3: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Linux Virtualization:

Where the “hypervisor” is a normal Linux process

Page 4: sVirt: Hardening Linux Virtualization with Mandatory Access Control

KVM

Lguest

UML

Page 5: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Host Hardware

Host Kernel

Host Userspace

GuestKernel

GuestUserspace

GuestKernel

GuestUserspace

GuestKernel

GuestUserspace

GuestKernel

GuestUserspace

Page 6: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Utilize existing process-based security mechanisms

Page 7: sVirt: Hardening Linux Virtualization with Mandatory Access Control

DAC is not enough:

Subjects can modify own security policy

Page 8: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Mandatory Access Control (MAC):

Subjects cannot bypass security policy

Page 9: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Virtualization Threat Model

(work in progress)

Page 10: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Virtualization introduces new security risks

Page 11: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Flawed hypervisor:

Malicious guest breaks out, attacks other guests or host

Page 12: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Before virtualization:

Systems were physically separated, damage limited to network attacks

Page 13: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Host HardwareHost Hardware

Host Kernel

Host Userspace

Web Server

Host HardwareHost Hardware

Host Kernel

Host Userspace

DNS Server

Local Network

Attack

Page 14: sVirt: Hardening Linux Virtualization with Mandatory Access Control

After virtualization:

Guest systems running on same server, possibly as same UID

Page 15: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Host Hardware

Host Kernel

Host Userspace

GuestKernel

GuestUserspace

GuestKernel

Guest Userspace

Web Server

GuestKernel

GuestUserspace

GuestKernel

Guest Userspace

DNS Server

memory,storage, etc.

localexploits

Page 16: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Malicious or compromised guests can now attack other guests via

local mechanisms

Page 17: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Hypervisor vulnerabilities:

Not theoretical

Evolving field

Potentially huge payoffs

Page 18: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt in a nutshell:

Isolate guests using MAC security policy

Contain hypervisor breaches

Page 19: sVirt: Hardening Linux Virtualization with Mandatory Access Control

libvirt:

Virtualization API by Daniel Veillard

Abstraction layer for managing different virt schemes

Xen, KVM, LXC, OpenVZ

Page 20: sVirt: Hardening Linux Virtualization with Mandatory Access Control

virsh virt-manager

drivers

Xen

OpenVZ

KVM

LXC

hypervisors

iSCSI

logical

NFS

fs

storage

diskUML

API

storage

node

Simplified libvirt architecture

host

hypervisor

guest

guest

guest

Page 21: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt design:

Pluggable security framework for libvirt

Supports MAC security schemes (SELinux, SMACK)

Page 22: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt design:

Security “driver” manages MAC labeling of guests and resources

MAC policy enforced by host kernel

Page 23: sVirt: Hardening Linux Virtualization with Mandatory Access Control

virsh virt-manager

drivers

Xen

OpenVZ

KVM

LXC

hypervisors

iSCSI

logical

NFS

fs

storage

diskUML

API

storage

node

Simplified libvirt architecture w/ SVirt

host

hypervisor

guest

guest

guest

SELinux

etc.

security

* security labels

* *

*

*

Page 24: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt design:

Reuse of proven code and security models

Coherent and complete system policy

Reduced complexity and cost

Page 25: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt design:

Must be usable and useful with demonstrable value

Page 26: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt v1.0:

Provide simple isolation of guests

Zero configuration

Debuggable

Page 27: sVirt: Hardening Linux Virtualization with Mandatory Access Control

SELinux Policy:

Guests and resources uniquely labeled

virtd_isolated_t:<UUID>

Page 28: sVirt: Hardening Linux Virtualization with Mandatory Access Control

SELinux Policy:

Coarse rules for all isolated guests applied to virtd_isolated_t

Page 29: sVirt: Hardening Linux Virtualization with Mandatory Access Control

SELinux Policy:

For simple isolation: all accesses between different UUIDs are denied

Page 30: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Host Hardware

Host Kernel

Host Userspace

GuestKernel

GuestUserspace

GuestKernel

virtd_isolated_t:1

GuestKernel

GuestUserspace

GuestKernel

virtd_isolated_t:2

DNS Server

SELinux

virt_image_t:2virt_image_t:1

Web Server

Page 31: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Future enhancements:

Different types of isolated guests

virtd_isolated_webserver_t

Page 32: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Future enhancements:

Virtual network security

Controlled flow between guests

Distributed guest security

Multilevel security

Page 33: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Related work:

Labeled NFS

Labeled Networking

XACE

Page 34: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Similar work:

XSM (port of Flask to Xen)

Several proprietary schemes

Page 35: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Current status:

Low-level libvirt integration done

Can launch labeled guest

Basic label support in virsh

Page 36: sVirt: Hardening Linux Virtualization with Mandatory Access Control

sVirt project page:

http://selinuxproject.org/page/SVirt

Page 37: sVirt: Hardening Linux Virtualization with Mandatory Access Control

Questions...