<!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 />
    <article-meta>
      <title-group>
        <article-title>Validation of a security metamodel for development of cloud applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Marcos Arjona</string-name>
          <email>marcos@lcc.uma.es</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Carolina Dania</string-name>
          <email>carolina.dania@imdea.org</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Marina Egea</string-name>
          <email>marina.egea@atos.net</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Maña</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Atos</institution>
          ,
          <addr-line>Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>IMDEA Software Institute</institution>
          ,
          <addr-line>Madrid</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Universidad de Málaga</institution>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>33</fpage>
      <lpage>42</lpage>
      <abstract>
        <p>Development of secure cloud applications requires a supportive approach that should also enable software assessment and certification by different mechanisms. These can assure by independent means that the required security is present. In this paper we present a Core Security Metamodel (CSM) that is the director of a security engineering process that also addresses security certification for cloud applications. To drive these activities with enough precision, the CSM is constrained with OCL rules that control the creation of instances of the metamodel. Due to their relevance for the security engineering process, we decided to formally check their consistency leveraging on our previous mapping from OCL to First Order Logic. We found that CVC4 returned sat in less than 30 seconds when we run it in finite model finder mode. Also, it automatically provided a valid CSM structural instance. Instances so obtained with CVC4 can be tuned to serve as input of the engineering process of secure cloud applications. Their automatic generation reduces the time and effort spent in the engineering process, reinforcing its supportive and practical side.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Development of secure applications is a challenging task due to the evolvable risks
that threaten any system under design. Even worse nowadays, the exposure of systems
to cloud environments claims for a stronger development approach able to support a
large number of complex security requirements and interplay in the creation of cloud
applications. Most of the proposed approaches agree in the necessity to sit a solid and
affordable engineering process that can prevent, from design time, non-secure states due
to wrong security mechanisms used as a late solution [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. In line with this approach,
our work stems in the definition and evaluation of a security engineering process [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]
for the CUMULUS [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and the PARIS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] EU projects. Our work proposes a complete
Model Based System Engineering (MBSE) methodology to address the different stages
involved in the development of secure and privacy preserving applications. It includes
early stages of the architectural design that identify the security requirements. Also, it
covers subsequent stages in which solutions are manipulated and system model
transformations progressively applied up to the inclusion of all the security mechanisms that
fulfill those security requirements.
      </p>
      <p>
        In this paper, we are focused at the first stage of the work flow: the Core
Security Metamodel (CSM), designed to gather and represent the security knowledge. The
CSM and the OCL validation rules imposed on it establish a language that supports,
validates and drives instance creation and subsequent steps of the engineering process.
Due to their relevance for the security engineering process, we decided to formally
analyze them. Thus, we mapped them to First Order Logic following our previous work
[
        <xref ref-type="bibr" rid="ref13 ref14 ref21">13,14,21</xref>
        ] and then used off-the-shelf tools to run the analysis. We run Z3 [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and
CVC4 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] as SMT solvers in the first place but they did not help us with the
consistency checking. Then, we employed CVC4 as a finite model finder, which returnedsat
in less than 30 seconds and automatically provided a CSM valid structural instance.
Instances so obtained are manually enhanced with security knowledge later on to serve
as inputs of the engineering process of secure cloud applications. Still, their generation
can reduce the time and effort, reinforcing its supportive and practical side.
Organization. In section 2 we outline related work. In section 3 we introduce the CSM,
its OCL constraints and its intended use. In section 4 we summarize our previous
mapping from OCL to first order logic and illustrate how CSM rules are mapped. In section
5 we report on the CVC4-based validation and instance generation. In section 6 we
illustrate how instances can be enhanced to drive subsequent steps of the engineering
process. Finally, in Section 7 we present conclusions and directions for future work.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Related work</title>
      <p>
        In the software engineering arena there are a number of ready-to-use tools supporting
OCL. Possibly the best starting point to get introduced to a variety of them is the OCL
Portal.4 Most of the tools that it contains (∼ 11) are OCL parsers or evaluators. Also,
there are 3 static verification tools, one code generator and one OCL transformation
tool. For this related work, we focus in the OCL automatic verification or validation
tools that could help us as alternative or complementary formal analysis means to the
ones that we have already applied to CSM helped by Z3 [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and CVC4 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. 5
      </p>
      <p>
        Recently published, the systematic review [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] deeply reports on 18 research lines
on static verification of UML-like structural diagrams. Taking these research results as
the starting point, we decided to focus here only on those for which the tool associated
is ready to download or use from a website and supports automatic analysis for a
significant subset of OCL. We consider these criteria as essential criteria for analysis tools
to be actually of use in real development processes.
      </p>
      <p>
        Alternative tools to CVC4 for our goal could be, in principle, the ones reported next.
UMLtoCSP [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and EMFtoCSP [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] both provide bounded automatic verification of
UML (resp. EMF) models annotated with OCL constraints. The users must limit the
search space by explicitly indicating the number of objects in each class, the number
of links of each association and the possible values of each attribute. When the tool
cannot find a satisfying instance within the specified search space, this does not mean
that the property does not hold, because it can still hold for instances outside that search
4 http://www-st.inf.tu-dresden.de/oclportal, last visited in July 2014.
5 We note that the use of these tools was eased by the output of our tool [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] that maps OCL to
FOL being SMT-LIB [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] standard.
space (and the user may try to verify the property with wider intervals). In the same
vein, the tool UML2Alloy [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] performs bounded verification in relational logic. Also,
the extension of USE tool with relational logic for satisfiability checking [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ]. From
this tool we much appreciate as an usability advantage the facility of graphical display
of the instances found as object diagrams. Finally, similar analysis can be performed
using propositional logic [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], but we could not find the BV-SAT available from a web
page, although it is reported as an automatic tool in [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Yet, there is a major advantage
in our approach thanks to our mapping [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], the use we make of SMT solvers supports
the OCL 4-valued logic, which is not supported by none of the tools described before.
      </p>
      <p>
        Although they do not perform fully automatic analysis, we consider complementary
tools interactive theorem provers like, e.g. HOL-OCL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] or the Key tool [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. The fact
that they are not fully automatic impact their use that requires too high mathematical
background, precluding them from standard software development practice. As a final
remark, we note that HOL-OCL supports the 4-valued logic of OCL.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3 The Core Security Metamodel</title>
      <p>In this section we explain the Core Security Metamodel (CSM) which allows the
description of the security related knowledge that needs to be considered in the
development of secure cloud applications. Reflecting the complexity of the security field, the
CSM is a composition of 6 sub-models that address different security expertise
subareas. Thus, CSM instantiation is facilitated by these groups of related elements which
are displayed in the metamodel with different colors, as shown in Figure 1.6 Next we
describe these sub-models, also to understand how they fit together.</p>
      <p>Requirement sub-model (green): it is used to qualify security and certification
requirements by means of security valuators, mechanisms and certified services.
Property sub-model (yellow): it is used to describe abstract security properties involved
in a security requirement, specifying its attributes and values.</p>
      <p>Domain sub-model (brown): it is used to describe the domain or context of the CSM
instance, identifying the assets to be protected.</p>
      <p>Solution sub-model (pink): it is used to show how the security requirements will be
achieved by means of solutions and security mechanisms.</p>
      <p>Assurance sub-model (blue): it is used to specify the assurance profile and the
certification-related elements that would fulfill the certification requirements.
Service Level Agreement sub-model (light blue): it is used to specify SLA agreements
that may affect the security properties.</p>
      <p>
        The CUMULUS engineering process aims not only at supporting experts to express
their expertise into a model, but also to orchestrate an automated sorting and processing
of that information to make it accessible and useful for non security experts. The
effectiveness of this approach heavily relies on the OCL validation system which supports
three goals in the CSM instantiation activity:
6 CSM has been already proved its use for real applications to integrate security mechanisms
in high risk environments [
        <xref ref-type="bibr" rid="ref22 ref23">23,22</xref>
        ], but using a different security engineering process in the
context of the SecFutur Project (http://www.secfutur.eu).
0..1
«Metaclass»
CP_RM_Domain_Sec_Requirement 1..*
      </p>
      <p>implies
«Metaclass»</p>
      <p>CP_DM_Domain
+creator : String
+authorDomain : String
+description : String
1..* defined into 10....*1</p>
      <p>«Metaclass»</p>
      <p>CP_PM_Property
+description : String
1..* ++cabosnttreaxctt:CSattreinggory : String
1. Perform an active validation of the modeling process. This validation raises a
warning if the instance does not conform to the metamodel. It also highlights the pieces
of information that are missing or wrong. This validation helps experts to avoid
wrong specifications that would impact the run time of the system.
2. Check that required information is present. It validates whether a valid CSM
instance lacks information that is needed by the engineering activities. E.g., transitive
association between specific components, empty attributes, etc..
3. Guide experts during the creation of the CSM instance. They are guided towards
the next piece of information that is needed and its goal in the engineering process.</p>
      <p>
        Therefore the list of OCL constraints is expected to be consistent and reactive
enough to support constant interaction with it. Our rules drive an incremental validation
system that is gradually triggered within the MagicDraw modelling framework [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
OCL Constraints. The OCL validation package is composed of 33 rules. Out of these,
27 are structural constraints restraining metamodel associations. Next, we introduce
those OCL constraints that do not deal directly with multiplicities.
1. A domain instance must exist and be unique
      </p>
      <p>inv: CP_DM_Domain.allInstances()-&gt;size() = 1
2. A certification requirement needs to be associated with a service assurance profile.
context: CP_RM_Certification_Requirement inv:
(not self.URI.oclIsUndefined()) implies
self.service_assurance_profile-&gt;notEmpty()
3. A certification requirement must be linked directly and through a security pattern
to a security requirement and a property
context: CP_PM_Property inv: self.certification_requirement-&gt;notEmpty()
implies self.certification_requirement.sec_pattern.sec_requirement
-&gt;intersection(self.sec_requirement)-&gt;notEmpty()
4. A certification requirement should be directly linked to a property and a security
pattern for that property
context: CP_RM_Certification_Requirement inv:
self.property-&gt;intersection(self.sec_pattern.property)-&gt;notEmpty()
5. An asset stereotype is set up over an asset element that must be considered by an
application security requirement of that asset stereotype domain
context: CP_DM_Asset_Stereotype inv: (not
self.asset_element.oclIsUndefined()) implies
self.domain_sec_requirement.application_sec_requirement.</p>
      <p>asset_element-&gt;includes(self.asset_element)</p>
      <sec id="sec-3-1">
        <title>6. A security pattern must display a security solution</title>
        <p>context: CP_SM_Sec_Pattern inv: (not self.URI.oclIsUndefined())
implies (not self.sec_solution.oclIsUndefined())
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Using OCL2FOL to map CSM into First Order Logic</title>
      <p>
        In this section, we first recall our mapping from metamodels and OCL constraints to
FOL [
        <xref ref-type="bibr" rid="ref11 ref13 ref14">13,14,11</xref>
        ]. Then, we map the most illustrative constraints introduced in section 3.
– Type-predicates: Metamodels’ classes are mapped to unary boolean functions. E.g.,
the class CP_SM_Sec_Solution is mapped to CPSMSecSolution : Int → Bool;
– There are two predicates isNull : Int → Bool and isInvalid : Int → Bool, which
return true to represent the values null or invalid (resp.);
– Objects variables are mapped to integer variables, e.g, an object variable cl
of type CP_SM_Sec_Solution is mapped to an integer variable cl, such that
CPSMSecSolution(cl) holds;
– Attribute-functions: Attributes are mapped to integer functions, e.g., the attribute id
of the class CP_AM_Certificate is mapped to a function CPAMCid : Int → Int.7
– Association-predicates: Association-ends are mapped, according to their
multiplicity, either to predicates or functions. E.g., the association realizedby between
CP_AM_Service_Assurance_Profile and CP_RM_Certification_Requirement
is mapped into CPAMSAPrealizedby : Int × Int → Bool.
– For each pair of different classes, e.g. CP_SM_Sec_Solution and
CP_DM_Sec_Mechanism (that are not sub-classes of any other class), the predicates
CPSMSecSolution and CPDMSecMechanism must be disjoint, i.e: ∀(x) ¬(CPSMSecSolution(x)
∧ CPDMSecMechanism(x)). Similar formulas are included for all type-predicates.
– Also, we map inheritance relations. E.g., in Figure 1, there is an inheritance
relation from the parent class CP_RM_Sec_Requirement to the children classes
CP_RM_Application _Sec_Requirement and CP_RM_Do main_Sec_Requirement.
7 For the sake of simplicity, we do not consider attributes with type object, neither multivalued
attributes. Also, boolean attributes are always mapped into an integer attribute.
We map this relation as follows: ∀(x)(CPRMApp− SecReq(x) ⇒ CPRMSecReq(x))
and ∀(x)(CPRMDomainSecReq(x) ⇒ CPRMSecReq(x)).
      </p>
      <p>
        Since, CP_RM_SecRequirement is an abstract superclass, then the following
assertion are included: ∀(x) ¬(CPRMAppSecReq(x) ∧ CPRMDomainSecReq(x)) and
∀(x)(CPRMSecReq(x) ⇒ (CPRMAppSecReq(x) ∨ CPRMDomainSecReq(x))).
– OCL Boolean-expressions are translated to formulas, which essentially mirror
the logical structure of the OCL expressions, e.g., for the operations or, and,
implies, not, notEmpty, includes, oclIsUndefined, forAll, exists, =,
6=; e.g., CP_PM_Pro- perty.allInstances()-&gt;notEmpty() is mapped into:
∃(x)(CPPMProperty(x)).
– OCL Integer-expressions are basically copied, e.g. +, −, ∗. Currently, we only
cover simple operations (i.e., = and &lt;&gt;) over OCL String-expressions.
– OCL Collection-expressions are translated to fresh predicates that augment the
signature of the specification. Their meaning is defined by additional formulas also
generated by the mapping. E.g., select, collect, intersection, etc..
Next we show the mapping of the CSM constraints numbered 2 and 4 in section 3. 8
Their mapping well represents the one required for the other constraints. Note that, for
the constraint 4 two new fresh predicates are created: Collect1 and Intersection1.
[
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
CP_RM_Certification_Requirement.allInstances()-&gt;forAll(c|not(c.URI.oclIsUndefined()) implies (not s.service_assurance_profile-&gt;notEmpty()))
∀(x)(CPRMCertificationRequirement(x) ∧ ¬(isNull(CPRMCRurl(x)) ∨ isInvalid(x))
⇒ ∃(y)(CPAMServiceAssuranceProfile(y) ∧ CPRMCRrealizedby(y, x)))
[
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
CP_RM_Certification_Requirement.allInstances()-&gt;forAll(c|c.property-&gt;intersection(c.sec_pattern-&gt;collect(p|p.property))-&gt;notEmpty())
∀(x)(CPRMCertificationRequirement(x) ⇒ ∃(y)(Intersection1(x, y)))
∀(x, y)(Intersection1(x, y) ⇔ (CPPMPensuredBy(y, x) ∧ Collect1(x, y)))
∀(x, y)(Collect1(x, y) ⇔ ∃(z)(CPSMSecPattern(z)
      </p>
      <p>∧ CPSMSPcertification(z, x) ∧ CPPMPprovidedBy(y, z)))
5</p>
    </sec>
    <sec id="sec-5">
      <title>Core Security metamodel validation and instance generation</title>
      <p>
        In this section we explain the analysis that we perform on the OCL constrained CSM
metamodel once it is translated to FOL.9 We first tried to check whether the OCL
constraints imposed on the CSM were or not unsatisfiable (and generate an example in the
latter case) by feeding them to the SMT solvers Z3 [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and CVC4 [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. However,
after more than 3 hours running, they did not return any result, and we decided to stop
them. We know that this lack of result from Z3 and CVC4 is due to the fact that
current techniques for dealing with quantified formulas in SMT are generally incomplete.
In particular, they usually have problems to prove the unsatisfiability of a formula with
8 We want to note that our mapping is not yet complete but it does cover a sufficiently significant
subset of the OCL language.
9 Translation available at http://www.software.imdea.org/~dania/tools/csm.html.
universal quantifiers (our specification is plenty of them)1.0 Then, we decided to employ
CVC4 as a finite model finder on our specification to check its satisfiability because the
input required by it is the same input for the SMT solvers. CVC4 performed a bounded
checking and succeeded by returning sat and automatically producing finite instances
that conform to the OCL constrained CSM. Let us note that to work with the finite
model finder CVC4, since the output of our tool [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] is SMT-LIB, we only needed to
change in our mapping the sorts Int by a finite sort U. CVC4 run less than 30 seconds
to answer SAT and return a simple CSM instance.
      </p>
      <p>Then, we included additional OCL constraints to require a defined URI for all
instances of CP_SM_Sec_Pattern, to contain a minimum of two CP_RM_Attack
instances, and at least one instance of each of the following classes: CP_RM_Attack_Type,
CP_RM_Certification_Requirement, CP_SM_Sec_Solution and
CP_SM_Sec_Mechanism. They ensure that generated instances contain at least a minimum amount
of information that makes them meaningful for a security expert. Then, we run CVC4
again with these additional constraints, and after less than 1 minute, the instance that
we depict in Figure 2 was returned. The instances so obtained with CVC4 match
structurally those obtained following the security engineering process and would allow to
skip some of its steps (provided that we could automatically tailor the instances
obtained by CVC4 to serve as inputs for the modeling framework). As we show next,
these instances can be enhanced with knowledge (semantics) from the security domain
so as they can serve as input for subsequent steps of the security engineering process.</p>
    </sec>
    <sec id="sec-6">
      <title>6 Security enhanced CSM instances</title>
      <p>
        As we already mentioned, the CSM is part of an assisted methodology, supported by the
CUMULUS modelling tool [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], that has been initially conceived to take advantage of
10 More specifically, in this case the problem is introduced by how we map certain types of
association ends into FOL. If we do not include their translation, the SMT solvers terminate,
but the instances they return are not always valid instances.
description = "Al output operations to send
and store data in cloud servers should avoid
the exposure of private patient information"
requirements into certification requirements and links to the solutions and mechanisms
able to assure local system architectures and their interaction with cloud platforms [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ].
      </p>
      <p>
        For example, the rule [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] in section 3 requires a unique domain instance. Experts
dealing with security knowledge in the EHealth domain in cloud environments may
describe a model for non security experts so as to improve a health care process (we follow
to classify the DSM content adequately. Once a valid domain instance has been
created, the validation system triggers those rules that are not yet satisfied so as the model
has to be extended to fulfill them. In our example, the framework requests at least one
Property and one Asset_Stereotype instance to be linked with the Domain,
stemming from the CSM multiplicities and the constraint descriptions. Our DSM is extended
with private data as an asset stereotype to represent all the elements containing private
patient data and the security property Data Confidentiality (that would ensure that
information is accessible only to authorized users). This modus operandi is repeated until
      </p>
      <sec id="sec-6-1">
        <title>DSM fully conforms structurally to the CSM and its OCL constraints. For the sake of space, we do not describe here in full the DSM creation process. But we further describe the DSM instance in Fig. 3. It contains as security requirements</title>
        <p>EHealth data protection and Secure cloud storage communications, both associated
to the threat Data Disclosure. In addition, we have created an additional asset patient
record, potential attacks as Cracking or Man in the middle and, finally, a common
attacker type Malicious User. Probably, the most important part of a DSM is the selection
of security patterns and certification requirements. The issue to be solved is described
in the pattern, in our example, means to locally enforce data protection with remote
certification to securely enable data transmission . How it should be guaranteed is specified
by the certification requirement, in our example,the usage of certified services for
confidentiality and in compliance with data access level 3 or above . Both plain descriptions
have consequences in the security engineering process because they limit the solutions
to be deployed for cloud applications. Recalling subsection 3, the last constraint
requires that for a security pattern and a solution to be linked, the URI attribute of the
pattern must be defined. This constraint demands intervention of the security expert
since they search and select from existing repositories, through an API provided by the
framework, a suitable pattern that also links a target solution, e.g., Data protection in
Storage and a security mechanism, e.g., AES. As a result of the modelling process,
security experts provide a complete artifact ready to fulfill security requirements addressing
both the local mechanisms and the remote certification requirements.</p>
        <p>Finally, we remark that both instances shown in Figures 2 and 3 resp., are
structurally identical. Thus, the engineering process receive a shortcut from the use of
automatic finite model finders that ease the path and reduce the time required to build
instances since they can automatically generate them. Then, instances can be enhanced
with security domain specific knowledge and trigger subsequent engineering activities.
7</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>Conclusions and Future Work</title>
      <p>
        In this paper we have introduced a security metamodel (CSM) that is constrained by 33
OCL rules that drive the engineering of secure cloud applications. We formally analyzed
this metamodel, that is both complex and large, and its constraints, to gain confidence on
their consistency and adequacy for the engineering process. We used our previous work,
OCL2FOL [
        <xref ref-type="bibr" rid="ref13 ref14 ref21">13,14,21</xref>
        ] to automatically map the metamodel and its constraints to first
order logic. Then, we employed successfully a finite model finder, CVC4, that returns
‘sat’ for the resulting specification. We also illustrated how the instances automatically
generated by CVC4 conform to the CSM and its constraints, and are enhanced with
domain security knowledge to get ready to trigger the remaining engineering activities.
The automated approach generates an instance that matches one obtained following the
engineering process. Based on these results we can say that our formal analysis besides
providing higher assurance of the adequacy of the CSM and its rules, also reduces the
time and effort required from the security experts in the initial stage of the CUMULUS
engineering process. Particularly, since the automatic valid instances generation. Yet,
we will need to implement a converter from the CVC4 instances to a valid model input
format for MagicDraw to automate the process based on instance generation.
Acknowledgement. This research was partially supported by the 7th EU Framework
Programme project CUMULUS (Certification infrastructure for multi-layer cloud
services) grant no. 318580 and PARIS (Privacy Preserving Infrastructure for Surveillance)
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>CUMULUS</given-names>
            <surname>Project</surname>
          </string-name>
          . http://cumulus-project.
          <source>eu/.</source>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <issue>D4</issue>
          .
          <article-title>2: Tools supporting CUMULUS-aware engineering process v1</article-title>
          . http:// cumulus-project.eu/index.php/public-deliverables.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>MagicDraw</given-names>
            <surname>Modelling</surname>
          </string-name>
          <article-title>Tool</article-title>
          . http://www.nomagic.com/products/magicdraw.html.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. PARIS Project. http://www.paris-project.
          <source>org/.</source>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>K.</given-names>
            <surname>Anastasakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bordbar</surname>
          </string-name>
          , G. Georg,
          <string-name>
            <surname>and I.Ray.</surname>
          </string-name>
          <article-title>UML2Alloy: A Challenging Model Transformation</article-title>
          .
          <source>In MoDELS</source>
          <year>2007</year>
          , volume
          <volume>4735</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2007</year>
          . Tool available at http://www.cs.bham.ac.uk/~bxb/UML2Alloy/download.php, last access:
          <year>June 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>M.</given-names>
            <surname>Arjona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Harjani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Muñoz</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Maña</surname>
          </string-name>
          . An Engineering Process to Address
          <source>Security Challenges in Cloud Computing, 3rd ASE International Conference on Cyber Security</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>C.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C. L.</given-names>
            <surname>Conway</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Deters</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hadarean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Jovanovic</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>King</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Reynolds</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          .
          <source>CVC4</source>
          . pages
          <fpage>171</fpage>
          -
          <lpage>177</lpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>C.</given-names>
            <surname>Barrett</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Stump</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Tinelli</surname>
          </string-name>
          .
          <article-title>The SMT-LIB Standard: Version 2.0</article-title>
          .
          <source>In Proc. of the 8th International Workshop on Satisfiability Modulo Theories</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>B.</given-names>
            <surname>Beckert</surname>
          </string-name>
          , U. Keller, and
          <string-name>
            <given-names>P. H.</given-names>
            <surname>Schmitt</surname>
          </string-name>
          .
          <article-title>Translating OCL into First-order Predicate Logic</article-title>
          . In
          <source>In Proc. of VERIFY Workshop at Federated Logic Conferences (FLoC)</source>
          ,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>A. D. Brucker</surname>
            and
            <given-names>B.</given-names>
          </string-name>
          <string-name>
            <surname>Wolff</surname>
          </string-name>
          .
          <article-title>HOL-OCL: A Formal Proof Environment for UML/OCL</article-title>
          . In
          <source>FASE</source>
          <year>2008</year>
          , volume
          <volume>4961</volume>
          <source>of LNCS</source>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>F.</given-names>
            <surname>Büttner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Egea</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <article-title>On Verifying ATL Transformations Using 'off-the-shelf' SMT Solvers</article-title>
          . In MoDELS, volume
          <volume>7590</volume>
          <source>of LNCS</source>
          , pages
          <fpage>432</fpage>
          -
          <lpage>448</lpage>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>J. Cabot</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Clarisó</surname>
            , and
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Riera</surname>
          </string-name>
          .
          <article-title>UMLtoCSP: a tool for the formal verification of UML/OCL models using constraint programming</article-title>
          .
          <source>In ASE 2007, Proc. ACM</source>
          ,
          <year>2007</year>
          . Tool available at http:/gres.uoc.edu/UMLtoCSP/.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>M. Clavel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Egea</surname>
          </string-name>
          , and M. A. García de Dios.
          <article-title>Checking Unsatisfiability for OCL Constraints</article-title>
          .
          <source>Electronic Communications of the EASST</source>
          ,
          <volume>24</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>13</lpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>C.</given-names>
            <surname>Dania</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Clavel</surname>
          </string-name>
          . OCL2FOL+
          <article-title>: Coping with Undefinedness</article-title>
          .
          <source>InProc. of the MODELS 2013 OCL Workshop</source>
          , volume
          <volume>1092</volume>
          <source>of CEUR Workshop Proceedings</source>
          , pages
          <fpage>53</fpage>
          -
          <lpage>62</lpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. L. Mendonça de Moura and
          <string-name>
            <surname>N. Bjørner.</surname>
          </string-name>
          <article-title>Z3: An Efficient SMT Solver</article-title>
          . In C. R. Ramakrishnan and J. Rehof, editors,
          <source>TACAS</source>
          , volume
          <volume>4963</volume>
          <source>of LNCS</source>
          , pages
          <fpage>337</fpage>
          -
          <lpage>340</lpage>
          . Springer,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>A</article-title>
          .
          <string-name>
            <surname>González</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Büttner</surname>
          </string-name>
          , and Jordi Cabot.
          <article-title>EMFtoCSP: A Tool for the Lightweight Verification of EMF Models</article-title>
          . In FormSERA, pages
          <fpage>44</fpage>
          -
          <lpage>50</lpage>
          ,
          <year>2012</year>
          . Tool at https://code.google. com/a/eclipselabs.org/p/emftocsp/.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>C. A.</given-names>
            <surname>González</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <article-title>Formal verification of static software models in MDE: A systematic review</article-title>
          .
          <source>Information &amp; Software Technology</source>
          ,
          <volume>56</volume>
          (
          <issue>8</issue>
          ):
          <fpage>821</fpage>
          -
          <lpage>838</lpage>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>R.</given-names>
            <surname>Harjani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Arjona</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Muñoz</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Maña</surname>
          </string-name>
          .
          <article-title>Towards an Engineering Process for Certified Multilayer Cloud Services</article-title>
          , Layered Assurance Workshop. ASAC.
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>M. Kuhlmann</surname>
            , L. Hamann, and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Gogolla</surname>
          </string-name>
          .
          <article-title>Extensive Validation of OCL Models by Integrating SAT Solving into USE</article-title>
          .
          <source>In TOOLS</source>
          <year>2011</year>
          , volume
          <volume>6705</volume>
          <source>of LNCS</source>
          , pages
          <fpage>290</fpage>
          -
          <lpage>306</lpage>
          . Springer,
          <year>2011</year>
          . Tool available at http://sourceforge.net/projects/useocl/.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>M.Soeken</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Wille</surname>
            , and
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Drechsler</surname>
          </string-name>
          .
          <article-title>Encoding OCL Data Types for SAT-Based Verification of UML/OCL Models</article-title>
          .
          <source>In TAP</source>
          , volume
          <volume>6706</volume>
          <source>of LNCS</source>
          , pages
          <fpage>152</fpage>
          -
          <lpage>170</lpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21. OCL2FOL Project,
          <year>2012</year>
          . http://www.actiongui.org,
          <source>see OCL2FOL and OCL2FOL+.</source>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>J. F. Ruiz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Maña</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Arjona</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Paatero</surname>
          </string-name>
          .
          <article-title>Emergency Systems Modelling using a Security Engineering Process</article-title>
          .
          <source>In Proc. of 3rd Int. Conf. SIMULTECH. SciTePress</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>J.F. Ruiz</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Rein</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Arjona</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Maña</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Monsifrot</surname>
            , and
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Morvan</surname>
          </string-name>
          .
          <article-title>Security Engineering and Modelling of Set-Top Boxes</article-title>
          .
          <source>In Proc. of ASE/IEEE BioMedCom</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>