Operating System Security CS 111 Operating Systems Peter Reiher - - PowerPoint PPT Presentation

operating system security cs 111 operating systems peter
SMART_READER_LITE
LIVE PREVIEW

Operating System Security CS 111 Operating Systems Peter Reiher - - PowerPoint PPT Presentation

Operating System Security CS 111 Operating Systems Peter Reiher Lecture 17 CS 111 Page 1 Spring 2015 Outline Basic concepts in computer security Design principles for security Important security tools for operating systems


slide-1
SLIDE 1

Lecture 17 Page 1 CS 111 Spring 2015

Operating System Security CS 111 Operating Systems Peter Reiher

slide-2
SLIDE 2

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
slide-3
SLIDE 3

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

slide-4
SLIDE 4

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

slide-5
SLIDE 5

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

slide-6
SLIDE 6

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 . . .
slide-7
SLIDE 7

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?
slide-8
SLIDE 8

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?
slide-9
SLIDE 9

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
slide-10
SLIDE 10

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

slide-11
SLIDE 11

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

  • pponent
  • When was the last time you saw a computer

system that did everything right?

  • Since the OS underlies everything, security

errors there compromise everything

slide-12
SLIDE 12

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

slide-13
SLIDE 13

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

slide-14
SLIDE 14

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
slide-15
SLIDE 15

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
slide-16
SLIDE 16

Lecture 17 Page 16 CS 111 Spring 2015

Complete Mediation

  • Apply security on every access to a protected
  • bject

– 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

slide-17
SLIDE 17

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)

slide-18
SLIDE 18

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
slide-19
SLIDE 19

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

slide-20
SLIDE 20

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

slide-21
SLIDE 21

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

slide-22
SLIDE 22

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.

slide-23
SLIDE 23

Lecture 17 Page 23 CS 111 Spring 2015

Tools For Securing Systems

  • Physical security
  • Access control
  • Encryption
  • Authentication
  • Encapsulation
  • Intrusion detection
  • Filtering technologies
slide-24
SLIDE 24

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
  • ther measures pointless

– A challenging issue for mobile computing

slide-25
SLIDE 25

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

slide-26
SLIDE 26

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

slide-27
SLIDE 27

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

slide-28
SLIDE 28

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

slide-29
SLIDE 29

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
slide-30
SLIDE 30

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

slide-31
SLIDE 31

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

slide-32
SLIDE 32

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
  • nly be accessed by the proper people?
  • The OS plays a major role in enforcing access

control

slide-33
SLIDE 33

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
slide-34
SLIDE 34

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
slide-35
SLIDE 35

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?

slide-36
SLIDE 36

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
  • bject, check the access control list
slide-37
SLIDE 37

Lecture 17 Page 37 CS 111 Spring 2015

An Analogy

Joe Hipstfr You’re Not On the List!

This is an access control list

slide-38
SLIDE 38

Lecture 17 Page 38 CS 111 Spring 2015

An ACL Protecting a File

File X ACL for file X A

read write

B

write

C

none

Subject A Subject B Subject C read denied

slide-39
SLIDE 39

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
slide-40
SLIDE 40

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

slide-41
SLIDE 41

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

slide-42
SLIDE 42

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

slide-43
SLIDE 43

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

slide-44
SLIDE 44

Lecture 17 Page 44 CS 111 Spring 2015

An Analogy

The key is a capability

slide-45
SLIDE 45

Lecture 17 Page 45 CS 111 Spring 2015

Capabilities Protecting a File

Read X

Subject B Subject 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 File X Read, Write

Check validity of capability

OK!

slide-46
SLIDE 46

Lecture 17 Page 46 CS 111 Spring 2015

Capabilities Denying Access

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!

slide-47
SLIDE 47

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

slide-48
SLIDE 48

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

slide-49
SLIDE 49

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

slide-50
SLIDE 50

Lecture 17 Page 50 CS 111 Spring 2015

Revoking Capabilities

  • A simple problem for capabilities stored in the
  • perating 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
  • ne of them out?
slide-51
SLIDE 51

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

slide-52
SLIDE 52

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

slide-53
SLIDE 53

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
slide-54
SLIDE 54

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

slide-55
SLIDE 55

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
slide-56
SLIDE 56

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