Anda di halaman 1dari 20

Available online at www.sciencedirect.

com

Information and Software Technology 51 (2009) 1152–1171


www.elsevier.com/locate/infsof

On the secure software development process:


CLASP, SDL and Touchpoints compared
Bart De Win *, Riccardo Scandariato, Koen Buyens, Johan Grégoire, Wouter Joosen
Department of Computer Science, DistriNet, K.U. Leuven, Celestijnenlaan 200A, 3001 Heverlee, Belgium

Available online 15 February 2008

Abstract

Development processes for software construction are common knowledge and mainstream practice in most development organiza-
tions. Unfortunately, these processes offer little support in order to meet security requirements. Over the years, research efforts have been
invested in specific methodologies and techniques for secure software engineering, yet dedicated processes have been proposed only
recently.
In this paper, three high-profile processes for the development of secure software, namely OWASP’s CLASP, Microsoft’s SDL and
McGraw’s Touchpoints, are evaluated and compared in detail. The paper identifies the commonalities, discusses the specificity of each
approach, and proposes suggestions for improvement.
Ó 2008 Elsevier B.V. All rights reserved.

Keywords: Secure software; Software process; SDL; CLASP; Touchpoints

1. Introduction Security Development Life cycle (SDL) [1], OWASP’s Com-


prehensive, Lightweight Application Security Process
The construction of secure software is still largely a mat- (CLASP) [2] and McGraw’ Touchpoints [3], as they are rec-
ter of guidelines, best practices and undocumented expert ognized as the major players in the field. Their leading role
knowledge. Current practices provide guidance for particu- is, among others, due to a number of characteristics that
lar areas such as threat modeling, risk management, or are of particular interest in the context of this study. As
secure coding. It is crucial for these to be combined into far as completeness is concerned, they all provide an exten-
an integrated and more comprehensive construction sive set of activities covering a broad spectrum of the devel-
method. Several advances have recently been made in the opment life-cycle. The processes have also undergone
definition of processes for secure software development. extensive validation. For instance, Microsoft is using
However, there has been no objective comparison of these SDL internally (e.g., for the Vista project). CLASP was
methodologies so far. Therefore, it is difficult for managers contributed to and reviewed by several leading security
and developers to understand their strengths and weak- companies of the OWASP consortium. The Touchpoints
nesses and, hence, it is hard to make an ‘informed’ decision work has been validated over time as it has been based
about which one is more appropriate for the job. on experience gained from several industrial projects. Fur-
The goal of this paper is to evaluate and compare pro- thermore, the selected processes represent a healthy mix for
cesses for secure software development. The focus is put comparison. SDL is considered to be more heavyweight
on three forefront representatives, namely Microsoft’s and rigorous, making it more suitable for large organiza-
tions. CLASP, on the other hand, is lightweight and more
*
Corresponding author. Tel.: +32 16 327855; fax: +32 16 327996.
affordable for small organizations with less strict security
E-mail address: first.last@cs.kuleuven.be (B. De Win). demands. Touchpoints is based on industrial experience

0950-5849/$ - see front matter Ó 2008 Elsevier B.V. All rights reserved.
doi:10.1016/j.infsof.2008.01.010
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1153

gathered over several years which was subsequently dis- activities and similar transformations. Once the lists
tilled into an approach, making sure that the proposed of activities were agreed upon, they were merged by linking
activities are both executable and feasible. Finally, the activities that are conceptually similar. This was not always
selection of the processes was also influenced by the avail- straightforward, as the granularity and order of activities is
ability of thorough documentation. not always identical and as particular activities (such as
This paper compares CLASP, SDL and Touchpoints, threat modeling) can have many different interpretations.
mainly from a theoretical perspective. A first contribution Of all steps taken, this was probably the most challenging
is the activity-matrix, which lists and relates all activities of one, and the goal was to be as precise as possible.
the different processes in a comprehensive model. The matrix To increase the structure and the organization of activ-
facilitates the identification of similarities between the pro- ities, the activities were subsequently organized into the dif-
cesses and it introduces grouping of activities into regular ferent phases of a typical software development process
development phases. A second contribution is the actual (‘Education and Awareness’, ‘Project Inception’, ‘Analysis
comparison of the processes from different perspectives: (i) and Requirements’, ‘Architectural Design’, ‘Detailed
generic characteristics of the processes are discussed in order Design, ‘Implementation’, ‘Testing’, ‘Release and Deploy-
to outline the philosophy underlying a particular method; (ii) ment’ and ‘Support’). Since SDL activities are already
activity-wise, the commonalities and the differences between organized into stages, the activities were mapped onto the
the methods are identified and discussed in order to articu- above-mentioned phases using extra information provided
late the strong and weak points of these methods and (iii) by MSDN [4]. As far as CLASP is concerned, activities
process-wise, a number of improvements are outlined that have been assigned to phases by looking at the role that
the processes could benefit from, in terms of both coverage is responsible for the activity itself. Finally, Touchpoints
and quality. In order to complement the theoretical discus- provides a mapping of the touch points to typical software
sion, the results of applying the three processes on a small- development phases, which was used accordingly.
scale case study are presented and they confirm the findings The result of this analysis was structured as a matrix,
of the theoretical study. which contains a section for each of the aforementioned
The structure of this paper is as follows. Section 2 phases, with each row representing a certain activity and
describes the methodological approach that was adopted each column representing one of the approaches. Fig. 1
for the comparison. Section 3 contains a bird’s eye presen- shows a fragment of the matrix, focusing on the ‘Detailed
tation of the processes, with a particular focus on their Design’ phase. The complete matrix has been included in
characterizing philosophy. Section 4 zooms into both the Appendix A. The matrix has been the foundation for the
commonalities and the differences of the processes, on a further analysis and comparison of the candidate pro-
phase-by-phase basis. Section 5 summarizes the results of cesses, in particular (i) to identify the intersection and the
the application of the different processes on a small-scale differences between them and (ii) to apply them to the case
case study. Section 6 presents a number of challenges for study.
the presented processes and highlights the room for
improvement. Section 7 discusses related work. Finally, 3. Background and general characteristics
Section 8 presents the conclusions as well as directions
for future work. In this section, the processes are further introduced and
a number of characteristics are discussed to give a flavor of
their overall philosophy.
2. Methodology
3.1. CLASP
This section briefly sketches the methodology that was
used for the comparison of the selected processes. To Originally defined by Secure Software and later donated
begin, the team agreed on the sources to be used, since pos- to OWASP, CLASP is a lightweight process for building
sible differences and inconsistencies may exist in different secure software [2]. It includes a set of 24 top-level activi-
versions. For CLASP it was decided to use the documenta- ties, which can be tailored to the development process in
tion of version 1.2 available at the OWASP website.1 For use. Key characteristics include:
SDL the book by Howard and Lipner [1] was used and Security at the center stage: The primary goal of CLASP
for Touchpoints the book by McGraw [3]. is to support the construction of software in which security
Based on the available sources, three by-the-book initial takes a central role. Furthermore, the activities of CLASP
lists of activities were articulated. For some activities this are defined and conceived primarily from a security-theo-
required some interpretation of text to elicit implicit activ- retical perspective and, hence, the coverage of the set of
ities. Furthermore, some clean-up was necessary on these activities is fairly broad.
lists. This meant optimizing the hierarchical structure of Limited structure: CLASP is defined as a set of indepen-
dent activities that have to be integrated in the development
1
CLASP 2 has been announced for some time now, but no new material process and its operating environment. The choice of the
is available from the website yet. activities to be executed and the order of execution is left
1154 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

Fig. 1. Excerpt of the matrix (the complete matrix is included in Appendix A).

