CIS433/533 - Computer and Network Security Operating System Security



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

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

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

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

CIS 551 / TCOM 401 Computer and Network Security

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

Capability-Based Access Control

Chapter 14: Access Control Mechanisms

CSE543 - Introduction to Computer and Network Security. Module: Access Control

Access Control Fundamentals

? Resource. Access Control and Operating System Security. Access control matrix. Access control. Capabilities. Two implementation concepts.

Mandatory Access Control

TEL2821/IS2150: INTRODUCTION TO SECURITY Lab: Operating Systems and Access Control

Access Control Lists in Linux & Windows

CS161: Operating Systems

Introduction to Computer Security

? Resource. Outline. Access Control and Operating System Security. Access control. Access control matrix. Capabilities. Two implementation concepts

CMSC 421, Operating Systems. Fall Security. URL: Dr. Kalpakis

Access Control. Dr George Danezis

Contents III: Contents II: Contents: Rule Set Based Access Control (RSBAC) 4.2 Model Specifics 5.2 AUTH

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

Advanced Systems Security: Retrofitting Commercial Systems

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

CS 356 Lecture 25 and 26 Operating System Security. Spring 2013

Chapter 7: Unix Security. Chapter 7: 1

A Survey of Access Control Policies

FINAL DoIT v.4 PAYMENT CARD INDUSTRY DATA SECURITY STANDARDS APPLICATION DEVELOPMENT AND MAINTENANCE PROCEDURES

Mandatory Access Control in Linux

CS 416: Opera-ng Systems Design

Computer Security: Principles and Practice

Safety measures in Linux

System Security Fundamentals

Oracle Solaris Security: Mitigate Risk by Isolating Users, Applications, and Data

Objectives. Windows 7 Security. Desktop OS Market Share. Windows Background. CS140M Fall Lake

Part III. Access Control Fundamentals

Introduction to Computer Security

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

Between Mutual Trust and Mutual Distrust: Practical Fine-grained Privilege Separation in Multithreaded Applications

Chapter 12 File Management. Roadmap

Chapter 12 File Management

Session objectives. Access control. Subjects and objects. The request. Information Security

Permissions Mapping in the Isilon OneFS File System

WHITE PAPER. Understanding Windows & UNIX File Permissions on GuardianOS

Security Overview of the Integrity Virtual Machines Architecture

1. Introduction to the UNIX File System: logical vision

USING USER ACCESS CONTROL LISTS (ACLS) TO MANAGE FILE PERMISSIONS WITH A LENOVO NETWORK STORAGE DEVICE

Secure Web Application Coding Team Introductory Meeting December 1, :00 2:00PM Bits & Pieces Room, Sansom West Room 306 Agenda

Homeland Security Red Teaming

TRANSMAT Trusted Operations for Untrusted Database Applications

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

Access Control Models Part I. Murat Kantarcioglu UT Dallas

1 File Management. 1.1 Naming. COMP 242 Class Notes Section 6: File Management

The Asbestos Operating System

Lecture 18: More Assurance

Case Studies. Joint software development Mail 1 / 38. Case Studies Joint Software Development. Mailers

Introduction to Computer Security

CS 392/681 - Computer Security. Module 16 Vulnerability Analysis

Implementation of Web Application Firewall

Auditing a Web Application. Brad Ruppert. SANS Technology Institute GWAS Presentation 1

The Definitive Guide. Active Directory Troubleshooting, Auditing, and Best Practices Edition Don Jones

Filesystem Security. General Principles

Distributed File Systems Part I. Issues in Centralized File Systems

SY system so that an unauthorized individual can take over an authorized session, or to disrupt service to authorized users.

1 Organization of Operating Systems

Introduction. What is an Operating System?

L16: Ring-based Access Control

Best Practices, Procedures and Methods for Access Control Management. Michael Haythorn

Chapter 23. Database Security. Security Issues. Database Security

Confining the Apache Web Server with Security-Enhanced Linux

Lecture Overview. INF3510 Information Security Spring Lecture 4 Computer Security. Meaningless transport defences when endpoints are insecure

Sandbox Roulette: Are you ready for the gamble?

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

VMware Server 2.0 Essentials. Virtualization Deployment and Management

Computer security Lecture 3. Access control

File Management. Chapter 12

Using a Patched Vulnerability to Bypass Windows 8 x64 Driver Signature Enforcement. MJ0011 th_decoder@126.com

ONEFS MULTIPROTOCOL SECURITY UNTANGLED

