Previous column

Next article


Usability of Security Specification Approaches for UML Design: A Survey1

By C. Talhi, D. Mouheb, V. Lima, M. Debbabi and L. Wang, Computer Security Laboratory, Concordia Institute for Information Systems Engineering, Concordia University
M. Pourzandi, Software Research, Ericsson Canada, Town of Mount-Royal, Canada

space REFEREED
ARTICLE


PDF Icon
PDF Version

Abstract

Since it is the de facto language for software specification and design, UML is the target language used by almost all state of the art contributions handling security at specification and design level. However, these contributions differ in the covered security requirements, specification approaches, verification tools, etc. This paper investigates the main approaches adopted for specifying and enforcing security at UML design and surveys the related state of the art. The main contribution of this paper is a discussion of these approaches from usability viewpoint. A set of criteria has been defined and used in this usability discussion. The discussed UML approaches are stereotypes and tagged values, OCL, and behavior diagrams. Extending the UML meta-language or creating new meta-languages for security specification are also covered by this study.


1 INTRODUCTION

Security is a challenging task in software engineering. Indeed, security has been widely investigated by the software engineering community during the last decades. This covers specifying security requirements and enforcing them on software. Software security enforcement is generally conducted as an afterthought phase of the software development life cycle. However, this practice is no longer acceptable for such an important aspect, especially with the increasing complexity and pervasiveness of today's software systems. Since it is the de facto language for software specification and design, the Unified Modeling Language (UML) [12] is the target language used by almost all state of the art contributions handling security at specification and design level.

Many contributions have been presented in the state of the art for specifying and enforcing security at UML design [1, 2, 4, 5, 6, 7, 8, 14, 16, 17, 18, 19, 20, 22, 23, 27, 28, 30]. While sharing almost the same objectives, these contributions adopt different approaches for security requirements specification and enforcement. Since there is no consensus nor standard on how security should be specified for UML design, non-security experts designers are feeling lost when it comes to deal with security aspects of their design. In fact they are looking for precise answers to many questions where the main important ones are: (1) What are the main approaches that can be adopted for security specification? (2) How each approach can be used for security specification? (3) For a given security requirement, what are the possible specification approaches and if possible what is the best one (if any)? and (4) What are the limitations of each approach in terms of tool support and complexity? Unfortunately, as far as we know, the state of the art is not providing such precise answers. In fact we did not find any contribution covering all these aspects in the same study providing UML designers with the expected answers.

This paper tries to answer the aforementioned questions by (1) surveying the state of the art related to UML security specification and identifying the main adopted approaches, (2) explaining how each approach can be used for security specification, and (3) defining a set of usability criteria and using them to discuss the usability of each approach. The set of usability criteria was inspired from the state of the art of software usability and software security requirements specification. From studying the state of the art, we identified three main approaches that have been followed for UML security specification. The first approach is based on using the language artifacts provided by standard UML: Stereotypes, the Object Constraint Language (OCL) [11], and behavior diagrams. In the second approach, the UML meta-language is augmented by new language constructs allowing the specification of security requirements. The third approach consists in defining a new specification language to specify security requirements on UML diagrams. These approaches will be presented and their usability will be discussed in this paper. In the sequel, first, we briefly present the main classification of security requirements covered by the study. Then we discuss the related work.

Security Requirements

For reasons of space and time, in the following we do not discuss individual security requirement. Instead, we classify security requirements and discuss how different UML approaches can represent them. Numerous classifications can be found in the literature. The main classifications considered in this paper are the following:

Static vs Dynamic Enforceability Classification: Some security requirements are classified as statically-enforceable, which means there exists some algorithm that, when applied on a static representation of the application (design, source code, abstract representation, etc.), can decide in a finite period of time whether the application satisfies or not the security requirement [26]. Examples of these security requirements are secrecy, integrity, authenticity, etc. When such an algorithm cannot be defined, a security mechanism should be designed to be deployed as a controller of the application. It will be executed in parallel to the later and intervene whenever the application is about to violate the enforced requirement [26]. Such security requirements are classified as dynamically-enforceable. To this security requirements class belong authorization, non-repudiation, and privacy.

Logic Classification: Different logics have been used to formally specify security requirements. Usually, a security policy is specified using some logic and then a verification tool (a model checker or a theorem prover) is used to check whether the design satisfies or not that security policy. Thus we limit the scope of logic classes studied in this paper to the main logics used by verification tools. These logic classes are mainly the Linear Temporal Logic and the Branching Temporal Logic[21]. Linear Temporal Logic includes languages such as LTL, PLTL, etc. Security properties that belong to this logic such as secrecy, integrity, authentication, fair exchange, nonrepudiation, etc, are expressed based on a linear sequence of states that represent the system execution events. Branching Temporal Logic such as CTL, CTL* is based on a branching notion of time, which means the system is viewed as a tree of states representing all the possible execution paths rather than a linear sequence of states. To this security requirements class belong secrecy, integrity, and authenticity.

Related Work

To the best of our knowledge, this is the first work studying the usability of the main approaches adopted for specifying and enforcing security requirements at UML design. We found in the literature few contributions that discuss and evaluate the UML language, UML stereotypes and OCL. However, none of them addresses the usability of these approaches.