open for the sake of flexibility. Moreover, the execution fre- more, several activities have a continuous characteristic
quency of activities is specified per individual activity and, in the SDL process, including threat modeling and educa-
hence, the coordination and synchronization of activities is tion. As such, the SDL process incorporates support for
not straightforward. Two road maps (‘legacy’ and ‘green- revising and improving intermediate results.
field’) have been defined to give some guidance on how to Good guidance: SDL does a good job at specifying the
combine the activities into a coherent and ordered set. method that must be used to execute activities, which, on
Role-based: CLASP defines the roles that can have an average, are concrete and often somewhat pragmatic. For
impact on the security posture of the software product instance, attack surface reduction is guided by a flow chart
and assigns activities to these roles. Roles are responsible and threat modeling is described as a set of sub-processes.
for the finalization and the quality of the results of an activ- As a result, the execution of an activity is quite achievable,
ity. As such, roles are used as an additional perspective to even for less experienced people.
structure the set of activities. Management perspective: SDL takes a management per-
Rich in resources: CLASP provides an extensive set of spective for the elicitation and description of many activi-
security resources that facilitate and support the implemen- ties. This is nice, given the inherent complexity of
tation of the activities. For instance, one of these resources security, and it shows that security as a quality has to be
is a list of 104 known security vulnerabilities in application managed in order to be realized in practice.
source code (e.g., to be used as a checklist during code
reviews).
3.3. Touchpoints

3.2. SDL Touchpoints provides a set of best practices that have


been distilled over the years out of the extensive industrial
As a result of its commitment to trustworthy computing experience of its proposer. Most of the best practices,
proclaimed in 2002, Microsoft defined the SDL to address named activities from here on, are grouped together in
the security issues they frequently faced in their products. seven so-called touch points. Touchpoints can be charac-
SDL comprises a set of activities, which complement terized as follows:
Microsoft’s development process and which are particu- Risk Management: Touchpoints acknowledges the
larly aimed at addressing security issues. SDL can be char- importance of risk management when it comes to software
acterized as follows: security. It tries to bridge the gap by elaborating a Risk
Security as a supporting quality: The primary goal of SDL Management Framework (RMF) that supports the Touch-
is to increase the quality of functionality-driven software by points activities.
improving its security posture. Security activities are most Black vs. White: The touch points provide a mix of
often related to functionality-based construction activities. black-hat and white-hat activities, both of which are neces-
For instance, threat modeling starts from architectural sary to come to effective results. Black-hat activities are
dependencies with external systems, while an architecture about attacks, exploits and breaking software (e.g., pene-
could in fact reduce such threats in the first place. SDL is tration testing). White-hat activities are more constructive
designed as an add-on to the software construction process. in nature and cover design, controls and functionality
Well-defined process: The SDL process is well organized (e.g., code review).
and related activities are grouped in stages. Although these Flexibility: The touch points can be tailored to the soft-
stages are security specific, it is straightforward to map ware development process already in use. To facilitate this,
them to standard software development phases. Further- the documentation provides a prioritization of the different
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1155

touch points. This allows companies to gradually introduce environment as software engineers are considered to be
the touch points, starting from the most important ones. more in line with the Touchpoints philosophy. The infor-
Examples: Touchpoints is rich on examples. For mation security people are the main target for training.
instance, when describing abuse cases, there is an example Besides the touch points, a knowledge management frame-
giving the reader a good feel about what they might look work is described to structure and share software security
like in a particular situation. knowledge. Such frameworks clearly facilitate the spread-
Resources: To further aid the execution of activities, ing of knowledge and, hence, they are fundamental to edu-
Touchpoints provides links to resources and also explains cation. Unfortunately, the book only hints at where and
how to use them. To this aim, a part of the book is dedi- how this knowledge can be used throughout the different
cated to security knowledge (which the resources are part touch points.
of). For instance, attack patterns are provided in order to Discussion: The common base-line for education is the
be used in the elicitation of abuse cases. training of project engineers in general and specific con-
cepts related to software security. The training program
4. Phase-by-phase comparison of SDL is impressive in this respect, and some of these
courses are even freely available. CLASP takes a somewhat
In this section, a comparison of the three processes on different approach in that it broadens the target audience of
the level of activities is presented. The activities have been training to all roles involved in the project. Touchpoints is
classified according to software development phases, as dis- more vague about the goal and the specifics of training. It
cussed in Section 2. Some phases have been merged in this is somewhat surprising, for instance, that given the risk-ori-
section, however, for reasons of readability. For each phase ented approach of Touchpoints, no risk management train-
the processes are discussed, pointing out commonalities ing is suggested whatsoever. Finally, it is important to
and differences. The goal of the comparison in this section support and monitor the education program closely in
is to discuss the important differences, not to be exhaustive. order to optimize the net effect of training. In that respect,
The reader is referred to the complete matrix in Appendix SDL suggests to institute a tracking program to keep track
A that may serve as a source for an exhaustive comparison. of who is required to follow which courses, as well as a
measurement program to assess the effectiveness of knowl-
4.1. Education and awareness edge transfer via training programs. In that sense, SDL
puts more focus on the management perspective of
SDL: Education is a fundamental part of SDL. Every education.
team member of the project should be given baseline educa- Awareness is a broad concept that can be interpreted in
tion in software security (Activity 1.1) in order to increase different ways. For SDL and Touchpoints, awareness
(i) the awareness of the importance of the problem and relates to knowledge about the problem of software secu-
its broad scope and (ii) the knowledge of security engineer- rity, mostly by means of training and by clear commitment
ing basics, including core concepts, types of security of the company’s general management. In addition,
breaches, possible solutions, and so on. CLASP also stresses the logistic side of awareness, for
More focused and targeted advanced education (Activity instance the sharing of project-specific security information
1.3) is scheduled as well for particular groups of engineers. to increase the awareness of engineers to the specific prob-
As security is a rapidly evolving field, with new threats lems in the project at hand.
emerging frequently, such courses are scheduled annually.
Some examples of courses in this area include fuzz testing,
threat modeling and reviewing code. An infrastructure for 4.2. Project inception
tracking the attendance (Activity 1.3.2) and for measuring
the effectiveness of courses (Activity 1.3.3) is suggested. SDL: At the beginning of this phase, SDL suggests to
CLASP: Similar to SDL, CLASP emphasizes the impor- make a go/no go decision about the applicability of the
tance of education (base-level as well as advanced). How- methodology to the project at hand (Activity 2.1). If the
ever, CLASP has a somewhat different focus in that it gauge is passed, SDL describes in detail how to organize
addresses all project roles (e.g., including the project man- the personnel involved in a secure software project (Activ-
ager). Moreover, accountability is a key driver to organize ities 2.2.1 and 2.2.2). Foremost, a security adviser is
courses, since engineers can only be held responsible for assigned to the project itself. This adviser helps the devel-
security problems when they are sufficiently trained. opers with security related issues and possibly serves as a
CLASP also improves security awareness by proactively gateway between developers and a dedicated security team
sharing all security artifacts within the development team (if available). Other important roles include the develop-
(Activity 1.4). ment team security contact, the company-wide security
Touchpoints: Since education is not one of the seven core team and the security leadership team. While all the former
touch points, little attention is given to the topic. It is rec- are technical-oriented profiles, the responsibilities of the
ognized that people should be sufficiently trained, espe- latter are more managerial and include (i) regular commu-
cially about the particularities of the development nication to the development team about security and pri-
1156 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

