Modeling of Security Measurement (Metrics) in An Information System
Modeling of Security Measurement (Metrics) in An Information System
Modeling of Security Measurement (Metrics) in An Information System
by
This is to certify that the thesis entitled “Modeling of Security Measurement (Metrics) in an
Information System”, submitted by Mr. Irshad Ahmad Mir in the Department of Computer
Sciences, University of Kashmir, Srinagar for the award of the degree of Doctor of Philosophy in
Computer Science, is a record of an original research work carried out by him under my
supervision and guidance. The thesis has fulfilled all the requirements as per the regulations of
the University and in my opinion has reached the standards required for the submission. The
results embodied in this thesis have not been submitted to any other University or Institute for
the award of any degree or diploma.
Security metrics and measurement is a sub-field of broader information security field. This field
is not new but it got very least and sporadic attention as a result of which it is still in its early
stages. The measurement and evaluation of security now became a long standing challenge to the
research community. Much of the focus remained towards devising and the application of new
and updated protection mechanisms. Measurements in general act as a driving force in decision
making. As stated by Lord Kelvin “if you cannot measure it then you cannot improve it”. This
principle is also applicable to security measurement of information systems. Even if the
necessary and required protection mechanisms are in place still the level of security remains
unknown, which limits the decision making capabilities to improve the security of a system.
With the increasing reliance on these information systems in general and software systems in
particular security measurement has become the most pressing requirement in order to promote
and develop the security critical systems in the current networked environment. The resultant
indicators of security measurement preferably the quantative indicators act as a basis for the
decision making to enhance the security of overall system.
The information systems are comprised of various components such as people, hardware, data,
network and software. With the fast growing reliance on the software systems, the research
reported in this thesis aims to provide a framework using mathematical modeling techniques for
evaluation of security of the software systems at the architectural and design phase of the system
lifecycle and the derived security metrics on a controlled scale from the proposed framework.
The proposed security evaluation framework is independent of the programing language and the
platform used in developing the system and also is applicable from small desktop application to
large complex distributed software. The validation process of security metrics is the most
challenging part of the security metrics field. In this thesis we have conducted the exploratory
empirical evaluation on a running system to validate the derived security metrics and the
measurement results. To make the task easy we have transformed the proposed security
evaluation into algorithmic form which increased the applicability of the proposed framework
without requiring any expert security knowledge.
The motivation of the research is to provide the software development team with a tool to
evaluate the level of security of each of the element of the system and the overall system at the
early development stages of the system life cycle. In this regard three question “What is to be
measured?”, “where (in the system life cycle) to measure?” and “how to measure?” have been
answered in the thesis.
Since the field of security metrics and measurements is still in the its early stages, the first part of
the thesis investigates and analyzes the basic terminologies , taxonomies and major efforts made
towards security metrics based on the literature survey.
Answering the second question “Where (in the system life cycle) to measure security”, the
second part of the thesis analyzes the secure software development processes (SSDPs) followed
and identifies the key stages of the system’s life cycle where the evaluation of security is
necessary.
Answering the question 1 and 2, “What is to be measured “and “How to measure”, third part of
the thesis presents a security evaluation framework aimed at the software architecture and design
phase using mathematical modeling techniques. In the proposed framework, the component
based architecture and design (CBAD) using UML 2.0 component modeling techniques has been
adopted. Further in part 3 of the thesis present the empirical evaluation of the proposed
framework to validate and analyze the applicability and feasibility of the proposed security
metrics. Our effort is to get the focus of the software development community to focus on the
security evaluation in the software development process in order to take the early decisions
regarding the security of the overall system.
Contents
List of Figures xi
List of Tables xii
List of Algorithms xiii
1. Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.2 Overview of Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .3
1.3 Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.1 General Security Terminology. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3.2 Security Definition Used in the Thesis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
1.3.3 Information Systems. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
1.4 Motivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .6
1.5 Research Goals & Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .7
1.6 Contribution. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
1.7 Outline. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
2. Security Metrics: Preliminaries & Background. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
2.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
2.2 Security Metrics Concepts. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
2.2.1 Characteristics of Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
2.2.2 Security Metrics: Properties. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .14
2.2.3 Security Metrics: Objectives. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 Security Metrics Taxonomies. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .15
2.4 Software Security vs Software Reliability Measurement: An Overview. . . . . . . . . . .19
viii
2.5 Related Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
2.6 Conclusion & Future Scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23
3. Secure Software Development & Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .25
3.2 Secure Software Development Process & Evaluation. . . . . . . . . . . . . . . . . . . . . . . . . ..26
3.2.1 Software Security Requirements. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .27
3.3.1.1 Security Requirement Engineering . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
3.3.1.2 Security Requirement Specification Languages. . . . . . . . . . . . . . . . . . . . 30
3.2.2 Secure Software Architecture & Design. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .32
3.2.2.1 Secure Design Specification Languages . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.3 Secure Software Implementation. . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . . . .35
3.3 Proposed Security Evaluation Lifecycle . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
3.3.1 Requirement Level Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.2 Design Level Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38
3.3.3 Code Level Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.3.4 System Level Security Metrics. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .41
3.4 Conclusion & Future Scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4 Security Metrics Framework: Architectural and Design Level. . . . . . . . . . . . . . . . . . 44
4.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .45
4.2 What is to be Measured . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
4.3 Security Evaluation: Software Architecture & Design . . . . . . . . . . . . . . . . . . . . . . . . . 48
4.3.1 Software Architecture & Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .49
4.3.2 Architecture & Design Selection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.4 Component Based Architecture & Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .56
4.4.1 Software Component Model . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .59
4.4.2 Component Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
4.4.3 Various Component Modeling & Compositions . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.4.3.1 Aceme Component Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .62
4.4.3.2 Kola Component Modeling . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . 63
4.4.3.3 UML Component Modeling . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
4.5 Security Evaluation Framework: Architectural and Design Phase. . . . . . . . . . . . . . . . .65
ix
4.5.1 Component Composition and Dependencies. . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.5.1.1 Dependency Metric Derivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.5.1.2 Availability Metric Derivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .72
4.5.2 Inter-Component Data/Information & Resources Sharing . . . . . . . . . . . . . . . . . 75
4.5.2.1 Confidentiality Metric Derivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
4.5.2.2 Integrity Metric Derivation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81
4.6 Algorithm Specification. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83
4.6.1 Algorithm Dependency. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .83
4.6.2 Algorithm Availability. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
4.6.3 Algorithm Confidentiality. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .86
4.6.4 Algorithm Integrity. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
4.7 Conclusion & Future Scope. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .89
5 Empirical Evaluation of Proposed Framework. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .91
5.1 Introduction. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92
5.2 Data Collection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .92
5.3 Security Evaluation Process. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4 Result Analysis & Conclusion. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101
6 Conclusion & Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
6.1 Conclusion Drawn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .107
6.2 Future work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
Publications . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
References . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112
x
List of Figures
2.1 NIST Security Metrics Taxonomy. . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . . . . . . . . . . . . . 16
2.2 Taxonomy of Vaughn et al. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.3 Taxonomy of Seddgah et al. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .18
2.4 Taxonomy of Rejio Savola. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
3.1 Security Evaluation Lifecycle in SSDP. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.2 Capabilities to Improve SSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .42
4.1 Software Security Requirements Span over Security Attributes. . . . . . . . . . . . . . . . . . . 48
4.2 “4+1” View Model for software Architecture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
4.3 Application Architecture & Implementation layers. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54
4.4 Software Component Model. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . . . . . . . . . . . .57
4.5 Software Component: Designer and Developers Perspectives. . . . . . . . . . . . . . . . . . . . .58
4.6 Aceme Like Component. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.7 Aceme Component Composition. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.8 Kola Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
4.9 Kola Component Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.10 UML Component . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .64
4.11 UML Component Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .65
4.12 An Illustration of System’s Component Composition and Dependencies. . . . . . . . . . . . .69
4.13 Direct Dependencies Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.14 Full Dependency Matrix. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.15 Component Information Flow. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
5.1 CBAD of Finger Print Attendance Automation System (FAAS). . . . . . . . . . . . . . . . . . ..95
5.2 Direct Dependency Matrix of FASS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.3 Full Dependency Matrix of FASS. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96
5.4 Individual Components Security Graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
5.5 Overall System security Graph. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
xi
List of Tables
2.1 Software Reliability Prediction Models. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .20
5.1 Data Collection Table . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97
5.2 Individual Components Result. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
5.3 FASS Over All Security Indicators. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .100
5.4 Components Categorization Based on Severity Levels. . . . . . . . . . . . . . . . . . . . . . . . . 103
xii
List of Algorithms
xiii
CHAPTER 1
Introduction
1
1. INTRODUCTION
1.1 Introduction
The Journey of man started from the Stone Age to agricultural age and now we are in the today’s
age of information technology, where from an individual to an enterprise or organizations are
heavily dependent upon information and the information processing systems. Information
ranging from personnel to commercial have been processed and exchanged by these information
systems. With the advent of Internet, the convergence of information & communication
technologies and todays very complex nature of business environment resulted in myriad trust
and information security concerns. The secure functioning of these information systems is the
utmost important and foremost concern. Information security is a field of security which ensures
the confidentiality, integrity and availability of information and information processing
resources. Many security professionals think that developing a completely secure system is
almost an impossible task. According to [Connolly, 2001] the completely secure system is one
that is disconnected from a network, encased in concrete, and lying at the bottom of the ocean. In
this networked environment where there are potential number of hackers and adversaries present,
security enforcing mechanisms needs to be incorporated in the information systems to with stand
with the both deliberate and accidental malicious intents . Verities of security enforcing
mechanisms have been developed and utilized with varying degree of success but the level of
achieved security remained almost unclear. Enforcement of security mechanisms alone does not
help unless we don’t know about how secure a system is? What level of security is desired?
Measurement has been a cornerstone of good science for centuries. More than 100 years ago
Lord Kelvin observed the importance of measurement in the physical science. He stated that if
you can’t measure it you can’t improve it and if you can express in numbers what you
measuring, you know something about it. This fact is also applicable to the security of
information system, because without knowing the level of security achieved, it is almost
impossible to protect it. We measure to reveal the conditions possibly alert the user, importantly
we measure to control processes [Fowler et al., 2004]. There are two facets in the field of
information security, one is to device new mechanisms to enforce the security protection
mechanisms and second is a reliable and systematic approach for measuring and assessing the
security level of the system.
Security has been an important quality factor in many types of interactive systems such the
complex banking software. The questions, how secure a software product or a network is? How
2
1. INTRODUCTION
secure does it need to be? The answers to these questions are possible if we have a reliable
system of measurement that can provide us both the quantative and objective indicator of
security possessed by a system. Such measurement system certainly help in sound decision
making regarding the secure system development and will ultimately provide a baseline to
enhance the security of the system in an efficient manner
Measurement is the way by which humans understand with more precision the rational world.
We measure to reveal a condition and possibly alert the user. We also measure to quantify the
magnitude of phenomena. Probably most importantly, we measure to control processes [Fowler
et al., 2004]. Paraphrasing Lord Kelvin, when you can measure what you are speaking about and
express it in numbers, you know something about it [William, 1891]. The measurement and
metric adoption is almost always a tool to improve and manage developing process [Knowledge,
2011].
The rest of the chapter is organized as: Section 1.2 presents a small overview of the security
metrics, Section 1.3 presents the terminologies used in the thesis, Section 1.4 explains the
motivation behind this work, Section 1.5 presents the goals and objectives of the study, Section
1.6 prsents the contribution made by this study followed by the outline of the thesis in section
1.7.
3
1. INTRODUCTION
responsible for the security of the overall system. To generate the security metrics that portray
the security state of a system needs a method of measurement by taking into account the internal
assessable attributes of the system to obtain the measured values.
Many major efforts to measure or assess security have been attempted. They include the Trusted
Computer System Evaluation Criteria (TCSEC) (Department of Defense,1985), Information
Technology Security Evaluation Criteria (ITSEC) (Commission of the European Communities,
1991), Systems Security Engineering Capability Maturity Model(SSE-CMM) (International
Systems Security Engineering Association, 2008), and Common Criteria (Common Criteria
Portal, 2006). Each attempt has obtained only limited success. It is reasonable to infer from the
experience to date that security measurement is a tough problem, not to be underestimated
[Bellovin et al., 2006]. Further evidence is that the topic, Enterprise-Level Security Metrics, was
included in the most recent Hard Problem Lists prepared by the INFOSEC Research Council
(2005), which identifies key research problems from the perspective of its members, the major
sponsors of information security research within the U.S. Government.
1.3 Terminology
In this section we put forward the various important definitions and terms used though out the
thesis.
4
1. INTRODUCTION
5
1. INTRODUCTION
Since our security evaluation aim at the software systems, in this thesis we use the term
information system or simply a system to refer to software systems.
1.4 Motivation
The reliance on the information system especially on the software system is increasing day by
day. Security of these systems becomes the utmost necessity of the time. Even if the security
enforcing mechanisms are to be adopted, the one main question, “How much secure we are” still
remains unanswered. It is so rightly stated by Lord Kelvin that “if you can’t measure it then you
can’t improve it. Measurements play a vital role for the application of security mechanisms to
these systems. In practice the security evaluation is carried out through reasoning and guess work
rather than the direct measurement of the of actual hardware and software components [Jansen,
2010]. In particular to the software engineering process various quality attributes have been
investigated and studied by the researchers across the globe. The security got very least attention
and always treated as an add-on property [Savola et al., 2009]. If the secure software engineering
in practice is carried out that also has been carried out in isolation from the software engineering
process [Meadows, 1994]. Like other quality attributes, security needs to be considered
throughout the development phases of the software development. The advantage of security
considerations in the early stages of the software life cycle is twofold. On one hand it promotes
the more secure systems and on the other hand detection and correction of the security flaws in
the early stages of the system life cycle can considerably reduce the cost and efforts required in
the further stages of software life cycle. Application of security mechanisms in the software
development requires the identification of the most critical components of the system involving
the higher risk. Such identification should not be based on the guess work instead; it requires a
well-defined well-established measurement process and the metrics that provides the software
engineers preferably the quantative indicators of the security posture of the system. The
challenge posed by the today’s vulnerable networked environment and the potential number of
threats posed by both intentional and unintentional malicious intents demands that the system
should be evaluated for the security . In his book [Jansen, 2010] realized the importance of
security evaluation and metrics, the current progress in the field and pointed out the main areas
that needs to be taken care by the research community.
Some of the major limitations and motivational aspect of the field of measuring security are:
6
1. INTRODUCTION
There is no effective security evaluation framework which developers can use to evaluate
the system at the early development stages.
The current practice of security is still a highly diverse field, and holistic and widely
acceptable approaches are still missing [Savola, 2007].
Much of what has been written about security metrics is definitional, aimed at providing
guidelines for defining a security metric and specifying criteria to strive for. However,
relatively little has been reported on actual metrics that have been proven useful in
practice [Center for Internet Security, 2008], [Berinato, 2005].
7
1. INTRODUCTION
1.6 Contributions
With the fast growing reliance on the information systems especially the software systems, the
challenge for the security professionals and the research community is to deliver the secure
system operations. The advance in the security of any system is only possible if we know how
much secure it is and how much secure it needed to be. The answer to these questions can only
be possible if we have such mechanisms and scales to measure the security level of a system.
The measure contributions of this thesis are:
1. Since the field of security metrics is still young , based upon the survey of existing
studies analyzed the basic of security metrics and the taxonomies of the field
2. We surveyed the existing studies on the secure software development process and the
tools used in capturing and analyzing the security related issues throughout the software
development. Based on the survey we have identified the measure stages of a system
lifecycle where security evaluation is to be carried out.
3. Proposed a security metric framework using mathematical modeling techniques to derive
the metrics on a controlled scale, for the architecture and design stage of the system
lifecycle.
4. We have empirically evaluated the proposed security evaluation framework and the
proposed metric on a running system, in order to check the feasibility and the
applicability of the proposed framework and derived security metrics.
1.7 Outline
Chapter 2 discusses the preliminaries of the security metrics. Since the field of security metrics is
still in its initial stage various terms and taxonomies regarding security metrics have been
discussed. The chapter also point out some of the major efforts made towards the security
metrics.
Chapter 3 discusses the security in software development in general and security metrics in
particular. Further chapter discusses the stages of the software lifecycle where the security
8
1. INTRODUCTION
evaluation is necessary and must be carried out. Various tools and techniques in secure software
development process have been discussed.
Chapter 4 discusses the factors and attributes of that any security evaluation process should strive
for. It also discusses the various software and architectural process that have been adopted in
practice along with the relative merits and demerits. Further an extended novel security
evaluation framework for the software architecture and design has been proposed and derived the
metrics using mathematical modeling techniques in the chapter.
Chapter 5 presents the empirical evaluation of the proposed framework on a running system, in
order to validate the results and to analyze the feasibility, efficiency, and applicability of the
proposed framework. It begins with the data collection followed by the application of the derived
security metrics of the framework and result analysis.
Chapter 6 summarizes the major findings of this work and the contribution to knowledge made
in in this thesis. Further it, presents the future scope of the work for further research.
Some of the material presented in the thesis has been published previously. The complete list of
the published articles follows the chapter 6.
9
CHAPTER 2
10
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
2.1 Introduction
With a shift from standalone application to the complex interconnection of insecure components
and networks, the information systems especially the software systems are becoming more and
more vulnerable. Verities of protection mechanisms and security approaches are applied but the
resulting security level remains unknown. Like other software quality attributes, the level of
security a system possess need to be outlined and measured. Such security metrics can be
utilized in many ways to benefit an organization, including increasing accountability, improving
security effectiveness, and demonstrating compliance [Alger et al., 2001] “How much secure a
software system is? “ “How secure does a system need to be?” “What are the factors responsible
for the security of the system?” and “The stages in the software development where the security
need to be evaluated”, these are questions that are asked to those who work to evaluate the
efficiency of security efforts. The answer to all these questions can be only possible if we have
such security metrics that evaluate the system for security and provide the evidence of the
security level and performance of the System under investigation.
In particular to the software systems several quality attributes, such as reliability, size,
complexity etc. have been investigated and evaluated. Very least attention has been remained
towards the evaluation of security. Literature surveys showed that the security is an emerging
concern in the current times ranging, from an organization to an individual. The area of security
metrics is very hot and demanding but at the same time the field is very young [Jansen, 2010].
The problem behind the immaturity of security metrics is that the current practice of information
security is still a highly diverse field and holistic and widely accepted approaches are still
missing [Savola, A 2007]. The field still aims mainly at the basic definitional aspect and lacks in
well-structured literature at hand. According to [Savola A, 2007] in order to make an advance in
the field of measuring, assessing or assuring security, the current state of the art should be
investigated thoroughly. In this chapter we present the preliminaries of the field of security
metrics and based on the literature survey analyze the relevant major effort made for measuring
the security of information system in general and for the software system in particular.
The rest of the chapter is organized as: Section 2.1 prsents some preliminary concepts of security
metrics, theirs properties and objectives. In section 2.3 investigates and presents some major
taxonomies in the field of security metrics, Section 2. 4 presents some of the major efforts made
11
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
towards the actual measurement in a classified manner, followed by the section 2.5, which
presents the conclusion
12
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
In their work [Farooq et al., 2011], outlined the importance of measurements and metrics and
their relation to the software testing. In the same work [Farooq et al., 2011] analyzed the
process of software measurement process in general, which is comprised of following key stages.
Planning: Defining the procedure and scope of the measurement process.
Implementation: The actual application of measurement process and procedure defined
at the planning stage. The output of this stage should be in the form reports of
performance related data.
Improving: Based on the process and progress evaluation (through the reports generated
in the implementation phase) the necessary decision is to be taken in order to make an
improvement to the system.
The output scale of the software measurement and metrics is possibly hierarchal in nature, which
is comprised of various levels. Each level scale in the hierarchy possesses all the properties of
lower level scale in the hierarchy. In the same work [Farooq et al., 2011] identified the five
measurement scale based on the literature survey.
13
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
security requirements for each of the system or organization vary according to the needs, so the
security evaluation should be based on the well-defined security attributes such as
confidentiality, integrity, availability, privacy, nonrepudiation etc.
14
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
15
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
Contingency
Maintenanc
Planning
Awareness
& training
Production
HW/SW
Protection
Integrity
Personnel
Physical
Security
Control
Data
& IO
Doc.
Operational
Incidence
Response
Control
Access
Trails
Audit
Technical
Metrics
Authorization
Identification
&
Controls
Security
Cycle
Life
Management
Certification &
Plans
Accreditation
Security
In their study [Vaughn et al., 2003] proposed a taxonomy for Information Assurance (IA)
metrics. They divided the taxonomy into two distinct categories of security metrics (a)
Organizational security metric (b) Technical Target of Assessment (TTOA). The former aims at
providing the feedback to improve the security assurance status of the organization. The second
category metrics (TTOA) is intended to measure the security capability of a particular system or
product. Both categories are further categorized in order to put the specificity in terms of
measuring security. Above figure (2.2) shows the higher level classification of the taxonomy.
16
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
Weakness
TTOA
Strength
Development
Effectiveness
Program.
Operational
Support
Organizational
In their [Seddigh et al., 2004] proposed a new taxonomy for IA (information assurance) and IT
networks that aim to provide the basis and motivation for the research in overcoming the
challenges in the area. In Their taxonomy the metric space is divided into three categories:
Security, QoS, and Availability. Each of these categories is further categorized into three
subcategories as technical, organizational and operational metrics, which are further categorized
into 27 classes. According to them, organizational metrics evaluate an IT organization’s
emphasis on IA (Information Assurance) in terms of goals and organizational policies. Technical
metrics evaluate the technical components of an IA network and also the subset metrics under
this category provides the rating, incident statistics and security testing. Operational metrics
evaluate the operations of an IT organization in terms of complying with the goals and policies
17
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
set by the organization. Figure (2.3) shows the proposed taxonomy by the authors at the higher
abstract level of classification.
Technical
Operational
QoS
al
Availability
Operational
Metrics
Organization
Technical
al
Operational
Security
Organization
al
In his study [Savola. A, 2007] proposed a security metrics taxonomy based on the literature
survey. The main aim of the author is to bridge the gap between Information Security
Management and Information and Communication Technology Industry (ICT). In this taxonomy
the author’s intent was to enhance the composition of feasible security metrics all the way from
the business management to the lowest level of technical details. This taxonomy categorized the
security metrics in a tree like structure into six levels from L0 to L5 with business level security
metrics at the root (L0) and the implementation level technical metrics at the leaf nodes (L5). At
the higher level, business level security metrics are divided into five sub categories, (i) Security
metrics for cost-benefit analysis, containing economic measures such as ROI (return on
investment) (ii) Trust metrics for business collaboration (iii) Security metrics for information
security management (ISM) (iv) Security metrics for business level risk analysis (v) Security
18
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
dependability and trust (SDT) metrics for ICT product system and service. The author further
provided the sub categories of the above category (iii) and (v). Below diagram shows the
All the proposed security metrics taxonomies are conceptual and abstract in nature. Very little
has been reported on the actual scale of measurement. From these taxonomies it is evident that a
great deal of efforts is needed to devise the metrics that can be applicable in real practices.
2.4 Software Security vs. Software Reliability Measurement: An Overview
Software reliability always remained an important quality attribute of the software system and
various efforts to evaluate and measure the reliability has been made. The idea of security and
reliability are technically derived from the requirement to describe correctness. Both the terms
have grown up in different domains of thinking. Security can be defined as a functional statistical
predictability statement where the answer to the question being secure or not is whether a given
system specified can be expected to continue to function for some period in some specified
manner. Reliability can be defined as a functional statistical predictive statement of predictability
where a system in reliable state or not is whether a given system can be expected to continue
function for some specified period in some specified manner [Roy D. Follendore, 2002].
Reliability and security are not the isolated from one another; instead reliability has a great
impact on the security of a system. The "reliability of security" is often considered but the
"security of reliability" is not often considered [Roy D. Follendore, 2002]. As far as software
measurement is concerned the various efforts have been made to device the new and updated
19
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
metrics, models and measurements techniques to evaluate the reliability of the software systems
and very least efforts to evaluate the security of software system has been made . The main
problem behind it may be the multifaceted nature of security and the dependency of security on
the various other qualities attributes like testing and reliability of the software systems. In their
work [Farooq et al., 2012], presented an in depth analysis of the key concept, metrics, models
and measurement used in software reliability. Since the reliability is the probability of a system
or components to perform its required service without failure under stated conditions for a
specified period of time [Farooq et al., 2012]. Various probabilistic models and methods have
been proposed to predict the reliability of a system. Among the proposed model and methods the
software reliability growth models (SRGM) has been used to predict the reliability of the
systems. SRGM shows how reliability of a system improves in a period of time when the faults
are detected and repaired. SRGM is actually used to determine when to stop testing to attain a
given reliability level [Quadri S. M. K et al, 2011]. Over the last three decades many efforts
have been made to develop the SRGMs. Among them [Musa et al., 1887], [Xie, 1991], [Lyu,
1996], are the most common SRGMs and verities of metrics like number of remaining faults,
mean time between failure (MTBF), and mean time to failure (MTTR) have been derived. In the
later times [Bokhari and Ahmad, 2006], [Quadri S.M. K et al, 2006] proposed the
probabilistic software reliability growth model based on Non-homogeneous Poisson process
(NHPP) which incorporates the testing efforts. Further in their work [Quadri S.M.K et al, 2011]
a scheme for constructing software reliability growth model (SRGM based on (NHPP) have been
proposed.
Table 2.1 Software Reliability Prediction Models
Model Year Author(s)
20
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
Above table (2.1) summarizes the major efforts made towards modeling the reliability prediction
of software system based on the software reliability growth models (SRGMs). On the other hand
there exists no such probabilistic model to predict the security level of the system over a
specified time period. Systematic efforts are needed develop the models and methods to predict
the security of the software systems. The methods and models of reliability prediction can used
to understand the state of art of prediction and measurement.
21
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
carry out an attack on the system. These resources are the methods, channels and data of the
system. Based on the direction of flow of data they further technically defined the entry points
and exit points of the system which are actually the methods of system through which the flow of
data takes places. Authors defined the attack surface as subset of system resources that an
attacker can utilize carrying out attack on the system and accordingly quantifying the resultant
security indicators. Larger the attack surface of a system more the system vulnerable to the
attacks. Further the authors analyzed the feasibility of the proposed approach by measuring the
attack surface of open source FTP daemons and two IMAP servers.
Major efforts made towards the security measurement by taking the capabilities and resources of
an attacker into consideration also known as attacker-centric security metrics are [Leversage et
al., 2008], [Miles et al., 2005] and [Ortalo et al., 1999]. In these studies the security
measurement is carried out by analyzing the ways an attacker can carry out the successful attack
on the system with respect to the knowledge and resources at hand. In contrast the proposed
security metric framework in this thesis chapter (4) is based on the system architecture and
design. Being an independent of attacker’s capabilities our proposed framework act as a tool for
the software development team to measure the inherent security of the system and enables them
to take the necessary decisions regarding security.
[Littlewood et al., 1993] proposed a conceptual model based on probabilistic methods which
initially used for reliability analysis, to measure security of a system. In their conceptual model
they proposed the usage of the efforts made by an attacker to carry out a successful attack on the
system as a measure of system’s security.
In the second category where the knowledge of vulnerabilities reported in past and the present
vulnerabilities [Alhazmi et al., 2006] proposed a vulnerability density (VD) metric which is
defined as the number of vulnerabilities in a unit size of code. From the VD the authors further
proposed a set of metrics such as vulnerability discovery rate (VRD) which is the number of
vulnerabilities identified per unit time and known vulnerabilities density (VKD). In contrast the
proposed security metric framework in this thesis chapter (4) is independent of the knowledge of
the past or present vulnerabilities.
[Alves-Foss et al., 1995] proposed the measurement of a system using System Vulnerability
Index (SVI) as a measure of system vulnerability to common intrusion methods. SVI is
22
2. SECURITY METRICS BACKGROUND & PRELIMINARIES
calculated by evaluation the various factors like “system characteristics”, “potentially neglectful
acts” and “potentially malevolent acts”.
[Voas et al., 1996] proposed the security metric based on the technique of deliberate fault
injection. The fault injection is carried out by simulating the threat classes of the system by
mutating the variables during the execution and then observing the impact of threat class on the
behavior of the system. Finally they have proposed a minimum-time-to-intrusion (MTTI) metric
based on the time before any simulated intrusion can take place.
[Schneier, 1999] proposed the attack tree to analyze the security of a system. The attack tree is
constructed by setting the attackers goal as the root and branches of the tree as the different ways
that an attacker can adopt to carry out the attack on the system along with the cost involved along
with each of the possible path to carrying out the attack. The cost estimation becomes the
measure of the system security. The prerequisite to generate an attack tree is the knowledge
about attacker’s goals, system vulnerabilities, and attacker’s behavior.
Many other conceptual security measurement efforts are made by [Littlewood et al, 1993],
[Madan et al., 2002],[Stuart, 2004]. These metrics are conceptual in nature and haven’t been
applied in real security evaluation of the systems.
23
CHAPTER 3
24
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
3.1 Introduction
Information system encompasses many components like people, hardware, software, data, and
networks. Each of these components must be secure enough for the smooth and reliable
functioning of the information system. One of the most important components relative to the all
other components of information systems is the software systems. Incorporating the security in
software product or system is a long standing challenge for software developers and even more
challenging is to evaluate the level of security achieved in the software in development and after
the development phases. Developing secure software is not an advantage but has become a
necessity for the software organization. Measuring security is necessary in order to mitigate the
risk associated with the software [Chandra et al, 2008]. In Todays networked environment, the
software is becoming more vulnerable to both the deliberate and accidental malicious intents.
The main reason behind the security holes in the software is due to the negligence of addressing
security issues in the software development process. Security is always treated as an afterthought
in the software development process, and dealt with after the system development stages by
providing the required preventive measures. Security needs to be considered from the very
beginning of the software development life cycle [Wang et al., 2003], [ Devanbu et al., 2000] .
Such secure software development process should start with the security requirements, known as
NFR (Non Functional Requirements) along with the procedural software requirements, followed
by the secure design and implementation. If the secure software development is followed right
from scratch, still the level of security achieved remains unknown to the development team.
Again the same 122 years old principle of Lord kelvin [Kelvin, 1891] “If you can’t measure it,
you can’t improve it”, comes into the act. So we need the adequate security metrics that can be
applied during and after the software development phases to answer the one big concern,” How
secure our software is”, so that the appropriate corrective measures can be taken earlier, in order
to produce the more secure software. In order to measure the security of software system there
are three main questions (i) where it is to be measure? (ii) What is to be measured and (iii) How
it is to be measured? First question aim at the identification of feasible stage in the software
development where the security evaluation process is necessary and must be carried out, second
first question is about the identification of baseline to strive for in the measurement process, and
25
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
the last question is about devising an adequate mechanism, process, or a framework that can be
applied with ease to evaluate the level of security of a system.
In this chapter we analyze the various approaches tools and techniques that can be utilized in
secure software development process. In an attempt to answer the first question above, in this
chapter we identify the key stages of software life cycle that are candidate for the evaluation of
security. The identified stages becomes as a security evaluation life cycle for software systems.
Rest of the chapter is organized as: Section 3.2 presents the processes and limitation of secure
software development process in general and the basis for the security evaluation in development
in particular. Various stages and tools used in secure software development process are presented
in the subsection 3.2.1, 3.2.2, 3.2.3 respectively. Each of these sections is further divided into
subsections to present the various software artifacts specification languages in an organized
manner. Section 3.3 presents the identification ideal and necessary stages of the software
lifecycle for the where the security evaluation is necessary and must be carried, also called as
security evaluation lifecycle. Finally the Section 3.4 presents the conclusion.
26
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
development focus on the security issues right from the beginning from requirement, design and
implementation phases of SDLC. Many ideas of secure software development (SSD) methods
have been proposed [Khan et al., 2009]. However the process of software development still
follows the conventional SDLC models and process. In their study [Khan et al., 2009] have
summarized the various secure software development lifecycle (SSDLC) processes and also
provided the detailed comparisons of these processes based on the identified characteristics.
Typically SSDLC is comprised of following phases.
1. Software Security Requirements
2. Secure Software Architecture & Design
3. Secure Software Implementation and Coding
4. Security Assurance
27
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
address and remove such security holes incurred during the requirement phase. This can lead to
security flaws in the design phase, because the primary focus of the developers remains on the
functional parts rather than the non-functional aspect of the system. Exploitation of security
flaws in such software occurs due to the circumvention of security mechanism rather than
breaking such mechanisms [Jürjens 2002].
28
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
of steps of an attack. There are mainly three approaches [Diallo et al., 2006] Common Criteria
(CC), Attack Tree and Misuse Cases, followed for the specification of security requirement.
Common Criteria (CC): The Common Criteria (CC) is a comprehensive method for security
requirement elicitation, specification and analysis. It provides the method for documenting
security requirements in a repeatable manner. In Common Criteria (CC), the security
environment and security objectives are identified by examining the Target of Evaluation (TOE),
which in turn are analyzed to produce the security requirements. The security environment
provides the scope and nature of security problem for the system under investigation. The
security environment also acts as a basis for the security objectives and the selection of security
requirements of a system. The end result produced by Common Criteria (CC) is a Protection
Profile (PP) and Security Target (ST) documents. The PP is intended to identify the desired
security properties of the system and ST is intended to identify what a system actually
accomplishes relevant to the security.
Attack Tree: Attack tree is a systematic process for the identification and specification of
security based on the various attacks [Viega et al., 2001]. In this method the security of a system
is outlined by thinking in terms of an attacker’s point of view. The attacker’s activities and
intentions are modeled in the form of a tree which depicts all the possible ways an attacker can
adopt to attack the system to achieve a particular goal. In the attack tree the goal of an attacker is
at the root of the tree and the different ways to accomplish the goal as the leaf nodes. There are
two types of nodes in an attack tree, the AND node and OR node. OR nodes represent the
alternative ways whereas AND nodes represent the different ways to achieve same goal. Attack
trees have been used for the specification of security requirement of a system by presenting
security in attacker’s point of view. The attack tree creation to make decision regarding security
involves following steps [Diallo et al., 2006]:
Identification of possible goals of an attacker. Each identified goal forms a separate tree,
although they may share same sub-trees and nodes.
Identification of all attacks to achieve each goal and adding the identified attack into the
tree. Repeat the process down to all nodes and branches.
Misuse Case: Misuse case is presented in the next section under Software Security Specification
Languages.
29
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
30
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
acts as a specification of high level security requirements of the software called as security use
case [Firesmith, 2003]. Following steps are followed to create Misuse Case [Moore et al.,
2001] :
Describe actors and use cases in normal way suggested by UML methods.
Introduce the major mis-actors and Misuse Case.
Investigate the potential “includes” relations between Misuse Case and Use cases.
Introduce new Use case for detecting or preventing Misuse Cases.
Continue with more detailed requirements documentation.
(ii) Abuse Case [McDermott et al., 1999]: This is another extension to UML to represent the
undesirable behavior of a software system. It uses the actors and the abuse case to specify the
harmful interactions. Like misuse case there is no notational difference between the UML use
case and the abuse case diagrams. In his study [Firesmith, 2003] proposes that all potential
harmful interactions should be specified as separate abuse cases. It also recommend for using a
tree structure to elicit multiple approaches. In this the detailed specification of actors which
includes skills, resources, and objectives should also be included. It also arguments that abuse
case can be used to guide design and testing.
(iii) UMlintr [Hussein et al., 2006]: Another extension to the basic UML for the specification
of security requirements is UMLintr. It uses stereotype and tags to specify attacks using use case
diagrams, There are about 15 stereotypes, among which three are defined for classes along with
the tags and twelve for the use case diagrams.
(iv) AsmLSec [Raihan et al., 2007]: AsmlSec is the extension of the original AsmL
(Abstract State machine Language) which is based on the extended finite state machine. Attacks
involving multiple steps can be specified in AsmL. AsmLSec uses states, events, and transition
diagrams to represent attacks. Each transition has a source to destination state, the set of
conditions for a transition and action to be performed in case of a transition takes place. Such
attack scenarios represented in AsmLSec gets translated into AsmL through a specially
developed compiler.
Different security requirement specification languages have different properties and limitations.
Decision to choose a particular language among these is based up on these properties. In [Khan
31
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
32
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
5. The prioritization of secure design decision should be carried out to remove threats based
on cost-benefit analysis.
6. Previous specified secure design decision should be identified. The Security
vulnerabilities in the existing similar software can also be used as checklist.
7. A threshold of acceptable security needs to be defined. Security index of the design must
be within the threshold.
8. If the calculated security index not satisfies the threshold level, then secure design to
remove the errors should be specified.
The secure software design is still in the early stages; in practice secure software design
guidelines are widely used. These secure design guidelines are the suggestion and the principles
based on the experience the developers have gained while solving software security problems
repeatedly. In [Doan et al., 2004] proposed three software security design principles that are
intended to associate software and security design concepts. The proposed principles are:
Principle 1: The software design has multiple iterative phases and the security features should be
incorporated and adjusted during each of those phases.
This author [Doan et al., 2004] suggests that the principle 1. can be achieved by utilizing the
UML (Unified Modeling language). From the UML use case diagrams representing the
requirements, the UML class diagrams at the higher level of abstraction with only attributes and
methods signature should be specified. The designer needs to return to the UML use case and
associate the use case with the classes as required. This may also result in the design of new
classes between actors and use case. With the increasing maturity of the design, the use case of
requirement phase and the associated design phase classes can be combined together into the
sequence diagrams. As the process of design progress further, other UML diagrams such as
collaboration, object, state, activity diagrams etc. may be supplied. With each sub phase of the
design phase the security level of the design gets improved repeatedly
Principle 2: Security assurance is relative to the phase of software design and the chosen
Security Assurance Rules (SARs).
This principle stipulates that the security assurance be evaluated against the respective software
design phase to constantly enforce Software Assurance Rules (SARs). The author in [Doan et
al., 2004] suggests that the principle 2 can be achieved by utilizing the SARs (Software
Assurance Rules). These SARs are derived from the higher level security policies. The idea is, as
33
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
the design context changes from one to the next in UML, different SARs are to be utilized to
enforce the security features for that sub-phase of design.
Principle 3: The security incorporating process should neither counter the intuition nor decrease
the productivity of the software designer.
In literature various principles for secure software design have been proposed. To start with, first
set of guidelines proposed in [Saltzer et al., 1975]. These guidelines have elaborated by
providing the examples in [Bishop, 2004]. In their study, [Howard et al., 2009] have proposed
secure sets of secure design guidelines. In his study [Peine , 2008] have analyzed and refined the
guidelines proposed in the earlier studies as result of which a consolidated set of secure
software design guidelines by adding and modifying the adequate guidelines from the existing
sources and also some newly proposed have been reported.
34
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
35
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
system to make an improvement and the evaluation afterwards is required for the assurance of
the applied security process.
36
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
software development process there should be a security metric framework that should act as a
tool which take the software artifacts as in put input and provide preferably the quantative
indicator about the security posture of the system and its components. Figure 3.1 shows the
applicability of security metrics in secure software development process. It also provides the
answer to our first question “Where in the life cycle of a system security evaluation is to be
carried out”.
Secure Software
Development Phases
37
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
According to our argument there are four key stages of a system life cycle where the security
metrics are necessary & play vital role in order to produce the secure software. As depicted in
above figure (3.1) the four key stages of system lifecycle that are the candidate for the evaluation
of security are:
(i) Requirement Level Evaluation Security Metrics.
(ii) Architecture & Design Level Security Metrics.
(iii) Code Level Security Metrics
(iv) System Level Security Metrics.
38
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
measure security level of each of the component of the system, the design activities involved and
identify the critical elements of the system, are highly desirable. Further such metrics that
provide the development team with preferably the quantative indicators of the level of security
can certainly provide the basis to the software developers to take the necessary corrective
measures early in the system life cycle in order to produce the more secure system, that can
withstand both with intentional and unintentional malicious intents. The metrics should be easy
to apply i.e a non-security professional should also be able to easily apply the security metrics. In
their study [Chandra et al., 2008] proposed the security estimation life cycle for the design
software systems. It comprised of three stages as:
Stage 1: Input Process
HLD/LLD
Stage 2: Security Estimation Process
Identify Security Factors
Identify/Design Metric Suite
Validate Metric Suite
Quantify Security Factors
Estimate Security
Stage 3: Output Process
Qualitative Analysis
Overall Security Analysis
The security estimation life cycle begins design diagrams, High Level Diagrams (HLD) or Low
Level diagram as the input to the estimation process. In the second stage the process to use
security metrics comprises of five steps. First the identification of the factors that needs to be
measured followed by the design metric suite. The design metric suite is actually a set of metrics
derived from a security evaluation framework to be used as a tool for evaluating the security.
The selection of the metric framework is followed by the validation of metric suite, to validate
and check the effectiveness of the metric selected metrics suit. Validation process is followed by
the quantification of security factors and the estimation of final security. The proposed security
estimation [Chandra et al., 2008] can be applied in iterative manner until certain predefined
security level is not achieved.
39
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
Identification of security factors and the selection of metric suit of above security estimation
lifecycle is in itself a critical and hot research area. Such security metrics that can evaluate each
and every aspect of the system architecture & design is very complex problem and is still in its
infancy stage. Considering the importance of a system architecture and design, very few efforts
have been made towards the security metrics that can be applied at this phase of the system life
cycle. The main focus is either remained at the top overall system level or the lower code and
implementation level. In chapter 4; we have proposed a security metric framework for the
architecture & design phase of software development. The proposed framework somewhat
follows the same security estimation life cycle and is easy to be used by the development team.
40
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
of already known vulnerabilities, residual vulnerability density (VRD) which is calculated as:
VRD= VD-VKD.
41
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
capabilities (figure 3.2) , provides a conceptual foundation for the research roadmap in secure
software development.
Define Security
As evident from the above figure (3.2), security metrics are corner stone for the secure system
engineering. After defining the secure architecture, security metrics are needed in order to apply
the necessary security engineering methods, processes and tools.
42
3. SECURE SOFTWARE DEVELOPMENT PROCESS & SECURITY METRICS LIFECYCLE
especially at the software architectural and development stages. Lots of efforts are needed to
device the metrics at each of the identified stages of the system lifecycle, which should take the
software artifacts as an input and provide the resultant security indicator in a controlled manner.
43
CHAPTER 4
44
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
4.1 Introduction
The most challenging task in the software development is the transformation of both the
functional and non-functional requirements into the design and architecture of the software
compared to other activities. Design and Architecture depicts the overall structure of the system
by transforming the higher level requirements into the design artifacts. The main issue during the
design and architecture phase is to identify the core abstractions from the requirements based on
which system is structured. These core entities are very hard to find and needs the investment of
skills and creative design process [Bosch et al., 1999]. Once the abstractions are identified, the
detailed interactions between them are defined. Decisions made at the architectural and design
level are the earliest decisions in the software development process and can have the great
impact on the software quality [Williams et al., 1998]. Software Design act as a blueprint for
overall system development activities, a minor imperfection in the design can cause a serious
damage and requires extra efforts and cost to mitigate the risk in later stages. For example fine
tuning only the code without any consideration of security evaluation at design phase to neglect
the security risk can eliminate some risk but the developed system will not remain secure for
much longer period of time , because new vulnerabilities gets introduced with time once the
weakness in the architecture and design gets identified. From the literature and our experience
most of the security vulnerabilities start stemming into the system due to lack of consideration of
security issues in early development stages especially at the design and architecture phase of a
system. As stated by [Williams et al., 1998]:
“Whether or not a system will be able to exhibit its desired (or required) quality attributes is
largely determined by the time the architecture is chosen.”
So system architecture and design should be evaluated for the security attributes in order to
answer such question and to take the necessary corrective measures. Evaluation of a system
design and architectures for the quality attributes such as reliability, reusability, modification
performance, response time, throughput etc. remained a central focal point of the research
community. Security specification in the requirement phase through both the Functional
Requirements (FR) and Non-Functional Requirements (NFR) once transformed into higher level
45
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
architecture and design, needs to be evaluated for the security to ensure that the design meeting
the specified requirements and to take any corrective or preventive measures if required. The
security evaluation framework and the metrics should act as a tool for the development team
without requiring any personnel expertise, because most of the software developers focus much
on the functionality and having least knowledge about the security issues. More over the result of
the metrics should be reproducible i.e. the result of the evaluation should remain same if carried
out by multiple persons.
In chapter three (Section 3.1), we have posed three questions regarding the security evaluation of
a system: Where in development stages the security evaluation is to be carried out? The answer
to this question is given in Chapter (3) by identifying the key stages of a system life cycle where
the security evaluation is necessary. Second and third question,” What is to be measured in order
to evaluate security posture of a system” and “How to measure security “are concerned to find
out the factors or attributes against which the security is to be evaluated and a mechanism to
evaluate the security respectively. In this chapter we answer the second and third question by
proposing a security metric framework and derive the security metrics for the architectural and
design phase of the software development using mathematical modeling techniques. Our
evaluation framework in based on the Component Based Architecture and Design (CBAD) and
Component Based Software Engineering (CBSE), because we believe that Component Based
Architecture Design (CBAD) provides moderate level of abstraction , which is neither too
coarse-grained like Service oriented Architecture & Design (SOAD) nor too fine-grained like
Object Oriented Architecture and Design (OOAD). Also it requires least efforts to transform the
other software architectural and design specification into CBAD.
The rest of the chapter is organized as: In identifying the baseline to strive for in the security
evaluation process Section 4.2 provides the answer to the question, what is to be measured?
Since the proposed evaluation framework aim at the architectural & design phase of system life
cycle, Section 4.3 presents the various architectural and design techniques. In the Subsection
4.3.2 the decision regarding the selection of architectural and design has been presented. Section
4.4 prsents the components based software architecture the various issues and modeling
techniques present. Section 4.5 presents the proposed security evaluation framework.
Subsections 4.5.1 and 4.5.2, presents the derived security metrics for four major security
attributes (dependency, availability, confidentiality and integrity have been proposed) using
46
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
mathematical modeling techniques. Section 4.6 prsents the security metric framework with
respect to these attributes in a semi-automated, algorithmic form. Finally Section 4.7 prsents the
conclusion and future work.
47
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Confidentiality
Integrity
Availability
Security Requirements
Authentication
Privacy
Dependency
Authorization
Non-Repudiation
Figure (4.1) depicts the span of non-functional security requirements over the well-established
security attributes. The security is not only limited to these attributes, instead the notion of
security encompasses both the traditional security attributes and classical dependability attributes
[Nicol et al., 2004]. Among these attribute the confidentiality, Integrity, and availability (CIA)
are the fundamental to the security. Other attributes are also important to the security but are the
extension over the basic CIA to encompass each and every aspect of security of a system. In our
proposed security evaluation framework we evaluate the system and its components against these
specified security attributes.
48
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
the due course of time. Since our evaluation framework aim at the software architectural and
design phase, so our foremost focus is to identify the commonly used software architecture and
design techniques that have been adopted by the developers in real practices and their feasibility
in security evaluation .
49
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
data structure and algorithms in the system. There are various definitions and understanding
about software architectural in the literature. Some of them are as:
According to [Bass et al., 2003], Software architecture of a system is the structure or structures
of the system comprise of software components, the externally visible properties of those
components, and the relationship among them. The externally visible properties are the
assumption such as provided service, performance characteristics, resource sharing that other
components in the architecture make about a component. According to the definition the
purpose of software architecture is to provide an abstraction to hide some information from the
system (otherwise there is no point looking at the architecture, we are simply viewing the entire
system) [Muskens et al., 2002] and yet provide enough information which act as the basis for
analysis, evaluation, decision making, and hence risk reduction.
According to [Booch et al., 1999] an architecture is a set of significant decisions about the
organization of a software system, the structural elements and their interfaces by which the
system is composed together with their behavior as specified in the collaboration among those
elements,. Further the composition of these structural and behavioral elements into progressively
larger subsystems, and the architectural style that guides this organization.
In his study [Kruchten, 1995] presented a model “4+1 view model” for describing the
architecture of a software intensive system based on the concurrent views. Software architecture
is in place to deal with the design and implementation of high-level structure of the software. It is
the result of assembling a certain number of elements in some well-chosen form to satisfy the
major functional as well as well as non-functional requirements. The “4+1 view model”
proposed by the author addresses large challenging architectures which is made up of five main
views as shown in figure (4.20. The first four views are the core around which the software
architecture can be organized and the fifth view is for the illustration by use cases, or scenarios.
The core views are:
Logical view
Process View
Physical View
Development View
50
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Scenarios
Logical View: Logical architectural view supports the functional requirements of the system
and depicts the details about what services it provides to its users. The system is decomposed
into a set of key abstractions in the form of objects and classes. Beside the functional
decomposition in the various components, the logical view shows the logical dependencies
among the components. Later in our Security evaluation framework we have used the component
diagrams comprised of component, relationships, interface and description defined and discussed
later in the due course of time.
Process View: Process view architecture covers some non-functional requirements. It captures
the concurrency and synchronization aspects of the design. Process architecture of a system can
be described at many level of abstraction each addressing different concerns. At the higher level ,
it can be viewed as a set of independently executing logical networks of communicating
programs (processes), distributed across a set of hardware resources connected by a LAN or
WAN.
51
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Development View: Development view of the architecture focus on the actual software module
organization on the software development environment. The software is packaged into small
chunks like program libraries or subsystems developed by a small number of developers. The
subsystems are organized in a hierarchy of layers, each layer providing narrow and well-defined
interfaces to the layer above it. The development view serve as the basis for the requirement
allocation, allocation of work to teams, cost evaluation and planning, progress monitoring of the
project.
Physical View: The physical view is concerned with the non-functional requirements of the
system such as reliability, performance and scalability. The software executes on computers in a
network or processing nodes. The various identified elements such as tasks, processes and
objects need to be mapped on to the target processing nodes. There may be several different
physical configuration will be used. The mapping of software to the nodes needs to be highly
flexible and have a minimal impact on source code.
Scenarios: Scenarios are intended to put together the four basic views to work together.
Scenarios are the instances of the of more general use cases and in some sense an abstraction of
the most important requirements. This view is redundant with the other four (hence +1) but it is
there to provide:
A driver to discover the architectural elements during the architecture design.
A validation and illustration role after this architecture design is complete, both on paper
and as the starting point for the tests of architectural prototype.
The “4+1” View model [Kruchten, 1995] for software architecture covers almost each aspect
of the software and with the diverse range of notation such as objects, classes, components,
sequence, and other UML diagrams to present the both functional and behavioral aspect of the
system and makes this architectural style best for the architectural and design quality assessment.
52
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Software Architecture and design can influence the functional requirements as well as the non-
functional requirements. Architecture and design is the best level for analyzing and evaluating
the various quality concerns of a system. Since there are various software architectural and
design modeling techniques among which the Object oriented Analysis and design (OOAD),
Enterprise Architecture Framework (EA), Service oriented Architecture and Design (SOAD)
have been presented and adopted in the software development process, Component Based
Design(CBD) are the most common. The question is which of the architectural and design
modeling technique to be followed for the specification of system structure so that it will be
feasible for the analysis and evaluation of quality attributes. Since each of the modeling
technique such as OOAD, SOA, CBD and EA, have their own merits and range of tools used for
the specification of the architecture and design, choosing one style over other for the security
evaluation is a very difficult task. Among the above mentioned architectural and designs
approaches, Service Oriented Architecture (SOA), Component based development (CBD) and
Object Oriented Analysis and Design (OOAD) are the core software architectural and design
modeling techniques extensively adopted by the software developers. The SOA, CBD, and
OOAD are not isolated from one another; instead they can be applied progressively in the system
development, each with different level of abstractions. Below diagram 4.3 [Brown et al., 2002]
shows the application architecture layers of the software architectures. As depicted in the
diagram 4.3. Three level of technology layers are there for application architecture. At the higher
level there is a service level which act as a great way to expose an external view of a system,
with internal reuse and composition using traditional component design which may in turn use
the object oriented design. The three layers (fig. 4.3) of application architecture are:
Service Level
Component Level
Object/Class Level
Service Level: Service layer provides the higher level of abstraction which provides the
functionality with a loose coupling among interacting software agents to its client. Service layer
is the most coarse-grained view of the software architecture and design i.e an abstraction over the
lower level design details and service encompasses more functionality and huge set of data
compared to the Component Based Architecture &Design (CBAD) and Object/ Class Design .
Service oriented Architecture (SOA) is a paradigm that organizes and utilizes distributed
53
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
capabilities, which may be under the control of different ownership domains, implemented using
a variety of technology stack [OASIS, 2009], [Kanneganti et al., 2008]. In SOA a service
encompasses more functionality and data sets to operate on as compared to the component-based
design.
Service Layer
Component Layer
Object/Class Layer
Component Layer: Component layer is at the second level of abstraction; both SOAD and
Component Based Architecture and Design (CBAD) support certain level of abstraction, the
service via contracts and components via interfaces. The difference lies in the level of
abstractions provided by the both. On one hand Service exhibit higher level of abstraction where
as a component exhibit comparatively lower level of abstraction. In one may think of SOA as a
high level form of CBAD, which internally designed as the interacting components. A
component is a software object, meant to interact with other components in the system
composition to provide certain functionality to its client or other components. A component has
clearly defined interfaces (both provided and required) and conforms to a prescribed behavior
[Petritsch, 2006].
Object/Class Layer: Object/Class layer is at the lowest level of software architecture and design
layers. This is the most fine-grained level of software architecture and design with
comparatively very low level of abstraction. In Object/Class design a system is composed of
objects and the behavior of the system is achieved through the collaboration between these
objects by sending messages to each other. Object oriented paradigm can be found at the design
and implementation level of software development. At design level Object Oriented (OO)
54
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
enables the rapid and efficient design, development and execution of applications that are
flexible and extensible. From an OO perspective everything is an object. The Fundamental
principles of OO are [Zimmermann et al., 2004]:
Encapsulation: The Binding of physical properties (data) and the functionality (behavior)
together.
Information Hiding: Hiding internal mechanisms by simple interfaces.
Classes and interfaces: Classes act as a template to define the properties and behavior of
a software object and instances are the actual individual object having values for those
properties.
The architectural layers in above fig 4.3 do not mean that one architectural style is better than
others, or limits the applicability of one architectural and design style over other. Instead they
differ in the level of abstractions provided by each layer, ease of use and to encompass the
functional behavior of the system. The level of granularity differs at each layer, on one extreme
( Object and Class) the level of granularity is focused at class level, which is at the too low level
of abstractions for modeling business logic and the strong association between objects crates the
tight coupling between them. On the other hand the service layer is rather more loosely coupled;
agile in nature encompasses more functionality. In spite of the difference between these layers of
software architecture there is the dependency and association between them. If Service Oriented
Architecture (SOA) is to be followed still the Object Oriented and Component Based approach
are needed for the underlying design of the classes and component structure with in a defined
service.
Choosing particular software architectural and design approach for the evaluation of quality
attributes in general and for the evaluation of security in particular, is highly dependent up on the
levels of abstraction provided by each of them. On one extreme the SOAD is much coarse-
grained in nature with granularity focused on the loosely coupled services which are at the very
high level of abstraction hiding the internal functional units of the service. Selection of SOAD of
a system for the evaluation of security restricts the evaluation process from capturing the lower
level details of the system. On the other extreme Class/Object level provides the granularity at
the class and object level which is very fine-grained view of a software architecture and design.
Selection of Class/Object level architecture for the evaluation of security , no matter provides the
55
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
lower level details of the design and architecture of the system but at the same time, it makes the
evaluation process too complex and bind the lower level details too early at the architectural and
design phase of the system. The Component Layer in above diagram 4.3 is in between the two
extremes. A service internally may exhibit the components composed together in a composition
to provide the required service, these components may internally build by the lower level classes
and objects. The position of Component Based Architecture and Design (CBAD) in the
architectural hierarchy are neither too coarse-grained like services that hide the internal
functional units nor too coarse-grained to make the evaluation process too complex to bind the
lower implementation level details. From the literature survey and our experience, The
Component layer is the best suited for the evaluation process of any quality attribute of the
system. Keeping in view the various factors, like granularity, level of abstraction, level of
functionality, flexibility provided and required efforts, in our Security Evaluation Framework we
have chosen the Component Based Architecture and Design (CBAD) approach of software
architecture and design for the specification of design and architecture of software artifacts. In
next section we provide an overview of Component based Architecture and Design and the
various modeling techniques involved.
56
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
It possesses an official usage description, which is sufficient for a client to use the
provided services.
Not tied to any fixed set of clients.
The abstract view of a component is shown in below figure 4.4. It consists of three main parts
Component Name: The specified name of the component.
Code: The functionality of the component.
Interfaces: Both the required and provided interface to reveal the usage and functionality
of the component in the system composition.
Interfaces
Required Interfaces
Code/Functionality
Above figure (4.5) shows the abstract view of a component. From the developer’s and designer’s
point of view a component can be viewed as shown in below diagram (4.4) [Abdellatief et al.,
2011]. From the figure 4.5 component specification defines the behavior and functionality of the
component. The specification is composed of a component body and interface part. The
specification of the interface is visible to the component designer, and on the other hand
specification of body and interface are visible to component developer.
In his study, [Tyan, 2002] the author related the software design modularity to hardware
modularity which changed the programmer’s view of software from sequential execution of
statements to a collection of objects and their interactions. But the design realizations of large
object software are subject to so called hyper spaghetti objects and subsystem phenomenon
where the tight coupled objects/classes in the system are virtually impossible to extract from the
system for reuse [Tyan, 2002]. On the other hand a component in the component based
architecture constitutes the partition of large software systems which closely mimic the design of
digital circuits in terms of the assembly and specifications of components.
57
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Component Developer
Visible to
Visible to
Visible to
Implements
Interface Body
Component Defines
Specification
Component
Visible to Visible to
Component Designer
58
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
59
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
provided and required interfaces. The provided services are the sole functionality of the
component which is used by its clients, and the required services are the services which are
needed from other components in the system composition, for the smooth operation of a
component to provide the requested functionalities/services. Such scenarios where components
need the services of other components impose the dependencies among the components. The
interface specification of components reveals both the provided and required services of a
component. The component semantic should be able to explicitly specify the dependencies
between the provided and required services among components. Various software component
modeling having same syntax but differ in their semantic. For instance in JavaBeans and EJB are
syntactically identical but differ in their semantics [Lau et al., 2007]. In their semantics the
javaBean is a class hosted by a container such as BeanBox, and interacts with others via adapter
classes generated by the container. On the other hand EJB is a Java class that is hosted by and
managed by EJB container provided by the Java 2 Enterprise Edition (J2EE) Server through the
home and remote interface.
Component Syntax: Component syntax comes after the component semantic.
Component syntax covers the definition which requires a component definition language. The
definition language is different from the implementation language. In our case a software
component is an architectural unit of functionality, the definition language is an ADL or an
ADL-like language such as in Aceme and UML 2.0. In Kola, the definition Language is CDL
and the implementation language is C. ADL allows an engineer to reason about system
properties at higher level of abstraction. Without a clear specification of ADL the design and
architecture of a software results in poor understanding of developers, architectural and design
choices are based more on default than solid engineering principles. Also without proper ADLs,
the architecture and design cannot be analyzed and evaluated for the quality attributes. There
are various ADLs as mentioned in the section above to represent the syntax and semantics of the
components. In all of these ADLs there is a considerable difference in their capabilities. There
are some core conceptual basis or ontologies [Garlan, 1995], [Medvidovic et al., 2000]
common through all the ADLs, which are:
Component: A computational element of the system and data store of a system
Connectors: Representation on interaction among components, that provides the
communication and coordination among them.
60
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
61
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Deployment phase: As apparent from the name, deployment phase composition, the
components are to be compiled to binary codes which intern can be composed and
deployed into the target system.
Runtime phase: In this phase the components are to be compiled into the binaries,
instantiated with data and finally executed in the running system.
Since the component composition depicts the overall structure of the system including
interaction, cooperation and coordination. In next coming sections we investigate the component
composition of some well-known component modeling approaches.
62
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
provided and required functionalities as shown in figure 4.7. The visual Builder such as
AcemeVisual can be used as a tool for such interconnection. In Aceme, the system specification
C4
C2
C5
C1
C6
C3
C7
constructed in the design phase can be compiled to a system in programming language directly
[Lau et al., 2007]. As an example in Aceme the specification of architecture in ArchJava
[Aldrich et Al., 2002] can be compiled into java provided that the java code for both the code
and connectors is available [Aldrich, et al., 2004] .
As depicted in the figure 4.8 above, Kola component may have multiple interfaces each specifies
the signature of function that it implements. The pointing head of each triangle in the interface
represents the direction of the function call.
63
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Figure 4.9 above shows the component composition of Kola component modeling. As depicted
in the diagram the composition is the interconnection of various components together which
externally treated as a single functional unit.
4.4.3.3 UML Component Modeling
The UML (Unified Modeling Language) [Cheesman et al., 2001] is best suited for construction,
visualization, documentation and specification of the artifacts of software-intensive systems.
There are several advantages of adopting UML [Wu, Ye et al., 2003]:
Firstly, UML provider the higher level of information that characterizes the internal
behavior of the component. The so provided information can be easily processed and
used for the analysis purpose.
UML as an industry standard provides a variety of software modeling notations and
diagrams for many component providers.
UML provides a set of models for the specification of a model at different levels of
capacity and accuracy.
In UML a component is a modular unit of system. It defines the behavior by one or more
required and provided interfaces which implement its required and provided services. As shown
in figure 4.10. Each required service is depicted as a socket and provided services with a
lollipop.
Required Services
Provided Services
64
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
The composition of component in UML 2.0 can be achieved by UML connectors to encompass
coordination, cooperation and collaboration among the components in order to provide the
desired system functionality. Mainly two types of connectors are there:
Assembly Connectors: is used to provide the required interface of a component to the
provided interface of other component (a ball and socket type joint)
Delegation Connectors: represented by an arrow depicts the requested and provided
service from inside the environment of composite component to its outer environment.
The dependencies among the components can also be depicted by a dashed line with arrow.
Below figure 4.11 shows the component composition of UML component model.
In our security evaluation framework next section, we have adopted the UML component
modeling notations, because it is widely accepted standard to model and document the software
artifacts with different level of capacity, abstraction and accuracy.
65
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Secondly there are various component modeling tools available for the specification of a
Component Based Architecture and Design (CBAD) of a system. As mentioned in above
sections, in component based software engineering there are various modeling approaches each
with own merits and demerits. We have selected the UML 2.0 Component Modeling in our
security evaluation framework. In chapter 3. Section 1, we have mentioned that, in order to
evaluate a system for security we must have to answer three questions (i) where to measure?
(ii) What to measure (ii) and (iii) How to measure? Question (i) is about the identification of the
appropriate stages in the lifecycle of software where the security evaluation is necessary and
should take place in a feasible manner. In chapter 3 figure 3.1 we have analyzed and presented
various stages in the software life cycle where security evaluation should play a vital role to
promote secure software. Question (ii) is about the identification of the factors that act as a
baseline for the security evaluation process and we answered the question in section (4.2) by
relating the non-functional security requirements (which are very difficult to be specified
precisely and concretely) to the well-established security attributes. The Question (iii) is about a
process or a framework, a model or a method that can measure the security of the system
efficiently without requiring any special personnel knowledge regarding the measurement. In
other words the evaluation method should act as a tool for the development team to measure the
security. In our proposed security evaluation framework, we measure software system at the
design and architectural level of the software lifecycle. Because the design and architecture of a
system act as a blueprint for the overall system, a mistake or a flaw at the design and
architectural phase of a system can lead to great penalties and cost in further stages of the system
life cycle. In the current networked environment, a system can only be secure if it is isolated in a
protected environment operated by a single person i.e. the administrator. But with the advent of
fast growing networks, the applications architectures are now shifting from standalone to
networked applications, and are being accessed by multiple users over the insecure network
simultaneously. Such networked applications results in communication, coordination,
cooperation, and resource sharing (both data and other system resources) between the various
components of a system. As a result of which the security becomes the more critical aspect of
such application architectures. Keeping in view this fact our proposed security evaluation
framework is based on the following factors and further based on our framework we propose the
66
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
security metrics for the main four attributes of security, the confidentiality, integrity and
availability and dependency.
1. Component Composition and Dependencies
2. Inter-Component Data/information and resource sharing.
67
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
68
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
We depict the dependencies among the components into an adjacency matrix (AM)
representation [Li, 2003], The Components are organized as rows and columns with
index respectively. If a component in row is dependent on other component in
column then the corresponding element in the adjacency matrix (AM) is marked as , otherwise
Where:
69
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
From The above equation (4.1) the dependency matrix (DM) for the system composition above
figure 4.10 is:
[ ]
The matrix above figure (4.13) is a direct dependency matrix i.e. it depicts the direct association
among the components in the composition. Further in order to calculate all the indirect possible
dependencies among the components (direct as well as indirect) we apply the Warshall’s
algorithm of transitive closer [Rosen, 1994] to compute the Full Dependency matrix of the
illustrative system composition in below figure (4.12). The Full Dependency matrix in above
figure (4.14) shows all possible dependencies (direct as well as indirect dependencies of each of
the component of figure (4.12).
[ ]
70
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Beside the dependencies presented earlier we define two more types of dependencies associated
with a component in the system composition, the In-Dependency and Out-Dependency.
In-Dependency: In-Dependency of a component is defined as the other components
in the composition that are directly or indirectly dependent up on the component .
Out-Dependency: Out-Dependency of a component is defined as the other
components in the composition up on which component depends (directly or
indirectly) for their provided functionalities.
We further define two more terms related to the In-Dependency and Out-dependency of a
component which are:
Degree-In: denoted by is defined as the number of component in the In-
Dependency of the component . Degree-In of a Component can be easily calculated
by counting the number of in the corresponding column of the Full Dependency
Matrix ).
Degree-Out: denoted by of component is defined as the number of
other components in the system composition upon which the is dependent. Degree-
Out of a component can be easily calculated by counting the number of in the
corresponding row of the Full Dependency Matrix (FDM).
Mathematically:
∑( )
And
∑ ( )
Based upon the dependencies (direct as well as indirect) we derive and propose the security
matric for the Dependency and Availability for each of the component and then for overall
system.
4.5.1.1 Dependency Metric Derivation
Dependency is one of the major attribute of security that must be analyzed. If a component is an
isolated entity, i.e. neither it depends upon any other component nor any other component is
dependent on it, then there is no problem at all. But in reality components interact coordinate and
cooperate to provide the complex functionalities to its clients. The level of dependency of each
71
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Where
is the Out-Degree of component
is the In-Degree of component and .
Note that the resultant values are in a controlled scale between (0-1). Lower the resultant values
higher will be the effect of the component.
The dependency metric for the overall system can be derived as:
72
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
certainly results in delayed response time at each hop of the dependency chain. The delay
involved at each hop of the dependency chain is mainly due to the two major factors which are:
Processing Delay: Time taken by a component to successfully process the request of its
clients and return the result from the invocation to the end result returned.
Transmission Delay: In case the composition of components is remote then the
transmission delay is the transmission time alone over the network excluding the
processing delay.
The delayed response at each of the component can certainly affect the availability (one of the
main attribute of security) of the system. Software developers must need to know preferably
quantitatively the possible delay incurred at each of the components in the system composition
and the aggregated level of availability for the overall system.
As mentioned previously a component can act as a hub in which it handles the request from one
group of components for the required functionality and may in turn call up on the provided
services of other group of components on their behalf .This process can form a chain which
results in a system with a delayed response time especially in distributed and multiuser
environment, which in turn affect availability of the system. Software developers must be able to
identify the possible level of risk involved with each of the component in the system
composition. The measurement of availability especially results in to find the availability critical
components, so that the alternative corrective measures can be applied. In this section we derive
the availability metric for a component by taking into account the following factors.
.
.
Processing Delay .
Transmission Delay .
For a component the possible maximum number of components that may call up on the
services of = .
The maximum number of components that can call for their provided services = .
As the dependency level of a component (both in and out) increases, it will certainly affect the
availability of the component and the overall system, because of the processing delay and
transmission delay of each of the component in the dependency graph.
73
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
We put forward the above theoretical concept of availability into mathematical form. There may
be a relationship between each of the component in and ,
i.e. for each of the component in , may call some or all of the components for
required services on the of behalf of invoking components . Based on these factors we propose
the availability matrix of a component denoted by as:
∑ ∑
Where
∑ ∑
Where
is of component
is of component
74
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
is the total transmission delay of components the component and the transmission delay of
the of the all component in the invoked by .
The proposed availability metric provides the software developer the early indicator about the
level of availability of each of the component and can easily identify the availability critical
component of the system and enable to provide the necessary corrective or preventive measures
accordingly. The range of output values of the above availability matric in equation (4 and 5)
will remain in a . More the value tends towards 0 on the scale higher the effect on the
availability of the component. The aggregated availability of the overall system denoted
can be computed as:
Where:
is the level of the availability of the individual component in the system composition
is the total number of components in the system.
The so proposed availability metrics is for the design and architectural phase of the software
development lifecycle but it can also be applicable to the already developed systems by
performing reverse engineering to get to the design and architecture of the system. The proposed
metric of availability serve as a prediction about the criticality of the components in the system
composition.
75
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
76
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
can say the In-flow as Write-flow and an Out-flow as Read-flow. In this thesis we use
these terms interchangeably. As depicted in figure (4.14), In case of Intra-component
information and data/flow boundary is confined to the component body. Above figure
(4.15) shows the data/information flow of a component.
Like dependencies, the data/information flow among the components can be either direct-flow or
indirect-flow.
Direct Data/Information-flow: In the direct information flow the flow of information
(to/from) between components occur directly without passing through any intermediate
node or component. For instance if a component invokes other component and
passes the data through a set of parameters to it or returns something back to is
known as direct data/information flow
Indirect Data/Information-flow: In the indirect flow of data/information the flow of
data/information takes place indirectly through intermediate nodes or components. As an
example if a component invokes component which processes and in turn invokes
and passes the data/information passed by to or returns something to via
is known as indirect-data/information flow.
Software development team must need a concrete way to analyze the flow of data/information
(both direct and indirect) across the components in a system. UML component modeling
provides a variety of tools and notations for the specification of components, components
77
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
interaction, and interface specifications in order to design a system. The so design of the system
using UML modeling, the flow of data / information can easily be analyzed.
Each component in the system composition possesses certain resource such as database access,
files, data/ information. Components in the composition can access the resources of other
components with certain privileges. As examples say a component in a composition has the
access to a database. Other components can invoke along with certain parameters to perform
the operation on the backend database. Such a scenario is most common in central database
applications.
As the design and architecture of a system evolve it becomes complex and cumbersome to keep
track of the flow of data/information across the components. Such a scenario results in security
threat to the system especially the two main concerns of the security of any system, the
confidentiality and integrity. A security flaw at one of the system component, if compromised
can result in the adverse effect on the functioning of overall system. Software developers must be
able to predict and assess the possible criticality level of each of the component and then of the
overall system. In the next subsequent sections we propose the metrics for the confidentiality
and integrity of a component and then for the overall system based on the following parameters.
Component dependencies.
Data/Information flow.
Component interfaces.
78
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
As mentioned earlier the inter-component data/information flow takes placed through the
provided and required interfaces of a component. For the simplicity we redefine these two types
of interfaces as:
Write-Interfaces: denoted by , are the required interfaces of a component through
which the In-flow of data/information takes place.
Read-Interfaces: denoted by , are the provided interfaces through which the Out-flow
of information takes places.
The confidentiality is likely to be affected through a component when both the read and write
operations by different components in the composition takes place. The idea is to identify the
level of such operations on a component and accordingly quantify the resultant indicators. With
respect to our confidentiality metric we put forward the following argument.
Argument 4.1: The confidentiality of a component is likely to be affected more as the
number of reading components in the system composition and dependency
(direct/indirect) increases with respect to the writing components. For instance a
component having number of reading components (the components that are
functionally dependent on the provided services of and number of writing
components (the components in the system composition whose services are required
by ). As the increases for each of the component in the confidentiality of the
component gets affected more, i.e. each of component in is likely to have read access
to component and all the components in the dependency (direct/indirect) that are
capable of writing to .
The above specified argument doesn’t mean that that the effect of writing components is
completely undesirable. If there is no writing component the confidentiality will not be affected
at all, instead the argument states that an increase in (reading components) has relatively
higher impact on the confidentiality than (writing components). Also as specified earlier a
component may have multiple interfaces (both provided and required) which we defined earlier
as Write-Interface ( ) and Read-Interface ) through which the in-flow and out-flow of
data/information takes place. Because these interfaces are the ports of a component for the flow
of data/information across the component, so the number of these ports is also the candidate for
the overall confidentiality level of a component.
79
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
In order to derive the confidentiality metric for a component we have following parameters at
hand.
From equation (4.3), number of components that can likely make an In-flow (write
operation) directly or indirectly on is .
From above equation (4.2), number of components that can likely responsible for the
Out-flow (read operation) of data/information directly or indirectly from
is .
Possible number of read-interfaces (provided interfaces) through which the Out-flow
(read operation) can take place on is .
Possible number of write-interface (required interfaces) through which the In-flow
(write operation) can takes place on is .
Keeping in view the above argument (1), that in both the read and write operation the
confidentiality will be affected more as the number of reading components (
increases for each of the writing component ( the confidentiality metric is :
Where
Where
is the
80
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
is the
The motivation behind the derived metric is to predict the level of confidentiality of each of the
component and based on the output values, the software development team will be able to take
the required action. The above derived confidentiality metric, equations (4.9, & 4.10) provides
the quantative indicator about the criticality of each of the component with respect to the
confidentiality. In other words it acts as a tool for the development team to identify the most
critical component and enables them to take the necessary action if needed. As stated earlier the
numbers of reading components have the higher impact on the confidentiality of the component
with respect to the writing components. In the proposed confidentiality metric such a scenario is
taken into the consideration by squaring the .
The aggregated confidentiality metric for of the overall system is
∑
Where
is the total number of components in the composition.
81
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
pass the data through the Write-interfaces ( to update the data/base and file. A weaker
component in the system composition can be attacked to violate the integrity of the overall
system. Both software developer and the user must need to know the potential risk associated
with each of the component. Taking into account all the parameters we propose the integrity
metric of a component as:
Let be a component whose integrity level is to be evaluated.
The possible number of components in the system composition that are responsible for the In-
flow (write) of data/information to would be in the Degree-Out of . As mentioned earlier
degree-out of a component is the number of components in the system composition on which
depends for their provided services. These components are bound to through its Write-
Interfaces ( or simply the required interfaces. Mathematically if be the number of
components that are responsible for the In-flow data/information then:
From the above equation (4.12) represents all the possible components on which
depends (directly or indirectly) for the provided services and that can perform a write-
operation on directly or indirectly.
Also the number of ports or Read-Interfaces through which the In-flow of data and information
can take place is . The complete integrity metric for a component is:
Where
are the write-Interfaces of component .
is the out-dependency of .
The so proposed metric (equation (4.13)) provides the early indicator of the level of integrity of
each of the system. As with the earlier equations, the resultant value lie in between with the
lower values on the scale the higher chance of integrity breach.
82
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Else
End If
Step 3: Compute and Calculate the Full Dependency Matrix from the Adjacency Matrix
83
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
(i) Using Warshall’s Algorithm for transitive closure compute all the direct and
indirect dependencies into a Full Dependency Matrix (FDM).
Step 4: Compute the In-Degree and Out-Degree of each of the component in the
composition.
(i) Computer the In-Degree of a component as ( ) from the corresponding
column of (FDM) as:
( ) ∑
Step 6: Quantify the level of Dependency for the overall System having
number of total components in the system composition as:
∑
(i)
Step 7: Stop
Step 8: End.
84
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
(ii) Specify the dependencies explicitly using dashed arrow lines beside the
implicit interface dependencies.
Step 2: Specify The System into an Adjacency Matrix Representation .
(i) If there is dependency between component then
Else
End If
Step 3: Compute and Calculate the Full Dependency Matrix from the Adjacency Matrix
(i) Using Warshall’s Algorithm for transitive closure compute all the direct and
indirect dependencies into a Full Dependency Matrix (FDM).
Step 4: Compute the In-Degree and Out-Degree of each of the component in the
composition.
(i) Computer the In-Degree of a component as ( ) from the
corresponding column of (FDM) as:
( ) ∑
(i) ∑
Step 6: Quantify the Availability level of each of the component within the range
( by Availability metric as:
85
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
(i)
∑
Step 7: Quantify the level of Availability for the overall System having
number of total components in the system composition as:
∑
(ii)
Step 8: Stop.
Step 9: End.
Else
End If
Step 3: Compute and Calculate the Full Dependency Matrix from the Adjacency Matrix
(i) Using Warshall’s Algorithm for transitive closure compute all the direct and
indirect dependencies into a Full Dependency Matrix (FDM).
Step 4: Compute the In-Degree and Out-Degree of each of the component in the
composition.
(i) Computer the In-Degree of a component as ( ) from the
corresponding column of (FDM) as:
86
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
( ) ∑
(i)
Step 7: Quantify the level of Availability for the overall System having
number of total components in the system composition as:
∑
(i)
Step 8: Stop.
Step 9: End.
87
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Else
End If
Step 3: Compute and Calculate the Full Dependency Matrix from the Adjacency Matrix
(i) Using Warshall’s Algorithm for transitive closure compute all the direct and
indirect dependencies into a Full Dependency Matrix (FDM).
Step 4: Compute the In-Degree and Out-Degree of each of the component in the
composition.
(i) Computer the In-Degree of a component as ( ) from the
corresponding column of (FDM) as:
( ) ∑
(ii) Count and quantify the Reading and writing interfaces of as:
Step 6: Quantify the Integrity level of each of the component within the range
( by Availability metric as:
(i)
88
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
Step 7: Quantify the level of Integrity for the overall System having total
number of total components in the system composition as:
∑
(i)
Step 8: Stop.
Step 9: End.
89
4. SECURITY METRICS FRAMEWORK: ARCHITECTURAL & DESIGN LEVEL
(components) which interact, cooperate and coordinate with one another to provide the expected
services to its clients. Such interaction, cooperation and coordination results in the dependencies
flow of information and resource sharing among the components. The aim of the measurement
was to device a framework and derives the metrics that provides the quantative indicators to
predict the security level of the system and its components with respect to the four main security
attributes: Dependency, Confidentiality, Integrity and Availability. The proposed framework is at
the early stages and needs the further efforts to expand it to take the other security attributes into
account. The future efforts are also required to the formalism of the proposed approach.
90
CHAPTER 5
91
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
5.1 Introduction
The most challenging part of the security metrics research is the security metrics validation.
There exists no consensus in the research community on a validation framework [Schneidewind,
1992], [Austin et al., 1990], [Lionel et al., 1995]. Security measurement itself is a hard problem
and the validation of the security measures is even harder. From the literature survey, there exists
no such validation process of security metrics. In chapter (4) we have proposed a security
evaluation framework and derived the metrics and derived the metrics for the four main
attributes of the security, Dependency, Confidentiality, Integrity and Availability. In order to
validate the proposed security metrics and also to analyze the feasibility and applicability, in this
chapter we perform an empirical evaluation of the proposed framework. Empirical evaluation is
often needed in software development, as in all science and technologies to assess the qualities of
a method, a tool, or any other entity. The three most common methods used in empirical
evaluation are, experiments, case studies and surveys [Blom, M., 2006]. Our empirical
evaluation falls under first category, the experimental approach to present the process of utilizing
the security evaluation framework proposed in chapter (4) and to validate the results provided by
the metrics in real applications. We demonstrate the use of our security evaluation framework by
measuring the security of a running system,” Fingerprint Attendance Automation System
“(FAAS) developed for the department of computer science UoK.
The rest of the chapter is organized as: Section 5.1 prsents the data collection process of the
FAAS (figure 5.1) for the security evaluation and summarizes the collected data in the data
collection table 5.1. Section 5.3 prsents the security evaluation process using the proposed
framework in chapter 4, for each of the component of the system and overall system. The result
of the security metrics is presented in table 5.2 & 5.3. It also prsents the resultant security posture
of each of the component and overall system in a graphical form in figure 5.4 and 5.5
respectively. The result analysis and conclusion is presented in Section 5.4.
92
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
93
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
As depicted in the figure (5.1) there are 24 fine grained components in the system composition.
Beside the implicit interface dependencies among the components, the dependencies (functional
control and interface dependencies) are also specified explicitly by dashed arrow lines with the
direction of arrow specifies the source and destination of a particular dependency. The system
has been developed using three tier architecture, the application tier, business tier, and the data
tier. The components in the application tier interact with the user of the system to get or provide
the relevant information. The name of these components is suffixed by INT in figure (5.1).
Business tier contains the sole business logic of the system and data tier for performing direct
operation on the back end data storage.
94
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
DM =
From the above figure 4.13 the Full Dependency matrix (FDM) of FAAS by applying Warshall’s
algorithm is:
FDM =
96
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
Write – Processing
Direct Read-
Direct Interfaces +Transmissi
Ci In- Interfaces
Out-dependency on Delay
dependency
Component Name (P+T)
1 ShortageCheckINT 1 3 1 3 2 1 0.11
2 DoAttendanceINT 1 4 1 4 2 2 0.11
3 ViewUpdateMemINT 1 1 1 3 3 4 0.11
4 DeleteMemINT 1 3 1 3 2 3 0.11
5 AddUpdateDelSubINT 1 3 1 3 4 2 0.11
6 RegisterUserINT 1 2 1 4 2 3 0.11
7 FingerPrintScanner 5 2 6 3 2 3 0.30
8 LoginINT 1 2 1 2 1 1 0.11
9 CreateAccountINT 1 2 1 3 2 2 0.11
10 ViewUpdateMemINT 1 3 1 3 2 2 0.11
11 CheckShortage 2 3 1 2 2 1 0.17
12 AccountCreation 2 3 1 2 2 1 0.21
13 Login 3 2 3 1 2 1 0.23
14 TZDeviceManagement 2 3 6 3 4 4 0.33
15 DoAttendance 2 3 1 2 3 1 0.17
16 SelectSubject 6 2 5 1 2 2 0.15
17 GetMember 7 2 7 1 1 2 0.15
18 ViewUpdateMember 3 3 2 2 2 2 0.20
19 DeleteMember 2 3 1 2 2 2 0.21
20 CourseManagement 2 3 1 2 3 2 0.23
21 Registration 2 3 1 3 3 2 0.19
22 CheckRegistration 2 3 1 3 2 2 0.15
23 FscanAttendance 1 4 1 4 2 1 0.35
24 DBaseMgmt 14 1 24 1 3 5 0.43
97
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
By applying equation and equation , on the Full Dependency Matrix (FDM) above
figure , we have calculated and respectively of each of the
component of the system (FASS) composition in figure .
represents the In-dependency of component i.e. the number of
components in the system composition that are directly or indirectly dependent up on the
provided services of component .
represents the Out-dependency of component i.e. the number of
components in the system composition on which depends for their provided services.
The resultant computation of both the and of is given in below data
collection table Further the number of read-interfaces ( and write-interfaces
have been computed and presented in table Beside the and , we
have also computed the direct In-dependency and Out-dependency of each of the component.
The complete data collected from the architecture and design of the system under study (figure
(5.1)) is presented in below table
The selected system is a web application that runs on a local server over a LAN. We have
calculated the average processing and transmission delay together of each of the component by
invoking a remote procedure call (RPC) on each of the component and calculated the elapsed
time using time stamping from the invocation till the result returned. The components from 1-9,
below table (5.1) are responsible for the direct user interaction, so there processing and
transmission delay is same. The so calculated processing & transmission delay for each of the
component is also presented in data collection table (5.1)
Note: if any of the component having parameter value , , ,
then we set that value to inorder to eliminate any divide by error. The impact of
setting value to 1 has very minimum effect of the resultant values.
Applying the steps of algorithms 4.1 to 4.4 from the proposed framework and derived metrics
chapter (4), we calculate the level of security with respect to the following attributes for each of
the component in the system composition.
Dependency: By applying the steps of algorithm , chapter , and derived metric of
dependency in equation we compute the dependency level of each of the
component.
98
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
99
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
0.2355
0.1822
0.2759
0.2762
100
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
101
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
proposed framework. The selected system has been developed by the author for the department
of computer sciences UoK. Since the proposed frame work strike at the architecture and design
level of the system life cycle , we have performed the reverse engineering process using the tools
provided by Microsoft .NET 2008 to extract the class level design and architecture of the
system. Further the class level design and architecture is transformed into component level
design and architecture using UML modeling techniques in Visual Paradigm for UML 9.0.
From the empirical evaluation it is evident that the specification of the proposed framework and
the derived metrics in the step wise algorithmic form (Chapter 4) minimized the required efforts
in the application of the framework and security metrics in real practices, requiring least
personnel knowledge regarding the security.
Comparing the result in table (5.2) with the system architecture and design in figure (5.1) and
from our experience with the system development and in running environment, it showed us a
great positive response regarding the feasibility and applicability of the proposed framework.
Table depicts the resultant security indicators in a range of for each of the
component in the system composition, with respect to the four major attributes of security
(Dependency, Availability, Confidentiality and Integrity). We have categorized the component
according to the resultant security indicators into five levels , with the most severe
and the least severe) with respect to each of the security attributes. The categorization of the
components is based on the following ranges of output values.
Components having the resultant value between marked as red in result
table are at level .
Components having the resultant value in a range marked as purple in result
table are at level .
Components having the resultant value in a range marked as black in result
table are at level .
Components having the resultant value in a range marked as blue in result
table are at level .
Components having the resultant above marked as green in result table are at
level .
102
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
The resultant categorization of components is shown in table . Also table shows the
overall security indicators of the system with respect to four major security attributes on a scale
of .
Dependency 7,14,16,17 4
Availability 2,6,13,18,21,22,23 7 LEVEL( L2)
Confidentiality 18 1
Integrity 2,4,5,9,10,21,22 7
Dependency 1,2,3,4,5,6,9,10,13,18,21,22,23 13
Availability 1,3,4,5,8,9,10,11,12,15,19,20 12 LEVEL( L3)
Confidentiality 3,4,6,10,20 5
Integrity 8,12,18,19,20,23,24 7
Dependency 8,12,11,15,19,20 6
Availability --- 0 LEVEL( L4)
Confidentiality 5,8,9,12,19,21,22 7
Integrity 1,7 2
Dependency --- 0
Availability --- 0 LEVEL( L5)
Confidentiality 1,2,11,15,23 5
Integrity 11,13,15,16,17 5
Beside the numerical representation of the result, the graphical representation about the
individual components and the overall system has been presented in figure and
respectively.
103
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
As shown in table most of the components fall under level of severity i.e. between
. The components falling under level are the most severe with respect
to the specified security attributes. Level is the moderate level and level is in the safe
zone. The output of the security evaluation can act as the input to the decision making in-order to
apply the necessary corrective and preventive mechanism with varying level of priority.
104
5. EMPIRICAL EVALUATION OF PROPOSED FRAMEWORK
105
6. CONCLUSION & FUTURE WORK
CHAPTER 6
106
6. CONCLUSION & FUTURE WORK
107
6. CONCLUSION & FUTURE WORK
Mathematical modeling techniques have been adopted to derive the security metrics in a
controlled manner. The specification of overall security metric framework into algorithmic form
made it a semi-automated tool to be applied to evaluate the security of the system and its
components, in which the input is a system or a component and the out of the algorithm is the
resultant security indicator with respect to the specified security attribute. The proposed
framework and the derived metrics not only limited to the system in development stages but can
be applied on the running systems which requires a pre-evaluation reverse engineering process to
catch the architecture and design of the system.
Chapter 5 presents the empirical study of the proposed framework in order to check the
effectiveness, efficiency, applicability and relevance of the prosed framework. The result of
empirical evaluation showed us a great initial positive response if we compare the results with
the system architecture and design and also from the experience with the system in running
environment. A major conclusion of the study is that security evaluation is an ongoing process,
capturing each and every factor responsible for the security of the system and devising a security
evaluation framework to predict the level of security is very hard problem to be solved due to the
multifaceted nature of the security, but at the same time the efforts to extract the controlled
parameters can be made to provide the indicators of security for decision making in applying
necessary corrective and preventive measures.
108
6. CONCLUSION & FUTURE WORK
1. Expansion of the framework taking into all the possible security attributes with an insight
into the factors responsible in order to derive the metrics for each of them.
2. Measuring security is hard but at the same time it is even harder to validate the security
metrics. It is now became a great challenge for the research community. There exists no
consensus on a validation framework, very little work has been reported on validation
process of the security metrics. Great deal of efforts is needed towards the validation
process of the proposed metrics.
3. The empirical evaluation is carried out on a small scale; a large scale empirical evaluation
of the proposed framework in needed to analyze the behavior, feasibility, effectiveness,
relevance, and applicability of the proposed framework.
109
PUBLICATIONS
Publications
Papers Published
3. Security Metric Framework for the Software Architecture and Design Level :An Empirical
Evaluation (Irshad Ahmad Mir, S.M.K Quadri ), Second International Conference on Advances
in Computer, Electronics and Electrical, Elsevier , Seek Digital Library , 2013 (Accepted for
Publication).
4. Security Metrics Framework for SOA Systems: A Shift from behavioral to Architectural
Perspective (Irshad Ahmad Mir, Mehraj-U-DinDar, S.M.K Quadri ) In Proceedings of sixth
National Conference on Computing for Nation Development, Bharti Vidyapeeth‟s Institute of
Computer Application and Management. Pages ,pISSN: 0973-7529, pISBN:978-93-80544-00-7,
March 2012.
110
PUBLICATIONS
2. Comparison of Open Source and Closed Source Software Based On Security Evaluation
(Irshad Ahmad Mir, S.M.K Quadri), Presented at National Seminar on Open Source Softwares:
Challenges & Opportunities, University of Kashmir India, Jun 2011.
111
REFERENCES
References
ABDELLATIEF , MAJDI, et al. Component-based Software System Dependency Metrics
based on Component Information Flow Measurements. ICSEA 2011, The Sixth
International Conference on Software Engineering Advances. 2011.
ALDRICH, J ONATHAN, et al. Modeling and implementing software architecture with acme
and archJava. Companion to the 19th annual ACM SIGPLAN conference on
Object-oriented programming systems, languages, and applications. ACM, 2004.
ALVES -FOSS, J IM, AND S ALVADOR BARBOSA. Assessing computer security vulnerability.
ACM SIGOPS Operating Systems Review 29.3 (1995): 3-13.
ANDREWS, M IKE, AND J AMES A. WHITTAKER . Computer security. Security & Privacy,
IEEE 2.5 (2004): 68-71.
112
REFERENCES
BASS, LEN, PAUL C LEMENTS, AND R ICK KAZMAN. Software architecture in practice.
Addison-Wesley Professional, 2003.
BAUER, BERNHARD, J ÖRG P. MÜLLER , AND J AMES ODELL. Agent UML: A formalism
for specifying multiagent interaction. Agent-oriented software engineering. Vol.
1957. Springer, Berlin, 2001.
BELLOVIN, S TEVEN M. "On the brittleness of software and the infeasibility of security
metrics." Security & Privacy, IEEE 4.4 (2006): 96-96.
BISHOP, MATT. What is computer security? Security & Privacy, IEEE 1.1 (2003): 67-69.
BISHOP A, MATT. Computer Security: Art and Science. 2003. Westford, MA: Addison
Wesley Professional (2003): 4-12.
BOEHM, BARRY W. Industrial software metrics top 10 list. IEEE software 4.5 (1987):
84-85.
BOEHM, BARRY W., AND PHILIP N. PAPACCIO. Understanding and controlling software
costs. Software Engineering, IEEE Transactions on 14.10 (1988): 1462-1477.
113
REFERENCES
BOSCH, J AN, AND PETER MOLIN . Software architecture design: evaluation and
transformation. Engineering of Computer-Based Systems, 1999. Proceedings.
ECBS'99. IEEE Conference and Workshop on. IEEE, 1999.
BOOCH , GRADY, J AMES RUMBAUGH, AND IVAR J ACOBSON. The unified modeling
language user guide. Pearson Education India, 1999.
CENTER FOR INTERNET SECURITY (CIS). The CIS Security Metrics Service. 2008
http://securitymetrics.org/content/attach/Metricon3.0/metricon3-
kreitner%20handout.pdf
CHANDRA, S., AND R. A. KHAN. Object oriented software security estimation life cycle-
design phase perspective. Journal of Software Engineering 2.1 (2008): 39-46.
CONNOLLY, P. J., 2001. Security protects bottom line. InfoWorld, Vol. 23, No. 15, p. 47
CRNKOVIC, IVICA , et al. Specification, implementation, and deployment of
components. Communications of the ACM 45.10 (2002): 35-40.
114
REFERENCES
DEM ICHIEL, LINDA G., L. ÜMIT YALÇINALP , AND SANJEEV KRISHNAN. Enterprise
javabeans TM specification, version 2.0." On-line at
<http://java.sun.com/products/ejb/docs.html>, year 2001 (2001).
DOAN, THUONG, ET AL. "MAC AND UML FOR SECURE SOFTWARE DESIGN. Workshop
on Formal Methods in Security Engineering: Proceedings of the 2004 ACM
workshop on Formal methods in security engineering. Vol. 29. No. 29. 2004.
FAROOQ, S. U., QUADRI, S. M. K., & AHMAD, N. (2011). Software Measurements And
Metrics: Role In Effective Software Testing. International Journal of Engineering
Science and Technology (IJEST), 3(1), 671-680.
FAROOQ, S. U., QUADRI, S. M. K., & AHMAD , N. (2012, January). Metrics, models and
measurements in software reliability. In Applied Machine Intelligence and
Informatics (SAMI), 2012 IEEE 10th International Symposium on (pp. 441-449).
IEEE.
FIRESMITH, DONALD G. Security use cases. Journal of object technology 2.3 (2003).
115
REFERENCES
GRAFF, MARK, AND KENNETH VAN WYK. Secure coding: principles and practices.
O'Reilly Media, Incorporated, 2003.
GOLLMANN. D, Computer Security. Chichester, England: John Wiley & Sons, 1999.
HOWARD, M ICHAEL, AND DAVID LEBLANC. Writing secure code. Microsoft press, 2009.
HOLZMANN, GERARD J. The power of 10: rules for developing safety-critical
code."Computer 39.6 (2006): 95-99.
116
REFERENCES
J EN, LIH-REN, AND YUH-JYE LEE. Working Group. IEEE recommended practice for
architectural description of software-intensive systems. IEEE Architecture. 2000.
J ÜRJENS, J AN. Using UMLsec and goal trees for secure systems
development."Proceedings of the 2002 ACM symposium on Applied computing.
ACM, 2002.
117
REFERENCES
LIU, M. Y., AND ISSA TRAORÉ. Properties for security measures of software products.
Applied Mathematics and Information Science (AMIS) Journal 1.2 (2007): 129-156.
LUCKHAM, DAVID C., et al. Specification and analysis of system architecture using
Rapide. Software Engineering, IEEE Transactions on 21.4 (1995): 336-354.
LYU, M ICHAEL R. Handbook of software reliability engineering. Vol. 3. CA: IEEE Computer
Society Press, 1996.
MADAN, BHARAT B., et al. Modeling and quantification of security attributes of software
systems. Dependable Systems and Networks, 2002. DSN 2002. Proceedings.
International Conference on. IEEE, 2002.
MCGRAW, GARY, AND BRUCE POTTER. Software security testing. IEEE Security and
Privacy 2.5 (2004): 81-85.
118
REFERENCES
MCDERMOTT, J OHN, AND CHRIS FOX. Using abuse case models for security
requirements analysis. Computer Security Applications Conference,
1999.(ACSAC'99) Proceedings. 15th Annual. IEEE, 1999.
MEI, HONG, J ICHUAN C HANG, AND FUQING YANG. Composing software components at
architectural level. IFIP WCC2000, Beijing (2000).
MOORE, ANDREW P., ROBERT J. ELLISON, AND RICHARD C. LINGER. Attack modeling
for information security and survivability. No. CMU-SEI-2001-TN-001.
CARNEGIE-MELLON UNIV PITTSBURGH PA SOFTWARE ENGINEERING
INST, 2001.
119
REFERENCES
PAULK, M. C., et al. The Capability Maturity Model: Guidelines for Improving the
Software Process. Addison Wesley. 1995.
PEINE, HOLGER. Rules of thumb for developing secure software: Analyzing and
consolidating two proposed sets of rules. Availability, Reliability and Security,
2008. ARES 08. Third International Conference on. IEEE, 2008.
PERRY, DEWAYNE E., AND ALEXANDER L. WOLF. Foundations for the study of software
architecture. ACM SIGSOFT Software Engineering Notes 17.4 (1992): 40-52.
120
REFERENCES
QUADRI, S.M.K., AHMAD, N., P EER, M.A. AND KUMAR, M., “Non homogeneous
Poisson process software reliability growth model with generalized exponential
testing effort function”, RAU Journal of Research, Vol., 16 (1-2), 2006 pp. 159-
163.
ROSEN, KENNETH H., Discrete Mathematics and its Applications, Third Edition,
McGraw-Hill, Inc, 1994.
ROY D. FOLLENDORE III On The Relationship of Security & Reliability. Retrieved from
http://www.noisetoknowledge.com/on_the_relationship_of_security_and_reliability.
htm on 01-03-2013
121
REFERENCES
SAVOLA,R EIJO M., AND HABTAMU ABIE. On-line and off-line security measurement
framework for mobile ad hoc networks. Journal of Networks 4.7 (2009): 565-579.
SAVOLA, REIJO. Towards a security metrics taxonomy for the information and
communication technology industry. Software Engineering Advances, 2007. ICSEA
2007. International Conference on. IEEE. 2007.
SAVOLA, R EIJO. A novel security metrics taxonomy for R&D Organizations. In the Proc.
of the 7th Annual Information Security South Africa (ISSA‟08) Conference,
Johannesburg, South Africa. 2008.
SAVOLA, REIJO. Towards a security metrics taxonomy for the information and
communication technology industry. Software Engineering Advances, 2007. ICSEA
2007. International Conference on. IEEE,2007.
SCHNEIER. B. Attack trees: Modeling security threats. Dr. Dobb‟s Journal, 1999. 7.2.
SEDDIGH, NABIL, et al. Current trends and advances in information assurance metrics.
Proceeding of the Second Annual Conference on Privacy, Security and Trust. 2004.
SHAW, M ARY, et al. Abstractions for software architecture and tools to support
them. Software Engineering, IEEE Transactions on 21.4 (1995): 314-335.
SHIRAZI H. M., A New Model for Secure Software Development. International Journal
of Intelligent Information Technology Application, 2009, 2(3):136-143
122
REFERENCES
VAN OMMERING, ROB, et al. The Koala component model for consumer electronics
software. Computer 33.3 (2000): 78-85.
123
REFERENCES
VIEGA, J., MCGRAW, G.: Building Secure Software: How to Avoid Security Problems the
Right Way. 1st ed. Addison-Wesley. 2001 .
VOAS, J E, et al. Defining an adaptive software security metric from a dynamic software
failure tolerance measure. Computer Assurance, 1996. COMPASS'96,'Systems
Integrity. Software Safety. Process Security'. Proceedings of the Eleventh Annual
Conference on. IEEE, 1996.
WU, YE, MEI-HWA C HEN, AND J EFF OFFUTT. UML-based integration testing for
component-based software. COTS-Based Software Systems (2003): 251-260.
YAMADA, S., OHTERA, H. AND NORIHISA, H., “Software reliability growth model with
testing-effort”, IEEE Transactions on Reliability, Vol. R-35, no. 1, 1986 pp.19-23.
YAMADA, S., HISHITANI J. AND OSAKI, S.“Software reliability growth model with
Weibull testing-effort: a model and application”, IEEE Transactions on Reliability,
Vol. R-42, 1993. pp. 100-105.
124
REFERENCES
125