Policy Analysis for Self-administrated Role-based Access Control Gennaro Parlato U. Southampton, UK Anna Lisa Ferrara P. Madhusudan U. Bristol, UK UIUC, USA Role-based Access Control (RBAC) RBAC is an access control model - for large organization - standard (NIST) - supported by: Microsoft SQL Servers, Microsoft Active Directory, SELinux, Oracle DBMS Users Roles Permissions Permissions are pairs (object, operation) UA = Users X Roles PA = Roles X Permissions RBAC Example: Hospital Roles: Doctor, Manager, Nurse, Patient, PrimaryD, Receptionist,… Permissions: p1= Create_Appointment p2= View_OldMedicalRecord p3= View_RecentMedicalRecords … UA: (Mary, Receptionist) (John, Doctor), (John, PrimaryD) (Jenny, Patient) (Tim, Doctor) … PA: (p1, Receptionist) (p2, Doctor) (p3, Doctor) … Administrative RBAC (ARBAC) • UA and PA relations may change by means of administrative rules: Roles Users Admins UA Admins Roles Permissions Admin Actions PA • Assign(admin_role, precondition, target_role) Users - if admin user A has admin_role, then A can assign any user u who satisfies precondition to target_role conjunction of literals over the set of Roles • Revoke(admin_role, precondition, target_role) Example of ARBAC Policy Admins: Manager, Patient, Receptionist,… Assign Rules - assign( Manager, ¬Doctor, Receptionist ) - assign( Manager, true, Nurse ) - assign( Patient, Doctor∧¬Patient, PrimaryDoctor ) … Revoke Rules - revoke( Manager, true, Receptionist ) - revoke( Manager, true, Nurse ) … Security Requirements Designers have security properties in mind while designing the set of assignment/revocation rules • Availability properties - A doctor must always be able to access patients’ record • Escalation of privileges - A receptionist cannot be granted doctors’ permissions • Separation of duties - A doctor cannot be also a receptionist Role-reachability Problem - availability - separation of duties, - escalation of privileges -… each reduces to Role-reachability Problem Can any user gain access to a given role goal using the ARBAC rules? Importance of Automated Analysis • Monitoring strategies are not acceptable: denial-of-service • Verification is essential • Policies are difficult to inspect by hand: state space = O((2#roles) #users) r1 r2 u1 1 0 u2 0 ... ... … rn … 0 0 … 1 ... ... ... configuration of the system Assign/Revoke actions State-of-the-art Reachability problem is - PSPACE-complete [CSFW’06] -fixed parameter tractable in # roles [CCS’07] Restricted scenarios to tackle reachability separate administration (limits expressiveness) • • • administrative roles and regular roles are disjoint assignment/revocation admin roles is not allowed allows to track only one user as opposed to tracking all users [CCS’07] under-approximation techniques (under separate administration) error-finding (shallow errors) not appropriate for correctness [CCS’11] State-of-the-art (beyond separate administration) Proving correctness [Ferrara, Madhusudan, Parlato, Security Analysis of RBAC through Program Verification – CSF’12] Idea: - simulate precisely the system with a program with integers - each variable tracks the # of users in a role combination - exponential # of variables Over-approximation (effective) - create a program that tracks only few role combinations - analysis with Interproc with box domain - scalable analysis (correctness) - we cannot generate security attacks Our Contribution Achieving completeness and correctness without any restriction Fundamental Theorem : It is enough to track only k users at any time, where k is the # of admin roles - leads to a significant trimming procedure (much smaller # of users, admin roles) Novel Pruning technique : Transform the policy in a smaller one preserving role-reachability (effective also for separate administration) Tool: VAC Verifier of Access Control http://users.ecs.soton.ac.uk/gp4/VAC.html Experiments on realistic policies from the literature hospital, university, bank, and three suites of complex policies Experimental Results (hospital, university policies) After Pruning Policy Hospital University Bank4 #roles #rules #admin #users #roles #rules #admin #users Time Reach 12 25 6 1092 3 5 2 9 0.3s No 12 25 6 1092 5 9 3 19 0.0s No 12 25 6 1092 3 5 2 9 0.0s Yes 12 25 6 1092 6 8 3 16 0.0s Yes 32 130 9 943 3 2 1 1 0.2s No 32 130 9 943 1 1 1 1 0.2s Yes 32 130 9 943 12 16 2 23 0.2s No 32 130 9 943 11 13 2 21 0.2s Yes 32 130 9 943 14 25 3 34 0.2s Yes Complete analysis without separate admin restriction! Experimental Results After Pruning First Suite Size Policy Time #rules Time #roles #rules #roles #rules Second Suite Third Suite Time #roles #rules #rules Time Time #rules Time #roles #rules 3 15 1 1 0.0s 3 5 0.0s 3 5 0.0s 5 25 1 1 0.0s 1 1 0.0s 1 1 0.0s 20 100 1 1 0.0s 11 26 0.0s 11 26 0.0s 40 200 1 1 0.0s 1 1 0.0s 1 1 0.1s 200 1000 1 1 0.1s 1 1 0.1s 1 1 0.1s 500 2500 1 1 0.1s 1 1 0.1s 1 1 0.2s 4k 20k 1 1 6.0s 1 1 6.0s 1 1 6.3s 20k 80k 1 1 3m24s 1 1 3m32s 1 1 3m20s 30k 120k 1 1 8m14s 1 1 8m33s 1 1 7m47s 40k 200k 1 1 14m50s 1 1 18m7s 1 1 21m1s Complete analysis on complex policies! only error-finding tools were successful Experimental Results After Pruning Policy #roles #rules #roles #rules Time 612 593 0 0 3s 612 593 2 1 3s 612 1186 2 1 3s 612 1186 0 0 2s 612 1779 0 0 2s 612 1779 2 1 2s Bank3 612 2372 408 3285 0s Bank4 612 2372 462 3272 0.1s Bank1 Bank2 only error-finding tools were successful Our Contribution Achieving completeness and correctness without any restriction Fundamental Theorem : It is enough to track only k users at any time, where k is the # of admin roles - leads to a significant trimming procedure (much smaller # of users, admin roles, roles) Novel Pruning technique : Transform the policy in a smaller one preserving role-reachability (effective also for separate administration) Tool: VAC Verifier of Access Control http://users.ecs.soton.ac.uk/gp4/VAC.html ✔ Experiments on realistic policies from the literature hospital, university, bank, and three suites of complex policies Finite Model Property Theorem: The role-reachability problem can be solved by tracking at most k+1 users where k is the # of administrative roles Idea of the proof 1/3 π= c1 m1 c2 m2 … ci mi ci+1 … cn mn Rule made by Admini ci= cn+1 r1 r2 u1 1 0 u2 0 ... ... A user u is •engaged if u’s configuration changes along the run •essential if there is index i in which u is the only user in Admini at configuration ci … rn … 0 0 … 1 ... ... ... Idea of the proof 2/3 π= c1 m1 c2 m2 Simplification rules … ci mi ci+1 … cn mn cn+1 Rule made by Admini •pick a non essential user u and remove all transitions changing u’s configuration •if all users are essential then pick an engaged user and remove all transitions changing u’s configuration after the last configuration in which u is essential … termination is guaranteed Idea of the proof 3/3 π= c1 m1 c2 m2 … ci mi ci+1 … cn For each 2 distinct engaged users u1 and u2 if u1 is essential for role admin1 (the last time) u2 is essential for role admin2 (the last time) then admin1 ≠ admin2 There are at most k engaged users in the run π, where k = # admin roles mn cn+1 Exploiting the Theorem Can we track less users??? NO Theoretically the k+1 bound is tight !!! Heuristics??? REMOVE ADMIN ROLES An admin role A is immaterial if there are more than k+1 users in role A. Transform immaterial roles into regular ones. REMOVE USERS for each role-combination we need at most k+1 users. Our Contribution Achieving completeness and correctness without any restriction Fundamental Theorem : It is enough to track only k users at any time, where k is the # of admin roles - leads to a significant trimming procedure (much smaller # of users, admin roles, roles) ✔ Novel Pruning technique : Transform the policy in a smaller one preserving role-reachability (effective also for separate administration) Tool: VAC Verifier of Access Control http://users.ecs.soton.ac.uk/gp4/VAC.html ✔ Experiments on realistic policies from the literature hospital, university, bank, and three suites of complex policies Our tool Policy role pruning CSF’12 TACAS’13 ad hoc-abstraction boolean program encoding integer program model-checking GetaFix NO: policy correct Yes error interval-abstractions using INTERPROC NO: policy correct Yes: may be a false error Conclusions & Future work Conclusions - foundation of reasoning with ARBAC policies (no separate administration) - small model property: tracking a bounded # of users suffices for role-reachability - developed heuristics to effectively reduce ARBAC systems on real-world policies. - VAC : Verifier of Access Control http://users.ecs.soton.ac.uk/gp4/VAC.html Future Work Automated analysis of access control policies - Apply our techniques to systems supporting RBAC - Microsoft SQL Servers, Microsoft Active Directory, SELinux, Oracle DBMS - Extend our results to more expressive specs (e.g., data leakage) - Provide a counter-example guided abstraction scheme - combine with over-approximation we developed (CSF’12) Experimental Results (CSF’12) After Pruning Policy Bank1 Bank2 Bank3 Bank4 #roles #actions #roles #actions Time to INTERPROC Total trasform time time 34 593 26 535 7s 43s 50s 34 593 25 434 7s 44s 51s 68 1186 52 1070 9s 3m 0.2s 3m 11s 68 1186 50 868 9s 3m 0.3s 3m 12s 102 1779 78 1605 11s 7m 0.8s 7m 19s 102 1779 75 1302 10s 7m 08s 7m 18s 136 2372 104 2140 11s 13m 16s 13m 27s 136 2372 100 1736 9s 13m 15s 13m 24s We can prove correctness! only error-finding tools were successful Our Contribution Achieving completeness and correctness without any restriction Fundamental Theorem : It is enough to track only k users at any time, where k is the # of admin roles - leads to a significant trimming procedure (much smaller # of users, admin roles, roles) ✔ Novel Pruning technique : Transform the policy in a smaller one preserving role-reachability (effective also for separate administration) ✔ Tool: VAC Verifier of Access Control http://users.ecs.soton.ac.uk/gp4/VAC.html ✔ Experiments on realistic policies from the literature hospital, university, bank, and three suites of complex policies