No Slide Title
Download
Report
Transcript No Slide Title
Protection (Chapter 14)
Operating System Concepts – 8th Edition,
Silberschatz, Galvin and Gagne ©2009
Goals of Protection
The role of protection in a computer system is to provide a mechanism
for the enforcement of the policies governing resource use.
- ensure that each object is accessed correctly and only by those
processes that are allowed to do so
- policies may change over time: mechanisms should be adaptive or
implemented at different levels (e.g., OS and application)
Protection vs. Security
Security is a measure of confidence that resources are protected
Examples of protection in computer systems?
Operating System Concepts – 8th Edition
14.2
Silberschatz, Galvin and Gagne ©2009
Principles of Protection
Guiding principle – principle of least privilege
Programs, users and systems should be given just enough privileges
to perform their tasks
Examples of benefits:
Breaking into one system should not be equivalent to breaking into all
Breaking into one user account should not mean getting access to all
Overflow of a buffer in a system daemon should only cause the
daemon process to fail (but not to allow execution of code from the
daemon’s stack that would enable gaining root access)
A variant: the need-to-know principle
In a procedure have access only to local and global variables, but not
to local variables of another procedure
Operating System Concepts – 8th Edition
14.3
Silberschatz, Galvin and Gagne ©2009
Protection Domains
A process operates within a protection domain
- Specifies the resources that the process may access
Domain = set of access-rights
Access-right = <object-name, rights-set>
where rights-set is a subset of all valid operations that can be performed on
the object.
Association between processes and domains: static or dynamic
Static: may need to change the domain content to accommodate the “needto-know” principle
Dynamic: mechanism needed for domain switching
Domain may be: user, process, procedure
- How does domain switching occur in each case?
Operating System Concepts – 8th Edition
14.4
Silberschatz, Galvin and Gagne ©2009
Case Scenario: Domain Implementation in UNIX
System consists of 2 domains:
User
Supervisor
UNIX
Domain = user-id
Domain switch accomplished via file system
Each file has associated with it a domain bit (setuid bit)
When file is executed and setuid = on, then user-id is set to owner of
the file being executed. When execution completes user-id is reset.
Security problem: create a file with owner root and the setuid bit set
Alternative:
Place privileged programs in a special directory. The OS changes the user
ID of programs who run from that directory
No change of user ID: need special mechanism to allow users to get
access to privileged facilities.
Operating System Concepts – 8th Edition
14.5
Silberschatz, Galvin and Gagne ©2009
Case Scenario: Domain Implementation in MULTICS
Let Di and Dj be any two domain rings
If j < i Di Dj : more privileges in Dj than in Di
Domain switching through procedure calls
Each segment is a file; associated with one ring
Segment descriptor: ring number, access bracket [b1, b2], limit b3, set
of gates
Switch: process running in i : if i > b2, then access only through gates
iff i < b3
Limitations: hard to implement the “need-to-know” principle; complexity; no
limitation between policy and mechanism
Operating System Concepts – 8th Edition
14.6
Silberschatz, Galvin and Gagne ©2009
Access Matrix
View protection as a matrix (access matrix)
Rows represent domains, columns represent objects
Access(i, j) is the set of operations that a process executing in Domaini
can invoke on Objectj
Operating System Concepts – 8th Edition
14.7
Silberschatz, Galvin and Gagne ©2009
Use of Access Matrix
Access matrix design separates mechanism from policy
Mechanism
Operating system provides access-matrix + rules
If ensures that the matrix is only manipulated by authorized agents and that
rules are strictly enforced
Policy
User dictates policy: Who can access what object and in what mode
Can be expanded to dynamic protection
Operations to add, delete access rights
Special access rights:
owner of Oi
copy op from Oi to Oj
control – Di can modify Dj access rights
transfer – switch from domain Di to Dj
Operating System Concepts – 8th Edition
14.8
Silberschatz, Galvin and Gagne ©2009
Access Matrix With Domains as Objects
Operating System Concepts – 8th Edition
14.9
Silberschatz, Galvin and Gagne ©2009
Access Matrix with Copy Rights
* Means right to copy access rights from one domain to another.
Operating System Concepts – 8th Edition
14.10
Silberschatz, Galvin and Gagne ©2009
Access Matrix With Owner Rights
Operating System Concepts – 8th Edition
14.11
Silberschatz, Galvin and Gagne ©2009
Control Right: Make Changes in Domains
Add “control”
Operating System Concepts – 8th Edition
14.12
Silberschatz, Galvin and Gagne ©2009
Implementation of Access Matrix
Global table
Access-control list for one object: defines who can perform what operation.
Domain 1 = Read, Write
Domain 2 = Read
Domain 3 = Read
Capability List: for each domain, what operations are allowed on what
objects.
Object 1 – Read
Object 4 – Read, Write, Execute
Object 5 – Read, Write, Delete, Copy
Lock-key scheme: each object and each domain has a list of unique bit
patterns (called locks, respectively keys)
Operating System Concepts – 8th Edition
14.13
Silberschatz, Galvin and Gagne ©2009
Revocation of Access Rights
Types of revocations:
Immediate vs. delayed
Selective vs. general
Partial vs. total
Temporary vs. permanent
Access List – Delete access rights from access list
Simple
Immediate
Can be general or selective, total or partial, permanent or temporary
Capability List – Scheme required to locate capability in the system before capability
can be revoked
Reacquisition
Back-pointers
Indirection
Keys
Operating System Concepts – 8th Edition
14.14
Silberschatz, Galvin and Gagne ©2009
Practice Problem
Most modern processors and operating systems enforce protection
boundaries that prevent programs from interfering with one another
or with the operating system, and that allow the operating system to
securely mediate and monitor all accesses to shared resources in
accordance with a protection policy. Briefly summarize the most
important mechanisms underlying OS protection.
Operating System Concepts – 8th Edition
14.15
Silberschatz, Galvin and Gagne ©2009