IWS - The Information Warfare Site
News Watch Make a  donation to IWS - The Information Warfare Site Use it for navigation in case java scripts are disabled


FOREWORD

The National Computer Security Center is issuing A Guide to Understanding Security
Modeling in Trusted Systems as part of the "Rainbow Series" of documents produced by our
Technical Guidelines Program. In the Rainbow Series, we discuss, in detail, the features of the
Department of Defense Trusted Computer System Evaluation Criteria (DoD 5200.28-STD) and
provide guidance for meeting each requirement. The National Computer Security Center, through
its Trusted Product Evaluation Program, evaluates the security features and assurances of
commercially-produced computer systems. Together, these programs ensure that organizations are
capable of protecting their important data with trusted computer systems. Security modeling, in its
various forms, is an important component of the assurance of the trust of a computer system.

A Guide to Understanding Security Modeling in Trusted Systems is intended for use by
personnel responsible for developing models of the security policy of a trusted computer system.
At lower levels of trust, this model is generally the system"s philosophy of protection. At higher
trust levels, this also includes informal and formal models of the protection mechanisms within a
system. This guideline provides information on many aspects of security modeling, including the
process of developing a security policy model, security modeling techniques, and specific ways to
meet the requirements of the Department of Defense Trusted Computer System Evaluation
Criteria.

As the Director, National Computer Security Center, I invite your suggestions for revising this
document. We plan to review and revise this document as the need arises.

Patrick R. Gallagher, Jr. October 1992

Director

National Computer Security Center

ACKNOWLEDGMENTS

Special recognition and acknowledgment for their contributions to this document are
extended to the following: Dr. James Williams, as primary author of this document; Barbara
Mayer, Capt. James Goldston, USAF, and Lynne Ambuel, for project management.

Special thanks are also given to the many evaluators, vendors, and researchers whose careful
reviews and suggestions contributed to this document, with special recognition for the advice of
David Bell, Daniel Schnackenberg, Timothy Levin, Marshall Abrams, Deborah Bodeau, Leonard
La Padula, Jonathan Millen, William L. Harkness, Thomas A. Ambrosi, Paul Pittelli, Dr. Michael
Sinutko, Jr, and COL Rayford Vaughn, USA.

TABLE OF CONTENTS

FOREWORD i

ACKNOWLEDGMENT ii

1. INTRODUCTION 1

1.1 Background 1

1.2 Purpose 2

1.3 Control Objectives 3

1.3.1 The Assurance Objective 3

1.3.2 The Security Policy Objective 4

1.4 Historical Overview 5

1.5 Content and Organization 7

2. OVERVIEW OF A SECURITY MODELING PROCESS 9

2.1 Security Models and Their Purpose 9

2.2 Security Modeling in the System Development Process 11

2.3 Identifying the Contents of a Security Model 14

2.3.1 Step 1: Identify Requirements on the External Interface 16

2.3.2 Step 2: Identify Internal Requirements 18

2.3.3 Step 3: Design Rules of Operation for Policy Enforcement 20

2.3.4 Step 4: Determine What is Already Known 21

2.3.5 Step 5: Demonstrate Consistency and Correctness 22

2.3.6 Step 6: Demonstrate Relevance 23

2.4 Presentation for Evaluation and Use 24

3 .SECURITY MODELING TECHNIQUES 27

3.1 Basic Concepts 27

3.1.1 Data Structures and Storage Objects 28

3.1.2 Processes and Subjects 29

3.1.3 Users and User Roles 31

3.1.4 I/O Devices 33

3.1.5 Security Attributes 35

3.1.6 Partially Ordered Security Attributes 37

3.1.7 Nondisclosure Levels 39

3.1.8 Unlabeled Entities and the Trusted Computing Base 40

3.2 Nondisclosure and Mandatory Access Control 41

3.2.1 External-Interface Requirements and Model 43

3.2.2 Information-Flow Model 45

3.2.3 Application to the Reference Monitor Interface 47

3.2.4 Access-Constraint Model 48

3.2.5 Tailoring the Models 51

3.3 Need-to-Know and Discretionary Access Control 53

3.3.1 DAC Requirements and Mechanisms 54

3.3.2 User Groups and User Roles 55

3.3.3 Sources of Complexity and Weakness 56

3.3.4 Tight Per-User Access Control 59

3.4 TCB Subjects-Privileges and Responsibilities 61

3.4.1 Identifying Privileges and Exemptions 62

3.4.2 Responsible Use of Exemptions 65

3.5 Integrity Modeling 66

3.5.1 Objectives, Policies, and Models 67

3.5.2 Error Detection and Recovery 68

3.5.3 Encapsulation and Level-Based Access Control 71

4. TECHNIQUES FOR SPECIFIC KINDS OF SYSTEM 5

4.1 Operating Systems 75

4.1.1Traditional Access Control Models 75

4.1.2 The Models of Bell and La Padula 77

4.2 Networks and Other Distributed Systems 78

4.2.1 Systems and Their Components 78
4.2.2 Model Structure and Content 80
4.2.3 Network Security Models 82
4.2.4 Individual Component Security Models 84
4.2.5 Underlying Models of Computation 85

4.3 Database Management Systems 86

4.3.1 System Structure 87
4.3.2 Integrity Mechanisms and Policies 89
4.3.3 Aggregation 90

4.3.4 Inference 91
4.3.5 Partially Automated Labeling 92

4.4 Systems with Extended Support for Label Accuracy 94

4.4.1 Factors Inhibiting Accuracy in Labeling 94
4.4.2 Floating Sensitivity Labels 95
4.4.3 Compartmented Mode Workstations (CMW) 95
4.4.4 The Chinese Wall Security Policy 96

5. MEETING THE REQUIREMENTS 99

5.1 Stated Requirements on the Security Model 99
5.2 Discussion of the B1 Requirements 100
5.3 Discussion of the B2 Requirements 103
5.4 Discussion of the B3 Requirements 104
5.5 Discussion of the A1 Requirements 105

APPENDIX A. SECURITY LEVELS AND PARTIALLY ORDERED SETS 107

A.l Terminology 107

A.2 Embeddings 109
A.3 Cartesian Products 109

A.4 Duality 110

APPENDIX B. AVAILABLE SUPPORT TOOLS 113

B.1 FDM: the Formal Development Methodology 114

B.2 GVE: the Gypsy Verification Environment 115

APPENDIX C. PHILOSOPHY OF PROTECTION OUTLINE 17

APPENDIX D. SECURITY MODEL OUTLINE 21

APPENDIX E. GLOSSARY 127

REFERENCES 45

1. INTRODUCTION

This document provides guidance on the construction, evaluation, and use of security policy
models for automated information systems (AIS) used to protect sensitive information whose
unauthorized disclosure, alteration, loss, or destruction must be prevented. In this context, sensitive
information includes classified information as well as unclassified sensitive information.

1.1 BACKGROUND

The National Computer Security Center (NCSC) was established in 1981 and acquired its
present name in 1985. Its main goal is to encourage the widespread availability of trusted AISs. In
support of this goal, the DoD Trusted Computer System Evaluation Criteria (TCSEC) was written
in 1983. It has been adopted, with minor changes, as a DoD standard for the protection of sensitive
information in DoD computing systems. [NCSC85] The TCSEC is routinely used for the
evaluation of commercial computing products prior to their accreditation for use in particular
environments. This evaluation process is discussed in Trusted Product Evaluations: A Guide for
Vendors. [NCSC90c]

The TCSEC divides AISs into four main divisions, labeled D, C, B, and A, in order of
increasing security protection and assurance. Divisions C through A are further divided into
ordered subdivisions referred to as classes. For all classes (C1, C2, B1, B2, B3 and A1), the TCSEC
requires system documentation that includes a philosophy of protection. For classes B1, B2, B3,
and A1, it also requires an informal or formal security policy model.

Although the TCSEC is oriented primarily toward operating systems, its underlying concepts
have been applied much more generally. In recognition of this, the NCSC has published a Trusted
Network Interpretation [NCSC87] and a Trusted Database Management System Interpretation.
[NCSC91] In addition, the NCSC also provides a series of guidelines addressing specific TCSEC
requirements, of which this document is an example.

1.2 PURPOSE

This guideline is intended to give vendors and evaluators of trusted systems a solid
understanding of the modeling requirements of the TCSEC and the Trusted Network Interpretation
of the TCSEC (TNI). It presents modeling and philosophy of protection requirements for each of
the classes in the TCSEC, describes possible approaches to modeling common security
requirements in various kinds of systems, and explains what kinds of mode is are useful in an
evaluation. It is intended for vendors, evaluators, and other potential builders and users of security
models.

