Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Disambiguating aspect-oriented security policies
Jones M., Hamlen K.  AOSD 2010 (Proceedings of the 8th International Conference on Aspect-Oriented Software Development, Rennes and Saint-Malo, France, Mar 15-19, 2010)193-204.2010.Type:Proceedings
Date Reviewed: Aug 5 2010

The aspect-oriented programming paradigm provides an elegant way of modularizing crosscutting concerns of a software system. A crosscutting concern is one whose implementation is scattered throughout the implementation of many other concerns within the software. A modular unit that implements a crosscutting concern is an aspect. In addition to providing the behavior (implementation) for a crosscutting concern (known as advice), an aspect also encapsulates pointcuts that describe locations in the rest of the software where the aspect’s behavior should be integrated. Pointcuts do not refer to locations explicitly, but rather specify how such locations can be identified and selected. The locations where an aspect should be integrated are known as join points. Security is one such crosscutting concern that is encoded using aspects.

This paper explores bugs that creep in when multiple pointcuts in an aspect-oriented security policy provide conflicting advice for a shared join point, a phenomenon called pointcut nondeterminism. These bugs are hard to detect during unit testing, as they may only manifest under unusual circumstances. Jones and Hamlen present and evaluate an algorithm written using constraint-based Prolog, which they show to be invaluable in detecting such hard-to-find bugs.

The authors first provide a background on Security Policy Extensible Markup Language (SPoX), a declarative aspect-oriented specification language, which is the target of their analysis algorithm. Then, they provide a formalism for SPoX security policy nondeterminism. The analysis algorithm uses this formalism to identify pointcut nondeterminism.

Verifying correct security policy specification in general is difficult. The algorithm developed is limited to security policy specifications with purely declarative advice and a pointcut language that includes declarative predicates. It reduces the problem of detecting policy nondeterminism to some well-known hard problems such as Boolean satisfiability, so scalability of the algorithm is less of an issue, as efficient state-of-the-art Boolean satisfiability solvers that can handle problems with thousands to millions of variables are now available.

The elegance of this paper resides in providing a formalism for verifying critical security properties of a software system where security policies are implemented using a declarative aspect-oriented specification language. Jones and Hamlen provide several case studies where the algorithm based on this formalism proves valuable in detecting undesired nondeterminism in security policies of real-life systems.

Reviewer:  Raghvinder Sangwan Review #: CR138227 (1107-0733)
Bookmark and Share
  Featured Reviewer  
 
Software/ Program Verification (D.2.4 )
 
 
Constraint And Logic Languages (D.3.2 ... )
 
 
Language Classifications (D.3.2 )
 
 
Security and Protection (D.4.6 )
 
Would you recommend this review?
yes
no
Other reviews under "Software/Program Verification": Date
Verification of sequential and concurrent programs
Krzysztof R., Olderog E., Springer-Verlag New York, Inc., New York, NY, 1991. Type: Book (9780387975320)
Jul 1 1992
On verification of programs with goto statements
Lifschitz V. (ed) Information Processing Letters 18(4): 221-225, 1984. Type: Article
Mar 1 1985
The validation, verification and testing of software
Ince D. (ed), Oxford University Press, Inc., New York, NY, 1985. Type: Book (9789780198590040)
Sep 1 1987
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy