15 Protection and Security 2 - Illinois Institute of Technology

advertisement
Protection and Security - 2
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
1
(2) The Access Control List Method
Each object ‘o’ is assigned a list of pairs (s, P[s,o]), for all subjects ‘s’ that can
access the object
• The access list for an object corresponds to the access rights contained in the
column for object ‘o’ in the access matrix
•
•
Example:
Subjects
Access rights
Smith
read, write, execute
Jones
read
Lee
write
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
2
(2) The Access Control List Method (cont.)
•
Operation: Subject ‘s’ requests access ‘’ to object ‘o’
–
–
–
•
Search access control list of ‘o’ for entry (s, )
If entry exists, check if   
If yes, allow execution. Else, exception raised
Advantages of access control lists
–
–
–
Easy revocation of access rights from a subject to an object: remove
object’s entry from the object’s access control list
Easy review of access rights of all subjects to a given object
Note: it is, however, difficult to determine for a given subject what
objects it has access to
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
3
Issues with Access Control Lists
•Efficiency
–
–
of execution
Access control list needs to be searched for every access to an object!
Option: use shadow capability registers




On first access by a subject, copy access rights from access control list to a
shadow register with the subject
The access rights in the shadow register acts as a capability
Subsequent accesses by this subject use the shadow register
Potential drawback:
–
Revocation of access rights becomes more difficult: removing access rights
from access control list is not sufficient, some access rights remain in shadow
registers
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
4
Issues with Access Control Lists (cont)
• Efficiency of storage
–
–
–
The list can be very large, containing the access rights of all subjects that can
access this object
Note: the aggregate storage requirement is about the same as for capabilities
Option: use protection groups




Subjects (users) divided into protection groups
Access control list contains the names of groups and their access rights
Operation: subject gives its protection group and requested access
Issue: All subjects in a protection group have the same access rights to the object
• Authority to change an access control list
–
–
Issue: who can modify an access control list?
Options:


Self control: owner process (e.g., creator of the object) can modify list
Hierarchical control:
–
–
When object created, owner process specifies what other processes can modify access
control list
Processes organized in a hierarchy: a process can change the access control list of all
processes below it in the hierarchy
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
5
Examples of Systems using Access Control Lists
•
Multics
–
–
•
Access control lists to control access to files
Principle of least privilege
Unix
–
–
Access control list has three entries: owner, group, and other
Access rights: read, write, execute
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
6
(3) The Lock-Key Method
•
Principles
–
–
–
•
Hybrid of capability-based method and access control list method
Every subject has a capability list made of tuples (o, k): the subject can
access object ‘o’ using key ‘k’
Every object has an access control list made of tuples (l, ), called lock
entries: any subject that can open lock ‘l’ can access the object with an
access right contained in ‘’
Operation
–
–
–
–
Subject ‘s’ makes request for access ‘’ to object ‘o’
The system locates tuple (o, k) in capability list of the subject
If present, search access control list of object ‘o’ for entry (l, ), where
k = l and obtain 
Access allowed if   
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
7
(3) The Lock-Key Method (cont.)
• Advantages:
•
–
Easy revocation of access rights: to revoke the access rights of a subject
to an object, delete the lock entry corresponding to the key of the subject
–
Capability-based addressing can be used
Disadvantages:
–
•
Access control list must be searched for every access
Example
–
IBM/360 storage keys protection method similar to lock-key method
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
8
Access Matrix Model: Changing The Protection State
• Access
matrix is itself a protected object
• Commands for changing protection state
–
–
–
Set of commands ‘C’ for changing protection state defined in the form of
the following primitive operations
enter r into P [s, o]
delete r from P [s, o]
create subject s
create object o
destroy subject s
destroy object o
Primitive operations: define changes to be made to the access matrix P
Example: Primitive operation delete r from P [s, o] deletes access right r
from the position P [s, o] in the access matrix, I.e., access right r of
subject s to object o is withdrawn
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
9
Access Matrix Model: Changing The Protection State (cont.)
• Before the operation is performed (e.g., the delete in previous example), a
verification should be made that the process has the right to perform this operation
on the access matrix:
• Command syntax:
command < command id > (<formal parameters>)
if < conditions >
then
< list of primitive operations >
end.
• Command execution
–
–
All checks in the condition part are evaluated. The <conditions> part has checks
in the form ‘r in P[s,o]’
If all checks pass, primitive operations in <list of primitive operations> are
executed
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
10
Access Matrix Model: Changing The Protection State (cont.)
• All accesses are validated by a mechanism called a reference monitor: the
reference monitor will reject an access not allowed by the access matrix
• Each object has an owner
–
If ‘s’ is the owner of ‘o’, then own  P [ s, o ]
–
The owner of an object can give (confer) a right to the object to another
subject
• Example: command to create a file and assign ‘own’ and ‘read’ rights to it
command create-read (process, file)
create object file
enter own into P [process, file]
enter read into P [process, file]
end.
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
11
Access Matrix Model: Changing The Protection State (cont.)
•Example:
command owner of a file gives ‘write’ access rights to another process
command confer-write (owner, process, file)
if own  P [ owner, file ]
then
enter write into P [process, file]
end.
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
12
Advanced Models of Protection: The Take-Grant Model
•
Principles:
–
–
–
•
Uses directed graphs to model access control
Protection state of system represented by directed graph
More efficient than (sparsely populated) access matrix
Model:
–
–
–
Graph nodes: subjects and objects
An edge from node ‘x’ to node ‘y’ indicates that subject ‘x’ has an access right to
the object ‘y’: the edge is tagged with the corresponding access rights
Access rights
Read (r), write (w), execute (e)
Special access rights for propagating access rights to other nodes


