Lecture 17 Page 1 CS 111 Spring 2015 Operating System Security CS 111 Operating Systems Peter Reiher.

Slides:



Advertisements
Similar presentations
Operating System Security
Advertisements

Lecture 13 Page 1 CS 111 Online File Systems: Introduction CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 19 Page 1 CS 111 Online Protecting Operating Systems Resources How do we use these various tools to protect actual OS resources? Memory? Files?
CMSC 414 Computer (and Network) Security Lecture 13 Jonathan Katz.
Chapter 6 User Protections in OS. csci5233 computer security & integrity (Chap. 6) 2 Outline User-level protections 1.Memory protection 2.Control of access.
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.
CSE331: Introduction to Networks and Security Lecture 28 Fall 2002.
Security in By: Abdulelah Algosaibi Supervised by: Prof. Michael Rothstein Summer II 2010: CS 6/79995 Operating System Security.
CS-550 (M.Soneru): Protection and Security - 1 [SaS] 1 Protection and Security.
Lecture 1 Page 1 CS 236, Spring 2008 What Are Our Security Goals? Confidentiality –If it’s supposed to be a secret, be careful who hears it Integrity –Don’t.
CMSC 414 Computer and Network Security Lecture 9 Jonathan Katz.
Lecture 19 Page 1 CS 111 Online Security for Operating Systems: Cryptography, Authentication, and Protecting OS Resources CS 111 On-Line MS Program Operating.
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.
Cryptography, Authentication and Digital Signatures
Lecture 15 Page 1 Advanced Network Security Perimeter Defense in Networks: Firewalls Configuration and Management Advanced Network Security Peter Reiher.
Lecture 16 Page 1 Advanced Network Security Perimeter Defense in Networks: Virtual Private Networks Advanced Network Security Peter Reiher August, 2014.
CMSC 414 Computer and Network Security Lecture 10 Jonathan Katz.
Lecture 13 Page 1 Advanced Network Security Authentication and Authorization in Local Networks Advanced Network Security Peter Reiher August, 2014.
Access Control. What is Access Control? The ability to allow only authorized users, programs or processes system or resource access The ability to disallow.
Protection in General- Purpose OS Week-3. Our Main Concern In what way do operating systems protect one user’s process from inadvertent or malicious interaction.
Lecture 7 Page 1 CS 236, Spring 2008 Challenge/Response Authentication Authentication by what questions you can answer correctly –Again, by what you know.
CE Operating Systems Lecture 21 Operating Systems Protection with examples from Linux & Windows.
G53SEC 1 Reference Monitors Enforcement of Access Control.
Linux Security. Authors:- Advanced Linux Programming by Mark Mitchell, Jeffrey Oldham, and Alex Samuel, of CodeSourcery LLC published by New Riders Publishing.
Security CS Introduction to Operating Systems.
Lecture 20 Page 1 Advanced Network Security Basic Approaches to DDoS Defense Advanced Network Security Peter Reiher August, 2014.
Lecture 18 Page 1 CS 111 Online OS Use of Access Control Operating systems often use both ACLs and capabilities – Sometimes for the same resource E.g.,
Lecture 1 Page 1 CS 236 Online What Are Our Security Goals? CIA Confidentiality –If it’s supposed to be a secret, be careful who hears it Integrity –Don’t.
Lecture 17 Page 1 CS 111 Fall 2015 Operating System Security CS 111 Operating Systems Peter Reiher.
Secure Operating Systems Lesson F: Capability Based Systems.
Chapter 14: Protection Silberschatz, Galvin and Gagne ©2005 Operating System Concepts – 7 th Edition, Apr 11, 2005 Chapter 14: Protection Goals.
Design Principles and Common Security Related Programming Problems
Lecture 3 Page 1 CS 136, Fall 2010 Security Mechanisms CS 136 Computer Security Peter Reiher September 30, 2010.
Lecture 7 Page 1 CS 111 Online Process Communications and Concurrency CS 111 On-Line MS Program Operating Systems Peter Reiher.
Lecture 14 Page 1 CS 111 Summer 2013 Security in Operating Systems: Basics CS 111 Operating Systems Peter Reiher.
Lecture 5 Page 1 Advanced Network Security Review of Cryptography: Cryptographic Keys Advanced Network Security Peter Reiher August, 2014.
Lecture 3 Page 1 CS 136, Winter 2010 Security Mechanisms CS 136 Computer Security Peter Reiher January 12, 2010.
Lecture9 Page 1 CS 236 Online Operating System Security, Con’t CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 12 Page 1 CS 111 Summer 2014 Security in Operating Systems: Basics CS 111 Operating Systems Peter Reiher.
Lecture 5 Page 1 CS 236 Online More on Cryptography CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
9.2 SECURE CHANNELS JEJI RAMCHAND VEDULLAPALLI. Content Introduction Authentication Message Integrity and Confidentiality Secure Group Communications.
Lecture 3 Page 1 CS 236 Online Security Mechanisms CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Lecture 4 Page 1 CS 111 Online Modularity and Memory Clearly, programs must have access to memory We need abstractions that give them the required access.
Lecture 2 Page 1 CS 136, Spring 2016 Security Principles, Policies, and Tools CS 136 Computer Security Peter Reiher March 31, 2016.
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.
Lecture 12 Page 1 CS 136, Spring 2009 Network Security: Firewalls CS 136 Computer Security Peter Reiher May 12, 2009.
Lecture 2 Page 1 CS 136, Fall 2011 Security Principles, Policies, and Tools CS 136 Computer Security Peter Reiher September 27, 2011.
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.
Lecture 9 Page 1 CS 236 Online Firewalls What is a firewall? A machine to protect a network from malicious external attacks Typically a machine that sits.
Outline Security design principles Security policies Basic concepts
Modularity Most useful abstractions an OS wants to offer can’t be directly realized by hardware Modularity is one technique the OS uses to provide better.
Capabilities Each subject keeps a set of data items that specify his allowable accesses Essentially, a set of tickets Possession of the capability for.
Outline Basic concepts in computer security
Chapter 14: System Protection
Protecting Memory What is there to protect in memory?
Protecting Memory What is there to protect in memory?
Outline What does the OS protect? Authentication for operating systems
Outline Security design principles Security policies Basic concepts
Outline What does the OS protect? Authentication for operating systems
CE Operating Systems Lecture 21
Outline Security tools Access control. Security Mechanisms CS 136 Computer Security Peter Reiher April 7, 2009.
Certificates An increasingly popular form of authentication
Outline Using cryptography in networks IPSec SSL and TLS.
Chapter 14: Protection.
Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher.
Presentation transcript:

Lecture 17 Page 1 CS 111 Spring 2015 Operating System Security CS 111 Operating Systems Peter Reiher

Lecture 17 Page 2 CS 111 Spring 2015 Outline Basic concepts in computer security Design principles for security Important security tools for operating systems Access control Cryptography and operating systems Authentication and operating systems Protecting operating system resources

Lecture 17 Page 3 CS 111 Spring 2015 Security: Basic Concepts What do we mean by security? What is trust? Why is security a problem? – In particular, a problem with a different nature than, say, performance – Or even reliability

Lecture 17 Page 4 CS 111 Spring 2015 What Is Security? Security is a policy – E.g., “no unauthorized user may access this file” Protection is a mechanism – E.g., “the system checks user identity against access permissions” Protection mechanisms implement security policies We need to understand our goals to properly set our policies – And threats to achieving our goals – These factors drive which mechanisms we must use

Lecture 17 Page 5 CS 111 Spring 2015 Security Goals Confidentiality – If it’s supposed to be secret, be careful who hears it Integrity – Don’t let someone change something they shouldn’t Availability – Don’t let someone stop others from using services Note that we didn’t mention “computers” here – This classification of security goals is very general

Lecture 17 Page 6 CS 111 Spring 2015 Trust An extremely important security concept You do certain things for those you trust You don’t do them for those you don’t Seems simple, but...

Lecture 17 Page 7 CS 111 Spring 2015 What Do We Trust? Other users? Other computers? Our own computer? Programs? Pieces of data? Network messages? In each case, how can we determine trust?

Lecture 17 Page 8 CS 111 Spring 2015 Problems With Trust How do you express trust? Why do you trust something? How can you be sure who you’re dealing with? – Since identity and trust usually linked What if trust is situational? What if trust changes?

Lecture 17 Page 9 CS 111 Spring 2015 Why Is Security Different? OK, so we care about security Isn’t this just another design dimension – Like performance, usability, reliability, cost, etc. Yes and no Yes, it’s a separable dimension of design No, it’s not just like the others

