<!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>A Prototype Tool for Modeling and Analyzing Security Requirements from A Holistic Viewpoint</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Tong Li</string-name>
          <email>tong.li@disi.unitn.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Jennifer Horko</string-name>
          <email>horkoff@disi.unitn.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>John Mylopoulos</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Trento</institution>
          ,
          <addr-line>Trento</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
      </contrib-group>
      <fpage>185</fpage>
      <lpage>192</lpage>
      <abstract>
        <p>Security breaches in large socio-technical systems cost billions. Many breaches can be attributed to the piecemeal security design, leaving parts of the system vulnerable while others are over-protected. We advocate holistic security design, and have introduced techniques to support security analysis across multiple layers. This paper presents MUSER, a prototype that assists security requirements analysts dealing with security requirements from a holistic viewpoint based on a three-layer framework. Our prototype analyzes security requirements and related security mechanisms in business layer, application layer, and physical layer. The prototype captures the influences of security mechanisms, which one layer enforces on the other layers, and supports deriving holistic security solutions that tackle security concerns in all layers. We demonstrate the usage of MUSER via a smart grid scenario. Keyword: Security Requirements Goal Model Multilayer SocioTechnical System Demo Tool</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        Socio-technical systems (STSs) are organizational systems consisting of people,
business processes, software applications, and hardware components. As the
complexity of STS increases over time, a growing number of security breaches
are reported [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
      </p>
      <p>
        A common theme for many of these breaches is that security solutions are
dealt with in a piecemeal fashion, in which security analysis carried out in
one part of the system does not take into account security designs in other
parts. For example, when designing an encryption function, a smart meter
application can either implement encryption by itself or depend on an external
component implemented in a specialized chip. If the system is viewed in a
piecemeal fashion, for example, focusing only on the software issues, these two
security mechanisms deliver the same function. However, these two alternatives
have di erent influences on requirements of the physical devices, as the latter
one requires that the related hardware device should not be accessed by
nonauthorized people [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], a factor often not accounted for during physical design
of the system. As reported in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], attacks that exploiting this vulnerability have
been done by bus-snooping.
      </p>
      <p>
        In this paper, we present MUSER (MUltilayer SEcurity Requirements
analysis tool), a prototype that supports analyzing security requirements of STSs
from a holistic point of view, implementing our technique proposed in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Our
approach structures STSs into three layers, namely, business layer, application
layer, and physical layer. By carrying out analysis both inside one layer and
across layers, the approach is intended to generate holistic security solutions
for STSs with regard to stakeholder’s high-level security needs. To assist the
security analysis, our prototype provides the following features: 1) multilayer
requirements modeling, 2) hierarchical security requirements refinement, 3)
identification of critical security requirements, 4) generation of potential
security mechanisms, 5) cross-layer security influence analysis.
      </p>
      <p>In the reminder of this paper, we first describe our analysis approach in
Sec. 2, according to which we design our prototype. Next, we introduce the
architecture and functionality of our prototype in Sec. 3, and illustrate the utility
of the prototype in Sec. 4. Finally, Sec. 5 concludes the paper.
2</p>
      <p>
        Three-Layer Security Requirement Analysis Approach