Gogolla and Henderson-Sellers [9] provide an analysis of UML stereotypes and propose some suggestions to improve the definition and use of stereotypes within the UML meta-model. They use OCL to define precise stereotypes, and suggest that the UML meta-model should be adjusted and tool support should be provided to deal with stereotypes.

Schleicher and Westfechtel [25] discuss and evaluate the UML meta-language. A classification of stereotypes and a comparison of different approaches of extending the UML is also given. Finally, the paper proposes various ways to extend the UML meta-model for better readability, expressiveness, and verifiability of the extensions.

Regarding OCL, [13] discusses a number of issues related to the syntax and semantics of OCL such as navigation, state models, object creation, etc. In addition, the paper proposes some solutions for clarification and extension of the OCL.

The remainder of this paper is organized as follows. Section 2 surveys the state of the art related to specifying security requirements for UML design and classifies the existing approaches. Section 3 starts by defining a set of usability criteria and then uses them to discuss the usability of each of the security specification approaches presented in Section 2. Finally, Section 4 concludes the paper with some summarizing observations.

2 SPECIFYING SECURITY REQUIREMENTS FOR UML DESIGN

In this section we investigate security specification for UML design. We start with surveying the state of the art. According to our survey, there are three main approaches that are usually adopted: using UML artifacts, extending the UML metalanguage, and creating a new metalanguage. Thus, a subsection is dedicated to present each approach and show how it can be used for security specification.

State of the Art Survey

In this section, we present a survey on the main state of the art contributions that are related to specifying and designing security for UML.

The UMLSec approach by Jürjens is among the first efforts in extending UML for the development of security-critical systems [14]. It provides a UML profile where general security requirements such as secrecy, integrity, fair exchange, etc are encapsulated using UML stereotypes and tagged values. It also defines a tailored formal semantics to formally evaluate UML diagrams against weaknesses. In order to analyze security specifications, the behaviour of a potential adversary that can attack various parts of a system is formally modeled. However, UMLSec lacks in expressiveness since security properties are predefined using UML stereotypes and tagged values. This framework cannot be used to specify user-defined properties.

Pavlich-Mariscal et al. propose an aspect-oriented approach to model access control policies [20]. They augment UML with new diagrams to represent Role-Based Access Control (RBAC), Mandatory Access Control (MAC) and Discretionary Access Control (DAC) schemes. that are separated from the main design. MAC, DAC and RBAC are decomposed into security features which represent specific elements of an access control policy, e.g. permissions, MAC security properties, delegation rules, etc. This is the only approach that combines MAC, DAC and RBAC into a set of security diagrams separated from the main design. Modeling security as aspects reduces the scattering of access control definitions in the entire application. It is also possible to make changes to the design without impacting the entire security of the application. Moreover, Pavlich et al. supports an AOP [15] code generation to enforce access control policies at execution time. However, this approach is limited to access control policies.

Zisman proposes a framework to support the design and verification of secure peer-to-peer applications [30]. The design models and security requirements are specified using UMLSec. The modeling of abuse cases to represent possible attack scenarios and potential threats helps designers to identify the security properties to be verified in the system. In addition, this approach artifacts expressing properties to be verified by defining a graphical template language. It also allows verification of the models against the properties and visualization of the verification results.

Lodderstedt et al. (SecureUML) propose an approach to model RBAC policies for model-driven systems [17]. It also provides additional support to specify authorization constraints related to the state of the system. In contrast to other approaches, SecureUML proposes a general schema for building systems by combining design modeling languages with a security modeling language; it does not fix one particular design modeling language. However, it only focuses on specifying RBAC model, and does not support secure code generation.

The approach of Doan et al. incorporates RBAC, MAC and lifetimes into UML for time-sensitive application design [6]. The main focus of this approach is that the process of designing and integrating security in a software application captures not only the current design state, but allows tracking the entire design evolution process via the creation and maintenance of a set of design instances over time. The design tracking allows a software/security engineer to recover to an earlier design version that satisfies specific security constraints.

Montangero et al. (For-LySa, DEGAS project) present two UML profiles to model authentication protocols [18]: the Static For-LySa profile which describes how the authentication protocol concepts (Server, Principals, Keys, Messages, etc.) can be modeled using UML class diagrams, and the For-LySa profile which models the dynamic aspects of the protocol in sequence diagrams, as well as the information needed to analyze the protocol. In order to validate a protocol, the approach For-LySa defines a specification language with semantics to write pre/post conditions and invariant constraints. This approach focuses only on the modeling of authentication protocols.

The approach of Ray et al. uses parameterized UML diagrams to model RBAC and MAC frameworks and then compose them manually to produce a hybrid access control policy [23]. It is the first approach that attempts to combine RBAC and MAC. However, it focuses only on how to model RBAC and MAC systems in UML without considering how this approach can be used to design a secure software system. In another effort [27], Ray et al. integrate RBAC and MAC policies into an application using an aspect-oriented approach to separate access control features from other application features.

Alghathbar and Wijesekera (AuthUML) propose a framework to incorporate access control policies into use case diagrams only [2]. The aim of AuthUML is analyzing (not necessarily modeling) access control policies during the early stages of the software development life cycle before proceeding to the design modeling to ensure consistent, conflict-free and complete requirements.

Popp et al. propose an extension to the conventional process of developing use case oriented processes [22]. In addition to modeling security properties with UML, this approach provides a method to incorporate these security aspects into a use case oriented development process.