With Great Power comes Great Responsibility: Managing Privileged Users

Chapter 6, The Operating System Machine Level

Role Based Access Control: Adoption and Implementation in the Developing World

Plan 9 Authentication in Linux

(General purpose) Program security. What does it mean for a pgm to be secure? Depends whom you ask. Takes a long time to break its security controls.

Chapter 23. Database Security. Security Issues. Database Security

Basic Unix/Linux 1. Software Testing Interview Prep

Criteria for web application security check. Version

Case Study: Access control 1 / 39

Transcription:

CIS433/533 - Computer and Network Security Operating System Security Professor Kevin Butler Winter 2010 Computer and Information Science

OS Security An secure OS should provide (at least) the following mechanisms Memory protection File protection General object protection Access authentication How do we go about designing a trusted OS? Trust in this context means something different from Secure 2

Trust vs. Security When you get your medication at a pharmacy, you are trusting that it is appropriate for the condition you are addressing. In effect, you are arguing internally: The doctor was correct in prescribing this drug The FDA vetted the drug through scientific analysis and clinical trials No maniac has tampered with the bottle The first two are are matters trust, and the last is a matter of security An OS needs to perform similar due diligence to achieve trust and security 3

Access Control Lists ACL: a list of the principals that are authorized to have access to some object. Eg., S 1 O 2 Y! Or more correctly:!!o 1 : S 1 S 2 Y!!O 2 : S 1, S 2, S 3!!O 3 : S 3 S 3 Y 4

ACL in systems ACLs are typically used to implement discretionary access control For example: you define the UNIX file system ACLs using the chmod utility. 5

Discretionary Access Control in UNIX FS The UNIX filesystem implements discretionary access control through file permissions set by user The set of objects is the files in the filesystem, e.g., /etc/passwd Each file an owner and group (subjects) The owner is typically the creator of the file, and the entity in control of the access control policy Note: this can be overridden by the root user There is a additional subject called world, which represents everyone else 6

UNIX filesystem rights There are three rights in the UNIX filesystem READ - allows the subject (process) to read the contents of the file. WRITE - allows the subject (process) to alter the contents of the file. EXECUTE - allows the subject (process) to execute the contents of the file (e.g., shell program, executable, ) Q: why is execute a right? Q: does the right to read a program implicitly give you the right to execute it? 7

The UNIX FS access policy Really, this is a bit string encoding an access matrix E.g., rwx rwx rwx World Group Owner And a policy is encoded as r, w, x if enabled, and - if not, e.g, rwxrw--x Says user can read, write and execute, group can read and write, and world can execute only. 8

Caveats: UNIX Filesystem Access is often not really this easy: you need to have certain rights to parent directories to access a file (execute, for example) The reasons for this are quite esoteric The preceding policy may appear to be contradictory A member of the group does not have execute rights, but members of the world do, so A user appears to be both allowed and prohibited from executing access Not really: these policies are monotonic the absence of a right does not mean they should not get access at all, just that that particular identity (e.g., group member, world) should not be given that right. 9

Windows grows up... Windows 2000 marked the beginning of real OS security for the Windows systems... 10

Tokens Like the UID/GID in a UNIX process User Group Aliases Privileges (predefined sets of rights) May be specific to a domain Composed into global SID Subsequent processes inherit access tokens Different processes may have different rights 11

Access Control Entries DACL in the security descriptor of an object e.g., like rwx List of access control entries (ACEs) ACE structure (proposed by Swift et al) 1. Type (grant or deny) 2. Flags 3. Object Type: global UID for type (limit ACEs checked) 4. InheritedObjectType: complex inheritance 5. Access rights: access mask 6. Principal SID: principal the ACE applies to 12

ACE Authorization The ACEs for a particular request are totally ordered. Start form the top and check each: Checking algorithm Authorizing for SIDs in token on set of rights 1. if ACE matches SID (user, group, alias, etc) a. ACE denies access for specified right -- deny b. ACE grants access for some rights -- need full coverage 2. If reach the bottom and not all granted, request denied 13

Access Checking with ACEs Example 14

Windows Vista Integrity Integrity protection for writing Defines a series of protection level of increasing protection untrusted (lowest) low (Internet) medium (user) high (admin) system installer (highest) Semantics: If subject s (process s) integrity level dominates the object s integrity level, then the write is allowed 15

Vista Integrity S1(installer) O1(admin) S2(user) 02(untrusted) S3(untrusted) 03(user) 16

Vista Integrity S1(installer) O1(admin) S2(user) 02(untrusted) S3(untrusted) 03(user) 17

UID Transition: Setuid A special bit in the mode bits Execute file Resulting process has the effective (and fs) UID/GID of file owner Enables a user to escalate privilege For executing a trusted service Downside: User defines execution environment e.g., Environment variables, input arguments, open descriptors, etc. Service must protect itself or user can gain root access All UNIX services involves root processes -- many via setuid 18

And now back to UNIX... 19

UID Transition: Setuid A special bit in the mode bits Execute file Resulting process has the effective (and fs) UID/GID of file owner Enables a user to escalate privilege For executing a trusted service Downside: User defines execution environment e.g., Environment variables, input arguments, open descriptors, etc. Service must protect itself or user can gain root access All UNIX services involves root processes -- many via setuid 20

/tmp Vulnerability creat(pathname, mode) O_EXCL flag if file already exists this is an error Potential attack Attacker creates file in shared space (/tmp) Give it a filename used by a higher authority service Make sure that service has permission to the file If creat is used without O_EXCL, then can share the file with the higher authority process 21

Other Vulnerabilities Objects w/o sufficient control Windows registry, network Libraries Load order permits malware defined libraries Executables are everywhere Web content, Email, Documents (Word) Labeling is wrong Mount a new file system; device Malware can modify your permissions Inherent to discretionary model 22

Sandboxing An execution environment for programs that contains a limited set of rights A subset of your permissions (meet secrecy and integrity goals) Cannot be changed by the running program (mandatory) 23

UNIX Chroot Create a domain in which a process is confined Process can only read/write within file system subtree Applies to all descendant processes Can carry file descriptors in chroot jail 24

Chroot Vulnerability Unfortunately, chroot can trick its own system define a passwd file at <newroot>/etc/passwd run su su thinks that this is the real passwd file gives root access Use mknod to create device file to access physical memory Setup requires great care Never run chroot process as root Must not be able to get root privileges No control by chrooted process (user) of contents in jail Be careful about descriptors, open sockets, IPC that may be available 25

Process-specific Permissions Design the permissions of a process specific to its use How do we change the permissions of a process in an ACL system? 26

Confused Deputy Problem Imagine a multi-client server Clients have a different set of objects that they can access In an ACL system, the server always has access to all the objects What happens if a client tricks the server into accessing into another client s objects? Shouldn t the server only have access to that client s objects for its requests? 27

Capabilities A capability is the tuple (object, rights) A capability system implements access control by checking if the process has an appropriate capability Simple, right? This is a little like a ticket in the Kerberos system Q: Does this eliminate the need for authentication? 28

Capabilities A: Well, yes and no Capabilities remove the overhead of managing per object rights, but add the overhead of managing capabilities Moreover, to get any real security, they have to be unforgeable Hardware tags (to protect capabilities) Protected address space/registers Language based techniques Enforce access restrictions on caps. Cryptography Make them unforgeable 29

Real OS Capabilities Process Table Process Z... C List RX RW X C R D W E... A B C D The OS kernel manages capabilities in the process table, out of reach of the process Capabilities added by user requests (that comply with policy) 30

User space capability? Well, what are the requirements? Authenticity/integrity - do not want malicious process to forge capabilities Start with the data itself: [object, rights] Object is typically encoded with identifier, or by some other tag (capabilities are sometimes known as tags) Rights are often fixed (read, modify, write, execute, etc.) Now, do what you with any other data (assume the kernel has a secret key k) E(k, [O i, r 1, r 2, r n ]) What s wrong with this construction (I got it from the website of one of the experts in the area)? 31

The right construction Encryption does not provide authenticity/integrity, it provides confidentiality [O i, r 1, r 2, r n ],HMAC(k, [O i, r 1, r 2, r n ]) So how would you attack the preceding construction? 32

A (fictional) Capability Example We use the ls -lt command to view the contents of our home directory in a OS implementing capabilities: Initially, our shell process has RWX capabilities for our home directory, and RX capabilities for all the directories to the root. The ls -lt command is exec()ed, and the shell delegates the directory permissions by giving ls the capabilities Note that the capabilities are _not_ tied to any subject The ls -lt process exercises the rights to read the directories structure all the way down to the local Of course, the ls -lt process now need to obtain read rights to the files (to get their specific meta-information), and obtains them by appealing to the security manager (in kernel) -- the request fulfills the policy, and they are added and exercised The ls -lt uses access rights given to the terminal to write output Note: there are many ways that the policy can be implemented, rights handed off, etc. We will talk about a couple in the following discussions. 33

