inition and refinement of our models, we developed
the Security4UML Tool. The tool provides the devel-
oper with three functionalities:
- Reasoning: Security4UML Tool provides several
reasoning services that can be used to detect anoma-
lies and inconsistencies in the model, and to report
them to the user. In this way the user can modify
the model according to the analysis’ results, in order
to remove inconsistencies. These reasoning services
are implemented by using Semantic Web technolo-
gies, i.e., the Sec-Model is represented as an OWL
ontology and the reasoning services are expressed
by means of Semantic Web tools, e.g., OWL-DL,
SWRL and SPARQL. The Minimization service can
be used to detect redundancies in the Sec-Model, i.e.,
the model may contain authorizations which are im-
plied by other authorizations and thus may be re-
moved. The Incompatibilityservice detects authoriza-
tions that are incompatible, e.g., the Sec-Model may
contain conflicting authorizations. The SoD service
can be used to detect authorizations breaking Separa-
tion of Duty constraints expressed in the Sec-Model.
A detailed description of these services can be found
in (Arrigoni Neri et al., 2012; Arrigoni Neri et al.,
2013).
- Enrichment: Security4UML Tool helps the devel-
oper in the definition of the ESec-Model. The plat-
form independent Sec-Model is enriched and trans-
formed in order to obtain the platform specific model.
Security4UML Tool provides also reasoning capabil-
ities that can be used to check the consistency of an
instance of the ESec-Model.
- Code Generation: Security4UML Tool manages
the process that leads to the concrete implementation
and deployment of the security configuration. The
tool supports the definition of several code generation
modules that generate the concrete configuration for a
particular element of the infrastructure, e.g., a partic-
ular version of a DBMS. Each module takes as input
the ESec-Model, extracts the needed information and
generates part of the concrete configuration.
We implemented Security4UML Tool on the basis
of the Eclipse framework, because Eclipse is today
one of the de-facto standard in terms of IDEs. Sev-
eral model-driven engineering tools are based upon
Eclipse, e.g., TopCased or IBM Rational Rose. Secu-
rity4UML Tool can be integrated in one of such tools,
and this fact lets us providing developers with reason-
ing, enrichment and code generation capabilities. The
extension point mechanism allows an easy integration
of new reasoning services, enrichment modules and
code generation modules. A detailed description of
part of the tool can be found in (Mutti et al., 2011;
Guarnieri et al., 2012).
5 RELATED WORK
The last decade has seen a growing interest in model-
driven techniques concerning security aspects (Basin
et al., 2011), and several solutions have been proposed
to formalize the development of secure systems.
Basin et al. have proposed SecureUML (Basin
et al., 2006), a UML profile that can be used to model
Role-Based Access Control (Sandhu, 1998) (RBAC)
infrastructures. They have proposed the application
of SecureUML in several contexts: from the defini-
tion of security aware GUIs (Basin et al., 2010) to
process oriented systems (Basin et al., 2003). They
have shown how SecureUML can be used for sup-
porting a model-drivensecurity approach that leads to
the concrete implementation of IT systems. The Se-
cureUML meta-model is primarily focused on access
control systems, and more in detail on RBAC. On the
contrary, our Security4UML profile can model several
aspects of security. It supports the definition of access
control policies, it can be used to model authentica-
tion properties, it also considers encrypted and signed
resources and protocols such as SSL.
In (Jürjens, 2003), Jürjens proposed, as a security
extension of UML, the UMLSec profile. In (Jürjens,
2005), he shows how UMLSec can be used for se-
curity analysis and formal security requirement ver-
ification. Although UMLSec supports the annotation
of UML models with security requirements, we need
a more extended meta-model, like Security4UML or
SecureUML, to facilitate a model-driven security ap-
proach.
Some works present approaches for the integra-
tion of security concepts in ADLs. In (Mouratidis
et al., 2005), Mouratidis et al. propose an ADL for
agent systems that is able to express security proper-
ties by means of protection objectives, i.e., desider-
able security properties that an agent might have.
Each agent may own several security mechanisms to
satisfy objectives. The ADL allows the definition of
security constraints that may restrict goals and capa-
bilities of agents. In (Ren and Taylor, 2005), Ren et
al. extend the existing Architecture Description Lan-
guage xADL with security concepts. They provide a
new SecureConnector which can be used to model ar-
chitectural access control. In (Oladimeji et al., 2007),
Oladimeji et al. present a UML-based ADL that can
express access control properties. On the contrary,
our work can model several aspects of security, not
only access control. Another difference is that we in-
tegrate security requirements in a well-known ADL,
i.e., C2, instead of defining a new one.
Integrating security in software architectures may
be a viable way of handling the increasing complexity
AModel-drivenApproachforSecuringSoftwareArchitectures
599