Painchaud et al. (SOCLe project) provide a framework that integrates security into the design of software applications [19]. It also includes verification of UML specifications and a graphical user interface tool that allows the designer to visualize the verification results and to inspecte the diagrams' execution graph. But in this approach, security policies are simply specified using the Object Constraint Language (OCL) constraints.

Ledru et al. (EDEMOI project) aim at modeling and analyzing airport security [16]. The security properties are first extracted from natural language standards and documents, and integrated into UML diagrams as stereotypes in a UML profile. The UML specifications are then translated into formal models for verification purposes. This approach is not general enough to be used for software development. Epstein and Sandhu's work is one of the first approaches that investigate the use of UML to model RBAC policies [7]. However, it is limited to only one specific RBAC model which is the RBAC Framework for Network Enterprises (FNE). The FNE model contains seven abstract layers that are divided in two different groups. This approach allows to present each of the FNE model's layers using UML notation by defining new stereotypes. This approach can assist the role engineering process, however, it does not include subtle properties of RBAC such as separation of duty constraints and it does not provide a method for deriving roles. In addition, there is no formal semantics for verifying UML models.

Ahn and Shin propose a technique to describe the RBAC model with three views: static view, functional view and dynamic view using the UML diagrams [1]. This approach focuses only on the way that UML elements can be used to model RBAC policies rather than taking a larger view of examining secure software design. It does not provide a systematic modeling approach that can be used by developers to create applications with RBAC models.

Brose et al. extend UML models to support the automatic generation of access control policies for CORBA-based systems [4]. They specify both permissions and prohibitions on accessing system's objects since the analysis phase in use case diagrams. The UML design is used to generate an access control policy in VPL (View Policy Language) that is deployed together with the CORBA application.

Vivas et al. propose an approach for the development of business process-driven systems where security requirements are integrated into the business model [28]. Security requirements are first stated at the high level of abstraction within a functional representation of the system given by UML diagrams using tagged values. Next, the UML specification is translated into XMI representation that allows automatic processing of the specification. Finally, the resulting specification is translated into a formal notation for consistency checking, verification, validation and simulation.

Fernandez provides a methodology to build secure systems using patterns [8]. The main idea of this approach is that security principles should be applied through the use of security patterns at every stage of the software development process (requirements, analysis, design and implementation stages). At the end of each stage, audits are performed to verify that the security policies are being followed.

Chan and Kwok [5] propose a design methodology for e-commerce systems to specify design details for three processes: Risk, Engineering, and Assurance, which represent the main areas of security engineering in the systems security engineering capability maturity model (SSE-CMM) on which this methodology is based. A security design patter is used to specify each of those processes.

Table 1: The Use of Security Specification Approaches in the State of the Art.

 

From the state of the art, three main UML artifacts can be used for security specification: (1) stereotypes and tagged values, (2) OCL, and (3) behavior diagrams. In addition, two other approaches can be used: (1) extending the UML metalanguage or (2) creating a new metalanguage. Table 1 summarizes the use of these approaches to specify security requirements by the contributions presented above.

In the following, we present each of those approaches and explain how it can be used for security specification. The activity diagram of Figure 1 will be used throughout the following subsections to show how security requirements can be specified for UML design. The diagram specifies the behavior related to the admission of patients in a medical institution. This example is a simplified version of the business process used in [24]. The activity diagram consists of three main partitions: (1) Patient who starts the activity by filling out an admission request, (2) Administration area where insurance and cost information are collected, and (3) Medical area which is responsible for admission tests, exams, medical evaluations and sending the medical results to the patient.

Security Specification Using UML Artifacts

In this section we show how stereotypes and tagged values, the OCL, and behavior diagrams can be used for security specification and design.

Stereotypes and Tagged Values

Description: Stereotypes are provided as a mechanism for extending the UML meta-language. Therefore, a stereotype is considered as a user-defined meta-element. Its structure matches the structure of an existing UML meta-element which is referred to as "base class". In that sense, a stereotype represents a subclass (subtype) of the base class. It has the same form but with a different intent. A stereotype can have tagged values used to define the additional information needed to specify the new stereotype intent. Besides, constraints can be defined on both the base class attributes as well as the tagged values. Code generators and other tools, such as those used for verification and validation, reserve special treatment to stereotypes.

Figure 1: An Activity Diagram: Admission of Patients in a Medical Institution.

Use for Security Specification: Security requirements are specified by attaching stereotypes along with their associated tagged values to selected elements of the design (e.g., subsystems, classes, etc.). Thus a "security" profile should be created by some security expert for the specification of these stereotypes. The compiler used to parse UML diagram is then modified such that it can read and interpret the stereotypes annotating the design. This interpretation consists in generating a formal representation of the security requirement corresponding to the security annotation. This security requirement is generated on the basis of the intent of the security expert while taking into consideration the specificities of each design. In addition, a formal semantics is associated with the design. Then, the formal security requirement together with the formal semantics are provided as inputs to a verification tool (usually a model checker or a theorem prover). The result of verifying the security requirement on the design is translated into some representation that any non-security expert developer can understand. Some stereotypes are parameterized over the adversary type. These stereotypes are used to specify security properties that need to be verified against a specification of an attacker (adversary). Faire exchange, secrecy, and authenticity are examples of these properties. The adversary type specifies the adversary's computation capabilities and initial knowledge.

