CAPSICUM. Practical capabilities for UNIX. 19 th USENIX Security Symposium 11 August 2010 - Washington, DC. Robert N. M. Watson

Similar documents
CIS433/533 - Computer and Network Security Operating System Security

Advanced Systems Security: Retrofitting Commercial Systems

Tidspunkt : : :59 (49 dag(e)) Operativsystem (OS) fordelt på browsere Total: Safari9 ios %

Adobe Flash Player and Adobe AIR security

FreeBSD Developer Summit TrustedBSD: Audit + priv(9)

Kernel Types System Calls. Operating Systems. Autumn 2013 CS4023

2X Cloud Portal v10.5

Secure computing: SELinux

CS161: Operating Systems

Review from last time. CS 537 Lecture 3 OS Structure. OS structure. What you should learn from this lecture

Example of Standard API

Access Control Lists in Linux & Windows

Safety measures in Linux

The Flask Security Architecture A Flexible Mandatory Access Control Mechanism For Use in Multiple Secure Systems

LabStats 5 System Requirements

CAPP-Compliant Security Event Audit System for Mac OS X and FreeBSD

Research and Design of Universal and Open Software Development Platform for Digital Home

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

CIS 551 / TCOM 401 Computer and Network Security

Operating Systems OS Architecture Models

Windows NT. Chapter 11 Case Study 2: Windows Windows 2000 (2) Windows 2000 (1) Different versions of Windows 2000

Security Enhanced Linux and the Path Forward

CIS 551 / TCOM 401 Computer and Network Security. Spring 2005 Lecture 4

CSE 120 Principles of Operating Systems. Modules, Interfaces, Structure

Virtual Hosting & Virtual Machines

Do Containers fully 'contain' security issues? A closer look at Docker and Warden. By Farshad Abasi,