This guideline discusses the philosophy of protection requirement, explains how it relates to
security modeling, and provides guidance on documentation relating to the system's philosophy of
protection and security policy model. It explains the distinction between informal and formal
security policy models as well as the relationships among application-independent models,
application-dependent security models, and model interpretations. It also explains which
techniques may be used to meet the modeling requirements at levels B1 through Al as well as the
advantages and disadvantages of the various modeling techniques. Finally, it discusses the specific
TCSEC modeling requirements.

This guideline also addresses human aspects of modeling. It describes how modeling captures
basic security requirements and how the security modeling effort leads to better systems and
provides a basis for increased assurance of security.

Finally, this guideline answers common questions about NCSC recommendations regarding
the construction of security models. Security policies and models are supplied by vendors in
response to customer needs and TCSEC requirements; they are not supplied by the NCSC or the
TCSEC. The TCSEC does, however, set minimum requirements in the areas of mandatory and
discretionary access control. The TCSEC does not require particular implementation techniques;
this freedom applies, by extension, to modeling techniques. Acceptability of a technique depends
on the results achieved. More specifically, a security model must provide a clear and accurate
description of the security policy requirements, as well as key ideas associated with their
enforcement. Moreover, one must be able to validate the model using assurance techniques
appropriate to the proposed evaluation class. Any vendor-supplied modeling technique which
appears to be compatible with the security modeling requirements will be seriously considered
during the course of a product evaluation.

Topics which are closely related to security modeling include formulation of security policy
objectives, design specification and verification, covert channel analysis, and implementation
correspondence analysis. These topics are addressed only to the extent necessary to establish their
influence on the security modeling process. All but the first of these topics are addressed in other
guidelines in this series. Security objectives for trusted systems traditionally include
nondisclosure, integrity, and denial of service. [cf NCSC88, AIS Security] However, the modeling
of denial of service is not addressed in this guideline, due to the lack of adequate literature on this
topic. This guideline is written with the understanding that security modeling will continue to
evolve in response to new policy objectives and modeling techniques associated with future trusted
system designs.

Reading and understanding this guideline is not sufficient to allow an inexperienced
individual to develop a model. Rather, he or she should read this document in conjunction with one
or more of the published models in the list of references. This guideline assumes a general
familiarity with the TCSEC and with computer security. A general text such as Building a Secure
Computer System [GASS87] may provide useful background reading. Additional mathematical
background needed for formal modeling can be found in general texts on mathematical structures
such as Introduction to Mathematical Structures [GALO89].

The approaches to security modeling presented in this document are not the only possible
approaches to satisfying TCSEC modeling requirements, but are merely suggested approaches.
The presentation of examples illustrating these approaches does not imply NCSC endorsement of
the products on which these examples are based. Recommendations made in this document are not
supplementary requirements to the TCSEC. The TCSEC itself (as supplemented by announced
interpretations [NCSC87, NCSC88a, NCSC88b, NCSC91]) is the only metric used by the NCSC
to evaluate trusted computing products.

1.3 CONTROL OBJECTIVES

The requirements of the TCSEC were derived from three main control objectives: assurance,
security policy, and accountability. The security modeling requirements of the TCSEC support the
assurance and security policy control objectives in systems rated B1 and above.

1.3.1 THE ASSURANCE OBJECTIVE

The TCSEC assurance control objective states, in part,

"Systems that are used to process or handle classified or other sensitive information
must be designed to guarantee correct and accurate interpretation of the security policy and
must not distort the intent of that policy." [NCSC85, § 5.3.3]

Assurance in this sense refers primarily to technical assurance rather than social assurance. It
involves reducing the likelihood that security mechanisms will be subverted as opposed to just
improving people's confidence in the utility of the security mechanisms.

1.3.2 THE SECURITY POLICY OBJECTIVE

The TCSEC security policy control objective states, in part,

"A statement of intent with regard to control over access to and dissemination of
information, to be known as the security policy, must be precisely defined and
implemented for each system that is used to process sensitive information. The security
policy must accurately reflect the laws, regulations, and general policies from which it is
derived." [NCSC85, § 5.3.1]

The security policy objective given in the TCSEC covers "mandatory security policy,"
"discretionary security policy," and "marking" objectives. The mandatory security policy
objective requires the formulation of a mandatory access control (MAC) policy that regulates
access by comparing an individual's clearance or authorization for information to the classification
or sensitivity designation of the information to be accessed. The discretionary access control
objective requires the formulation of a discretionary access control (DAC) policy that regulates
access on the basis of each individual's need-to-know, Finally, the marking objective gives labeling
requirements for information stored in and exported from systems designed to enforce a mandatory
security policy.

The access controls associated with security policies serve to enforce nondisclosure and
integrity. Nondisclosure controls prevent inappropriate dissemination of information. Integrity
controls prevent inappropriate modification of information.

The security policy control objective requires that the security policy accurately reflect the
laws, regulations, and general policies from which it is derived. These may include the revised
DoD Directive 5200.28, Security Requirements for Automated Information Systems (AISs).
[DOD88a] Section D of Directive 5200.28 gives policy relating to both integrity and
nondisclosure. It mentions safeguards "against sabotage, tampering, denial of service, espionage,
fraud, misappropriation, misuse, or release to unauthorized users." Enclosure 2 defines relevant
terms and, in particular, extends the concept of "user" to include processes and devices interacting
with an automated information system on behalf of users. Enclosure 3 gives general security
requirements, including data-integrity requirements. The revised 5200.28 does not use the MAC/
DAC terminology. Instead, it requires accurate marking of sensitive information and the existence
of an (undifferentiated) access control policy based partly on the identity of individual users. It
treats need-to-know as a form of least privilege.

Security policy relating to nondisclosure stems from Executive Order 12356 [REAG82] and,
in the case of DoD systems, from DoD 5200.1-R. [DOD86] Depending on the application, the
security policy may be constrained by a variety of other regulations as well. The collection,
maintenance, use, and dissemination of personal information is protected by DoD Directive
5400.11 [DOD82, § E.2] and by Public Law 100-503 [CONG88]. Classified and other sensitive
information needed for the conduct of federal programs is protected by the Computer Security Act
of 1987, Public Law 100-235 [CONG87], which requires safeguards against loss and unauthorized
modification.

1.4 HISTORICAL OVERVIEW

The starting point in modeling a MAC policy is the observation that security levels are
partially ordered (see Appendix A). This fact was first reflected in the design of the ADEPT-50,
an IBM 360-based, time-sharing system with both mandatory and discretionary controls.
[WEIS69, LAND81] The central role of partial orderings in MAC policy models was then
recognized in subsequent work. [POPE73; BELL73; BELL74a] These partial orderings on security
levels have become known as dominance relations.

Independently of this, access control matrices were used by Lampson and Graham [LAMP71;
GRAH72] to represent protection data. These works modeled discretionary access control using
matrices whose rows and columns represented subjects and objects. Subjects were active entities
such as processes and users. Objects were entities such as data structures that played a passive role,
but often included subjects as well. Each entry in an access matrix told what a given subject was
allowed to do with a given object by giving a set of allowed operations such as read, write, execute,
or change ownership. The AIS used the access matrix to mediate all accesses by subjects to objects.

An Air Force Computer Security Technology Planning Study [ANDE72], referred to as "the
Anderson Report," discussed use of a reference monitor to enforce nondisclosure policies and
advanced the idea of formal security verification- the use of rigorous mathematical proofs to give
(partial) assurance that a program design satisfies stated security requirements. This idea was
investigated by Schell, Downey and Popek. [SCHE73]

At that time, Bell and La Padula adapted access control matrices for use in modeling both
mandatory and discretionary access controls and codified the reference monitor concept using state
machines. Their machine states included access matrices and other security-relevant information
and are now often referred to as protection states. Having established the necessary framework,
they observed that a portion of DoD policy for nondisclosure of classified information could be
formalized as invariant properties of protection states [LAPA73], that is, as properties which hold
in all reachable states of the system. Their invariants constrained the allowed accesses between
subjects and objects. The most significant of these was their *-property It included a form of the
simple security property and guaranteed that the security level of every object read by an untrusted
subject was at or below the security level of every object written by that subject. [BELL74] These
ideas and their use in enforcing nondisclosure are covered in detail in Sections 3.2.4 and 4.1.

To complete their state machine, Bell and La Padula introduced a set of state transformations,
called rules of operation, that modeled basic changes in a protection state and then rigorously
proved that the rules of operation preserved the identified state invariants. [LAPA73, BELL74,
BELL76] This work contains the first widely discussed use of mathematical proof for studying
multilevel security.

In parallel with Bell and La Padula, Walter and others developed a similar approach to
verifying multilevel security. [WALT74, WALT74a] A strong point of the work by Walter et al.
is the use of modularity and data abstraction techniques that have since been accepted as
indispensable for verifying large systems.