Our previous work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] has proposed a goal-oriented three-layer analysis
framework, which analyzes security requirements of STSs. This approach adopts
concepts from existing well-established goal-oriented modeling languages, such as
Techne [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and i* [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. To support the three-layer framework, we specialize the
concepts Goal and Task into layer-specific concepts. For example, Task is
specialized as Business Process Activity in the business layer, while it is specialized as
Application Function in the application layer. In addition, we define Security Goal
as a special Softgoal, and assign it with formal semantics via four dimensions:
Importance, Security Attribute, Asset, and Interval. For example, a security goal
Medium Integrity[customer information, measure energy consumption] describes a
security requirement “protecting integrity of customer information during the
executing period of measure energy consumption to a medium degree”.
      </p>
      <p>Business
Goal Model
[S, K ⊢ R]
Application
Goal Model
[S, K ⊢ R]
Physical
Goal Model
[S, K ⊢ R]</p>
      <p>Analysis process</p>
      <sec id="sec-1-1">
        <title>Business layer analysis</title>
        <p>Security-Enhanced
Business Goal Model</p>
      </sec>
      <sec id="sec-1-2">
        <title>Application layer analysis</title>
        <p>Security-Enhanced
Application Goal Model</p>
      </sec>
      <sec id="sec-1-3">
        <title>Physical layer analysis</title>
      </sec>
      <sec id="sec-1-4">
        <title>Stakeholder's high-level security needs</title>
      </sec>
      <sec id="sec-1-5">
        <title>Global Security</title>
      </sec>
      <sec id="sec-1-6">
        <title>Specification</title>
        <p>Asset-based Refinement Rule
Content:
If an asset consists of sub-assets, a security goal that
concerns this asset could be refined to more detailed
ones, which focus on the sub-assets.</p>
        <p>Datalog Rule:
and_re f ined_sec_goalpIMP; SA; AS2; INT; SGq :
sec_goalpSGq; importancepIMPq; sec_attributepSAq;
assetpAS2q; intervalpINTq; part_o f pAS2; AS1q;
assetpAS1q; has_propertiespSG; IMP; SA; AS1; INTq:
Graphical Transformation Pattern:</p>
        <p>(S)
Security attribute
[asset 1, interval]
Securit(ySa)ttribute asset 1
[asset 1, intervaals]septa2rt-of paart-sosfet 3 [Saescsuertit2(yS,a)intttreibrvuatel] [Saescsuertit3(yS,a)intttreibrvuatel]
R, which are satisfied by its own specifications S, under layer-specific domain
assumptions K, i.e. S; K $ R. In particular, specifications in one layer dictate
requirements in lower layers, indicated in Fig. 1. By capturing the cross-layer
interactions and analyzing the requirements problem within each individual
layer, our approach aims at dealing with security requirements of STSs from a
holistic viewpoint. Taking stakeholder’s high-level security requirements and
layer-specific goal models as input, the approach analyzes detailed security
requirements throughout the three layers and finally produces holistic security
solutions, which tackle security issues in all three layers (Fig. 1).</p>
        <p>
          The approach includes 23 transformation rules, which guide the
corresponding security analysis tasks. Specifically, the rules support refining, simplifying
and operationalizing security goals within individual layers, as well as
transferring security concerns across layers. All of these rules have been implemented in
Datalog [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], which can be automatically inferred with corresponding inference
engines, such as DLV [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Each rule has been documented in a template,
consisting of three sections: Content, Datalog Rule and Graphical Transformation Pattern.
Table 1 shows an example regarding the asset-based refinement rule, which
refines a security goal via its asset dimension. The full list of transformation rules
is available online 1.
3
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>MUSER Prototype Tool</title>
      <p>MUSER (MUltilayer SEcurity Requirements analysis tool) is a prototype, which
is designed to support the application of the approach summarized in Sec. 2.
The prototype is a Java-based program, which is developed on the top of a
specialized and powerful diagramming application OmniGra e 2. Fig. 2 shows
the architecture of the prototype, which consists of four components: control,
view, model, and inference. We introduce them respectively as below.
Control Component controls the logic of the whole prototype and coordinates
other components to deliver inference functions to users. When receiving users’
inference requests, it imports related models from the view component,
generates a formal model specification in terms of text files, and calls the inference
component to carry out corresponding reasoning tasks. According to the
reasoning results returned by the inference component, the control component
updates related model information and reflects them on the view component.
View Component supports users with graphic modeling, as well as shows
graphical inference results to users. The main requirements for this component include:
1) support goal-oriented modeling and allow customized notations; 2) support
multilayer modeling, i.e. modeling in di erent views; 3) be connected with
inference component to support reasoning. Although there are a number of available
goal modeling tools, such as Open OME, STS-ml 3, none of them can support
1 http://goo.gl/Pd0TGw
2 http://www.omnigroup.com/omnigra e
3 http://istar.rwth-aachen.de/tiki-index.php?page=i*+Tools</p>
      <sec id="sec-2-1">
        <title>View</title>
        <p>OmniGraffle
Modeling</p>
        <p>User</p>
        <p>Model
Information
Updated</p>
        <p>Model
Reasoning
Formal Model
Specification</p>
      </sec>
      <sec id="sec-2-2">
        <title>Model</title>
      </sec>
      <sec id="sec-2-3">
        <title>Control</title>
        <p>Formal Model
