A Framework for Managing and Analyzing Changes of Security Policies - - PowerPoint PPT Presentation

a framework for managing and analyzing changes of
SMART_READER_LITE
LIVE PREVIEW

A Framework for Managing and Analyzing Changes of Security Policies - - PowerPoint PPT Presentation

A Framework for Managing and Analyzing Changes of Security Policies Achim D. Brucker Helmut Petritsch { achim.brucker, helmut.petritsch } @sap.com SAP Research Karlsruhe Germany IEEE International Symposium on Policies for Distributed Systems


slide-1
SLIDE 1

–sourcefile– –revision– 2011-06-07 –time– –owner–

A Framework for Managing and Analyzing Changes of Security Policies

Achim D. Brucker Helmut Petritsch

{achim.brucker, helmut.petritsch}@sap.com

SAP Research Karlsruhe Germany

IEEE International Symposium on Policies for Distributed Systems and Networks POLICY 2011 Pisa, Italy, 7th June 2011

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-2
SLIDE 2

–sourcefile– –revision– 2011-06-07 –time– –owner–

Motivation

Lots of regulations, e. g.,

◮ Financial market, Basel II (EU), sox (US), pci (credit cards) ◮ Health care, e. g., hipaa in the US

Hard to enforce legal regulations

◮ Problem: translation from legal documents to policies

Audits needed to assess compliance

◮ Vast amount of log information ◮ Increasing costs for audits

General idea:

◮ Support for writing policies ◮ Support for auditing log traces

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-3
SLIDE 3

–sourcefile– –revision– 2011-06-07 –time– –owner–

Standard Architecture (Distributed Systems)

◮ Multiple peps accessing a central pdp ◮ Policy Information Point (pip) resolves information

from the application context

◮ Policies are loaded from a Policy Storage ◮ Access control requests and results are stored

in a Logfile Storage

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

Logfile Storage Policy Storage

R R

Policy Information Point

R R

PEP User Interface Components Application Layer Components PEP Business Layer Components PEP Application Context

R

slide-4
SLIDE 4

–sourcefile– –revision– 2011-06-07 –time– –owner–

Versioning

Based on xacml

◮ Store policies in a Versioning Policy Storage

(e. g., svn for xacml policies)

◮ Save all pip-resolved data in a Versioning Logfile Storage

◮ xacml: resolved attributes ◮ Save the current “state” of the system as seen by the pdp

◮ Interface for clients and pip remains the same

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

Versioning Logfile Storage Versioning Policy Storage

R R

Policy Information Point

R R

PEP User Interface Components Application Layer Components PEP Business Layer Components PEP Application Context

R

slide-5
SLIDE 5

–sourcefile– –revision– 2011-06-07 –time– –owner–

Administration

Administration and Management Interface

◮ Policy Administration Point (pap) ◮ Adopt or provide a wrapper with versioning support

for standard tools, e. g., xacml editor

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

Versioning Logfile Storage Versioning Policy Storage

R R

Policy Information Point

R R

PEP User Interface Components Application Layer Components PEP Business Layer Components PEP Application Context

R

Policy Lifecycle Management Security Policy Analysis and Management Workbench

R

Administrator/Management User Interface

R R

slide-6
SLIDE 6

–sourcefile– –revision– 2011-06-07 –time– –owner–

Analysis Workbench

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

Versioning Logfile Storage Versioning Policy Storage Policy Lifecycle Management Analysis PIP Policy Analysis Tool Security Policy Analysis and Management Workbench

R R R R

Analysis/Audit User Interface Administrator/Management User Interface

R R R R

◮ Analysis pdps load any policy version from the policy store ◮ Analysis Policy Information Point (pip) as context provider

◮ Analysis pip retrieves attributes from log store ◮ Simulated runtime environment for analysis

◮ Replay (re-evaluate) recorded (or new) access control requests ◮ Analysis pdp enhancements allow for

advanced analysis methods, e. g.,

◮ Debugging of Policies ◮ Abstract evaluation

slide-7
SLIDE 7

–sourcefile– –revision– 2011-06-07 –time– –owner–

Replay Access Control Requests

To replay an access control request

◮ Select log entry from the log store ◮ Instantiate an Analysis pdp with a policy version ◮ Replay request on Analysis pdp ◮ Analysis pdp retrieves attributes as recorded for this request

via Analysis pip from the log store Support for understanding policies changes, e. g.,

◮ Replaying incidents or suspicious requests with

different policy versions

◮ Does a change in the policy lead to a different result? A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-8
SLIDE 8

–sourcefile– –revision– 2011-06-07 –time– –owner–

Analysis pdp Enhancements

Enhancement of the Analysis pdp with analysis features

◮ Generation of “evaluation events” for every xacml element ◮ Injection of runtime information into xacml objects

◮ Allows to, e. g., access the call stack (Java objects representing

xacml elements) at runtime

Allows to

◮ Debug policies ◮ Provide runtime information about evaluation state

to users and analysis tools

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-9
SLIDE 9

–sourcefile– –revision– 2011-06-07 –time– –owner–

Abstract Evaluation

◮ Evaluate policies with abstract attribute values