The intent of the state invariants identified by Bell and La Padula is that information is
allowed to flow from one entity to another only if the second entity is at an equal or higher security
level than the first. Denning and others attempted to formalize this idea directly using "information
flow" models. [DENN76, DENN77, COHE77, REIT79, ANDR80]. These models differed in style
from access control models in that they referred explicitly to information flow, but, in contrast to
more recent investigations, did not actually define information flow. Denning's work did,
however, point out an interesting distinction. In the conditional assignment

if a = 0 then b := c,

information flows explicitly from c to b (when a = 0) and implicitly from a to b (when b c).
Denning also pointed out that, in the case of the ADEPT-50, access control can easily allow
implicit information flow. [DENN77] This problem is discussed in detail in Section 3.2.

Discrepancies between information flow and access control open up the possibility of covert
channels- paths of information flow that malicious processes can use to bypass the access control
mechanism and thereby violate underlying security objectives. [cf LAMP73] Information flow
models and concern over covert channels have led to the development of techniques and tools for
covert channel analysis that are capable of detecting a variety of covert channels. [MILL76,
MILL81, FEIE77, FEIE80]

The developments just described provided the technical background for the security modeling
requirements given in the TCSEC. A variety of important developments not explicitly reflected in
the TCSEC have taken place in the last decade and will be presented later in this guideline. The
class of security policies that can be formally modeled has been greatly extended, beginning with
Biba's (pre-TCSEC) work on integrity. [BlBA77] Work has also gone into tailoring nondisclosure
security to particular applications. Finally, various external-interface models have been developed
that do not constrain internal system structure, an example of which is the noninterference model
of Goguen and Meseguer. [GOGU82] These models provide a rationale for rigorously assessing
new approaches to access control.

1.5 CONTENT AND ORGANIZATION

Section 2 presents an overview of the security modeling process, with emphasis on
correctness and utility. Section 3 presents technical detail on how to model concepts of interest,
including nondisclosure and integrity policies, mandatory and discretionary access controls, and
exemption from access control within the Trusted Computing Base (TCB).

Section 4 shows how to apply the techniques from Section 3 to various kinds of systems;
including operating systems, networks, database systems, and multilevel workstations. Finally,
Section 5 summarizes all of the TCSEC security modeling requirements for B1, B2, B3, and A1
computing systems.

Appendix A presents facts about lattices and partially ordered sets that are needed for Sections
3 and 4. Appendix B contains brief descriptions of available support tools. Appendices C and D
contain suggested outlines for a philosophy of protection and a security policy model. Finally,
Appendix E is a glossary giving definitions of technical terms. This glossary includes all terms that
are introduced in italics throughout the guideline.

When TCSEC requirements are discussed in this guideline, they are identified either by the
key words "must" or "shall" or by explicit quotations from the TCSEC. By way of contrast, when
desirable but optional actions and approaches are discussed, they are presented without exhortation
and are instead accompanied by an explanation of specific advantages or benefits. In a few cases,
possible requirements are designated by "should," because the implications of the TCSEC are not
fully understood or agreed upon.

2. OVERVIEW OF A SECURITY MODELING PROCESS

A security model precisely describes important aspects of security and their relationship to
system behavior. The primary purpose of a security model is to provide the necessary level of
understanding for a successful implementation of key security requirements. The security policy
plays a primary role in determining the content of the security model. Therefore, the successful
development of a good security model requires a clear, well-rounded security policy. In the case
of a formal model, the development of the model also must rely on appropriate mathematical
techniques of description and analysis for its form.

Sections 2.1 and 2.2 explain what security models describe, why they are useful, and how they
are used in the design of secure systems. Section 2.3 introduces general definitions relating to
security models and explains how security models are created. Finally, Section 2.4 discusses the
presentation of a security model in a modeling document.

2.1 SECURITY MODELS AND THEIR PURPOSE

Early security models focused primarily on nondisclosure of information. More recently, the
importance of data as a basis for decisions and actions has stimulated interest in integrity models.
[DOD88a, WHIT84] For example, nondisclosure properties alone do not protect against viruses
that can cause unauthorized, malicious modification of user programs and data.

A wide variety of concepts can impact nondisclosure and integrity in particular system
designs. As a result, the content of security models is quite varied. Their primary purpose is to
provide a clear understanding of a system's security requirements. Without such an understanding,
even the most careful application of the best engineering practices is inadequate for the successful
construction of secure systems.

Inadequacies in a system can result either from a failure to understand requirements or from
flaws in their implementation. The former problem, defining what a system should do, is relatively
difficult in the case of security. The definition must be precise in order to prevent undesired results,
or subtle flaws, during the implementation of the system design.

During the entire design, coding, and review process, the modeled security requirements may
be used as precise design guidance, thereby providing increased assurance that the modeled
requirements are satisfied by the system. The precision of the model and resulting guidance can be
significantly improved by casting the model in a formal language.

Once the system has been built, the security model serves the evaluation and accreditation
processes. It contributes to the evaluators' judgement of how well the developers have understood
the security policy being implemented and whether there are inconsistencies between security
requirements and system design. Moreover, the security model provides a mechanism for tailoring
the evaluation process to the vendor's needs because it presents the security concept that is
supported by the system being evaluated. The inclusion of particular facts in the security model
proclaims to evaluators and potential customers that those facts are validated at the level of
assurance which the TCSEC associates with that system's evaluation class.

Upon successful evaluation and use, the security model provides a basis for explaining
security-relevant aspects of system functionality. Later, during maintenance, it provides a basis for
guidance in making security-relevant modifications. Finally, by suppressing inessential design
detail, security models facilitate a broader understanding of security that can be applied to
increasingly larger classes of systems. Among the many examples of such generalizations is the
adaptation of traditional reference monitor concepts referenced in the TNI to provide a basis for
understanding network security requirements. [NCSC87]

The intended purpose of a security model suggests several desirable properties. The
requirements captured by a good model pertain primarily to security, so that they do not unduly
constrain the functions of the system or its implementation. A good model accurately represents
the security policy that is actually enforced by the system. Thus, it clarifies both the strengths and
the potential limitations of the policy. (As an extreme example, if the system can simply declassify
all objects and then proceed normally, as in McLean's System Z [MCLE87], a good model would
show this.) Finally, a good model is simple and therefore easy to understand; it can be read and
fully understood in its entirety by its intended audience. This last property cannot be achieved
without significant care in choosing the contents, organization, and presentation of the security
model. For example, the desire to provide a security model with the "look and feel" of UNIX,
might need to be tempered by the need for simplicity and abstraction. [cf NCSC90b, Sec. 6.2]

2.2 SECURITY MODELING IN THE SYSTEM DEVELOPMENT PROCESS

Security requirements are best identified early in the system development process. Not
identifying security requirements in a timely fashion is likely to have devastating effects on
security assurance, security and application functionality, development schedule, and overall
development costs. For example, in the case of a development using DOD-STD-2167A, [DOD88]
this identification process would be part of the system requirements analysis. The identification of
security requirements begins with the identification of high-level security objectives (as described
in Section 1.3) and the methods by which they are to be met, including automated, procedural, and
physical protection methods. This identification of security requirements and their derivation from
identified higher-level security objectives is the initial material for a philosophy of protection
(POP). As indicated in Appendix C, the philosophy of protection may also include a broad range
of other topics such as the structure of the trusted computing base (TCB) and physical and
procedural security mechanisms.

Those requirements in the philosophy of protection which deal with automated protection
methods provide an initial definition of security for a security policy model. The model's purpose
is to precisely state these requirements and to compare them with key aspects of the security
enforcement mechanism. A security policy model in this sense contains two essential portions: a
"definition of security" portion that captures key security requirements and a "rules of operation"
portion that shows how the definition of security is enforced.

The model's definition of security can be used to avoid major system development errors. It
can be used to guide the design of basic software protection mechanisms and to influence the
design, selection and use of underlying firmware and hardware protection mechanisms. The initial
draft model, and supporting documentation, provides guidance as to system security during
reviews of the system design. However, there often are discrepancies between the design and the
model. Some of these are resolvable and can be identified and corrected during the normal design
review process. In some cases, however, discrepancies are unavoidable and can only be resolved
by making some assumptions that simplify the problem. These assumptions need to be justifiable,
based on the model. These discrepancies can also be addressed through procedural restrictions on
the use of the system. There are some portions of a security model that may require design
information that is not initially available and must, therefore, be postponed. Possible examples
include detailed rules of operation for a security kernel and security models for specific security-
critical processes. In such cases, the system designer must ensure that discrepancies are noted and
the completed system will satisfy the completed model.

