<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>Feb</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Security Guarantees and Evolution: From Models to Reality?</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mart n Ochoa</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Siemens AG</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Germany</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>TU Dortmund</string-name>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Germany martin.ochoa@cs.tu-dortmund.de</string-name>
        </contrib>
      </contrib-group>
      <pub-date>
        <year>2012</year>
      </pub-date>
      <volume>15</volume>
      <issue>2012</issue>
      <abstract>
        <p>Achieving security in practical systems is a hard task. As it is the case for other critical system properties (i.e. safety), security should be a concern through all the phases of software development, starting with the very early phases of requirements and design. Although the arguments in favour of formal veri cation at the design level are many (rigour and cost-bene t being at the top of the list), answers to two relevant questions about the limitations of this approach are crucial for its success and further application in industrial contexts: Is security veri cation at the design phase scalable under continuous evolution? What are the limits of the formal security guarantees achieved at the model level when software is ultimately deployed? In this paper we report on recent results and work in progress towards a better understanding of these two fundamental questions.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Motivation</title>
      <p>
        In recent years, information security has gained increasing attention from the
general public and there is a consensus about its paramount importance in
society. Examples include recent scandals on users private data [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], leaks of
government secret documents and public threats from anonymous hacker groups to
corporate and governmental IT systems worldwide [
        <xref ref-type="bibr" rid="ref1 ref2">1,2</xref>
        ]. Long gone are the days
where the term `computer security' was associated exclusively with spies,
conspirational theories and cryptography. Today most successful attacks exploit
vulnerabilities related to problems in design or implementation rather than
vulnerabilities in cryptographic mechanisms. And most of the attackers are motivated
teenagers, typically not interested in the mathematical aspects of cryptography.3
      </p>
      <p>There are several reasons why security is di cult to achieve in practice.
On the one hand, the complexity of modern system architectures is constantly
increasing: software logic evolves, often driven by the market pressure to deliver
new functionalities, and di erent operating systems and hardware con gurations
? PhD work supervised by Jan Jurjens at the Chair for Software Engineering of the</p>
      <p>TU Dortmund and Jorge Cuellar at Siemens Corporate Research.
3 Also social aspects of security result in attacks in many cases, but those are very
di cult to control by technological means and are out of the scope of this work.
make each instantiation of an IT system unique. Moreover, software components
from di erent producers delivered without accurate (if at all) security guarantees
are used together to achieve customized solutions.</p>
      <p>Techniques to tackle this ever `moving target' exist in di erent areas of
computer science and engineering: from software and hardware formal veri cation to
testing, but also at the level of business-processes modelling and risk-analysis. In
fact, security plays a role at di erent levels of abstraction and at di erent phases
of the development cycle, and if one wants to have a high degree of assurance
about the security of a system one should consider them all.</p>
      <p>In general, the strongest guarantees about software and hardware behaviour
are delivered by formal methods, due to their rigour and precision. It is thus
natural to consider formal methods to validate a system with respect to well-de ned,
mathematical descriptions of security. Nevertheless, formal methods are di cult
to apply in realistic software-development scenarios because they require highly
specialized designers and programmers in order to carry out the formalizations
and because many veri cation tools available hardly scale to realistic scenarios,
in particular at the level of implementations. Additionally, the security
requirements of a system are not always precise, because often they are formulated in
natural language.</p>
      <p>At the present time, the application of formal methods seems to be more
reasonable to take place at the level of system design, where models are abstracted
from implementation details and are more amenable to automated veri cation.
Since some security problems can be detected already at the speci cation level,
the cost-bene t of applying this methodology is typically better than repairing
design problems at later stages of development. Since the de-facto standard for
system modelling in industry is the Universal Modelling Language (UML), it is
natural to perform this formal veri cation on UML models, if one aims at
industry acceptance. It is however not enough to have strong security guarantees
on system models to be able to judge the overall security of a deployed system,
which is the ultimate goal. As argued before, it is di cult to verify the code
because of its size and the huge variety of programming languages and paradigms.
Moreover it can be the case that libraries or components from third parties are
used whose source code is unavailable.</p>
      <p>Unfortunately, security is a never ending open loop, since no matter how
strong guarantees a given system has, new exploits appear that consider
properties or interfaces that were not considered at design. This is prominently
illustrated by side-channels: here the attacker exploits information such as
electromagnetic radiation, timing and shared memory behaviour to gain possession
of con dential data. Many of these side-channels are di cult to capture since
they rely on micro-architectural con gurations such as the duration of
processor instructions or the cache behaviour. Closing these interfaces is sometimes
impossible or costly, because of the impact to other system requirements (i.e.
e ciency).</p>
      <p>In summary, we believe that it is unrealistic to attempt to build complex
industrial systems with a 100% guarantee of security because logical or physical
interfaces that are vulnerable to attacks are often only exposed after real attacks
take place. To date there is also no standard single methodology, tool, or model to
tackle the whole Software Development Life-Cycle. It is thus necessary to provide
tools that help to cope with evolution problems at all levels of abstractions
and during the whole life-cycle. It is our believe that the idea that systems
are going to be secure because we commit to a single approach (for example
rigorous security requirements elicitation, industrial best-practices, strict patch
update policies etc.) is fallacious: we have to work on all phases and at di erent
abstraction levels, sometimes using di erent models and di erent methodologies.
In this work we propose a set of such tools, easy to use by end users, and
addressing the aforementioned problems on Models, Implementations and
Microarchitectures.</p>
      <p>State Name</p>
      <p>action State
Models
class HelloWorldApp {
{ public static void main(String[] args)
} } System.out.println("Hello World!");</p>
      <p>Implementations</p>
      <p>Running system</p>
    </sec>
    <sec id="sec-2">
      <title>Roadmap and contributions</title>
      <p>
        In the following we summarize the goals of this research and the achieved results
so far. Security is typically described as the conjunction of one or more security
requirements, abstractly classi ed as Con dentiality, Availability and Integrity.
In this work we consider mainly Con dentiality and Integrity: we want to
understand how information is owing from a group of users to another. There are
basically two ways to look at the problem and our proposed solutions: a)
according to the abstraction level modelled and b) according to the security properties
considered. First, we will take the rst point of view (see Fig. 1).
Models We consider the problem of speci cation evolution for security at the
level of UML models. We extend the UMLsec [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] notation and veri cation
techniques to reason about changes in the speci cation by means of the novel
UMLseCh notation [
        <xref ref-type="bibr" rid="ref6 ref7">7,6</xref>
        ]. For some properties de ned in static UML diagrams,