Figure 2 shows how stereotypes can be used to specify security requirements on the UML design of Figure 1. The used stereotypes are Privacy, Auditing, Access Control, Critical, Integrity, and NonRepud. For example, the stereotype Privacy is attached to the Patient partition to specify that unauthorized disclosure of sensitive information about the patient is not permitted.

Figure 2: An Example of Specifying Security Using Stereotypes.

Object Constraint Language (OCL)

Description: The OCL is a formal language used to express constraints over UML diagrams. These constraints mainly specify those conditions that must be satisfied by the system being modeled. The OCL is mainly used to specify applicationspecific requirements for UML models. In addition it is used to specify invariants of the UML meta-language. More precisely, the main purposes for which OCL can be used are the followings: (1) To specify invariants on classes and types in the meta-language, (2) to specify type invariant for Stereotypes, (3) to describe pre and post conditions on operations and methods, and (4) to describe guards [11].

Use for Security Specification: Since OCL is a language for constraints specification, it is natural to be used for security specification. According to the main usability purposes listed above, OCL has been used for security specification following three main directions. First, for the security profiles extending UML for security specification, OCL is used to define constraints on elements described by stereotypes and tagged values. Second, for those stereotypes used for the specification of access control properties, OCL can be used by the designer to define access control constraints (pre conditions and authorization guards). Third, some OCL extensions

[29] allow the specification of temporal logic formulas and thus are used to specify security requirements in temporal logics, e.g., LTL, CTL, etc. Figure 2 shows how OCL can be used to specify a constraint on the action "Fill admission request". This constraint restricts the execution of this action to the working hours. This will protect the system from malicious use during nights. The condition start by specifying its context, i.e., the method on which it is applied, which is the method FillAdmissionRequest of the class Admission. Then the constraint specifies the pre condition to be satisfied before executing the controlled method.

Behavior Diagrams

Description: Behavior diagrams are UML diagrams used to depict the behavior features of the system under design. These include activity, state machine, and use case diagrams as well as four interaction diagrams. The later are those diagrams used to specify interactions between objects inside the system. Interaction diagrams include communication, interaction overview, sequence, and timing diagrams.

Use for Security Specification: Behavior diagrams can be used for security specification in two ways. The first one is to specify the behavior that `MUST' be observed by the system and the second one is to specify the behavior that `MUST NOT' be observed by the system. The later has been investigated by some recent contributions [30] where the used diagrams are called "Abuse cases diagrams". Figure 3 shows an example of an activity diagram specifying the behavior that must be followed by the system after filling the cost information until sending the medical evaluation to the patient. This behavior is required for enforcing faire exchange between patients and the medical institution. Enforcing this behavior inside the original design of Figure 1 results to the new design presented in Figure 4. This represents one possible scenario of using behavior diagrams to enforce security requirements. A non-security expert designer will use this "safe design" and integrate it inside its original design. Another possible scenario is when the behavior diagram, specifying a security requirement, is used to verify, through model checking or theorem proving, whether the design satisfies or not the security requirement. In this case, the diagram is translated into a (1) transition system (finite state machine or automata, etc.) or (2) a logic formula, both expressed in the input language of the target verification tool. Indeed, many contributions establishing the correspondence between transition systems and temporal logics can be found in language theory [3]. A third possible scenario is the use of behavior diagram to specify security aspects. Indeed, aspects [15] are usually defined by specifying a behavior that is inserted before or after some execution point. Thus this behavior can easily specified by a behavioral diagram. However, the weaving of aspects and the original design can be performed on the level of design by weaving UML diagrams or postponed to the implementation phase. In the later case, the weaving is performed on selected files of the source code and the actual aspects expressed in existing aspect languages, e.g., AspectJ, and resulting from the refinement of their initial behavior diagrams.

Figure 3: Fair Exchange Requirement Inside Medical Applications.

Security Specification by Extending the UML Meta-language

This section shows how the UML metalanguage can be extended to specify security.

Description: In this approach, the UML meta-language is directly extended by a meta-language specification language as MOF (the Meta-Object Facility) [10]. The MOF defines a simple meta-metamodel, and the associated semantics, allowing the description of metamodels in various domains including the domain of object design and analysis. Extending the UML meta-language (meta-model) is usually needed when extension mechanisms provided by UML (mainly stereotypes) are not appropriate for the target extension or when the resulting complexity is not tolerated.

Use for Security Specification: The two reasons stated above are the same motivating the extension of UML meta-language for security specification. Although, stereotypes allow the specification of a wide range of security requirements, they are not appropriate for specifying structured security policies: Those that are usually specified using well structured specification languages. Access control properties and security aspects are the main requirements for which it is better to have dedicated meta-elements than using standard UML meta-elements annotated by stereotypes and tagged values.

Security Specification by Creating New Meta-languages

This section shows how new metalanguages can be proposed for specifying security.

Description: In this approach, a new meta-language is defined using a metalanguage specification language as MOF. The motivations of crating a new meta-language are the same as those of extending the UML metalanguage. The vocabulary
used by the meta-elements defined by the new meta-language have domainspecific intuition and are much more precise than the one used for UML meta-elements. Thus, the interfaces needed for manipulating the new meta-elements are too simpler compared to the those required for UML design.

