Software Engineering Institute Carnegie Mellon

Common Concepts Underlying Safety, Security, and Survivability Engineering

Donald G. Firesmith

CMU/SEI-2003-TN-033
December 2003

Acquisition Support Program

Unlimited distribution subject to the copyright.

 

[Abstract] [Figures] [Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion][References][PDF File]


Acknowledgments

No non-trivial work springs de novo from its author like Athena from the head of Zeus, though as Zeus learned, creation is not without both hard work and headaches. Thus, this technical note is based on the hard work of many others, many of whose papers and books are listed in the reference section at the end. I would especially like to thank Jonathan Moffett and Bashar Nuseibeh for their cited paper and Carol Woody for her insightful discussions, both of which helped trigger the production of this technical note. Thank you for helping me to get these diagrams off my whiteboard and into print. And for the valuable constructive criticism that they have provided, I would also like to thank the following people who have reviewed this technical note:

 

 

 

 

[Abstract] [Figures] Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion][References][PDF File]


Executive Summary

Safety, security, and survivability engineering are three very closely related disciplines that could greatly benefit from a widespread recognition of their similarities and differences. Yet currently, members of these disciplines have inadequate interaction, either with each other or with members of other engineering disciplines.

This inadequate interaction among disciplines is especially true with regard to the engineering of safety, security, and survivability requirements upon which the associated architectural mechanisms (e.g., safeguards and countermeasures) should be based. Safety, security, survivability, and requirements engineers typically use different terminologies and processes that emphasize their differences and obscure their similarities. Far too often, the result is requirements specifications that are very incomplete with regard to safety, security, and survivability requirements. The "requirements" that are specified typically lack necessary characteristics such as verifiability and lack of ambiguity.

Most books and articles about safety, security, and survivability do not adequately describe the requirements for specifying minimum, mandatory amounts of these quality factors. That is, they do not address the elicitation, analysis, and specification of such requirements, nor do they address what such requirements should look like. Instead of discussing how to specify the level of safety, security, and survivability that is needed, they discuss accidents and attacks, hazards and threats, risks, vulnerabilities, and the architectural mechanisms that are used to prevent, detect, or react to these hazards and threats.

Although safety, security, and survivability requirements are beginning to attract interest, they typically lack any kind of theoretical foundation that defines what they are and how they relate to other important concepts. Until recently, the emphasis has clearly been on architectural mechanisms and the evaluation of the safety, security, and survivability of existing systems and architectures.

This technical note presents a set of related information models that provides the theoretical foundation underlying safety, security, and survivability engineering. It starts by summarizing the concept of a quality model and its component parts, three of which are the quality factors: safety, security, and survivability. Next, the different types of requirements are described, and a framework is provided showing how quality goals, policies, requirements, and architectural mechanisms are related to the quality factors and subfactors of the quality model. After the general model is summarized, three specific models are provided that relate safety, security, and survivability concepts, and the close relationships between the three engineering disciplines are described. In addition to the graphical information models, precise definitions are provided for each concept. Finally, this technical note summarizes the similarities and differences between the models underlying these three types of engineering disciplines and suggests ways to take advantage of this commonality.

Ultimately, this technical note is about showing (and taking advantage of) the great similarities between

 

[Abstract] [Figures] Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models][4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion][References][PDF File]


1 Introduction

1.1 Challenges

Software-intensive systems are commonplace, and society relies heavily upon them. Software is found in automobiles, airplanes, chemical factories, power stations, and numerous other systems that are business and mission critical. We trust our lives, our property, and even our environment to the successful operation of these technology-based systems.

However, software-intensive systems are neither perfect nor invulnerable. They commonly fail due to software defects, hardware breakdowns, accidental misuse, and deliberate abuse. They are also the target of malicious attacks by hackers, disgruntled employees, criminals, industrial spies, terrorists, and even agents of foreign governments and their militaries. Yet, failure is becoming less and less of an option as we depend on these systems more and more. Thus, safety, security, and survivability engineering are becoming essential components of systems engineering.

