A Formal Methods Approach to Security Requirements Specification and Verification

The specification and the verification of security requirements is one of the major computer-based systems challenges. Security requirements need to be precisely specified before a tool can manipulate them, and though several approaches to security requirements specification have been proposed, they do not provide the scalability and flexibility required in practice. We take this problem towards an integrated approach for security requirement specification and treatment during the software architecture design time. The general idea of the approach is to: (1) specify security requirements as properties of a modeled system in a technology-independent specification language; (2) implement the developed model in a suitable language with tool support for requirement satisfaction through model verification; and (3) suggest a set of security policies to constrain the operation of the system and to guarantee the security properties. In the scope of this paper, we use first-order logic as a formalism that is abstract and technology-independent and Alloy as a tooled language used in modeling and software development. To validate our work, we explore a set of representative security properties from categories based on CIA classification in the context of secure component-based software architecture development.

[1]  Daniel Jackson,et al.  Software Abstractions - Logic, Language, and Analysis , 2006 .

[2]  Premkumar T. Devanbu,et al.  Software engineering for security: a roadmap , 2000, ICSE '00.

[3]  Philippe Krutchen,et al.  Architectural blueprints--the '4+1' view model of software architecture , 1995 .

[4]  Jacques Klein,et al.  Advances in Model-Driven Security , 2014, Adv. Comput..

[5]  Carl E. Landwehr,et al.  Formal Models for Computer Security , 1981, CSUR.

[6]  W. W. Royce,et al.  Managing the development of large software systems: concepts and techniques , 1987, ICSE '87.

[7]  Martin Gilje Jaatun,et al.  Security in Model Driven Development: A Survey , 2011, 2011 Sixth International Conference on Availability, Reliability and Security.

[8]  Martín Abadi,et al.  A logic of authentication , 1990, TOCS.

[9]  Carsten Rudolph,et al.  Formal Notions of Trust and Confidentiality- Enabling Reasoning about System Security , 2011, J. Inf. Process..

[10]  Ivica Crnkovic Component-based software engineering for embedded systems , 2005, Proceedings. 27th International Conference on Software Engineering, 2005. ICSE 2005..

[11]  Kristin Giammarco,et al.  A Formal Method for Evaluation of a Modeled System Architecture , 2013, Complex Adaptive Systems.

[12]  Brahim Hamid,et al.  Security patterns modeling and formalization for pattern-based development of secure software systems , 2015, Innovations in Systems and Software Engineering.

[13]  Lawrence C. Paulson,et al.  Proving properties of security protocols by induction , 1997, Proceedings 10th Computer Security Foundations Workshop.

[14]  Philippe Kruchten,et al.  Architecture blueprints—the “4+1” view model of software architecture , 1995, TRI-Ada '95.

[15]  Jan Jürjens Using UMLsec and goal trees for secure systems development , 2002, SAC '02.

[16]  Bran Selic,et al.  The Pragmatics of Model-Driven Development , 2003, IEEE Softw..

[17]  J Jürjens,et al.  Model-based Security Analysis of the German Health Card Architecture , 2008, Methods of Information in Medicine.