Figure 4: Enforcing the Security Requirement of Figure 3 in the Activity Diagram of Figure 1.

Use for Security Specification: The motivations of creating new meta-languages for security specification are exactly the same of extending the UML meta-language for security specification. Indeed, the approach is used for the same objectives and allows the specification of almost the same security requirements.

3 USABILITY DISCUSSION

This section discusses the usability of each security specification approach on the light of our survey of the state of the art. First we define a set of usability criteria that will be used later to discuss the different security specification presented in the previous section. For the first approach, we discussed separately the usability of each of the three UML artifacts used for security specification. The results of the usability discussion of all the approaches are summarized in Table 2.

Usability Criteria

Inspired from the state of the art of software usability and software security requirements specification, we defined the following usability criteria:

  • Expressiveness: Refers to the ability of specifying security requirements. This is a discriminatory criterion since it leads to the rejection of any approach that fails to specify the desired security requirements. Regarding this criterion, any specification approach will be given two ranks. The first rank is related to the covered security requirements and can take one of the following values:
    • Static_Reqs: if it allows the specification of the majority of statically enforceable security requirements.
    • Dynamic_Reqs: if it allows the specification of the majority of dynamically enforceable security requirements.
    • All_Reqs: if it allows the specification of almost all the security requirements.
  • The second rank is related to the logic classification of the security requirements that can be specified. It can take one of the following values:
    • LTL_Logic if security requirements belonging to LTL logic can be specified by the evaluated approach.
    • CTL_Logic if security requirements belonging to CTL logic can be speci ed by the evaluated approach.
    • All_logics if the specifiable security requirements can belong to any logic class.
  • Tool Support: Refers to the availability of tools for specification and verification of security requirements, which is of paramount importance. Tools are mainly used to (1) artifacts the specification and (2) compile and store the specification in a useful intermediate representation (for verification and/or code generation). Tool support will be ranked by using one of the following three values: (1) Standard when tools are provided by any standard UML modeling framework, (2) HighlyPortable when they are not supported by all standard UML frameworks but can be easily ported (e.g., plugged in), or (3) WeaklyPortable when the tools are almost unportable.
  • Verifiability: Refers to the efforts needed to verify the design against the security requirements. These cover (1) associating a semantics to the UML design, (2) formally specifying security requirements, (3) actually verifying the design against the security requirements, and (4) interpreting and presenting the verification results. Verifiability will be ranked using one of the following three values: (1) Comp_Verif for complex verifiability, (2) Good_Verif for verifiability with acceptable efforts, and (3) Ease_Verif for ease verifiability.
  • Complexity: Refers to the amount of security-relevant information added to a UML design and its impact on its readability. Complexity will be evaluated using one of the following three values: (1) High_Comp when the added security information seriously deteriorates the readability of the design, (2) Acceptable_Comp when the it is tolerated, or (3) Low_Comp when it is negligible compared to the original design complexity.

Security Specification Using UML Artifacts

Stereotypes and Tagged Values:

In the following we discuss the usability of stereotypes and tagged values for security specification.

  • Expressiveness: UML artifacts provided by standard UML mainly stereotypes and tagged values are the most used by the majority of the contributions. Among these contributions, we can cite: UMLSec [14] by Jürjens which provides a UML profile and an open-source tool for specifying security requirements such as secrecy, integrity, authenticity, fair exchange, role-based access control, secure communication links, and secure information flow. Stereotypes are used by Pavlich-Mariscal et al. [20] and Basin et al. [17] for specifying access control policies and by Montangero et al. [18] for modeling authentication protocols. These contributions show that various security requirements have been specified using stereotypes and tagged values.
  • Tool Support: Has an excellent tool support since any standard UML modeling framework supports profile specification.
  • Verifiability: A lot of work is done in background to generate a formal semantics for the UML design, formally specify the security requirement, verify the property against the design, and show the verification result to the end user (UML designer). The later usually consists in displaying counter examples and providing advices to improve the design and fix the vulnerabilities.
  • Complexity: The complexity of the information related to stereotypes and tagged values added for security specification, depends on the number of stereotypes and tagged values attached to each UML element. For example, if different security stereotypes are associated with the same UML element then it will be complex for the user to select all these stereotypes and edit the associated tagged values. In this case, the security profile designer has the responsibility of compacting as possible the architecture of his profile design.

OCL

The OCL is also used by many of the surveyed contributions to express formal constraints in the specification of security properties. This is due to the fact that OCL is part of the UML standard, and by its formal nature, it allows precise specification of security constraints. The approach of Painchaud et al. (SOCLe project) [19] is based on temporal logic extension of OCL for security specification. OCL has been also used by [17] to specify additional authorization constraints related to the state of the system. As we mentioned above, it is natural to use OCL for security specification. However, it is important here to distinguish between using OCL as a support for some security specification artifact as stereotypes and behavior diagrams, and using it as security specification language. In the former case, the use of OCL improves the usability of any specification artifact by allowing the definition of constraints over the UML design entities. Accordingly, we focused our usability evaluation on the later case. In the following we discuss the usability of OCL for security specification.

  • Expressiveness: As a security specification language, the standard OCL [11] is limited to specifying pre and post conditions and invariants that should be satisfied by the application behavior. However, some OCL extensions allow the specification of temporal logic properties.
  • Tool Support: Standard OCL benefits from the support of different tools provided by standard UML modeling frameworks. However, the usability of OCL extensions is limited by the availability of tools supporting the specification and the compilation of security requirements.
  • Verifiability: Once compiled and analyzed by the tool, security requirements specified using OCL extensions are systematically provided as input formulas for verification tools (model checkers and/or theorem provers). However, as for stereotypes, a lot of work is done in background to generate a formal semantics for the UML design, verify the properties against the design, and show the verification result to the end user (UML designer).
  • Complexity: The complexity introduced by this approach depends on the number of OCL expressions added to specify security properties and wether they are crosscutting the application functionalities design or separated from them.