vacy bug counts and (ii) communication of security and The support for security metrics is particularly impor-
privacy policy updates. tant in making secure software construction a true engi-
Furthermore, SDL includes specific activities to address neering activity in which progress can be measured.
the logistics aspects, e.g., to make sure that the necessary Metrics are instrumental to assessing the quality of a pro-
tools are available (Activity 2.3), and to determine the type ject as well as the improvement over different projects.
of security bugs that will (or will not) be addressed (Activ- Examples of security-specific metrics include measuring
ity 2.4). the attack surface, the reported default rates and the cover-
CLASP: For CLASP, the construction of the security age of security tests. In general, they can relate to different
team is also important. In this respect, CLASP suggests scopes: the project, the process, the product and the orga-
to assign a security officer to the project (Activity 2.2.2), nization. Both CLASP and SDL thoroughly address the
which is a security expert that shares knowledge and acts metrics-challenge and suggest a number of metrics that
as a security soundboard and reviewer throughout the are related to particular activities. CLASP gives more guid-
development life-cycle. However, the influence of software ance on which metrics to use and how to integrate them
security on other typical development roles (e.g., project into the project life-cycle. For SDL on the other hand,
manager, requirements specifier or architect) is discussed given the elaborate and detailed description of many of
as well. CLASP also acknowledges the role played by indi- the stages, it is not that hard to deduce extra, useful metrics
vidual commitment. To this aim, it suggests the use of both (such as the number of threats covered, the number of bugs
positive and negative incentives for motivating project reported, or the test coverage). Touchpoints touches upon
engineers, by institutionalizing accountability (Activity the use of metrics to drive the improvement program of an
2.2.3) and by means of rewards (Activity 2.2.4). organization, but is more vague about how to realize this in
An important difference in CLASP is represented by the practice. Unfortunately, none of the processes succeed in
attention that is put on security metrics (Activity 2.5), providing a complete and systematic integration of metrics
which aid in assessing the security posture of the product within all process activities.
as well as enforcing accountability of security issues. Care The project manager is the main stakeholder for most
must be taken to identify the metrics to collect (Activity activities in this phase. He must make sure that all teams
2.5.1), to institute the strategy for data collection and report- and all supporting infrastructure is in place and that basic
ing (Activity 2.5.2), and to periodically collect and evaluate agreements have been made. In this respect, one of the
the identified metrics (Activity 2.5.3). Note that this last agreements that might deserve more attention in all pro-
activity is actually ongoing during the different phases of cesses is the overall security objectives that the project will
the software development process. target. For SDL, this is partially covered by the bug bar,
Furthermore, CLASP emphasizes the importance of the but it would be useful to extend this idea to a broader num-
organizational policy (Activity 2.6). It is suggested to ber of indicators. Good agreements about this in the pro-
develop such a document (if not already available), since ject inception phase renders the objectives more clear for
it should be used as a baseline for security requirements all team members. Clearly, a prerequisite for this is the
of all software projects. CLASP provides a list of global availability of a good set of indicators.
security requirements to be used as a template for the glo-
bal policy. During inception, the relevance of each global 4.3. Analysis and requirements
requirement must be evaluated for the project at hand. In
case of conflicts between the global policy and project-spe- SDL: This might be a striking observation, but SDL has
cific requirements, proper action should be taken to resolve very few activities in this phase. The definition of use sce-
them. narios (Activity 3.7) is part of the analysis of the system,
Touchpoints: Touchpoints stresses the creation, and con- and it is the first step in the (architecture-level) threat mod-
tinuous execution, of an improvement program. This pro- eling process.
gram aims at developing a clear understanding of the CLASP: In order to prepare for requirements specifica-
specific actions required to improve the state-of-practice tion, CLASP suggests to identify (i) resources (from a net-
within an organization regarding software security. The work as well as from a data perspective) and trust
improvement program should cover both the measurement boundaries (Activities 3.1.1 and 3.1.2), (ii) capabilities for
strategy (Activity 2.5.4) and the process itself (Activity 2.7). resources and link them to roles (Activities 3.2.2 and
Discussion: The processes cover a number of to-be- 3.2.1) and (iii) attacker profiles (Activity 3.3.1.1).
expected activities, which are also relevant for regular Requirements elicitation in CLASP is performed using
software development practices. For instance, one has to both a black-hat and a white-hat perspective, i.e., by means
identify and assign responsibilities and, closely linked to of threat modeling and requirements specification respec-
that, to establish the positive and negative consequences tively. Threat modeling uses different approaches: (i) use
for (not) meeting particular goals. Also, care must be case driven threat modeling, during which attacks to all
taken to install program-wide, security-relevant logistic functional use cases of the system are performed (Activity
support such as tools for bug-tracking and team 3.3.2.3), (ii) resource driven threat modeling that focuses
communication. on (il)legal use of resources (Activity 3.3.3) and (iii) knowl-
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1157

Fig. 2. Security requirements and threat modeling demystified.

edge driven threat modeling, i.e., assessing whether known the severity of the obligation, which is among others
attacks can be valid and useful for the system at hand related to the source of the requirement (e.g., not adhering
(Activity 3.3.4.3). For each misuse case, appropriate to national laws may lead to severe business loss) (Activity
defense mechanisms are to be identified (Activity 3.3.7). 3.3.6).
Requirements specification is based on two pillars: busi- Discussion: Threat modeling is one of the most funda-
ness requirements and functional security requirements mental activities in any security engineering effort. The
(Activities 3.4.4 and 3.4.5). The former covers all require- spectrum of threat modeling activities that can be per-
ments that originate from the customer or the organiza- formed is considerable: conceptual versus technical, func-
tion, possibly driven by the global security policy (see tionality- versus attack-driven, systematic versus
Section 4.2). The latter focuses on security services for pragmatic and so forth. Each process has its own accents
the resources that were identified. A conflict resolution in this spectrum and it is far from straightforward to
activity is suggested to solve mismatches between different understand the specifics of each activity and their relation-
(sets of) requirements (Activity 3.4.7). Finally, risk mitiga- ship. Fig. 2 depicts our interpretation of this matter. For
tions must be determined for each resource, similar to the every process (represented in columns), the different activ-
defense mechanisms for misuse cases. In parallel, require- ities are listed and lines denote a relationship between
ments for the operational environment are specified in order activities (a full line connects identical activities, while a
to improve the understanding of the system’s context dashed line represents a more loosely coupled relationship).
(Activity 3.6). Every activity is annotated to indicate whether it has to be
Touchpoints: One of the touch points is entirely dedi- executed during requirements analysis (Req) or software
cated to threat modeling based on abuse cases (Activity design (Des). Finally, activity groups are marked with a
3.3). The elicitation of abuse cases is achieved by identify- ‘+’ for white-hat activities and a ‘-’ for black-hat activities.
ing threat agents, eliciting anti-requirements (i.e., things the In general, it is fair to say that Touchpoints covers the
software should not do, often based on security functional- broadest spectrum of activities, SDL is restricted to archi-
ity failure) and identifying the attack model (attack pat- tectural threat modeling (see Section 4.4) and CLASP is
terns relevant to the system at hand). Anti-requirements positioned in between. In addition, it is also remarkable
states what can go wrong (i.e., the goal of a possible in this context that for all processes, resource-driven threat
break-in), while the attack model relates to the means to modeling is based on technical resources.2 In the authors’
achieve this (the how). Abuse cases are then specified as opinion, it would make sense to identify business level
the combination of a threat agent, an anti-requirement resources (or assets) and use these to drive the threat mod-
and an attack pattern, together with a mitigating scenario eling activities during the analysis phase. Indeed, assets do
(Activity 3.3.5). not necessarily align perfectly with technical ones, as is for
Apart from the aforementioned abuse cases, extra secu- instance the case for values that are typically not repre-
rity requirements can be identified based on three different
sources: laws and regulations, commercial considerations 2
While CLASP does not exclude the use of non-technical resources, the
and contractual obligations (Activities 3.4.1, 3.4.2, and methodology is strongly biased and almost all the examples given in the
3.4.3). All security requirements are ordered according to text are system- or technology-oriented.
1158 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

sented as first class concepts, but which are deduced by way. However, CLASP adds two preparatory steps at the
means of a query or some other computation (e.g., the glo- beginning of the architectural phase. First, CLASP consid-
bal balance of a set of bank accounts). Consequently, the ers the fact that most projects will be using third-party
focus on business-level threat modeling would increase components. In order to prepare mitigating the security
and business-level threats would be identified less acciden- risks involved herein, CLASP includes activities to research
tally. Touchpoints’ risk management framework covers and assess off-the-shelf technology, like third party compo-
this to some extent, but its adoption is disconnected and nents the project will depend upon (Activity 4.1). This
not very visible in the touch points. activity is present in SDL as well, but in a limited form,
Another important goal of the analysis phase is the spec- i.e., the focus is on the interaction with the OS and the
ification of security requirements. In this context, two ActiveX controls. Second, CLASP is unique in suggesting
observations are important. First, the sources used for a review step (Activity 4.2) where both the security and
the elicitation of threats or requirements are somewhat dif- the non-security requirements are audited in order to assess
ferent. For SDL, this is primarily based on threats to the their completeness.
system. For CLASP, additional requirements originate At detailed design level, CLASP complements SDL in
from the global company policy, and functional security terms of activities devoted to the reduction of the attack
requirements are elicited explicitly. In Touchpoints addi- surface (Activities 5.2.4–5.2.6). Indeed, SDL focuses more
tional requirements are based on obligations in the context on reduction of privileges, while CLASP focuses on the
of regulations or towards customers. This suggests that reduction of access points.
CLASP and Touchpoints use a broader set of sources to Furthermore, CLASP is unique in providing guidance
drive requirements elicitation. Second, it is noteworthy that about injecting security annotations in the design models
abuse cases (or misuse cases) are a common format for the (Activity 5.3) and securing the configuration of data bases
specification of security requirements. In the authors’ opin- (Activity 5.4).
ion, this could be extended by explicitly transforming the Touchpoints: The main focus of Touchpoints during the
misuses into more affirmative, solution-oriented require- design phase is on threat modeling. For instance, Touch-
ments, which would align better with prevailing standards points includes threat identification and risk assessment
such as the Common Criteria ([5]). (as described in the risk management framework), where
As a final remark, the initial identification of mitigation risks in the system (including any frameworks that it might
strategies for threats can be useful, since this can lead to the use) are identified and mitigated (Activity 4.3.8). Further,
elicitation of additional security requirements (in particular Touchpoints is unique in that it also aims at removing
requirements on security functions). In the authors’ opin- any ambiguity there might be, as ambiguity is often a cause
ion, the approaches for analysis-level mitigation described of problems (Activity 4.3.9).
by the respective processes are weak. In CLASP, mitigation Discussion: As mentioned in the above description of
is based on generic knowledge of threats and, hence, only this phase, all processes have a common trait regarding
generic mitigation strategies can be suggested. In Touch- the analysis of threats at architectural level. By threat it
points, mitigations should be specified in abuse cases but is usually meant a danger for an architectural or infrastruc-
no guidance on how to achieve this is given whatsoever. tural resource (playing the role of asset) like spoofing a ser-
ver or intercepting a network connection. This type of
4.4. Architectural and detailed design threats take place ‘‘one level below” the application logic
and are enabled by the inadvertent use of mechanisms like
SDL: During the architectural phase, performing rigor- DNS for server spoofing or encryption for connection
ous and thorough threat modeling (Activity 4.3) is possible interception. It is interesting to note that all processes sug-
as one has a clear understanding of the system decomposi- gest the adoption of misuse cases (often referred to as
tion and of the information flows within the architecture. threat scenarios) to document the possible threats to archi-
SDL covers this by means of an extended set of sub-activ- tectural elements. However, there are significant differences
ities. Additionally, an interesting feature is represented by in the methodologies that the three processes suggest to use
an activity focusing on the specification of the operational in order to unearth these threats. SDL is with no doubt the
environment (Activity 4.3.3, also present in CLASP). This most precise and thorough. Indeed, the process suggests to
activity details the architectural assumptions about com- use STRIDE, which is a systematic and effective way of
puting hosts and data networks. eliciting threats (sometimes too effective, as the number
At detailed design level, SDL focuses on assessing the of discovered threats can easily explode). Further, the tech-
impact of the project on user privacy (Activity 5.1) and nique is well documented and all the necessary resources to
the reduction of the attack surface (Activity 5.2). For carry it out are provided, including a tool. Touchpoints is a
instance, techniques are suggested to reduce the attack sur- bit less complete. It refers to STRIDE and proposes further
face by discarding unnecessary features and by limiting activities related to threats. Examples are the analysis of
privileges. weaknesses that arise by using third party software such
CLASP: Just like SDL, CLASP also supports threat as off-the-shelf components, and the analysis of flaws due
modeling at architectural level, although in a less thorough to ambiguity in the design, for instance, problems related
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1159

to type safety and type confusion. CLASP is deficient in entire system is tested by the central security team. Both
this area, as it does not provide any guidance about how target the entire system with a focus on highest-risk compo-
to carry out the threat analysis activity. nents, in contrast to security testing which focuses on indi-
If we now look at the stakeholders involved in this vidual components. It is worth noting that, for the security
phase, we notice some differences among the three pro- push, SDL does cover white box verification in the form of
cesses. Both SDL and Touchpoints focus on the security code review.
expert that has to scrutinize the architecture. They also CLASP: Just like SDL, CLASP emphasizes the impor-
put significant emphasis on risk-driven prioritization of tance of security testing. However, contrary to SDL,
threats in order to allot development effort wisely. This CLASP focuses more on white box testing (Activities
allows the customers (who know the value of assets) 7.1.2 and 7.1.3). CLASP also suggests the integration of
and the project managers (who know the costs of devel- security analysis into source management (Activity 6.1),
opment) to be involved in this process phase and to con- in order to automate the implementation-level security
tribute with business-informed decisions. CLASP has a analysis and metrics collection through the use of dynamic
more holistic view and considers several stakeholders. and/or static analysis tools.
During this phase, indeed, some activities link back to Other than these commonalities, CLASP includes more
the requirements phase (review non-security require- implementation activities, including the implementation of
ments, assess completeness of security requirements) interface contracts (Activity 6.5.3). Moreover, CLASP
which is in line with modern software engineering acknowledges the importance of reviewing the specification
approaches, where software architecture design and from the developer perspective (Activity 6.2) in order to
requirements definition are intertwined [6]. Therefore, spot ambiguities that could lead to security flaws during
requirements specifiers are involved in this phase too. implementation.
Moreover, CLASP (as SDL) takes the deployment view Finally, CLASP deals with the creation of the necessar-
into consideration, e.g., by validating the architecture ily documentation to install and operate the application
and the design against both the network assumptions securely (Activity 6.8).
(e.g., existence of a firewall, of a centralized authentica- Touchpoints: Similar to SDL and CLASP, Touchpoints
tion server, and so on) and the host assumptions (e.g., emphasizes the importance of security testing – actually,
expecting an important system component to be bundled three out of seven touch points covered in the book deal
with the OS). Clearly, this requires the involvement of with security testing. A difference in focus does exist, as
field engineers. Finally, very detailed guidance is pro- Touchpoints stresses the importance of risk based security
vided by CLASP to both the architect and the designer, testing (Activity 7.1.1). The main characteristic of Touch-
e.g., with activities like design hardened interfaces and points is the emphasis on code reviews. In particular, the
annotate class design with security properties. use of automated tools is suggested (and examples
provided).
4.5. Implementation and testing Discussion: Not surprisingly, all analyzed processes
stress the importance of security testing. A closer look to
SDL: It is interesting to observe that, apart from secure the documentation reveals that they all provide thorough,
coding guidelines (Activity 6.5.1), SDL lacks real implemen- good-quality guidance in describing the testing-related
tation activities. This is probably due to the fact that SDL activities. However, different flavors can be identified.
focuses on security as a supporting quality. The use of SDL has a predominant black-hat approach to testing,
automated tools for verification purposes is encouraged i.e., activities focus on fuzz testing and penetration testing.
(Activity 6.3), as well as manual code inspection (Activity CLASP is mostly white-hat, as illustrated by activities like
6.4), e.g., to assess the adherence to coding guidelines. Fur- resource driven testing, testing of security attributes (e.g.,
thermore, apart from the editing of documentation (Activity privileges), integration and automation of security testing
6.7) that prescribe security best practices, the creation of with the commit procedure of the software repository
tools (Activity 6.6) that can facilitate configuration and and with the build process. Touchpoints is in between:
audit of systems is encouraged. some activities are mainly white-hat oriented, e.g., security
SDL puts a lot of focus on security testing. However, functionality testing, while the black-hat component is still
SDL focuses mainly on black box testing (Activities very present, for instance, pen testing is a touch point in its
7.1.10 and 7.1.11). A typical black box test is to feed the own.
application with random input in order to observe the sys- Concerning the stakeholders that are involved in this
tem’s reaction for unexpected failures (which are hints of phase, the implementers and the testers are center stage
possible security bugs). SDL includes two additional test- in all processes. However, we observe that SDL goes a
ing activities: (i) the security push (Activity 7.2) and (ii) bit further. Significant attention is devoted to provide the
the final security review (Activity 7.3). Both perform extra project managers with test results in order to track the pro-
testing but have a different focus. During the security push, ject status (security-wise).
the project team tests the entire system with specific focus As a final consideration, we noticed that the use of both
on legacy code, while during the final security review the formal notations and the code generation techniques (e.g.,
1160 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

MDA) do not find the proper space in any of the processes and comparison of the respective processes on the field.
under study. We first introduce the case study and then present the
results of executing each process on the described case in
4.6. Release, deployment and support Section 5.1 through Section 5.3. Each section concludes
with a discussion part.
SDL: SDL focuses on the response plan defining what to The case study is an ATM system, an internal project
do when a new vulnerability is discovered (Activities 9.1 that is reused across several research works. The ATM
and 9.2). It is stressed that normal response planning can software to be designed controls a simulated automated
deviate considerably from the situation where a security teller machine (ATM) having a magnetic stripe reader, a
emergency has to be dealt with. SDL also acknowledges customer console, a slot for depositing envelopes, a dis-
that communication with customers is very important. penser for cash, a printer for printing customer receipts
One has to make sure that, amongst other things, security and a key-operated switch to start or stop the machine.
advisories can be released and customers have access to The main use cases of the system are to start or stop the
software updates. system, and to perform a transaction (withdrawal, deposit,
CLASP: Even though organized quite differently from transfer or inquiry). The component diagram of the soft-
SDL, CLASP covers about the same activities, ending up ware architecture is shown in Fig. 3 (the process and
with the same result. There is a difference though, and that deployment diagrams are very similar). The responsibility
is that CLASP puts extra emphasis on signing the code, in of most components is straightforward: at the terminal
order to provide stakeholders with a way to validate the side, the ATMPhysical component abstracts the hardware
origin and integrity of the software (Activity 8.3). of the machine, the Administrator- and CustomerInterface
Touchpoints: Touchpoints has very limited support in components represent the basic GUI for two different types
this phase. The only aspect that Touchpoints covers here of users, the ATMController contains the generic logic for
is that the InfoSec people should contribute to the secure the terminal, while the BankingLogic subcomponent
development by fine tuning access controls and configuring focuses on the banking specific logic. At the BankingSer-
the monitoring and logging (Activity 8.4). vice side, the BankingService component contains the logic
Discussion: As a general observation, we notice that the for the bank, while the LoggingSystem is responsible for
activities in this phase focus largely on support rather than logging relevant events.
deployment. As far as deployment is concerned, activities During the experiment, the three processes were applied
relate to the release of the software (e.g., code signing) to this case study based on the available material. From a
rather than its fielding. Touchpoints is an exception in this methodological perspective, each process was applied in a
respect, as it contains an activity dealing with the configu- project-oriented way by building a team of two persons
ration of access control, logging, and monitoring. Concern- selected from the authors. Each team was composed of a
ing software support, two types of activities are very much junior researcher and a senior researcher acting as a sound-
elaborated in CLASP and SDL: (1) producing the docu- board. At the end of the experiments, the results were
mentation (for SDL triggered during the implementation reviewed during a workshop in order to ensure
phase) and (2) dealing with patching. However, some dif- completeness.
ferences exist in the level of quality those activities are pre- The case study is developed to the level of architectural
sented. Overall, CLASP does a good job in detailing the design. Therefore, only a subset of the process phases can
type of documentation to be produced. Quite interestingly, be applied. As motivated by the above description, the
however, SDL acknowledges the importance of producing ‘‘Education and awareness” and the ‘‘Project Inception”
documentation also during the implementation and, there- phases were bypassed. Indeed, the creation of the teams
fore, has some activities in that phase too. With no doubt, was straightforward due to the resource constraints, and
SDL has a better coverage of the management of both the training of team members in the security area was suf-
security reports and patches. For instance, SDL prepares ficient. Furthermore, these phases are of less use for one-
the patch management starting from the implementation shot projects. Since no implementation of the case is avail-
phase (e.g., by easing up the bug fixing after release by able, the core set of activities executed reside in the ‘‘Anal-
uploading debug symbols) and follows up during the sup- ysis and Requirements” and ‘‘Architectural Design”
port phase with a well documented and structured set of phases. This implies that some important activities, like
activities. testing, were not executed.

5. Experimental assessment – the ATM case study 5.1. CLASP

In this section, the application of the three processes on 5.1.1. Analysis


a small case study is discussed. The main purpose of this In the context of analysis, the first activity is to deter-
experiment is illustrative, i.e., to verify whether the results mine resources and trust boundaries (Activity 3.1). In the
of the theoretical comparison hold in practice, rather than case study, the network design (Activity 3.1.1) was based
evaluative, i.e., to do a thorough and systematic analysis on the architectural deployment diagram, except that the
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1161

Fig. 3. Architectural overview of the ATM case study.

components of the banking service were distributed over bracketing resources that have similar demands. In our
different machines (this enabled more flexible deployment experiment, 12 general requirements have been specified
scenarios and increases as such the depth of the security for the 5 classes. In a next step of the activity, the coverage
analysis). To identify data resources (Activity 3.1.2), of the requirements has been verified by mapping them
CLASP suggests to look for several items, like: service level onto individual resource capabilities and assessing whether
access points and information assets, low level resources extra, specific requirements would be necessary (gap analy-
(such as memory), and system related resources (such as sis). In a final step, these extra requirements have been
ACLs and configuration files). At this point of the develop- articulated for the individual resource capabilities. An
ment life-cycle only the identification of the first type was overview of this process and an excerpt of the results are
considered really feasible (and useful). Since many activi- shown in Fig. 4.
ties of CLASP are driven by resources, extra consideration For the black-hat track, the next step is the identifica-
was put into these results, but no satisfying improvements tion of the threat agents (Activity 3.3.1.1). As a result of
could be achieved. this activity, 5 profiles have been described: insider (e.g.,
Resources are then used in two ways by CLASP: white- an administrator or a bank employee in charge of the
hat and black-hat analysis. During the white-hat part, secu- ATM), script kiddie (e.g., to get easy money), competitor
rity requirements are elicited for the resources. In the (e.g., to gain customers information), government (e.g., to
black-hat part, attacks are matched to the identified track banking transactions), and organized crime (e.g., to
resources. cover transactions). An additional profile (activist) has
For the white-hat track, the capabilities of the resources been considered and discarded. The resources and the
have been identified (Activity 3.2.1), and system roles have profiles are the input to the subsequent threat modeling
been mapped to these capabilities (Activity 3.2.2). This is activities. The identification of misuse cases is performed
instrumental to the following step, i.e., the elicitation of in three ways: based on known attack patterns, on func-
security-relevant requirements (Activity 3.4.5). During this tionality (i.e., use cases), and on identified resources.
activity, the resources have been first grouped into five For each of these, a number of misuse cases have been
broad classes: user-confidential data, ATM processes, bank identified. One of the problems that we have encountered
system processes, network and memory. The choice of the in this context is the generation of overlapping misuse
classes is arbitrary, however, the rationale is to minimize cases over the three approaches: the lists had to be sani-
the number of requirements that have to be specified by tized considerably.
1162 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

Fig. 4. Defining requirements in CLASP.

5.1.2. Design 5.2.2. Design


At architectural level, there is one main activity that has Product risk assessment (Activity 4.1) is concerned with
been applied to the case study: identification of architec- identifying the risk involved in the application. The ques-
tural level misuse cases (Activity 4.3.8). The method is tionnaire used for security risk assessment did not reveal
comparable to Microsoft STRIDE/DREAD. However it any additional information, especially since at the time of
is less structured: SDL provides threat tree patterns that execution many of the questions were not applicable to
one can use in practice, while the CLASP resources about the initial architecture of the system yet. It would be more
vulnerability causes is more limited. useful if the architecture and the design of the case would
Other activities like assessment of third party compo- have been more worked out.
nents (Activity 4.1) and the review of requirements (Activ- For threat modeling (Activity 4.3), the first step was to
ity 4.2) have been omitted because they are not create data flow diagrams (DFD) for the system (Fig. 5
fundamental in the specific context of this case study. shows one of these – the colored ovals indicate which
STRIDE threats are applicable to a particular entity).
5.1.3. Discussion Thereafter, threats were to be identified by applying
Overall, CLASP was perceived as a systematic method, STRIDE on all entities in the DFD. Microsoft provides a
although a number of activities can be improved in this nice threat modeling and analysis tool [7] to aid in this
respect (e.g., the identification of resources, or architec- effort. While the book and the tool do not fully correspond
tural-level misuse cases). The execution of the process took (a.o. for threat elicitation and risk assignment), the tool
more time than expected: over 40 h, with the identification
of requirements as the most demanding activity in this
respect. The identification of requirements was perceived
as the most difficult activity, probably due to the fact that
it is hard to come up with requirements without proper
(guidance for) motivation.

