Access Controls
Access controls are security measures designed to restrict access to systems, data, and physical spaces to authorized individuals, devices, processes, or other entities. Effective access control involves several key steps: user identification, authentication (verifying the claimed identity), and authorization (granting, denying, or documenting access requests).
According to identity management company Permit, there are three primary types of access control models:
- Role-based access control (RBAC): Permissions are assigned based on organizational roles.
- Attribute-based access control (ABAC): Permissions are determined by evaluating attributes associated with users, resources, or the environment.
- Relationship-based access control (ReBAC): Access decisions are based on the relationships between specific resources and identities.
Access controls can be applied at various levels (including network access, host operating systems, and physical entry points) and for specific functions (such as financial transactions, system configuration changes, or security administration).
According to identity management company Frontegg, identity and access management (IAM) systems typically include five core components:
- Provisioning: creating and managing user identities and access rights
- Authentication: verifying a user’s identity
- Authorization: verifying that an authenticated user has the appropriate access rights
- Audits and compliance: monitoring user activities and ensuring compliance with regulatory mandates
- Deprovisioning: revoking user identities and access rights when they are no longer needed.
The Open Web Application Security Project (OWASP) provides several recommendations to mitigate authorization vulnerabilities, including
- enforcing the principle of least privilege
- denying access by default
- validating permissions on every request
- thoroughly reviewing the authorization logic of selected tools and technologies
- preferring ABAC and ReBAC models over RBAC models where appropriate
- ensuring that lookup IDs cannot be accessed or tampered with, even if guessed
- enforcing authorization checks on static resources
- verifying that authorization checks are performed in the correct location
- safely exiting and invalidating session identifiers when authorization checks fail
- implementing appropriate logging
- creating unit and integration tests for authorization logic.
Commercial Off-the-Shelf Solutions and Simple Recommendations
- AWS Identity and Access Management1
- Azure RBAC2
- Google Cloud IAM3
- Axiomatics4
- Auth05
- IBM Verify Identity Governance6
- Permit.io7
- Java Authorization and Authentication Service8
- OWASP ESAPI Access Control feature9
- WorkOS10
How Does This Relate to the Rest of the Guide or Other Threats That the User Cares About?
- Access control: A.ART-1, A.DSAP-1, CC.ACA-1, CC.ACA-2, CC.PSC-1, COP.ACA-1, COP.ACA-2, COP.ACA-3, COP.ACA-4, D.ACA-1, D.DSSAC-1, HT.ACA-1, HT.ACA-2, HT.ACA-3, IE.ACA-1, IE.ACA-2, IE.MLCM-2, II.ACA-1, II.ACA-2, MT.ACG-1, MT.ACG-2, MW.ACA-1, MW.ACA-2
- Access control:
- Berryville Institute of Machine Learning (BIML): Model Extraction
- API1:2023—Broken Object Level Authorization
- API2:2023—Broken Authentication
- API5:2023—Broken Function Level Authorization
- ML01: Input Manipulation Attack
- ML02: Data Poisoning Attack
- ML03: Model Inversion Attack
- ML05: Model Stealing Attack
- ML06: AI Supply Chain Attack
- LLM03: Training Data Poisoning
- LLM05: Supply Chain Vulnerabilities
- LLM06: Sensitive Information Disclosure
- LLM07: Insecure Plugin Design
- LLM10: Model Theft
Other Sources of Information About This Topic
- “Authorization Cheat Sheet” (OWASP)11
- Guide to Attribute Based Access Control (ABAC) Definition and Considerations (NIST)12
- “Attribute‑Based Access Control (ABAC) vs Relationship‑Based Access Control (ReBAC)” (Permit.io)13
- “What Is Identity and Access Management (IAM)?” (Frontegg)14
- “Using Large Language Models (LLMs) in Access Management” (Open Identity Platform)15
- “Navigating AI Security: How Access Controls Can Make a Difference” (LinkedIn)16
- “What Is Identity and Access Management (IAM)?” (Red Hat)17
- “What Is Access Control? Authorization vs Authentication” (Cloudflare)18
Notes
- Amazon Web Services, “AWS Identity and Access Management Documentation.” Return to content ⤴
- Microsoft, “Azure RBAC Documentation.” Return to content ⤴
- Google Cloud, “Roles and Permissions.” Return to content ⤴
- Paddy SR, “Secure Your RAG (Axiomatics).” Return to content ⤴
- Auth0, “Authorization for RAG.” Return to content ⤴
- IBM, “IBM Verify Identity Governance.” Return to content ⤴
- Ankor, “How to Implement RBAC with Permit.io.” Return to content ⤴
- Oracle, “Java Authentication and Authorization Service (JAAS) Reference Guide.” Return to content ⤴
- OWASP, “OWASP Enterprise Security API (ESAPI).” Return to content ⤴
- WorkOS, “Role-Based Access Control.” Return to content ⤴
- OWASP, “Authorization Cheat Sheet”; “A01:2021 — Broken Access Control.” Return to content ⤴
- Hu et al., “Guide to Attribute Based Access Control (ABAC) Definition and Considerations.” Return to content ⤴
- Bass, “Attribute-Based Access Control (ABAC) vs Relationship-Based Access Control (ReBAC).” Return to content ⤴
- Frontegg, “What Is Identity and Access Management (IAM)?.” Return to content ⤴
- Open Identity Platform, “Using Large Language Models (LLMs) in Access Management.” Return to content ⤴
- Abbasi, “Navigating AI Security: How Access Controls Can Make a Difference.” Return to content ⤴
- Red Hat, “What Is Identity and Access Management (IAM)?.” Return to content ⤴
- Cloudflare, “What Is Access Control? Authorization vs Authentication.” Return to content ⤴