To ensure that a design satisfies modeled security requirements, it is necessary to give a model
interpretation which shows how the model relates to the system. For evaluation classes B1 and B2,
this involves explaining how each concept in the model is embodied by the system design and
informally demonstrating that the modeled requirements are met. Since the model's rules of
operation must conform to the model's definition of security, the model interpretation need
demonstrate only that the rules of operation are adhered to. For classes B3 and A1, the model
interpretation is done in two steps. The design, as reflected in a top-level specification (TLS), is
shown to be consistent with the model, and the implementation is shown to be consistent with the
TLS. For Class B3, an informal descriptive top-level specification (DTLS) is used, an informal
correspondence from the DTLS to the model is performed, and the implementation is shown to be
consistent with the DTLS. At Class A1, the DTLS is supplemented with a formal top-level
specification (FTLS), a formal verification proves that the FTLS is consistent with the model, and
the implementation is shown to be consistent with the FTLS. A fuller summary of model-
interpretation requirements is given in Section 5.

The role of security modeling in relation to other aspects of system development is
summarized in Figure 2.1. Aspects that do not directly involve modeling, per se, are shaded in grey.
Requirements concerning the model are summarized at the beginning of Section 5. The broadest
document is the philosophy of protection (POP); it covers higher-level security objectives, derived
security policies constraining the design and use of the system, and the protection mechanisms
enforced by the TCB. The POP, the security policy, and the model all cover the system's definition
of security. Both the POP and the model cover key aspects of the TCB protection mechanisms. At
B2 and above, the formal model supports a rigorous proof showing that the rules of operation
enforce the definition of security, and the DTLS gives a functional description of the TCB
protection mechanisms with emphasis on the TCB interface. At A1, the FTLS formalizes a large
portion of the DTLS in order to verify that the TCB design satisfies the modeled security
requirements.

Figure 2.1. Security Documentation

The above paragraphs refer to a single security model but networks, database systems, and
other complex systems may involve several security models or submodels. When a system is made
up of several complex components or subsystems, interfaces between the components or
subsystem layers must be modeled, if they play a key role in security protection. In this case, the
best approach may be to develop separate models for each component or layer in order to show
how the various subsystems contribute to overall system security. A danger with this approach,
however, is that the combined effect of the various submodels may not be obvious. This is
discussed further in Section 4.

2.3 IDENTIFYING THE CONTENTS OF A SECURITY MODEL

The most basic strategy in identifying the contents of a security model is perhaps that of divide
and conquer. The modeling effort may be subdivided according to higher-level security objectives.
Requirements on a system can be mapped to derived requirements on subsystems. Requirements
for a particular objective can be classified according to level in a requirements hierarchy.

Security modeling provides a five-stage elaboration hierarchy for mapping a system's
security policy requirements to the behavior of the system. As a result of this hierarchy, the phrases
"security policy" and "security model" have taken on a variety of meanings. The five relevant
stages are as follows:

1. Higher-level policy objectives

2. External-interface requirements

3. Internal security requirements

4. Rules of operation

5. Top-level specification

A higher-level objective specifies what is to be achieved by proper design and use of a computing
system; it constrains the relationship between the system and its environment. The TCSEC control
objectives belong to this first level of the requirements hierarchy. An external-interface
requirement applies a higher-level objective to a computing system's external interface; it explains
what can be expected from the system in support of the objective but does not unduly constrain
internal system structure. Internal security requirements constrain relationships among system
components and, in the case of a TCB-oriented design, among controlled entities. Rules of
operation explain how internal requirements are enforced by specifying access checks and related
behaviors that guarantee satisfaction of the internal requirements. A top-level specification is a
completely functional description of the TCB interface. It also specifies behavior of system
components or controlled entities.

In various contexts, the phrase security policy may refer to any or all of the first four stages
of elaboration. In many contexts, the term security policy refers to organizational security policy.
[cf NCSC85, Glossary] From a modeling perspective, organizational policies are the source of
higher-level policy objectives. In much of the literature on security modeling, a system security
policy is part of the requirements stages of development and provides the definition of security to
be modeled. Additional thoughts on the importance of distinguishing among policy objectives,
organizational policies, and system policies may be found in Sterne's article "On the Buzzword
"Security Policy." [STER91] The terms "AIS security policy" and "automated security policy" are
synonyms for "system security policy."

The security policy model is a model of the security policy enforced by the TCB. It is
simultaneously a model of the policy and of the system for which the model is given. The portions
of the system which are constrained by the model belong to the TCB by definition. The model's
definition of security may contain external-interface requirements, but more traditionally consists
of internal requirements. Its rules of operation may, in some cases, amount to a top-level
specification. There is no firm boundary between rules of operation and top-level specifications:
both explain how internal requirements are enforced by the TCB. However, more detail is required
in a TLS, including accurate descriptions of the error messages, exceptions, and effects of the TCB
interface. Security requirements occur implicitly in rules of operation and top-level specifications.
In this form they are often referred to as security mechanisms. Internal requirements are sometimes
classified as "policy" or "mechanism" according to whether or not they are derived from a specific
higher-level policy objective.

Conceptually, the security modeling process takes place in two main phases. Requirements
modeling takes place after a system security policy is fairly well understood. This is accomplished
by constraining the system's design and use based on the higher-level objectives. Rules of
operation may be deferred until after the definition of security is established and the basic
architecture of the system has been identified.

The following paragraphs contain general suggestions for the construction of security models.
Suggestions pertaining to specific kinds of security requirements and specific kinds of systems are
given in Sections 3 and 4, respectively.

These suggestions are broken down into six steps that could be carried out with respect to an
entire system and security policy or, more simply, for a given component and higher-level policy
objective. The first step is to identify externally imposed security policy requirements on how the
system (or component) must interact with its environment. The second is to identify the internal
entities of the system and to derive the requirements portion of the model in such a way as to extend
the external-interface requirements. The third is to give rules of operation in order to show how the
modeled security requirements can be enforced. After completion of step three enough information
generally is available to determine reliably whether the model is inherently new or can be
formalized by known techniques. At classes B2 and above, this is the fourth step. The first three
steps taken together result in the identification of several submodels. The fifth step is to
demonstrate consistency among these various submodels, so that they fit together in a reasonable
way to form a completed security policy model. Finally, the sixth step is to demonstrate relevance
of the model to the actual system design. Typically, the majority of the security modeling effort is
associated with these last two steps and associated revisions to the model. The total effort needed
to produce a security policy model varies considerably, but is often between six staff-months and
two staff-years.

2.3.1 STEP 1: IDENTIFY REQUIREMENTS ON THE EXTERNAL INTERFACE

The first step is to identify major security requirements and distinguish them from other kinds
of issues. These identified requirements should adequately support known higher-level policy
objectives for use of the system. An emphasis on external-interface requirements helps prevent an
unrecognized mixing of security and design issues. Such mixing could interfere with the
understanding of security and could impose unnecessary constraints on the system design.

External-interface requirements for a computer system can be described in several ways. An
elegant, but possibly difficult, approach is to limit the discussion purely to data crossing the system
interface; this is the "black-box" approach. The best known example of the black-box approach is
noninterference (see Section 3.2.1). Alternatively, one can describe the system in terms of its
interactions with other entities in its environment, such as other computing systems, users, or
processes. Finally, one can give a hypothetical description of internal structure that ensures the
desired external-interface behavior.

In general, the system's interaction with its environment is constrained by the sensitivity of
the information handled and by the authorizations of the individuals and systems accessing the
system. Identified user roles, associated privileges, and the extent to which certain roles are
security-critical also limit the system's interface to the environment. These constraints determine
security attributes that are associated with the system's inputs and outputs. Security attributes may
include classification, integrity, origin, ownership, source of authorization, and intended use,
among others. The use of such attributes in the construction of security models is discussed in
Section 3.

In the case of mandatory access control policies, information must be accurately labeled and
handled only by authorized users. This requirement places restrictions on how information is input
to the system and, implicitly, on how it will be processed. Authorized handling of information is
modeled in terms of constraints on what information may flow from one user to another:
information input to the system as classified information should be output only to authorized
recipients.

In addition to general regulations, there are often site-dependent and application-dependent
constraints that may need to be modeled. In particular, there may be site-dependent constraints on
allowed security labels.

Having identified the security requirements on the system interface, it is necessary to decide
on the requirements to be covered in the model's definition of security. It must then be decided
which of these requirements should be modeled directly or indirectly in terms of internal
requirements on system entities and the TCB interface. The set of requirements to include is
constrained by minimal TCSEC requirements, the need to adequately support relevant policy
objectives, and the need for a simple, understandable model. The inclusion of more requirements
may provide more useful information for accreditation once the system is evaluated, but it also
increases the difficulty of the vendor's assurance task. The inclusion of more requirements also
suggests a more careful structuring of the model in order to show how various aspects of security
fit together.