Specification
Inference
Result
Inference
Request</p>
      </sec>
      <sec id="sec-2-4">
        <title>Inference</title>
        <p>Datalog</p>
        <p>Rules
DLV Inference</p>
        <p>Engine
our multilayer goal modeling and reasoning. We choose a specialized modeling
application OmniGra e as the view component of our prototype, meeting all
requirements. Particularly, this application has many useful modeling features,
such as automatic layout, outline view, and various export formats. As we have
defined a number of interfaces for the view component, through which it
interacts with the control component, the view component can be replaced by other
applications that comply with the interfaces.</p>
        <p>
          Inference Component implements the security analysis rules proposed in our
approach and automates corresponding analysis tasks. All the rules are
implemented in terms of Datalog rules and facts. Particularly, we leverage DLV
inference engine [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] to carry out inference actions. This component receives requests
from the control component, and returns inference results back afterwards.
Model Component is responsible for storing the formal models, which are
required by the inference component. We use text files for storage, which fit our
current needs. If the analysis involves very complex and large models in the
future, we will replace the text files with specialized database applications.
3.1
        </p>
        <p>Functionality
Building on the above architecture, we implement a number of functions, which
assist the security analysis tasks. As shown in Fig. 3, within one single layer,
we first refine and simplify security goals to identify concrete and critical ones.
Then, the critical security goals are operationalized into possible security
mechanisms and left to security analysts to select. After that, we transfer security
concerns downward to its lower layer and iteratively carry out all above
security analysis there. The main features of the tool are as follows:
– Security Goal Refinement: As a coarse-grained security goal is normally more
di cult to analyze and operationalize than a fine-grained one, security
analysts need to refine an abstract security goal into sub-goals. The prototype
Automatic
refinement</p>
        <p>Manual
refinement</p>
        <p>Single-Layer Security Analysis
Simplify
security
goals</p>
        <p>Operationaliz
e security
goals</p>
        <p>Select a
security
alternative
Refine security
concerns in next
layer</p>
        <p>Transfer security
concerns across
layers</p>
        <p>No Yes
Analysis reaches
bottom layer?</p>
        <p>
          Obtain Holistic