Objectives. Chapter 2: Operating-System Structures. Operating System Services (Cont.) Operating System Services. Operating System Services (Cont.

Windows Security. CSE497b - Spring 2007 Introduction Computer and Network Security Professor Jaeger.

Extending Remote Desktop for Large Installations. Distributed Package Installs

CS 416: Opera-ng Systems Design

Cloud Security with Stackato

AJ Matrix V5. Installation Manual

Securely Yours LLC We secure your information world. www. SecurelyYoursllc.com

CSE543 - Introduction to Computer and Network Security. Module: Operating System Security

Microkernels, virtualization, exokernels. Tutorial 1 CSC469

Linux OS-Level Security Nikitas Angelinas MSST 2015

VIA CONNECT PRO Deployment Guide

ORACLE MOBILE APPLICATION FRAMEWORK DATA SHEET

OnCommand Performance Manager 1.1

Apache Server Implementation Guide

CSE543 - Introduction to Computer and Network Security. Module: Reference Monitor

EOP ASSIST: A Software Application for K 12 Schools and School Districts Installation Manual

CS420: Operating Systems OS Services & System Calls

How To Write Security Enhanced Linux On Embedded Systems (Es) On A Microsoft Linux (Amd64) (Amd32) (A Microsoft Microsoft 2.3.2) (For Microsoft) (Or

Web Conferencing Version 8.3 Troubleshooting Guide

Red Hat Linux Internals

ORACLE ADF MOBILE DATA SHEET

CDH installation & Application Test Report

Mac OS X. Staff members using NEIU issued laptops and computers on Active Directory can access NEIU resources that are available on the wired network.

Capability-Based Access Control

RELIABLE OPERATING SYSTEMS

Unity web- player issues in browsers & in client system

JavaScript Patterns. Stoyan Stefanov. O'REILLY' Beijing Cambridge Farnham Koln Sebastopol Tokyo

Quiz I Solutions MASSACHUSETTS INSTITUTE OF TECHNOLOGY Fall Department of Electrical Engineering and Computer Science

How to use

A Firewall Model of File System Security

owncloud Architecture Overview

CEN 559 Selected Topics in Computer Engineering. Dr. Mostafa H. Dahshan KSU CCIS

The Case for SE Android. Stephen Smalley Trust Mechanisms (R2X) National Security Agency

Operating System Structure

Encryption Wrapper. on OSX

Introduction To Computer Networking

Operating System Structures

Web Development. How the Web Works 3/3/2015. Clients / Server

Security and Integrity of a Distributed File Storage in a Virtual Environment

Protect Your IT Infrastructure from Zero-Day Attacks and New Vulnerabilities

Using Chroot to Bring Linux Applications to Android

RemoteTM Web Server User Guide. Copyright Maxprograms

How To Develop A Mobile App With Phonegap

Chapter 11 Distributed File Systems. Distributed File Systems

CheckPoint Software Technologies LTD. How to Configure Firewall-1 With Connect Control

3DHOP Local Setup. Lezione 14 Maggio 2015

Linux and the Internet, Servers, Ports, Firewalls

How do Users and Processes interact with the Operating System? Services for Processes. OS Structure with Services. Services for the OS Itself

CIDR Range Subnet Mask /

Trusted computing applied in Open Power Linux

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

TYLER JUNIOR COLLEGE School of Continuing Studies 1530 SSW Loop 323 Tyler, TX

Introduction to Computer Security

VMware vcenter Log Insight Getting Started Guide

Using the VMRC Plug-In: Startup, Invoking Methods, and Shutdown on page 4

CSE331: Introduction to Networks and Security. Lecture 34 Fall 2006

CS 155 Final Exam. CS 155: Spring 2013 June 11, 2013

Plan 9 Authentication in Linux

VMware vcenter Log Insight Getting Started Guide

eggplant for Cross Platform Test Automation TestPlant Nick Saunders

Chapter 12 File Management. Roadmap

Chapter 12 File Management

Operating System Components

Transcription:

CAPSICUM Practical capabilities for UNIX 19 th USENIX Security Symposium 11 August 2010 - Washington, DC Robert N. M. Watson Jonathan Anderson Ben Laurie Kris Kennaway Google UK Ltd FreeBSD Project University of Cambridge

Introduction Capsicum: hybrid UNIX/capability operating system Requirements of complex, security-aware applications Why MAC isn t quite what we want Capsicum s Capability Mode and Capabilities Interactions between applications and sandboxing Building on Capsicum

Paradigm shift... change is coming here Multi-user machines! multi-machine users Applications frame competing interests Thin client one point of confluence DAC/MAC-centric access control! sandboxing Application security rather than OS security Primitives for mapping distributed to local security domains

CVEs in Jan-Aug 2009 Firefox 85 Safari 59 IE 48 Chrome 39 Flash 35 source; Justin Foster, OWASP

Microkernels to compartmentalisation OS kernel OS microkernel 1980 s VFS Net... VFS Net bash emacs... bash emacs...

Microkernels to compartmentalisation OS kernel OS microkernel 1980 s VFS Net... VFS Net bash emacs... bash emacs... OS kernel OS kernel 2000 s crypto/ compress sshd SSH session sshd... crypto/... SSH compress session

What about MAC? Type Enforcement (TE) What we need Interests of Administrator User or application Sandbox creation Administrator modifies global policy On demand without using privilege Policy source Access control rules in global policy files Embedded in applications, from UI

What about MAC? Type Enforcement (TE) What we need Interests of Administrator User or application Sandbox creation Administrator modifies global policy On demand without using privilege Policy source Access control rules in global policy files Embedded in applications, from UI

What about MAC? Type Enforcement (TE) What we need Interests of Administrator User or application Sandbox creation Administrator modifies global policy On demand without using privilege Policy source Access control rules in global policy files Embedded in applications, from UI

Application-driven rights delegation etc / var apache passwd www site1 site2 Apache Apache Worker 1 Apache Worker 2 Logical Application

Capability systems A capability is an unforgeable token of authority. Supports delegation-centric access control.

Where to start? Production monolithic systems UNIX, Linux, Windows, Mac OS X Research capability systems EROS (CAPROS), CoyoteOS " Monolithic kernel security model # Real application stack today # Least privilege design " No extant application stack Hybrid approach: immediate security benefits with a long-term capability system vision

Logical applications in Capsicum Kernel UNIX process ambient authority becomes Renderer process capability mode Browser process ambient authority Renderer process capability mode... Traditional UNIX application Capsicum logical application

Capability mode New system call cap_enter sets inherited credential flag Global OS name spaces restricted: only delegated rights available Interface thinning and other constraints on system calls read write open openat fexecve ambient authority lookup()! " " "! " " fexecve openat open capability mode write read

Capabilities... 8 Process file descriptors 10 struct file struct capability mask = READ struct file struct vnode 14... struct file struct capability mask = READ WRITE Capabilities refine open flags on file descriptors cap_new on a capability further restricts access; no chains Inherited across fork/exec or passed via sockets Directory capabilities allow subtree delegation

Possible application Setup read user input open files prepare work loop Work do work read/write on files

System call API Setup read user input open files prepare work loop Ambient authority cap_enter Capability mode Work do work read/write on files

Interactive applications Setup read user input open files prepare work loop Work do work read/write on files

libcapsicum API Setup read user input open files prepare work loop Work read user input open files Ambient authority lc_start Capability mode Work do work read/write on files

Adapted applications Program Approach Changes tcpdump cap_enter Enter for parse/render work loop dhclient cap_enter Reinforce existing chroot/setuid privilege separation gzip libcapsicum Open files with ambient authority, pass capabilities to sandbox Chromium cap_enter Sandbox Javascript and HTML processing in renderer processes

tcpdump @@ -1197,6 +1199,14 @@ (void)fflush(stderr); } #endif /* WIN32 */ + if (lc_limitfd(stdin_fileno, CAP_FSTAT) < 0) + error("lc_limitfd: unable to limit STDIN_FILENO"); + if (lc_limitfd(stdout_fileno, CAP_FSTAT CAP_SEEK CAP_WRITE) < 0) + error("lc_limitfd: unable to limit STDIN_FILENO"); + if (lc_limitfd(stderr_fileno, CAP_FSTAT CAP_SEEK CAP_WRITE) < 0) + error("lc_limitfd: unable to limit STDERR_FILENO"); + if (cap_enter() < 0) + error("cap_enter: %s", pcap_strerror(errno)); status = pcap_loop(pd, cnt, callback, pcap_userdata); if (WFileName == NULL) {

Chromium sandboxing OS Sandbox LoC FS IPC NET S!S" Priv DAC MAC Cap Windows DAC ACLs 22,350!! " Linux chroot() 600 "!! "! Mac OS X Sandbox 560 " " " " Linux SELinux 200 " "!! Linux seccomp 11,300 " " " " FreeBSD Capsicum 100 " " " " "

Chromium sandboxing OS Sandbox LoC FS IPC NET S!S" Priv DAC MAC Cap Windows DAC ACLs 22,350!! " Linux chroot() 600 "!! "! Mac OS X Sandbox 560 " " " " Linux SELinux 200 " "!! Linux seccomp 11,300 " " " " FreeBSD Capsicum 100 " " " " "

Chromium sandboxing OS Sandbox LoC FS IPC NET S!S" Priv DAC MAC Cap Windows DAC ACLs 22,350!! " Linux chroot() 600 "!! "! Mac OS X Sandbox 560 " " " " Linux SELinux 200 " "!! Linux seccomp 11,300 " " " " FreeBSD Capsicum 100 " " " " "

Chromium sandboxing OS Sandbox LoC FS IPC NET S!S" Priv DAC MAC Cap Windows DAC ACLs 22,350!! " Linux chroot() 600 "!! "! Mac OS X Sandbox 560 " " " " Linux SELinux 200 " "!! Linux seccomp 11,300 " " " " FreeBSD Capsicum 100 " " " " "

Chromium sandboxing OS Sandbox LoC FS IPC NET S!S" Priv DAC MAC Cap Windows DAC ACLs 22,350!! " Linux chroot() 600 "!! "! Mac OS X Sandbox 560 " " " " Linux SELinux 200 " "!! Linux seccomp 11,300 " " " " FreeBSD Capsicum 100 " " " " "

Chromium sandboxing OS Sandbox LoC FS IPC NET S!S" Priv DAC MAC Cap Windows DAC ACLs 22,350!! " Linux chroot() 600 "!! "! Mac OS X Sandbox 560 " " " " Linux SELinux 200 " "!! Linux seccomp 11,300 " " " " FreeBSD Capsicum 100 " " " " "

Building on Capsicum Assisted compartmentalisation (static, dynamic analysis) Critical network services: routing daemon, etc. Monolithic applications: OpenOffice.org, KDE.. Distributed domains! local domains: browsers, databases... Gesture-Based Access Control (GBAC) Power boxes, Drag and drop! assign capabilities

Conclusion Multi-user security! compartmentalised applications Capsicum APIs faster, cleaner, and more secure Delegation-centric approach to granular policy Avoid policy dual-coding, no privilege requirement Supplement rather than replace DAC and MAC API/semantics + prototype on FreeBSD 9.x, 8.x backport Linux/ChromeOS port in progress at Google

Questions? * http://www.cl.cam.ac.uk/research/security/capsicum/