Safety, security, and survivability engineering are three very closely related disciplines that could greatly benefit from a widespread recognition of their similarities and differences. Yet currently, members of these disciplines have inadequate interaction, either with each other or with members of other engineering disciplines.

This inadequate interaction among disciplines is especially true with regard to the engineering of safety, security, and survivability requirements upon which the associated architectural mechanisms (e.g., security practices such as training and procedures, security countermeasures such as encryption and firewalls, and safety mechanisms such as redundancy and safety components) should be based. Safety, security, survivability, and requirements engineers typically use different terminologies [CNSS 03, van der Meulen 00] and processes that emphasize their differences and obscure their similarities. Far too often, the result is requirements specifications that are very incomplete with regard to safety, security, and survivability requirements. The requirements that are specified typically lack necessary characteristics such as verifiability and lack of ambiguity.

However, most books and articles about safety, security, and survivability do not adequately describe the requirements for specifying minimum, mandatory amounts of these quality factors or adequately address the stakeholders who care about them. Instead, they typically concentrate on accidents and attacks, hazards and threats, risks, vulnerabilities, and especially the architectural mechanisms that are used to prevent, detect, or react to these hazards and threats. In fact, much of the material published in this area does not even mention the engineering of the associated requirements1 [Alberts 03, Herrmann 99, Hughes 95, McNamara 03, Peltier 01, Power 00, Schneier 00, Shema 03, Tulloch 03]. The books that do mention requirements typically provide only the briefest and highest level overview without clearly saying what such requirements are [Anderson 01, Leveson 95, McDermid 91]. But without adequate goal- and policy-based requirements, how can we be sure that the safety, security, and survivability mechanisms that we choose to protect us will be adequate or appropriate?

Although safety, security, and survivability requirements are beginning to attract interest, they typically lack any kind of theoretical foundation that defines what they are and how they relate to other important concepts of safety, security, and survivability engineering. Until recently, the emphasis has clearly been on architectural mechanisms (such as security countermeasures) and the evaluation of the safety, security, and survivability of existing systems and architectures.

The analysis and specification of safety, security, and survivability requirements is inherently difficult. Unlike other requirements that specify a required (and desired) capability, these requirements specify what is to be prevented (e.g., accidents and attacks due to safety hazards and security threats). These requirements deal with assets that must be protected and with the risks of harm to these assets that must be managed. These requirements should be appropriate and cost effective; there is no value in specifying a requirement that will cost far more to implement than the value of the damage to the asset (and any downstream assets that might subsequently be harmed). And yet, there is an inherent level of uncertainty because what these requirements seek to prevent may or may not ever happen. This situation is especially true of safety requirements because some systems (e.g., nuclear power plants, chemical factories) are so critical that even a single, rare accident may render the system a complete failure. Although other systems (e.g., e-commerce Web sites) are essentially under constant attack, harm due to security threats often tends to be less mission critical, and a successful attack will not render the system a complete failure.

Another problem is that the hazards and threats associated with software-intensive systems are also constantly changing, making the risks very difficult to quantify. Estimates of risks are often actually "guesstimates," and thus the risks are typically forced to be qualitative rather than quantitative.

This technical note addresses these problems by showing (and recommending that engineers take advantage of) the great similarities between

1.2 Goals

A major goal of this technical note is to provide the reader with a solid foundation for safety, security, and survivability engineering. This technical note presents an overlapping set of information models that define the concepts of safety, security, and survivability engineering and clarify the relationships between them. When used, the foundation provided by these models will also enable stakeholders in safety, security, and survivability engineering to better communicate with each other.

A second goal of this technical note is to use these information models to clarify the similarities and differences between the foundational concepts of these three disciplines. The similarities between these three disciplines greatly outweigh their differences. These similarities are important because they allow engineers to develop relatively uniform development processes. These uniform processes can then be used across the traditionally separate disciplines of safety, security, and survivability engineering.

1.3 Motivation

Often, safety, security, and survivability engineering are not adequately recognized as highly related disciplines. Safety is largely about protecting valuable assets (especially people) from harm due to accidents. Security is largely about protecting valuable assets (especially sensitive data) from harm due to attacks. Survivability is largely about protecting valuable assets (essential services) from both accidents and attacks. In all three cases, a primary focus is in dangers (hazards and threats) and their associated risks and the system's vulnerabilities to them. All three disciplines often require a risk-driven approach in determining the appropriate policies, requirements, and architectural mechanisms. In fact, the similarities between these three disciplines have prompted the production of this technical note.

