1、An Investigation on Testing RBAC Constraints,Presented by Jiao Chen 04/29/2003,Project Objectives,Develop coverage criteria for testing RBAC constraints Develop algorithms for statically checking the enforcement of RBAC constraints Generating test cases for RBAC constraints based on the developed co
2、verage criteria,Significance of the Problem,The RBAC has generated great interest in the security community as a flexible approach in access control. Constraints are an important aspect of access control and are a powerful mechanism for laying out a higher-level organization policy.,Significance of
3、the Problem (contd),Issues of specification of constraints have received surprisingly little attention in the research literature 1. Few literature discusses the testing of the RBAC constraints.,Coverage Criteria,Coverage is an operational definition for a complete test suite. It is important to def
4、ine the coverage criteria before generating test case. Classical coverage criteria, like statement coverage, c-use coverage, etc. are not suitable for testing RBAC constraints. New coverage criteria are needed.,Details of My Approach,The work of this project is based on the constraints specification
5、 described in Ahn G-J. and Shin M. E.s 1 paper. For each kind of RBAC constraints, static checking algorithm and corresponding coverage criterion is developed respectively. A case study is performed. Test cases are generated following the coverage criteria developed.,Category of Role-based Constrain
6、ts,Separation of duty constraints Prerequisite constraints Cardinality constraints,Separation of Duty Constraints,Rule 1: Conflicting roles cannot be assigned to the same user. Criterion 1: All conflicting role pairs in the conflicting role set are exercised in negative way. That means, for each con
7、flicting role pair, at least one test case should cover the violation of that conflicting role pair.,Static checking algorithm for Rule 1,Input: Conflicting role set A = (r1, r1c), (r2, r2c), (ri, ric), , (rn, rnc), Assigned role set B = (r1u1, r2u1, r3u1, riu1, , rnu1), (r1u2, r2u2, r3u2, riu2i, ,
8、rnu2), (r1u3, r2u3, r3u3, riu3, , rnu3), , (r1un, r2un, r3un, riun, , rnun) Output: True - The system enforces Rule 1False - The system does not enforce Rule 1 Initialization: flag = 0 For each user in the assigned role set BFor each role assigned to that user, riuiGo through the conflicting role se
9、t Aif riui is one of riflag = 1Go through the corresponding assigned roles of that user,i.e., (r1u1, r2u1, r3u1, riu1, , rnu1) if riui(r1u1, r2u1, r3u1, riu1, , rnu1) and riui = ricflag = 2if flag = 2return false, exitelsereturn trueend for end for,Separation of Duty Constraints (contd),Rule 2: Conf
10、licting permissions cannot be assigned to the same role. Criterion 2: All conflicting permission pairs in the conflicting permission set are exercised in negative way. That means, for each conflicting permission pair, at least one test case should cover the violation of that conflicting permission p
11、air.,Separation of Duty Constraints (contd),Rule 3: Conflicting users cannot be assigned to the same role. Criterion 3: All conflicting user pairs in the conflicting user set are exercised in negative way. That means, for each conflicting user pair, at least one test case should cover the violation
12、of that conflicting user pair.,Separation of Duty Constraints (contd),Rule 4: Conflicting roles cannot be activated in the same session. Criterion 4: All conflicting role pairs in the conflicting role set are exercised in negative way. That means, for each conflicting role pair, at least one test ca
13、se should cover the violation of that conflicting role pair.,Prerequisite Constraints,Rule 5: A user can be assigned to role r1 only if the user is already a member of role r2. Criterion 5: All role prerequisite pairs in the role prerequisite set are exercised in following two ways: 1. For each role
14、 prerequisite pair, (ria, rib), at least one test case should cover the violation of that role prerequisite pair. In other word, the test case should cover the situation when assigning a user to ria without rib existing.2. For each role prerequisite pair, (ria, rib), at least one test case should co
15、ver the situation that when rib is revoked, ria should be revoked at the same time.,Prerequisite Constraints (contd),Rule 6: A permission p can be assigned to a role only if the role already possesses permission q. Criterion 6: All permission prerequisite pairs in the permission prerequisite set are
16、 exercised in following two ways: 1. For each permission prerequisite pair, (pia, pib), at least one test case should cover the violation of that permission prerequisite pair. In other word, the test case should cover the situation when pia is assigned to a role but that role doesnt possess pib. 2.
17、For each permission prerequisite pair, (pia, pib), at least one test case should cover the situation that when pib is revoked, pia should be revoked at the same time.,Cardinality Constraints,Rule 7: Numerical limitation N that exists for the number of users authorized for a role cannot be exceeded.
18、Rule 8: Numerical limitation N that exists for the number of sessions a user can have active at the same time cannot be exceeded.,Cardinality Constraints (contd),The domain testing strategy Identify boundary conditions. Select test values for variables in each boundary. Select test values for variab
19、les not given in the boundary. Determine expected results,Cardinality Constraints (contd),The “one-by-one” domain testing strategy calls for one on point and one off point for each domain boundary. Selection rules: One on point and one off point for each relational condition. Dont repeat identical t
20、ests for adjacent subdomains.,Case Study,The corporate banking application in Chandramouli R.s paper 2. The results of the case study are in Constraints Specification.doc file.,References,1 Ahn G-J. and Shin M. E., Role-based Authorization Constraints Specification Using Object Constraint Language,
21、Enabling Technologies: Infrastructure for Collaborative Enterprises, 2001. WET ICE 2001. Proceedings. Tenth IEEE International Workshops on , 2001, Page(s): 157 -162 2 Chandramouli R. Application of XML tools for enterprise-wide RBAC implementation tasks Proceedings of the fifth ACM workshop on Role-based access control July 2000,