Behavior Diagrams

We notice the lack of using behavioral diagrams for security specification among the surveyed approaches. In fact, only the approach of Zisman et al. [30] that proposes the modeling of abuse cases to represent possible attack scenarios and potential threats to the system security. In the following we discuss the usability of behavior diagrams for security specification. We distinguish in our discussion between the use of behavior diagrams to specify security requirements for the sake of verification and their use to specify security aspects for the sake of security enforcement or hardening.

  • Expressiveness: Is limited to specify those security requirements that are naturally expressible via transition systems. These include mainly attack scenarios and dynamically enforceable security requirements. As for security aspects specification, behavior diagrams are very useful for specifying advices behavior. However, stereotypes should be defined to allow the specification of patterns needed for the definition of pointcuts.
  • Tool Support: Behavior diagrams benefit from a wide tool support. However, tool support for this approach depends also on the tool support of stereotypes.
  • Verifiability: When used for security requirements specification, behavior diagrams are translated to transition systems or logical formulas in order to be verified on the system design. While the former translation is almost systematic, the later is limited to those diagrams satisfying some structural constraints (e.g., determinism) and constrained by the availability of translation algorithms in language and logic theory. As for stereotypes and OCL, a lot of work is done in background to generate a formal semantics for the UML design, verify the properties against the design, and show the verification result to the end user (UML designer). When used for security aspects specification, as for the first approach, a lot of work is done in background to (1) identify diagram entities (e.g., methods/actions) matching the specified patterns and (2) weaving diagrams specifying advices and those specifying the system behavior.
  • Complexity: Relatively acceptable since the behavior diagrams specifying security requirements are separated from those specifying the system behavior and are easily distinguishable from them. The complexity of security aspects specification is comparable to that of security requirements specification.

Extending the UML Metalanguage

Only few contributions [20] have investigated the extension of the UML metalanguage for security specification. This is due to the fact that this kind of modification requires a high expertise and knowledge of the UML meta-language and its objectives. Indeed, the extension may require the modification of the whole metalanguage which is too complex. In the following we discuss the usability of extending the UML metalanguage for security specification.

  • Expressiveness: Comparable to that of stereotypes.
  • Tool Support: The extension is heavyweight so that "may require one to extend the CASE-tool itself, in particular the storage components, i.e., the repository, and the visualization components" [17]. This impacts negatively the portability of any extension since any UML modeling framework is heavily modified to allow the use of the new meta-elements and their interpretation.
  • Verifiability: A lot of work is done in background to generate a formal semantics for the UML design, verify the properties against the design, and show the verification result to the end user. However, if the extension targets some low-level policy specification language or AOP language, then the effort spent in background is limited to parsing the specification and translating it to the target language.
  • Complexity: The complexity is comparable to that of using behavior diagrams.

Creating a New Metalanguage

As for the previous approach, only few contributions [17] have investigated the creation of new meta-languages for security specification. In the following we discuss the usability of creating a new metalanguage for security specification.

  • Expressiveness: Comparable to the expressiveness of extending the UML metalanguage.
  • Tool Support: Better than that of extending the UML metalanguage and comparable to that of stereotypes. In addition, the compiler needed to parse the specification can be easily plugged in to the UML modeling framework.
  • Verifiability: Better than that of the verifiability of extending the UML metalanguage. Indeed, the security specification is exclusively based on the new meta-elements and thus is easier to parse and translate.
  • Complexity: Comparable to the complexity of extending the UML metalanguage.

4 CONCLUSION

This paper investigates the main approaches adopted for specifying and enforcing security requirements at UML design and surveys the related state of the art. The main contribution of this paper is a discussion of these approaches from usability viewpoint. We distinguish between those approaches that are based on the artifacts provided by the standard UML specification and those that require explicit extension of the UML meta-language. This mainly allow one to understand when it is better to use UML artifacts and when it is useful to extend the its meta-language. We defined a set of criteria that we used in our usability discussion. In the following we provides the conclusions of our discussion:

  • Stereotypes are the most usable for security specification since they are the extension mechanism provided by UML. They allow the specification of almost all security requirements that are usually specified and enforced on software. In addition, they are easy to learn and use and benefit from a high portability. However, it is difficult to associate a formal semantics to stereotypes which can affect the verifiability of the specified security requirements.
  • Using OCL for security specification is not a good approach since the security requirements that can be expressed using OCL are limited to pre and post conditions and invariants. Although OCL can be extended to allow the specification of security requirements in temporal logics, it remains more usable as a complementary capability for stereotypes. We strongly believe that temporal logic should be used on background and not exposed to UML designers.
  • UML behavior diagrams seem to be extremely usable for security requirements specification and aspect design. However, few efforts have been spent in the literature to investigate their use.
  • Extending the UML meta-language is a too constraining approach, though it has its motivation. Creating a new meta-language should be then an appropriate alternative.
  • The efforts needed for verifying the design against a security requirement is often very important regardless of the adopted approach.
Footnotes

1The research leading to this work was possible due to funding and scientific collaboration with Software Research, Ericsson Canada.


REFERENCES

[1] G-J. Ahn and M. E. Shin. Role-based authorization constraints specification using object constraint language. In WETICE '01: Proceedings of the 10th IEEE International Workshops on Enabling Technologies, pages 157-162, Washington, DC, USA, 2001. IEEE Computer Society.

[2] K. Alghathbar and D. Wijeskera. Consistent and complete access control policies in use cases. In UML 2003 - The Unified Modeling Language. Model Languages and Applications. 6th International Conference, San Francisco, CA, USA, October 2003, Proceedings, pages 373-387, October 2003.

[3] A. Bogdanov, S. J. Garland, and N. A. Lynch7. Mechanical translation of i/o automaton specifications into first-order logic. In proceedings of the 22nd IFIP WG 6.1 International Conference Houston, pages 364-368, 2002.

[4] G. Brose, M. Koch, and K. P. Lohr. Integrating access control design into the software development process. In Proceedings of the sixth biennial world conference on the Integrated Design and Process Technology, IDPT, Pasadena, CA, June 2002.

[5] M-T. Chan and L-F. Kwok. Integrating security design into the software development process for e-commerce systems. Information Management & Computer Security, 9(3):112-122, 2001.

[6] T. Doan, L. D. Michel, and S. A. Demurjian. A formal framework for secure design and constraint checking in UML. In Proceedings of the International Symposium on Secure Software Engineering, ISSSE'06, Washington, DC, Mars 2006.

[7] P. Epstein and R. S. Sandhu. Towards a UML based approach to role engineering. In Proceedings of the 4th ACM Workshop on Role-Based Access Control, pages 135-143. ACM Press, 1999.

[8] E. B. Fernández. A methodology for secure software design. In Software Engineering Research and Practice, pages 130-136, 2004.

[9] M. Gogolla and B. Henderson-Sellers. Analysis of uml stereotypes within the uml metamodel. In UML '02: Proceedings of the 5th International Conference on The Unified Modeling Language, pages 84-99, London, UK, 2002.

[10] Object Management Group. Meta object facility (mof) specification, version 2.0, 2006.

[11] Object Management Group. Uml 2.0 ocl specification, version 2.0, 2006.

[12] Object Management Group. Unified modeling language: Superstructure, version 2.1.2, 2007.

[13] A. Hamie, F. Civello, J. Howse, S. Kent, and R. Mitchell. Reflections on the Object Constraint Language. In The Unified Modeling Language, UML'98 - Beyond the Notation. First International Workshop, Mulhouse, France, pages 137-145, 1998.

[14] J. Jürjens. Secure Systems Development with UML. Springer Verlag, 2004.

[15] G. Kiczales, J. Lamping, A. Menhdhekar, C. Maeda, C. Lopes, J-M. Loingtier, and J. Irwin. Aspect-oriented programming. In Proceedings European Conference on Object-Oriented Programming, volume 1241, pages 220-242. Springer-Verlag, Berlin, Heidelberg, and New York, 1997.

[16] Y. Ledru, R. Laleau, M. Lemoine, S. Vignes, D. Bert, V. Donzeau-Gouge, C. Dubois, and F. Peureux. An attempt to combine UML and formal methods to model airport security. In Forum of the 18th International Conference on Advanced Information Systems Engineering, pages 47-50, Luxembourg, 2006.

[17] T. Lodderstedt, D. Basin, and J. Doser. Secureuml: A uml-based modeling language for model-driven security. In Proceedings of the International Conference on the Unified Modeling Language, UML'2002, pages 426-441, 2002.

[18] C. Montangero, M. Buchholtz, L. Perrone, and S. Semprini. For-lysa: UML for authentication analysis. In Global Computing: IST/FET International Workshop, GC'2004, pages 93-106, 2005.

[19] F. Painchaud, D. Azambre, M. Bergeron, J. Mullins, and R. M. Oarga. Socle: Integrated design of software applications and security. In Proceedings of the 10th International Command and Control Research and Technology Symposium, ICCRTS'2005, McLean, VA, USA, 2005.

[20] J. Pavlich-Mariscal, L. Michel, and S. Demurjian. Enhancing UML to model custom security aspects. In Proceedings of the 11th International Workshop on Aspect-Oriented Modeling, 2007.

[21] A. Pnueli. The temporal logic of programs. In Proceedings of the 18th IEEE Symposium on Foundations of Computer Science, pages 46-57, 1977.

[22] G. Popp, J. Jürjens, G. Wimmel, and R. Breu. Security-critical system development with extended use cases. In Proceedings of the 10th Asia-Pacific Software Engineering Conference, APSEC, pages 478-487, 2003.

[23] I. Ray, N. Li, D. K. Kim, and R. France. Using parameterized UML to specify and compose access control models. In Proceedings of the 6th IFIP TC-11 WG 11.5 Working Confrence on Integrity and Internal Control in Information Systems, IICIS'03, Lausanne, Switzerland, November 2003.