However, these similarities are seldom recognized, and their relevance to requirements engineering is largely unknown in actual practice. One problem is that requirements engineers are rarely taught safety engineering, security engineering, or anything about survivability, and they rarely have any significant experience in these disciplines. Yet, they are often responsible for developing safety, security, and survivability requirements. A good place for them to start is to learn the fundamental concepts underlying safety, security, and survivability. Similarly, safety and security engineers are rarely taught requirements engineering and typically have no experience engineering requirements. They tend to think in terms of safety program plans and security policies rather than requirements and requirements specifications. In addition, the policies they produce are at a higher level of abstraction than requirements and typically lack the characteristics of good requirements such as completeness, lack of ambiguity, and verifiability.

1.4 Contents

This technical note presents a set of related information models that provide a theoretical foundation underlying safety, security, and survivability engineering. Section 2 summarizes the concept of a quality model and its component parts, three of which are the quality factors of safety, security, and survivability. Next, Section 3 describes the different types of requirements and provides a framework showing how quality goals, policies, requirements, and architectural mechanisms are related to the quality factors and associated subfactors of the quality model. Section 4 provides three specific models that relate the underlying concepts of safety, security, and survivability engineering. In addition to the graphical information models, precise definitions are provided for each concept. Section 5 summarizes the similarities and differences between the models underlying the three disciplines, and Section 6 recommends ways to take advantage of this commonality.

 

 

 

[Abstract] [Figures] [Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion] [References][PDF File]


2 Quality Model

Quality means much more than merely meeting functional requirements. Even if an application provides all of its required features and fulfills each of its use cases, it can still be totally unacceptable if it has insufficient quality attributes (e.g., it has inadequate availability, its capacity is too low, its performance is too slow, it is not interoperable with other systems, it is not safe to use, it has numerous security vulnerabilities, or it is not considered to be user friendly by its end users). Thus, the term "quality" is an abstract term that can mean very different things to different stakeholders (including customers, users, management, marketing, developers, testers, quality engineers, maintainers, and support personnel). In this technical note, the term "quality" is used in its widest sense. Thus, quality includes all quality factors and not just the few that are mentioned above.

Similarly, it is not adequate to specify required quality by merely stating that an application shall have high capacity and performance, be safe and secure, and be usable by its end users. Such "quality requirements" are typically specified at such a high level of abstraction that they are virtually useless because they are incomplete, vague, ambiguous, and impossible to verify. Thus, they are high-level goals rather than specific requirements.

Therefore, we need to decompose the term "quality" into its relevant component factors and subfactors. We also need to provide operational definitions for these components of quality so that we can create clear, unambiguous, and verifiable requirements. One purpose of this technical note is to provide such operational definitions for safety, security, and survivability and their requirements.

To specify quality requirements, we need a way to organize, clarify, and standardize the relevant meanings of the term quality when applied to software-intensive systems. Doing this will form a proper foundation for identifying, analyzing, and specifying the large number of quality requirements that are needed on any significant endeavor.

A quality model is a model (i.e., a collection of related abstractions or simplifications) that models the quality of something [Firesmith 03a]. The quality model does for the concept of quality what a map does for a city, state, or country; it captures all of the important generalities about quality while ignoring all of the diversionary details. This then is the role of a quality model: to make the general term "quality" specific and useful by decomposing it into its component concepts and their relationships to one another. A quality model first decomposes quality into its component quality factors (aspects, attributes, or characteristics) and subfactors (i.e., parts). It then provides specific quality criteria (descriptions) and metrics (means of measurement) that can be used to turn these general high-level quality factors into detailed and specific measurable descriptions that can be used to specify an aspect of quality or to determine if that aspect of quality actually exists at a level equal or above the minimum amount specified in a requirements specification. By mandating a combination of both a quality criterion and metric, the likelihood of obtaining a clear, unambiguous, and verifiable statement of a quality requirement increases.

