Q UBES OS Joanna Rutkowska Invisible Things Lab Qubes OS A - - PowerPoint PPT Presentation

q ubes os
SMART_READER_LITE
LIVE PREVIEW

Q UBES OS Joanna Rutkowska Invisible Things Lab Qubes OS A - - PowerPoint PPT Presentation

Q UBES OS Joanna Rutkowska Invisible Things Lab Qubes OS A reasonably secure desktop OS Security by Compartmentalization Qubes != Hypervisor/VMM (Qubes is a user of a VMM, presently Xen) Qubes != Linux Distro W HY ? Because we


slide-1
SLIDE 1

QUBES OS

Joanna Rutkowska Invisible Things Lab

slide-2
SLIDE 2

Qubes OS

  • A reasonably secure desktop OS
  • Security by Compartmentalization
  • Qubes != Hypervisor/VMM (Qubes is a user of a VMM, presently Xen)
  • Qubes != Linux Distro
slide-3
SLIDE 3

WHY?

slide-4
SLIDE 4

Because we need secure client systems

desktop laptop tablet phone

slide-5
SLIDE 5

We really need secure CLIENT systems

  • Client systems are our Eyes, Ears, and Fingers!
  • Nothing works when the client system is compromised
  • Crypto
  • (2-factor) authentication
  • VDI/thin terminals (“secure cloud” not secure)
slide-6
SLIDE 6

Present client systems are... insecure

slide-7
SLIDE 7

Problems with current (desktop) systems

  • Attacks coming through (exploited) apps (Web browser, PDF readers, etc)
  • Attacks coming from (malicious) apps (Spyware, Backdoors, etc)
  • Attacks coming through (compromised) USB devices
  • Attacks coming through networking stacks (DHCP client, WiFi driver/stacks)
  • Attacks coming through (malformed) FS/Volume Metadata (USB Storage, CDs)
  • Lack of GUI isolation (sniffing content & clipboard, sniffing & spoofing keystrokes)
slide-8
SLIDE 8

Desktop systems != server systems

slide-9
SLIDE 9

Monolithic systems are hard to secure (especially desktop systems!)

slide-10
SLIDE 10

Monolithic kernel is bad for security

  • WiFi & NIC & BT drivers & stacks
  • USB drivers & stacks
  • Filesystem modules & other volume processing code
  • All the various APIs (e.g. debug, VFS, sockets API, etc)
  • Why should all these be part of TCB?
slide-11
SLIDE 11

“Monolithic” is not only about the kernel...

slide-12
SLIDE 12

Monolithism beyond kernel

  • GUI server (Xorg)
  • Various system services
  • Network Manager and other D-Bus endpoints
  • udev services (e.g. block device mounting)
  • CUPS, desktop indexing, etc
  • Not only root considered as “TCB” from user-data point of view
  • e.g. “root-less” Xorg not a big deal, really
slide-13
SLIDE 13

Monolithic means: bloated, complex, difficult to understand, and manage

slide-14
SLIDE 14

HOW?

slide-15
SLIDE 15

Security by Compartmentalization

slide-16
SLIDE 16

USB

slide-17
SLIDE 17

Virtualization?

  • Yes, we use virtualization (VMs) to isolate domains from each other...
  • But why would VMs provide any better isolation than OS processes?
  • Is there anything wrong with x86 good old MMU/page/ring separation?
  • “Solving” problems by adding another layer of abstraction?
slide-18
SLIDE 18

What so special about Virtualization?

  • It allows to REDUCE the interfaces (VM-VM & VM-TCB)...
  • ... and preserve compatibility with LEGACY apps & drivers at the same time
slide-19
SLIDE 19

But before we get too excited...

slide-20
SLIDE 20

VM<->hypervisor is not the only interface that is security critical...

slide-21
SLIDE 21

Strong isolation “by virtualization”...

Complex input processing code

malware VM1 VM2

complex protocol

Boom! ... not anymore!

slide-22
SLIDE 22

