CMSC 414 Computer and Network Security Lecture 17 Jonathan Katz.

Slides:



Advertisements
Similar presentations
Operating System Security
Advertisements

Chapter 6 Security Kernels.
CMSC 414 Computer (and Network) Security Lecture 13 Jonathan Katz.
Lakshmi Narayana Gupta Kollepara 10/26/2009 CSC-8320.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
1 Design Principles CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute April 13, 2004.
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
19.1 Silberschatz, Galvin and Gagne ©2003 Operating System Concepts with Java Chapter 19: Security The Security Problem Authentication Program Threats.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
CSE331: Introduction to Networks and Security Lecture 28 Fall 2002.
CMSC 414 Computer and Network Security Lecture 12 Jonathan Katz.
CS-550 (M.Soneru): Protection and Security - 1 [SaS] 1 Protection and Security.
(Breather)‏ Principles of Secure Design by Matt Bishop (augmented by Michael Rothstein)‏
CMSC 414 Computer and Network Security Lecture 12 Jonathan Katz.
1 Building with Assurance CSSE 490 Computer Security Mark Ardis, Rose-Hulman Institute May 10, 2004.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz.
1 CSE 380 Computer Operating Systems Instructor: Insup Lee and Dianna Xu University of Pennsylvania Fall 2003 Lecture Note: Protection Mechanisms.
Silberschatz, Galvin and Gagne  Operating System Concepts Module 19: Security The Security Problem Authentication Program Threats System Threats.
CMSC 414 Computer and Network Security Lecture 11 Jonathan Katz.
1 cs691 chow C. Edward Chow Design Principles for Secure Mechanisms CS591 – Chapter 5.4 Trusted OS Design CS691 – Chapter 13 of Matt Bishop.
CMSC 414 Computer and Network Security Lecture 17 Jonathan Katz.
CMSC 414 Computer (and Network) Security Lecture 10 Jonathan Katz.
CMSC 414 Computer and Network Security Lecture 13 Jonathan Katz.
Lecture 10: Security Design Principles CS 436/636/736 Spring 2012 Nitesh Saxena.
1 Privacy Enhancing Technologies Elaine Shi Lecture 4 Principles of System Security slides partially borrowed from Jonathan Katz.
C. Edward Chow Presented by Mousa Alhazzazi C. Edward Chow Presented by Mousa Alhazzazi Design Principles for Secure.
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.
CMSC 414 Computer and Network Security Lecture 19 Jonathan Katz.
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Lecture 18 Page 1 CS 111 Online Access Control Security could be easy – If we didn’t want anyone to get access to anything The trick is giving access to.
CMSC 414 Computer (and Network) Security Lecture 14 Jonathan Katz.
The Protection of Information in Computer Systems Part I. Basic Principles of Information Protection Jerome Saltzer & Michael Schroeder Presented by Bert.
1 Chapter 20: Firewalls Fourth Edition by William Stallings Lecture slides by Lawrie Brown(modified by Prof. M. Singhal, U of Kentucky)
Chapter 5 Network Security
CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz.
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.
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.
G53SEC 1 Reference Monitors Enforcement of Access Control.
Operating Systems Lecture November 2015© Copyright Virtual University of Pakistan 2 Agenda for Today Review of previous lecture Hardware (I/O, memory,
CMSC 414 Computer (and Network) Security Lecture 11 Jonathan Katz.
Multics CysecLab Graduate School of Information Security KAIST.
(Breather)‏ Principles of Secure Design by Matt Bishop (augmented by Michael Rothstein)‏
Privilege Management Chapter 22.
Design Principles and Common Security Related Programming Problems
Fall 2008CS 334: Computer SecuritySlide #1 Design Principles Thanks to Matt Bishop.
June 1, 2004Computer Security: Art and Science © Matt Bishop Slide #13-1 Chapter 13: Design Principles Overview Principles –Least Privilege –Fail-Safe.
Lecture 14 Page 1 CS 111 Summer 2013 Security in Operating Systems: Basics CS 111 Operating Systems Peter Reiher.
LINUX Presented By Parvathy Subramanian. April 23, 2008LINUX, By Parvathy Subramanian2 Agenda ► Introduction ► Standard design for security systems ►
1 Chapter 12: Design Principles Overview –There are principles for many kinds of design Generally, a design should consider: Balance, Rhythm, Proportion,
June 1, 2004© Matt Bishop [Changed by Hamid R. Shahriari] Slide #13-1 Chapter 13: Design Principles Overview Principles –Least Privilege –Fail-Safe.
Slide #13-1 Design Principles CS461/ECE422 Computer Security I Fall 2008 Based on slides provided by Matt Bishop for use with Computer Security: Art and.
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.
Chap5: Designing Trusted Operating Systems.  What makes an operating system “secure”? Or “trustworthy”?  How are trusted systems designed, and which.
1 Design Principles CS461 / ECE422 Spring Overview Simplicity  Less to go wrong  Fewer possible inconsistencies  Easy to understand Restriction.
1 Chapter 2: Operating-System Structures Services Interface provided to users & programmers –System calls (programmer access) –User level access to system.
Lecture 2 Page 1 CS 236 Online Security Policies Security policies describe how a secure system should behave Policy says what should happen, not how you.
Access Control Model SAM-5.
Computer Data Security & Privacy
CE Operating Systems Lecture 21
How to Mitigate the Consequences What are the Countermeasures?
Operating Systems Lecture 3.
Operating System Concepts
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Presentation transcript:

CMSC 414 Computer and Network Security Lecture 17 Jonathan Katz

Reading on course webpage  Buffer overflows  Will get to it in about 2 weeks, but start reading now  Will be useful for HW3

System Security

“System security”  Several meanings of “system security” here: –Security of the entirety of what is being protected –Operating-system security –Host security

System security -- components  Policy (specification) –What security properties to focus on –What is and is not allowed  Mechanism (implementation) –The mechanism enforces the policy –Includes procedural controls, not just technical ones E.g., who may enter the room where backup tapes are stored How new accounts are established –Prevention/detection/response/recovery  Assurance (correctness) –Verifying that the mechanism implements the policy

Security policy  Formal statement of rules and practices that specify what a system or organization will protect, and how it will do so  Useful to also specify threat model

Mechanisms for enforcing policy  The precision of a mechanism measures how closely the mechanism matches the policy –E.g., an overly restrictive mechanism may prevent things that are allowed by the policy  Hard (in general) to develop a “maximally- precise” mechanism for an arbitrary given policy  Impossible (in general) to determine whether a given mechanism implements a given policy  Made worse by the fact that policy is often specified informally to begin with

Assurance/evaluation  The degree of confidence in the ability to carry out the policy  Encompasses both design and implementation  Evaluation –Examining computer/system with respect to certain criteria –Testing, formal analysis

Security Principles

General principles  Seminal article by Saltzer and Schroeder (1975) –Linked from the course homepage  Eight principles underlying design and implementation of security mechanisms  These are guidelines, not hard and fast rules  Not exhaustive

Principle 1  “Principle of least privilege” –A subject should be given only the privileges it needs to accomplish its task E.g., only allow access to information it needs E.g., only allow necessary communication –The function of a subject (not its identity) should determine this I.e., if a subject needs some privileges to complete a specific task, it should relinquish those privileges upon completion If reduced privileges are sufficient for a given task, the subject should request only those privileges

In practice…  There is a limit to how much granularity a system can handle  Systems are often not designed with the necessary granularity –E.g., “append” may not be distinct from “write” –E.g., in UNIX, nothing between user and root Anyone who can make backup files can also delete those files

Principle 2  “Principle of Fail-Safe Defaults” –Unless a subject is given explicit access to an object, it should be denied access I.e., the default is no access –More generally, in case of ambiguity the system should default to the more restrictive case

Principle 3  “Economy of Mechanism” –Security mechanisms should be as simple as possible… –This applies to both the policy and the mechanism! –Less chance of error –Can simplify assurance process  Offering too much functionality can be dangerous –E.g., finger protocol: cap how much information can be returned, or allow an arbitrary amount? DoS attack by returning an infinite stream of characters –E.g., macros in Excel, Word –E.g., postscript can execute arbitrary code

Principle 4  “Principle of Complete Mediation” –All accesses to objects should be checked to ensure they are allowed –OS should mediate any request to read an object --- even on the second such request by the same subject! Don’t cache authorization results Don’t rely on authentication/authorization performed by another module –Time-of-check-to-time-of-use flaws…  Good examples: re-authentication (on websites, or systems) when performing sensitive tasks

Insecure example…  In UNIX, when a process tries to read a file, the system checks access rights –If allowed, it gives the process a file descriptor –File descriptor is presented to OS for access  If permissions are subsequently revoked, the process still has a valid file descriptor! –Insufficient mediation

Principle 5  “Open Design” –No “security through obscurity” –Security of a system should not depend on the secrecy of its implementation Of course, secret keys do not violate this principle!

Principle 6  “Separation of Privilege” –(As much as is feasible…) a system should not grant permission based on a single condition –E.g., require more than one sys admin to issue a critical command, or more than one teller to issue an ATM card

Principle 7  “Principle of Least Common Mechanism” –Minimize mechanisms depended upon by all users Minimize effect of a security flaw! –Shared mechanisms are a potential information path, and so may be used to compromise security –Shared mechanisms also expose the system to potential DoS attacks

Principle 8  “Psychological Acceptability” –Security mechanisms should not make access to the resource more difficult –If mechanisms are too cumbersome, they will be circumvented! –Even if they are used, they may be used incorrectly

Access control

Multi-user vs. single-user systems  Two kinds of multi-user systems –Explicit awareness of other users (think unix file systems) –Users unaware of each other (think cloud computing) –In either case, users’ files and applications must be protected from illegal access by other users  Single-user system –Desktop PC –Still don’t want one application to illegally access data / memory belonging to another application

Multi-user vs. single-user systems  ‘Classical’ computing was on a multi-user system (time-sharing systems)  Gradual shift to single-user systems (home PCs), though multi-user systems were still used in business, govt.  More recently, momentum is going back to multi- user systems (cloud computing)

Access control  Determining who has access to specific files, or other system resources subject request reference monitor allow/deny object

Authentication vs. authorization  Authentication –Determining the identity of a user –May also involve verification of IP address, machine, time, etc… –Determine whether a user is allowed to access the system at all –Used for audit, not just authorization –We have already covered authentication protocols  Authorization (access control) –Assuming identity of user is known, determine whether some specific action is allowed

Design considerations  Where to implement access control? Applications Services/middleware (DBMS *, object reference broker) OS (file/memory management, I/O) Hardware Kernel (mediates access to processor/memory) * Database management system

Design considerations  Access control generally must be implemented in several layers  For example: –In the OS, access control done at the granularity of files. But consider a (single file containing a) grades spreadsheet: the application will have to ensure that each student can only read their own grade (while the instructor can read and write everything)

Some terminology  Protected entities: “objects” O  Active objects: “subjects” S (i.e., users/processes) –Note that subjects can also be objects –Typically, each subject associated with some principal/owner  Subjects/objects can be: –Users –Files –Processes –System resources (servers, printers, etc.)

Access control matrix  Matrix indexed by all subjects and objects –Characterizes rights of each subject with respect to each object  Formally: set of objects O and subjects S, set of possible rights  Matrix A with subjects labeling the rows and objects labeling the columns –The entry (s, o) contains the rights for s on o –Examples: read/write/execute/etc.

Example File 1File 2File 3…File n User 1{r,w}{w}{r,w} User 2{w} {r,w} User 3{r}{w} … User k{r} {r,w}{r}{w} Subjects Objects

Access control matrix  The access control matrix provides a useful way to think about the rights in the system  It can also be a way to implement access control subject request reference monitor allow/deny object

More complex access control  In general, “rights” may be functions –“Actual” rights depend on the system state –Equivalently, may depend on system history  Rights can form hierarchies –E.g., right X implies right Y

Granularity  Granularity is an issue at the level of subjects, objects, and rights  In theory, arbitrary level of granularity, e.g., –Subjects: functions within processes –Objects: characters within files –Rights: write, append, increment-only, …  In practice, a decision must be made as to the level of granularity that will be supported

Granularity  Trade-off is obvious: –Fine-grained access control gives “better security” Least privilege –Coarse-grained access control more efficient