[24] A. Rodriguez, E. Fernandez-Medina, and M. Piattini. Security requirement with a uml 2.0 profile. In ARES '06: Proceedings of the First International Conference on Availability, Reliability and Security, pages 670-677, Washington, DC, USA, 2006. IEEE Computer Society.

[25] A. Schleicher and B. Westfechtel. Beyond stereotyping: Metamodeling approaches for the uml. In HICSS, 2001.

[26] F. B. Schneider. Enforceable security policies. ACM Transactions on Information and Systems Security, 3(1):30-50, 2000.

[27] E. Song, R. Reddy, R. France, I. Ray, G. Georg, and R. Alexander. Verifiable composition of access control and application features. In Proceedings of the 10th ACM Symposium on Access Control Models and Technologies, SAC-MAT'05, pages 120-129. ACM, 2005.

[28] J. L. Vivas, J. A. Montenegro, and J. Lopez. Towards a business process-driven framework for security engineering with the UML. In Proceedings of the 6th Information Security Conference, ISC'03, pages 381-395, Bristol, U.K., 2003.

[29] P. Ziemann and M. Gogolla. An extension of ocl with temporal logic. pages 53-62, September 2002.

[30] A. Zisman. A static verification framework for secure peer-to-peer applications. In Second International Conference on Internet and Web Applications and Services, ICIW'07, page 8, 2007.

About the authors



 

Chamseddine Talhi is a postdoctoral fellow at the \Concordia Institute for Information Systems Engineering" at Concordia University. He holds a Ph.D. degree in computer science from Laval University, Quebec Canada, a M.Sc. degree in computer science from University of Constantine Algeria. He published several research papers in international journals and conferences on computer security, cyber forensics, mobile and embedded platforms, Java technology security and acceleration, design and analysis, and speci cation and veri cation of safety-critical systems. In the past, he served as postdoctoral fellow at \Ecole polytechnique", Montreal, Canada and as a research assistant at \Ecole Nationale Superieure des Telecommunications de Bretagne", Rennes, France. He can be reached at talhi@ciise.concordia.ca.



  Djedjiga Mouheb is pursuing a Ph.D. thesis at the Computer Security Laboratory (CSL) of the Concordia Institute for Information Systems Engineering (CIISE), Concordia University, Montreal, Canada. She is participating in a research project on the model-based engineering of secure software and systems. Her main research areas are: Model-Driven Architecture and Aspect-Oriented Software Development for Software Security Hardening. She can be reached at d_mouheb@ciise.concordia.ca


  Vitor Lima is studying toward his Master Degree at the Computer Security Laboratory from Concordia University, Montreal, Canada. He also has Bachelor Degree in Electrical Engineering from Federal University of Pernambuco, Brazil. His Research interests are formal methods for security, UML and Aspect-Oriented Modeling. He can be reached at v_nune@ciise.concordia.ca


  Mourad Debbabi is a Full Professor and the Director of the Concordia Institute for Information Systems Engineering at Concordia University. He is also a Concordia Research Chair Tier I in Information Systems Security. He holds Ph.D. and M.Sc. degrees in computer science from Paris-XI Orsay University, France. He published several research papers in international journals and conferences on computer security, cyber forensics, formal semantics, mobile and embedded platforms, Java technology security and acceleration, cryptographic protocol speci cation, design and analysis, malicious code detection, programming languages, type theory and speci cation and veri cation of safety-critical systems. In the past, he served as Senior Scientist at the Panasonic Information and Network Technologies Laboratory, Princeton, New Jersey, USA; Associate Professor at the Computer Science Department of Laval University, Quebec, Canada; Senior Scientist at General Electric Corporate Research Center, New York, USA; Research Associate at the Computer Science Department of Stanford University, California, USA; and Permanent Researcher at the Bull Corporate Research Center, Paris, France. He can be reached at debbabi@ciise.concordia.ca


  Lingyu Wang is an Assistant Professor of the Concordia Institute for Information Systems Engineering (CIISE) at Concordia University, Canada. He received his Ph.D. degree in Information Technology from George Mason University, USA. His current research interests include database security, data privacy, vulnerability analysis, intrusion detection, and security metrics. His research has been supported in part by the Discovery Grants from the Natural Sciences and Engineering Research Council of Canada (NSERC) and by Fonds de recherche sur la nature et les technologies (FQRNT). He can be reached at wang@ciise.concordia.ca
 

Makan Pourzandi is a researcher of Ericsson Inc in Software Research Department, Canada. He received his Ph.D. degree in Computer Science from University of Lyon, France and his M.Sc. Degree in Computer Science from Ecole Normale Superieure de Lyon, France. He published several research papers in international journals and conferences on computer security, cluster computing, and distributed security services. His current research interests include security, software engineeting, cluster computing, and component-based methods for secure software development. He can be reached at makan.pourzandi@ericsson.com


C. Talhi, D. Mouheb, V. Lima, M. Debbabi, L. Wang, and M. Pourzandi: "Usability of Security Specification Approaches for UML Design: A Survey", in Journal of Object Technology, vol. 8, no. 6, September-October 2009, pp. 103 - 122 http://www.jot.fm/issues/issue_2009_09/article1/


Previous column

Next article