About

ACPEG is a tool for evaluating and model-checking access control policies. It can read policy scripts written in a language called RW and can also translate RW to XACML, so that a real access control policy can be built.

The RW language is based on first-order logic, and is described in the following paper:

ACPEG's model-checker can be used to find potential security breaches caused by interactions of rules, co-operations between agents and multi-step actions, which are difficult to identify using other approaches.

A "goal" is an objective that a user or group of users ("party") may want to achieve, such as reading from or overwriting some information. A "strategy" is a way of achieving a goal. If a strategy for a goal is available to a party, then they are able to achieve the goal.

The achievability of a goal reflects certain facts about the policy. The existence of a strategy for a malicious goal means the policy contains security holes that can be exploited, while if a strategy for a legitimate goal cannot be found, this suggests the policy has not granted the users adequate permissions.

Releases

  • Acpeg 1.6 provides:
    • improved query syntax
    • searching for strategies
    • searching for guessing strategies
    • checking both nested and simple goals
    • counter-example guided abstraction refinement (CEGAR)
    • selective running of rounds
    • other efficiency optimizations
    • translating from RW to XACML
    Download ACPEG 1.6
    View the readme file

Authors

The tool was created by the collaboration of Nan Zhang, Mark Ryan, Pierre-Yves Schobbens and Dimitar P. Guelev.

Relevant papers


Some earlier papers may also be interesting.

This one defines our basic model and shows some of its properties.
  • Dimitar P. Guelev, Mark D. Ryan and Pierre-Yves Schobbens. Model-checking Access Control Policies.Seventh Information Security Conference (ISC'04). Lecture Notes in Computer Science, Springer-Verlag, 2004. 16 pages.

This paper explains the basic model-checking algorithm for access control systems.

This paper explains how access control systems defined in our model can be compiled into XACML code.