1 UCR Access Control/Capabilities Some slides/ideas adapted from Ninghui Li.

Slides:



Advertisements
Similar presentations
Operating System Security
Advertisements

1 cs691 chow C. Edward Chow Confidentiality Policy CS691 – Chapter 5 of Matt Bishop.
Access Control Chapter 3 Part 3 Pages 209 to 227.
CMSC 414 Computer (and Network) Security Lecture 13 Jonathan Katz.
Lakshmi Narayana Gupta Kollepara 10/26/2009 CSC-8320.
Title of Selected Paper: Design and Implementation of Secure Embedded Systems Based on Trustzone Authors: Yan-ling Xu, Wei Pan, Xin-guo Zhang Presented.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
Access Control Patterns Fatemeh Imani Mehr Amirkabir university of technology, Department of Computer Engineering & Information Technology.
Access Control Intro, DAC and MAC System Security.
1 Flexible Mandatory Access Control (MAC) in Modern Operating Systems Jeffrey H. Jewell CS 591 December 7, 2009 Jeffrey H. Jewell CS 591 December 7, 2009.
Security-Enhanced Linux Joseph A LaConte CS 522 December 8, 2004.
CMSC 414 Computer and Network Security Lecture 12 Jonathan Katz.
Chapter 2 Access Control Fundamentals. Chapter Overview Protection Systems Mandatory Protection Systems Reference Monitors Definition of a Secure Operating.
CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 11 Jonathan Katz.
Multilevel Security CySecLab Graduate School of Information Security.
Lecture 7 Access Control
Distributed Computer Security 8.2 Discretionary Access Control Models - Sai Phalgun Tatavarthy.
Lecture slides prepared for “Computer Security: Principles and Practice”, 2/e, by William Stallings and Lawrie Brown, Chapter 4 “Overview”.
CMSC 414 Computer and Network Security Lecture 18 Jonathan Katz.
ADVANCED LINUX SECURITY. Abstract : Using mandatory access control greatly increases the security of an operating system. SELinux, which is an implementation.
CMSC 414 Computer and Network Security Lecture 19 Jonathan Katz.
Usable Mandatory Integrity Protection for Operating Systems Authors: Ninghui Li, Ziqing Mao and Hong Chen “IEEE Symposium on Security and Privacy(SP’07)”
Computer Security & OS Lab. DKU May 26 Younsik Jeong Ph.D. Student.
CS426Fall 2010/Lecture 191 Computer Security CS 426 Lecture 19 Discretionary Access Control.
SELinux US/Fedora/13/html/Security-Enhanced_Linux/
Presented by Amlan B Dey.  Access control is the traditional center of gravity of computer security.  It is where security engineering meets computer.
Information Assurance Research Group 1 NSA Security-Enhanced Linux (SELinux) Grant M. Wagner Information Assurance.
FOSS Security through SELinux (Security Enhanced Linux) M.B.G. Suranga De Silva Information Security Specialist TECHCERT c/o Department of Computer Science.
1 Implementation of Security-Enhanced Linux Yue Cui Xiang Sha Li Song CMSC 691X Project 2—Summer 02.
14.1 Silberschatz, Galvin and Gagne ©2005 Operating System Concepts Chapter 14: Protection Goals of Protection Principles of Protection Domain of Protection.
CSCE 201 Introduction to Information Security Fall 2010 Access Control.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
G53SEC 1 Access Control principals, objects and their operations.
Access Control. What is Access Control? The ability to allow only authorized users, programs or processes system or resource access The ability to disallow.
Chapter 7 Securing Commercial Operating Systems. Chapter Overview Retrofitting Security into a Commercial OS History of Retrofitting Commercial OS's Commercial.
ADV. NETWORK SECURITY CODY WATSON What’s in Your Dongle and Bank Account? Mandatory and Discretionary Protections of External Resources.
Silberschatz, Galvin and Gagne  Operating System Concepts Chapter 18: Protection Goals of Protection Objects and Domains Access Matrix Implementation.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Protection (Chapter 14)
CE Operating Systems Lecture 21 Operating Systems Protection with examples from Linux & Windows.
UNIX System Protection. Unix History Developed by Dennis Ritchie and Ken Thompson at AT&T Bell Labs Adapted some ideas from the Multics project in 1969.
SELinux. The need for secure OS Increasing risk to valuable information Dependence on OS protection mechanisms Inadequacy of mainstream operating systems.
Academic Year 2014 Spring Academic Year 2014 Spring.
COEN 350: Network Security Authorization. Fundamental Mechanisms: Access Matrix Subjects Objects (Subjects can be objects, too.) Access Rights Example:
Trusted Operating Systems
Access Control Lesson Introduction ●Understand the importance of access control ●Explore ways in which access control can be implemented ●Understand how.
Access Control: Policies and Mechanisms Vinod Ganapathy.
Security-Enhanced Linux Eric Harney CPSC 481. What is SELinux? ● Developed by NSA – Released in 2000 ● Adds additional security capabilities to Linux.
Computer Security: Principles and Practice
5/7/2007CoreMcClug/SELinux 1 By: Corey McClurg. Outline A History of SELinux What is SELinux and how do I get it? Getting Started Mandatory Access Control.
Lecture9 Page 1 CS 236 Online Operating System Security, Con’t CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Security-Enhanced Linux Stephanie Stelling Center for Information Security Department of Computer Science University of Tulsa, Tulsa, OK
Access Controls Mandatory Access Control by Sean Dalton December 5 th 2008.
PREPARED BY: MS. ANGELA R.ICO & MS. AILEEN E. QUITNO (MSE-COE) COURSE TITLE: OPERATING SYSTEM PROF. GISELA MAY A. ALBANO PREPARED BY: MS. ANGELA R.ICO.
MLS/MCS on SE Linux Russell Coker. What is SE Linux? A system for Mandatory Access Control (MAC) based on the Linux Security Modules (LSM) framework Uses.
SE Linux Implementation Russell Coker. What is SE Linux? A system for Mandatory Access Control (MAC) based on the Linux Security Modules (LSM) framework.
Access Control Model SAM-5.
Chapter 14: System Protection
Chapter 14: Protection.
SELinux (Security Enhanced Linux)
An Overview Rick Anderson Pat Demko
Information Security CS 526 Topic 16
UNIX System Protection
OS Access Control Mauricio Sifontes.
Chapter 14: Protection.
Information Security CS 526 Topic 16
NSA Security-Enhanced Linux (SELinux)
Access Control What’s New?
Access Control Dr. X Parenthesis: before we dive deeper into crypto, we will explore and old but still valid security principle, access controls.
Presentation transcript:

1 UCR Access Control/Capabilities Some slides/ideas adapted from Ninghui Li

2 UCR Why Computers are Vulnerable? Programs are buggy Humans make mistakes Access control is not good enough  Discretionary Access Control (DAC) used in Unix and Windows assume that programs are not buggy

3 UCR Access Control Check Given an access request, return an access control decision based on the policy  allow / deny Access Control Check A Request Allow / Deny The Policy

4 UCR Discretionary Access Control No precise definition. Basically, DAC allows access rights to be propagated at subject’s discretion  often has the notion of owner of an object  used in UNIX, Windows, etc. According to TCSEC (Trusted Computer System Evaluation Criteria)  "A means of restricting access to objects based on the identity and need-to-know of users and/or groups to which they belong. Controls are discretionary in the sense that a subject with a certain access permission is capable of passing that permission (directly or indirectly) to any other subject."

5 UCR Analysis why DAC is not Good enough DAC causes the Confused Deputy problem  Solution: use capability-based systems? DAC does not preserves confidentiality when facing Trojan horses  Solution: use Mandatory Access Control? DAC implementation fails to keep track of for which principals a subject (process) is acting on behalf of  Solution: fixing the DAC implementation to better keep track of principals Hierarchical authority: OS has access to all  Solution: decouple resource management from access control?

6 UCR The Confused Deputy Problem SYSX/FORT $OUTPUT Compiler Program SYSX (Dir) FORT STAT BILL Write to the bill file System Admin $Output SYSX/BILL Write output file User The Confused Deputy by Norm Hardy:

7 UCR Analysis of The Confused Deputy Problem The compiler runs with authority from two sources  the invoker (i.e., the programmer)  the system admin (who installed the compiler and controls billing and other info) It is the deputy of two masters  There is no way to tell which master the deputy is serving when performing a write

8 UCR ACCESS MATRIX MODEL U r w own V F SubjectsSubjects Objects (and Subjects) r w own G r rights

9 UCR Implementation of the Access Matrix Access Control Lists  Encode columns Capabilities  Encode rows Some other ways (access control triplets, …)

10 UCR Capability vs. ACL Consider two security mechanisms for bank accounts. One is identity-based. Each account has multiple authorized owners. You go into the bank and shows your ID, then you can access all accounts you are authorized.  Once you show ID, you can access all accounts.  You have to tell the bank which account to take money from. The other is token-based. When opening an account, you get a passport to that account and a PIN, whoever has the passport and the PIN can access

11 UCR Capabilities vs. ACL: Ambient Authority Ambient authority means that a user’s authority is automatically exercised, without the need of being selected.  causes the confused deputy problem No Ambient Authority in capability systems

12 UCR DAC’s Weaknesses Caused by The Gap A request: a subject wants to perform an action  E.g., processes in OS The policy: each principal has a set of privileges  E.g., user accounts in OS Challenging to fill the gap between the subjects and the principals  relate the subject to the principals

