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.
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.
Future Trends in Access Control
Context-Aware Access Control
Incorporates environmental factors: location, time, device state.
Machine Learning Integration
Adaptive policies based on behavior analysis, anomaly detection.
Blockchain-Based Access Control
Decentralized, tamper-resistant access logs and policies.
Zero Trust Architectures
Continuous verification, minimal implicit trust, micro-segmentation.
Policy Automation and Orchestration
Automated policy generation, conflict resolution, and enforcement.
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}