development of a new policy evaluation procedure for xacml
play

DEVELOPMENT OF A NEW POLICY EVALUATION PROCEDURE FOR XACML Jorian - PowerPoint PPT Presentation

DEVELOPMENT OF A NEW POLICY EVALUATION PROCEDURE FOR XACML Jorian van Oostenbrugge Supervisor: Fatih Turkmen August 19, 2016 System and Network Engineering University of Amsterdam WHY Customer data more and more valuable Data stored


  1. DEVELOPMENT OF A NEW POLICY EVALUATION PROCEDURE FOR XACML 
 Jorian van Oostenbrugge Supervisor: Fatih Turkmen August 19, 2016 System and Network Engineering University of Amsterdam

  2. WHY § Customer data more and more valuable § Data stored in cloud § Access control becomes critical

  3. XACML § eXtensible Access Control Markup Language § XML-based language § Also an architecture § OASIS standard for the expression of security policies

  4. XACML ELEMENTS <PolicySet> <PolicySet> <Policy <Policy RuleCombiningAlg="..." > <Target/> <Target/> <Rule <Rule RuleId="..." Effect="Permit"> <Target/> <Target/> <Condition/> <Condition/> </Rule> </Rule> <Rule <Rule RuleId="..." Effect="Deny"> <Target/> <Target/> <Condition/> <Condition/> </Rule> </Rule> </Policy> /Policy> <Policy <Policy RuleCombiningAlgId="..."> ... </Policy> </Policy> <PolicySet> <PolicySet>

  5. EXAMPLE XACML POLICY <Policy RuleCombiningAlgId="identifier:rule-combining-algorithm:permit-overrides"> <Target/> <Rule RuleId="urn:oasis:names:tc:xacml:3.0:example:SimpleRule1" Effect="Permit"> <Target> <AnyOf> <AllOf> <Match MatchId="string-equal"> <AttributeValue DataType="string">admin</AttributeValue> <AttributeDesignator AttributeId="role" DataType="string"/> </Match> </AllOf> </AnyOf> </Target> <Condition> ... </Condition> </Rule> <Rule RuleId="urn:oasis:names:tc:xacml:3.0:example:SimpleRule2" Effect="Deny"> ... </Rule> </Policy>

  6. XACML IN ACTION Request intercepted 1. by PEP Request converted 2. to XACML PDP evaluates 3. policy If needed retrieve 4. additional attributes PDP reaches 5. decision and forwards this to PEP Request arrives at 6. resource Source: Wikipedia

  7. RELATED RESEARCH (Adaptive) reordering Decision Diagrams § Based on statistics and § XEngine categorization § Matching Tree (MT) and Combining Tree (CT) § SNE-XACML with MIDD S [0, 0] [2, 3] [1, 1] R R R [1, 1] [0, 1] [0, 0] [1, 1] [0, 0] A A A A A [0, 1] [0, 0] [1, 1] [0, 1] [0, 0] [1, 1] [0, 1] [R -1 ] na [R 2 ] p [R 2 ] p [R 1 ] d [R 3 ] p [R 2 ] p [[R 1 ] d , [R 2 ] p ] d Source: XEngine: A Fast and Scalable XACML Policy Evaluation Engine

  8. RESEARCH QUESTION • Propositional encoding • PDP

  9. SAT & CNF f ( x 1 , x 2 ,..., x n ) § Boolean function: x 1 , ∧ , ∨ , ¬ ,() § Variables, operators and parentheses: § SAT solvers § CNF: ( p 1 ∨ p 2 ) ∧ ( p 3 ∨ p 4 ) ∧ ( p 5 ∨ p 6 ) § Conjunction of clauses § Disjunction of literals

  10. ALGORITHM • Constructing attribute domains • Policy flattening • SAT encoding

  11. CONSTRUCTING ATTRIBUTE DOMAINS (1) § Attributes § AttributeValue § AttributeDesignator § AttributeSelector <rule <rule Effect=”Permit”> ... <AttributeValue <AttributeValue DataType=”String”>admin</AttributeValue> </AttributeValue> <AttributeDesignator <AttributeDesignator AttributeId=”role” DataType=”String”/> ... </rule> </rule>

  12. CONSTRUCTING ATTRIBUTE DOMAINS (2) D role ∈ { admin , manager , hr , user } admin ∈ { admin , manager , hr , user }

  13. CONSTRUCTING ATTRIBUTE DOMAINS (3) Algorithm 1 EnumerateVariables Input: A map m containing the DataTypes as keys and (empty) arrays as values and a policy p 1: procedure EnumerateVars ( p, m ) for all target elements do 2: update m with values found in the policy 3: target end for 4: for all variable definitions do 5: update m with values found in the variable 6: definitions end for 7: for all policy elements do 8: if element is a policy then 9: enumerateVars(element,m) 10: else if element is a rule then 11: update m with values found in the rule 12: targets update m with values found in the rule 13: condition end if 14: end for 15: 16: end procedure

  14. ALGORITHM • Constructing attribute domains • Policy flattening • SAT encoding

  15. Policy Flattening (1) • Applicability space <AS A , AS IN , AS NA > • Decision space <DS P , DS D , DS IN , DS NA >

  16. Algorithm 2 FlattenPolicy Input: A policy p Output: Decision space < DS P , DS D , DS IN ( P ) , DS IN ( D ) , DS IN ( NA ) , DS NA > 1: procedure flattenPolicy ( p ) if p is a rule then 2: AS P A = AS T A ∩ AS C 3: A AS P IN = AS C IN ∪ AS T 4: IN if e ff ect of p is Permit then 5: DS P = AS P 6: A DS D = ∅ 7: DS IN ( P ) = AS P 8: IN DS IN ( D ) = ∅ 9: else if e ff ect of p is Deny then 10: DS P = ∅ 11: DS D = AS P 12: A DS IN ( P ) = ∅ 13: DS IN ( D ) = AS P 14: IN end if 15: DS IN ( P D ) = ∅ 16: DS IN ( NA ) = 17: ( DS P ∪ DS D ∪ DS IN ( P ) ∪ DS IN ( D ) ∪ DS IN ( P D ) ) return 18: ( DS P , DS D , DS IN ( P ) , DS IN ( D ) , DS IN ( P D ) , DS IN ( NA ) ) else if p is a policy (set) then 19: policies = ∅ 20: for all elements e of p do 21: result = flattenPolicy( e ) 22: add result to policies 23: end for 24: combiningAlg = combining algorithm of p 25: return applyCA(policies, combiningAlg) 26: end if 27: 28: end procedure

  17. ALGORITHM • Constructing attribute domains • Policy flattening • SAT encoding

  18. SAT ENCODING DS P ∪ DS D ∪ DS IN ( P ) ∪ DS IN ( D ) ∪ DS IN ( PD ) ∪ DS NA

  19. FRAMEWORK

  20. Conclusion • Creating SAT formula • SAT solvers • No trees • Experimental validation

Recommend


More recommend