13 UCR Unix DAC Revisited (1) ActionProcessEffective UID Real Principals User A Logs InshellUser A Load Binary “Goodie” Controlled by user B GoodieUser A? When the Goodie process issues a request, what principal(s) is/are responsible for the request? Under what assumption, it is correct to say that User A is responsible for the request? Assumption: Programs are benign, i.e., they only do what they are told to do.

14 UCR UNIX DAC Revisited (2) ActionProcessEffective UID Real Principals shellUser A Load AcroBat Reader BinaryAcroBatUser A Read File Downloaded from Network AcroBatUser A? When the AcroBat process (after reading the file) issues a request, which principal(s) is/are responsible for the request? Under what assumption, it is correct to say that User A is responsible for the request? Assumption: Programs are correct, i.e., they handle inputs correctly.

15 UCR Hierarchical Authority – compounding the problem OS is super-user – has DAC access to all processes OS Both resource manager and access control manager  Can we decouple these roles? OS exploits are deadly—full authority to access anything is obtained

16 UCR Hierarchical authority and cross-layer attacks

17 UCR What should we do instead? Other models of access control Mandatory access control: remove the discretionary part--you cannot pass on permissions  Permissions specified by the system and cannot be changed (e.g., using labels) Role based access control: permissions associated with role Still have to solve the hierarchical authority problem Security vs. usability

18 UCR Can we do this in software? Can we, at least, do better? Are there quick and dirty fixes?  Consider, SMEP/SMAP, kGuard, secvisor… Plan for today:  Eric presents CHERI: practical hardware supported capabilities  Nael overviews SELinux (software supported access control) and NIMP (hardware supported access control)

19 UCR Security Enhanced Linux (SELinux) Developed by National Security Agency (NSA) and Secure Computing Corporation (SCC) to promote MAC technologies MAC functionality is provided through the FLASK architecture Policies based on type-enforcement model Integrated into 2.6 kernels Available in most (all?) modern Linux distributions

20 UCR FLASK Flux Advanced Security Kernel Developed over the years (since 1992) in several projects: DTMach, DTOS, Fluke General MAC architecture Supports flexible security policies, “ user friendly ” security language (syntax) Separates policies from enforcement Enables using more information when making access control decisions  E.g., User ids, Domains/Types, Roles

21 UCR Type Enforcement (or Domain Type Enforcement) Type enforcement first proposed by W. E. Boebert and R. Y. Kain.  A Practical Alternative to Hierarchical Integrity Policies. In In Proceedings of the 8 National Computer Security Conference,  Aim at ensuring integrity Key Idea for Type Enforcement:  Use the binary being executed to determine access.  What do DAC and MAC use?

22 UCR Rationale of Type Enforcement (1) Integrity level should be associated with programs (rather than processes)  Trust in programs is required for integrity Examples of assured pipelines:  Labeling: All printouts of documents must have security labels corrected printed by a labeller.  Encrypting: Before sending certain data to an output channel, it must be encrypted by an encryption module Data must pass certain transforming system before going to certain outputs

23 UCR Domain-type Enforcement: High- level Idea Add a new access matrix  One row for each subject domain (more or less )  One column for each pair (object type, security class)  Each cell contains all operations the subject can perform on objects of a particular type and security class

24 UCR Domain-type Enforcement (1) Each object is labeled by a type  Object semantics  Example:  /etc/shadow etc_t  /etc/rc.d/init.d/httpd httpd_script_exec_t Objects are grouped by object security classes  Such as files, sockets, IPC channels, capabilities  The security class determines what operations can be performed on the object Each subject (process) is associated with a domain  E.g., httpd_t, sshd_t, sendmail_t

25 UCR Domain-type Enforcement (2) Access control decision  When a process wants to access an object  Considers the following: process domain, object type, object security class, operation Example: access vector rules  allow sshd_t sshd_tmp_t: file { create read write getattr setattr link unlink rename }

26 UCR Limitations of the Type Enforcement Model Result in very large policies  Hundreds of thousands of rules for Linux  Difficult to understood Using only programs, but not information flow tracking cannot protect against certain attacks  Consider for example: httpd -> shell -> load kernel module

27 UCR SELinux in Practice Theoretically, can be configured to provide high security. In practice, mostly used to confine daemons like web servers  They have more clearly defined data access and activity rights.  They are often targets of attacks  A confined daemon that becomes compromised is thus limited in the harm it can do. Ordinary user processes often run in the unconfined domain  not restricted by SELinux, but still restricted by the classic Linux access rights.

28 UCR Non-inclusive Memory Permissions Idea:  We don’t give full permissions to the OS/hypervisor  We also don’t let them manage permissions  But we need to let them manage some permissions to do their work  Specify the set of legal permission transitions

29 UCR NIMP Design