–
–
Take: If node ‘x’ has access right take to node ‘y’, then subject ‘x’ can take any
access right that it has on ‘y’ to another node
Grant: If node ‘x’ has access right grant to node ‘y’, then the entity represented
by node ‘y’ can be granted any of the access rights that node ‘x’ has
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
13
The Take-Grant Model (cont.)
•
Example: take operation
–
–
–
Node ‘x’ has take access to node ‘y’
Node ‘y’ has read and write access to node ‘z’
Node ‘x’ can take access right read from ‘y’ and have this access right for
object ‘z’ : a directed edge labeled ‘r’ is added from node ‘x’ to node ‘z’
x
t
y
r, w
z
x
t
r
y
r, w
z
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
14
The Take-Grant Model (cont.)
•
Example: grant operation
–
–
Node ‘x’ has grant access to node ‘y’ and also has read and write access
to node ‘z’
Node ‘x’ can grant read access for ‘z’ to node ‘y’ ( a directed edge
labeled ‘r’ from ‘y’ to ‘z’ is added in the graph)
g
x
y
r, w
z
g
x
y
r
r, w
z
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
15
The Take-Grant Model (cont.)
•
State and state transitions:
–
–
–
The protection state of the system is represented by the directed graph
System changes state (state transition) when the directed graph changes
The directed graph changes with the following operations



Take
Grant
Create: A new node is added to the graph
–

When node ‘x’ creates a new node ‘y’, a directed edge is added from ‘x’ to ‘y’
Remove: A node deletes some of its access rights to another node
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
16
Bell-LaPadula Model
Used to control information flow
• Model components
•
–
–
Subjects, objects, and access matrix
Several ordered security levels


–
Subjects can have the following access rights to objects




–
Each subject has a (maximum) clearance and a current clearance level
Each object has a classification (I.e., belongs to a security level)
Read-only
Append: subject can only write object (no read permitted)
Execute: no read or write
Read-write: both read and write are permitted
Subject that creates an object has control attribute to that object and is
the controller of the object

Subject can pass any of the four access rights of the controlled object to
another subject
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
17
Bell-LaPadula Model (cont.)
Restrictions on information flow and access control (reading down and writing up
properties):
1. The simple security property
•
–
A subject cannot have read access to an object with classification higher than the
clearance level of the subject
2. The -property (star property)
–
–
–
A subject has append (I.e., write) access only to objects which have classification
(I.e., security level) higher than or equal to the current security clearance level of
the subject
A subject has read access only to objects which have classification (I.e., security
level) lower than or equal to the current security clearance level of the subject
A subject has read-write access only to objects which have classification (I.e.,
security level) equal to the current security clearance level of the subject
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
18
Bell-LaPadula Model (cont.)
Level n
can write
.
.
.
Level i+1
Level i
Level i-1
.
.
.
Level 1
can read
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
19
Case Studies: Unix
•
Subjects:
–
–
–
•
Each user identified by a a ‘userid’
A user may belong to a group identified by ‘groupid’
‘Userid’ and ‘groupid’ are part of the process descriptor of the process
running on behalf of the user and used to verify access rights
Protected objects: files and directories
–
–
Each file has a unique owner (user who created the file)
Each file has two access fields


‘userid’ field: file owner
‘groupid’ field: ‘groupid” of the group to which the file belongs
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
20
Case Studies: Unix (cont.)
Protection mechanism for files: access control list with protection
groups for access efficiency
•
–
–
Protection groups: owner, group, others
Access rights for each group: read, write, execute


•
Three fields associated with each file of three bits each
Only the owner of the file and the super user can change these bits (‘chmod’
command)
Protection domain
–
–
–
Associated with each user
At login, user starts in a protection domain defining access rights
Domain can be changed with ‘su’ (set userid) command
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
21
The Hydra Kernel
•
Kernel of a multiprocessor OS (Carnegie-Mellon U.)
–
–
Provides mechanisms on which a large array of OSs can be built
Supports capability-based protection
• An
object (abstraction of a resource) is the unit of protection
• Procedure is an abstraction of an operation on an object
• Protection mechanism controls the invocation of procedures to
instances of objects (i.e., resources)
• Objects
–
Each object has: name, type, representation,

Representation
–
–
Data part: can be accessed by programs with the right capability
Capability part: capabilities for other objects can be changed only by the kernel
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
22
The Hydra Kernel (cont.)
•
Protection:
–
–
Elements: objects (abstraction of resources) and capabilities (references
to objects)
Operation:


• Access
–
–
rights:
Kernel rights: kernel supports the basic access rights (read, write, copy)
Auxiliary rights: user defined object operations



–
Process/user supplies capability for object
Kernel validates access rights
User defines a new object type and associated operations
Kernel treats these operations as auxiliary rights for the object
For a user to perform these operations on the object, its capability must
contain these auxiliary rights
Kernel uses a 24-bit mask to encode access rights: kernel rights have
fixed positions
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
23
Amoeba
• Distributed OS (Tanenbaum)
• Object-based, client-server model
–
–
•
Client processes request operations on objects by sending requests to
server processes via RPCs
Every object is managed by a server process
Capabilities-based protection: Capability structure
server port
–
–
–
–
object number
rights
check
Server port: identity of server process that manages corresponding object
Object number: identifies specific object
Rights: access allowed
Check: protection against unauthorized changes (cryptographic
technique)
CS-550 (M.Soneru): Protection and Security - 2 [SaS]
24
Download