Lesson:

  • Don’t get too excited about “hardware virtualization” isolation
  • Virtualization nothing magic, offers little more than traditional MMU

isolation

  • (Except for IOMMU, but that’s for devices, more later)
  • Be careful about inter-VM interfaces and code that handles it!
slide-23
SLIDE 23

Ask your hypervisor vendor if/how they DO:

  • Device emulation (is qemu part of TCB?)
  • Networking virtualization (is net backend part of TCB?)
  • Storage virtualization (protocols used, any fancy & complex features?)
  • USB virtualization (Is USB backend part of TCB?)
  • GUI virtualization (also OpenGL/DirectX/GPU backend complexity?)
  • Inter-VM communication framework?
  • Inter-VM file & clipboard copy?
slide-24
SLIDE 24

“Virtualization gold rush” brought some useful new h/w technology though...

slide-25
SLIDE 25

IOMMU (AKA Intel VT-d)

  • Allows for truly de-privileged driver domains (Xen pioneer in using it)
  • We can have NetVM, UsbVM :)
  • BTW, microkernels without IOMMU made no sense from security point of view.
slide-26
SLIDE 26

NetVM

  • Ever used WiFi in an airport lounge or hotel?
  • Ever wondered if your WiFi driver, stack or DHCP client could be exploited?
  • Remember Bashocalypse?
  • How about sandboxing all these components?
  • This is what a NetVM is about
slide-27
SLIDE 27

USBVM

  • How much code involved in processing when plugging in a USB device?
  • BadUSB?
  • UsbVM can sandbox all the USB drivers and stacks
  • Then we can carefully export select devices to other AppVMs
slide-28
SLIDE 28

Monolithic system Powered-down “Airgaps” Tradeoff between usability & security?

slide-29
SLIDE 29

STATUS

slide-30
SLIDE 30

Qubes OS Releases

  • Qubes OS R1
  • 2010-2012
  • Qubes OS R2 (HVM & Windows support, gazillion other features)
  • 2012-2014
  • Qubes OS R3 (Hypervisor Abstraction Layer, UX improvements, H/W compat)
  • 2013-
slide-31
SLIDE 31

Qubes R2 implements everything we talked about so far (plus more!) qubes-os.org

slide-32
SLIDE 32

Use of Linux (and other OSes)

  • Currently default template based on Fedora 20
  • Debian and ArchLinux templates also available (community contribs)
  • Also our Dom0 based on Fedora 20
  • But this mostly irrelevant to the user, as no user apps or data are in Dom0
  • (Think about Dom0 as of a thin and dumb terminal to work with AppVMs)
  • Windows 7-based templates also supported
  • User must install Windows and provide licensing keys though
slide-33
SLIDE 33

Qubes as a platform

for secure/privacy-oriented Apps

  • Integration with Tor
  • TorVM since 2012
  • Currently on-going work to fully integrate Whonix
  • Secure email
  • Open attachments in Disposable VMs
  • Split GPG to protect user private keys
  • PDF converter (make PDFs trusted)
  • Secure networking
  • Isolated VPN VMs
  • More coming!
slide-34
SLIDE 34

Qubes OS R3 (“Odyssey”)

  • Hypervisor Abstraction Layer (HAL)
  • Don’t like Xen?
  • No problem, use KVM, LXC, MS Hyper-V, [some academic u-kernel/hypervisor]
  • Allows for security-performance-compatibility tradeoffs
  • Reworked architecture
  • More modular, even more decomposed
  • GUI domain != Admin domain (planned)
  • Qubes Admin API: semi-untrusted remote management VM(s) (planned)
slide-35
SLIDE 35

427F 11FD 0FAA 4B08 0123 F01C DDFA 1A3E 3687 9494

QUBES-OS.ORG

slide-36
SLIDE 36

427F 11FD 0FAA 4B08 0123 F01C DDFA 1A3E 3687 9494

MASTER KEY FINGERPRINT

slide-37
SLIDE 37

THANKS!