<?xml-model href='http://www.tei-c.org/release/xml/tei/custom/schema/relaxng/tei_all.rng' schematypens='http://relaxng.org/ns/structure/1.0'?><TEI xmlns="http://www.tei-c.org/ns/1.0">
	<teiHeader>
		<fileDesc>
			<titleStmt><title level='a'>Enabling Flexible Administration in ABAC Through Policy Review: A Policy Machine Case Study</title></titleStmt>
			<publicationStmt>
				<publisher></publisher>
				<date>05/01/2021</date>
			</publicationStmt>
			<sourceDesc>
				<bibl> 
					<idno type="par_id">10280984</idno>
					<idno type="doi">10.1109/BigDataSecurityHPSCIDS52275.2021.00023</idno>
					<title level='j'>7th IEEE International Conference on Big Data Security on Cloud (BigDataSecurity 2021</title>
<idno></idno>
<biblScope unit="volume"></biblScope>
<biblScope unit="issue"></biblScope>					

					<author>Sherifdeen Lawal</author><author>Ram Krishnan</author>
				</bibl>
			</sourceDesc>
		</fileDesc>
		<profileDesc>
			<abstract><ab><![CDATA[The Next Generation Access Control (NGAC), founded on the Policy Machine (PM), is a robust Attribute-Based Access Control (ABAC) framework that enables a structured and flexible approach for the establishment of the conventional access control models. The authorization state of the policy machine is represented as an annotated Directed Acyclic Graph (DAG). Structurally, relations among attributes of the same type are hierarchical, and creating new relation(s) to specify an authorization may be achieved through different approaches. However, one or more limitations can make most of the obvious approaches to grant new access inconsistent with existing rules. We proposed an algorithm that provides the PM administrator a comprehensive list of all possible approaches to authorize access. The approaches generated by our algorithm can help the PM administrator makes an informed decision before authorizing access.]]></ab></abstract>
		</profileDesc>
	</teiHeader>
	<text><body xmlns="http://www.tei-c.org/ns/1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xlink="http://www.w3.org/1999/xlink">
<div xmlns="http://www.tei-c.org/ns/1.0"><head>I. INTRODUCTION</head><p>Attribute-Based Access Control (ABAC) remains to be a promising form of access control. Unlike traditional access control. ABAC authorization to perform a set of operations is determined by evaluating attributes associated with the subject, object, and in some cases, environmental conditions against policy, rules, or relationships that describe the allowable operations for a given set of attributes <ref type="bibr">[13]</ref>.</p><p>The NIST Next Generation Access Control (NGAC) is one of the two current implementations of ABAC. The Policy Machine (PM) is the basis for the NGAC and can manage policies easily. There is a considerable amount of research work in the literature, applying the Policy Machine (PM). Bhatt et al. <ref type="bibr">[4]</ref>, <ref type="bibr">[11]</ref>, utilizes the Policy Machine for an attributebased extension of OpenStack access control and implements (rHGABAC), a restricted version of the Hierarchical Group Attribute-Based Access Control <ref type="bibr">[16]</ref>. For achieving adaptive policies, efficient and easy policy management in IoT <ref type="bibr">[8]</ref> and Mobile Health applications <ref type="bibr">[12]</ref>, NGAC specification has been utilized to authorize communication between devices.</p><p>Another application of NGAC specification is the centrally managed attribute-based access control policies for resource repositories distributed across an enterprise and locally enforced using a host Access Control List in <ref type="bibr">[6]</ref>. An implementation of NGAC as Next-generation Database Access control <ref type="bibr">[10]</ref>, NDAC, provides a means of expressing policies over (Structured Query Language) SQL queries for accessing data in tables, rows, and columns in existing (Relational Data Stream Management System) RDMS products.</p><p>Currently, the NGAC reference model only supports users' capabilities and access entries audits. These existing policy review features of the PM were improved upon by reducing the overall time complexity from cubic to linear run time <ref type="bibr">[3]</ref>. Also, a faster theoretical approach for both per-user and per-object policy review was proposed <ref type="bibr">[2]</ref>. Beyond the application and the improvement of existing features of the policy machine, we addressed one of the vital administrative review queries that the PM cannot currently answer in this work.</p><p>Rather than the traditional rule-based ABAC policy specification approach, the policy machine has a unique and simplified approach that implies policy specification through the RBAC-style relations. Thus, policy review is in polynomial time <ref type="bibr">[17]</ref>. In ABAC models like <ref type="bibr">[15]</ref>, <ref type="bibr">[16]</ref>, policies are in propositional logic. Consequently, police review is an NPcomplete or even undecidable problem. Since PM specifies access through relations enumerated between attributes, relations among attributes of the same type are hierarchical. One benefit of the successive ranks among attributes is granting access in multiple approaches. This characteristic can enhances access control flexibility and facilitates attribute management and administration. However, there is no established process to provide all the multiple ways of granting access in the policy machine implementation.</p><p>In summary, the contribution of this work is:</p><p>&#8226; The development of an algorithm that generates all the possible relations that can grant access for a denied administrative access request. In scenarios where creating an easy to see relations may be unacceptable, our algorithm can provide the PM administrator with subtle approaches. The reminder of this paper is structured as follows. In Section II, we touch on related work on this subject. Section III provides overview of the policy machine framework and its components. Section IV presents the scope, problem statement and observation. Section V describe the approaches to grant administrative access and presents its algorithm. An </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>II. RELATED WORK</head><p>In NIST RBAC <ref type="bibr">[5]</ref>, the administrative review features define requirements in terms of an administrative interface and an associated set of semantics that provide the capability to perform policy query on RBAC elements and relations. Some of the queries answered by the administrative review functions return the set of users assigned to a given role, roles assigned to a given user, operations a given user may perform on a given object, all permissions either directly granted to or inherited by a given role, and roles directly assigned to a given user as well as those "roles that were inherited by the directly assigned roles." Fernandez et al. <ref type="bibr">[9]</ref> provides axiomatic and operational semantics for ABAC policies and evaluates review queries such as permissions associated with a given principal, set of principals authorized to perform a given operation on a resource, and categories principals and resources belong. The NIST Policy Machine specification captures the policy review questions answered in C-ABAC <ref type="bibr">[9]</ref>, and the only difference is terminology.</p><p>Efforts related to policy review in the Policy Machine attempt to improve the efficiency of answering two types of user queries. One, can a particular user operate on an object? Two, what privileges does a user have? Mell et al. <ref type="bibr">[3]</ref> contribution improves on the time complexity of performing the mentioned queries from cubic to linear time, utilizing the breadth-first search (BFS) and depth-first search (DFS) variants.</p><p>In contrast, we proposed an algorithm for the policy review question that neither the policy machine specification nor other contributions answered. Our objective is not to improve on an existing policy review question that the policy machine can answer, our algorithm extends the policy review capabilities of the PM. As the policy machine is different from the traditional rule-based ABAC policy specification approach, a query for all possible approaches to grant access is equally important as those previously explored queries.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>III. POLICY MACHINE OVERVIEW</head><p>The rest of this section provides an overview of policy machine core data elements and selected relations pertinent to this work. The assignment, association, prohibition, and obligation are the primary relations. Privileges and restrictions are derived relations from associations and prohibitions in the PM respectively. In this work, we only focus on the assignment and association relations and concepts related to them.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. PM Basic Elements And Relations</head><p>The authorization (access control) state of the policy machine is an annotated Directed Acyclic Graph (DAG). Basic elements of the PM called Policy Elements (PE) are the nodes in the access control graph. These nodes are the finite sets of Users (U), Objects (O), User Attributes (UA), Object Attributes (OA), and Policy Classes (PC). As shown in the access control graph of figure <ref type="figure">1</ref>, the users are the left top nodes. Unlabeled directed acyclic edges called assignments are relations allowed from user nodes to user attribute nodes, user attribute to user attribute nodes, and user attribute to policy class node. In a similar fashion on the right side of the graph, connected unlabeled directed acyclic edges start from object nodes, through objects attribute nodes, and terminates at the policy class node.</p><p>All the nodes except for the policy class must have a path to the policy class. Users' access to protected resources is only possible through the creation of an association. An association is a relation represented by labeled (annotated) downwardarcing edge from a user attribute node to an attribute (user attribute or object attribute node). For instance, in figure <ref type="figure">1</ref>, the association triple (Group Head, aars i , Retail &amp; Foreign Serv) specify that a user who has a path to Group Head is authorized to perform operations enabled by aars i on Retail &amp; Foreign Serv and policy element that has a path to Retail &amp; Foreign Serv. Access granted through an association could be a set of resource access rights (i.e., r-association in the legend) or a set of administrative access rights (i.e., a-association in the legend) shown in solid blue and dashed red edges respectively. The policy elements and the relations constitute the authorization graph.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>IV. SCOPE, PROBLEM STATEMENT, AND OBSERVATION</head><p>In the context of policy review, previous contributions were to improve on an existing algorithm in the policy machine <ref type="bibr">[2]</ref>, <ref type="bibr">[3]</ref>. However, as we have mentioned before, there are other policy review problems that are not addressed in the policy machine framework. In the following subsection we specify the aspects of the PM framework covered in this work and we present an example to illustrate the problem we have proposed an algorithm to solve.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Scope</head><p>The PM framework has multiple facets -the policy elements and the assignments that make up a policy element diagram, the association and prohibition that apply the policy element diagram to form the authorization graph, and obligation that are carried out when access related event occur <ref type="bibr">[1]</ref>. Prohibition and obligation are outside the scope of this paper, we focus only on administrative access rights granted through assignment and association.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Problem Statement</head><p>Users are granted access to protected resources in policy machine by creating assignments (unlabeled edges) and/or association (labeled edges) between conforming policy elements (nodes). Based on the hierarchical nature of the policy machine authorization graph, access for a specific request is granted in multiple ways. In other words, multiple paths can be created from a user or user attribute to a user attribute granted access rights over some policy elements. However, for various reasons, it may happen that not all the obvious ways of granting an access are in accordance with specified policy. With the algorithm we proposed in this paper, an exhaustive list of all possible approaches to authorize a request is generated. The output of our algorithm can help an administrator to decide an approach to authorize an access.</p><p>The example that follows demonstrates how the number of approaches to grant access can explode and how any constraint can limit the number of ways an access may be granted.</p><p>Example 1. The authorization graph of figure <ref type="figure">1</ref> represents the access policy of a financial institution with the policy class BankOp Access. In the financial institution, a sensitive task 'trans-T' must be completed by a single user who is a member of both user attributes, ATM Custodian and Trans Serv Supervision (i.e., Cathy). The task 'trans-T' is modeled as a sequence of administrative operation granted on Object attributes, ATM &amp; POS Serv and Wire Trans Serv through the sets of administrative access rights aars p and aars q respectively. Alice and Bob are employees of the financial institution. Alice is a member of ATM Custodian and not Trans Serv Supervision, while Bob is a member of Trans Serv Supervision and not ATM Custodian.</p><p>For another task 'T-1' in this same institution, it is required that a user who is a member of both ATM Custodian and Trans Serv Supervision assigns a member of the Backup Officer to ATM Custodian in order to complete the task 'T-1'. In the current state of the authorization graph of figure <ref type="figure">1</ref>, Cathy does not have the access right to assign Backup Officer to ATM Custodian. Assuming Jane and Paul (members of the institution that has a path to the user attribute Group Head) can grant Cathy the access right to create the required assignment (unlabeled edge), using the administrative access rights in aars i . The following are approaches to grant Cathy the access right to assign Backup Officer to ATM Custodian: from user node (Cathy) to user attribute node (Group Head or Regional Head) that makes (Group Head or Regional Head) reachable from Cathy. There are only two ways to authorize Cathy's request using this approach.</p><p>In total, there are twelve different ways of creating an assignment or association to allow Cathy complete task 'T-1'. However, only two out of the twelve possible relations does not violate the constraint on the task 'trans-T'. If Jane or Paul should authorize Cathy's request using the approaches enumerated in ( <ref type="formula">1</ref>) and ( <ref type="formula">2</ref>), then Alice and Bob can collude to carry out task 'trans-T'.</p><p>Even more, this is a simple example compare to the size of an enterprise where this kind of issue get more complicated. Also, the structure of an authorization graph may permit granting an access using any non-redundant combination of the three approaches. For instance, in the previous example, Jane or Paul may grant Cathy's request to complete task 'T-1' by first creating an (unlabeled edge) assignment from Cathy to Backup Officer and then create another (unlabeled edge) assignment from Backup Officer to Group Head or Regional Head.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Observation</head><p>The Principal Authority (PA), also known as the superuser, is a compulsory predefined entity of the PM. The PA is responsible for creating and controlling the policies of the PM in their entirety and inherently holds universal authorization to carry out those activities within the PM framework.</p><p>The access rights held by the principal administrator can be delegated to a domain or subordinate administrators except the access right to create and delete policy class and the access right to create and delete assignment of attributes to the policy class. For instance, the Principle Administrator (PA) that instantiated the authorization graph of figure <ref type="figure">1</ref> is not visible in the graph. He created the policy elements and relations as shown in the figure. Access rights granted to users with a path to Group Head are sufficient to create all other policy elements and relations. Fig. <ref type="figure">2:</ref> A Generic Authorization Graph for Scenario-I</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>V. POLICY REVIEW AND AUTHORIZATION</head><p>To authorize access in the PM, there are two possible scenarios. In this section, we discuss these scenarios, the policy review of policy elements involved in granting access, and how we apply these scenarios and these policy elements in our algorithm.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>A. Access Request Scenarios</head><p>Authorization approaches depends on the relationship between a user requesting access and the protected resource in an authorization graph. We interchangeably refer to the user seeking access as the source user and the protected resource as the target policy element. There are two types of relationships between the source user and the target policy element, viz:</p><p>1) There is a path between the source user and the target policy element. This can only happen if the target policy element is a user or a user attribute. 2) There is no path between the source user and the target policy element. In this scenario, the target policy element is of a user, user attribute, an object, or an object attribute type. Our algorithm only considers granting access by a nonprinciple administrator through the creation of edges (relations) between existing nodes (policy elements).</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>B. Access Enablers</head><p>To authorize access, a user create one or more edges (relations) between policy elements through associations. We refer to this user as the privileged user, the policy elements as the access enabling policy elements, and the associations as the access enabling associations. The path relationship between other policy elements and the source user, privileged user, access enabling associations, or target policy element defines the access enabling policy elements.</p><p>Scenario-I requires at least one access enabling association to authorize a source user's access. An association that has its predecessor-node reachable from a privileged user, its successor-node reachable from the source user and its label has the access right the source user is requesting. In other words, there is a user that can perform the administrative operation another user is requesting and his capable of granting this access.</p><p>On the other hand, scenario-II requires at the minimum two access enabling associations. There is an association through which the privileged user can perform the requested access. And a second association exists through which the privileged user can assign the source user to the former.</p><p>In both scenarios, we adapt following notations for specifying elements, functions, and sets in the access enabling policy elements</p><p>&#8226; tail : ASSOCIATION -&#8594; UA: is a function that maps an edge, association relation, (ua i , ars j , at k ) &#8712; ASSOCIATION to the (user attribute) node ua i &#8712; UA it originates. &#8226; head : ASSOCIATION -&#8594; AT: is a function that maps an edge, association relation, (ua i , ars j , at k ) &#8712; ASSOCIATION to the (user/object attribute) node at k &#8712; AT it terminates. Where AT = UA &#8746; OA &#8226; anc: PE -&#8594; 2 PE : is the mapping from a policy element to the set of policy elements that is an ancestor to the policy element. &#8226; des: PE -&#8594; 2 PE : is the mapping from a policy element to the set of policy elements that is a descendant to the policy element.</p><p>is the set of all policy elements returned by func for the set PE i , where func is anc or des. 1) Scenario-I Access Enabling Policy Elements: Figure <ref type="figure">2</ref> illustrates a generic authorization graph for this scenario. Assuming the source user (u s ) is requesting an access right that is a subset of ars i , the label of access enabling association (ua p , ars i , ua w ) on target (ua t ), the following are the access enabling policy elements sets. i)</p><p>2) Scenario-II Access Enabling Policy Elements: An object attribute oa w is the target policy element of figure <ref type="figure">3</ref>. Let the association granting the privileged user u p the access right to perform the source user's request be access enabling association (ua i , ars q , oa r ) and the association the privileged user can use to create a path from the source user u s to the predecessor-node of access enabling association be access enabling association (ua i , ars j , ua k ). The definition for the user attribute access enabling policy elements sets UA 1 , Fig. <ref type="figure">3</ref>: A Generic Authorization Graph for Scenario-II Fig. <ref type="figure">4</ref>: Distribution of Response Time to Generate Access Authorization Approaches for Scenario-I on graphs with 1,000 nodes UA 2 , and UA 3 in the previous scenario is the same here. In addition, the object attribute access enabling policy elements sets are: i) OA 1 = {oa | oa &#8712; anc(head((ua i , ars q , oa r ))), oa / &#8712; des(oa w ), oa = oa w } ii) OA 2 = {oa | (oa &#8712; des(oa w ) &#8743; oa / &#8712; OA 1des ) &#8744; oa = oa w } iii) OA 3 = {oa | (oa &#8712; anc(head((ua i , ars q , oa r ))), oa &#8712; des(oa w ), oa &#8712; OA 2des ) &#8744; oa = head((ua i , ars q , oa r )) }</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>C. Algorithm And Authorization Approaches</head><p>An input to the main function mainPReview is the authorization state of a graph G auth and access request triple (i.e., the source user, the access right source user is requesting, and the target policy element). The expected output of this algorithm is a list of sets of possible approaches to grant the source user's access. The mainPReview function uses the Fig. <ref type="figure">5</ref>: Distribution of Response Time to Generate Access Authorization Approaches for Scenario-II on graphs with 1,000 nodes access request triple to determine the applicable scenario and queries for the access enabling association(s).</p><p>The functions scenario-IPEGenerator and scenario-IIPEGenerator take the access enabling association(s) as input parameters to return the sets of privileged user and access enabling policy elements for the respective scenarios. The privileged users' access rights are utilized to create the authorization approaches. All administrative access rights for creating assignments enable a common operation, createAssign. The createAssign takes an ordered pair of nodes that an edge originates and terminates as input. Similarly, access rights for creating associations enable the operation createAssoc. A triple as input to the createAssoc is the predecessor-node, the label, and successor-node of an edge.</p><p>Another pair of functions, sc-IAuthGen, and sc-IIAuthGen use the power set of access right set granted to the privileged user to request the creation of relations among the access enabling policy elements for scenario-I and scenario-II respectively. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VI. IMPLEMENTATION</head><p>In this section, we discuss the implementation details of our algorithm utilizing the networkx (python library for studying graphs and networks). An Ubuntu virtual machine with two cores and 10Gb of memory was used as our experimental platform. We tested the response time to return all the approaches that authorize request(s) by simulating 100 random graphs for the two scenarios. For each of the random graphs, we simulated 200 variations for each request sizes of 1, 5, 500, and 1000. The 100 random access control graphs have 1000 (user, user attribute, object, and object attribute) nodes.</p><p>The proportion of nodes of each type per access control graph is shown in the table I. We restricted the maximum number of edges from a user or object to the policy class node to 5. We did this by grouping user and object attributes into four levels (labeled 1 to 4) while the policy class is labeled level 0. Edges (assignment relations) were only allowed from user and object attributes at higher levels to user and object attributes at lower levels. That is, no assignment relations between attributes at the same level.</p><p>In the random authorization graphs generated for scenario-I, association relation predecessor nodes are reachable from a privileged user. Also, the successor nodes of the association relations are reachable from target policy element (user attribute) and source user. For each request in the scenario-II random authorization graphs, there are at least two association relations. One of the association relations has its successor node reachable from target policy element (object or object attribute), while the other enables a privileged user to delegate access right to source user.</p><p>Figure <ref type="figure">4</ref> and 5 are the distribution of response time to generate all possible approaches to grant a request in the two scenarios. The figures are annotated with the quartile response time, (Q 1 , Q 2 , and Q 3 ) as shown in the figures' legend. In scenario-I, the response time for 75% of access request sizes of 1, 5, 500, and 1000 is below 0.53 x 10 -3 , 2.25 x 10 -3 , 0.25, and 0.46 seconds, respectively. For scenario-II, the response time for 75% of access request sizes of 1, 5, 500, and 1000 is below 2.6 x 10 -3 , 11 x 10 -3 , 0.97, and 1.93 seconds, respectively. The distribution of all the plots for the response time is right-skewed. Few instances that the response time takes a longer time, the cardinality of all the sets of access enabling policy elements are non-empty. For cases that the response time takes a short time, some of the policy element sets are empty. Again, the NIST policy machine specification, and no related effort answer this policy query of our work, no comparative experiment for us to perform.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>VII. CONCLUSION AND FUTURE WORK</head><p>The policy machine attribute-based access control model uses enumeration of attributes and relations to formulate policy. This feature makes performing (queries) reviews of policy feasible, rather than the NP-complete time complexity in models that express policy logically. However, the NIST reference specification is lacking policy reviews pertinent to the creation and modification of administrative access policy. An example in section IV-B demonstrates how policy review using our proposed algorithm can prevent an unintended consequence in the PM administration. In section VI, the response time of the performed experiments indicates the proposed algorithm is scalable. Our future work shall expand the algorithm in this paper to handle policy review of revocation and authorization with constraint.</p></div></body>
		</text>
</TEI>
