security requirements is often a process of making
trade-off decisions between high security (S), high
usability (U) and low cost (C). The adequate level of
security typically lies in the center region of the “S-
U-C pyramid” (Savola, 2008). Various stakeholders
are needed in making the tradeoff decisions, such as
managers, developers, security experts and end
users.
A security requirement is a manifestation of a
high-level organizational security policy in the
detailed requirements of a specific system (Devanbu
and Stubblebine, 2000). According to Firesmith
(2004), the most current software requirement
specifications are either (i) totally silent regarding
security, (ii) merely specify vague security goals, or
(iii) specify commonly used security mechanisms
(e.g., encryption and firewalls) as architectural
constraints. In the first case security is not taken into
account in an adequately early phase of design. In
the second case vague security goals (like “the
application shall be secure”) are not testable
requirements. The third case may unnecessarily tie
architectural decisions too early, resulting in an
inappropriate security mechanism.
The goal of defining security requirements for a
system is to map the results of risk and threat
analyses to practical security requirement statements
that manage (cancel, mitigate or maintain) the
security risks of the system under investigation. The
requirements guide the whole process of security
evidence collection. For example, security metrics
can be developed based on requirements: if we want
to measure the security behavior of an entity in the
system, we can compare it with the explicit security
requirements, which act as a “measuring rod”.
All applicable dimensions (or quality attributes)
of security should be addressed in the security
requirements definition. See, e.g., (Avižienis, 2004)
for a presentation of quality attribute taxonomy.
Well-known general dimensions include
confidentiality, integrity, availability, non-
repudiation and authenticity. Quality attributes like
usability, robustness, interoperability, etc, are
important requirements too.
One cannot easily define a security requirement
list that could be used for different kinds of systems.
However, the functional part of Common Criteria
(ISO/IEC 15408, 2004) includes general-level
requirement lists and can be used as guidance. The
actual requirements and role of the security
dimensions heavily depend on the system itself and
its context and use scenarios. The requirements
should embody adequate system design and security
countermeasure design information too.
The definition of security requirements is an
iterative process. The sequence of security
requirement iterations depends on use cases, the
available architectural and other technical
information and the maturity of the system model.
As mentioned before, security requirements cannot
be considered only as non-functional requirements;
they may potentially create new functional
requirements during the iteration of the architectural
and more detailed technical design.
4.2 Security Assurance
If new vulnerabilities already noticed in the systems
or found in testing can be eliminated sufficiently
early in the product development phase,
considerable savings can be made in comparison
with security repairs carried out at a later stage in the
product life cycle. Security assurance methods such
as security analysis, security testing and security
monitoring help in the development of products and
services and in the later stages of their life cycles. In
recent years, the understanding and tools of security
assurance have developed in leaps and bounds,
enabling the functional testing and monitoring of
data security to be part of the normal product
process. Comprehensive security analysis guides
testing and monitoring activity. Security analysis
may include the investigation of threats, the
specification of security requirements, security
modelling, the investigation of vulnerability and the
assessment of security levels using security metrics.
A practical and secure product development life-
cycle model includes the identification of security
objectives in the initial stage, the preparation of
responsibilities and plans and security analysis. At
the stage of specifying requirements, security
standards are gathered together and security
assurance methods, such as security testing, are
planned. At the architecture and system planning
stage, threat and vulnerability models and drawn up,
and security architecture that meets the requirements
is designed. At the implementation and testing stage,
coding and testing recommendations advancing
reliability and safety are observed, and adequately
certified components are introduced. In the testing
stage, the security testing plan is implemented along
with other selected security assurance methods. In
the final stage of product development, a final
security review is performed along with the secure
configuration of the system, and the secure and
trusted distribution of the system is taken care of. In
the maintenance stage, suitable security assurance
measures are carried out, such as monitoring and
ICSOFT 2009 - 4th International Conference on Software and Data Technologies
132