!main_tags!Access Control - Operating Systems | What's Your IQ !main_header!

Introduction

Access control is a core component of operating system security. It defines methods to regulate user and process interactions with resources. Objectives: prevent unauthorized access, ensure confidentiality, integrity, availability. Scope: files, devices, memory, network connections. Methods: enforce policies via authentication, authorization, and auditing.

"Access control is the gatekeeper of system security, ensuring only authorized entities interact with protected assets." -- Peter G. Neumann

Basic Concepts

Subjects and Objects

Subject: active entity requesting access (user, process). Object: passive entity being accessed (file, device). Access is an operation performed by subject on object.

Access Rights

Types: read, write, execute, delete, append. Rights define permitted operations. Principle of least privilege applies.

Access Control Policies

Rules defining who can access what and how. Enforced by access control mechanisms. Policies vary by environment and requirements.

Security Attributes

Metadata attached to subjects and objects: classifications, roles, permissions. Used to make access decisions.

Access Control Models

Discretionary Access Control (DAC)

Owner controls access. Permission granting is discretionary. Flexible but vulnerable to Trojan horses.

Mandatory Access Control (MAC)

System-enforced policy. Access based on classifications and clearances. Used in high-security environments.

Role-Based Access Control (RBAC)

Access based on user roles. Roles group permissions. Simplifies management in organizations.

Attribute-Based Access Control (ABAC)

Decisions based on attributes of subjects, objects, and environment. Fine-grained, context-aware.

Access Control Mechanisms

Authentication

Process of verifying identity. Methods: passwords, biometrics, tokens, certificates.

Authorization

Granting permissions based on authenticated identity and policy rules.

Access Control Enforcement

Mechanisms: reference monitors, security kernels, trusted computing base.

Audit and Monitoring

Logging access attempts, successes, failures. Supports accountability and intrusion detection.

Authentication vs Authorization

Authentication

Verification of identity. Factors: something you know, have, are. Examples: password, smart card, fingerprint.

Authorization

Determination of access rights. Follows successful authentication. Dictated by access control policies.

Relationship

Authentication precedes authorization. Both required for secure access control.

Discretionary Access Control (DAC)

Characteristics

Owner-centric control. Permissions can be delegated. Common in commercial OSs like Windows, UNIX.

Advantages

Flexibility, ease of use, delegation capability.

Disadvantages

Vulnerable to privilege escalation, Trojan horses. Lack of centralized control.

Implementation

Access control lists (ACLs), capability lists.

Mandatory Access Control (MAC)

Characteristics

System-enforced policy. Subjects and objects labeled with security levels. Access decisions based on labels.

Security Models

Bell-LaPadula (confidentiality), Biba (integrity), Chinese Wall (conflict of interest).

Advantages

Strong security guarantees. Suitable for military, government systems.

Disadvantages

Inflexible. Complex to administer. Can hinder usability.

Role-Based Access Control (RBAC)

Concept

Access rights assigned to roles. Users assigned to roles. Simplifies permission management.

Components

Users, roles, permissions, sessions. Role hierarchies and constraints possible.

Advantages

Scalable, manageable, enforces separation of duties.

Use Cases

Enterprise systems, healthcare, financial institutions.

Access Control Lists and Capabilities

Access Control Lists (ACLs)

Object-centric. Lists users and their permissions per object.

Capabilities

Subject-centric. Tokens or keys granting access rights to specific objects.

Comparison

ACLs easier to audit. Capabilities better for distributed systems and delegation.

Table: ACL vs Capability

Aspect Access Control List (ACL) Capability
Focus Object-centric Subject-centric
Management List of authorized subjects per object Tokens carried by subjects
Delegation Complex, requires list updates Simple, token transfer
Audit Straightforward Difficult

Policy Enforcement and Administration

Reference Monitor

Concept: mediates all access requests. Properties: tamper-proof, always invoked, small enough to verify.

Security Kernel

Implementation of reference monitor. Enforces mandatory policies. Isolated from user processes.

Policy Administration

Tools and interfaces for defining, updating policies. Includes user provisioning, role management.

Access Control Policy Languages

Examples: XACML, Ponder. Formal languages for specifying policies.

Security Issues and Challenges

Insider Threats

Authorized users abusing privileges. Detection and restriction difficult.

Privilege Escalation

Exploiting flaws to gain higher access. Requires mitigation strategies.

Policy Conflicts

Contradictory rules cause ambiguity. Needs formal verification.

Usability vs Security

Overly restrictive controls hinder productivity. Balance needed.

Scalability

Large systems require scalable access control solutions.

References

  • Sandhu, R., Coyne, E. J., Feinstein, H. L., Youman, C. E. "Role-Based Access Control Models." IEEE Computer, vol. 29, no. 2, 1996, pp. 38-47.
  • Bell, D. E., LaPadula, L. J. "Secure Computer Systems: Mathematical Foundations." MITRE Corp., 1973.
  • Ferraiolo, D. F., Kuhn, D. R. "Role-Based Access Controls." 15th NIST-NCSC National Computer Security Conference, 1992, pp. 554-563.
  • Osborn, S. L., Sandhu, R., Munawer, Q. "Configuring Role-Based Access Control to Enforce Mandatory and Discretionary Access Control Policies." ACM Transactions on Information and System Security, vol. 3, no. 2, 2000, pp. 85-106.
  • Hu, V. C., Ferraiolo, D., Kuhn, D. R. "Assessment of Access Control Systems." NIST Interagency Report 7316, 2006.

Access Control Algorithms and Formalisms

Access Decision Function

access_decision(subject, object, operation) = if (policy(subject, object, operation) == allow) return permit; else return deny;

RBAC Role Hierarchy Example

// Role inheritanceRole_Admin > Role_Manager > Role_Employee// Permissions assigned to rolesPerm(Role_Admin) = {read, write, delete, assign}Perm(Role_Manager) = {read, write}Perm(Role_Employee) = {read}// User-role assignmentUser_Alice assigned Role_ManagerUser_Bob assigned Role_Employee// Effective permissions for AliceEffective_Perm(User_Alice) = Perm(Role_Manager) + inherited from Role_Employee = {read, write}
!main_footer!