instead of concrete values

◮ Results relying on abstract values have to be treated as

abstract itself

◮ Reimplement (parts of) functions and combining algorithms:

no lazy-evaluation based on abstract results

◮ Evaluate those parts of the policy which could be reached

with any arbitrary configuration of the attribute

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-10
SLIDE 10

–sourcefile– –revision– 2011-06-07 –time– –owner–

Abstract Evaluation

Allows to obtain those parts of a policy, which are relevant for a specific request

◮ Use efficient evaluation to cut off non relevant parts ◮ Obtain “sub policy” which is relevant for specific request

(and analysis question thereon)

◮ Complex analysis has only to deal with remaining sub policy

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-11
SLIDE 11

–sourcefile– –revision– 2011-06-07 –time– –owner–

External Analysis Tools

◮ Integrate existing and new developed tools ◮ Provide interfaces to access policy and log store ◮ Load and use Analysis pdps

◮ Define or modify the simulated runtime environment ◮ Retrieve evaluation events from the Analysis pdp ◮ Browse the evaluation state A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

Versioning Logfile Storage Versioning Policy Storage Policy Lifecycle Management Analysis PIP Policy Analysis Tool Adaptor Layer Security Policy Analysis and Management Workbench

R R R R R

Analysis/Audit User Interface Administrator/Management User Interface

R R

External Analysis Tools Theorem Prover SAT Solver SMT Solver Model Checker

R R R

slide-12
SLIDE 12

–sourcefile– –revision– 2011-06-07 –time– –owner–

Policy Animation

During replay, attributes may be missing

◮ Policy version at runtime did not require attribute

(and the attribute was therefore not recorded)

◮ Intentionally removed from the request ◮ Manually defined request, e. g., for testing

Resolution strategies:

◮ Ask user for value ◮ Policy Animation: computation of equivalence classes

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-13
SLIDE 13

–sourcefile– –revision– 2011-06-07 –time– –owner–

Policy Animation

What are suitable values for the attribute current

◮ For a nurse, when patient and subject department are known?

<!-- PolicySet: match HealthRecord

  • ->

<PolicySet PolicyComb="first -applicable"> <Target ><Resource >HealthRecord </Resource ></Target > <!-- Policy: rules for nurses

  • ->

<Policy RuleCombAlg="first -applicable"> <Target ><Role >Nurse </Role ></Target > <!-- Deny in non -working -hours (i.e., at night) --> <Rule Id="1" Effect="Deny"><Target/> <Condition > 20:00 <= current <= 06:00 <Condition > </Rule > <!-- permit read , if patient is on the same department

  • ->

<Rule Id="2" Effect="Permit"> <Target ><Action >read </Action ></Target > <Condition > pat -dep == subj -dep </ Condition > </Rule ></Policy > <!-- Policy: rules for doctors: Permit during working hours

  • ->

<Policy RuleCombAlg="first -applicable"> <Target ><Role >Doctor </Role ></Target > <Rule Id="3" Effect="Permit"><Target/> <Condition > 05:30 <= current <= 19:00 <Condition > </Rule ></Policy > <!-- final policy for HealthRecords

  • ->

<Policy ><Target/> <Rule Id="final" Effect="Deny"/> </Policy ></PolicySet > A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-14
SLIDE 14

–sourcefile– –revision– 2011-06-07 –time– –owner–

Policy Animation

Observation: similar to input partitioning for test-case generation

◮ Use abstract evaluation to extract relevant sub policy ◮ Translate sub policy as test specification for hol-TestGen

For a request, where the current attribute is missing:

firstApplicable { firstApplicable { timeInRange ($current, 20, 6) → deny true → permit } firstApplicable { true → deny } }

hol-TestGen computes three equivalence classes

◮ 0 ≤ current ≤ 6 results in a deny ◮ 6 < current < 20 results in a permit ◮ 20 ≤ current ≤ 24 results in a deny

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-15
SLIDE 15

–sourcefile– –revision– 2011-06-07 –time– –owner–

Conclusion

◮ Policies are considered to be static

◮ Only a few concepts exist how to handle changes in policies

◮ Our Framework supports both policy author and auditor

◮ Similar techniques to support both jobs

◮ Provide a platform to integrate (existing) analysis tools

◮ Also tools from foreign domains can provide value A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-16
SLIDE 16

–sourcefile– –revision– 2011-06-07 –time– –owner–

Thank you for your attention!

Questions and Remarks?

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies

slide-17
SLIDE 17

–sourcefile– –revision– 2011-06-07 –time– –owner–

Full Architecture

Versioning Logfile Storage Versioning Policy Storage

R R

Policy Information Point

R R

PEP User Interface Components Application Layer Components PEP Business Layer Components PEP Application Context

R

Policy Lifecycle Management Analysis PIP Policy Analysis Tool Adaptor Layer Security Policy Analysis and Management Workbench

R R R R R

Analysis/Audit User Interface Administrator/Management User Interface

R R

External Analysis Tools Theorem Prover SAT Solver SMT Solver Model Checker

R R R

A.D. Brucker and H. Petritsch Managing and Analyzing Changes of Security Policies