Access Control Mechanisms and Security Models: How Does The Computer Enforce Access Policy?
Access Control Mechanisms and Security Models: How Does The Computer Enforce Access Policy?
Readings
EROS essays on capabilities (instead of access
lists) http://www.eros-os.org/essays/00Essays.html Computer Security paper by Kemmerer
O.S. Protection
All I/O instructions are privileged instructions. Must ensure that a user program could never gain control of the computer in monitor mode (i.e., a user program cannot alter OS program instructions). Must provide memory protection for the OS kernel and one user program from accessing memory allocated to another.
Associate with every process, two registers that determine the range of legal addresses: Base register holds the smallest legal physical memory address. Limit register contains the size of the range Memory outside the defined range cannot be accessed. In monitor mode, the operating system has unrestricted access to both monitor and users memory. The load instructions for the base and limit registers are privileged instructions.
Each object has a unique name and can be accessed through a well-defined set of operations. For files those operations are: read, write, execute.
Protection problem - ensure that each object is accessed correctly and only by those processes that are allowed to do so.
Object
Passive entity or resource in a computer system
Files, directories, printers
Access Operations
An access is an interaction between an object and a subject A subject may observe (read) an object
Information flows from object to subject
The append (or blind write or write-only) access mode allows users to alter an object without observing its contents
Rarely useful (audit log files being the main exception) Implemented in Multics
Execute Access
Sometimes an object can be used without opening it in read or write mode
Directories Binary executable files Cryptographic keys
Directory access
Read (list directory contents) Write (create or rename files in directory) Execute (search directory)
Unix ls command
Operations drwxr-xr-x -rw-------rwxr-xr-x -rw-r----Owner Group jason jason jason jason Research research research research Size 512 127092 7632 0 Updated Jul 3 15:51 Aug 28 15:01 Name Research Trash
Access Matrix
The protection problem can be viewed 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
Access Matrix
Access Matrix
Access matrix is the mechanism for enforcing security policy. Policy
Who can access what object and in what mode.
Mechanism
Operating system provides access-matrix + rules. It ensures that the matrix is only manipulated by authorized agents and that rules are strictly enforced.
A request is granted if
a belongs to the access matrix entry corresponding to subject s and object o
Each Row = Capability List (like a key). For each domain, what operations allowed on what objects.
Object 1 Read Object 4 Read, Write, Execute Object 5 Read, Write, Delete, Copy
Disadvantage
How can we check the access rights of a particular subject efficiently (before-the-act per-subject review)?
Capability Lists
Capability lists focus on the subjects
Typically implemented in services and application software Database applications often use capability lists to implement fine-grained access to tables and queries Renewed interest in capability-based access control for distributed systems
Disdavantage
How can we check which subjects can access a given object (before-the-act per-object review)?
Administrative Tasks
Tasks include
Creation of new objects and subjects Deletion of objects and subjects Changing entries in access control matrix (changing entries in ACLs and capability lists)
The administration of access control structures is extremely time-consuming, complicated and error-prone
Example
Objects are bank accounts Subjects are bank employees The set of bank accounts forms a data type We define roles
Teller Clerk Administrator
Changing a file to read-only for everyone (february-sales is made read-only when February is over) is easier in ACLs.
Implementation Considerations
In a given implementation, new lists can be created or changed easily, whereas the items in the lists must be welldefined and unchanging. Creating a new domain or splitting a current one is easy in capability lists. domainB as manager and domainB as payroll person. The result is that capability list systems create fine-grained domains. This makes it easy to enforce the principle of least privilege a fundamental principle in computer security.
Note: this domain does not have the capability to write to /x/y/z UNIX, an ACL system, handles this type of problem with the setuid bit but this has lead to many security problems.
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.
application
Protection Rings
Often, the location of a security mechanism on the protection ring is related to its complexity. Generic mechanisms (inner rings) are simple, applications (outer rings) clamour for feature-rich security functions. Do you prefer simplicity - and higher assurance to a feature-rich security environment? Fundamental dilemma: simple generic mechanisms may not match specific security requirements. To choose the right features from a rich menu, you have to be a security expert. Security unaware users are in a no-win situation.
Examples
Backup: whoever has access to a backup tape has access to all the data on it. Logical access control is of no help and backup tapes have to be locked away safely to protect the data.
Security Models
A security model is a formal description of a security policy Models are used in high assurance security evaluations Models are important historic milestones in computer security (e.g. Bell-LaPadula) The models presented today are not recipes for security but can be a starting point when you have to define a model yourself.
(s,o,a), s S, o O, a A
E.g.: (Alice, fun.com, read)
Well studied and formalized. Used in government Orange Book and Common Criteria Considers only multi-level security needs, thus describes confidentiality requirements.
Read down
Prevents subjects from acting as channels by reading one memory object and transferring information to another memory object
BLP Model
C(s) is the confidentiality level of subject s. C(o) is the level of object o. Subject s can read object o if C(s) C(o) Subject s can write to object o if C(o) C(s) * property that prevents information leakage: if s has read o, then he can write to p only if C(p) C(o)
Biba Model
BLP applies to secrecy of information (confidentiality), but not integrity. Biba model identifies inappropriate modification of data. State machine model similar to BLP for integrity policies that regulate modification of objects Integrity levels (such as trustworthy, untrusted or corrupted) are assigned to subjects and objects The Biba model has policies for an invoke operation whereby one subject can access (invoke) another subject The policies for static integrity levels are the dual of the BLP confidentiality levels
Biba Model
Subjects and objects are ordered by integrity levels
I(s) is the integrity of subject s I(o) is the integrity of object o
Subject s can modify o only if I(s) I(o) Integrity * property: If s has read access to object o with integrity level I(o), then s can have write access to p only if I(o) I(p) (anti-pollution property)