Security Certification in the Presence of Evolution: Models vs. Code
Jan Jürjens
TU Dortmund & Fraunhofer ISST
http://jan.jurjens.de
Presence of Evolution: Models vs. Code Jan Jrjens TU Dortmund - - PowerPoint PPT Presentation
Security Certification in the Presence of Evolution: Models vs. Code Jan Jrjens TU Dortmund & Fraunhofer ISST http://jan.jurjens.de What is Software Evolution ? Software today often long-living (cf. Year-2000-Bug). Continual change
http://jan.jurjens.de
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 2/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 3/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 4/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 5/29
Generate
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 6/29
[Jürjens: Secure systems development with
Abstract Spec.
Version 1 Version 2
Refinement
[Taubenberger, Jürjens, Yu, Nuseibeh. Resolving Vulnerability Identification Errors using Security Requirements
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 7/29
[Felderer, Katt, Kalb, Jürjens et al.: Evolution of Security Engineering
Software Engin. (IJSSE), 2014 Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 8/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 9/29 [Wenzel, Warzecha, Jürjens, Ochoa. Specifying Model Changes with UMLchange to Support Security Verification of Potential Evolution. Journal of Computer Standards & Interfaces, 2014]
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 10/29
11
(CVE-2008-5077, 7.1.2009, http://www.openssl.org/news/vulnerabilities.html )
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 11/29
12
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 12/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 13/29
13
[Dupressoir, Gordon, Jürjens, Naumann: Guiding a General-Purpose C Verifier to Prove Cryptographic Protocols. Journal of Computer Security 2014]
All paths from p to q check g.
t
Property fulfilled?
Actions
System
Property
Monitor
Runtime verification in a nutshell
automatic generation of
1 Havelund,
Grosu 2002
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 14/29
l j 1 i k
true
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 15/29
true false inconclusive inconclusive
[Bauer, Jürjens, Yu: Runtime Security Traceability for Evolving Systems. Computer Journal, 2011]
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 16/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 17/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 18/29
Exec(t,m) = [ statecurrent=source m=msg cond[m]=true action[m] statecurrent.t(m)=target ].
Exec(t0,m)= [ statecurrent=NoExtraService m=wm(x) moneycurrent+x>=1000 moneycurrent.t0(m)=moneycurrent+x statecurrent.t0(m)=ExtraService ].
[money+x>=1000] [money+x<1000]
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 19/29
Jan Jürjens: Security under Change: Design – Implementation – Validation 20/24
statecurrent ≈pub state‘current statecurrent.t(m) ≈pub state‘current.t(m)
ExtraService ≈pub NoExtraService aber nicht: ExtraService.rx() ≈pub NoExtraService.rx()
[money+x>=1000] [money+x<1000]
[money+x>=1000] [money+x<1000]
[money+x>=1000] [money+x<1000]
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 21/29 rx()/return(random_bool) rx()/return(random_bool)
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 22/29
[money+x>=1000] [money+x<1000] Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 23/29
1 C.B. Jones 1981
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 24/29
[money+x>=1000] [money+x<1000] [money+x>=1000] [money+x<1000]
statecurrent ≈pub state‘current statecurrent.t(m) ≈pub state‘current.t(m)
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 25/29
M → M’
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 26/29
[Robles et al.: Evolution and Growth in Large Libre Software Projects]
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 27/29
Goals
and software for security.
and design analysis techniques
compliance to security requirements.
Some publications
Security Knowledge. In: 22nd IEEE International Requirements Engineering Conference (RE 2014), IEEE, 2014.
Evolution of Security Knowledge and Software Models. In A. Aldini, J. Lopez, F. Martinelli, Foundations of Security Analysis and Design VII: FOSAD 2012/2013 Tutorial Lectures, LNCS, vol. 8604, Springer, 2014, pp. 34–53.
IEEE Intern. Symposium on High Assurance Systems Engineering (HASE 2012), IEEE, 2012, pp. 177–184.
Approach Joint project with Stefan Gärtner, Kurt Schneider (Univ. Hannover) and Jens Bürger, Thomas Ruhroth, Johannes Zweihoff (TU Dortmund)
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 28/29
Jan Jürjens: Secure Evolution: Challenge – Approach – Results – Validation 29/29
[Humberg, Wessel, Poggenpohl, Wenzel, Ruhroth, Jürjens. Using Ontologies to Analyze Compliance Requirements of Cloud-Based Processes. Cloud Computing and Services Science (selected best papers), LNCS Springer, 2014