Several factors may influence a decision of whether to directly include external-interface
requirements in the security model. The direct inclusion of external-interface requirements can
help explain how the model supports higher-level policy objectives. In the case of an application
security model, the direct modeling of user-visible operations may be more relevant to end users,
a point of view reflected in the SMMS security model. [LAND84] In the case of a network security
model, understanding is facilitated by modeling of the network's interaction with hosts in its
environment, as will be discussed in Section 4.2.

2.3.2 STEP 2: IDENTIFY INTERNAL REQUIREMENTS

To support the identified external requirements, the system must place constraints on the
controlled entities of the system. These internal constraints traditionally form the model's
definition of security. In a model whose definition of security contains external-interface
requirements, internal constraints can provide a needed bridge between the definition of security
and the rules of operation.

The controlled entities themselves should be identified at a level of granularity that is fine
enough to allow needed security-relevant distinctions among entities. At class B2 and above, the
controlled entities should include all (active and passive) system resources that are accessible
outside of the TCB. For convenience, controlled entities may be grouped into subclasses in any
way that facilitates understanding of the system. Such groupings will depend on the system to be
modeled. For an operating system, the relevant controlled entities might include buffers, segments,
processes, and devices. In most models, it has been convenient to group entities according to
whether they play an active or a passive role in order to help show how the TCB implements the
reference monitor concept . For networks and other complex systems, identification of controlled
entities may need to be preceded by identification of subsystems and their derived security
requirements.

Constraints on controlled entities are best stated as general properties and relationships that
apply to all (or a broad class of) entities and accesses. Greater generality eliminates unnecessary
constraints on the system design, improves on's intuition about the model, and can greatly reduce
the overall effort needed to validate correctness of the identified constraints.

The identification of necessary constraints on controlled entities and their interactions is a
nontrivial task; familiarity with similar systems and security models can be of great benefit. To
define the necessary constraints, it will be necessary to label each entity with appropriate security
attributes and to identify possible kinds of interactions, or accesses, between controlled entities. As
used here, an access is any interaction that results in the flow of information from one entity to
another. [cf DOD88a]

In describing access constraints, it may be useful to know that some kinds of accesses are
highly restricted, as when a process accesses a file by executing it. The notion of causality may also
be important: a transfer of information from entity e1 to e2 might occur because e1 wrote e2,
because e2 read e1,or because a third entity directly copied e1 to e2 without actually reading e1. [cf
MCLE90, Sec. 2]

In the particular case of state machine models, constraints often take the form of state
invariants, as in the work of Bell and La Padula. Recent efforts suggest that state-transition
constraints are an attractive alternative to state invariants for certain kinds of security requirements.
[MCLE88; NCSC90b, Sec. 6.7] The simplest well-known, state-transition constraint is the
tranquility principle of Bell and La Padula, which says that the security level of a controlled entity
cannot change during a state transition. Tranquility can be artificially rephrased as a state invariant:
in any reachable state, the level of an entity coincides with its level in the initial state. Consider,
however, the DAC requirement that a subject which gains access to an object must possess the
necessary DAC permissions when the access request is made. This is harder to rephrase as a state
invariant because DAC permissions can change from one state to the next. Good tutorial examples
of state invariants and state-transition constraints may be found in Building a Secure Computer
System [GASS87, Sec. 9.5.1, 9.5.2]; more complex examples occur in the TRUSIX work
(NCSC90b, Sec. 2].

The number of internal requirements in a typical model varies considerably depending on the
desired level of assurance, the complexity of the policy and system being modeled, and the
granularity of the individual requirements. For example, the Trusted UNIX Working Group
(TRUSIX) model covers TCSEC access control requirements for a B3 Secure Portable Operating
System Interface for Computer Environments (POSIX) system and has eleven state invariants and
ten state-transition constraints. [NCSC90b]

The question of which security requirements to cover in the model's internal requirements is
answered as much by issues of good engineering practice as by the TCSEC. At a minimum, the
model must cover the control of processes outside the TCB. Such processes are potentially a
significant security risk because they may be of unknown functionality and origin. According to
current practice, those portions of the TCB that do not support user-requested computation do not
have to be modeled. For example, the security administrator interface does not have to be modeled.
However, if significant user-requested computation is performed by some portion of the TCB, it
should be modeled. A typical example would be a trusted downgrading process available to
authorized users (not necessarily the security administrator). A more extreme example would be a
multilevel database management system implemented as a TCB subject whose database consisted
of a single highly-classified file.

Finally, there is the possibility that some security requirements might be included in the
model, but only in the rules of operation. The rules of operation may allow the application of good
security practice closer to the implementation level. The rules of operation can then contain
security conditions that are not explicitly required by the security policy. Rules of operation can
not make up for an inadequate definition of security, however. The task of inferring a modeled
security policy from the rules of operation may be excessively difficult, especially if the rules are
complex. [cf NCSC90b, Sec. 6.8]

2.3.3 STEP 3: DESIGN RULES OF OPERATION FOR POLICY ENFORCEMENT

How can the modeled security requirements on system entities be enforced? The rules of
operation answer this question in broad terms by describing abstract interactions among system
entities with particular emphasis on access control and other policy-enforcement mechanisms. In
the case of an operating system kernel, the rules of operation would typically describe state
transformations and associated access checks needed to uphold the definition of security. In the
case of a formal model, this step amounts to the construction of a miniature FTLS. It is a useful
preliminary step, even if a full FTLS specification is planned. The rules of operation together with
the modeled requirements on controlled entities form the security policy model.

In giving rules of operation, it is important that system behavior be adequately represented.
However, actual interactions among controlled entities need not be directly specified when they
can be described as a composition of several rules of operation. There is no need for an
implementation to directly support an individual rule where several rules have been combined to
describe an action. An appropriate level of detail for rules of operation is illustrated by the work of
Bell and La Padula. [BELL76] Good tutorial examples may be found in Building a Secure
Computer System. [GASS87, § 9.5.1 (Step 3)] More complex examples may be found in the
TRUSIX work. [NCSC90b] The rules of operation will usually be more readable if they are not too
detailed. At class B3 and above, it is especially important to avoid details that are not security
relevant. This is because their inclusion in the model may force their inclusion in the TCB in order
to achieve a successful model interpretation, thereby violating the TCB minimization
requirements. [NCSC85, Sec.3.3.3.1.1]

In the case of a B1 informal model, the rules of operation may reasonably contain information
that, for higher evaluation classes, would be found in a DTLS. Thus, a stronger emphasis on policy
enforcement than on policy requirements may be useful. This is especially true if the TCB is large
and complex, as, for example, when security is retrofitted onto a previously unevaluated system.
[BODE88]

A formal model needs to formalize the idea that a particular state transformation is being
executed on behalf of a particular subject. Two traditional approaches are to add an extra input to
the state transformation that gives the subject id and to add a "current subject" field to the system
state. With the former approach, accompanying documentation should explain clearly how the
subject-identity parameter is passed, in order to avoid the erroneous impression that the subject is
responsible for identifying itself to the TCB. The latter approach suggests that the system being
modeled has a single central processing unit. This may be a problem for the model interpretation
if the system actually contains multiple CPUs. See the TRUSIX work for further discussion.
[NCSC90b, Sec. 6.13]

Finally, in designing rules of operation, it may be convenient to separate access decisions
from other kinds of system functionality, including the actual establishment or removal of access.
This separation facilitates exploration of new access control policies. Only the access decision
portion is affected by a change in policy because access enforcement depends only on the access
decision, not on how it was made. [LAPA90, ABRA90] Isolation of the access decision
mechanism occurs in the LOCK system design [SAYD87] and in the security policy architecture
of Secure Ware's Compartmented Mode Workstation [NCSC91b, Section 2.2.1.].

2.3.4 STEP 4: DETERMINE WHAT IS ALREADY KNOWN

Usually some, if not all, aspects of the identified security model will have been studied before.
The identification of previously used terminology allows security issues to be presented in a
manner that is more easily understood; and making the connection to previously studied issues may
provide valuable insight into their successful solution.

For classes B2 and above, the modeling effort must be based on accepted principles of
mathematical exposition and reasoning. This is because formal models and mathematical proofs
are required. The chosen mathematical formalism must allow for an accurate description of the
security model and should provide general mechanisms for its analysis. This is necessary so that
specific interactions among the entities of the model can be verified as being appropriate.

In practice, needed mathematical techniques are usually adapted from previous security
modeling efforts because security modeling, per se, is generally much easier than the development
of new mathematical techniques. Extensive use of past modeling techniques is especially feasible
in the case of fairly general and familiar policy requirements. System-dependent modeling is
generally required for policy enforcement, but established techniques are often available for
demonstrating consistency with the modeled requirements.

