System security requirements analysis with answer set programming

The need for early consideration of security during system design and development cannot be over-emphasized, since this allows security features to be properly integrated into the system rather than added as patches later on. A necessary pre-requisite is the elicitation and analysis of the security requirements prior to system design. Existing methods for the security requirements phase, such as attack trees and misuse case analysis, use manual means for analysis, with which it is difficult to validate and analyse system properties exhaustively. We present a computational solution to this problem using an institutional (also called normative) specification to capture the requirements in the InstAL action language, which in turn is implemented in answer set programming (a kind of logic programming language). The result of solving the answer set program with respect to a set of events is a set of traces that capture the evolution of the model over time (as defined by the occurrence of events). Verification is achieved by querying the traces for specific system properties. Using a simple scenario, we show how any state of the system can be verified with respect to the events that brought about that state.We also demonstrate how the same traces enable: (i) identification of possible times and causes of security breaches and (ii) establishment of possible consequences of security violations.

[1]  Andreas L. Opdahl,et al.  Eliciting security requirements with misuse cases , 2004, Requirements Engineering.

[2]  Andreas L. Opdahl,et al.  Eliciting security requirements with misuse cases , 2000, Proceedings 37th International Conference on Technology of Object-Oriented Languages and Systems. TOOLS-Pacific 2000.

[3]  Peter Rittgen,et al.  Handbook of Ontologies for Business Interaction , 2007 .

[4]  Nobukazu Yoshioka,et al.  Effective Security Impact Analysis with Patterns for Software Enhancement , 2011, 2011 Sixth International Conference on Availability, Reliability and Security.

[5]  Miroslaw Truszczynski,et al.  Answer set programming at a glance , 2011, Commun. ACM.

[6]  Enrico Pontelli Answer Set Programming in 2010: A Personal Perspective , 2010, PADL.

[7]  Nancy R. Mead,et al.  Security quality requirements engineering (SQUARE) methodology , 2005, SESS@ICSE.

[8]  Richard Kissel,et al.  Security Considerations in the System Development Life Cycle , 2008 .

[9]  Alex M. Andrew,et al.  Knowledge Representation, Reasoning and Declarative Problem Solving , 2004 .

[10]  John Mylopoulos,et al.  An ontology for secure socio-technical systems , 2007 .

[11]  Bruce Schneier,et al.  Secrets and Lies: Digital Security in a Networked World , 2000 .

[12]  Nancy R. Mead,et al.  Security quality requirements engineering (SQUARE) methodology , 2005, SESS@ICSE.

[13]  Jim Alves-Foss,et al.  Formal Verification and Visualization of Security Policies , 2008, J. Comput..