5.2. SDL

5.2.1. Analysis
As discussed in Section 4.3, SDL has very few activities
in the analysis phase. The definition of use scenarios is
related to threat modeling, which will be discussed in the
next section. Fig. 5. DFD for the customer side of the ATM system.
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1163

provides a good help in identifying, automating and ana- tant. For example, it was recognized that system has
lyzing the threats to a system. For this case, 118 threats to assure that the transactions are executed using the
were identified. In terms of risk analysis, the book suggests correct amount of money involved, i.e., no rounding
a new approach by assigning risk levels depending on the errors and such are introduced (accuracy requirement).
characteristics of threats (e.g., in the context of data tam-  Contractual obligations. As the client stakeholder is not
pering, is the effect temporary or permanent), rather than available in our case, we have no results out of this
assigning values for a threat’s likelihood and impact, since activity.
this is typically perceived as a difficult task. For the exper-  Legal and regulatory risks. The system deals with per-
iment, most of the threats were identified as level 2, while sonal information, hence privacy laws must be taken
the other levels (1, 3 and 4) were assigned only sporadically. into account. Other legal implications concern the obli-
gation of keeping track of dodgy/fraudulent behavior
5.2.3. Discussion for judiciary purposes (auditing requirement). Further,
Overall, the majority of time was spent on the threat since transactions might constitute as evidence used in
modeling (approx. 30 h). Threat modeling was perceived court, repudiation of such transactions should not be
as a feasible activity, except for the rating of risks, which possible (non-repudiation requirement). In particular,
is rather arbitrary. supposing that the system is to be deployed in Europe,
One of the clear benefits of SDL is the systematic four Council Directives apply.
approach to the architectural threat modeling. By assigning
STRIDE threats to all elements in the data flow diagrams, The abuse cases touch point proved to be very powerful.
no obvious threats are missed. The other processes by far In this area, three main activities were performed:
do not perform equally well for basic threat modeling.
However, there are some downsides linked to the STRIDE  Identify and Revise Threat agents (Activity 3.3.1). Five
threat modeling as well: the systematic analysis results in types of attacker profiles were identified: organized
an explosion of elicited threats, which then requires a good crime, small criminals, insiders, legitimate users, script
risk analysis method to be managed. Unfortunately, the kiddies.
risk assessment technique does not seem to perform very  Use Case Driven Analysis (Activity 3.3.2). A list of 20
well for our case. Most threats were assigned risk level 2. scenarios that the system should prevent were identified,
This can be explained by the fact that the characteristics such as retrieving more money than is available in the
are not always fully clear when applied to practical situa- account, depositing money to an account without iden-
tions, or the fact that the risks to be assigned are not very tification, or shutting down the ATM system without
well spread over the risk spectrum (more than half of the authorization.
leaves in the threat tree patterns assign risk level 2).  Attack Driven Analysis (Activity 3.3.4). From a list of
Another downside to the process is that it focuses on ele- attack patterns provided by the process as a resource,
ments in isolation, rather than identifying threats to a par- 21 attacks were selected as relevant for the case study.
ticular combination of elements. The latter might reduce
the explosion of threats, since many threats are actually It is interesting to note that each activity must be per-
linked to a few higher-level threats (analogous to the idea formed iteratively. Each activity is followed by a review
of threat trees). step until the quality is satisfactory and the results are
approved.
5.3. Touchpoints In Activity 3.3.4, the abuse case are finally produced as a
cross-product of threat agents, anti-requirements, and
5.3.1. Analysis attacks. Of course, not all attacks can be performed by
According to the McGraw’s theoretical model, three each attacker profile. For instance, complex attacks are
touch points are of interest in this phase: Security Require- not considered for script kiddies. Nevertheless, we
ments, Risk Analysis, and Abuse Cases. observed an explosion in the number of abuse cases. The
In particular, the security requirements touch point sug- output is schematized in Fig. 6, which, due to space con-
gests to elicit financial or commercial considerations, con- straints, does not include the complete results.
tractual obligations, and legal/regulatory risks (see In the final step, the abuse cases were ranked according
Activities 3.4.1–3.4.3). We applied this activity to the bank- to risk (Activity 3.3.6). We applied a three-level categoriza-
ing domain with the following results: tion: must-have, important to have, nice but unnecessary to
have. This classification is suggested by the risk analysis
 Financial and commercial considerations. Commercial touch point when it comes to ranking the security require-
assets such as reputation are important in this domain. ments (described above). For the sake of homogeneity,
Part of keeping up a good reputation is making sure we used the same ranking criteria for abuse cases as well.
the system is ‘‘always” available as well as limiting the As a result of this activity, out of the 35 identified abuse
number of incorrectly executed transactions (availability cases, 74% were ranked as must-haves, 23% as important,
requirement). Financial considerations are also impor- and only 3% as unnecessary.
1164 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

words, the team found that too often there is room for
interpretation and uncertainty about what to do in practi-
cal terms. Second, the process tends to get too technical too
soon. An example is the list of attacks provided during
analysis in order to elicit the abuse case. For instance, dur-
ing the requirements phase, it is hard to decide whether a
‘‘buffer overflow with environment variables” is a viable
attack, as the detailed design description of the system is
yet to come.

6. Discussion and improvements

In this section we discuss a number of fundamental


improvements, which the processes could benefit from.

6.1. Quality and coverage

During the analysis of activities, it was observed that


some of them do not correspond to the state-of-the-prac-
tice definition for process activities. From a general per-
Fig. 6. Generating abuse cases in Touchpoints. spective, a process involves a temporally ordered series of
activities that, starting from an input state, leads to an out-
come by using a set of resources like time, and expertise.
5.3.2. Design Activities must produce added value in the form of an
The design phase is covered by the architectural risk output, which must be clearly identified in an artifact. As
analysis touch point. This phase is less rich of distinguishing a counter-example, only two activities in CLASP clearly
results. Indeed, architectural risk analysis is largely based specify the artifacts that should be produced. Touchpoints
on the STRIDE technique, which has been already illus- scores better here as for some touch points they provide a
trated in Section 5.2. process diagram stating the outputs of the different activi-
As far as Activity 4.1.1 is concerned, it was skipped as ties. It is also important that the delta between input and
no third party component is used in this simple application. output, the ‘visible impact’, is large enough to make an
activity worthwhile. If this criterion is applied to the pro-
5.3.3. Discussion cesses, it can be observed that some of the construction
Overall, the time needed to carry out the experiment was steps are guidelines rather than real activities. For instance,
equally distributed among the analysis phase (14 h) and the SDL suggests to use the latest compilers and to avoid using
design phase (14 h). The creation of the abuse cases was deprecated functions from libraries. According to the
perceived as a low-to-medium complexity task; the archi- above discussion, this is more of a coding guideline than
tectural risk analysis as hard, especially the ambiguity a process activity. A similar but reverse example comes
and weakness analysis. from the Touchpoints. An initial step of the static code
In conclusion, some general observations have been analysis activities is the selection of the tools to be used
gathered during the execution of this experiment. On the for the automated analysis itself. In that case, the impact
positive side, the team was particularly pleased by the thor- is more visible, as the activity starts from a list of candi-
oughness of the analysis phase. First, there is some focus dates and ends up with a set of selected tools and their
on laws and regulations. In several sectors, like health, avi- associated configuration (to be used later on in the pro-
ation and finance, the existing regulations and laws are cess). As another positive example, CLASP addresses the
indeed primary sources of (security) requirements. Second, impact of each of the 24 top-level activities in the Activ-
the methodological way of building high-level anti-require- ity-Assessment View.
ments (via abuse cases) is particularly interesting. According to Davenport [8], the characteristic of a busi-
McGraw’s methodology acknowledges the importance of ness process is to focus on the procedural aspects of the
having two levels of misuse analysis, i.e., both at the activities, i.e., how work is done and not only what work
requirements and the architectural level. has to be done. That is, activities should provide a ‘system-
On the negative side, applying the touch points is not atic method’ to put in practice what they suggest. It is
always straightforward. Both the Abuse Cases and the observed that SDL and CLASP both fall short in support-
Architectural Risk Analysis are described via a detailed ing the aforementioned property. For instance, the CLASP
flow chart of activities. This has been appreciated by the activity apply security principles to design (Activity 4.4) has
team, however, a limited amount of information about no clear methodological indication on how to realize the
how to perform each step in the chart is provided. In other activity. McGraw’s process provides a (basic) method for
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1165