Lecture 17 Page 10 CS 111 Spring 2015 What Makes Security Unique? Security is different than most other problems in CS The “universe” we’re working in is much more hostile Human opponents seek to outwit us Fundamentally, we want to share secrets in a controlled way – A classically hard problem in human relations

Lecture 17 Page 11 CS 111 Spring 2015 What Makes Security Hard? You have to get everything right – Any mistake is an opportunity for your opponent When was the last time you saw a computer system that did everything right? Since the OS underlies everything, security errors there compromise everything

Lecture 17 Page 12 CS 111 Spring 2015 Security Is Actually Even Harder The computer itself isn’t the only point of vulnerability If the computer security is good enough, the foe will attack: – The users – The programmers – The system administrators – Or something you never thought of

Lecture 17 Page 13 CS 111 Spring 2015 A Further Problem With Security Security costs – Computing resources – People’s time and attention Security must work 100% effectively With 0% overhead Critically important that fundamental, common OS operations aren’t slowed by security

Lecture 17 Page 14 CS 111 Spring 2015 Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least common mechanism Acceptability Fail-safe defaults

Lecture 17 Page 15 CS 111 Spring 2015 Economy in Security Design Economical to develop – And to use – And to verify Should add little or no overhead Should do only what needs to be done Generally, try to keep it simple and small As OS grows, this gets harder

Lecture 17 Page 16 CS 111 Spring 2015 Complete Mediation Apply security on every access to a protected object – E.g., each read of a file, not just the open Also involves checking access on everything that could be attacked Hardware can help here – E.g., memory accesses have complete mediation via paging hardware

Lecture 17 Page 17 CS 111 Spring 2015 Open Design Don’t rely on “security through obscurity” Assume all potential attackers know everything about the design – And completely understand it This doesn’t mean publish everything important about your security system – Though sometimes that’s a good idea Obscurity can provide some security, but it’s brittle – When the fog is cleared, the security disappears Windows (closed design) is not more secure than Linux (open design)

Lecture 17 Page 18 CS 111 Spring 2015 Separation of Privilege Provide mechanisms that separate the privileges used for one purpose from those used for another To allow flexibility in security systems E.g., separate access control on each file

Lecture 17 Page 19 CS 111 Spring 2015 Least Privilege Give bare minimum access rights required to complete a task Require another request to perform another type of access E.g., don’t give write permission to a file if the program only asked for read

Lecture 17 Page 20 CS 111 Spring 2015 Least Common Mechanism Avoid sharing parts of the security mechanism – Among different users – Among different parts of the system Coupling leads to possible security breaches E.g., in memory management, having separate page tables for different processes – Makes it hard for one process to touch memory of another

Lecture 17 Page 21 CS 111 Spring 2015 Acceptability Mechanism must be simple to use Simple enough that people will use it without thinking about it Must rarely or never prevent permissible accesses Windows 7 mechanisms to prevent attacks from downloaded code worked – But users hated them – So now Windows doesn’t use them

Lecture 17 Page 22 CS 111 Spring 2015 Fail-Safe Design Default to lack of access So if something goes wrong or is forgotten or isn’t done, no security lost If important mistakes are made, you’ll find out about them – Without loss of security – But if it happens too often... In OS context, important to think about what happens with traps, interrupts, etc.

Lecture 17 Page 23 CS 111 Spring 2015 Tools For Securing Systems Physical security Access control Encryption Authentication Encapsulation Intrusion detection Filtering technologies

Lecture 17 Page 24 CS 111 Spring 2015 Physical Security Lock up your computer – Usually not sufficient, but... – Necessary (when possible) Networking means that attackers can get to it, anyway But lack of physical security often makes other measures pointless – A challenging issue for mobile computing

Lecture 17 Page 25 CS 111 Spring 2015 Access Control Only let authorized parties access the system A lot trickier than it sounds Particularly in a network environment Once data is outside your system, how can you continue to control it? – Again, of concern in network environments

Lecture 17 Page 26 CS 111 Spring 2015 Encryption Algorithms to hide the content of data or communications Only those knowing a secret can decrypt the protection Obvious value in maintaining secrecy But clever use can provide other important security properties One of the most important tools in computer security – But not a panacea