If new mathematical techniques are used, their credibility is best established by exposure to
critical review, in order to uncover possible errors in the mathematics and its intended use. This
review process is facilitated by the development of comparative results that give useful
relationships between new models and old ones.

2.3.5 STEPS: DEMONSTRATE CONSISTENCY AND CORRECTNESS

Since the security provided by a system is largely determined by its security model, it is
important that the model capture needed security requirements and that its rules of operation show
how to enforce these requirements.

The first crucial step of identifying security requirements on the system interface cannot be
directly validated by mathematical techniques. [cf MCLE85] Human review is needed to establish
what security requirements need to be addressed and whether these requirements are reflected in
later mathematical formalizations. For systems in class B2 and above, real-world interpretations
are assigned to key constructs of the formal model in order to provide a common semantic
framework for comparing the model and the security policy.

The appropriate technique for validating requirements on controlled entities (Step 2) depends
partly on the novelty of the approach. Informal human review is required to assure that the modeled
requirements support the original system security policy. Careful comparisons with previous
models of the same or related policies may help to show how new modeling techniques relate to
previously accepted techniques for handling particular policy concepts. (See, for example,
[MCLE87; MCLE90, Sec. 3 & Sec. 4].) An alternate technique is to give an external-interface
model and then mathematically prove that the constraints on system entities imply satisfaction of
the external-interface model. The external-interface model is easily compared with a security
policy or policy objective. The constraints on system entities are those identified in the
requirements portion of the security policy model. This technique is illustrated in Section 3.2.

If the rules of operation are given correctly (Step 3), they will comply with the constraints
given in the requirements portion of the model. A formal proof of compliance is required for
classes B2 and above. In a state-transition model, state invariants are proved by induction: one
proves that they hold for the initial state and are preserved by each state transition given in the rules
of operation. (See, for example, [CHEH81].) State-transition constraints are straightforwardly
proved by showing that each state transition satisfies the constraints.

2.3.6 STEP 6: DEMONSTRATE RELEVANCE

The rules of operation should be a correct abstraction of the implementation. A preliminary
model interpretation that is done as part of the modeling process can provide an informal check on
whether the rules of operation are sensible and relevant. This model interpretation shows how
enforcement mechanisms modeled in the rules of operation are realized by the system. A model
interpretation explains what each model entity represents in the system design and shows how each
system activity can be understood in terms of the given rules of operation. Thus, for example, a
"create file" operation in the system might be explained as involving a restricted use of the rules
for "create object," "write object," and/or "set permissions" in the model, depending on the actual
arguments to the "create file" command.

An appropriate, somewhat novel, example of a model interpretation is found in the TRUSIX
work. [NCSC90b, Sec. 4] The model interpretation is described as an informal mapping from the
TRUSIX DTLS to the TRUSIX model. This interpretation first explains how UNIX entities are
represented in the model and the DTLS. For example, messages, semaphores, and shared memory
are entities that the DTLS refers to as interprocess communication (IPC) objects but that are treated
as "files" in the model. Thirty-six UNIX system interface functions are then described by giving
pseudocode that shows how each function can be expressed in terms of the state transformations
given by the rules of operation. In other words, the transformations given in the rules of operation
form a toy security kernel that could be used to implement UNIX if efficiency were irrelevant.