MAC Systems Major Effort: Multics Multiprocessing system -- developed many OS concepts Including security Begun in 1965 Development continued into the mid-70s Used until 2000 Initial partners: MIT, Bell Labs, GE/Honeywell Other innovations: hierarchical filesystems, dynamic linking Subsequent proprietary system, SCOMP, became the basis for secure operating systems design 34

Multics Goals Secrecy Multilevel security Integrity Rings of protection Reference Monitoring Mediate segment access, ring crossing Resulting system is considered a high point in secure system design 35

Multics Basics Processes are programs that are executing within Multics (seems obvious now...) Protection domain is a list of segments Stored in the process descriptor segment Segments are stored value regions that are accessible by processes, e.g., memory regions, secondary storage Segments can be organized into hierarchies Local segments (memory addresses) are accessed directly Non-local segments are addressed by hierarchy /tape/drive1/top10k /etc/conf/http.conf This is the genesis of the modern hierarchical filesystem! 36

Segment Management PDS acts like segment working set for process Segments are addressed by name (path) If authorized, added to PDS Multics security is defined with respect to segments Segment 0 Segment 1 Process Descriptor Segment Segment Descr. Word 0 Segment Descr. Word 1... The supervisor (kernel) makes decisions and adds to PDS supervisor is isolated by protection rings Segment N Segment Descr. Word N 37

Protection Rings Successively less-privileged domains Modern CPUs support 4 rings Use 2 mainly: Kernel and user Intel x86 rings Ring 0 has kernel Ring 3 has application code Example: Multics (64 rings in theory, 8 in practice) 38

What Are Protection Rings? Coarse-grained, Hardware Protection Mechanism Boundary between Levels of Authority Most privileged -- ring 0 Monotonically less privileged above Fundamental Purpose Protect system integrity Protect kernel from services Protect services from applications So on... 39

Intel Protection Ring Rules Each Memory Segment has a privilege level (ring number) The CPU has a Current Protection Level (CPL) Level of the segment where instructions are being read Program can read/write in segments of higher level than CPL kernel can read/write user space user cannot read/write kernel why not? 40

Protection Ring Rules Program cannot call code of higher privilege directly Gate is a special memory address where lower-privilege code can call higher Gate Ring 3 Ring 0 No gate Enables OS to control where applications call it (system calls) 41

Multics Interpretation Kernel resides in ring 0 Process runs in a ring r Access based on current ring Process accesses data (segment) Each data segment has an access bracket: (a1, a2) a1 <= a2 Describes read and write access to segment r is the current ring r <= a1: access permitted a1 < r <= a2: r and x permitted; w denied a2 < r: all access denied Ring 7 6 5 4 3 2 1 0 a 2 a 1 --- R-X RWX 42

Multics Interpretation (con t) Also different procedure segments with call brackets: (c1, c2), c1 <= c2 and access brackets (a1, a2) 7 Denied The following must be true (a2 == c1) Rights to execute code in a new procedure segment r < a1: access permitted with ring-crossing fault 6 5 c 2 Allow with gate a1 <= r <= a2 = c1: access permitted and no fault 4 a 2 c 1 a2 < r <= c2: access permitted through a valid gate c2 < r: access denied What s it mean? Ring 3 2 No ring fault case 1: ring-crossing fault changes procedure s ring increases from r to a1 case 2: keep same ring number 1 0 a 1 Ring fault case 3: gate checks args, decreases ring number Target code segment defines the new ring 43

Multics Vulnerability Analysis Detailed security analysis covering Hardware Software Procedural features (administration) Good news Design for security System language prevents buffer overflows Defined buffer sizes Hardware features prevent buffer overflows Addressing off segment is an error Stack grows up System is much smaller than current UNIX systems Vulnerability analysis found flaws that were fixed Multics attained a B2 evaluation (MAC system) 44

Vulnerabilities Found Hardware Indirect addressing -- incomplete mediation Check direct, but not indirect address Mistaken modification introduced the error Software Ring protection (done in software) Argument validation was flawed Certain type of pointer was handled incorrectly Master mode transfer For performance, run master mode program (signaler) in user ring Development assumed trusted input to signaler -- bad combo Procedural Trap door insertion goes undetected 45

Question If Multics was so good why was it so insecure? If Multics was so good, why didn t anybody use it? 46