23.02.2015 Views

D.3.3 ALGORITHMS FOR INCREMENTAL ... - SecureChange

D.3.3 ALGORITHMS FOR INCREMENTAL ... - SecureChange

D.3.3 ALGORITHMS FOR INCREMENTAL ... - SecureChange

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

protected from harm. Since in CORAS, an asset is something of value that requires<br />

protection, we map a service protected by a soft goal in SI* to an asset in CORAS.<br />

ServiceToTreatment. A service which is related to another service mapped to an asset<br />

in a CORAS model, can be mapped to a treatment if the service reduces the likelihood<br />

or the consequence of a threat scenario damaging the asset.<br />

TreatmentToTask. A treatment is a security control that should reduce the likelihood<br />

or consequence of a threat to an asset which results in a loss of confidentiality, availability,<br />

or integrity. Thus, if a treatment is implemented, the confidentiality, integrity or<br />

availability of an asset is protected. A treatment in CORAS can therefore be mapped<br />

to a task which fulfills the soft goal which specifies the security property that has to be<br />

preserved for an asset.<br />

We have formalized the mappings in the VIATRA2 graph transformation language<br />

[29]. The VIATRA2 framework supports model-to-model transformations: a model<br />

transformation is a program that receives as input a source model that conforms to its<br />

source metamodel and produces a target model conforming to a target metamodel. The<br />

VIATRA2 transformation language consists of several constructs: graph patterns are<br />

declarative queries, that specifies constraints and conditions on models; graph transformations<br />

rules (GT) provide a declarative, high-level rule- and pattern-based manipulation<br />

language for models; abstract state machine (ASM) rules can be used to assemble<br />

patterns and graph transformation rules to specify complex model transformations. A<br />

graph transformation rule can be specified by using a left-hand side – LHS (or precondition)<br />

pattern determining the applicability of the rule, and a right-hand side –<br />

RHS (postcondition) pattern which specifies how the model should be changed at the<br />

matches of the LHS.<br />

The mappings ServiceToAsset, ServiceToTreatment, and TreatmentToTask are<br />

formalized by the graph transformation rules newAsset, potentialTreatment, and transformTreatment<br />

respectively. The rules are executed on a model space which includes<br />

a) SI* conceptual model, b) CORAS conceptual model, c) a SI* model, d) a CORAS<br />

model. The model space includes also the traceability conceptual model which specifies<br />

the structure of the traceability matrix and the traceability model storing the mappings<br />

between the elements of the CORAS and the SI* models. The traceability links are<br />

automatically created by the graph transformation rules.<br />

The newAsset rule has three parameters: SecGoal, the soft goal that has to be<br />

mapped, CModel, the CORAS model, and TraceModel, the traceability model that<br />

stores the mappings between the elements of the SI* and CORAS model. The precondition<br />

calls two patterns: secgoalProtectsAsset which checks that SecGoal is<br />

a soft goal that is linked to a service by the ”protects” relation; the negative condition<br />

pattern mappedElement which checks that soft goal SecGoal has not already been<br />

mapped to an asset in the CORAS model CModel. The postcondtion creates an asset<br />

Asset in the CORAS model CModel. The action of the rule names the asset Asset<br />

created in CModel as SecGoal and creates a traceability link in the traceability model<br />

who has as source of the mapping SecGoal and as target Asset.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!