some of the touch points, but unfortunately not for all of the omission of accessory activities is useful. For instance,
them. This method is shown in the form of a process dia- CLASP provides such information to some extent (in the
gram and some related information. A good example is Activity-Assessment View) and Touchpoints has a prioriti-
the diagram explaining the steps to perform the weaknesses zation of the touch points that can be used as a guide. It
analysis of off-the-shelf components during the architec- would seem useful to extend this into a maturity-like
tural risk analysis touch point (see Activity 4.4.13). approach (e.g., based on SSE-CMM [11]) in order to indi-
Besides these quality issues, a few coverage gaps were cate the desired rigor to be put in the execution of certain
observed, i.e., phases that have little or no support. First, activities more precisely. Based on this, a number of pro-
activities at the design stage are mostly oriented towards files could be defined for different types of environments
detailed design. For instance, at architectural level, there and applications domains. Additionally, these indications
is room for specific activities in the area of trade-off analy- could be used to drive the assurance process of the software
sis, e.g., security vs. usability. Second, in both SDL and afterwards.
Touchpoints there is very limited support during the
deployment phase. In SDL it is limited to user documenta- 6.3. Verification
tion, while Touchpoints only talks about the contribution
that InfoSec people can bring into the project at that phase Application functionality is a positively spaced problem:
(Activity 8.4). Further support for deployment could functional requirements are specified in an affirmative man-
include the management of the security solution by enforc- ner (what behavior should occur) and verifying the correct-
ing operational procedures, as well as the monitoring of the ness of a functional requirement focuses on the (limited) set
security solution in order to proactively discover of executions of the particular function. In clear contrast,
weaknesses. security is to a large extent negatively spaced. Security
requirements typically state which behavior should not
6.2. Security in context occur. Since the set of executions of a software artifact is
infinite, it is much harder to cover this set in order to guar-
Two main constraints must be considered when it comes antee the correct realization of a security requirement in
to security-specific activities: the integration with an exist- software. Therefore, it is crucial to institute verification
ing process and the cost of augmenting a process with as an important fill rouge throughout the process, comple-
security. mentary to construction activities.
Concerning integration, many medium-to-large organi- Verification is in practice often closely linked to a partic-
zations already have a heavyweight and rigorous develop- ular construction activity, i.e. to ensure that the activity has
ment process in place, e.g., according to the Unified been done right. For instance, when building a threat tree
Process [9]. Furthermore, many of them have achieved a one could verify that all types of threats are covered sys-
significant level of process maturity and have received a tematically for every asset in the system. While the impor-
certification for their accomplishment. For these organiza- tance of this type of verification is clear, it is equally
tions, it is key to have a set of clear guidelines to ease up the important to include dedicated verification efforts that
difficult task of integrating new security-centric activities in focus on relations between activities as well as on spanning
a well-established, preexisting instance of a standard significant sets of activities. For instance, one could cross-
process. check the security requirements set with the operational
For smaller organizations with a more lightweight and policy.
less rigorous process, merging the security process with the The experiment with the ATM system has shown that
existing informal software development process is less of a the verification of results of activities is difficult in practice
problem. However, these organizations may have a non-tra- since (i) it is often not clear what it means to be correct (i.e.,
ditional process in place, e.g., they may be using agile tech- no precise criteria have been defined) and (ii) the method to
niques such as Extreme Programming [10]. There is a be used for verification is not defined. Consequently, most
knowledge gap with respect to the problem of integrating verification has been performed manually and in an ad-hoc
CLASP in agile methods. Conversely, SDL’s and Touch- manner. There is a lot of room for improvement in this
points’s support in this direction is far more extensive. area. Clearly, the availability of good metrics (see next sec-
It is impossible to build a 100% secure system, especially tion) can be a catalyst for improving verification.
in day-to-day system construction with a constant trade-off
between security and other constraints such as the cost. 6.4. Metrics
This will have an impact on the accuracy with which cer-
tain activities are being executed and on the set of activities The software engineering practice assigns a significant
that will be executed in the first place. Therefore, it would role to metrics. They are a quantitative means to measure
be useful to provide guidelines for selecting the set of rele- the progress of quality for the process itself and the pro-
vant activities. At a minimum, a distinction could be made duced artifacts. CLASP, Touchpoints and (particularly)
between a core set of mandatory activities and its accessory SDL all have only limited focus on metrics. Two directions
extensions. Also, an indication of the risk associated with of improvement can be foreseen.
1166 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

First, a program to evaluate the effectiveness of the secu- verification of the above-mentioned ‘minimize attack sur-
rity process itself must be instituted. The program should face’ principle.
be responsible for continuously assessing both the real
impact of security activities on product quality and the 6.6. Process support for moving targets
optimal usage of resources (e.g., time and personnel). The
importance of measuring the impact of security is some- It is common knowledge that security is a moving target:
what mentioned by examples in Touchpoints, but the met- applications change, execution environments change,
rics program devised by McGraw is primarily intended to attackers change, and new (types of) bugs are found. This
measure the level of adoption of the touch points, i.e., it influences the security posture of a software application
is a CMM-like measurement program. To assess the opti- and, consequently, it also affects the construction process
mal usage of the security budget, the process should pro- of secure software in different ways. First, under the
vide baseline figures about time and personnel required hypothesis that the previously articulated security assump-
by the activities. For instance, CLASP provides informa- tions remain valid, the process must include continuous
tion about the time that is required to carry out activities. support to address new security vulnerabilities after the
Second, specific measuring activities should be included software has been released. This is supported in CLASP
in all development phases to assess the quality of artifacts and SDL by including activities that focus on software
from a security perspective and at different levels of updates and security advisories. Touchpoints does not
abstraction. Such measures could play a leading role in seem to cover this. Second, and more challenging, when
defining acceptance criteria for software artifacts during intermediate results turn out to be incorrect (such as an
all stages of the development process. More importantly, incomplete threat model), or when security assumptions
metrics should constitute an analysis tool to identify criti- change after deployment, the process must be backtracked
calities early on, with remarkable impact on cost. To some in order to correct the no-longer valid decisions and
extent, CLASP tries to pursue this direction, as a whole assumptions. In a process, backtracking can be supported
top-level activity is dedicated to metrics. However, the by introducing iterative cycles, or by inserting dedicated
implementation of this type of measuring program is diffi- checkpoints and feedback loops. This kind of support is
cult. Indeed, there is not a clear understanding of which limited in the covered processes.
properties should be observed in order to asses security In the same way, it is challenging to enforce security
qualities. Some work exists concerning the implementation requirements on a moving target, functionality-wise. For
and the deployment phase [12], but significant gaps have to instance, if the use cases of a system change frequently,
be filled by the research community. threat modeling must be repeated every time and since
many activities are based on the outcome of threat model-
ing, this will have several ripple effects. These effects could
6.5. Principled process be limited by choosing a limited set of locations in the pro-
cess to which security activities are added.
Several security principles have been enumerated in the Traceability of decisions and relations between interme-
literature [13–15]. Examples include ‘minimize attack sur- diate results constitute a way to improve the support for
face’ and ‘run with least privilege’. The value of such prin- change management. As such, one can more clearly ana-
ciples is so widely recognized that their enforcement should lyze and estimate the impact of modification on the devel-
be explicitly assisted by the process. oped system.
Activities could be annotated in order to highlight their
contribution to the realization of a specific principle. For 7. Related work
instance, CLASP activity map roles and resources to entry
point (Activities 5.2.5 and 5.2.6) relates to the ‘minimize To the authors’ knowledge, no evaluative studies have
attack surface’ principle. In CLASP, principles are seldom been performed on secure software development processes.
addressed a few times, but the relationship between activi- Therefore, the discussion on related work focuses on (i)
ties and principles is not worked out systematically. In related processes covering the entire secure development
SDL, principles are explicitly mentioned only twice. In life-cycle, and (ii) methodologies focusing specifically on
Touchpoints they are explicitly mentioned as part of the particular construction or assurance activities.
knowledge pillar of the process, i.e., the part of the method There are a number of resources that cover the entire
that covers the sources of information to be used during secure development life-cycle. Build Security In [16] is a
the activities. However, there is no explicit mention about website maintained by the Software Engineering Institute
how to use them practically in the touch points. Further- (SEI) and sponsored by the DHS National Cyber Security
more, new constructive activities could be introduced to Division. Part of the available material and their contribu-
better support principles. Finally, some verification activi- tors are closely related to Touchpoints. The website pro-
ties can be put in place to assess the compliance of process vides an overview of existing processes and methods for
artifacts with principles. For instance, the SDL activity each development phase. These methods are not secure
Scrub the attack surface (Activity 5.2.7) contributes to the software methodologies, but rather tools that can be used
B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1167