There are many quality models of varying degrees of completeness and usability. Some are international standards [ISO 00], some are de facto industry standards [Firesmith 03d], some are organization specific [Barbacci 00], and some are published in software engineering books [Boehm 76, Chung 93, Chung 00, Davis 93, Keller 90, Loucopoulos 95, Mylopoulos 92, Roman 85, Sommerville 92, Thayer 90]. This technical note uses the Object Process, Environment, and Notation (OPEN) quality model [Firesmith 03d] due to its completeness, especially with regard to safety, security, and survivability.

2.1 Information Model for a Quality Model

As illustrated in Figure 1, a quality model is a hierarchical model consisting of quality factors (also known as quality attributes) containing quality subfactors. The model formalizes the concept of quality, and it decomposes quality into a taxonomy of relevant quality factors and subfactors. For each of these, it defines associated quality criteria and metrics that provide specific measurable descriptions of the quality that is being analyzed or specified.


Figure 1: Information Metamodel for Quality Models

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


Figure 1 shows that quality factors and subfactors are the primary ways in which the concept of quality is decomposed. However, quality is made specific with regard to systems when it is judged by application-specific quality criteria and measured in terms of specific quality metrics.

Figure 1 is a Unified Modeling Language (UML) class diagram2 that documents a metamodel for a quality model (where a metamodel is actually a model of a model). The metamodel for the quality model defines the kinds of things that make up any quality model, whereas a quality model contains the actual quality factors, subfactors, criteria, and metrics. Thus, for example, the metamodel contains the concept "quality factor," whereas the quality model contains specific quality factors such as safety, security, and survivability.

The concepts documented in Figure 1 can be defined as follows:

2.2 A Taxonomy of Quality Factors and Subfactors

As pointed out in the previous list, a quality factor (also known as quality attribute or quality characteristic) is a high-level characteristic or attribute of something that captures an aspect of its quality. Note that quality factors and subfactors merely describe desired or existing capabilities. As such, they provide a foundation and organization for discussing quality goals, policies, requirements, and the architectural mechanisms for fulfilling these requirements. However, they are not themselves goals, policies, requirements, or architectural mechanisms.

Different books and articles decompose quality factors differently (e.g., qualitative quality factors versus quantitative quality factors). However, although it may be difficult to make all quality requirements quantitative, it is definitely both possible and useful to do so (e.g., for testability). Therefore, this technical note decomposes them into development-oriented and usage-oriented quality factors. Such a taxonomy seems to be very intuitive because it separates concerns according to their audiences (development oriented for developers and maintainers, usage oriented for customers and users).

The following taxonomy is also relatively complete. Although few projects need to develop requirements for all of the quality factors in the following two lists, requirements engineers should definitely determine the applicability of all of the different types of quality factors. Having a large hierarchical taxonomy of quality factors and subfactors also helps ensure that no relevant quality factors are ignored.

The following taxonomy of quality factors [Firesmith 03d] serves two primary functions:

2.2.1 Development-Oriented Quality Factors

Development-oriented quality factors are quality factors that are primarily important during development and maintenance rather than usage. Examples of development-oriented quality factors and subfactors include the following:

2.2.2 Usage-Oriented Quality Factors

Usage-oriented quality factors are quality factors that are primarily important after deployment and during actual usage of an application or component. Examples of usage-oriented quality factors and subfactors include the following:

The preceding taxonomy makes it clear that safety, security, and survivability are kinds of dependability and are therefore usage-oriented quality factors. The preceding lists also emphasize the fact that safety, security, and survivability are only three of a great many potentially relevant quality factors.

2.3 Safety as a Quality Factor

As one of numerous quality factors, safety can be classified into the following subclasses of safety: health safety, property safety, and environmental safety. In fact, safety is often defined in terms of health, property, and environmental safety.

The information model illustrated by Figure 2 shows that safety is a kind of dependability and thus a kind of quality factor. It is also shows that safety has traditionally been classified into health, property, and environmental safety (also kinds of quality factors) based on the type of asset that will be harmed if an accident should occur.


Figure 2: Safety as a Quality Factor

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