security
solutions
legend
User Task
Computeraided Task
Parallel Exclusive
Gateway Gateway
Sequence Flow
supports automatically refining a security goal via any of these three
dimensions: security attribute, asset, and interval. Particularly, it provides two ways
to automate this analysis. First, it supports a single step of refinement with
regard to a particular dimension. Secondly, the prototype could simulate
an exhaustive analysis, which explores all possible refinements for the
target security goals, to cover all related security goals. Not surprisingly, this
simulation could produce a very huge refinement trees, such as shown in
Fig. 5. Thus, this analysis has to rely on simplification analysis for filtering
non-critical security goals.
– Security Goal Simplification: When dealing with a large number of security
goals, analysts may not have enough time to go through each of them to
determine which is critical and requires further treatments. To release analysts
from scrutinizing all security goals, our prototype supports automatic
identification of critical security goals, which takes into account the applicability
and risk level of security goals. For example, if a security goal concerns data
confidentiality of energy production data during the execution of measure energy
consumption, which does not involve with the energy production data, then
this security goal is not applicable and is further identified as non-critical.
In addition, for an applicable security goal, if its risk level is low or medium,
it is identified as non-critical.
– Security Goal Operationalization: To e ectively achieve critical security goals,
our prototype assists analysts in designing security mechanisms based on
existing security patterns [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. A security pattern consists of a security
attribute and a security mechanism that is supposed to satisfy that security
attribute. When operationalizing a critical security goal, our prototype
identifies all matched security patterns with regard to security attributes and
generates corresponding security mechanisms for the critical security goal.
– Cross-Layer Analysis: To analyze security requirements from a holistic view,
the influences of security analysis results in one layer should be
propagated to layers below. This analysis takes into account designed security
mechanisms and untreated critical security goals in the upper-layer, and
generates corresponding security concerns in the lower-layer. For example,
an untreated security goal in the business layer, which concerns data
confidentiality, is refined into two sub-goals in the application layer that target
corresponding applications according to the cross-layer analysis rules [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ].
        </p>
        <p>Current Layer
Layer List</p>
        <p>Canvas</p>
        <p>Customized</p>
        <p>Stencil</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Demonstration</title>
      <p>We demonstrate the utility of our prototype by holistically analyzing the security
requirements of a smart grid example. Particularly, we focus on the real-time
pricing scenario.</p>
      <p>Real-time Pricing Scenario: To continuously provide energy to customers, the energy
provider needs to balance the load on the power grid to avoid blackouts. To this end, the
provider applies a real-time pricing strategy, which adjusts energy price according to
current load of the power grid. This strategy requires periodically collecting customer’s
energy consumption data, based on which a new price is calculated. In this scenario, the
energy provider highly relies on the integrity of the energy consumption data.</p>
      <p>
        According to the detailed analysis procedure shown in Fig. 3, we use our
prototype to analyze the security requirements for the above scenario. Our
analysis technique will apply to each layer, here we present the security analysis
within the business layer, with steps as follows:
1. Building An Initial Requirements Model: We first build the requirements model
within the business layer, including the high-level security requirements.
Fig. 4 shows the graphical modeling interface, which consists of several key
components that are highlighted in rectangles. The Layer List shows three
canvases that are intended for modeling requirements in the three layers.
A customized stencil is shown in the bottom part of Fig. 4. Elements in the
stencil are used to draw the requirements models, which is presented in the
center of the canvas. Due to space limitation Fig. 4 only shows a part of the
requirements model.
2. Refine High-Level Security Goals: Given the high-level security goal High
Integrity[customer information, Have current load info] (Fig. 4). We use the
prototype to adopt an exhaustive refinement strategy to cover all potential
security concerns introduced by this security goal. Not surprisingly, this
strategy results in a large refinement tree, which contains 72 potential
security goals, shown in Fig. 5. Limited by space, we replace the content of each
(S)
high integrity
[energy production
data, have current
load info]
security goal with its id, and only show the details of one security goal in
the upper right corner.
3. Simplify Security Goals: As the exhaustive refinement analysis generates a
large refinement tree of security goals, which are almost impossible to be
analyzed manually, we use our prototype to automatically identify critical
security goals. As highlighted by the rectangle in Fig. 5, 2 out of 72 security
goals (the filled elements) are identified as critical. Based on these critical
security goals, the prototype follows a bottom-up algorithm to calculate
the best refinement path, which refines the top-level security goal into the
critical ones with minimum steps (the filled elements above the rectangle
in Fig. 5). After this simplification analysis, our prototype can generate a
simplified security goal model, which contains only the critical security
goals and the corresponding best refinement paths.
4. Operationalize Security Goals: Facing the two critical security goals, our
prototype automatically generates four potential security mechanisms for each of
them according to the security patterns [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. Fig. 6 shows the
operationalization of one critical security goal. It is worth noting the security mechanisms
suggested by the security patterns may not fit for the security goals in
particular system settings, so further judgments from security analysts are
required. Furthermore, the prototype calculates all of the alternative security
solutions which treat all critical security goals. In our example, the prototype
totally generates 25 alternative solutions. Then the security analyst should
choose one solution among the alternatives.
5. Transfer Security Concerns: After security analysts determine specific security
solutions in the business layer, our prototype supports automatically
transferring the related security concerns to the application layer, i.e. generating
new security requirements with regard to the result of security analysis in
this layer. Fig. 7 shows an example of such transfers with regard to the
security mechanism Cryptographic control selected in the business layer. Note
that choosing di erent security solutions in the business layer will result in
di erent security requirements in the application layer.
6. Iterative Security Analysis: After transferring security concerns, we can
iteratively carry out security analysis in the application layer and the physical
layer, where our prototype automates tasks as in the business layer. Finally,
we will derive holistic security solutions by synthesizing security solutions
selected in each individual layer.
      </p>
      <p>(S)
high data integrity</p>
      <p>[energy
consumption data,
measure energy
consumption]
(S)
secure
office
help</p>
      <p>make
(S)
auditing
help</p>
      <p>(S)
access
control
make</p>
      <p>(S)
cryptograp
hic control</p>
      <p>(S)
Cryptog make
raphic
control
Application SM</p>
      <p>Layer
Application Encrypt
data</p>
      <p>(S)
high data integrity
[energy consumption</p>
      <p>data, measure
energy consumption]</p>
      <p>(S)
high Application Integrity
[SM Application, Encrypt
data]
(S)
high Application Availability
[SM Application, Encrypt</p>
      <p>Data]</p>
    </sec>
    <sec id="sec-4">
      <title>5 Summary and Future Work</title>
      <p>
        In this paper, we present MUSER, a prototype for analyzing security
requirements of STSs from a holistic viewpoint. This prototype is designed to
implement our proposed three-layer analysis approach [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], which supports security
analysis both within one layer and across layers. In the future, we plan to carry
out empirical experiments with our prototype to evaluate its usability and
performance, and make further improvements.
      </p>
      <p>Acknowledgements This work is supported by ERC advanced grant 267856,
titled “Lucretius: Foundations for Software Evolution”.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>Tony</given-names>
            <surname>Flick</surname>
          </string-name>
          and
          <string-name>
            <given-names>Justin</given-names>
            <surname>Morehouse</surname>
          </string-name>
          .
          <article-title>Securing the smart grid: next generation power grid security</article-title>
          .
          <source>Elsevier</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M</given-names>
            <surname>Carpenter</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T</given-names>
            <surname>Goodspeed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B</given-names>
            <surname>Singletary</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E</given-names>
            <surname>Skoudis</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J</given-names>
            <surname>Wright</surname>
          </string-name>
          .
          <article-title>Advanced metering infrastructure attack methodology</article-title>
          .
          <source>InGuardians white paper</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>Jennifer</given-names>
            <surname>Horko Tong Li</surname>
          </string-name>
          .
          <article-title>Dealing with security requirements for socio-technical systems: A holistic approach</article-title>
          .
          <source>In the 26th International Conference on Advanced Information Systems Engineering (CAiSE'14)</source>
          . Accepted,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>I.J.</given-names>
            <surname>Jureta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Borgida</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.A.</given-names>
            <surname>Ernst</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Mylopoulos</surname>
          </string-name>
          . Techne:
          <article-title>Towards a new generation of requirements modeling languages with goals, preferences, and inconsistency handling</article-title>
          .
          <source>In Proc. of RE'10</source>
          , pages
          <fpage>115</fpage>
          -
          <lpage>124</lpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Eric</given-names>
            <surname>Yu</surname>
          </string-name>
          .
          <article-title>Towards modelling and reasoning support for early-phase requirements engineering</article-title>
          . pages
          <fpage>226</fpage>
          -
          <lpage>235</lpage>
          . IEEE Computer Soc. Press,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>Pamela</given-names>
            <surname>Zave</surname>
          </string-name>
          and
          <string-name>
            <given-names>Michael</given-names>
            <surname>Jackson</surname>
          </string-name>
          .
          <article-title>Four dark corners of requirements engineering</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>6</volume>
          (
          <issue>1</issue>
          ):
          <fpage>1</fpage>
          -
          <lpage>30</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>Thomas</given-names>
            <surname>Eiter</surname>
          </string-name>
          , Georg Gottlob, and
          <string-name>
            <given-names>Heikki</given-names>
            <surname>Mannila</surname>
          </string-name>
          .
          <article-title>Disjunctive datalog</article-title>
          .
          <source>ACM Transactions on Database Systems (TODS)</source>
          ,
          <volume>22</volume>
          (
          <issue>3</issue>
          ):
          <fpage>364</fpage>
          -
          <lpage>418</lpage>
          ,
          <year>1997</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>Nicola</given-names>
            <surname>Leone</surname>
          </string-name>
          , Gerald Pfeifer, Wolfgang Faber, Thomas Eiter, Georg Gottlob, Simona Perri, and
          <string-name>
            <given-names>Francesco</given-names>
            <surname>Scarcello</surname>
          </string-name>
          .
          <article-title>The dlv system for knowledge representation and reasoning</article-title>
          .
          <source>ACM Transactions on Computational Logic (TOCL)</source>
          ,
          <volume>7</volume>
          (
          <issue>3</issue>
          ):
          <fpage>499</fpage>
          -
          <lpage>562</lpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Riccardo</given-names>
            <surname>Scandariato</surname>
          </string-name>
          , Koen Yskout, Thomas Heyman, and
          <string-name>
            <given-names>Wouter</given-names>
            <surname>Joosen</surname>
          </string-name>
          .
          <article-title>Architecting software with security patterns</article-title>
          .
          <source>Technical report, KU Leuven</source>
          ,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>