The SCOMP and Multics model interpretations are examples based on Secure Computer
System: Unified Exposition and Multics Interpretation. [BELL76]. In the SCOMP interpretation,
a set of security-relevant kernel calls and trusted processes are identified as `SCOMP rules of
operation." [HONE85] For each such SCOMP rule, a brief summary of security-relevant
functionality is given and then interpreted as the combined effect of restricted use of one or more
rules from the above work by Bell. [BELL76] The specific restrictions are enumerated in an
appendix, along with a rationale for omitting some kernel calls and trusted functions from the
interpretation. The correspondence between the rules in this work [BELL76] and actual SCOMP
behavior is rather complex. The Multics interpretation, by way of contrast, is more sketchy, but the
actual correspondence appears to be simpler. [MARG85]

2.4 PRESENTATION FOR EVALUATION AND USE

The most important factors in the successful presentation of a security model are the
simplicity of the model, its appropriateness, and an understanding of its intended uses.

The presentation of the model must demonstrate that the model correctly describes the system
security policy. A clear explanation of the policy from which the model is derived should be
available for this demonstration. Sufficiency of the model may be demonstrated by presenting the
relationship of the model to the policy and by carefully explaining and justifying the modeling
decisions behind this relationship. In addition to modeled requirements, the system may support
other security requirements that are not suitable for inclusion in the model, especially if it is a
formal model. Unmodeled security requirements can be presented in an appendix so that TCB
developers have all of the security requirements in a single document.

An overview of the model interpretation is needed so that readers can understand the
relevance of the system's security model to the security policy and to the overall system-
development process. All of these topics may be legitimately covered in a philosophy of
protection. In fact, it is highly desirable that the philosophy of protection be the first document
delivered by the vendor in a system evaluation, so that it can serve as a basis for further
understanding of the security model and other system documentation.

In the case of a formal model, an informal explanation or presentation of the model prepared
for a general audience is highly desirable. This is partly for reasons mentioned in Section 2.3.5 and
partly because of the general need to acquaint system developers, implementors, and end users
with the basic security principles that are to be supported by the system. The informal presentation
can reasonably be included in the philosophy of protection.

A well-written explanation of the model's definition of security can be used by potential
buyers of a secure system to determine compatibility between the computing system and their
organization's security policies and needs. To evaluate the ability of a computing system to support
these policies, potential users may wish to construct an informal model of their security policies
and compare it to the definition of security supported by the computing system. This use of the
security model and the fact that some aspects of security modeling can only be validated by social
review suggest that portions of the security model and the philosophy of protection be made
available to a relatively wide audience, for example, treating them as publicly released,
nonproprietary documents.

For systems at the B2 level or above, the requirement of mathematical proof necessitates the
presentation of a rigorous mathematical formalization as well. For a mathematical audience,
standards of precision may preclude a style that will be appropriate for a general audience. In this
case, an informal presentation of the model is also needed in order to reach the general audience.

At the A1 level of assurance, the formal model is directly involved in the formal verification
of the FTLS. As a result, it may be appropriate to present the model in the formal specification
language of an endorsed verification system (see Appendix B). Authors and readers must be fully
aware of the nuances of the descriptive notation of the verification system used in order to avoid
errors due to discrepancies between author intent and reader expectation. Furthermore, if a formal
verification system is used to check proofs, it is necessary to achieve a correct translation of what
is to be proved into the language of the verification system. Further discussion of these points may
be found in [FARM86; NCSC90b, Sec. 6.3].

3. SECURITY MODELING TECHNIQUES

Having introduced the major topics involved in security modeling, we now consider detailed
modeling issues with emphasis on mathematical structure as well as empirical justification. In this
section, a review of basic concepts is followed by discussions on the modeling of various kinds of
policies and objectives: nondisclosure, need-to-know, integrity, and special-purpose policies of
particular TCB subjects.

In most cases, modeling techniques are introduced, with details handled via references to the
available literature. Inclusion of these references does not imply NCSC endorsement of referenced
products incorporating the techniques discussed.

3.1 BASIC CONCEPTS

As discussed in Section 2, the identification of controlled entities plays a crucial role in the
development of a security policy model. At B2 and above, the controlled entities must include all
system resources. If the policy is multifaceted, with separate subpolicies for mandatory and
discretionary access controls, it may be acceptable to decompose the system into different sets of
controlled entities for different subpolicies. A secure computing system may decompose into data
structures, processes, information about users, I/O devices, and security attributes for controlled
entities. In general, the number of different kinds of entities depends on what security-relevant
distinctions are to be made. The following paragraphs discuss how to perform such a
decomposition for typical kinds of entities, with the goal of modeling security requirements in such
a way as to allow an accurate, useful model interpretation.

An explicitly controlled entry is one that has explicitly associated security attributes. In the
TRUSIX model, for example, the explicitly controlled entities are referred to as "elements". They
consist of subjects and three kinds of objects; files, directories, and entries (i.e., links). [NCSC90b,
Sec. 6.9-6.11] In addition to explicitly controlled entities, a system will have implicitly controlled
entities. Such an entity might be contained in an explicitly controlled entity or might be a
composite entity composed of explicitly controlled entities having potentially different security
attributes.

The discussion of security attributes in this section emphasizes security levels used for
mandatory access control because the TCSEC labeling requirements apply primarily to mandatory
access control and auditing. However, much of what is said about MAC labels applies to other
kinds of security attributes including, for example, discretionary access control lists.

It is necessary to model creation and destruction of most kinds of controlled entities. A
simpler model results if the same approach is used in all cases. In a formal model, one can model
the creation of new controlled entities by modeling changes in the set of all controlled entities. A
fixed set of possible controlled entities, together with an indication of which entities are available
for use in a particular state (e.g., which subjects are active, which objects or object-ids are
allocated) can also be used. [cf NCSC90b]

3.1.1 DATA STRUCTURES AND STORAGE OBJECTS

In this guideline, a data structure is a repository for data with an internal state, or value, that
can be written (i.e., changed) and/or read (i.e., observed) by processes (and, possibly, devices)
using well defined operations available to them. A data structure is distinct from its value at a
particular time, which is, in turn, distinct from the information conveyed by that value. The
information content depends not only on the value but also on how it is interpreted. Similarly, a
data structure is distinct from a name for that data structure.

A data structure that is explicitly associated with exactly one security level by the security
policy model is a storage object. There are no a priori restrictions on the level of abstraction at
which data structures and storage objects are modeled. In particular, objects may be abstract data
structures that are accessed using high-level operations provided by an encapsulation mechanism.
In this case, a user would have access to the high-level operations but could not access the
encapsulated data directly via more concrete operations that may have been used to define the high-
level operations. This lack of direct access would have to be enforced by the TCB.

Ordinarily, the storage objects in a security model are disjoint. This means that, in principle,
changes to one object do not force changes to other objects. If a state-machine model is used,
disjoint storage objects can be modeled as separate components of the underlying machine state.
If two objects at different security levels were not disjoint, then access to data in their intersection
would be allowed or denied according to which label is used. This ambiguity can be resolved by
explicitly associating a level with their intersection. In this case, the associated level allows the
intersection to also be regarded as a separate storage object, thereby restoring disjointness. Thus,
disjointness in storage objects simplifies one's understanding of how security labels are used to
control access. It has also been argued that disjointness simplifies covert channel analysis via
shared resource matrices.

In some systems, collections of objects are combined to form multilevel data structures that
are assigned their own security levels. Multilevel data structures called "containers" are used in the
Secure Military Message System (SMMS) to address aggregation problems. [LAND84] The
level of a container must dominate the levels of any objects or containers inside it.

When an object or other controlled entity is created, it must be assigned security attributes and
initialized in such a way as to satisfy the object reuse requirement. The modeling of object reuse
policies (e.g., objects are erased when allocated) can be useful, but object reuse is not found in
traditional access control models because the object reuse requirement deals with the content of
objects and TCB data structures. The initialization of security attributes, however, plays an
essential role in access control and can be modeled by distinguishing between "active" and
"inactive" entities, as in [NCSC90b]. The security attributes of a newly created object may be taken
from, or assigned by, the subject that created it. In many systems, creating an object is essentially
a special case of writing to it: its value changes from undefined to null. If this change is visible to
non-TCB subjects and the new object is created by a non-TCB subject, then the security level of
the new object must dominate that of the creating subject. DAC attributes, by way of contrast, are
usually given by system- or user-supplied defaults.

3.1.2 PROCESSES AND SUBJECTS

A process may create, destroy, and interact with storage objects and other processes, and it
may interact with I/O devices. It has an associated run-time environment and is distinct from the
program or code which defines it. For instance, the program would ordinarily be modeled as
information contained in a storage object. An explicitly controlled process is a subject. It normally
has a variety of associated security attributes including a security level, hardware security
attributes such as its process domain, the user and user group on whose behalf it is executing,
indications of whether it belongs to the TCB, and indications of whether it is exempt from certain
access control checks.

The issues regarding disjointness of storage objects mentioned in Section 3.1.1 apply to
subjects as well. If two subjects share memory, it is advisable to model the shared memory as an
object separate from either subject in order to achieve the disjointness needed for information-flow
analysis. Local memory need not be separately modeled, but must be properly taken into account
when modeling the subject. Registers (including the instruction pointer) are technically shared
memory but can often be treated abstractly as unshared local memory. This is especially true if
registers are saved and restored during process swaps and the information they contain is not
shared between processes.

Security levels for processes are ordinarily similar to security levels for storage objects. The
TCSEC requires that a subject have a nondisclosure level that is dominated by the clearance and
authorization of its user. A TCB subject may reasonably be assigned separate levels for reading
and writing in order to allow partial exemption from access control (see Section 3.4). Other TCB-
related entities may also need separate levels for reading and writing in some systems. One such
example is /dev/null in UNIX. [GLIG86] This object is system high in the sense that any process
can write to it; but it is system low in the sense that any process can read from it because its value
is always null.

In general, the security-relevant attributes of a subject are part of its run-time environment.
Some attributes are relatively static and are inherited from the subject's executable code or are
stored with its code. In UNIX, the property of being a set-user-id program is a statically determined
attribute, as is the effective user-id. Other attributes are dynamically assigned and are inherited
from a subject's parent or are actively assigned by the parent (assuming it has a parent process). In
the latter case, the parent must be relied upon to assign the child's security attributes appropriately.
As a result the parent usually belongs to the TCB in this latter case. A secure terminal server, for
example, might create a subject and assign it security attributes based on the determined identity
of a user logging in.

There are potential difficulties in associating user-ids with TCB subjects. A terminal server
would appear to operate on behalf of the user currently logged in or on behalf of the Identification
and Authentication mechanism if no one was logged in. A print spooler acts on behalf of the users
in its print queue. Such TCB subjects are, in reality, associated with multiple user-ids, a fact which
is relevant to the design of the audit mechanism. A TCB subject that does not act on behalf of a
given user can be handled either as having a dynamically modifiable user-id or as acting on behalf
of the system (equivalently, as acting on behalf of a system-defined pseudo-user).

When a subject creates a child subject by executing a program, the resulting child might
belong to the TCB and be exempt from certain access control checks, even if the original subject
was not in the TCB. This is possible if exemptions are associated with the program object itself.

With the advent of multitasking languages such as Ada, there is a question of when two
threads of control belong to the same subject. Pragmatically, to be the same subject, they should
have the same security attributes. To qualify as separate subjects, their separation should be
enforceable by the TCB. Finally, nothing explicitly prohibits a multithreaded process from
consisting of several subjects operating at different security levels. Of course, intraprocess
communication will be somewhat limited for such a process unless it contains TCB subjects that
are exempt from some of the MAC constraints.

3.1.3 USERS AND USER ROLES

User-related topics often turn up in security models in spite of the fact that users are not
controlled entities and thus do not need to be directly modeled. The users of a system may perform
specific user roles by executing associated role-support programs. In general, a user may engage
in a combination of several roles. As a matter of policy, a given user role may require system-
mediated authorization and may provide specific system resources needed for performance of the
role. Although the following paragraphs discuss only individual user roles, most of the basic
concepts extend to roles for other kinds of clients in the environment of a computing system
including user groups and, in the case of a network, hosts or subjects running on hosts.

The TCSEC requires support for certain trusted user roles. For systems at B2 and above, these
roles include the security administrator role and the system operator role. The administrator role
governs security attributes of users, moderates discretionary and mandatory access control, and
interprets audit data. The operator role ensures provision of service and performs accounting
activities. [NCSC90a] These roles may be subdivided so that they can be shared by multiple users.
In addition, they do not preclude the addition of other trusted roles. In general, trusted user roles
are characterized by the fact that they involve handling security-critical information in a way that
violates access restrictions placed on non-TCB subjects. As a result, processes that support trusted
roles can be misused and must have restricted access. By definition, such trusted role processes
have security properties that are unacceptable without special constraints on the behavior of their
users. These observations suggest (but do not mandate) the modeling of support for user roles,
especially trusted user roles. Trusted role processes are usually treated as TCB subjects. Additional
information on modeling them is given in Section 3.4.

Instructive examples of role definitions may be found in Secure Xenix [GLIG86] and the
SMMS security model [LAND84]. Secure Xenix restructured the Guru role into four separate
roles. The SMMS security model included a system security officer role, a downgrader role and a
releaser role. In both of these systems, the roles support separation of duty in that each role has
privileges not available to the other roles. Separation of duty has been emphasized by Clark and
Wilson, who have given a general scheme for constraining user roles by using triples of the form
(user, program, object-list) in order to control how and whether each user may access a given
collection of objects. [CLAR87] A similar role-enforcement mechanism is supported by type
enforcement. [BOEB85] The type-enforcement mechanism itself assigns "types" to both subjects
and objects; subject types are referred to as "domains." The accesses of each subject are
constrained by a "type table" based on subject domain and object type. Each user has a set of
domains associated with subjects running on his behalf. These domains are used to define user
roles. [cf THOM90]

3.1.4 I/O DEVICES

Although users are external to the computing system and need not be directly modeled, it is
still useful to model their allowed interactions with the system in order to document security-
relevant constraints that are enforced by the system. User interactions may be modeled in terms of
constraints on I/O devices if there is a convention for discussing the current user of a device.
Devices which are accessible to subjects outside the TCB should be modeled either implicitly or
explicitly as part of the interface between the non-TCB subjects and the TCB. An additional reason
for interest in I/O devices is that I/O typically accounts for a large portion of the TCB. The
following paragraphs present general information on the modeling of devices with emphasis on
device security requirements and then discuss when they should be modeled as objects, as subjects,
or as their own kind of entity.

Normally, security models discuss abstract encapsulated devices rather than actual physical
devices. An encapsulated device is an abstract representation of a device, its associated device
driver, and possibly other associated entities such as attached hardware and dedicated device
buffers. Thus, for example, one might discuss a line printer connected to the system but not the
actual RS-232 device used to achieve the connection or its associated device driver.

By definition, an input device injects information into the system in a way that the system
cannot entirely control. The next state of the system may depend on the actual input as well as on
the current state and the particular state transformation being executed. This fact can be
accommodated in several ways in an FTLS or a model that addresses object content. One can treat
the actual input as a parameter to the transformation. If there are only a few different input values,
one can associate different transformations with different inputs. Finally, one can treat the
transformation as being nondeterministic, meaning that several different states can result from
executing the transformation in a given state.

Abstract encapsulated devices are often passive entities, in contrast to their underlying
hardware. Security requirements for devices, however, differ significantly from those for either
storage objects or controlled processes:

· External policy on use of the system requires that devices pass information only to
authorized users.

· Devices may transport either unlabeled data or labeled data and are classified as single
level or multilevel devices accordingly.

· At B2 and above, the TCSEC requires that every device have a minimum and maximum
device level that represents constraints imposed by the physical environment in which
the device is located.

Authorized use of a device may be enforced by requiring that any piece of information output
by the device have a security level that is dominated by the clearance and authorization of the
recipient. A combination of procedural and automated methods are needed to correctly associate
the security level of the information, the user who will receive that information, and the security
level of that user. Typically, the device itself will also have a security level. The user who receives
information from a device may well be different than the user who sent that information to the
device. If a device with local memory (an intelligent terminal, for example) is allocated to different
users or different security levels at different times, it will typically need to be reset between users
in order to meet requirements on authorized transmission of information.

Both single-level and multilevel devices may handle multiple levels of information. A single-
level device can only handle a single level at a time but may have some convention for changing
levels. A multilevel device, by way of contrast, can handle different levels of data without altering
its security designation, but still might be used in such a way as to carry data at only one fixed
security level.

The TCSEC requirement for device ranges does not explain how they are to be used. The most
common option is to require that the level of any object transmitted by the device be within the
range. Another option is to require that the security clearance of any user be within the range.
Separate decisions regarding device minimum and device maximum are also possible. In the
Trusted Xenix system, a user with a secret clearance can have an unclassified session on a
terminal with a secret device minimum. The intended interpretation of the device minimum is that
the device is in a restricted area that should contain only users whose clearance is at least the device
minimum. If the device minimum is secret, then a login attempt by an uncleared user is treated as
a violation of physical security. [GLIG86]

The question of whether devices should be modeled in the same way as other kinds of
controlled entities depends on the complexity of the devices involved, observed similarities
between devices and other modeled entities, and goals relating to the simplicity and accuracy of
the model. The TRUSIX group decided to model devices in the same way as file objects, a decision
that depended heavily on both the nature of UNIX and the specific goals of the TRUSIX effort.
[NCSC90b, § 6.9] The SMMS model treats devices as containers in order to capture the fact that
the device maximum must dominate the level of all data handled by the device. [LAND84] Yet
another alternative is to model devices by modeling their device drivers as TCB subjects. In
general, more sophisticated I/O devices need greater modeling support, with the limiting case
being intelligent workstations modeled as autonomous computing systems.

3.1.5 SECURITY ATTRIBUTES

A security attribute is any piece of information that may be associated with a controlled entity
or user for the purpose of implementing a security policy. The attributes of controlled entities may
be implicit; they need not be directly implemented in data structures. Labels on a multilevel tape,
for example, can be stored separately from the objects they label, provided there is an assured
method of determining the level of each object on the tape. [cf NCSC88b, C1-C1-05-84]

Primary attributes of security policies that are usefully reflected in the security model include
locus of policy enforcement, strength and purpose of the policy, granularity of user designations,
and locus of administrative authority. These policy aspects lead to a taxonomy of policies and
security attributes.

There are several types of security attributes of any given system: informational attributes,
access control attributes, nondisclosure attributes, and integrity attributes. Informational attributes
are maintained for use outside the given computing system, whereas access control attributes limit
access to system resources and the information they contain. Purely informational attributes are
somewhat uncommon; an informative example is given in Section 4.4. Access control attributes
may be classified according to what they control. A loose access control attribute controls access
to the entity it is associated with, whereas a tight access control attribute also controls access to
information contained in that entity. Thus, access restrictions determined by tight attributes must
propagate from one object to another when (or before) information is transferred, because control
over the information must still be maintained after it leaves the original entity. Nondisclosure
attributes are used to prevent unauthorized release of information, whereas integrity attributes are
used to prevent unauthorized modification or destruction of information.

Attributes can also be classified by the granularity and authority of their control. The user
granularity of an attribute may be "coarse," controlling access on the basis of broadly defined
classes of users, or it can be "per-user," controlling access by individual users and processes acting
on their behalf. Finally, centralized authority implies that policy for use of attributes is predefined
and takes place under the control of a system security administrator, whereas distributed authority
implies that attributes are set by individual users for entities under their control. This classification
of security attributes is based partly on the work of Abrams. [ABRA90]

When applied to typical security policies for B2 systems, these distinctions among security
attributes might take the form given in Figure 3.1. MAC policies must enforce nondisclosure
constraints on information and may enforce integrity constraints as well. They must regulate access
to information on the basis of user clearance and labeled sensitivity of data. The involvement of
user clearances typically comes at the expense of per-user granularity because several users are
likely to have the same clearance. Authority to assign security attributes is usually somewhat
centralized. Users can create entities at various levels, but ability to change the levels of existing
entities is usually restricted to authorized users.

DAC policies must enforce access constraints on both reading and writing. They must provide
per-user granularity as criteria for access decisions, although they often include a group
mechanism for coarse gained access decisions as well. DAC policies are normally used to enforce
both nondisclosure and integrity, but constraints on access to named objects do not necessarily
imply corresponding constraints on access to information in those objects. Authority to change
discretionary attributes is usually distributed among users on the basis of ownership.

MAC DAC

Binding Strength: Tight Loose

Purpose: Nondisclosure10 Nondisclosure & Integrity

User Granularity: Coarse Per-user

Authority Centralized Distributed10

Figure 3.1. Typical Classification of Access Control Policies

3.1.6 PARTIALLY ORDERED SCURITY ATTRIBUTES

A security attribute belonging to a partially ordered set may be referred to as a level. The
associated partial ordering may be referred to as the dominance relation; in symbols, L1 is
dominated by L2 if and only if L1 £ L2. The use of partially ordered levels is usually associated
with tight access control policies and constraints on information flow. Constraints on information
flow can arise for several different reasons. As a result a multifaceted policy might have a different
partial ordering for each reason. Often, the combined effect of constraints associated with several
partial orderings can be expressed in terms of a single composite ordering. In this case, facts about
Cartesian products of partially ordered sets given in Appendix A may be used to simplify the
formal model and, possibly, the system's implementation as well. The following paragraphs
discuss the connection between levels and constraints on information flow, the use of these
constraints for supporting nondisclosure and integrity objectives, and the tailoring of level-based
policies to particular applications.

A dominance relation is often viewed as an abstraction of allowed information flows:
information can flow from entity E1 to entity E2 only if the level of E1 is dominated by the level of
E2. This rather general view, which is an analogue of the original *-property of Bell and La Padula,
allows the illustration of some basic issues in the use of levels, but it is overly simple in some
respects. It does not address whether information flows properly or whether the flow is direct or
indirect. Moreover, this view does not contain any explicit assumption about why information may
be prevented from flowing from one entity to another.

Partially ordered levels and related constraints on information flow have been suggested for
use in enforcing both nondisclosure and integrity objectives. The motivation for these suggestions
may be understood from the following considerations. Suppose that access controls could enforce
the above information-flow constraints perfectly. Suppose that the two objects contain the same
information, but one is labeled at a higher level than the other. In this situation, information is less
likely to be disclosed from the higher-level object because fewer subjects have a sufficiently high
level to receive this information. Conversely, if lower-level subjects can write higher-level objects,
then inappropriate modification of the lower-level object is less likely becaus