The concepts documented in Figure 2 can be defined as follows:

2.4 Security as a Quality Factor

The quality factors of safety and security can be viewed as two sides of the same coin. If safety can be defined as the degree to which accidental harm is properly managed, then security can be defined as the degree to which malicious harm is properly managed.

The information model illustrated by Figure 3 shows that security is also a kind of dependability and thus a kind of quality factor. The information model also shows that security has traditionally been classified into such subclasses as communications security, data security, emissions security (also known as TEMPEST), personnel security, and physical security based largely (as with safety) on the type of asset that will be harmed if an attack should occur.


Figure 3: Security as a Quality Factor

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


The concepts documented in Figure 3 can be defined as follows:

Figure 4 shows that security can also be decomposed (aggregation) into many different quality subfactors. In fact, security has historically been defined more often in terms of its most popular subfactors (typically availability, integrity, and privacy) than in terms of its subclasses. Note that security is a relatively complex concept and cannot be adequately addressed merely in terms of availability, integrity, and privacy. Unfortunately, there is no widely accepted, industry-standard decomposition of security into a taxonomy of its component quality subfactors, and these quality subfactors do not have industry-standard definitions. Perhaps this technical note will help to stimulate the development of a consensus concerning the optimal decomposition of security into its quality subfactors.


Figure 4: Decomposition of Security into Quality Subfactors

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


The security subfactors illustrated in Figure 4 can be defined as follows:

2.5 Survivability as a Quality Factor

Survivability is concerned with essential mission-critical services that must continue to be provided in spite of either accidental or malicious harm [Ellison 99, Ellison 03, Knight 00, Knight 03, Lipson 99]. Thus, in some sense, survivability can be seen as both a union of safety and security (accidental and malicious harm) as well as a subset of them (only interested in harm to essential services).

Survivability is typically not subclassed into lower level kinds of survivability based on the type of asset protected because it only deals with essential services; thus, there is only one kind of asset to protect. However, like security, survivability is typically decomposed into quality subfactors. Specifically, survivability consists of prevention, detection, and reaction as illustrated in the class diagram in Figure 5.4


Figure 5: Decomposition of Survivability into Quality Subfactors

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


Survivability and its subfactors can be defined as follows:

2.6 Summary

The preceding section has documented the concept of a quality model, as well as its components and their interrelationships, and has led us to the definitions of the quality factors of safety, security, and survivability. With its figures and definitions, this section allows us to conclude the following:

This section has provided a foundation for engineering safety, security, and survivability requirements because such requirements are typically a combination of quality criteria and metrics for the safety, security, and survivability quality factors.

 

 

 

[Abstract] [Figures] [Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion] [References][PDF File]


3 Requirements Models

Proper requirements are critical for creating software-intensive systems that are safe, secure, and survivable. However, the related concepts of quality goals, policies, and architectural mechanisms are often confused with requirements. This section will clarify the differences between these concepts as well as their relationships to the quality models discussed in the previous section.

3.1 Information Model for Requirements

A complete requirements model must document the major, different kinds of requirements (e.g., functional requirements, quality requirements, data requirements, interface requirements, and constraints) [Firesmith 02]. It should also document the relationships between requirements and such other concepts as goals, policies, and architectural mechanisms.

Figure 6 shows that functional requirements, no matter how critical, are only one kind of requirement. Data, quality, and interface requirements as well as constraints must also be identified, analyzed, specified, and managed. The diagram also clarifies that safety, security, and survivability requirements are quality requirements rather than functional requirements. They are also architecturally significant requirements that have a much larger impact on the architecture (and application cost and development schedule) than most functional requirements.

Figure 6 is incomplete because it does not show all of the different kinds of quality requirements (i.e., those specifying mandatory amounts of other quality factors listed in the preceding taxonomy). As such, it is an oversimplification and therefore is not itself a strong argument for the similarity between safety, security, and survivability requirements. Note that different quality and requirements models may decompose things differently and thereby produce different diagrams.

Although requirements engineers have not traditionally recognized any intermediate model element between goals and requirements, the safety and security communities are very familiar with safety and security policies and have correctly understood that these critical policies are below goals but above requirements in this hierarchy. Therefore, policies are included between goals and requirements in our requirements information model.


