Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

8/30/10

Role-based Access Control (RBAC)

Laurie Williams
williams@csc.ncsu.edu

Improper Access Control

Condition: When access control checks are not applied consistently - or not at all - users are able to access data or perform actions that they should not be allowed to perform. Consequence: Allowing access to unauthorized users can result in an attacker gaining access to the sensitive resources being protected, possibly modifying or removing them, or performing unauthorized actions.
http://cwe.mitre.org/data/definitions/285.html

8/30/10

Mitigation
Divide your application into: anonymous; normal; privileged, and administrative areas. Reduce the attack surface by carefully mapping roles with data and functionality.

http://cwe.mitre.org/data/definitions/285.html

Role-Based Access Control


A user has access to an object based on the assigned role. Roles are defined based on job functions. Permissions are defined based on job authority and responsibilities within a job function. (need to know) Operations on an object are invocated based on the permissions. The object is concerned with the users role and not the user.

From: csrc.nist.gov/rbac/alvarez.ppt

8/30/10

Role-Based Access Control


Individuals Roles Role 1 Resources/Processes

Role 2

Role 3 Users change frequently, roles dont


From: csrc.nist.gov/rbac/alvarez.ppt

RBAC is Many-to-Many
Users may be assigned many roles (though more likely just one) Roles may have many users assigned to them Roles may be assigned many permissions Permissions may be assigned to many roles Permissions may be granted to perform many different types of operations on an object

www.sans.edu/resources/student_projects/200608_002.ppt

8/30/10

Principle of Least Privilege


Roles are engineered based on the principle of least privilege. A role contains the minimum amount of permissions. A user is assigned to a role that allows him or her to perform only whats required for that role. No single role is given more permission than the same role for another user.

From: csrc.nist.gov/rbac/alvarez.ppt

Important Consideration
For web applications, make sure that the access control mechanism is enforced correctly at the server side on every page. Users should not be able to access any unauthorized functionality or information by simply requesting direct access to that page. One way to do this is to ensure that all pages containing sensitive information are not cached, and that all such pages restrict access to requests that are accompanied by an active and authenticated session token associated with a user who has the required permissions to access that page.

http://cwe.mitre.org/data/definitions/285.html

8/30/10

Testing for RBAC


Use tools and techniques that require manual (human) analysis, such as penetration testing, threat modeling, and interactive tools that allow the tester to record and modify an active session. These may be more effective than strictly automated techniques.

http://cwe.mitre.org/top25/#CWE-285

You might also like