470 likes | 672 Views
RBAC-PAT: A Policy Analysis Tool for Role Based Access Control. Mikhail I. Gofman, Ruiqi Luo, Ayla C. Solomon, Yingbin Zhang, Ping Yang and Scott D. Stoller. Outline. Background: RBAC, ARBAC, and Policy Analysis. RBAC-PAT Architecture and Functionality Performance Results Demonstration.
E N D
RBAC-PAT: A Policy Analysis Tool for Role Based Access Control Mikhail I. Gofman, Ruiqi Luo, Ayla C. Solomon, Yingbin Zhang, Ping Yang and Scott D. Stoller
Outline Background: RBAC, ARBAC, and Policy Analysis • RBAC-PAT Architecture and Functionality • Performance Results • Demonstration
Role-Based Access Control (RBAC) • Users are assigned to roles, e.g., doctor, nurse, patient. • Example:UA = {(Bob, Doctor)} • Permissions are associated with roles. • Example:PA = {(Doctor,Modify,Prescriptions)} • A user has a permission if he is a member of some role with that permission. • RBAC is relatively simple and widely used. User Assignment Permission Assignment UA PA Role User Permission
Role Hierarchy • r1 ≥ r2 (r1is senior to r2) means every member of r1 is also an implicit member of r2. Thus, members of r1 have all the permissions that members of r2 have. • Permission flows up. Membership flows down. • Role hierarchy reduces redundancy and eases administration. Project Manager Tester Programmer Membership Permission Project Member
Administrative RBAC (ARBAC) • ARBAC is a generic name for administrative policy models for RBAC. • ARBAC97 [Sandhu+ 1999] is a classic ARBAC model • ARBAC97 has three components: • User-Role Administration: controls user assignment • Permission-Role Administration: controls permission assignment • Role-Role Administration: controls role hierarchy
ARBAC Syntax • Example: • can_assign(President, Professor ¬DeptChair, Dean): Administrator in role President can assign a user in role Professor and not in role DeptChair to role Dean. • Professor is a positive precondition, DeptChair is a negative precondition and Dean is postcondition. • Professor is a positive role. DeptChair is a negative role. A role that is both positive and negative is called mixed. • Role President is administrative: has an administrative permission, ie. is the first component of a can_assign rule. • Role Professor is regular: appears in the precondition of the rule. • Example: • can_revoke(DeptChair, TA): an administrator in role DeptChair can remove any user from role TA.
ARBAC Syntax Cont. • can_assignp and can_revokep: used to control permission-role assignment. Syntax similar to user-role administration. • Separate Administration Restriction: administrative roles and regular roles are disjoint.
Motivation: Administrative Policy Analysis • Large organizations have large and complex policies which are managed by multiple administrators. • The effects of an ARBAC policy are often hardto understand by manual inspection alone. • Changes by one administrator may interact in unintended ways with changes by other administrators. • We developed RBAC-PAT: a suite of policy analysis tools for ARBAC policies.
Outline • Background: RBAC, ARBAC, and Policy Analysis • RBAC-PAT Architecture and Functionality • Performance Results • Demonstration
RBAC-PAT Architecture ARBAC Policy Property GUI FRONT-END Parser Parsed Policy Hierarchy Converter Converted Policy Policy Analysis Engine BACK-END Evidence Generator Evidence
RBAC-PAT Architecture Property ARBAC Policy • Front-End: • Parser/Checker: Checks the policy for: • Syntax Errors • Hierarchy Converter: converts hierarchical policies into equivalent non-hierarchical policies [Sasturkar+ 2006]. • Back-End: • Policy Analysis Engine: Implements analysis algorithms. • Evidence Generator: provides explanation of the analysis result. GUI Parser Parsed Policy Hierarchy Converter FRONT-END Converted Policy BACK-END Policy Analysis Engine Evidence Generator Evidence
Policy Analysis Problems • User-Role Reachability: given an initial RBAC policy, an ARBAC policy, a set of administrators, a target user, and a set of roles (called the “goal”), is it possible for those administrators to modify the RBAC policy so that the target user is a member of those roles? • User-Role Availability: can a user u be removed from a role r by a group of administrators A? • Weakest Preconditions:what are the minimal setsof initial role memberships of the target user for which a given reachability goal is achievable?
Policy Analysis Problems Cont. • Role-Role Containment [Li+ 2006]: In every state reachable from a given initial state, is every member of role r1also a member of role r2? • DeadRoles:Does the policy contain roles which cannot be assigned to any users? • Information Flow: Can information flow, directly or transitively, from object O1 to object O2?[Osborn+ 2002]. • Permission-Role Reachability • User-Permission Reachability
Fixed Parameter Tractability (FPT) • Reachability analysis for ARBAC is PSPACE complete in general [Sasturkar+ 2006]. • We developed practical analysis algorithms that [Stoller+ 2007]: • Exploit typical characteristics of realistic policies • Are fixed-parameter tractable (FPT), i.e., have • high complexity W.R.T. a (small) parameter k • low complexity W.R.T. overall problem size, when value of k is fixed. • [Sasturkar+2006] A. Sasturkar, P. Yang, S. Stoller, and C. R. Ramakrishnan, Policy Analysis for Administrative Role Based Access Control, CSFW 2006 • [Stoller+2007] S.D. Stoller, P. Yang, C. R. Ramakrishnan, M. Gofman, Efficient Policy Analysis of ARBAC policies, CCS 2007
Efficient Reachability Analysis • Given an ARBAC policy, if the separate administration restriction holds: • Forward Algorithm • Backward algorithm • Otherwise: • Forward Algorithm
Forward Algorithm for ARBAC with Sep. Admin. • With the separate administration assumption, it suffices to consider the role assignment of the target user u only. • Standard reachability computation optimized with a reduction. • A state is the set of roles that the target user u is in. • Reduction • Transitions that revoke non-negative roles or add non-positive roles are prohibited; • Transitions that add non-negative roles or revoke non-positive roles are called invisible; others are called visible. • Invisible transitions get combined with a preceding visible transition to form a single composite transition.
Forward Algorithm with Sep. Admin.: Example • ARBAC Policy • 1. can_assign(DeptChair, Grad, TA) • 2. can_assign(GradAdmComm, ¬UnderGrad, Grad) • 3. can_assign(Faculty, Undergrad, Grader) • All Roles are revocable • Can administrators in roles {DeptChair, GradAdmComm, Facutly} assign a user initially in {UnderGrad} to {TA, Grader}? Yes Grader UnderGrad ur(Undergrad) Grad Grader TA
Forward Algorithm for ARBAC with Sep. Admin. Cont. • Slicing eliminates parts of the policy irrelevant to the given reachability query. • FPT w.r.t number of mixed roles (|mixed|).
search direction Backward Algorithm for ARBAC with Sep. Admin. • Stage 1: use backwards search from goal to construct a graph (V, E). Nodes are user assignments (sets of roles). Edges are labeled with can_assign rules. • Stage 1 cannot check if the negative precondition holds • Stage 2: perform forward search to check if the goal is reachable set of roles role can_assign(ar, p¬N, r) UA UA \ {r} {p} r ∈ UA
Backward Algorithm with Sep. Admin.: Example • ARBAC Policy • 1. can_assign(ar, true, r1) • 2. can_assign(ar, r1, r2) • 3. can_assign(ar, r2r1, r3) • 4. can_revoke(ar, r2) • Initial state = {}, Goal = {r3}, • The goal is not reachable, because r1 is irrevocable and disables the last transition. • Fixed-parameter tractable W.R.T. {|goal|, |IR|} for ARBAC with |ppre| ≤ 1, where |IR| is the number of irrevocable roles. cana(ar, true, r1) cana(ar, r1, r2) cana(ar, r2r1, r3) Ø r1 r2 r3
Beyond Separate Administration • In realistic ARBAC policies the sets of administrative and regular roles may notalways be disjoint. • They violate the separate administration restriction • Administrators may assign themselves to new roles. • Example: DeptChair assigns himself to HonorsPgmDir and then assigns students to HonorsStudent. • Need to consider multiple users and check their roles. The problem is FPT with respect to # mixed roles and # administrators.
Hierarchical Role Assignment • A query satisfies hierarchical role assignment if can_assign(ari, c, r) implies ari ≥ r for each ari. • Each administrator is already an implicit member of roles to which he can be assigned, so such assignments can be ignored. • Algorithms that assume separate administration apply. • In our university policy, most queries satisfy this.
Outline • Background: RBAC, ARBAC, and Policy Analysis • RBAC-PAT Architecture and Functionality • Performance Results • Demonstration
Performance Results • Evaluate algorithms on case studies and synthetic policies. • University policy and Health care case study results: • University policy: 372 rules. Healthcare policy: 13 rules • Analysis algorithms terminate in at most 0.2 seconds • Randomly generated policies: vary the size parameters, while maintaining similar characteristics as case studies (distribution of can_assign rules per role, positive and negative preconditions per rule, …).
Performance Results: Synthetic Policies Largest # of states: 5593 Largest # of transitions: 50511 Largest # of states: 74 Largest # of transitions: 266
Performance Results: Synthetic Policies Cont. Largest # of states: 14395 Largest # of transitions: 215396 Largest # of states: 401 Largest # of transitions: 1789
Demonstration: User-Role Reachability Without Sep. Admin. 9999 9999 9999
Demonstration: Dead Role Analysis 9999 9999 9999
Related Work • All previous reduction and partial-order reduction techniques proposed treating given sequences of transitions in the control flow graph of the program as composite transitions. • In contrast, our reduction itself defines composite transitions, and justifies using them instead of the original transitions. This is because ARBAC has no control flow; • Also, we present fixed-parameter tractability results. • In previous work on reductions and partial-order reductions, the performance was evaluated in a purely empirical way. • Lipton reduction • Partial order
Related Work Cont. • [Schaad+ 2002], [Li+ 2004] analyze properties of ARBAC97 policies: • No negative preconditions • No fixed parameter tractability results
Performance Results: Synthetic Policies Cont. Fwd. Alg. is 90 times faster
search direction Backward Algorithm for ARBAC with Sep. Admin.: Stage 1 • Use backwards search from goal to construct a graph (V, E). Nodes are user assignments (sets of roles). Edges are labeled with can_assign rules. set of roles role can_assign(ar, p¬N, r) UA \ {r} ∈ {p} UA r ∈ UA
Backward Algorithm with Sep. Admin.: Stage 1 Example • ARBAC Policy • 1. can_assign(ar, true, r1) • 2. can_assign(ar, r1, r2) • 3. can_assign(ar, r2r1, r3) • 4. can_revoke(ar, r2) • Initial state = {}, Goal = {r3}, cana(ar, true, r1) cana(ar, r1, r2) cana(ar, r2r1, r3) Ø r1 r2 r3
R {I1,I2,…} Backward Algorithm for ARBAC with Sep. Admin.: Stage 2 • To detect if the goal is reachable, Stage 2 performs a forward analysis, labeling each node R with sets I1, I2,… of additional irrevocable roles. represents states R I1, R I2,… • Example: • Irrev = {r1} • Initial state = {}, Goal = {r3} • The goal is not reachable, because r1 is irrevocable and disables the last transition. • Fixed-parameter tractable W.R.T. {|goal|, |IR|} for ARBAC with |ppre| ≤ 1, where |IR| is the number of irrevocable roles. cana(ar, true, r1) cana(ar, r1, r2) cana(ar, r2r1, r3) Ø r1 r2 r3 {Ø} {{r1}} {} {Ø}