Lecture 17 Page 27 CS 111 Spring 2015 Authentication Methods of ensuring that someone is who they say they are Vital for access control But also vital for many other purposes Often (but not always) based on encryption Especially difficult in distributed environments

Lecture 17 Page 28 CS 111 Spring 2015 Encapsulation Methods of allowing outsiders limited access to your resources Let them use or access some things – But not everything Simple, in concept Extremely challenging, in practice Operating system often plays a large role, here

Lecture 17 Page 29 CS 111 Spring 2015 Intrusion Detection All security methods sometimes fail When they do, notice that something is wrong And take steps to correct the problem Reactive, not preventative – But unrealistic to believe any prevention is certain Must be automatic to be really useful

Lecture 17 Page 30 CS 111 Spring 2015 Filtering Technologies Detect that there’s something bad: – In a data stream – In a file – Wherever Filter it out and only deliver “safe” stuff The basic idea behind firewalls – And many other approaches Serious issues with detecting the bad stuff and not dropping the good stuff

Lecture 17 Page 31 CS 111 Spring 2015 Operating Systems and Security Tools Physical security is usually assumed by OS Access control is key to OS technologies Encapsulation in various forms is widely provided by operating systems Some form of authentication required by OS Encryption is increasingly used by OS Intrusion detection and filtering not common parts of the OS

Lecture 17 Page 32 CS 111 Spring 2015 Access Control Security could be easy – If we didn’t want anyone to get access to anything The trick is giving access to only the right people How do we ensure that a given resource can only be accessed by the proper people? The OS plays a major role in enforcing access control

Lecture 17 Page 33 CS 111 Spring 2015 Goals for Access Control Complete mediation Least privilege Useful in a networked environment Scalability Cost and usability

Lecture 17 Page 34 CS 111 Spring 2015 Common Mechanisms for Access Control in Operating Systems Access control lists – Like a list of who gets to do something Capabilities – Like a ring of keys that open different doors They have different properties And are used by the OS in different ways

Lecture 17 Page 35 CS 111 Spring 2015 A Common Problem For All Access Control Mechanisms Who gets to determine how they are set? – I.e., which subjects get to access which objects in what modes of use? How do you change the access permissions? In particular, who has the right to change them? And what mechanism is necessary to make the change?

Lecture 17 Page 36 CS 111 Spring 2015 Access Control Lists ACLs For each protected object, maintain a single list Each list entry specifies who can access the object – And the allowable modes of access When something requests access to a object, check the access control list

Lecture 17 Page 37 CS 111 Spring 2015 An Analogy Joe Hipster You’re Not On the List! This is an access control list

Lecture 17 Page 38 CS 111 Spring 2015 An ACL Protecting a File write File X ACL for file X A read write B C none Subject ASubject BSubject C read denied

Lecture 17 Page 39 CS 111 Spring 2015 Issues For Access Control Lists How do you know the requestor is who he says he is? How do you protect the access control list from modification? How do you determine what resources a user can access? Costs associated with complete mediation

Lecture 17 Page 40 CS 111 Spring 2015 An Example Use of ACLs: the Unix File System An ACL-based method for protecting files – Developed in the 1970s Still in very wide use today – With relatively few modifications Per-file ACLs (files are the objects) Three subjects on list for each file Owner, group, other And three modes – Read, write, execute – Sometimes these have special meanings

Lecture 17 Page 41 CS 111 Spring 2015 Changing Access Permissions With ACLs Mechanically, the OS alone can change an ACL (in most systems) But who has the right to ask the OS to do so? In simple ACL systems, each object has an owner – Only the owner can change the ACL – Plus there’s often a superuser who can do anything In more sophisticated ACL systems, changing an ACL is a mode of access to the object – Those with such access can give it to others – Or there can even be a meta-mode, which says if someone who can change it can grant that permission to others

Lecture 17 Page 42 CS 111 Spring 2015 Pros and Cons of ACLs +Easy to figure out who can access a resource +Easy to revoke or change access permissions –Hard to figure out what a subject can access –Changing access rights requires getting to the object

Lecture 17 Page 43 CS 111 Spring 2015 Capabilities Each entity keeps a set of data items that specify his allowable accesses Essentially, a set of tickets To access an object, present the proper capability Possession of the capability for an object implies that access is allowed

