Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter...

23
08/24/09 Secure Virtualization Using SELinux Daniel J Walsh [email protected]

Transcript of Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter...

Page 1: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

08/24/09

Secure Virtualization Using SELinux

Daniel J [email protected]

Page 2: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh2

Virtualization Dream

SANSAN

KVM

Individual Servers/Desktops

Consolidated Servers/Desktops

Consolidated StorageIndividual Storage

Page 3: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh3

Host Kernel

User Space

Web App

host Kernel

User Space

DNS Server

Before Virtualization

Page 4: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh4

After Virtualization

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User Space

Web App

Guest Kernel

User Space

DNS Server

Page 5: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh5

What could go wrong???

What could go wrong?

What could possibly go wrong?

Page 6: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh6

Hypervisor vulnerabilities

● Not theoretical● Evolving field● Potentially huge payoffs● Xen already compromised...

Page 7: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh7

XEN Vulnerabilityhttp://www.hacker-soft.net/Soft/Soft_13289.htm

The Challenges posed by SELinux are taken into consideration.

Page 8: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh8

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User Space

Web App

Guest Kernel

User Space

DNS Server

Local Exploits

Page 9: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh9

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User Space

Web App

Guest Kernel

User Space

DNS Server

Guest Kernel

User Space

DNS Server

Guest Kernel

User Space

DNS Server

Who is the weakest link?

Page 10: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh10

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Page 11: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh11

Hansel and Gretl?

Page 12: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh12

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Page 13: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh13

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User SpaceWeb

App

Guest Kernel

User SpaceDNS

Server

CokeSecret

Formula

Page 14: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh14

Enter SELinux..

SELinux is all about labeling● Processes get labels

● Virtual machines are processes!!!

● Files/Devices Get Labels● Virtual images are stored on files/devices!!!!

● Rules govern how Process Labels Interact with Process/File Labels.

● Kernel Enforces these Rules.

Page 15: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh15

Svirt in a Nutshell

Isolate guests using Mandatory Access Control security policy

Contain Hypervisor Breaches

Page 16: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh16

Libvirt – Dynamic Labeling

● Generates a Random unused MCS label.

● MCS – Multiple Category Security● Labels the image file/device - svirt_image_t:MCS1

● Launches the image - svirt_t:MCS1

● Labels R/O Content – virt_content_t:s0

● Labels Shared R/W Content – svirt_t:s0

● Labels image on completion - virt_image_t:s0

Page 17: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh17

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User Space

Web App

Guest Kernel

User Space

DNS Server

svirt_t:MCS1svirt_t:MCS2

SELinux

svirt_image_t:MCS1 svirt_image_t:MCS2

Page 18: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh18

Libvirt – Static Label - MLS

Multi-Level Security

● Administrator must specify image label svirt_t:TopSecret

● Launches the image - svirt_t:TopSecret

● Libvirt will NOT label any content. Administrator responsible for labeling content.

Page 19: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh19

Virt Manager

Page 20: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh20

Host Hardwarememory/storage, etc.

Host Kernel

Guest Kernel

User Space

Web App

Guest Kernel

User Space

DNS Server

svirt_t:TopSecret

svirt_t:Unclassified

SELinux

svirt_image_t:TopSecret svirt_image_t:Unclassified

Page 21: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh21

DEMO

Page 22: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh22

Future Enhancements

● Different Types for confined guest● svirt_web_t – type

● only allow a guest virtual machine to listen on web ports

● Confine a Windows 2003 box to only run as a ISS server

● If corrupted it could not become a Spam Bot.

Page 23: Secure Virtualization Using SELinux - Fedoradwalsh/SELinux/Presentations/svirt.pdf · Enter SELinux.. SELinux is all about labeling Processes get labels Virtual machines are processes!!!

Red Hat Summit 2009 | Daniel J Walsh23

sVirt Project Page

● http://selinuxproject.org/page/SVirt