we describe su cient conditions that soundly preserve the security of already
veri ed models by analysing the delta implied by the modi cations. This
negrained incremental technique is a good choice for structural of properties
because of their locality: changes of parts of the model usually a ect the property
in a clearly identi able, small subset of the speci cation. For behavioural
models, incremental changes can a ect security in non-trivial ways. Therefore we
propose to focus on compositionality results: if one or more components of a
given system evolves, the overall security of the system can be decided (e
ciently) by re-verifying the evolved components exclusively given an (e cient)
compositionality condition. We describe such a decision procedure for secrecy on
cryptographic protocols speci ed as Sequence diagrams [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] that is sound and
complete with respect to a previous veri cation technique proposed by Jurjens
[
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. We currently extend previous work on verifying non-interference in UML
state-charts and derive compositionality results for interacting objects.
Implementations For evaluating the security of implementations we consider
model-based testing of security requirements based on a black box model of the
system. The methodology proposed is well-founded with respect to the
requirements considered, and extends previous work on security testing [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. We also
discuss conditions under which the security relevant properties of the model are
preserved under incremental changes [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        Micro-architecture At this detailed abstraction level, we focus on cache con
gurations and how they can act as a leaking channel for di erent adversaries.
Con gurations of the CPU play a determinant role on the security of the
system with respect to side-channel attacks, and the change in con gurations is a
typical phenomenon of system's evolution. Avoiding the use of caches con icts
with e ciency requirements and is therefore not realistic for a wide range of
systems. A promising technique to achieve formal guarantees about
countermeasures striving for a trade-o between security and other con icting requirements
is quantitative information ow analysis (for example [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]). We formalize heuristic
countermeasures proposed in the literature and give strong security guarantees
for arbitrary programs under a well-de ned attacker model [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], and validate our
approach using an automatic tool chain that evaluates compiled programs for
various architectures.
      </p>
      <p>Notice that we do not aim at a formal integration of the security guarantees
obtained at the discussed levels of abstraction: such a task, although
interesting, goes outside the scope of this work. On the other hand, current industrial
environments do not have a formally justi ed software development process. We
consider di erent layers of abstraction mainly due to necessity: any error found
in any of these layers would invalidate the over-all security of the system.</p>
      <p>It is nevertheless interesting to informally discuss our contributions from the
perspective of the security properties considered and the assumptions they rely
on at di erent abstraction levels. In fact, when analysing information- ow at the
model level, we are assuming perfect mechanisms for access control, and among
others, perfect cryptography, which guarantees access control when information
is shared through insecure networks. To gain con dence in the correctness of
those mechanisms, we validate them locally using model-based testing and
performing a Dolev-Yao analysis for the cryptographic protocol logic. To gain even
more con dence about primitives, we consider the micro-architectural
abstraction level, using quantitative information- ow related techniques. We can see
this as an (informal) chain of assumptions and guarantees across abstraction
levels, as depicted in Fig. 2.</p>
      <sec id="sec-2-1">
        <title>Access Control mechanisms</title>
        <p>guarantee
Local Access Control
assumes
Information flow control
assumes
Communication channel
Access Control
guarantee
Cryptographic protocols
assume</p>
        <p>Cryptography
Non-interference Verification</p>
        <p>Model
Model</p>
        <p>Model
assurance
assurance</p>
        <p>Dolev-Yao Analysis
assurance</p>
        <p>Model
assurance
Model-based Testing</p>
      </sec>
      <sec id="sec-2-2">
        <title>System under Validation</title>
        <p>Quantitative information flow Analysis
The assumptions and guarantees discussed here are by no means complete:
for example we are not considering operating system access control mechanisms
or semantic security properties of the cryptographic primitives. As already
discussed we believe that a complete and formally justi ed methodology is
unrealistic. It is nevertheless essential to consider di erent levels of abstraction
and development phases to achieve a good degree of con dence in the system,
since an error in any of them would invalidate the results at higher
abstraction levels or previous phases. For example a faulty implementation of access
control would invalidate a secure abstract design w.r.t non-interference, and a
cryptographic implementation with side-channels would make a formally veri ed
protocol against the Dolev-Yao adversary meaningless.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Conclusions and Work in Progress</title>
      <p>Software security is a di cult problem because it is a moving target, and it should
be addressed at di erent levels of abstraction and in all phases of software
development. Although a promising methodology to achieve practical security is
formal veri cation at design time, to date there a number of limitations to this
approach, in particular when the system undergoes continuous evolution. We
have reported on results towards a scalable security veri cation at the model
level, and pinned down many assumptions made at di erent levels of
abstractions, that are vital for the formal model analysis to be sound. Our focus is to
devise methodologies supporting intuitive tools, aiming at minding the gap
between formal methods and industrial acceptance. At this point of our research,
we have already achieved many of the original goals, and promising work in
progress is being done on the missing items. Concretely, at this stage work in
progress is being done for information ow analysis: at the model level, we are
interested in the automatic and e cient veri cation of UML state-charts; at the
micro-architectural level novel formal quanti cation techniques are being studied
that provide strong security guarantees on realistic modern processor models for
powerful attackers and multiple hardware con gurations. Submissions to
international conferences in software engineering and automatic veri cation in both
of these subjects are on preparation at the time of writing this manuscript.
Acknowledgements This research was partially supported by the MoDelSec Project
of the DFG Priority Programme 1496 \`Reliably Secure Software Systems { RS3"
and the EU project NESSoS (FP7 256890).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <article-title>LulzSec hackers claim CIA website shutdown</article-title>
          . BBC news http://www.bbc.co.uk/ news/technology-13787229,
          <year>2011</year>
          . Online, accessed 04-Feb-
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <article-title>LulzSec takes down Brazil government sites</article-title>
          . Cnet news http://news.cnet.com/ 8301-1009_
          <fpage>3</fpage>
          -
          <lpage>20073219</lpage>
          -83/lulzsec-takes
          <article-title>-down-brazil-government-</article-title>
          <string-name>
            <surname>sites</surname>
            <given-names>/</given-names>
          </string-name>
          ,
          <year>2011</year>
          . Online, accessed 04-Feb-
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>E.</given-names>
            <surname>Fourneret</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bouquet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          , J. Jurjens, and S. Wenzel.
          <article-title>Veri cation et test pour des systemes evolutifs</article-title>
          .
          <source>In Approches Formelles dans l'Assistance au Dveloppement de Logiciels (AFADL)</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>E.</given-names>
            <surname>Fourneret</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bouquet</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Botella</surname>
          </string-name>
          , J. Jurjens, and
          <string-name>
            <given-names>P.</given-names>
            <surname>Youse</surname>
          </string-name>
          .
          <article-title>Modelbased security veri cation and testing for smart-cards</article-title>
          .
          <source>In Proceedings of the 6th International Conference on Availability, Reliability and Security (ARES)</source>
          , pages
          <fpage>272</fpage>
          {
          <fpage>279</fpage>
          . IEEE,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. J. Jurjens.
          <source>Secure Systems Development with UML</source>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. J. Jurjens, L. Marchal,
          <string-name>
            <given-names>M.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          .
          <article-title>Incremental Security Veri cation for Evolving UMLsec models</article-title>
          .
          <source>In Proceedings of the 7th European Conference on Modelling Foundations and Applications (ECMFA)</source>
          , volume
          <volume>6698</volume>
          of Lecture Notes in Computer Science, pages
          <volume>52</volume>
          {
          <fpage>68</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. J. Jurjens, M. Ochoa,
          <string-name>
            <given-names>H.</given-names>
            <surname>Schmidt</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Marchal</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. H.</given-names>
            <surname>Houmb</surname>
          </string-name>
          , and
          <string-name>
            <given-names>S.</given-names>
            <surname>Islam</surname>
          </string-name>
          .
          <article-title>Modelling secure systems evolution: Abstract and concrete change speci cations</article-title>
          .
          <source>In Proceedings of the 11th International School on Formal Methods for the Design of Computer</source>
          ,
          <source>Communication and Software Systems (SFM)</source>
          , volume
          <volume>6659</volume>
          of Lecture Notes in Computer Science, pages
          <volume>504</volume>
          {
          <fpage>526</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>B.</given-names>
            <surname>Ko</surname>
          </string-name>
          <article-title>pf and M. Durmuth. A provably secure and e cient countermeasure against timing attacks</article-title>
          .
          <source>In Proceedings of the 22nd IEEE Computer Security Foundations Symposium (CSF)</source>
          , pages
          <fpage>324</fpage>
          {
          <fpage>335</fpage>
          . IEEE Computer Society,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Ko</surname>
          </string-name>
          pf, L. Mauborgne, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Ochoa</surname>
          </string-name>
          .
          <article-title>Automatic quanti cation of cache sidechannels</article-title>
          .
          <source>Cryptology ePrint Archive, Report 2012/034</source>
          ,
          <year>2012</year>
          . http://eprint. iacr.org/.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>M. Ochoa</surname>
            , J. Jurjens, and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Warzecha</surname>
          </string-name>
          .
          <article-title>A sound decision procedure for the compositionality of secrecy</article-title>
          .
          <source>In Proceedings of the 4th International Symposium on Engineering Secure Software and Systems (ESSoS)</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>M. J. Schwartz</surname>
          </string-name>
          .
          <article-title>Sony sued over playstation network hack</article-title>
          .
          <source>Information Week</source>
          , http: //www.informationweek.com/news/security/attacks/229402362,
          <year>2011</year>
          . Online, accessed 04-Feb-
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>