Lecture 17 Page 44 CS 111 Spring 2015 An Analogy The key is a capability

Lecture 17 Page 45 CS 111 Spring 2015 Capabilities Protecting a File Read X Subject BSubject C Capabilities for C Capabilities for A File X Read, Write Capabilities for B File X Read File X Subject A Capability Checking File X Read, Write read File X Read, Write Check validity of capability OK!

Lecture 17 Page 46 CS 111 Spring 2015 Capabilities Denying Access write denied write User B User C Capabilities for C Capabilities for A File X Read, Write Capabilities for B File X Read File X User A Capability Checking Check validity of capability No Capability Provided!

Lecture 17 Page 47 CS 111 Spring 2015 Properties of Capabilities Capabilities are essentially a data structure – Ultimately, just a collection of bits Merely possessing the capability grants access – So they must not be forgeable How do we ensure unforgeability for a collection of bits? One solution: – Don’t let the user/process have them – Store them in the operating system

Lecture 17 Page 48 CS 111 Spring 2015 Capabilities and Networks Subject B Subject C Capabilities for C Capabilities for B File X Read Capabilities for A File X Read, Write Subject A Capability Checking File X File X Read, Write Subject A Subject B File X Read Subject C File X Read, Write How can we tell if it’s a good capability? File X Read, Write File X Read, Write File X Read, Write File X Read, Write

Lecture 17 Page 49 CS 111 Spring 2015 Cryptographic Capabilities Create unforgeable capabilities by using cryptography – We’ll discuss cryptography in detail in the next lecture Essentially, a user CANNOT create this capability for himself The examining entity can check the validity Prevents creation of capabilities from nothing – But doesn’t prevent copying them

Lecture 17 Page 50 CS 111 Spring 2015 Revoking Capabilities A simple problem for capabilities stored in the operating system – Just have the OS get rid of it Much harder if it’s not in the operating system – E.g., in a network context How do we make the bundle of bits change from valid to invalid? Consider the real world problem of a door lock If several people have the key, how do we keep one of them out?

Lecture 17 Page 51 CS 111 Spring 2015 Changing Access Permissions With Capabilities Essentially, making a copy of the capability and giving it to someone else If capabilities are inside the OS, it must approve If capabilities are in user/process hands, they just copy the bits and hand out the copy – Crypto methods can customize a capability for one user, though Capability model often uses a particular type of capability to control creating others – Or a mode associated with a capability

Lecture 17 Page 52 CS 111 Spring 2015 Pros and Cons of Capabilities +Easy to determine what objects a subject can access +Potentially faster than ACLs (in some circumstances) +Easy model for transfer of privileges –Hard to determine who can access an object –Requires extra mechanism to allow revocation –In network environment, need cryptographic methods to prevent forgery

Lecture 17 Page 53 CS 111 Spring 2015 OS Use of Access Control Operating systems often use both ACLs and capabilities – Sometimes for the same resource E.g., Unix/Linux uses ACLs for file opens That creates a file descriptor with a particular set of access rights – E.g., read-only The descriptor is essentially a capability

Lecture 17 Page 54 CS 111 Spring 2015 Enforcing Access in an OS Protected resources must be inaccessible – Hardware protection must be used to ensure this – So only the OS can make them accessible to a process To get access, issue request to resource manager – Resource manager consults access control policy data Access may be granted directly – Resource manager maps resource into process Access may be granted indirectly – Resource manager returns a “capability” to process

Lecture 17 Page 55 CS 111 Spring 2015 Direct Access To Resources OS checks access control on initial request If OK, OS maps it into a process’ address space – The process manipulates resource with normal instructions – Examples: shared data segment or video frame buffer Advantages: – Access check is performed only once, at grant time – Very efficient, process can access resource directly Disadvantages: – Process may be able to corrupt the resource – Access revocation may be awkward You’ve pulled part of a process’ address space out from under it

Lecture 17 Page 56 CS 111 Spring 2015 Indirect Access To Resources Resource is not directly mapped into process – Process must issue service requests to use resource – Access control can be checked on each request – Examples: network and IPC connections Advantages: – Only resource manager actually touches resource – Resource manager can ensure integrity of resource – Access can be checked, blocked, revoked at any time If revoked, system call can just return error code Disadvantages: – Overhead of system call every time resource is used – Making sure you catch every access