and that only cover part of a secure software engineering the Systems Security Engineering Capability Maturity
methodology. In his articles, Peterson [17] discusses how Model (SSE-CMM) [11] covers all phases of the develop-
a development team can integrate security into any itera- ment process and can be used to evaluate and improve
tive development process by finding what (artifacts) an existing process.
already exists and how this can be leveraged for security’s
goals and by whom. Praxis [18] proposes a methodology 8. Conclusions
to build reliable and secure software by ensuring correct-
ness for every step of a software life-cycle process, often A key challenge for scientists in software engineering in
by using formal verification techniques. The Information the coming years is to evolve the ‘art’ of building secure
Assurance Technology Analysis Center presents an exten- software into a systematic and manageable practice. The
sive overview of security-enhanced processes [19], including problems in this area are caused by a number of reasons,
among others the Oracle Software Security Assurance Pro- including the continuous streams of novel security issues
cess and TSP Secure. (and solutions to address them), as well as the difficulty
A wealth of other sources either address particular of linking vulnerabilities to particular poor practices or
phases of the development life-cycle, or focus on specific intermediate results in the construction process. Secure
platforms. We only highlight a few. Howard and Leblanc software processes are forced to target on specific sub-
[20] elaborate on designing secure applications, on writing problems in this space and, hence, perform very well for
robust code and on testing applications. Wheeler [21] pro- some types of problems and less for others. Consequently,
vides a set of guidelines for designing and implementing a comparison of the strengths and weaknesses of processes
secure programs on the Linux and Unix platforms. for secure software development is beneficial to all software
Concerning methodologies for assurance, the Common practitioners.
Criteria provides assurance that the process of specifica- This paper has evaluated and compared three forefront
tion, implementation and evaluation of a product has been processes for secure software construction: Microsoft’s
conducted in a rigorous and standard manner. Similarly, SDL, OWASP’s CLASP and McGraw’s Touchpoints. As

Fig. A.1. Matrix: part I of V.


1168 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

a first major contribution, the paper has articulated and differentiators of the different processes. For instance, it
structured the processes into activities, and demystified has become clear that SDL is very thorough in architec-
the relationships between the different processes. The com- tural threat analysis, Touchpoints provides a systematic
plexity of this should not be underestimated, as illustrated, way of eliciting analysis-level threats and CLASP includes
for instance, by the overlap among the different techniques the best support for architectural design. Also, the particu-
used during the elicitation of requirements and threats. A lar focus on, and different balance between, white-hat and
second important contribution is the identification of key black hat security testing in the different processes is an

Fig. A.2. Matrix: part II of V.


B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1169

important observation in this context. Finally, a research the processes, a small case study has been discussed in addi-
agenda has been articulated by discussing a number of tion that confirms the theoretical results.
improvements that are relevant for all processes, including As ongoing research, the authors are working on com-
the more systematic support for verification and the opti- bining the strong points of all approaches in order to distill
mization of processes for moving targets. While the overall an improved, consolidated process. A first activity will con-
setup of the paper is mainly based on a theoretical study of sist of selecting and combining the strongest practices for

Fig. A.3. Matrix: part III of V.


1170 B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171

all important activities in the secure development life-cycle. Appendix A. The activity-matrix
Afterwards, complementary activities can then be selected
in order to improve the overall coverage of the process. The matrix contains a section for each of the develop-
Finally, extra support for most of the areas of improve- ment phases, with each row representing a certain activity
ment that were discussed in the second part of the paper and each column representing one of the approaches. More
will have to be incorporated into the process. For some information about the matrix, and in particular per-process
of these, like metrics, a small team effort will clearly not links to the sources of the activities, can be found in a tech-
suffice to solve this challenging puzzle. nical report [22]. See Figs. A.1–A.5.

Fig. A.4. Matrix: part IV of V.


B. De Win et al. / Information and Software Technology 51 (2009) 1152–1171 1171

Fig. A.5. Matrix: part V of V.

References [12] A. Jaquith, Security Metrics: Replacing Fear, Uncertainty, and


Doubt, Addison-Wesley Professional, 2007.
[1] M. Howard, S. Lipner, The Security Development Lifecycle (SDL): A [13] J.H. Saltzer, M.D. Schroeder, The protection of information in
Process for Developing Demonstrably More Secure Software, computer systems, Proceedings of the IEEE 63 (9) (1975) 1278–
Microsoft Press, 2006. 1308.
[2] OWASP, Comprehensive, lightweight application security process, [14] J. Viega, G. McGraw, Building Secure Software: How to Avoid
http://www.owasp.org, 2006. Security Problems the Right Way, Addison-Wesley, 2002.
[3] G. McGraw, Software Security: Building Security, Addison Wesley, [15] G. Stoneburner, C. Hayden, A. Feringa, Engineering principles for
2006. information technology security, NIST Special Publication 800-27,
[4] MSDN: Security development lifecycle phases, http://msdn2.micro- Revision A, 2004.
soft.com/en-us/library/ms995349.aspx, 2005. [16] Build security in, http://buildsecurityin.us-cert.gov/, 2007.
[5] Information technology security techniques evaluation criteria for it [17] G. Peterson, Collaboration in a secure development process, http://
security, standard ISO/IEC 15408 (2005). www.arctecgroup.net/articles.htm (June 2004).
[6] B. Nuseibeh, Weaving together requirements and architectures, IEEE [18] A. Hall, R. Chapman, Correctness by construction: developing a
Computer 34 (3) (2001) 115–117. URL://citeseer.ist.psu.edu/nuse- commercial secure system, IEEE Software 19 (1) (2002) 18–25.
ibeh01weaving.html . URL://citeseer.ist.psu.edu/hall02correctness.html .
[7] Microsoft threat modeling tool 2.1.2, http://www.microsoft.com/ [19] K. Goertzel, T. Winograd, H. McKinley, L. Oh, M. Colon, T.
downloads/details.aspx?familyid=59888078-9daf- 4e96-b7d1- McGibbon, E. Fedchak, R. Vienneau, Software security assurance: A
944703479451, 2007. state-of-art report (soar), Tech. rep., Information Assurance Tech-
[8] T. Davenport, Process Innovation: Reengineering Work Through nology Analysis Center (IATAC), 2007.
Information Technology, Harvard Business School Press, Boston, [20] M. Howard, D.E. Leblanc, Writing Secure Code, Microsoft Press,
1993. Redmond, WA, USA, 2002.
[9] I. Jacobson, G. Booch, J. Rumbaugh, The Unified Software [21] D. Wheeler, Secure programming for linux and unix howto, http://
Development Process, Addison-Wesley, 1999. citeseer.ist.psu.edu/wheeler00secure.html.
[10] K. Beck, Extreme Programming Explained, Addison-Wesley, 1999. [22] K. Buyens, J. Gregoire, B.D. Win, R. Scandariato, W. Joosen,
[11] Systems security engineering capability maturity model (SSE-CMM), Similarities and differences between clasp, sdl, and touchpoints: the
standard ISO/IEC 21827, 2006. activity-matrix, Tech. rep., K.U. Leuven, Department of Computer
Science (October 2007).

Anda mungkin juga menyukai