Figure 6: Requirements Information Model

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


Figure 6: Requirements Information Model

Similarly, architecture mechanisms as well as architectural constraints are explicitly included in Figure 6 because many requirements engineers (as well as many safety and security engineers) mistakenly specify architectural mechanism (e.g., safeguards and countermeasures) as architectural constraints rather than specifying the true underlying safety and security requirements. Instead, they should leave the selection of safety and security architectural mechanisms to the architecture, safety, and security teams.

The concepts documented in Figure 6 are defined as follows:

3.2 Quality Requirements and Quality Factors

At the highest level of abstraction, quality goals can be for either a quality factor or a quality subfactor. For example, there may be quality goals concerning safety, security, and survivability. Examples of safety goals might be, "The system must be safe" or "The system must not injure its users." Below this level, there may be more detailed quality policies that establish the associated quality goal by mandating a system-specific quality criterion (or criteria type) for the associated quality factor or subfactor. An example of a safety policy might be, "The automated tape library's moving parts shall not injure the tape technician when performing his or her duties. Finally, a specific and verifiable quality requirement consists of a combination of a quality criterion with a mandatory minimum level of an associated quality metric. Thus, the previous safety policy becomes a safety requirement when it is rewritten as follows: "At least 99.99% of the times that the tape technician performs the `remove tape' use case, the automated tape library's moving parts shall not move (and thereby potentially cause an injury to the tape technician)."

Figure 7 relates the concepts of requirements to the concepts of the quality model.5 It also provides a convenient way to partition work, with management setting quality goals and policy, while the requirements team (with input from the safety and security teams) specifies the associated quality requirements.


Figure 7: Relationships from Requirements Model to Quality Model
Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


As illustrated at the top of Figure 8, quality factors characterize different aspects of the system's quality and quality requirements specify different aspects of the system's quality by specifying levels of the associated quality factors and subfactors. Thus, safety requirements specify mandatory levels of safety, security requirements specify mandatory levels of security, and survivability requirements specify mandatory levels of survivability. Specifying these requirements is done by specifying an associated quality criterion and an associated minimum value for a quality metric. This information model thus pulls together parts of previous figures.

Figure 8, shows how the specific quality requirements of this technical note relate to their associated quality factors, quality criteria, and quality metrics that are described in the previous section.6


Figure 8: Relationships from Quality Requirements to Quality Model
Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


3.3 Example Quality Requirements

To make the previous theoretical discussion more specific, consider those quality criteria associated with the integrity subfactor of the security quality factor. Quality criteria types describing integrity could include the following:

An example of a parameterized version of the first quality criteria type above could be stated as follows:

Thus, a specific integrity quality criterion for protecting transmissions from corruption could be written as follows: "The application protects all personal transmissions over all public networks from all types of corruption by unsophisticated attacks." An example of an integrity quality criterion for protecting data stored online from corruption might be, "The application protects stored customer information including account balances from unauthorized modification by sophisticated attacks."

Whereas functional requirements tend to be binary and are specified as either all or nothing, quality requirements are specified using a scale of measurement. For example, the performance quality subfactor of throughput is typically specified in terms of number of transactions per unit time, while the quality subfactor of response time is typically specified in terms of seconds elapsed. Similarly, the scale of measurement for the integrity example in the previous section could be either of the following:

If a quality criterion for data integrity is, "The application protects personal transmissions over all public networks from corruption by unsophisticated attacks," then the associated quality metric might be "average number of corruptions per hour." By providing a minimum acceptable level of this quality metric, we get the following data-integrity requirement: "At least 99.9% of the time, the application shall protect personal transmissions over all public networks from corruption by one hour of unsophisticated attacks."

To make the preceding requirement verifiable, it is necessary to require a percentage of the time that transmissions are successful (i.e., the security test fails to corrupt the transmission) as well as a specific attack load. This information is intended for testing (verification) purposes only and may not correspond to the application's actual future attack load, which most likely will be difficult or impossible to estimate accurately. This attack load needs to include the attacker's level of effort ("one hour") as well as an indication of the attacker's expertise and resources ("unsophisticated attack") that would be needed for the attack to be successful.

3.4 Summary

The preceding section has documented the different kinds of requirements and the way that quality requirements are related to their corresponding quality factors and subfactors. With its figures and definitions, this section leads to the following conclusions:

 

[Abstract] [Figures] [Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion] [References][PDF File]


4 Engineering Models

This section documents the basic fundamental concepts underlying safety, security, and survivability engineering in terms of information models (UML class diagrams) and associated definitions. Building on the previous models, this section clarifies the similarities of and differences between these three disciplines. It also provides the basis for recommending their unification under the new umbrella discipline of defensibility engineering.

4.1 Information Model for Safety Engineering

Safety goals state the importance of achieving a target level of the quality factor safety. Safety policies establish safety goals by mandating desired safety criteria. Safety requirements (a kind of quality requirement) specify the safety policies by specifying mandatory amounts of safety in terms of specific safety criteria with an associated minimum acceptable measurement. Safety requirements thus require the elimination or reduction of safety risks. These safety risks are due to hazards, which provide an organizational framework to similar accidents that can cause harm to valuable system assets. Safety requirements in turn are fulfilled by safety architectural mechanisms (safeguards), which are intended to prevent or reduce vulnerabilities of the assets to accidental harm.

These basic concepts and their relationships are illustrated in Figure 9, an information model for safety engineering.


Figure 9: Information Model for Safety Engineering

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


Figure 9 shows how the important concepts from safety engineering (e.g., asset, accident, hazard, risk, vulnerability) relate to the important terms from requirements engineering (e.g., safety goal, policy, and requirement), quality engineering (e.g., safety), and architecture (e.g., safety mechanism). It also explains and justifies the common safety-analysis approach of analyzing risks in terms of vulnerabilities, hazards, accidents, and assets.

The concepts documented in Figure 9 can be defined as follows:

4.2 Information Model for Security Engineering

Security goals state the importance of achieving a target level of the quality factor security. Security policies establish security goals by mandating desired security criteria. Security requirements (a kind of quality requirement) specify the security policies by specifying mandatory amounts of security in terms of specific security criteria with an associated minimum acceptable measurement. Security requirements thus require the elimination or reduction of security risks. These security risks are due to threat of attack by attackers, which are intended to cause harm to valuable system assets. Security requirements, in turn, are fulfilled by security architectural mechanisms (countermeasures), which are intended to prevent or reduce vulnerabilities of the assets to accidental harm.

These basic concepts and their relationships are illustrated in Figure 10, an information model for security engineering.


Figure 10: Information Model for Security Engineering

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


Figure 10 shows how the important concepts from security engineering (e.g., asset, attack, attacker, threat, risk, security policy, vulnerability) relate to the important terms from requirements engineering (e.g., security goal, policy, and requirement), quality engineering (e.g., security), and architecture (e.g., security mechanism). It also explains and justifies the common security-analysis approach of analyzing risks in terms of vulnerabilities, threats, attacks, and assets. Finally, its contents and topology show the clear relationship between safety and security engineering.

The concepts documented in Figure 10 can be defined as follows:

4.3 Information Model for Survivability Engineering

Survivability goals state the importance of achieving a target level of the quality factor survivability. Survivability policies establish survivability goals by mandating desired survivability criteria. Survivability requirements (a kind of quality requirement) specify the survivability policies by specifying mandatory amounts of survivability in terms of specific survivability criteria with an associated minimum acceptable measurement. Survivability requirements thus require the elimination or reduction of survivability risks. These survivability risks are due both to the hazard of accidents and the threat of attacks by attackers, which could cause harm to valuable system assets. Survivability requirements, in turn, are fulfilled by survivability architectural mechanisms, which are intended to prevent or reduce the vulnerabilities of the assets to accident and attack.

These basic concepts and their relationships are illustrated in Figure 11, an information model for survivability engineering.


Figure 11: Information Model for Survivability Engineering

Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


The similar content and topology of Figure 9, Figure 10, and Figure 11 show the clear and close relationships between survivability, safety, and security engineering. Figure 11 also justifies the common survivability-analysis approach of analyzing risks in terms of vulnerabilities, threats, hazards, and assets. In addition, it clearly shows how survivability is restricted to essential services rather than the other types of assets.

The additional concepts in Figure 11 that have not been defined in previous subsections include the following:

4.4 Summary

The preceding section has documented the important concepts underlying safety, security, and survivability engineering. With its figures and definitions, this section leads to the following conclusions:

 

 

 

[Abstract] [Figures] [Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion] [References][PDF File]


5 Similarities and Differences

As shown in the previous section, safety, security, and survivability engineering are very similar. This section summarizes these similarities as well as the differences and will provide a basis for the specific recommendations made in Section 6.

5.1 Similarities

As illustrated in Figure 9, Figure 10, and Figure 11, the information models for safety, security, and survivability have many similarities in contents and topology [Leveson 95]. The following subsections discuss these similarities in more detail.

5.1.1 Similarities Common to All Requirements

As pointed out in Figure 6, all quality requirements can be placed into the following hierarchical chain:

  1. goals that drive policies
  2. policies that drive requirements
  3. requirements that drive architectural mechanisms
  4. architectural mechanisms that fulfill requirements

This hierarchy applies to all quality factors and does not signify anything special about safety, security, and survivability engineering.

5.1.2 Similarities Common to All Quality Requirements

As pointed out in Figure 8, all quality requirements are related to quality factors. The relationships between requirements and quality factors also do not signify anything special about safety, security, and survivability.

5.1.3 Specific Similarities

Whereas the previous similarities were general, the following similarities are specific to safety, security, and survivability engineering. On Figure 9, Figure 10, and Figure 11, these similarities include the following:

5.2 Differences

The following subsections discuss the essential and accidental differences between the information models underlying safety, security, and survivability engineering.

5.2.1 Quality Factor Subclasses and Subfactors

Safety, security, and survivability are quality factors that differ in that they currently have quite different subclasses and quality subfactors:

Other than the historical accident that these three disciplines have been developed largely independently of one another and that all three have been largely driven by the architectural mechanisms that have been used to fulfill them, there seems to be little reason why the preceding three decompositions should be so different. Although prevention is preferable to cure, it is clear that prevention has been strongly emphasized in all three disciplines, while detection and especially response have been highly under-emphasized. Thus, most of the quality subfactors of security can be placed under the banner of prevention.

5.2.2 Assets

Safety, security, and survivability tend to emphasize the protection of different kinds of valuable assets from different kinds of harm.

Nevertheless, these differences are somewhat minimized when safety and security properly address all types of valuable assets. However, protecting the environment from malicious harm does not seem to be within the current scope of security, although acts of eco-terrorism and international terrorism could well change that.

5.2.3 Accidents vs. Attacks

Because of the separation of scope of safety and security into accidental and malicious harm, safety and security deal with different (though related) types of incidents, and survivability deals with both kinds of incidents.

As illustrated in Figure 12, the source of relevant harm differs with respect to the different kinds of requirements:


Figure 12: Accidents vs. Attacks
Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


5.2.4 Hazards vs. Threats

Because of the separation of scope of safety and security into accidental and malicious harm, safety and security deal with different types of dangers, and survivability deals with both. Figure 13 illustrates the following relationships:


Figure 13: Hazards vs. Threats
Figures from this report are displayed in a separate browser window. This window will remain open to display figures in this file, although it might be hidden behind other browser windows.


 

 

[Abstract] [Figures] [Acknowledgments][Executive Summary] [1 Introduction] [2 Quality Model] [3 Requirements Models] [4 Engineering Models] [5 Similarities and Differences] [6 Recommendations and Future Work]  [7 Conclusion] [References][PDF File]


6 Recommendations and Future Work

6.1 Specific Recommendations

The following recommendations are based on the preceding observations concerning similarities and differences among the fundamental concepts underlying safety, security, and survivability engineering.

6.1.1 Use Common Concepts and Terminology

Where appropriate and practical, use common concepts and terminology when performing or describing safety, security, and survivability engineering [Mead 03]. For exampl