💾 Archived View for spam.works › mirrors › textfiles › hacking › fcscvol1.hac captured on 2023-11-14 at 09:51:06.

View Raw

More Information

⬅️ Previous capture (2023-06-14)

-=-=-=-=-=-=-

FEDERAL CRITERIA

for

INFORMATION TECHNOLOGY SECURITY

VOLUME I



Protection Profile Development

Version 1.0

December 1992



This document is undergoing review and 
is subject to modification or withdrawal.

The contents of this document should not 
be referenced in other publications.







NATIONAL INSTITUTE OF STANDARDS AND TECHNOLOGY

&

NATIONAL SECURITY AGENCY

NOTES TO REVIEWERS



This is the first public draft of work in progress by the joint 
National Institute of Standards and Technology (NIST) and 
National Security Agency (NSA) Federal Criteria (FC) Project. 
This draft Federal Criteria for Information Technology Security 
is provided for preliminary review and comment by members of the 
national and international computer security community.  The 
document will evolve into a new Federal Information Processing 
Standard (FIPS) intended principally for use by the United States 
Federal Government, and also by others as desired and 
appropriate.  The FIPS is intended to replace the Trusted Computer 
System Evaluation Criteria (TCSEC) or "Orange Book."

Our objectives in presenting this draft material are threefold: 
first, to give the community a clear view of the FC Project's 
direction in moving beyond the TCSEC method of expressing 
requirements in order to meet new IT security challenges; second, 
to obtain feedback on the innovative approaches taken, the method 
of presentation, and granularity; and third, to make a 
substantial contribution to the dialogue among nations leading to 
the harmonization of IT security requirements and evaluations.

It is important to note a few things about this preliminary FC 
draft. First, it is a new and unpolished document and not intended 
for any purpose except review and comment. Organizations should 
not adopt any contents of this draft document for their use.  It 
is anticipated that the document will undergo extensive revision 
as it works its way through the public FIPS approval process over 
the next year or two.  Second, the FC is being distributed in two 
volumes. Volume I addresses the criteria development process and 
is intended principally for use by developers of protection 
profiles. The information in Volume I may also be of use to IT 
product manufacturers and product evaluators. Volume II presents 
completed IT product security criteria in the form of accepted 
protection profiles.

The protection profiles associated with the final FIPS will help 
consumers identify types of products that meet the protection 
requirements within their particular organizations and 
environments.  However, the FIPS will be supplemented by a series 
of implementing guidance documents, many of which will be 
designed to help consumers make cost-effective decisions about 
obtaining and appropriately using security-capable IT products.

As a preliminary draft of the new FC-FIPS, this document is not 
intended for general distribution or compliance.  The document 
should not be considered a complete or finished product.  Your 
comments will be used by the Federal Criteria Working Group to 
help raise the maturity level of this material prior to being 
circulated for further public comment in the FIPS development 
process.
ADDITIONAL NOTES TO REVIEWERS



Reviewers who provide substantive comments on the enclosed draft 
FC by March 31, 1993 will be invited to attend an Invitational 
Workshop on the Federal Criteria. This two-day workshop will be 
held in the last week of April 1993 in the Washington-Baltimore 
area at a location to be announced. All comments received by the 
cut-off date will be correlated into major themes for discussion 
by break-out groups at the workshop. The results will be used as 
input into the process of re-drafting the FC for a second round of 
comment prior to its being formalized as a FIPS.



Please send your comments (electronic format preferred) to 
Nickilyn Lynch at the U.S. National Institute of Standards and 
Technology (NIST), Computer Systems Laboratory (CSL).

Phone:    (301) 975-4267
FAX:      (301) 926-2733.



(Internet) Electronic Mail:

          lynch@csmes.ncsl.nist.gov

Postal or Express Mail
(Hardcopy or 3.5", 1.44M diskette in MSDOS, Macintosh, or Sun 
format):

          Federal Criteria Comments
          Attn: Nickilyn Lynch
          NIST/CSL, Bldg 224/A241
          Gaithersburg, MD 20899
Table of Contents

Chapter  1.  
INTRODUCTION 

1.1  Purpose
1.2  Scope
1.3  Audience
1.4  Organization of the Standard

Chapter  2.  
IT SECURITY DEVELOPMENT

2.1  Overview
2.2  Functions and Assurance
2.3  Profile Development and Analysis
2.4  Product Development and Evaluation
2.5  System Development and Certification

Chapter  3.  
PROTECTION PROFILES

3.1  Overview
3.2  Sources of Protection Profiles
3.3  Protection Profile Contents
3.4  Protection Profile Development
3.4.1  Environment Security Analysis
3.4.1.1  Expected Threats
3.4.1.2  Intended Method of Use and Environment
3.4.2  Component Requirement Synthesis
3.5  Protection Profile Analysis
3.5.1  Technical Soundness
3.5.2  Usefulness
3.5.3  Evaluation Capability
3.5.4  Distinctness
3.5.5  Consistency
3.6  Protection Profile Registration

Chapter  4.  
FUNCTIONAL REQUIREMENTS

4.1  Overview
4.2  TCB Functional Components
4.2.1  Security Policy Support
4.2.1.1  Accountability Policy
4.2.1.1.1  Identification & Authentication (I&A)
4.2.1.1.2  System Entry
4.2.1.1.3  Trusted Path
4.2.1.1.4  Audit
4.2.1.2  Access Control Policy
4.2.1.2.1  Discretionary Access Control Policies
4.2.1.2.2  Non-Discretionary Access Control Policies
4.2.1.2.3  Covert Channel Handling
4.2.1.3  Availability Policy
4.2.1.3.1  Resource Allocation
4.2.1.3.2  Fault Tolerance
4.2.1.4  Security Management
4.2.2  Reference Mediation
4.2.3  TCB Logical Protection
4.2.4  TCB Physical Protection
4.2.5  TCB Self-Checking
4.2.6  TCB Start-Up and Recovery
4.2.7  TCB Privileged Operation
4.2.8  TCB Ease-of-Use
4.3  Rated Functional Components
4.3.1  Rated Identification & Authentication Components
4.3.2  Rated System Entry Components
4.3.3  Rated Trusted Path Components
4.3.4  Rated Audit Components
4.3.5  Rated Access Control Components
4.3.5.1  Rated Covert Channel Handling Components
4.3.6  Rated Resource Allocation Components
4.3.7  Rated Security Management Components
4.3.8  Rated Reference Mediation Components
4.3.9  Rated Logical TCB Protection Components
4.3.10  Rated Physical TCB Protection Components
4.3.11  Rated TCB Self Checking Components
4.3.12  Rated TCB Start-Up and Recovery Components
4.3.13  Rated TCB Privileged Operation Components
4.3.14  Rated TCB Ease-of-Use Components
4.4  Bibliographic Notes

Chapter  5.  
DEVELOPMENT ASSURANCE REQUIREMENTS

5.1  Overview
5.2  Development Assurance Components
5.2.1  Development Process
5.2.1.1  TCB Property Identification
5.2.1.2  TCB Design
5.2.1.2.1  TCB Element Identification
5.2.1.2.2  TCB Interface Definition
5.2.1.2.3   TCB Modular Decomposition
5.2.1.2.4  TCB Structuring Support
5.2.1.2.5  TCB Design Disciplines
5.2.1.3  Implementation Support
5.2.1.4  TCB Testing and Analysis
5.2.1.4.1  Functional Testing
5.2.1.4.2  Penetration Analysis
5.2.1.4.3  Covert Channel Analysis
5.2.2  Operational Support
5.2.2.1  User Guidance
5.2.2.2  Administrative Guidance
5.2.2.3  Flaw Remediation
5.2.2.4  Trusted Generation
5.2.3  Development Environment
5.2.3.1  Life Cycle Definition
5.2.3.2  Configuration Management
5.2.3.3  Trusted Distribution
5.2.4  Development Evidence
5.2.4.1  TCB Protection Properties
5.2.4.2   Product Design and Implementation
5.2.4.3   Product Testing and Analysis
5.2.4.3.1  Functional Testing
5.2.4.3.2  Penetration Analysis
5.2.4.3.3  Covert Channel Analysis
5.2.4.4   Product Support
5.3  Rated Development Assurance Components
5.3.1  Development Process
5.3.1.1  Rated TCB Property Identification  Components
5.3.1.2  Rated TCB Element Identification Components
5.3.1.3  Rated TCB Interface Definition Components
5.3.1.4  Rated Modular Decomposition Components
5.3.1.5  Rated TCB Structuring Support Components
5.3.1.6  Rated TCB Design Discipline Components
5.3.1.7  Rated Implementation Support Components
5.3.1.8  Rated Functional Testing Components
5.3.1.9  Rated Penetration Analysis Components
5.3.1.10  Rated Covert-Channel Analysis Components
5.3.2  Operational Support
5.3.2.1  Rated User Guidance Components
5.3.2.2  Rated Administrative Guidance Components
5.3.2.3  Rated Flaw Remediation Components
5.3.2.4  Rated Trusted Generation Components
5.3.3  Development Environment
5.3.3.1  Rated Life Cycle Definition Components
5.3.3.2  Rated Configuration Management Components
5.3.3.3  Rated Trusted Distribution Components
5.3.4  Development Evidence
5.3.4.1  Rated TCB Protection Property Evidence Components
5.3.4.2  Rated Product Design/Implementation Evidence Components
5.3.4.3  Rated Functional Testing Evidence Components
5.3.4.4  Rated Penetration Analysis Evidence Components
5.3.4.5  Rated Covert Channel Analysis Evidence Components
5.3.4.6  Rated Product Support Evidence Components
5.4  Bibliographic Notes

Chapter  6.
EVALUATION ASSURANCE REQUIREMENTS

6.1  Overview
6.2  Evaluation Assurance Components
6.2.1  Testing
6.2.1.1  Test Analysis Components
6.2.1.2  Independent Testing Components
6.2.2  Evaluation Review Requirements
6.2.2.1  Development Environment Review
6.2.2.2  Operational Support Review
6.2.3  Evaluation Analysis Requirements
6.2.3.1  Design Analysis
6.2.3.2  Implementation Analysis
6.3  Rated Evaluation Assurance Components
6.3.1  Rated Test Analysis Components
6.3.2  Rated Independent Testing Components
6.3.3  Rated Development Environment Review Components
6.3.4  Rated Operational Support Review Components
6.3.5  Rated Design Analysis Components
6.3.6  Rated Implementation Analysis Components
6.4  Bibliographic Notes

Chapter  7.  
CONSTRUCTION OF PROTECTION PROFILES

7.1  Overview
7.2  Synthesis of Profile Components
7.2.1  Assignment
7.2.2  Refinement
7.2.3  Decomposition
7.2.4  Level-Selection
7.3  Dependency Analysis
7.3.1  Dependency Classification
7.3.2  Dependencies Among Functional Components
7.3.2.1  "Uses" Dependency among Functional Components
7.3.2.2  Policy-Property Dependency
7.3.2.3  Multiple Dependencies
7.3.3  Dependencies Among Assurance Components
7.3.3.1  "Uses" Dependency among Assurance Components
7.3.3.2  Assurance-Process Dependencies
7.3.4   Dependencies between Functions and Assurances
7.3.4.1  Relationship to other Function and Assurance Classifications
7.3.5  Examples of Using Dependency Analysis
7.4  Bibliographic Notes

GLOSSARY

ACRONYMS

Appendix  A.  
THREATS TO INFORMATION

Appendix  B.
THE REFERENCE MONITOR CONCEPT

Appendix  C.
DEFINING ACCESS CONTROL POLICIES

Appendix  D.
MODULAR DECOMPOSITION

Appendix  E.
PENETRATION ANALYSIS

Appendix  F.
MOTIVATION FOR DEPENDENCY ANALYSIS

Appendix  G.
EXAMPLE ASSURANCE PACKAGES


List of Figures

Figure 1.  IT Security Development Activities
Figure 2.  Protection Profile Development
Figure 3.  Basis for Threat Analysis
Figure 4.  Taxonomy of TCB Functions
Figure 5.  Taxonomy of Development Assurances
Figure 6.  Taxonomy of Evaluation Assurance Components
Figure 7.  Examples of Uses Dependencies among Functional Components
Figure 8.  Examples of Uses and Policy Properties Dependencies in Access
           Control
Figure 9.  Examples of Cyclic Dependencies and their Removal
Figure 10. Examples of Policy Property Dependencies
Figure 11. Examples of Uses Dependencies Among the TCSEC B2 Operational
           Assurances
Figure 12. Examples of Uses Dependencies Among Components Corresponding
           to B2 Operational Assurances
Figure 13. Example of Uses Dependencies among the Function and Assurance
           Components Corresponding to the B3 Operational Assurances
Figure 14. Authorization of Subject References to Objects

List of Tables
Table 1.  Protection Profile Structure
Table 2.  Rated Functional Components
Table 3.  Rating Summary for Development Assurance Components
Table 4.  Common Threat Agents
Table 5.  Inappropriate Disclosure Threats (Confidentiality Violations)
Table 6.  Fault-and-Error Threats (Integrity Violations)
Table 7.  Loss-of-Service Threats (Availability Violations)
Table 8.  T1 Assurance Package
Table 9.  T2 Assurance Package
Table 10. T3 Assurance Package
Table 11. T4 Assurance Package
Table 12. T5 Assurance Package
Table 13. T6 Assurance Package
Table 14. T7 Assurance Package
Table 15. Assurance Packages Summary

Chapter  1.

INTRODUCTION

1.1       Purpose

This Federal Information Processing Standard (FIPS) provides 
a basis for developing, analyzing, and registering criteria 
for information technology (IT) product security development 
and evaluation. It explains how to use provided generic 
requirements as building blocks to create unique sets of IT 
product security criteria called protection profiles.

This standard builds on national and international IT product 
security research and development by bringing together and 
extending many concepts of this previous work. The FIPS has 
four principal objectives.

a.        Develop an extensible and flexible framework for defining 
new requirements for IT product security. IT product 
security criteria must respond to the challenges of 
extensible computing environments. The standard must 
provide a structured approach for specifying security 
requirements for IT products employed in such environments.

b.        Enhance existing IT product security development and 
evaluation criteria. The fundamental principles of IT 
product security must be reviewed and renewed for 
application to new applications environments. The standard 
must address selected IT product security requirements of 
both Federal Government and private sector organizations.

c.        Facilitate international harmonization of IT product 
security development and evaluation criteria. Producers of 
IT products competing in the international marketplace can 
benefit from a harmonized set of IT security development 
and evaluation criteria and an evaluation process that is 
economical, efficient, and predictable. The standard must 
meet U.S. Government and commercial security needs while 
recognizing that many of those needs are also shared by the 
government and commercial entities of other nations.

d.        Preserve the fundamental principles of IT product security. 
The fundamental principles of IT product security developed 
during the past decades must be preserved. The standard 
must be compatible with previous IT product security 
requirements insofar as possible in order to protect 
previous investments in the technology.

1.2       Scope

This standard addresses the full spectrum of IT product 
security needs, to include confidentiality, integrity, and 
availability. Confidentiality requirements protect against 
inappropriate disclosure of information; integrity 
requirements ensure the correctness and appropriateness of 
information and/or its sources; and availability ensures that 
information is present and usable within reasonable time 
constraints.

This standard addresses the specification of internal 
security controls (protection mechanisms) that are 
implemented in the hardware, firmware, and software of an IT 
product. For these internal controls to be effective, however, 
adequate external security controls must be employed. IT 
product security is complemented by these external controls 
(which include physical, personnel, procedural, and 
administrative security measures) and by a separate 
certification and accreditation process. For an IT product, 
the external security measures constitute assumptions and 
boundary conditions that are part of the environment described 
in a protection profile. These environmental assumptions and 
boundary conditions are necessary to ensure IT products can 
be used in such a way as to meet identified security needs.

This standard distinguishes IT product requirements from IT 
system requirements. In general, an IT product is a hardware 
and/or software package that can be purchased as an off-the-
shelf product and incorporated into a variety of systems. An 
IT system is generally constructed from a number of hardware 
and software components. For certain applications, it may be 
possible to purchase a single IT product that satisfies all 
customer requirements and, therefore, serve as a complete 
system. In most cases, however, at least some IT product 
customization and integration will be necessary to meet system 
specific requirements.

>From a security perspective, the principal distinction 
between products and systems lies in what is certain about 
their operational environment. An IT product must be suitable 
for incorporation into many potential IT systems. Thus, the 
product developer can only make general assumptions about the 
operational environment of a system in which the product may 
be incorporated. These general assumptions include intended 
method of use and generalized threats within the environment. 
In contrast, an IT system must provide applications and meet 
the requirements of a specific group of end-users within a 
specific operational environment that has a specific set of 
threat scenarios.

This standard addresses IT product requirements only. The 
composition of multiple IT products into an IT system is 
beyond the scope of this standard. Guidance for profile and 
product composition will be addressed in future publications.

1.3       Audience

This document serves three primary customer groups with 
respect to IT product security:

a.        Consumers: Individuals or groups responsible for specifying 
requirements for IT product security (e.g., policy makers 
and regulatory officials, system architects, integrators, 
acquisition managers, product purchasers, and end users).

b.        Producers: Providers of IT product security (e.g., product 
vendors, product developers, security analysts, 
integrators, and value-added resellers).

c.        Evaluators: Individuals or groups responsible for the 
independent assessment of IT product security (e.g., 
product evaluators, system security officers, system 
certifiers, and system accreditors).

Secondary audiences include technical educators, standards 
bodies, and the research and development community.

1.4       Organization of the Standard

The remainder of this FIPS is organized as follows. Chapter 2 
describes the activities of IT security development. Chapter 
3 addresses the form and content of protection profiles. 
Chapters 4, 5, and 6 provide detailed functional, development 
assurance, and evaluation assurance component requirements 
for use in constructing protection profiles. Chapter 7 is a 
guide to constructing protection profiles using the component 
requirements of Chapters 4 through 6. Several appendices 
provide additional supporting guidance.

This standard is part of a series of FIPS publications. 
Subsequent documents will be published as a Registry of 
Profiles representing profiles that have been developed, 
analyzed, and registered in accordance with this standard. 
Additional profiles will be added to the registry as consumer 
needs change and technology advances. Supporting guidelines 
for the standard will be published as part of this FIPS series 
or as other Federal agency publications.

Chapter  2.

IT SECURITY DEVELOPMENT

2.1       Overview

IT security development consists of three separate but related 
activities that begin with consumer specification of 
requirements for IT product security and end with installed 
IT systems incorporating products that have been approved to 
operate in a particular environment. The following list 
describes these activities, shown in Figure 1:

a.        Profile Development and Analysis. IT product security 
requirements are specified in a structured format; analyzed 
for completeness, consistency, and technical correctness; 
and accepted into a registry of profiles.

b.        Product Development and Evaluation. IT products are 
developed (or may already exist) in response to a profile 
and independently assessed to produce a rating regarding 
the product's conformance to a profile's specific security 
requirements.

c.        System Development and Certification. One or more IT 
products are combined into an IT system that has been 
determined, from a security point of view, to be acceptable 
for use in a specific environment and accredited for 
operation.

This standard addresses the first of the three activities of 
IT security development, (i.e., profile development and 
analysis). Product development and evaluation as well as 
system development and certification are beyond the scope of 
this standard. Sections 2.4 and 2.5 briefly discuss these 
activities to establish their relationship to profile 
development.

In many cases, consumers will accept IT systems that contain 
unevaluated IT products, thus bypassing two of the activities 
of IT security development. This situation, however, places 
more demands on the system development process and the final 
certification and accreditation processes.

2.2       Functions and Assurance

This standard focuses on IT products that can potentially be 
used in many diverse environments. These products are required 
to support various organizational security policies and 
address a diverse set of security requirements by providing 
selected IT security features or services. Collectively, 
these security features or services are known as protection 
functions.

Specifying requirements for protection functions is a 
necessary but insufficient way to ensure consumer confidence 
that the resulting IT product will provide a viable solution 
to a protection problem. It is also necessary to consider the 
extent to which the protection functions can be relied upon. 
Are the functions appropriate to counter the threats? Are the 
functions sufficiently strong to counter the threats? Are the 
functions implemented soundly? Are there any threats not 
countered by the functions? The extent of this reliance is 
known as assurance. Assurance is the basis for consumer 
confidence or trust that an IT product is suitable, with 
respect to security, for its intended use.

Three sources of IT product assurance have been identified: 
protection functions built into the product, characteristics 
of how the product was designed and developed, and results of 
the independent examination of the product. These three 
aspects of IT product assurance (i.e., what it contains, how 
it was designed and developed, and how it was evaluated) are 
related. The evaluation activity examines the results of the 
IT product design, development, and implementation. Assurance 
requirements vary in accordance with organizational security 
policies, expected environment, and intended use of the IT 
product. Producers, consumers, and evaluators of IT product 
security perform different activities to obtain the requisite 
assurance.

2.3       Profile Development and Analysis

During profile development and analysis, consumers and/or 
producers define requirements for IT product security in a 
unifying structure called a protection profile. A protection 
profile contains IT product requirements for protection 
functions, development assurance, and evaluation assurance. 
These requirements can be framed in the context of a rationale 
statement, which provides the overall justification for the 
protection profile.

Acceptance of a newly developed protection profile requires 
that the profile be carefully scrutinized for its usefulness, 
both in content and form. It must also be analyzed for 
completeness, consistency, and technical correctness. 
Therefore, achieving profile acceptance will often require 
iteration as the initial profile is refined. Profile revision 
and analysis continues until an acceptable profile results. 
The profile can then be entered into a registry as basis for 
both product development and evaluation.

Some new profiles will have broad usefulness to the U.S. 
Government. These profiles are candidates to become Federal 
Information Processing Standards (FIPS). In these cases, the 
public FIPS development and approval process will encompass 
the profile analysis and registry mechanisms. For such 
profiles, NIST and NSA, with security professionals from the 
public and private sectors, will make use of invitational 
workshops and public review to provide the quality control and 
technical oversight that manages the proliferation of 
protection profiles. Chapter 3 provides additional detail 
that must be addressed during profile analysis, including 
profiles that are in the process of becoming FIPS. However, 
the specific details of that process are beyond the scope of 
this standard.

Editor's Note: Although the process of profile 
development and analysis is not fully mature, the 
final version of the Federal Criteria will success-
fully answer questions such as the following: Will 
all profiles be subjected to the same level of anal-
ysis? What methods of analysis and tools might be 
employed? Will profiles be subject to modification? 
How will new profiles be handled if they closely 
resemble existing profiles in the registry? Who 
will pay for profile analysis?

2.4       Product Development and Evaluation

During product development and evaluation, a producer will 
incorporate protection functions into an IT product based on 
the requirements of a protection profile selected from the 
pool of registered profiles. Alternatively, a producer, who 
has identified a market for an IT product unrelated to one of 
the existing profiles, can undertake profile development and 
analysis.

The requirements in a protection profile should be product 
independent since many potential IT products may be able to 
satisfy the requirements of a particular profile. The 
comprehensive product description that explains how a 
specific IT product meets the requirements of a given 
protection profile is known as a security target. The security 
target is a specification and elaboration of the more general 
requirements in a protection profile and is, by definition, 
product dependent. The security target is the primary means 
of communicating specific product development information 
(evidence) to independent evaluators or to consumers. The 
development of product-specific security targets is beyond 
the scope of this standard.

Subsequent to development, an independent evaluation of an IT 
product may occur to produce a rating with respect to the 
product's conformance to the specific security requirements 
outlined in the protection profile. IT product evaluations may 
be accomplished by one of several evaluation authorities, just 
as profiles may be implemented by more than one producer. 
Consequently, specific details regarding evaluation processes 
are beyond the scope of this standard.

2.5       System Development and Certification

During system development and certification, IT products 
typically will be combined with other IT products into system 
configurations of varying degrees of complexity. The IT 
products used during system development may or may not have 
been formally evaluated. The completed IT systems will be 
subsequently employed in specific operational environments. 
An IT system must undergo an assessment and receive management 
approval prior to becoming operational. The assessment and 
management approval processes are known as system 
certification and accreditation, respectively.

IT system certification is conducted in support of the 
accreditation process. The extent to which a particular IT 
system meets a set of security requirements for its mission 
and operational environment is established by the 
comprehensive assessment of its internal and external 
security controls. In the Federal Government, a Designated 
Approving Authority (DAA) receives the resulting 
documentation to support the accreditation decision. In the 
private sector, this information might be provided to an 
equivalent designated management authority (e.g., corporate 
executive officer, department head, or division manager).

IT system accreditation is the official management decision 
to operate an IT system. The accreditation normally grants 
approval for the IT system to operate (1) in a particular 
security configuration, (2) with a prescribed set of 
countermeasures (administrative, physical, personnel, 
communications, emissions, and IT product internal security 
controls), (3) against a defined threat with stated 
vulnerabilities, (4) in a given operational context, (5) with 
stated interconnections to other systems, (6) at an acceptable 
level of risk for which the accrediting authority has formally 
assumed responsibility, and (7) for a specified period of 
time. The DAA formally accepts responsibility for the secure 
operation of the system and officially declares that a 
specified IT system will adequately protect against the 
identified threats through the continuous use of 
countermeasures. The accreditation decision affixes this 
responsibility with the DAA and shows that due care has been 
taken for security in accordance with applicable 
organizational security policies. 

Chapter  3.

PROTECTION PROFILES

3.1       Overview

A protection profile is an abstract specification of the 
security aspects of a needed IT product. It is product 
independent, describing a range of products that could meet 
this same need. Required protection functions and assurances 
must be bound together in a protection profile, with a 
rationale describing the anticipated threats and intended 
method of use. The protection profile specifies requirements 
for the design, implementation, and use of IT products.

Protection profiles can be assembled from pre-specified or 
unique functional and assurance components. A functional 
component is a set of rated requirements for protection 
functions to be implemented in an IT product (see Chapter 4). 
An assurance component is a set of rated requirements for 
development and evaluation activities conducted by producers 
and evaluators during construction and independent assessment 
of an IT product (see Chapters 5 and 6). For convenience, 
groups of functional and assurance components can be assembled 
into predefined packages (see Appendixes A and B). During 
construction of the protection profile, additional 
dependencies must be considered between functions and 
assurances (see Chapter 7).

3.2       Sources of Protection Profiles

Consumers or producers within the Government or the private 
sector develop protection profiles in response to a specific 
need for information protection. Profile developers, or 
sponsors, with a unique security need could propose a 
protection profile for that need or, more typically, groups 
of sponsors having similar needs could combine to propose one 
profile that meets their common need. Multiple sponsors 
supporting a single profile is an effective way to demonstrate 
a larger market to potential IT product producers.

Unique protection profiles reflect the needs of diverse sets 
of sponsors. For example, a banker's association might propose 
a protection profile for secure electronic funds transfer, or 
the Department of Defense might propose a protection profile 
for military applications. A single protection may also apply 
to many IT products, showing the diversity of potential 
solutions for the requirements outlined in the profile.

A producer who identifies a market for IT product security can 
also propose a profile to give consumers a means of referring 
to a specific set of needs and to facilitate future evaluation 
against those needs. The protection profile is intended to 
respond to both the pull of consumer needs and to the push of 
advancing technology. Ultimately, the protection profile is a 
common reference among consumers, producers, and evaluators.

3.3       Protection Profile Contents

A protection profile contains five sections: descriptive 
elements, rationale, functional requirements, development 
assurance requirements, and evaluation assurance 
requirements. The Descriptive Elements section provides 
categorical and descriptive information necessary to 
identify, categorize, register, and cross-reference a 
protection profile in a registry of profiles. The narrative 
description is a brief characterization of the profile, 
including a description of the information protection problem 
to be solved. This section applies to all potential users of 
the profile to determine whether or not the profile is 
applicable to a consumer's information protection needs.

The Rationale section provides the fundamental justification 
for a protection profile, including threat, environment, and 
usage assumptions. It also presents a more detailed 
characterization of the protection problem to be solved by an 
IT product meeting the requirements of the profile. This 
section describes the protection problem in sufficient detail 
for producers to understand the range of potential solutions 
to the problem. It also provides information to consumers 
regarding how IT products that successfully solve this problem 
can be used to support an organization's security policy.

The Functional Requirements section establishes the 
information protection boundary that must be provided by an 
IT product. Expected threats to information within this 
boundary must be countered by functions inside the protection 
boundary. The more robust the expected threats, the greater 
the required strength of the protection functions. The IT 
product protection functions support an organization's 
security policy when coupled with certain assumptions about 
the product's intended use and anticipated operational 
environment.

The Development Assurance Requirements section covers all 
phases of an IT product's development, from the initial 
product design through implementation. Specifically, the 
development assurance requirements include the development 
process, development environment, and operational support 
requirements. In addition, since many assurance requirements 
are not readily testable, it is necessary to study IT product 
development evidence or documentation to verify that 
requirements have been met. Development evidence requirements 
are included in a protection profile to ensure that the producer 
generates and retains appropriate documentation during product 
development for subsequent analysis during evaluation and product 
maintenance.

The Evaluation Assurance Requirements section specifies the type 
and intensity of evaluation to be performed on an IT product 
developed in response to a particular protection profile. In 
general, for an IT product, the scope and intensity of evaluation 
vary with the expected threat, intended method of use, and assumed 
environment as defined by the profile developer in the rationale 
section. Table 1 summarizes the contents of a protection profile.

                   Table 1. Protection Profile Structure
.-------------------------------------------------------------------------.
| Descriptive  | Provides categorical and descriptive information         |
| Elements     | necessary to uniquely identify, register, and cross-     |
|              | reference a protection profile in a registery of         |
|              | profiles.  Includes a description of the information     |
|              | protection problem to be solved.                         |
|--------------+----------------------------------------------------------|
| Rationale    | Provides the fundamental justification for a protection  |
|              | profile, to include threat, environment, and usage       |
|              | assumptions. Addresses support for organization security |
|              | policies.                                                |
|--------------+----------------------------------------------------------|
| Functional   | Establishes the boundary of responsibility for inform-   |
| Requirements | ation protection that must be provided by an IT product, |
|              | such that expected threats to information within this    |
|              | boundary are countered.                                  |
|--------------+----------------------------------------------------------|
| Development  | Specifies assurance requirements for all phases of an IT |
| Assurance    | product's development from initial product design through|
| Requirements | implementation. Includes the development process, the    |
|              | development environment, operational support, and        |
|              | development evidence.                                    |
|--------------+----------------------------------------------------------|
| Evaluation   | Specifies assurance requirements for the kind and        |
| Assurance    | intensity of evaluation to be performed on an IT product |
| Requirements | developed in response to a protection profile in accord- |
|              | ance with the expected threat, intended method of use,   |
|              | and assumed environment.                                 |
`-------------------------------------------------------------------------'


3.4       Protection Profile Development

The requirements for protection functions, development assurance, 
and evaluation assurance must be incorporated into a protection 
profile. These requirements, specified by the rated functional and 
assurance components, provide the basic building blocks for the 
definition of a protection profile. The components must be 
assembled into a consistent and coherent set that satisfies 
specific security goals of the anticipated environments of product 
use. The assembled components should counter expected threats, 
eliminate vulnerabilities, support security policies, and satisfy 
regulatory requirements defined in the anticipated environments of 
use.

Figure 2 shows that protection profile development consists of two 
stages: (1) an environment security analysis and (2) a component 
requirement synthesis. The environment security analysis addresses 
the identification of security requirements and provides 
information necessary for the development of the profile rationale. 
The component requirement synthesis addresses the selection of 
appropriate functional and assurance components for the profile. 
Developing a protection profile requires analysis of dependencies 
among the functional components, among assurance components, 
and between functional and assurance components (see Chapter 
7).

3.4.1     Environment Security Analysis

During the environment security analysis stage, the sponsor 
(i.e., profile developer) derives a set of environment-
specific security requirements based on expected threats and 
vulnerabilities; intended method of IT product use; 
environment assumptions; and policies, standards, 
regulations, or directives (if any). Although these 
requirements can be considered environment-specific, they 
derive from several potential environments of product use, and 
they capture the common security characteristics of those 
environments. The result of the security analysis, the 
environment-specific requirements, must characterize the 
environments of use in a demonstrable way.

The selection of environment-specific security requirements 
must be based on effectiveness of the security functions. The 
sponsor must show that the requirements in the protection 
profile satisfy the security objectives by countering the 
expected threats and eliminating the anticipated 
vulnerabilities. The effectiveness of the environment-
specific requirements is a primary justification that must be 
provided in the profile rationale and an important 
consideration in the acceptance of a profile. Other 
considerations, such as the utility and relevance of the 
anticipated environments of use, also apply to the profile 
analysis.

3.4.1.1   Expected Threats

A threat is a classification of the capabilities, intentions, 
and attack methods of adversaries to exploit (or any 
circumstance or event with the potential to cause harm to) 
information or an information system. Harm to information or 
information systems due to threats may result because of 
absence or failure of functional controls. The consequences 
of threats may vary.

As suggested by Figure 3, the analysis of expected threats 
starts at the boundary of the IT product's assumed 
environment. The scope of the analysis continues inward 
through the product's protection boundary to its protected 
information resources. One result of the analysis is the 
development of generic threat categories. These categories 
can be ordered according to risk (probability of occurrence) 
and level of severity. Appendix A provides a brief synopsis 
of common threats to information technology.

3.4.1.2   Intended Method of Use and Environment

A protection profile must contain assumptions about the way 
the product will be used and the environment in which it will 
be placed. Assumptions should highlight significant 
constraints. For example, in some environments, routine 
product maintenance would be infeasible. These assumptions 
will enable the profile's users to understand the significance 
of the information being processed, the users and 
administrators involved in the information processing, the 
type of information processing, and the protection for the 
processing environment and its relationship to the users.

Sample rationales might include the following:

Example 1: This IT product generally will be used to process 
concurrent multiple levels of disclosure-sensitive and/or 
manipulation-sensitive information (i.e., national security 
information and/or information subject to organization 
internal controls and external regulation). In the assumed 
environment, sensitivity markings indicate the IT security 
controls that must be applied to protect the information. 
These sensitivity markings may be associated with objects that 
range in size from data elements to files.

Example 2: The users and administrators have access to 
multiple levels and types of information and processing 
resources. Access authorization is based on attributes, such 
as duties within roles, determination of need to know, trust 
indicators (such as individual clearances or job 
descriptions) and entry constraints (such as time, location, 
terminal, and port).

Example 3: Information is processed on centralized general-
purpose shared computing resources allowing for both 
interactive and batch processing. The operational mode is 
concurrent multilevel processing. The user interface is 
generally expected to be window-based. Use of a database 
management system is anticipated. The database management 
system need not be a part of the product offering, but a 
description of how to integrate the database security 
interface must be provided.

Example 4: The processing resources of the IT product, 
including all terminations, will be located within user spaces 
that have physical access controls. A restricted access 
environment with unarmed guards should be assumed. The 
possibility of the environment becoming hostile should be 
considered (e.g., a U.S. Embassy in a foreign country). 
Networking may be anticipated, but is not required as part of 
the IT product offering.

3.4.2     Component Requirement Synthesis

During the second stage of protection profile development, the 
environment-specific security requirements must be used in 
conjunction with well-defined profile requirement 
construction rules to select and tailor the generic functional 
and assurance components provided in Chapters 4 through 6 of 
this standard. The resulting profile specifies the protection 
policy that must be supported within the IT product.

Not all environment-specific security requirements apply to 
the selection of the functional and assurance components. The 
environment-specific security requirements referred to in 
this section are those requirements that may be used to select 
functional and assurance components to be incorporated in a 
protection profile.

The selection of components also involves dependencies among 
components. Dependencies among functional components drive 
the selection of the functional components. Dependencies 
between functional and assurance components, and within the 
assurance components affect assurance component selection. 
Chapter 7 cites specific information on the techniques for 
constructing protection profiles and the dependency 
considerations between functional and assurance components.

3.5       Protection Profile Analysis

After a protection profile has been developed by a sponsor, 
it must be analyzed. Protection profile analysis ensures that 
the profile has the following characteristics: technical 
soundness, usefulness, evaluation capability, distinctness, 
and consistency.

The rationale section supports the profile analysis conducted 
to assess whether the vulnerabilities constituting a 
protection problem are adequately countered by the profile's 
proposed protection functions and assurances. The profile 
analysis determines that the risks identified in the 
protection problem have been reduced to an acceptable level. 
Profile analysis is important; many products may be created 
in response to a protection profile.

As described in the following sections, the goals of 
protection profile analysis are to ensure the following 
characteristics:

a.        Technical soundness. The elements of a protection profile 
are technically sound and reasonably balanced, considering 
the profile rationale (threat, usage, and environment 
assumptions), and the functional and assurance 
requirements.

b.        Usefulness. IT products built to meet the requirements of 
a protection profile will serve a useful purpose.

c.        Evaluation capability. Implementation of a protection 
profile's requirements can be evaluated. Consumers, 
evaluators, and producers will understand how to determine 
that the profile requirements have been met by a specific 
IT product.

d.        Distinctness. The protection profile is distinct, in that 
it does not duplicate a need adequately described by 
another profile.

e.        Consistency. The protection profile is consistent with 
other profiles in form and level of detail.

3.5.1     Technical Soundness

Determining technical soundness is a crucial part of the 
analysis of a protection profile. The following three major 
characteristics should be considered:

a.        Strength or appropriateness of protection functions and 
assurances. This characteristic is a judgment made by 
comparing the profile rationale (threat, usage, environment 
assumptions, and security policy) with the required 
protection functions and assurances. It must be determined 
that if the IT product is used as recommended, each stated 
threat will be successfully addressed through the 
prescribed combination of functional and assurance 
requirements, taking into account assumptions about the 
environment.

b.        Internal consistency of profile requirements. This 
characteristic is a judgment based on an overall analysis 
of the protection profile to determine that the degree of 
required protection functions is commensurate with the 
degree of required assurance.

c.        Requirement dependencies. This characteristic involves 
dependencies that may exist among requirements and whether 
any dependencies have not been considered in the 
development of the protection profile. These dependencies 
can be functional-functional, assurance-assurance, or 
functional-assurance. Dependency analysis must be complete 
and consistent.

Questions to be answered during the technical soundness 
analysis might include the following: Are the functional 
requirements sufficient to counter the expected threats? Are 
any threats not countered adequately addressed in 
environmental and/or other assumptions outside the domain of 
the IT product? Is the degree of assurance compatible with the 
threat expected and with the level of protection functions 
required? Have all stated dependencies been addressed? Have 
any dependencies been omitted? Are there inconsistencies in 
protection functions resulting from an examination of 
dependencies?

3.5.2     Usefulness

A management decision is necessary to commit the resources for 
conducting a profile analysis. Consumers and producers may 
determine the usefulness of a profile based on different 
criteria. Determining the profitability of a market is clearly 
a producer's responsibility. The protection profile analysis 
is not intended to interfere with the producer's business 
decisions. Usefulness analysis relies primarily on the 
rationale section of the profile to express the need with 
respect to threat, usage and environment assumptions.

The analysis also includes an assessment of development 
feasibility. Protection profiles requiring research and 
development efforts should be identified so that the profiles 
will not raise expectations for near-term implementations.

Questions to be answered during the usefulness analysis might 
include the following: Does this protection profile address a 
real problem? Does this protection profile differ 
significantly from existing profiles, or could the needs 
described in this profile be met adequately by another 
existing profile? If the demand is too small to support 
commercial off-the-shelf products, what factors could induce 
producers to develop products for a niche market? 
Approximately how large is the demand for these products? Is 
the protection profile readily implementable? Is the state of 
technology sufficiently developed or is basic or applied 
research and development necessary?

3.5.3     Evaluation Capability

The protection profile requirements must be reviewed to ensure 
that IT products intended to satisfy the requirements in the 
protection profile are capable of being evaluated. A 
protection profile may be used as the basis for product 
development. The evaluation capability analysis of the 
profile can pay off by clearly defining what is expected 
during the evaluation process. As far as possible, 
requirements in the protection profile should be stated in 
objective terms so the producer and the evaluator will be more 
likely to agree on their interpretation of the requirements. 
If certain requirements must be stated in subjective terms, 
clear and explicit guidelines should be presented to explain 
what factors should be considered to determine whether the 
requirements have been met. Requirements should be simple, 
declarative statements and for ease of reference, 
requirements should be numbered or otherwise indexed. These 
features will help to ensure that requirements will not be 
overlooked, either during product design and development or 
during evaluation.

Questions to be answered during the evaluation capability 
analysis might include the following: Is the purpose or 
objective of each requirement clear? What does each 
requirement contribute to the overall IT product security? Is 
the phrasing of each requirement clear and concise? Are the 
criteria for success for each requirement self-evident or 
explicitly provided? Is there a means by which it can be shown 
that each protection requirement has been established in the 
producer's IT product? Is each requirement objective? If a 
requirement is subjective, is it accompanied by objective 
factors to be considered when determining if the requirement 
has been met?

3.5.4     Distinctness

A new protection profile is compared with existing profiles 
to determine that it meets a unique need and that the 
requirements of no other existing profile address that same 
need. A protection profile, once registered, is not intended 
to be changed (except for editorial changes that would not 
affect any producers currently developing products to meet 
that profile specification). This constraint is intended to 
preserve a relatively stable and manageable set of 
requirements. New needs must be met by new profiles. Similar 
protection profiles are cross-referenced.

Questions to be answered during distinctness analysis might 
include the following: Do the presumed threats described in 
this profile very closely resemble those of any other existing 
profile? If yes, is there a significant difference between the 
two profiles? Do the required protection functions very 
closely resemble those of any other existing profile? If yes, 
does a significant difference exist between the two profiles? 
Do the functional requirements and rationale sections of the 
protection profile resemble another protection profile with 
different assurance requirements? If yes, can assurance 
requirements of the other profiles be changed?

3.5.5     Consistency

Protection profiles must be consistent with one another in 
form and level of detail. This review analyzes the profile to 
ensure that the properties associated with accepted 
protection profiles are present. A clear and convincing case 
must be made for allowing protection profiles whose form must 
differ from the norm.

Questions to be answered during consistency analysis might 
include the following: Is the protection profile complete? Are 
the objectives and expected threats discussed reasonably 
complete for the expected environments and intended method of 
use? Can the threats be shown to be mitigated by attributes 
of the IT product or its environment? Is the protection 
profile internally consistent in its level of protection? Are 
the form and degree of detail of the protection profile 
consistent with the form and degree of detail of other 
profiles?

3.6       Protection Profile Registration

To provide a relatively stable environment, a profile is 
intended never to be changed once it is registered. However, 
evaluation experience may identify errors and ambiguities 
that need to be corrected. New information protection 
requirements will be addressed by the development of new 
profiles.

Protection profiles that have completed analysis will be 
registered. Producers can select profiles for IT product 
implementation. The profiles in the public registry can also 
serve as templates for the development of new profiles.

Editor's Note: The specific details of profile reg-
istration are currently under development and have 
not been completed. It is envisioned that the pro-
file registry could contain three independent reg-
istration types: (1) the complete protection 
profiles, (2) functional packages, and (3) assur-
ance packages. Packages would identify any associ-
ated dependencies. The registration bodies that 
approve the inclusion of new protection profiles 
would also approve the registry of new packages for 
protection functions and assurance.

Chapter 4.

FUNCTIONAL REQUIREMENTS

4.1       Overview

The functional requirements presented in this chapter enable the
definition of different protection profiles that can be used in
different environments of IT product use and address different
threats. These requirements allow protection profile extension and
refinement, which may become necessary as technology changes and as
experience is gained. They also enable the harmonization of this
standard with existing standards, such as the Canadian Trusted
Computer Product Evaluation Criteria (CTCPEC), the Information
Technology Security Evaluation Criteria (ITSEC), and the Trusted
Computer System Evaluation Criteria (TCSEC). Thus, these requirements
allow the definition of protection profiles that closely capture the
functional characteristics of IT products evaluated under the existing
standards.

The functional requirements defined in this chapter are grouped into
components of trusted computing bases (TCBs). The TCB is the totality
of an IT product's elements, comprising the hardware, firmware, and
software code and data structures responsible for enforcing the
product's protection functions.  Thus, a functional component is a set
of requirements levied on either (1) one or more TCB functions that
can be invoked through the TCB interface (e.g., system call,
supervisor call) or (2) one or more internal modules or sections of
code and data structures of a TCB function.

The functional components defined in this standard are based on the
premise that the TCB is the only part of the product that needs to be
analyzed and evaluated to determine the protection characteristics of
a product. For this reason, this standard need not define more than
the desirable sets of functional components for TCBs. Since different
functions of a TCB help counter different threats, the analysis of the
TCB protection must identify the set of components that collectively
helps counter a specified set of threats. To make a protection profile
generally applicable to a wide set of products, the desirable
components included in a protection profile must be specified in a
product-independent manner, in terms of generic protection
requirements, rather than by specific mechanisms that may vary from
product to product. The threats countered by the TCB functional
components also must be defined in generic terms rather than by
specific threat instances that may vary from environment to
environment.

The functional components presented in this standard are derived from
existing security criteria and requirements of commercial and
non-commercial environments. To address a wide variety of protection
needs, each functional component is rated based on a set of
well-defined parameters. This rating is intended to capture the
desirable variations in the protection merits of component
requirements. This rating can also help clarify the relationships
between these requirements and those of existing standards.

This chapter is divided into four sections. The remainder of this
section groups the functional components of a TCB into eight classes
and describes the types of components in each class. The second
section presents a description of each type of functional component in
terms of the generic threats and vulnerabilities these components are
intended to counter or eliminate. The third section presents the rated
functional components. The last section includes a bibliography of
useful literature references. (Appendix B presents the reference
monitor concept and its role in product security, and Appendix C
presents the components required in defining an access control
policy.)

Classes of TCB Functions: Eight classes of TCB functions and
associated components with distinct protection requirements are
identified in the Taxonomy of TCB Functions (Figure 4).  These classes
are: (1) security policy support, (2) reference mediation, (3) TCB
logical protection, (4) TCB physical protection, (5) TCB
self-checking, (6) TCB start-up and recovery, (7) TCB privileged
operation, and (8) TCB ease-of- use. It is important to note that all
but the first class of the components listed above are sometimes
considered to be operational assurances. However, a different point of
view is taken in this standard for two reasons. First, if a protection
relevant component requires that specific software, hardware, or
firmware elements (i.e., code, data structures) be part of the TCB,
then that component implements a necessary protection function, even
if it only indirectly contributes to the overall protection of the
product. Second, functional components actively help counter TCB
external threats or eliminate vulnerabilities, whereas assurance
components do not. Instead, the assurance components help identify and
eliminate potential vulnerabilities caused by errors of omission, or
commission, in TCB development, life cycle maintenance, and operation.
Therefore, the items in component classes two through eight are
categorized as functional components instead of operational
assurances.

Security Policy Support. This class of components defines four
functional components for basic security policy support at the
interfaces of typical TCBs: (1) accountability policy components,
which include the functional components of identification and
authentication (I&A), system entry control, trusted path, and audit,
(2) an access control policy component, (3) availability policy
components, which include resource allocation and fault tolerance
components, and (4) security management components. The degree to
which a product's TCB must implement the requirements of these
functional components depends upon the threat environment assumed and
the product's security objectives. Furthermore, the ability of a
product's TCB to correctly support a set of organizational security
policies depends jointly on (1) the product policies implemented by
the TCB functions (e.g., these policies must be consistent with those
of the organization), (2) the correct operation and input by system
administrative personnel (e.g., system start-up or recovery must be
performed properly; the user registration and the system entry
parameters must be set properly), and (3) the actions of the
unprivileged users themselves (e.g., choice of passwords, setting of
an object's default access rights, distribution of access rights).

Reference Mediation. The requirements of this component ensure that
all references issued by subjects external to the TCB (i.e.,
unprivileged subjects) to objects, resources, and services of a
product are validated by the TCB in accordance with the security
policies of the product. Satisfying the requirements of this component
establishes complete reference mediation (i.e., a reference of a
subject external to the TCB cannot circumvent the security policies of
the TCB).

TCB Logical Protection. The requirements of this component ensure that
at least one domain is available for the TCB's own execution, and that
the TCB is protected from external interference and tampering (e.g.,
by modification of TCB code or data structures) by unprivileged
subjects. Satisfying the requirements of this component makes the TCB
self-protecting.  Therefore, an unprivileged subject cannot modify or
damage the TCB.

Note that the reference mediation and the TCB logical protection
components include the first two requirements of the reference
validation mechanism (see Appendix B). These two components, as well
as the security policy support, are necessary for all protection
profiles. The strong dependency of these two components on the
development assurance components is defined by the third requirement
of the reference validation mechanism (see Chapter 7; Appendix B).

TCB Physical Protection. The requirements of this component ensure
that the TCB is either protected from physical tampering and
interference or operates in a protected environment. Satisfying the
requirements of this component causes the TCB to be packaged and used
in such a manner that (1) physical tampering is detectable, or (2)
resistance to physical tampering is measurable based on defined work
factors. Without this component, the protection functions of a TCB
lose their effectiveness in environments where physical damage cannot
be prevented.

TCB Self-Checking. The requirements of this component ensure that
hardware, firmware, or software are available to validate the correct
operation of the TCB and the consistency of the TCB's protection data
structures. Satisfying the requirements of this component allows the
TCB to (1) detect corruption of protection-relevant code and data
structures resulting from various mechanism failures and (2) initiate
corrective action. This component is important because, unlike TCB
protection, corruption of protection-relevant code and data structures
resulting from mechanism failures can only be detected, not prevented.

TCB Start-Up and Recovery. The requirements of this component ensure
that the TCB can determine that the IT product is started without
protection compromise and can recover without protection compromise
after a detected failure or other discontinuity. Satisfying the
requirements of this component establishes that the initial and
recovered states of a TCB satisfy the security policy, reference
mediation, and TCB protection requirements. This component is
important because the start-up TCB state determines the protection of
subsequent states, and once the corruption of a protection-relevant
data structure by a failure is detected, TCB recovery action becomes
necessary.

TCB Privileged Operation. The requirements of this component ensure
that TCB functions operate with the fewest privileges necessary to
accomplish their purpose. Satisfying the requirements of this
component causes identification of system privileges required by each
TCB function and the addition of mechanisms that associate these
privileges with specific TCB functions, modules, or actions. This
component is important because it helps restrict the propagation of
errors and failures.

TCB Ease-of-Use. The requirements of this component enable the use of
the TCB by users, administrators, and their applications. Satisfying
the requirements of this component provides (1) fail-safe defaults
(i.e., defaults that deny access whenever a user or administrator
fails to specify access to subjects and objects), (2) user-defined
defaults, (3) well-defined interface conventions, (4) the users'
ability to reduce their own privileges, and (5) subject, object,
resource, and service protection in common configurations. Without
this component, the protection value of the TCB functions is
diminished since few users and applications would be able to employ
these functions effectively.

4.2       TCB Functional Components

The TCB functional components are presented in terms of the generic
threats and vulnerabilities they are intended to counter or eliminate.
Most protection profiles for IT products based on operating systems
will include most of the functional components presented in the
following subsections. Protection profiles for other types of IT
products may include only some of these components depending upon the
product's purpose.

4.2.1     Security Policy Support

The focus of information protection within an IT product is to support
an organization's security policies. This section describes TCB
functions and associated components (i.e., accountability, access
control, availability, and security management) that help support
organizational security policies. The generic functional components
have been written to be policy neutral (i.e., they are capable of
supporting a wide variety of protection policies). Specific product
policies or types of product policies (e.g., policies derived from the
DoD policy for confidentiality, a hospital's policy for privacy and
integrity of patient records, or a phone company's policy for
availability) can be defined by assigning a specific meaning to, or
refining the generic, policy neutral components. Details of profile
construction and synthesis of profile components from generic
components are provided in Chapter 7.

4.2.1.1   Accountability Policy

An IT product that supports accountability policies must include
functions capable of attributing responsibility for an action to an
accountable entity (i.e., the identified and authenticated individual
whose policy attributes may include name, role, group, and/or security
level). Accountability requirements may be satisfied in a product
through the use of the following functional components. Identification
and authentication components establish the authenticity of the
claimed identity by the user. System entry components provide the
appropriate time, location, and mode-of-entry context for the user's
interactions. Trusted path components ensure that nothing can
interfere with the interactions between the TCB and the authenticated
user. Audit components ensure that user interactions are recorded and
attributed to the accountable user identity. Each of these components
is discussed in more detail in the following subsections.

4.2.1.1.1 Identification & Authentication (I&A)

I&A components specify functional requirements for the TCB to verify
the claimed identity of individuals attempting system entry.
Identification and authentication is required to ensure that the
authenticated users are associated with the proper set of policy
attributes (e.g., identity, groups, roles, security or integrity
levels, time intervals, location). Thus, identification and
authentication enables the TCB to ensure that all individuals entering
a system and accessing its subjects, objects, and services are
authorized to do so by the system entry and TCB's protection policy,
and that the accountability policy can be enforced. In operating
systems, the I&A functions constitute the main part of the process
commonly known as "login," with the balance of the process consisting
of system entry and trusted path functions.

4.2.1.1.2 System Entry

The system entry components specify functional requirements for the
control of an identified and authenticated user's entry into the
system. The user's entry into the system typically consists of the
creation of one or more subjects that execute instructions in the
system on behalf of the user.  At the end of the system entry
procedure, provided the system entry conditions are satisfied, the
created subjects bear the policy attributes determined by the I&A
functions. System entry conditions can be specified in terms of policy
attributes such as the user's identity, group or role membership,
confidentiality and integrity levels, time intervals, location, and
mode of access.

The system entry procedure may include warnings about unauthorized
attempts to gain access to the system. It may also display last login
data to the user, so that the user can determine whether the previous
successful login was performed by the user and not by an intruder who
successfully broke the user's password, for instance. The system entry
procedure may enable the control of (1) multiple simultaneous user
logins, (2) locking an interactive session during periods of user
inactivity, (3) time intervals during authorized user access, and (4)
location or port of user entry.

System entry control can help counter threats of inadvertent,
deliberate, or coerced access performed in an unauthorized manner by
an authenticated user. For example, the location and time of system
entry can be constrained in such a way that identified and
authenticated users located in areas of high exposure (e.g., public
areas) cannot display sensitive data, enter high-integrity commands,
or operate outside working hours. Similarly, controlling the mode of
system entry helps ensure that identified and authenticated users
cannot remotely start batch computations that would normally require
the user's attendance.

4.2.1.1.3 Trusted Path

Trusted path components specify functional requirements for ensuring
that users have direct, unencumbered communication with the TCB. A
trusted path may be required at login time and at other times during a
subject session. These trusted path exchanges may be initiated by a
user during a TCB interaction.  However, a TCB or a trusted
application request for user input should also allow a user to
initiate and respond via the trusted path. A user's response via the
trusted path guarantees that untrusted applications cannot intercept
and/ or modify the user's response.

The threats countered by these components are unauthorized discovery
and/or modification of user-private information associated with
commands (e.g., login password, sensitivity of the user's actions),
and modification of commands and command parameters causing incorrect
user input to the TCB.  Trusted path programs of the TCB may also be
invoked by trusted applications to ensure correct display of
information to the user. These programs may also allow the addition of
trusted application commands to the trusted path so that users could
communicate securely with these applications.

Absence of a trusted path may allow breaches of accountability in
environments where untrusted applications are used. These applications
can intercept user-private information, such as passwords, and use it
to impersonate other legitimate users.  As a consequence,
responsibility for any system actions cannot be reliably assigned to
an accountable entity. Also, these applications could output erroneous
information on an unsuspecting user's display. Thus, subsequent user
actions may be erroneous and may lead to security breaches.

4.2.1.1.4 Audit

The audit components specify requirements for monitoring and, in some
cases, detecting real or potential violations of security policies in
organizations that use IT products containing audit functions. These
functions help monitor the use of access rights by authorized users,
and act as a deterrent against usage policy violations.

Auditing involves recognizing, recording, and analyzing user actions
that are considered, by audit administrators, to be critical to the
success of an organization's security policy.  The resulting audit
records can be examined to determine which security-relevant user
actions took place and who was responsible for them. The audit
component requirements refer to the basic audit mechanisms, including
audit data protection, record format and event selection, as well as
to analysis tools, violation alarms, and real-time intrusion detection
systems, which use the basic mechanisms.

Recognition of auditable actions is based largely on administratively
supplied specifications of user actions and patterns of behavior whose
appropriateness is considered to be significant to the satisfaction of
an organization's security policy. The designers of an IT product must
either anticipate which actions and patterns are likely to be
considered important to organizations with respect to their security
policies, or provide an audit interface that allows trusted (and
possibly other) applications to recognize and pass audit data to the
TCB. Since the purpose of the audit mechanism is to audit user
actions, including administrative actions, designers of the audit
mechanism cannot uniformly assume that all authorized actions are
appropriate; consequently. some administrative actions must always be
audited.

The IT product must record each action that has been deemed auditable
along with accompanying information needed to un- derstand the
apparent purpose or effect of that action (e.g., user environment
variables, programs used to preprocess user input). Recorded audit
data must be protected by the TCB from inappropriate modification,
use, or destruction. To avoid re- pudiation, the mechanism by which
audit data is gathered must be known and reliable. Often this implies
the use of a trusted communications mechanism. At higher levels of
assurance, the auditing of key administrative actions should resist
all at- tacks by remote users and otherwise undetectable attacks by
users with access to the physical audit media (e.g., through the use
of write-once audit disks).

Finally, audit data must be available for analysis in a timely manner
and in a useful format, within policy constraints established for the
product. This requirement motivates the design of pre- and
post-processing software that organizes audit data into a presentable
format and/or delivers it to authorized users or processes acting on
their behalf.

4.2.1.2   Access Control Policy

The access control objectives of organizational security policies can
be divided into two classes, namely confidentiality and integrity.
These objectives determine whether the organization intends to prevent
unauthorized disclosure or unauthorized modification and destruction
of information. Often, organizational security policies include both
confidentiality and integrity objectives to varying degrees. These
policies reflect both security and system management goals that should
be satisfied by multiple IT products.

The extent to which an IT product's access control policy supports
high-level system and organizational security policy objectives varies
from product to product. Few commercial products are designed to
support a single specific organizational policy. Instead, commercial
products implement either low-level access control policies that can
be tailored to support high-level organizational policies or multiple
organizational policies that could be individually instantiated on a
system basis. For example, some products implement both the DoD
mandatory confidentiality policy (as modeled by Bell & LaPadula) and a
mandatory integrity policy (as modeled by Biba). When using such IT
products in environments where only the mandatory integrity policy
needs to be enforced, the DoD mandatory confidentiality policy could
be deconfigured (e.g., all authorization checks for DoD mandatory
confidentiality would pass and all options for displaying, or
requesting, confidentiality levels would be disabled). Similarly,
other organizational policies, such as the role-based access control
policies, could be configured in a product when the environment of
product use makes it necessary.

The access control policies in this section are IT product policies
implemented by TCB functional components and are distinguished from
the higher level system and organizational security policies, which
generally use product policies to help achieve the higher level
security objectives. Product access control policies are designed to
counter generic threats. These policies traditionally have been
classified as discretionary or non-discretionary, depending upon
whether the access control decisions regarding an object are primarily
based on actions of the unprivileged user and/or subject that created
the object or primarily based on administrative actions. Access
control policies of many products combine both discretionary and
non-discretionary policies to counter different types of threats and
eliminate various vulnerabilities.

4.2.1.2.1 Discretionary Access Control Policies

The generic threats addressed by discretionary access control policies
are those of unauthorized access, propagation or retention of access
rights to user's objects, and unauthorized creation or destruction of
subjects and objects.  Discretionary access controls enable users and
applications to protect their objects from unauthorized access by
other users and applications. These controls are effective, provided
that malicious code is not introduced and used by a user or on behalf
of a user.

Discretionary access control policies cannot counter and are not
intended to address several generic threats and vulnerabilities such
as Trojan horse or virus propagation within a user application. This
is because these policies have traditionally imposed very few
restrictions on object sharing. Most commercially available IT
products that support only discretionary policies could not adequately
control or confine the actions of a Trojan horse or a virus within an
application. Furthermore, discretionary policies are not intended to
control the flow of information between a subject and/or object to
system variables that do not represent subjects and/or objects (e.g.,
internal variables of an operating system). Consequently, the use of
covert channels is a threat that cannot be countered by any
discretionary access control policy.

Discretionary access controls are also not intended to prevent
surrogate access to objects. As a typical example of surrogate access,
consider an object's owner who allows user A, but not user B, to read
the contents of one of the owner's objects.  However, the object owner
cannot exercise any control over user A's discretion on how to use the
object contents. User A can transfer the contents of the owner's
object to user B in an authorized manner via the interprocess
communication facilities; or user A may simply copy the contents of
the owner's object into another object shared with user B. The object
owner cannot control user A's legitimate discretionary communications
with user B, and thus, the object owner cannot control the flow of
data to and from the object caused by user A on behalf of user B.

A range of discretionary policies have been used by various IT
products to satisfy different protection requirements.  These policies
range from those where the owner (creator or controller) of an object
(and an application running on the owner's behalf) has complete
control over who can access that object to those where any possessor
of an access right to an object can freely distribute that access
right to, and subsequently revoke it from, other users and
applications.

Generic threats to access control not countered by discretionary
access controls are intended to be countered by non-discretionary
access controls. These non-discretionary access control policies are
discussed in the next section.

4.2.1.2.2 Non-Discretionary Access Control Policies

Non-discretionary access control policies are intended to counter
threats posed by malicious code (e.g., Trojan horses or virus codes)
within application programs, by surrogate subjects, and in general, to
counter both unauthorized access to objects and unauthorized flow of
information between subjects and objects, not just unauthorized
propagation of access rights. An IT product that provides
non-discretionary access control can confine the effects of malicious
code and the flow of information between subjects and objects as
specified by system administrators. In general, non- discretionary
controls are specified by security administrators and cannot be
changed over time by unprivileged subjects. Thus, the unprivileged
subject's discretion as to whether an object can be accessed is
limited by administrative controls. Also, an unprivileged user can
only exercise very limited access-control discretion. By selecting
certain policy attributes from the attribute sets defined by
administrators (e.g., role, session security level), the user selects
the access control attributes for subjects created for him/her to run
external to the TCB. Non-discretionary policies allow the basis for
determining whether a subject could have access to an object based
exclusively on the subject's and the object's non-discretionary policy
attributes. In this sense, non-discretionary access controls can
confine user and application program activity.

Unlike discretionary access controls, which typically do not offer
separate and explicit support for specific confidentiality and
integrity policies beyond distinguishing between attributes for
reading and writing objects, non- discretionary controls can
demonstrate support for high-level organizational policies. This is
due, in part, to the central (organizational) role played by system
administrators in the control of access authorization and object
sharing, as opposed to discretionary policies where individual object
creators, not system administrators, play this access authorization
and object-sharing-control role.

Various non-discretionary access control policies have been used in
different products. These policies range from the DoD mandatory
policies used to protect the confidentiality of classified documents
to separation of role and separation of duty policies intended to
protect the integrity of databases.  Also, some products have a
capability to enforce both non- discretionary confidentiality and
integrity controls on the same or different sets of subjects and
objects.

Both non-discretionary confidentiality and integrity policies may, or
may not, adequately control the flow of information and the use of
covert channels. Not all non-discretionary policies are aimed at
controlling the use of covert channels.  Should covert channels be
considered a threat, however, both non-discretionary confidentiality
and integrity policies require measures of covert channel handling.
These measures are discussed in the next section.

4.2.1.2.3 Covert Channel Handling

Covert-channel handling components include both technical requirements
(e.g., elimination, bandwidth reduction to acceptable levels,
deterrence of use by auditing covert storage channels), and
administrative or environmental requirements (e.g., exclusive use of
trusted software by trusted users in environments where all
unauthorized information flow must be prevented).

Covert-channel elimination requires that the design and/or
implementation of a system be changed so that covert channels are
removed from the product. These changes include (1) the elimination of
resource sharing between any subjects that could take part in covert
channel use by preallocating maximum resource demands to all such
subjects or by partitioning resources on a per-subject basis, and (2)
the elimination of interfaces, features, and mechanisms which can
cause covert leakage. Since covert-channel elimination may be
impractical for some channels, other handling functions may be useful
in a TCB (e.g., bandwidth limitation functions).

Covert-channel bandwidth limitation requires that the maximum, or
alternatively, the average bandwidth of any channel be reduced to a
limit deemed acceptable in the environment of product use. In
sensitive applications, bandwidth limitation may require that the
aggregated (i.e., combined) bandwidth of a product's covert channels
be reduced to an acceptable value. Bandwidths can be limited by (1)
deliberate introduction of noise in TCB functions used to exploit the
channels (e.g., use of random allocation algorithms for shared
resources such as indexes in shared tables, disk areas, and process
identifiers, or introduction of extraneous processes that modify
covert channel variables of a TCB in pseudo-random patterns), or (2)
deliberate introduction of delays in each TCB primitive of a real
channel.

Covert-channel auditing is a primary method used to discourage the use
of covert channels. This method assumes that the frequent use of a
channel can be unambiguously detected by audit mechanisms. Some covert
channels preclude the use of channel audit, elimination, and bandwidth
limitation methods.  These channels typically include the timing
channels that arise from hardware-resource sharing (e.g., shared
busses, processor caches). Furthermore, in some environments, the
threat analysis may indicate that any use of covert channels cannot be
tolerated. However, in most commercial products it is impractical to
eliminate all covert channels. If such products are used in such
non-tolerant environments, the effect of covert-channel use must be
neutralized. This could be done by the exclusive use of trusted
product and application software. In such cases, evidence must be
provided to justify that the exclusive use of trusted application
software is sufficient to render the existing covert channels
ineffective.

4.2.1.3   Availability Policy

An IT product which supports availability policies must provide
protection functions capable of controlling the availability of the
product subjects, objects, resources, and services. Availability
components refer to policies for prevention, detection, and recovery
from unauthorized denial of service caused by unprivileged subjects.
These components also refer to the use of redundancy and recovery from
lack of availability caused by TCB failures. Because subjects and
objects are represented by, and consume, system resources such as
primary memory and disk space, CPU time, and shared TCB internal
tables and objects, the allocation of these resources must be
controlled to allow policy-ensured accesses to take place.

A product that controls the availability of subjects, objects, and
services may include TCB functions that prevent denial of service and
provide fault tolerance. The needed availability functions of a TCB
may include resource allocation containment and fault tolerant
services.

4.2.1.3.1 Resource Allocation

Resource allocation functions allow the TCB to control the use of
product resources by users and subjects such that denial of service
will not take place. Denial-of-service protection can be provided by
containing resource allocations in time and space, or by establishing
priority-based allocations.

Resource allocation rules may allow the creation of quotas or other
means of defining limits on the amount of resource space or time that
may be allocated on behalf of a specific user, process, or task. These
rules may provide for object quotas that constrain the number and/or
size of objects a specific user may allocate. Resource allocation
rules may control the allocation/deallocation of pre-assigned resource
blocks where these blocks are defined under the control of the TCB.
Under these rules, subjects and objects are assigned allocation
attributes so that the TCB can enforce appropriate quotas.  Finally,
resource allocation rules may prioritize subject access to resources
so that subjects with the highest priorities are given preferential
access to these resources.

4.2.1.3.2 Fault Tolerance

TBD.

4.2.1.4   Security Management

The TCB of an IT product must support security management components
to enable administrative users to set up and control the secure
operation of the product. These components refer to TCB functions
associated with both administrator and operator roles, and have both
access control, audit, and availability relevance.

Security management components refer to the following types of
functions:

a.        TCB generation, installation, configuration, and non- routine
maintenance (e.g., TCB manual recovery, installation of "patches"
correcting security flaws, repair of damaged TCB hardware and software
elements).

b.        Definition and update of user security characteristics (e.g.,
unique identifiers associated with user names, user accounts, per-user
policy attributes, system entry parameters, availability parameters or
resource quotas).

c.        Definition and update of security policy parameters (e.g.,
identification and authentication, system entry, access control, and
availability parameters).

d.        Routine control and maintenance of product resources (e.g.,
enable and disable peripheral devices, mounting of removable storage
media, backup and recovery of user objects, and routine maintenance of
TCB hardware and software elements).

e.        Auditing both privileged and unprivileged user actions, and
audit management (e.g., selection of audit events, management of audit
trails, audit trail analysis, and audit report generation).

The security management functions help counter the same threats as
those countered by the security policy functions (i.e.,
accountability, access control, and availability).  This is the case
because the security management functions implement a significant part
of all the system security policies. In addition, when the security
management functions are partitioned into different administrative
roles, they help limit the potential damage caused by unskilled or
corrupt administrators.

4.2.2     Reference Mediation

Functions that implement a security policy provide effective
protection against unauthorized access only if all references (i.e.,
denoted by <action; object(s) > tuples) issued by subjects are
directed by the TCB code to the appropriate security policy modules
for validation. Should such references be incorrectly directed, or not
directed at all, to the required policy modules, policy enforcement
will be incorrect, incomplete, or absent, despite correct and complete
policy implementation. This would allow unprivileged subjects to
bypass security policy in a variety of unauthorized ways (e.g., bypass
certain access checks for a subset of the objects and subjects, bypass
all checks for a type of object whose protection was assumed by
applications, retain access rights beyond their intended expiration
time, and/or bypass audit).

Note that the requirements of the reference mediation component are
independent of the particular policies supported by a product.

4.2.3     TCB Logical Protection

The protection of the TCB from external interference and tampering is
a fundamental component of any secure product.  Should unprivileged
subjects read or modify TCB elements (i.e., data structures and code),
the security policy might be circumvented or even modified in
potentially undetectable ways.

The reading of TCB internal variables, that is, variables that are not
part of any defined subject or object (e.g., internal TCB buffers,
table entries), would not be addressed by low- level product policies
defined solely in terms of subjects and objects. In this case, reading
by users or subjects outside the TCB would not be prohibited, even
though it could result in failure to support the organizational
policies. Similarly, modification of TCB internal variables may cause
(1) the introduction of miscreant code into the TCB, which can modify
product policies, (2) the modification of user and application-level
objects that depend on the consistency of the TCB internal variables,
(3) denial of service to users and applications, and/or (4) covert
transfer of information through the TCB in violation of
information-flow policy.  Unauthorized acquisition of privileges might
allow the reading and modification of TCB internal variables and
objects (e.g., password files, group and/or role definition files,
files defining security and/or integrity levels) and might allow
unprivileged users to execute privileged functions.

To provide TCB isolation, all references to TCB internal entities and
all access rights passed by unprivileged subjects to the TCB must be
mediated in a non-circumventable manner.  This particular form of
mediation is not specified as an access mediation requirement because
a cyclic dependency would be introduced between access mediation and
TCB protection. This is the case because the correct reference
mediation depends on TCB protection (see discussion in Chapter 7,
"Construction of Protection Profiles").

4.2.4     TCB Physical Protection

TCB physical protection components refer to restrictions of
unauthorized physical access to the TCB, and to deterrence of
unauthorized physical use, modification, or substitution of the TCB.

4.2.5     TCB Self-Checking

TCB self-checking functions are needed to detect the corruption of
protection-relevant code and data structures by various failures that
do not necessarily stop the product's operation (which would be
handled by TCB recoverability).  These checks must be performed
because these failures may not necessarily be prevented. Such failures
can occur either because of unforeseen failure modes and associated
oversights in the design of hardware, firmware, or software, or
because of malicious corruption of the TCB due to inadequate physical
TCB protection.

4.2.6     TCB Start-Up and Recovery

TCB recovery components refer to the functions that respond to
anticipated failures or discontinuity of operations. These functional
components cannot handle "unanticipated" failures or discontinuity of
operation, and manual administrative procedures must be employed for
such events.

Recovery components reconstruct TCB secure states or prevent
transitions to insecure states as a direct response to occurrences of
expected failures, discontinuity of operation or start-up. Failures
that must be generally anticipated include (1) actions failures (e.g.,
actions that fail to complete because they detect exceptional
conditions during their operation); (2) unmaskable action failures
that always cause a system crash (e.g., persistent inconsistency of
critical system tables, uncontrolled transfers within TCB code caused
by transient failures of hardware or firmware, power failures,
processor failures); (3) non-volatile media failures causing part or
all of the media representing TCB objects to become inaccessible or
corrupt (e.g., disk head crash, persistent read/write failure caused
by misaligned disk heads, worn-out magnetic coating, dust on the disk
surface); and (4) discontinuity of operation caused by erroneous
administrative action or lack of timely administrative action (e.g.,
unexpected shutdowns by turning off power, ignoring the exhaustion of
critical resources, inadequate installed configuration).

4.2.7     TCB Privileged Operation

Functions that limit the privileges available to the TCB are primarily
intended to limit the damage that can be caused by errors and failures
of TCB mechanisms. To accomplish this, it is necessary to limit the
interactions among privileged TCB components to a minimum such that
improper use of privileges by a TCB function, module, or action as a
consequence of failures or accidents will have limited or no effect on
other components. For example, the association of privileges with
different administrative commands facilitates the separation of
administrative roles. Similarly, the association of different
privileges with TCB components that have no functional interaction,
such as audit trail and password management components, limits the
possibility of unwarranted interaction. As a consequence, if a
penetration of a component takes place, the likelihood that other
unrelated components are also penetrated may be diminished. The finer
the granularity of privileges and of privilege association with TCB
functional components, actions of components, and administrative
roles, the less chance of damage caused by errors, failures,
accidents, and penetrations.

4.2.8     TCB Ease-of-Use

The notion that an IT product must include functions which facilitate
and enhance the use of basic protection mechanisms is motivated by two
related observations. First, if a product's protection mechanisms are
complex, difficult to use, or have inadequate performance, they will
not be used by system administrators or by application programmers.
The mere presence of (potentially elaborate) security policies in a
product is insufficient to facilitate the development or use of secure
applications and the secure management of a product.  An IT product
may still be vulnerable to inadvertent errors caused by difficulties
in using the product's protection functions. Second, functions that
facilitate and enhance the use of basic protection mechanisms may be
difficult to retrofit into a product because of their pervasiveness.
Instead, to be effective, these components must be included in the
initial product design.

4.3       Rated Functional Components

Functional components can be selected for inclusion in a profile based
on environment-specific requirements (see Chapter 3). To facilitate
this selection and compatibility with existing criteria, each of the
functional components of a TCB is rated. The rating of the TCB
functional components is based on the following four parameters: (1)
the scope of the requirement application, (2) the granularity of the
requirement, (3) the coverage of a requirement's features, and (4) the
strength of the requirement.

Scope. The scope of a requirement determines the entity subset to
which the requirement applies; i.e., (1) to all the users, subjects
and objects, (2) to all the TCB functions and application programming
interfaces, (3) to all TCB elements (i.e., hardware, firmware,
software, data structures and code), and (4) to all TCB
configurations, or only to a defined subset thereof. For example, the
access control, audit, availability, reference mediation, and
ease-of-use components may refer only to certain subsets of objects
and configurations; trusted path may include only certain subsets of
the TCB commands (only login commands but not change-of- password
commands or change-role commands); and the recovered secure state of
the TCB may include all the user objects or only a defined set.

Granularity. The granularity of a requirement determines the
entity-attribute subset to which the requirement applies (e.g.,
whether the requirement applies to all attributes of users, subjects
or objects, or only to a defined subset of attributes). Access
control, audit, and reference mediation may include only certain
attributes of subjects and objects, but not others. For example,
access control, audit, and reference mediation may refer to access
rights for objects and subjects, but not to object and subject status
variables; authentication may be based on group or role identities,
but not on individual user identity; privileges may be associated with
roles, but not with individual TCB functions or actions (e.g.,
function invocations).

Coverage. The coverage of a requirement determines the feature subset
included in that requirement. This is illustrated in the following
examples:

a.        Access control may include only discretionary features of
authorization, administration of policy attributes (e.g., user
identities, groups, security and/or integrity levels, roles), and
object and/or subject creation and destruction, but not encapsulation.

b.        Audit may include only post-processing analysis tools for
detecting accumulation of events (e.g., multiple failed logins) but
not real-time alarms.

c.        Availability may include resource restrictions but not
prioritized resource allocation.

d.        TCB protection may include only isolation features but not TCB
consistency features.

e.        Physical TCB protection may include only attack detection and
deterrence features, but not attack countermeasures.

f.        TCB self-checking may be periodical or continuous.

g.        Recovery may be only manual, not automatic.

h.        The ease-of-use mechanisms may include administrative and
application programming support features but may not minimize
performance penalties of using them.

Strength. The strength of a requirement supported by a function
defines the conditions under which that function withstands a defined
attack or tolerates failures. For example, the user authentication
function may withstand certain kinds of impersonation attacks but not
others (e.g., the password complexity rules may counter human guessing
attacks but not automated attacks using a dictionary). Other examples
include conditions in which conjunction of independent user
authentication mechanisms yields stronger authentication than the use
of either mechanism alone, or a certain encryption mechanism for
one-way function computation may have different work factor
characteristics than other encryption mechanisms. Similarly, the TCB
physical protection characteristics may vary according to different
work factor characteristics.

The strength of a requirement may also be used to differentiate access
control policies. For example, non- discretionary access controls are
typically stronger than discretionary access controls with respect to
their ability to counter attacks mounted by miscreant application code
executing programs on behalf of an unsuspecting user. However, this
notion of strength is not used to rate individual access control
components. Instead, it is used in the analysis of the protection
profiles (i.e., in assessing whether a chosen access control policy
can counter specific threats).

Rating implies some form of ordering. The independent application of
the scope, granularity, coverage, and strength parameters to
distinguish between the levels of functional components may not
necessarily lead to a linear ordering among these levels. To obtain
such an ordering these rating parameters are applied in the order in
which they are listed above. Whenever all rating parameters apply to a
given functional component, lower levels are distinguished by scope
and granularity and higher levels by coverage and strength.  However,
this ordering of the rating parameters does not imply that each
component level represents a component extension resulting from the
application of a single rating parameter.  Instead, a component level
change may represent a component extension resulting from the
application of several rating parameters characterizing the intent of
a functional component (e.g., support of a specific policy,
compatibility with existing standards and guidelines).

The above parameters and ordering are chosen to enable the rating of
functional components at levels of detail comparable to those of
existing standards (e.g., TCSEC, CTCPEC, ITSEC), thereby enabling
potential harmonization with these standards. However, the rating of
functional components does not restrict a profile developer to the
choices of rated components presented. As illustrated in Chapter 7, a
profile developer can synthesize new components from existing ones
(e.g., by assigning a specific meaning to a generic requirement, by
refining a requirement of a component, by augmenting a lower rated
component with an individual requirement of a higher rated component)
within the constraints of dependency analysis.

The means of rating each component are summarized in Table 2.

               Table 2. Rated Functional Components

.--------------------------------------------------------------------------.
|                                     |       | Granu- | Cover- |          |
|       Functional Component          | Scope | larity | age    | Strength |
|=====================================|=======|========|========|==========|
| Security Policy Support             |       |        |        |          |
|-------------------------------------+-------+--------+--------+----------|
|   Accountability                    |       |        |        |          |
|-------------------------------------+-------+--------+--------+----------|
|     Identification & Authentication |       |        |   X    |    X     |
|-------------------------------------+-------+--------+--------+----------|
|     System Entry                    |       |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
|     Trusted Path                    |   X   |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
|     Audit                           |       |        |   X    |    X     |
|-------------------------------------+-------+--------+--------+----------|
|   Access Control                    |   X   |    X   |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
|   Covert Channel Handling           |   X   |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
|   Availability                      |       |        |        |          |
|-------------------------------------+-------+--------+--------+----------|
|     Resource Allocation             |   X   |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
|     Fault Tolerance                 |  ---  |   ---  |  ---   |   ---    |
|-------------------------------------+-------+--------+--------+----------|
|   Security Management               |       |        |   X    |    X     |
|-------------------------------------+-------+--------+--------+----------|
| Reference Mediation                 |   X   |    X   |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
| TCB Logical Protection              |       |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
| TCB Physical Protection             |       |        |   X    |    X     |
|-------------------------------------+-------+--------+--------+----------|
| TCB Self-checking                   |   X   |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
| TCB Start-up and Recovery           |       |        |   X    |          |
|-------------------------------------+-------+--------+--------+----------|
| TCB Privileged Operation            |       |    X   |        |          |
|-------------------------------------+-------+--------+--------+----------|
| TCB Ease-of-Use                     |   X   |        |   X    |          |
`--------------------------------------------------------------------------'


4.3.1     Rated Identification & Authentication Components

Identification and authentication is a required component for most
security policies. Without this component, the threat of unauthorized
or inappropriate system entry and access to resources could not be
countered. However, weak identification and authentication functions
could not counter the threat of impersonation attacks by unauthorized
users. For this reason, identification and authentication components
are noted based on both the coverage and strength of the
authentication features. Furthermore, the combined use of more than
one type of authentication can provide greater control over
unauthorized access.

The features covered at level I&A-1 include only minimal forms of
individual user authentication. This level of I&A is intended for use
in products with limited capabilities, such as automated guards, where
basic I&A and system-entry audit are the primary functions supported.
In contrast, the features of level I&A-2 include policy attributes
that are determined on an individual basis, thereby providing basic
authorization. The use of this level is anticipated in most operating
systems where policy attributes, such as groups and security levels,
need to be authenticated for system entry.  Level I&A-3 extends the
feature coverage of level I&A-2 by providing a well-defined set of
responses to authentication exceptions and a capability to maintain,
protect and display user status information. The use of this level is
anticipated to include products with well-defined access control and
availability policies as well as system-entry control. The level I&A-4
extends the feature coverage of level I&A-3 by requiring that
installable mechanisms be supported, and that a policy be enforced
that assigns a specific authentication procedure to each user, or to a
policy attribute of each user.  Level I&A-5 strengthens level I&A-4 by
requiring that two or more identification and authentication
mechanisms authenticate certain user identities or other policy
attributes.

I&A-1 Minimal Identification and Authentication

1.        The TCB shall require users to identify themselves to it
before beginning to perform any other actions that the TCB is expected
to mediate.  The TCB shall be able to enforce individual
accountability by providing the capability to uniquely identify each
individual user. The TCB shall also provide the capability of
associating this identity with all auditable actions taken by that
individual.

2.        The TCB shall use a protected mechanism (e.g., passwords) to
authenticate the user's identity.

3.        The TCB shall protect authentication data so that it cannot be
used by any unauthorized user.

I&A-2 Identification, Authentication, and Authorization

1.        The TCB shall require users to identify themselves to it
before beginning to perform any other actions that the TCB is expected
to mediate.  The TCB shall be able to enforce individual
accountability by providing the capability to uniquely identify each
individual user. The TCB shall also provide the capability of
associating this identity with all auditable actions taken by that
individual.

2.        The TCB shall maintain authentication data that includes
information for verifying the identity of individual users (e.g.,
passwords) as well as information for determining the product policy
attributes of individual users (e.g., groups, roles, security and/or
integrity levels, time intervals, location). These data shall be used
by the TCB to authenticate the user's identity and to ensure that the
attributes of subjects external to the TCB that may be created to act
on behalf of the individual user satisfy the product policy (e.g., the
subject security level and authorizations are dominated by the
clearance and authorization of that user).

3.        The TCB shall protect authentication data so that it cannot be
used by any unauthorized user.

I&A-3 Exception-Controlled Identification and Authentication

1.        The TCB shall require users to identify themselves to it
before beginning to perform any other actions that the TCB is expected
to mediate.  The TCB shall be able to enforce individual
accountability by providing the capability to uniquely identify each
individual user. The TCB shall also provide the capability of
associating this identity with all auditable actions taken by that
individual.

2.        The TCB shall maintain authentication data that includes
information for verifying the identity of individual users (e.g.,
passwords) as well as information for determining the product policy
attributes of individual users (e.g., groups, roles, security and/or
integrity levels, time intervals, location). These data shall be used
by the TCB to authenticate the user's identity and to ensure that the
attributes of subjects external to the TCB that may be created to act
on behalf of the individual user satisfy the product policy (e.g., the
subject security level and authorizations are dominated by the
clearance and authorization of that user).

3.        The TCB shall protect authentication data so that it cannot be
used by any unauthorized user.  The TCB shall appear to perform the
entire user authentication procedure even if the user identification
entered is invalid.

The TCB shall end the attempted login session if the user performs the
authentication procedure incorrectly for a number of successive times
(i.e., a threshold) specified by an authorized system administrator. A
default threshold shall be defined. When the threshold is exceeded,
the TCB shall send an alarm message to the system console and/or to
the administrator's terminal, log this event in the audit trail, and
delay the next login by an interval of time specified by the
authorized system administrator. A default time interval shall be
defined. The TCB shall provide a protected mechanism to disable the
user identity or account when the threshold of successive,
unsuccessful login attempts is violated more than a number of times
specified by the administrator.  By default, this mechanism shall be
disabled (as it may cause unauthorized denial of service).

4.        The TCB shall have the capability to maintain, protect, and
display status information for all active users (e.g., users currently
logged on, current policy attributes) and of all user accounts (i.e.,
enabled or disabled user identity or account).

I&A-4 Installable I&A Mechanisms

1.        The TCB shall require users to identify themselves to it
before beginning to perform any other actions that the TCB is expected
to mediate.  The TCB shall be able to enforce individual
accountability by providing the capability to uniquely identify each
individual user. The TCB shall also provide the capability of
associating this identity with all auditable actions taken by that
individual. Furthermore, the TCB shall have the capability of
associating a unique identity with each privileged subject.

2.        The TCB shall maintain authentication data that includes
information for verifying the identity of individual users (e.g.,
passwords) as well as information for determining the product policy
attributes of individual users (e.g., groups, roles, security and/or
integrity levels, time intervals, location). These data shall be used
by the TCB to authenticate the user's identity and to ensure that the
attributes of subjects external to the TCB that may be created to act
on behalf of the individual user satisfy the product policy (e.g., the
subject security level and authorizations are dominated by the
clearance and authorization of that user).

The TCB shall be able to incorporate and use installable
authentication mechanisms, such as token-based cards, biometrics, or
trusted third- party mechanisms, in the place of or in addition to the
default authentication (e.g., password- based) mechanism, to
authenticate the user. The TCB shall be able to enforce separate user
authentication procedures based on specific policy attributes.

3. The TCB shall protect authentication data so that it cannot be used
by any unauthorized user.  The TCB shall appear to perform the entire
user authentication procedure even if the user identification entered
is invalid.

The TCB shall end the attempted login session if the user performs the
authentication procedure incorrectly for a number of successive times
(i.e., a threshold) specified by an authorized system administrator. A
default threshold shall be defined. When the threshold is exceeded,
the TCB shall send an alarm message to the system console and/or to
the administrator's terminal, log this event in the audit trail, and
delay the next login by an interval of time specified by the
authorized system administrator. A default time interval shall be
defined. The TCB shall provide a protected mechanism to disable the
user identity or account when the threshold of successive,
unsuccessful login attempts is violated more than a number of times
specified by the administrator.  By default, this mechanism shall be
disabled (as it may cause unauthorized denial of service).

4.        The TCB shall have the capability to maintain, protect, and
display status information for all active users (e.g., users currently
logged on, current policy attributes) and of all user accounts (i.e.,
enabled or disabled user identity or account).

I&A-5 Multiple I&A Mechanisms

1.        The TCB shall require users to identify themselves to it
before beginning to perform any other actions that the TCB is expected
to mediate.  The TCB shall be able to enforce individual
accountability by providing the capability to uniquely identify each
individual user. The TCB shall also provide the capability of
associating this identity with all auditable actions taken by that
individual. Furthermore, the TCB shall have the capability of
associating a unique identity with each privileged subject.

2.        The TCB shall maintain authentication data that includes
information for verifying the identity of individual users (e.g.,
passwords) as well as information for determining the product policy
attributes of individual users (e.g., groups, roles, security and/or
integrity levels, time intervals, location). These data shall be used
by the TCB to authenticate the user's identity and to ensure that the
attributes of subjects external to the TCB that may be created to act
on behalf of the individual user satisfy the product policy (e.g., the
subject security level and authorizations are dominated by the
clearance and authorization of that user).

The TCB shall be able to incorporate and use installable
authentication mechanisms, such as token-based cards, biometrics, or
trusted third- party mechanisms, in the place of or in addition to the
default authentication (e.g., password- based) mechanism, to
authenticate the user. The TCB shall be able to enforce separate user
authentication procedures based on specific policy attributes. Each
user shall be authenticated by two or more types of authentication
mechanisms; i.e., the authentication is successful only if all
mechanisms individually indicate successful authentication. The TCB
shall be able to enforce the use of these mechanisms on a
policy-attribute basis.

3. The TCB shall protect authentication data so that it cannot be used
by any unauthorized user.  The TCB shall appear to perform the entire
user authentication procedure even if the user identification entered
is invalid.

The TCB shall end the attempted login session if the user performs the
authentication procedure incorrectly for a number of successive times
(i.e., a threshold) specified by an authorized system administrator. A
default threshold shall be defined. When the threshold is exceeded,
the TCB shall send an alarm message to the system console and/or to
the administrator's terminal, log this event in the audit trail, and
delay the next login by an interval of time specified by the
authorized system administrator. A default time interval shall be
defined. The TCB shall provide a protected mechanism to disable the
user identity or account when the threshold of successive,
unsuccessful login attempts is violated more than a number of times
specified by the administrator.  By default, this mechanism shall be
disabled (as it may cause unauthorized denial of service).

4.        The TCB shall have the capability to maintain, protect, and
display status information for all active users (e.g., users currently
logged on, current policy attributes) and of all user accounts (i.e.,
enabled or disabled user identity or account).

4.3.2     Rated System Entry Components

System entry control helps enhance accountability by providing a time,
space, and mode-of-entry context to each action for which the user is
held accountable. The additional constraints of system entry control
help gain increased confidence that the proper user is held
responsible for a set of authorized actions.

System entry by an identified and authenticated user shall be
controlled by the TCB. The conditions under which a user subject
(e.g., process) is created on behalf of an identified and
authenticated user shall be specified. The specification of these
conditions shall be based on users' policy attributes (e.g., groups,
roles, security and/or integrity levels, time intervals, location).

The system-entry components are rated based on the coverage of
specific conditions of system entry. For example, the features covered
at level SE-1 include only basic forms of system entry (e.g., system
entry conditions based on group or role membership, and security
and/or integrity levels). This level is intended for use in most IT
products that support system-entry control. Products that do not
implement explicit system-entry control rely on the identification and
authentication mechanism as the default system entry control.  The
features of level SE-2 include, in addition to the entry conditions of
level SE-1, entry conditions defined in terms of the time and the
location of entry. The level SE-3 extends the feature coverage of
level SE-2 by requiring the explicit user ability to lock and unlock
the user's own interactive sessions. Primitive forms of such locking
by terminating and restarting a session are considered to have a
substantially narrower coverage than those intended at this level and
may be used only at lower levels.

SE-1 Basic System Entry Control

1.        Prior to initiating the system login procedure, the TCB shall
display an advisory warning message to the user regarding unauthorized
use of the system and the possible consequences of failure to heed
this warning.

2.        Before system entry is granted to a user, the identity of that
user shall be authenticated by the TCB. If the TCB is designed to
support multiple login sessions per user identity, the TCB shall
provide a protected mechanism to enable limiting the number of login
sessions per user identity or account with a default of a single login
session.

3.        The TCB shall grant system entry only in accordance with the
authenticated user's policy attributes. The system entry conditions
shall be expressed in terms of users' policy attributes (e.g.,
greatest lower bound and least upper bound computations including the
user levels, terminal levels, system levels). If no explicit system-
entry conditions are defined, the system-entry default shall be used
(e.g., the correct user authentication).

4.        The TCB shall provide a protected mechanism that enables
authorized administrators to display and modify the policy attributes
used in system-entry control for each user. The conditions under which
an unprivileged user may display these attributes shall be specified.

5.        Upon a user's successful entry to the system, the TCB shall
display the following data to the user and shall not remove them
without user intervention: (1) the date, time, means of access and
port of entry of the last successful entry to the system; and (2) the
number of successive, unsuccessful attempts to access the system since
the last successful entry by the identified user.

6.        The TCB shall either lock or terminate an interactive session
after an administrator- specified interval of user inactivity. The
default value for this interval shall be specified.

SE-2 Time and Location Based Entry Control

1.        Prior to initiating the system login procedure, the TCB shall
display an advisory warning message to the user regarding unauthorized
use of the system and the possible consequences of failure to heed
this warning.

2.        Before system entry is granted to a user, the identity of that
user shall be authenticated by the TCB. If the TCB is designed to
support multiple login sessions per user identity, the TCB shall
provide a protected mechanism to enable limiting the number of login
sessions per user identity or account with a default of a single login
session.

3.        The TCB shall grant system entry only in accordance with the
authenticated user's policy attributes. The system entry conditions
shall be expressed in terms of users' policy attributes (e.g.,
greatest lower bound and least upper bound computations including the
user levels, terminal levels, system levels). If no explicit system-
entry conditions are defined, the system-entry default shall be used
(e.g., the correct user authentication). The TCB shall provide a
protected mechanism to allow or deny system entry based on specified
ranges of time. Entry conditions using these ranges shall be specified
using time-of-day, day-of-week, and calendar dates.

The TCB shall provide a protected mechanism to allow or deny system
entry based on location or port of entry. Conditions for system entry
via dial-up lines (e.g., lists of user identities authorized to enter
the system via dial-up lines), if any, shall be specified.

4.        The TCB shall provide a protected mechanism that enables
authorized administrators to display and modify the policy attributes
used in system-entry control for each user. The conditions under which
an unprivileged user may display these attributes shall be specified.

5.        Upon a user's successful entry to the system, the TCB shall
display the following data to the user and shall not remove them
without user intervention: (1) the date, time, means of access and
port of entry of the last successful entry to the system; and (2) the
number of successive, unsuccessful attempts to access the system since
the last successful entry by the identified user.

6.        The TCB shall either lock or terminate an interactive session
after an administrator- specified interval of user inactivity. The
default value for this interval shall be specified.

SE-3 Session Locking and Unlocking

1.        Prior to initiating the system login procedure, the TCB shall
display an advisory warning message to the user regarding unauthorized
use of the system and the possible consequences of failure to heed
this warning.

2.        Before system entry is granted to a user, the identity of that
user shall be authenticated by the TCB. If the TCB is designed to
support multiple login sessions per user identity, the TCB shall
provide a protected mechanism to enable limiting the number of login
sessions per user identity or account with a default of a single login
session.

3.        The TCB shall grant system entry only in accordance with the
authenticated user's policy attributes. The system entry conditions
shall be expressed in terms of users' policy attributes (e.g.,
greatest lower bound and least upper bound computations including the
user levels, terminal levels, system levels). If no explicit system-
entry conditions are defined, the system-entry default shall be used
(e.g., the correct user authentication). The TCB shall provide a
protected mechanism to allow or deny system entry based on specified
ranges of time. Entry conditions using these ranges shall be specified
using time-of-day, day-of-week, and calendar dates.

The TCB shall provide a protected mechanism to allow or deny system
entry based on location or port of entry. Conditions for system entry
via dial-up lines (e.g., lists of user identities authorized to enter
the system via dial-up lines), if any, shall be specified.

4.        The TCB shall provide a protected mechanism that enables
authorized administrators to display and modify the policy attributes
used in system-entry control for each user. The conditions under which
an unprivileged user may display these attributes shall be specified.

5.        Upon a user's successful entry to the system, the TCB shall
display the following data to the user and shall not remove them
without user intervention: (1) the date, time, means of access and
port of entry of the last successful entry to the system; and (2) the
number of successive, unsuccessful attempts to access the system since
the last successful entry by the identified user.

6.        The TCB shall either lock or terminate an interactive session
after an administrator- specified interval of user inactivity. The
default value for this interval shall be specified. The TCB shall also
provide a mechanism for user- initiated locking of the user's own
interactive sessions (e.g., keyboard locking) that includes: (1)
clearing or over-writing display devices to make the current contents
unreadable; (2) requiring user authentication prior to unlocking the
session; and (3) disabling any activity of the user's data
entry/display devices other than unlocking the session.

4.3.3     Rated Trusted Path Components

The trusted path components are rated based on the scope and coverage
of the trusted-path interactions (e.g., user-TCB interactions
including the number and types of commands included in the trusted
path). Primitive forms of trusted path, such as terminating a login
session or powering off a workstation to guarantee trusted path
interaction, are considered to have a substantially narrower scope and
coverage than those enabling trusted path within a login session.

The rating of the trusted path components intends to guarantee at the
lowest level, TP-1, that a trusted communication channel exists from
the user to the TCB for initial identification purposes. For higher
levels, both the scope and the coverage of trusted path are extended.
At level TP-2, trusted path includes not only login commands but also
other commands that require protection (e.g., change of subject policy
attributes). Thus, the TCB guarantees the invocation of a trusted
communication channel from the user to the TCB for trusted sensitive
commands and their parameters. At level TP-3, the coverage of the
trusted path features is enlarged to enable trusted applications to
communicate with the user for the validation of specific TCB mediated
tasks (e.g., change of policy attributes, change of user registration
parameters). This means that a trusted application can use a separate,
trusted display feature, and that commands of the trusted application
can be introduced in the user-initiated trusted path.

TP-1 Login Trusted Path

The TCB shall support a trusted communication path between itself and
the user for initial identification and authentication. Communications
via this path shall be initiated exclusively by a user.

TP-2 Trusted User-to-TCB Communication

The TCB shall support a trusted communication path between itself and
users for use whenever a positive user-to-TCB connection is required
(e.g., login, change of policy attributes).  Communications via this
trusted path shall be activated exclusively by a user or the TCB and
shall be logically isolated and unmistakably distinguishable from
other communication paths.

TP-3 Trusted Application-to-User Communication

The TCB shall support a trusted communication path between itself and
users for use whenever a positive user-to-TCB connection is required
(e.g., login, change of subject or object attributes).  Communications
via this trusted path shall be activated exclusively by a user or the
TCB and shall be logically isolated and unmistakably distinguishable
from other communication paths.The TCB shall also support a trusted
communication path between trusted applications and users when a
trusted application-to-user connection is required (e.g., display or
input of application sensitive data).

4.3.4     Rated Audit Components

The audit components are rated based on the coverage of the
event-selection mechanisms and audit-analysis tools, and the strength
of monitoring user actions (e.g., degree to which active, real-time
monitoring is possible.) The audit requirements that follow are
divided into four parts: first, the protection of the audit trail and
the control of access to audit data; second, the definition of the
auditable events; third, format and recording of the audit data; and
fourth, the selection of audit events, and audit-data management,
analysis, and reporting.

Level AD-1 includes minimal audit requirements; i.e., requirements
that must be satisfied by all systems (to the extent to which they
incorporate relevant policy functions).  The audit coverage is
extended at audit level AD-2 by extending the types of auditable
events and by the inclusion of additional audit management functions.
Audit function coverage is further extended at level AD-3 by the
requirements for availability of trusted audit tools that enhance
audit control (e.g., tools offering a graphical interface to the
auditor, tools that enable the auditor to perform consistency checking
of the selected events and of audit trails, tools that enhance the
ease-of-auditing). Level AD-4 extends the coverage of the audit
features of level AD-3 by requiring detection of accumulation of
security-relevant events and generation of alarms whenever such events
are detected. AD-5 represents an added level of auditing strength
since it requires that auditing be performed in real-time. Thus, real-
time intrusions can be detected.

AD-1 - Minimal Audit

1.        The TCB shall be able to create, maintain, and protect from
modification or unauthorized access or destruction an audit trail of
accesses to the objects it protects. The audit data shall be protected
by the TCB so that read access to it is limited to those who are
authorized for audit data.

2.        The TCB shall be able to record the following types of events:

          - use of the identification and authentication mechanisms;

          - introduction of objects into a user's address space (e.g.,
file open, program initiation), and deletion of objects;

          - actions taken by computer operators and system
administrators and/or system security officers.

If availability policies are supported, attempts to circumvent or
otherwise gain unauthorized access to resource-allocation limits shall
be audited.

If non-discretionary access control policies are supported, the TCB
shall be able to record any override of human-readable output
markings. When the non-discretionary access control policies aim to
control the flow of information between subjects, the TCB shall also
be able to audit the identified event that may be used in the
exploitation of covert channels.

3.        For each recorded event, the audit record shall identify: date
and time of the event, user, type of event, and success or failure of
the event. For identification/authentication events the origin of
request (e.g., terminal ID) shall be included in the audit record. For
events that introduce an object into a user's address space and for
object deletion events the audit record shall include the name and
policy attributes of the object (e.g., object security level).

4.        The system administrator shall be able to selectively audit
the actions of one or more users based on individual identity and/or
object policy attributes (e.g., object security level).

AD-2 Basic Audit

1.        The TCB shall be able to create, maintain, and protect from
modification or unauthorized access or destruction an audit trail of
accesses to the objects it protects. The audit data shall be protected
by the TCB so that read access to it is limited to those who are
authorized for audit data.

2.        The TCB shall be able to record the following types of events:

          - use of the identification and authentication mechanisms, and
system entry events;

          - access control events selectable on a per user, per subject,
per object, and/or per policy attribute basis; i.e., introduction of
objects into a user's address space (e.g., file open, program
initiation), creation and deletion of subjects and objects;
distribution and revocation of access rights; changes of subject and
object policy attributes; acquisition and deletion of system
privileges;

          -actions taken by computer operators and system administrators
and/or system security officers; i.e., privileged operations such as
the modification of TCB elements; accesses to TCB objects; changes of
policy attributes of users, TCB configuration and security
characteristics, and system privileges; selection and modification of
audited events.

The events that are auditable by default, and those that are required
for successful auditing of other events, which may not be disabled,
shall be defined. The TCB shall provide a protected mechanism that
displays the currently selected events and their defaults. The use of
this mechanism shall be restricted to authorized system
administrators.

If availability policies are supported, attempts to circumvent or
otherwise gain unauthorized access to resource-allocation limits shall
be audited.

If non-discretionary access control policies are supported, the TCB
shall be able to record any override of human-readable output
markings. When the non-discretionary access control policies aim to
control the flow of information between subjects, the TCB shall also
be able to audit the identified event that may be used in the
exploitation of covert channels.

3.        For each recorded event, the audit record shall identify: date
and time of the event, user, type of event, and success or failure of
the event. For identification/authentication events the origin of
request (e.g., terminal ID) shall be included in the audit record. For
events that introduce an object into a user's address space and for
object deletion events the audit record shall include the name and
policy attributes of the object (e.g., object security level).

4.        The TCB shall provide a protected mechanism to turn auditing
on and off, and to select and change the events to be audited and
their defaults, during the system operation. The use of this mechanism
shall be restricted to authorized system administrators. The system
administrator shall be able to selectively audit the actions of one or
more users based on individual identity and/or object policy
attributes (e.g., object security level). Audit review tools shall be
available to authorized system administrators to assist in the
inspection and review of audit data, and shall be protected from
unauthorized use, modification, or destruction.

The TCB shall also provide protected audit-trail management functions
that shall enable:

          -creation, destruction, and emptying of audit trails; use of
warning points regarding the size of the audit data, and modification
of the audit trail size;

          -formatting and compressing of event records;

          -displaying of formatted audit trail data; and

          -maintaining the consistency of the audit trail data after
system failures and discontinuity of operation.

AD-3 Audit Tools

1.        The TCB shall be able to create, maintain, and protect from
modification or unauthorized access or destruction an audit trail of
accesses to the objects it protects. The audit data shall be protected
by the TCB so that read access to it is limited to those who are
authorized for audit data.

2.        The TCB shall be able to record the following types of events:

          - use of the identification and authentication mechanisms, and
system entry events;

          - access control events selectable on a per user, per subject,
per object, and/or per policy attribute basis; i.e., introduction of
objects into a user's address space (e.g., file open, program
initiation), creation and deletion of subjects and objects;
distribution and revocation of access rights; changes of subject and
object policy attributes; acquisition and deletion of system
privileges;

          -actions taken by computer operators and system administrators
and/or system security officers; i.e., privileged operations such as
the modification of TCB elements; accesses to TCB objects; changes of
policy attributes of users, TCB configuration and security
characteristics, and system privileges; selection and modification of
audited events.

The events that are auditable by default, and those that are required
for successful auditing of other events, which may not be disabled,
shall be defined. The TCB shall provide a protected mechanism that
displays the currently selected events and their defaults. The use of
this mechanism shall be restricted to authorized system
administrators.

If availability policies are supported, attempts to circumvent or
otherwise gain unauthorized access to resource-allocation limits shall
be audited.

If non-discretionary access control policies are supported, the TCB
shall be able to record any override of human-readable output
markings. When the non-discretionary access control policies aim to
control the flow of information between subjects, the TCB shall also
be able to audit the identified event that may be used in the
exploitation of covert channels.

3.        For each recorded event, the audit record shall identify: date
and time of the event, user, type of event, and success or failure of
the event. For identification/authentication events the origin of
request (e.g., terminal ID) shall be included in the audit record. For
events that introduce an object into a user's address space and for
object deletion events the audit record shall include the name and
policy attributes of the object (e.g., object security level).

4.        The TCB shall provide a protected mechanism to turn auditing
on and off, and to select and change the events to be audited and
their defaults, during the system operation. The use of this mechanism
shall be restricted to authorized system administrators. The system
administrator shall be able to selectively audit the actions of one or
more users based on individual identity and/or object policy
attributes (e.g., object security level). Audit review tools shall be
available to authorized system administrators to assist in the
inspection and review of audit data, and shall be protected from
unauthorized use, modification, or destruction.

The TCB shall provide tools for audit data processing. These shall
include specifically designed tools: for verifying the consistency of
the audit data; for verifying the selection of audit events; for audit
trail management. The audit trail management tools shall enable:

          -creation, destruction, and emptying of audit trails; use of
warning points regarding the size of the audit data, and modification
of the audit trail size;

          -formatting and compressing of event records;

          -displaying of formatted audit trail data; and

          -maintaining the consistency of the audit trail data after
system failures and discontinuity of operation.

5.        Audit review tools shall be available to authorized users to
assist in the inspection and review of audit data, and shall be
protected from unauthorized modification or destruction. The TCB shall
also provide tools for post-collection audit analysis (e.g., intrusion
detection) that shall be able to selectively review (1) the actions of
one or more users (e.g., identification, authentication, system-entry,
and access control actions); (2) the actions performed on a specific
object or system resource; and (3) all, or a specified set of, audited
exceptions; and (4) actions associated with a specific policy
attribute.The review tools shall be able to operate concurrently with
the system operation.

AD-4 Audit Alarms

1.        The TCB shall be able to create, maintain, and protect from
modification or unauthorized access or destruction an audit trail of
accesses to the objects it protects. The audit data shall be protected
by the TCB so that read access to it is limited to those who are
authorized for audit data.

2.        The TCB shall be able to record the following types of events:

          - use of the identification and authentication mechanisms, and
system entry events;

          - access control events selectable on a per user, per subject,
per object, and/or per policy attribute basis; i.e., introduction of
objects into a user's address space (e.g., file open, program
initiation), creation and deletion of subjects and objects;
distribution and revocation of access rights; changes of subject and
object policy attributes; acquisition and deletion of system
privileges;

          -actions taken by computer operators and system administrators
and/or system security officers; i.e., privileged operations such as
the modification of TCB elements; accesses to TCB objects; changes of
policy attributes of users, TCB configuration and security
characteristics, and system privileges; selection and modification of
audited events.

The events that are auditable by default, and those that are required
for successful auditing of other events, which may not be disabled,
shall be defined. The TCB shall provide a protected mechanism that
displays the currently selected events and their defaults. The use of
this mechanism shall be restricted to authorized system
administrators.

If availability policies are supported, attempts to circumvent or
otherwise gain unauthorized access to resource-allocation limits shall
be audited.

If non-discretionary access control policies are supported, the TCB
shall be able to record any override of human-readable output
markings. When the non-discretionary access control policies aim to
control the flow of information between subjects, the TCB shall also
be able to audit the identified event that may be used in the
exploitation of covert channels.

The TCB shall contain a mechanism that is able to monitor the
occurrence or accumulation of auditable events that may indicate an
imminent violation of the product's security policy. This mechanism
shall be able to immediately notify the security administrator when
thresholds are exceeded, and, if the occurrence or accumulation of
these security relevant events continues, the system shall take the
least disruptive action to terminate the event. That is, the TCB shall
be able to send a message to the system console and/ or the
administrator's terminal when thresholds are exceeded, or when audit
records are unable to be recorded, and, if the occurrence or
accumulation of these security-relevant events continue, the TCB shall
generate an alarm (this shall be the default) or initiate a secure
system shutdown.

3.        For each recorded event, the audit record shall identify: date
and time of the event, user, type of event, and success or failure of
the event. For identification/authentication events the origin of
request (e.g., terminal ID) shall be included in the audit record. For
events that introduce an object into a user's address space and for
object deletion events the audit record shall include the name and
policy attributes of the object (e.g., object security level).

4.        The TCB shall provide a protected mechanism to turn auditing
on and off, and to select and change the events to be audited and
their defaults, during the system operation. The use of this mechanism
shall be restricted to authorized system administrators. The system
administrator shall be able to selectively audit the actions of one or
more users based on individual identity and/or object policy
attributes (e.g., object security level). Audit review tools shall be
available to authorized system administrators to assist in the
inspection and review of audit data, and shall be protected from
unauthorized use, modification, or destruction.

The TCB shall provide tools for audit data processing. These shall
include specifically designed tools: for verifying the consistency of
the audit data; for verifying the selection of audit events; for audit
trail management. The audit trail management tools shall enable:

          -creation, destruction, and emptying of audit trails; use of
warning points regarding the size of the audit data, and modification
of the audit trail size;

          -formatting and compressing of event records;

          -displaying of formatted audit trail data; and

          -maintaining the consistency of the audit trail data after
system failures and discontinuity of operation.

5.        Audit review tools shall be available to authorized users to
assist in the inspection and review of audit data, and shall be
protected from unauthorized modification or destruction. The TCB shall
also provide tools for post-collection audit analysis (e.g., intrusion
detection) that shall be able to selectively review (1) the actions of
one or more users (e.g., identification, authentication, system-entry,
and access control actions); (2) the actions performed on a specific
object or system resource; and (3) all, or a specified set of, audited
exceptions; and (4) actions associated with a specific policy
attribute.The review tools shall be able to operate concurrently with
the system operation.

AD-5 Real-Time Intrusion Detection

1.        The TCB shall be able to create, maintain, and protect from
modification or unauthorized access or destruction an audit trail of
accesses to the objects it protects. The audit data shall be protected
by the TCB so that read access to it is limited to those who are
authorized for audit data.

2.        The TCB shall be able to record the following types of events:

          - use of the identification and authentication mechanisms, and
system entry events;

          - access control events selectable on a per user, per subject,
per object, and/or per policy attribute basis; i.e., introduction of
objects into a user's address space (e.g., file open, program
initiation), creation and deletion of subjects and objects;
distribution and revocation of access rights; changes of subject and
object policy attributes; acquisition and deletion of system
privileges;

          -actions taken by computer operators and system administrators
and/or system security officers; i.e., privileged operations such as
the modification of TCB elements; accesses to TCB objects; changes of
policy attributes of users, TCB configuration and security
characteristics, and system privileges; selection and modification of
audited events.

The events that are auditable by default, and those that are required
for successful auditing of other events, which may not be disabled,
shall be defined. The TCB shall provide a protected mechanism that
displays the currently selected events and their defaults. The use of
this mechanism shall be restricted to authorized system
administrators.

If availability policies are supported, attempts to circumvent or
otherwise gain unauthorized access to resource-allocation limits shall
be audited.

If non-discretionary access control policies are supported, the TCB
shall be able to record any override of human-readable output
markings. When the non-discretionary access control policies aim to
control the flow of information between subjects, the TCB shall also
be able to audit the identified event that may be used in the
exploitation of covert channels.

The TCB shall contain a mechanism that is able to monitor the
occurrence or accumulation of auditable events that may indicate an
imminent violation of the product's security policy. This mechanism
shall be able to immediately notify the security administrator when
thresholds are exceeded, and, if the occurrence or accumulation of
these security relevant events continues, the system shall take the
least disruptive action to terminate the event. That is, the TCB shall
be able to send a message to the system console and/ or the
administrator's terminal when thresholds are exceeded, or when audit
records are unable to be recorded, and, if the occurrence or
accumulation of these security-relevant events continue, the TCB shall
generate an alarm (this shall be the default) or initiate a secure
system shutdown.

3.        For each recorded event, the audit record shall identify: date
and time of the event, user, type of event, and success or failure of
the event. For identification/authentication events the origin of
request (e.g., terminal ID) shall be included in the audit record. For
events that introduce an object into a user's address space and for
object deletion events the audit record shall include the name and
policy attributes of the object (e.g., object security level).

4.        The TCB shall provide a protected mechanism to turn auditing
on and off, and to select and change the events to be audited and
their defaults, during the system operation. The use of this mechanism
shall be restricted to authorized system administrators. The system
administrator shall be able to selectively audit the actions of one or
more users based on individual identity and/or object policy
attributes (e.g., object security level). Audit review tools shall be
available to authorized system administrators to assist in the
inspection and review of audit data, and shall be protected from
unauthorized use, modification, or destruction.

The TCB shall provide tools for audit data processing. These shall
include specifically designed tools: for verifying the consistency of
the audit data; for verifying the selection of audit events; for audit
trail management. The audit trail management tools shall enable:

          -creation, destruction, and emptying of audit trails; use of
warning points regarding the size of the audit data, and modification
of the audit trail size;

          -formatting and compressing of event records;

          -displaying of formatted audit trail data; and

          -maintaining the consistency of the audit trail data after
system failures and discontinuity of operation.

5.        Audit review tools shall be available to authorized users to
assist in the inspection and review of audit data, and shall be
protected from unauthorized modification or destruction. The TCB shall
also provide tools for post-collection audit analysis (e.g., intrusion
detection) that shall be able to selectively review (1) the actions of
one or more users (e.g., identification, authentication, system-entry,
and access control actions); (2) the actions performed on a specific
object or system resource; and (3) all, or a specified set of, audited
exceptions; and (4) actions associated with a specific policy
attribute.The review tools shall be able to operate concurrently with
the system operation.

The TCB shall be able to perform real-time event reporting and
intrusion detection in support of the product's security policy. The
TCB shall include a real-time mechanism that is able to monitor the
occurrence or accumulation of security-relevant events that may
indicate an imminent security violation. This mechanism shall be able
to generate an alarm when thresholds are exceeded and, if the
occurrence or accumulation of these events persists, the TCB shall
take the least disruptive action to terminate the event(s).

4.3.5     Rated Access Control Components

Functional components implementing discretionary policies can be rated
based on their scope (e.g., whether it includes all subjects and
objects in a system, or only a defined subset; whether access control
includes subject and object attributes), and on their coverage (e.g.,
their ability to control the propagation and retention of access
rights for subjects and objects and their ability to encapsulate
objects within a subject such that access to the object is allowed
only by invoking the encapsulating subject.) In addition,
discretionary policy rating can also refer to the ability to control
access at a given subject granularity (e.g., at the individual user
and group, or role level) and object granularity (e.g., memory
partition, memory segment, file, record).

Non-discretionary access controls can be rated using the same generic
levels as those used for discretionary policies.  However, the
granularity of subject and object to which non- discretionary access
controls apply can be significantly finer than that of discretionary
policies. Since non- discretionary policies control information flow,
they must control access to object status attributes such as object
size, existence, locking mode, and subject status attributes such as
process-suspended or process-active indicators.

Separation-of-role policies can use existing access control functions
of an IT product to implement its required rules.  For this reason,
separation-of-role policies can be rated using the same generic levels
of subject and object granularity and scope as those used for
discretionary and non- discretionary policies (discussed below and in
Appendix C).  In their simplest form, access control components
implementing separation of role policies are rated by the separation
of unprivileged subjects from those with administrative
responsibilities. These component requirements include separation of
product resources, of data, and of administrator-controlled policy
attributes. The rating will take into account the granularity of
separation between unprivileged subjects and those with administrative
responsibilities.

In rating the access control components, four levels are identified
using the definition of policies in Appendix C. The component rating
reflected by these levels is based on the scope, granularity, and
coverage of access control requirements. The choice of requirements at
each level is largely guided by the access control characteristics of
current commercially available products and by the goal of retaining
the ability to harmonize these requirements with other existing
standards.

Level AC-1 represents a minimal level of policy definition and
enforcement. That is, the authorization rules apply to a defined
subset of subjects and objects, and the administration of policy
(i.e., access control) attributes cover only a subset of the functions
defined at higher levels. Level AC-2 extends the coverage of access
control policies and associated attributes of level AC-1 by
recognizing that multiple policies could be supported within the same
product. This level also extends the coverage of attribute
administration largely to reflect object import and export. Level AC-3
enhances the scope of access control to all subjects and objects.
Instead of referring to only a defined subset of subjects and objects,
the requirements of this level refer to all subjects and objects. If
non-discretionary policies that aim at controlling information flow
are supported, then the requirement granularity at this level is
extended to include all subject and object policy and status
attributes. This level of access control is appropriate when
non-discretionary policies are used that support information flow
control. In such environments, lack of access control to subject and
object status variables constitute a significant source of covert
channels. However, this level retains the ability to define
authorization and attribute administration on a per type-of-object
basis. Level AC-4 extends the requirement coverage to include time-
and location-based access controls, as well as inclusion and exclusion
of user access rights whenever groups or roles are used. This level
also extends the requirements for object and subject creation and
destruction, adding explicit authorization, inheritance, space
availability, and attribute inheritance conditions. It is expected
that this level of access control would be used in products where
fine-grain access control policies are required.



AC-1 Minimal Access Control

1.        Definition of Access Control Attributes

The TCB shall define and protect access control attributes for
subjects and objects. Subject attributes shall include named
individuals or defined groups or both. Object attributes shall include
defined access rights (e.g., read, write, execute) that can be
assigned to subject attributes.

2.        Administration of Access Control Attributes.

The TCB shall define and enforce rules for assignment and modification
of access control attributes for subjects and objects. The effect of
these rules shall be that access permission to an object by users not
already possessing access permission is assigned only by authorized
users.  These rules shall allow authorized users to specify and
control sharing of objects by named individuals or defined groups of
individuals, or by both, and shall provide controls to limit
propagation of access rights. These controls shall be capable of
including or excluding access to the granularity of a single user.

If different rules of assignment and modification of access control
attributes apply to different subjects and/or objects, the totality of
these rules shall be shown to support the defined policy.

3.        Authorization of Subject References to Objects

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects. These rules shall,
either by explicit user action or by default, provide that objects are
protected from unauthorized access.

The scope of the authorization rules shall include a defined subset of
the product's subjects and objects and associated access control
attributes.  The coverage of authorization rules shall specify the
types of objects and subjects to which these rules apply. If different
rules apply to different subjects and objects, the totality of these
rules shall be shown to support the defined policy.

4.        Subject and Object Creation and Destruction

The TCB shall control the creation and destruction of subjects and
objects. These controls shall include object reuse. That is, all
authorizations to the information contained within a storage object
shall be revoked prior to initial assignment, allocation or
reallocation to a subject from the TCB's pool of unused storage
objects; information, including encrypted representations of
information, produced by a prior subjects' actions shall be
unavailable to any subject that obtains access to an object that has
been released back to the system.

5.        Object Encapsulation

If the TCB supports mechanisms for object encapsulation, controls must
be available for: (1) access authorization to encapsulated objects;
(2) creation of encapsulated subsystems by users; and (3) invocation
of encapsulated subsystems.

AC-2 Basic Access Control

1.        Definition of Access Control Attributes

The TCB shall define and protect access control attributes for
subjects and objects. Subject attributes shall include named
individuals or defined groups or both. Object attributes shall include
defined access rights (e.g., read, write, execute) that can be
assigned to subject attributes. If multiple access control policies
are supported, the access control attributes corresponding to each
individual policy shall be identified.

 The subject and object attributes shall accurately reflect the
sensitivity and/or integrity of the subject or object.

2.        Administration of Access Control Attributes

The TCB shall define and enforce rules for assignment and modification
of access control attributes for subjects and objects. The effect of
these rules shall be that access permission to an object by users not
already possessing access permission is assigned only by authorized
users.  These rules shall allow authorized users to specify and
control sharing of objects by named individuals or defined groups of
individuals, or by both, and shall provide controls to limit
propagation of access rights. These controls shall be capable of
including or excluding access to the granularity of a single user.

The rules for assignment and modification of access control attributes
shall include those for attribute assignment to objects during import
and export operations (e.g., import of non-labeled sensitive data,
export of labeled information). If different rules of assignment and
modification of access control attributes apply to different subjects
and/or objects, the totality of these rules shall be shown to support
the defined policy.

3.        Authorization of Subject References to Objects

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects. These rules shall,
either by explicit user action or by default, provide that objects are
protected from unauthorized access.

The scope of the authorization rules shall include a defined subset of
the product's subjects and objects and associated access control
attributes.  The coverage of authorization rules shall specify the
types of objects and subjects to which these rules apply. If different
rules apply to different subjects and objects, the totality of these
rules shall be shown to support the defined policy.

If multiple policies are supported, the authorization rules for each
policy shall be defined separately. The TCB shall define and enforce
the composition of policies, including the enforcement of the
authorization rules (e.g., subject and object type coverage,
enforcement precedence).

4.        Subject and Object Creation and Destruction

The TCB shall control the creation and destruction of subjects and
objects. These controls shall include object reuse. That is, all
authorizations to the information contained within a storage object
shall be revoked prior to initial assignment, allocation or
reallocation to a subject from the TCB's pool of unused storage
objects; information, including encrypted representations of
information, produced by a prior subjects' actions shall be
unavailable to any subject that obtains access to an object that has
been released back to the system.

5.        Object Encapsulation

If the TCB supports mechanisms for object encapsulation, controls must
be available for: (1) access authorization to encapsulated objects;
(2) creation of encapsulated subsystems by users; and (3) invocation
of encapsulated subsystems

AC-3 Extended Access Control

1.        Definition of Access Control Attributes

The TCB shall define and protect access control attributes for
subjects and objects. Subject attributes shall include named
individuals or defined groups or both. Object attributes shall include
defined access rights (e.g., read, write, execute) that can be
assigned to subject attributes. If multiple access control policies
are supported, the access control attributes corresponding to each
individual policy shall be identified.

 The subject and object attributes shall accurately reflect the
sensitivity and/or integrity of the subject or object. The TCB shall
immediately notify a terminal user of each attribute change of any
subject associated with that user during an interactive session that
reflects a change in the sensitivity or integrity of that session
(e.g., a change of the user's security level). A terminal user shall
be able to query the TCB as desired for a display of the subject's
complete set of access control attributes (e.g., the complete
sensitivity label).

The TCB shall support the assignment of access control attributes
(e.g., minimum and maximum security levels) to all attached physical
devices.  These attributes shall be used by the TCB to enforce
constraints imposed by the physical environments in which the devices
are located.

2.        Administration of Access Control Attributes

The TCB shall define and enforce rules for assignment and modification
of access control attributes for subjects and objects. The effect of
these rules shall be that access permission to an object by users not
already possessing access permission is assigned only by authorized
users.  These rules shall allow authorized users to specify and
control sharing of objects by named individuals or defined groups of
individuals, or by both, and shall provide controls to limit
propagation of access rights. These controls shall be capable of
including or excluding access to the granularity of a single user.

The rules for assignment and modification of access control attributes
shall include those for attribute assignment to objects during import
and export operations (e.g., import of non-labeled sensitive data,
export of labeled information). If different rules of assignment and
modification of access control attributes apply to different subjects
and/or objects, the totality of these rules shall be shown to support
the defined policy.

3.        Authorization of Subject References to Objects

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects. These rules shall,
either by explicit user action or by default, provide that objects are
protected from unauthorized access.

The scope of the authorization rules shall include all subjects,
storage objects (e.g., processes, segments, devices) and associated
access control attributes that are directly or indirectly accessible
to subjects external to the TCB. If non-discretionary access control
policies are used that aim to control the flow of information between
subjects, the scope of the authorization rules shall also include all
policy and status attributes of subjects and storage objects (e.g.,
quotas, object existence, size, access time, creation and modification
time, locked/unlocked).  If different rules apply to different
subjects and objects, the totality of these rules shall be shown to
support the defined policy.

If multiple policies are supported, the authorization rules for each
policy shall be defined separately. The TCB shall define and enforce
the composition of policies, including the enforcement of the
authorization rules (e.g., subject and object type coverage,
enforcement precedence).

4. Subject and Object Creation and Destruction

The TCB shall control the creation and destruction of subjects and
objects. These controls shall include object reuse. That is, all
authorizations to the information contained within a storage object
shall be revoked prior to initial assignment, allocation, reallocation
to a subject from the TCB's pool of unused storage objects;
information, including encrypted representations of information,
produced by a prior subjects' actions shall be unavailable to any
subject that obtains access to an object that has been released back
to the system.

5.        Object Encapsulation

If the TCB supports mechanisms for object encapsulation, controls must
be available for: (1) access authorization to encapsulated objects;
(2) creation of encapsulated subsystems by users; and (3) invocation
of encapsulated subsystems.

AC-4 Fine-Grain Access Control

1.        Definition of Access Control Attributes

The TCB shall define and protect access control attributes for
subjects and objects. Subject attributes shall include named
individuals or defined groups or both. Object attributes shall include
defined access rights (e.g., read, write, execute) that can be
assigned to subject attributes. If multiple access control policies
are supported, the access control attributes corresponding to each
individual policy shall be identified. The subject's access control
attributes also shall include time and location attributes that can be
assigned to authenticated user identities.

The subject and object attributes shall accurately reflect the
sensitivity and/or integrity of the subject or object. The TCB shall
immediately notify a terminal user of each attribute change of any
subject associated with that user during an interactive session that
reflects a change in the sensitivity or integrity of that session
(e.g., a change of the user's security level). A terminal user shall
be able to query the TCB as desired for a display of the subject's
complete set of access control attributes (e.g., the complete
sensitivity label).

The TCB shall support the assignment of access control attributes
(e.g., device labels) to all attached physical devices. These
attributes shall be used by the TCB to enforce constraints imposed by
the physical environments in which the devices are located.

2.        Administration of Access Control Attributes

The TCB shall define and enforce rules for assignment and modification
of access control attributes for subjects and objects. The effect of
these rules shall be that access permission to an object by users not
already possessing access permission is assigned only by authorized
users.  These rules shall allow authorized users to specify and
control sharing of objects by named individuals or defined groups of
individuals, or by both, and shall provide controls to limit
propagation of access rights (i.e., these rules shall define the
distribution, revocation, and review of access control attributes).
The controls defined by these rules shall be capable of specifying for
each named object, a list of individuals and a list of groups of named
individuals, with their respective access rights to that object.
Furthermore, for each named object, it shall be possible to specify a
list of named individuals and a list of groups of named individuals
for which no access to the object is given. These controls shall also
be capable of specifying access-time dependency (i.e., the effect of
the distribution and revocation of access control attributes take
place at a certain time and shall last for a specified period of
time), and/or access-location dependency (i.e., shall specify the
locations from which the distribution and revocation of privileges
shall take place).

The rules for assignment and modification of access control attributes
shall include those for attribute assignment to objects during import
and export operations (e.g., import of non-labeled sensitive data,
export of labeled information). If different rules of assignment and
modification of access control attributes apply to different subjects
and/or objects, the totality of these rules shall be shown to support
the defined policy.

3.        Authorization of Subject References to Objects

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects. These rules shall,
either by explicit user action or by default, provide that objects are
protected from unauthorized access. These rules shall include
time-of-access and location-of-access controls defined for subjects
and objects.

The scope of the authorization rules shall include all subjects,
storage objects (e.g., processes, segments, devices) and associated
access control attributes that are directly or indirectly accessible
to subjects external to the TCB. If non-discretionary access control
policies are used that aim to control the flow of information between
subjects, the scope of the authorization rules shall also include all
policy and status attributes of subjects and storage objects (e.g.,
quotas, object existence, size, access time, creation and modification
time, locked/unlocked).  If different rules apply to different
subjects and objects, the totality of these rules shall be shown to
support the defined policy.

If multiple policies are supported, the authorization rules for each
policy shall be defined separately. The TCB shall define and enforce
the composition of policies, including the enforcement of the
authorization rules (e.g., subject and object type coverage,
enforcement precedence).

4.        Subject and Object Creation and Destruction

The TCB shall define and enforce rules for the creation and
destruction of subjects and objects.  The controls defined by these
rules shall be capable of specifying for each subject and object: (1)
creation and destruction authorization; (2) object reuse; (3) space
availability (i.e., storage space shall be available for the creation
of a subject and object); (4) default subject or object attributes and
attribute inheritance rules (if any).

The rules for subject and object creation and destruction shall
specify their coverage in terms of the types of objects and subjects
to which they apply. If different rules and conditions apply to
different subjects and objects, the totality of these rules shall be
shown to support the defined policy properties.  If multiple policies
are supported, these rules shall define the composition of policies
and how the conditions of the subject and object creation and
destruction are enforced (e.g., subject and object type coverage,
enforcement precedence).

5.        Object Encapsulation

If the TCB supports mechanisms for object encapsulation, controls must
be available for: (1) access authorization to encapsulated objects;
(2) creation of encapsulated subsystems by users; and (3) invocation
of encapsulated subsystems.

4.3.5.1   Rated Covert Channel Handling Components

Covert channel handling requires that functions must be added to the
software and/or hardware and firmware elements of a TCB to help deter
the use of, limit the bandwidth of, or eliminate, covert channels. The
rating of the covert channel handling components is based both on the
scope of these requirements and their coverage (e.g., elimination,
bandwidth limitation, audit, administrative control, applicability to
timing channels or storage channels). The scope of level CCH- 1 is
limited to storage channels and the coverage is limited to functions
that deter covert channel use. Coverage is extended at level CCH-2 by
the addition of requirements of bandwidth limitation and storage
channel elimination for common system configurations. Level CCH-3
extends the requirements of level CCH-2 by including all channels, not
just covert storage channels.

CCH-1 Deterrence of Storage Channel Use

1.        The TCB and privileged applications shall include functions
that help audit the use of covert storage channels. These functions
shall enable the identification of the transmitter, receiver, and
specific covert channels used (e.g., TCB and privileged application
element used to transmit information).

2.        The functions added to the TCB and privileged applications for
storage channel auditing shall be identified for each channel and
shall be available in common product configurations. If audit
functions are not added to certain storage channels (e.g., hardware
storage channels), evidence must be provided to justify why these
channels do not represent a security threat for the intended use of
the product.

CCH-2 Storage Channel Audit and Bandwidth Limitation

1.        The TCB and privileged applications shall include functions
that help audit the use of covert storage channels. These functions
shall enable the identification of the transmitter, receiver, and
specific covert channels used (e.g., TCB and privileged application
element used to transmit information). TCB functions that help limit
the bandwidth and/or eliminate covert storage channels shall also be
provided. The bandwidth limits for each channel shall be settable by
system administrators.

2.        The functions added to the TCB and privileged applications for
storage channel auditing shall be identified for each channel and
shall be available in common product configurations. If audit
functions are not added to certain storage channels (e.g., hardware
storage channels), evidence must be provided to justify why these
channels do not represent a security threat for the intended use of
the product. TCB and privileged application functions that help limit
the bandwidth and/or eliminate covert storage channels shall also be
available in common product configurations.

If channel bandwidth limitation and channel elimination functions are
not added to certain storage channels (e.g., hardware storage
channels), evidence must be provided to justify why these channels do
not represent a security threat for the intended use of the product.

CCH-3 Timing Channel Audit and Bandwidth Limitation

1.        The TCB and privileged applications shall include functions
that help audit the use of covert storage channels. These functions
shall enable the identification of the transmitter, receiver, and
specific covert channels used (e.g., TCB and privileged application
element used to transmit information). TCB functions that help limit
the bandwidth and/or eliminate covert storage channels shall also be
provided. The bandwidth limits for each channel shall be settable by
system administrators.

2.        The functions added to the TCB and privileged applications for
storage channel auditing shall be identified for each channel and
shall be available in common product configurations. If audit
functions are not added to certain storage channels (e.g., hardware
storage channels), evidence must be provided to justify why these
channels do not represent a security threat for the intended use of
the product. TCB and privileged application functions that help limit
the bandwidth and/or eliminate covert storage or timing channels shall
also be available in common product configurations.

If channel bandwidth limitation and channel elimination functions are
not added to certain storage or timing channels (e.g., hardware
channels), evidence must be provided to justify why these channels do
not represent a security threat for the intended use of the product.

4.3.6     Rated Resource Allocation Components

The resource allocation component rating is concerned with the extent
and strength of containment control exerted over the availability and
distribution of product resources. The resource allocation components
are rated based on the scope of containment (e.g., defined set of
resources versus all resources) and the coverage of containment (e.g.,
resource restrictions, control, priorities, audit).

Level AR-1 defines basic requirements of resource allocation
restrictions in terms of a specified subset of system resources,
subjects and objects. Level AR-2 extends the scope of resource control
to all system resources and increases the coverage of the resource
allocation features by requiring the auditing and signaling of
attempted violations of resource allocation limits (or quotas). Level
AR-3 further extends the coverage of the resource allocation features
by introducing the requirement for prioritized allocation.

AR-1 Resource Restrictions

The TCB shall provide the capability to place restrictions on the
number of subjects and objects a user may have allocated at any given
time. The TCB shall control a defined set of system resources (e.g.,
memory, disk space) such that no one individual user can deny access
to another user's subject and object space. All subjects, objects, and
resources shall be defined with default space or time quotas and
quantity-of- resources attributes.

AR-2 Complete Resource Control

The TCB shall provide the capability to place restrictions on the
number of subjects and objects a user may have allocated at any given
time. The TCB shall control a defined set of system resources (e.g.,
memory, disk space) such that no one individual user can deny access
to another user's subject and object space. All subjects, objects, and
resources shall be defined with default space or time quota and
number-of- resources attributes. An individual user shall be unable to
deny access to any system resource by means of circumventing
resource-allocation limits, or otherwise manipulating the TCB, so as
to restrict the TCB's ability to offer services to other users and
objects.

AR-3 Prioritized Resource Allocations

The TCB shall provide the capability to place restrictions on the
number of subjects and objects a user may have allocated at any given
time. The TCB shall control a defined set of system resources (e.g.,
memory, disk space) such that no one individual user can deny access
to another user's subject and object space. All subjects, objects, and
resources shall be defined with default space or time quotas and
quantity-of- resources attributes. An individual user shall be unable
to deny access to any system resource by means of circumventing
resource-allocation limits, or otherwise manipulating the TCB, so as
to restrict the TCB's ability to offer services to other users and
objects. The TCB shall include resource-allocation priorities among
the subject attributes. Each subject shall be granted a priority
against which the TCB shall allocate resources. The TCB shall mediate
resource- allocation priorities in such a manner that access
requirements of the TCB and high-priority subjects shall be fulfilled
first, in a prioritized manner.  All resources within the TCB
(hardware and software) shall be controlled in pre-assigned blocks.

4.3.7     Rated Security Management Components

The rating of the security-management components is based primarily on
the coverage, and strength of these components.  For example, level
SM-3 is considered to be stronger than level SM-2 because the
separation of administrative and operator roles offers added
resistance to accidents or misdeeds. Level SM-3 also extends the
coverage of level SM-2 because it reflects the use of a wider policy
coverage. Level SM-4 extends the coverage and strength of level SM-3
because (1) it requires the availability of trusted tools for security
management (e.g., tools offering a graphical interface to the
administrator, tools enhancing system administration, and tools
enabling the administrator to perform consistency checking), and (2)
it further limits through fine-grain separation of administrative
roles the potential damage that can be caused by error or misdeed.

SM-1 Minimal Security Management

1.        The TCB shall provide an installation mechanism for the
setting and updating of its configuration parameters, and for the
initialization of its protection-relevant data structures before any
user or administrator policy attributes are defined. It shall allow
the configuration of TCB internal databases and tables.

2.        The TCB shall provide protected mechanisms for displaying and
modifying the security policy parameters.

3.        The TCB shall provide protected mechanisms for manually
displaying, modifying, or deleting user registration and account
parameters. These parameters shall include unique user identifiers,
their account, and their associated user name and affiliation. The TCB
shall allow the manual enabling and disabling of user identities
and/or accounts.

4.        The TCB shall provide protected mechanisms for routine control
and maintenance of system resources. That is, it shall allow the
enabling and disabling of peripheral devices, mounting of removable
storage media, backing-up and recovering user objects; maintaining the
TCB hardware and software elements (e.g., on site testing); and
starting and shutting down the system.

5.         The use of the protected mechanisms for system administration
shall be limited to authorized administrative users.

SM-2 Basic Security Management

1.        The TCB shall provide an installation mechanism for the
setting and updating of its configuration parameters, and for the
initialization of its protection-relevant data structures before any
user or administrator policy attributes are defined. It shall allow
the configuration of TCB internal databases and tables.

The TCB shall distinguish between normal mode of operation and
maintenance mode, and shall provide a maintenance-mode mechanism for
recovery and system start-up.

2.        The TCB shall provide protected mechanisms for displaying and
modifying the security policy parameters. These parameters shall
include identification, authentication, system entry and access
control parameters for the entire system and for individual users.

The TCB shall have a capability to define the identification and
authentication policy on a system-wide basis (e.g., password minimum
and maximum lifetime, password length and complexity parameters). The
TCB mechanisms shall have the capability to limit: (1) maximum period
of interactive session inactivity, (2) maximum login or session time,
and (3) successive unsuccessful attempts to log in to the system.

If availability policies are supported, the TCB shall provide a
mechanism to control the availability of system resources via resource
quotas and quantity-of-resources limits.

3.        The TCB shall provide protected mechanisms for manually
displaying, modifying, or deleting user registration and account
parameters. These parameters shall include unique user identifiers,
their account, and their associated user name and affiliation. The TCB
shall allow the manual enabling and disabling of user identities
and/or accounts.

The TCB shall provide a means to uniquely identify security policy
attributes. It shall also provide a means of listing all these
attributes for a user, and all the users associated with an attribute.
It shall be capable of defining and maintaining the security policy
attributes for subjects including: defining and maintaining privileges
for privileged subjects, discretionary and non-discretionary
attributes (e.g., definition and maintenance of group, role, and
secrecy and/or integrity level membership), and centralized
distribution, review and revocation of policy attributes.

4.        The TCB shall provide protected mechanisms for routine control
and maintenance of system resources.It shall allow the enabling and
disabling of peripheral devices, mounting of removable storage media,
backing-up and recovering user objects; maintaining the TCB hardware
and software elements (e.g., on site testing); and starting and
shutting down the system.

5.         The use of the protected mechanisms for system administration
shall be limited to authorized administrative users.

SM-3 Policy-oriented Security Management

1.        The TCB shall provide an installation mechanism for the
setting and updating of its configuration parameters, and for the
initialization of its protection-relevant data structures before any
user or administrator policy attributes are defined. It shall allow
the configuration of TCB internal databases and tables.

          The TCB shall distinguish between normal mode of operation and
maintenance mode, and shall provide a maintenance-mode mechanism for
recovery and system start-up. This mechanism shall include a means to
initialize administrative privileges and administrative
identification, authentication, and system-entry attributes.

2.        The TCB shall provide protected mechanisms for displaying and
modifying the security policy parameters. These parameters shall
include identification, authentication, system entry and access
control parameters for the entire system and for individual users.

          The TCB shall have a capability to define the identification
and authentication policy on a system-wide basis (e.g., password
minimum and maximum lifetime, password length and complexity
parameters). The TCB mechanisms shall have the capability to limit:
(1) maximum period of interactive session inactivity, (2) maximum
login or session time, and (3) successive unsuccessful attempts to log
in to the system. The TCB shall provide an administrative capability
to specify the authentication method on a per policy- attribute basis
whenever multiple identification and authentication methods are used;
e.g., via user passwords, tokens, or biometrics.

          If the TCB is designed to support multiple login sessions per
user identity, the administrators shall be able to limit the number of
simultaneous login sessions on an authorization-attribute basis.

          The TCB shall also have a capability to limit the successive
unsuccessful attempts to login from a specific port of entry, and/or
with a specific user identity or account.

If availability policies are supported, the TCB shall provide a
mechanism to control the availability of system resources via resource
quotas and quantity-of-resources limits.

3.        The TCB shall provide protected mechanisms for manually
displaying, modifying, or deleting user registration and account
parameters. These parameters shall include unique user identifiers,
their account, and their associated user name and affiliation. The TCB
shall allow the automatic disabling of user identities and/ or
accounts, after a period during which the identity and/or account have
not been used. The time period shall be administrator specified, with
a specified default provided. The TCB shall allow the automatic
re-enabling of disabled user identities and/or accounts after an
administrator-specified period of time.

The TCB shall provide a means to uniquely identify security policy
attributes. It shall also provide a means of listing all these
attributes for a user, and all the users associated with an attribute.
It shall be capable of defining and maintaining the security policy
attributes for subjects including: defining and maintaining privileges
for privileged subjects, discretionary and non-discretionary
attributes (e.g., definition and maintenance of group, role, and
secrecy and/or integrity level membership), and centralized
distribution, review and revocation of policy attributes.

4.        The TCB shall support separate operator and administrator
functions. The operator functions shall be restricted to those
necessary for performing routine operations. The operator functions
shall allow the enabling and disabling of peripheral devices, mounting
of removable storage media, backing-up and recovering user objects;
maintaining the TCB hardware and software elements (e.g., on-site
testing); and starting and shutting down the system.

5.         The use of the protected mechanisms for system administration
shall be limited to authorized administrative users.

SM-4 Extended Security Management

1.        The TCB shall provide an installation mechanism for the
setting and updating of its configuration parameters, and for the
initialization of its protection-relevant data structures before any
user or administrator policy attributes are defined. It shall allow
the configuration of TCB internal databases and tables.

          The TCB shall distinguish between normal mode of operation and
maintenance mode, and shall provide a maintenance-mode mechanism for
recovery and system start-up. This mechanism shall include a means to
initialize administrative privileges and administrative
identification, authentication, and system-entry attributes.

2.        The TCB shall provide protected mechanisms for displaying and
modifying the security policy parameters. These parameters shall
include identification, authentication, system entry and access
control parameters for the entire system and for individual users.

          The TCB shall have a capability to define the identification
and authentication policy on a system-wide basis (e.g., password
minimum and maximum lifetime, password length and complexity
parameters). The TCB mechanisms shall have the capability to limit:
(1) maximum period of interactive session inactivity, (2) maximum
login or session time, and (3) successive unsuccessful attempts to log
in to the system. The TCB shall provide an administrative capability
to specify the authentication method on a per policy- attribute basis
whenever multiple identification and authentication methods are used;
e.g., via user passwords, tokens, or biometrics.

          If the TCB is designed to support multiple login sessions per
user identity, the administrators shall be able to limit the number of
simultaneous login sessions on an authorization-attribute basis.

          The TCB shall also have a capability to limit the successive
unsuccessful attempts to login from a specific port of entry, and/or
with a specific user identity or account.

          If availability policies are supported, the TCB shall provide
a mechanism to control the availability of system resources via
resource quotas and quantity-of-resources limits.

3.        The TCB shall provide protected mechanisms for manually
displaying, modifying, or deleting user registration and account
parameters. These parameters shall include unique user identifiers,
their account, and their associated user name and affiliation. The TCB
shall allow the automatic disabling of user identities and/or
accounts, after a period during which the identity and/or account have
not been used. The time period shall be administrator specified, with
a specified default provided. The TCB shall allow the automatic
re-enabling of disabled user identities and/or accounts after an
administrator-specified period of time.

          The TCB shall provide a means to uniquely identify security
policy attributes. It shall also provide a means of listing all these
attributes for a user, and all the users associated with an attribute.
It shall be capable of defining and maintaining the security policy
attributes for subjects including: defining and maintaining privileges
for privileged subjects, discretionary and non-discretionary
attributes (e.g., definition and maintenance of group, role, and
secrecy and/or integrity level membership), and centralized
distribution, review and revocation of policy attributes.

          The TCB shall provide trusted tools for system administration.
These shall include: tools for verifying the consistency of the user
registration and system configuration; tools for verifying the proper
system installation; tools for verifying that the TCB does not contain
extraneous programs and data.

          The TCB shall include tools for determining whether the TCB is
in a secure initial state after start-up and recovery.

          The TCB shall include tools for verifying the consistency of
users, subject, and objects policy attributes (e.g., cross checks
between subject and object attributes and registered user attributes).

4.        The TCB shall support separate operator and administrator
functions. The operator functions shall be restricted to those
necessary for performing routine operations. The operator functions
shall allow the enabling and disabling of peripheral devices, mounting
of removable storage media, backing-up and recovering user objects;
maintaining the TCB hardware and software elements (e.g., on-site
testing); and starting and shutting down the system. The
administrative functions shall support separate security administrator
and auditor roles. The TCB shall enable the administrators to perform
their functions only after taking a distinct auditable action to
assume an administrator role. Non- security functions that can be
performed in the security administrative role shall be limited
strictly to those essential to performing the security role
effectively.

5.         The use of the protected mechanisms and tools for system
administration shall be limited to authorized administrative users.

4.3.8     Rated Reference Mediation Components

The rating of the reference mediation components are largely based on
scope and granularity of references. At level RM-1, the scope of
mediation is limited to a defined subject and object subset (i.e., the
same subset as that defined by the access control components). At
level RM-2, the scope of mediation is extended to the complete set of
subjects and objects. At level RM-3, the granularity of references
includes defined subsets, or all: (1) objects, (2) object policy
attributes (e.g., access rights, security levels, quotas); and (3)
object status attributes (e.g., object existence, length, locking
state). Level RM-4 is derived by requiring a model of privilege
mediation. This level extends the coverage of level RM-3 and is
intended for use in a TCB that can be extended with privileged
processes of various applications.

RM-1 Mediation of References to a Defined Subject/Object Subset

1.        The TCB shall mediate all references to subjects, objects,
resources, and services (e.g., TCB functions) described in the TCB
specifications. The mediation shall ensure that all references are
directed to the appropriate security-policy functions.

2.        Reference mediation shall include references to the defined
subset of subjects, objects, and resources protected under the TCB
security policy, and to their policy attributes (e.g., access rights,
security and/or integrity levels, role identifiers).

3.        References issued by privileged subjects shall be mediated in
accordance with the policy attributes defined for those subjects.

RM-2 Mediation of References to all Subjects and Objects

1.        The TCB shall mediate all references to subjects, objects,
resources, and services (e.g., TCB functions) described in the TCB
specifications. The mediation shall ensure that all references are
directed to the appropriate security-policy functions.

2.         Reference mediation shall include control of references to
all subjects, objects, and resources protected under the TCB security
policy, and to their policy attributes (e.g., access rights, security
and/or integrity levels, role identifiers, quotas).

3.        References issued by privileged subjects shall be mediated in
accordance with the policy attributes defined for those subjects.



RM-3 Mediation of References to Subject and Object Attributes

1.        The TCB shall mediate all references to subjects, objects,
resources, and services (e.g., TCB functions) described in the TCB
specifications. The mediation shall ensure that all references are
directed to the appropriate security-policy functions.

2.         Reference mediation shall include control of references to
all subjects, objects, and resources protected under the TCB security
policy, to their policy (e.g., access rights, security and/or
integrity levels, role identifiers, quotas) and status attributes
(e.g., existence, length, locking state).

3.        References issued by privileged subjects shall be mediated in
accordance with the policy attributes defined for those subjects.

RM-4 Mediation of Privileged Subject References

1.        The TCB shall mediate all references to subjects, objects,
resources, and services (e.g., TCB functions) described in the TCB
specifications. The mediation shall ensure that all references are
directed to the appropriate security-policy functions.

2.         Reference mediation shall include control of references to
all subjects, objects, and resources protected under the TCB security
policy, to their policy (e.g., access rights, security and/or
integrity levels, role identifiers, quotas) and status attributes
(e.g., existence, length, locking state).

3.        References issued by privileged subjects shall be mediated in
accordance with the privilege model defined for those subjects.

4.3.9     Rated Logical TCB Protection Components

The rating of the TCB protection components is based on the coverage
of TCB requirements. Level P-1 of TCB protection has two basic
requirements, namely TCB isolation and noncircumventability of TCB
isolation functions. Level P-2 extends the coverage of level P-1 with
the requirements of ensuring the consistency of TCB global variables
and the elimination of undesirable TCB dependencies on unprivileged
user actions. These additional requirements help eliminate large
classes of TCB penetration means. Level P-3 eliminates an additional
class of penetration means that is generally more difficult to exploit
than those classes addressed in the previous two levels. The intent of
these levels is to reflect increasingly better functions for TCB
penetration resistance.

P-1 Basic TCB Isolation

The TCB shall maintain a domain for its own execution that protects it
from external interference and tampering (e.g., by reading or
modification of its code and data structures). The protection of the
TCB shall provide TCB isolation and noncircumventability of TCB
isolation functions as follows:

          1. TCB Isolation requires that (1) the address spaces of the
TCB and those of unprivileged subjects are separated such that users,
or unprivileged subjects operating on their behalf, cannot read or
modify TCB data structures or code, (2) the transfers between TCB and
non-TCB domains are controlled such that arbitrary entry to or return
from the TCB are not possible; and (3) the user or application
parameters passed to the TCB by addresses are validated with respect
to the TCB address space, and those passed by value are validated with
respect to the values expected by the TCB.

          2. Noncircumventability of TCB isolation functions requires
that the permission to objects (and/or to non-TCB data) passed as
parameters to the TCB are validated with respect to the permissions
required by the TCB, and references to TCB objects implementing TCB
isolation functions are mediated by the TCB.

P-2 TCB Isolation and Consistency

The TCB shall maintain a domain for its own execution that protects it
from external interference and tampering (e.g., by reading or
modification of its code and data structures). The protection of the
TCB shall provide TCB isolation and noncircumventability of TCB
isolation functions as follows:

          1. TCB Isolation requires that (1) the address spaces of the
TCB and those of unprivileged subjects are separated such that users,
or unprivileged subjects operating on their behalf, cannot read or
modify TCB data structures or code, (2) the transfers between TCB and
non-TCB domains are controlled such that arbitrary entry to or return
from the TCB are not possible; and (3) the user or application
parameters passed to the TCB by addresses are validated with respect
to the TCB address space, and those passed by value are validated with
respect to the values expected by the TCB.

          2. Non-circumventability of TCB isolation functions requires
that the permission to objects (and/or to non-TCB data) passed as
parameters to the TCB are validated with respect to the permissions
required by the TCB, and references to TCB objects implementing TCB
isolation functions are mediated by the TCB.

TCB protection shall also maintain the consistency of TCB global
variables and eliminate undesirable dependencies of the TCB on
unprivileged subject or user actions.

          3. Consistency of TCB global variables requires that
consistency conditions defined over TCB internal variables, objects,
and functions hold before and after any TCB invocation.

          4. Elimination of undesirable dependencies of the TCB on
unprivileged subject actions requires that any TCB invocation by an
unprivileged subject (or user) input to a TCB call may not place the
TCB in a state such that it is unable to respond to communication
initiated by other users.

P-3 TCB Isolation and Timing Consistency

The TCB shall maintain a domain for its own execution that protects it
from external interference and tampering (e.g., by reading or
modification of its code and data structures). The protection of the
TCB shall provide TCB isolation and noncircumventability of TCB
isolation functions as follows:

          1. TCB Isolation requires that (1) the address spaces of the
TCB and those of unprivileged subjects are separated such that users,
or unprivileged subjects operating on their behalf, cannot read or
modify TCB data structures or code, (2) the transfers between TCB and
non-TCB domains are controlled such that arbitrary entry to or return
from the TCB are not possible; and (3) the user or application
parameters passed to the TCB by addresses are validated with respect
to the TCB address space, and those passed by value are validated with
respect to the values expected by the TCB.

          2. Non-circumventability of TCB isolation functions requires
that the permission to objects (and/or to non-TCB data) passed as
parameters to the TCB are validated with respect to the permissions
required by the TCB, and references to TCB objects implementing TCB
isolation functions are mediated by the TCB.

TCB protection shall also maintain the consistency of TCB global
variables and eliminate undesirable dependencies of the TCB on
unprivileged subject or user actions.

          3. Consistency of TCB global variables requires that
consistency conditions defined over TCB internal variables, objects,
and functions hold before and after any TCB invocation.

          4. Elimination of undesirable dependencies of the TCB on
unprivileged subject actions requires that any TCB invocation by an
unprivileged subject (or user) input to a TCB call may not place the
TCB in a state such that it is unable to respond to communication
initiated by other users.

Furthermore, TCB protection shall maintain the timing consistency of
condition checks.

          5. Timing consistency of condition checks requires that a
validation check holds at the instant when the TCB action depending on
that check is performed.

4.3.10    Rated Physical TCB Protection Components

The rating of the physical TCB protection is determined by the
coverage and strength of the physical protection requirements; i.e.,
on the ability to prevent, deter, detect, and counter physical attacks
against the product. Level PP-1 requires the availability of physical
protection functions and devices to support administrative and
environment measures of controlling access to the TCB of the product.
Level PP-2 extends the coverage of this requirement by specifying that
employed functions and devices shall have the ability to unambiguously
detect any attempt of physical tampering regardless of its outcome.
Level PP-3 increases the strength of the physical TCB protection by
requiring the use of physical countermeasures with well-defined work
factors.  The intent of these requirements is to distinguish between
physical protection supporting administrative measures,
tamper-detection functions, and tamper-resistance functions.

PP-1 Administrative and Environment Protection

1. Administrative procedures and environmental features necessary for
establishing the physical security of a product's TCB shall be
defined.

2. Product functions and devices necessary to establish physical
control over the product's TCB shall be identified and provided.

PP-2 Detection of Physical Attack

1. Administrative procedures and environmental features necessary for
establishing the physical security of a product's TCB shall be
defined.

2.        Product functions and devices necessary to establish physical
control over the product's TCB shall be identified and provided. TCB
devices allowing the unambiguous detection of physical tampering shall
be employed. These devices shall be shown to be physically
tamper-resistant and noncircumventable.

PP-3 Physical and Environmental Countermeasures

1. Administrative procedures and environmental features necessary for
establishing the physical security of a product's TCB shall be
defined.

2. Product functions and devices necessary to establish physical
control over the product's TCB shall be identified and provided. TCB
devices that provide countermeasures to physical tampering shall be
employed. The strength of these devices shall be determined based on
well-defined work factor parameters relevant to the supported
policies. For confidentiality policies, these devices shall resist
disclosure via theft, inspection of physical media, wiretapping,
and/or analysis of product emanations. For integrity policies, these
devices shall resist modification of hardware functionality and
modification of stored data via mechanical methods and/or electronic
jamming. For availability policies, these devices shall resist loss of
service via anticipated environmental stress (e.g., water damage,
fire, vibration, impact) or other forms of physical attack.

4.3.11    Rated TCB Self Checking Components

The TCB self-checking components are rated based on the scope of the
checking performed (i.e., hardware and/or firmware versus software)
and on the coverage of the checking methods (i.e., periodic or
continuous checking). At level SC-1, a minimal level of self-checking
is required (e.g., similar to those currently available on most
commercial workstations).  Level SC-2 extends these requirements by
including power-on self tests, loadable tests, and operator-controlled
tests that are used to periodically validate the correct operation of
the TCB hardware and/or firmware elements. The scope of these tests is
extended at level SC-3 by the addition of configurable software and/or
firmware functions that perform periodic self tests. At level SC-4,
the self-test coverage is extended by requiring that hardware,
firmware, and/or software self tests be performed continuously during
the product operation.

SC-1 Minimal Self Checking

Hardware and/or software features shall be provided that can be used
to periodically validate the correct operation of the on-site hardware
and firmware elements of the TCB.

SC-2 Basic Self Checking

Hardware and/or software features shall be provided that can be used
to periodically validate the correct operation of the on-site hardware
and firmware elements of the TCB. These features shall include:
power-on tests, loadable tests, and operator-controlled tests.

The power-on tests shall test all basic components of the TCB hardware
and firmware elements including memory boards and memory
interconnections; data paths; busses; control logic and processor
registers; disk adapters; communication ports; system consoles, and
the keyboard speaker. These tests shall cover all components that are
necessary to run the loadable tests and the operator-controlled tests.

The loadable tests shall cover: processor components (e.g., arithmetic
and logic unit, floating point unit, instruction decode buffers,
interrupt controllers, register transfer bus, address translation
buffer, cache, and processor- to-memory bus controller); backplane
busses; memory controllers; and writable control memory for
operator-controlled and remote system- integrity testing.

Operator-controlled tests shall be able to initiate a series of
one-time or repeated tests, to log the results of these tests and, if
any fault is detected, to direct the integrity-test programs to
identify and isolate the failure.

SC-3 Software-Test Support

Hardware and/or software features shall be provided that can be used
to periodically validate the correct operation of the on-site hardware
and firmware elements of the TCB. These features shall include:
power-on tests, loadable tests, and operator-controlled tests.

The power-on tests shall test all basic components of the TCB hardware
and firmware elements including memory boards and memory
interconnections; data paths; busses; control logic and processor
registers; disk adapters; communication ports; system consoles, and
the keyboard speaker. These tests shall cover all components that are
necessary to run the loadable tests and the operator-controlled tests.

The loadable tests shall cover: processor components (e.g., arithmetic
and logic unit, floating point unit, instruction decode buffers,
interrupt controllers, register transfer bus, address translation
buffer, cache, and processor- to-memory bus controller); backplane
busses; memory controllers; and writable control memory for
operator-controlled and remote system- integrity testing.

Operator-controlled tests shall be able to initiate a series of
one-time or repeated tests, to log the results of these tests and, if
any fault is detected, to direct the integrity-test programs to
identify and isolate the failure.

Configurable software or firmware features shall be provided that can
be used to validate the correct operation of the on-site software
elements (i.e., code and data structures) of the TCB. These features
may include, but are not limited to, checksums and consistency checks
for TCB elements stored on storage media (e.g., disk-block consistency
conditions).

SC-4 Continuous Software-Test Support

Hardware and/or software features shall be provided that can be used
to periodically validate the correct operation of the on-site hardware
and firmware elements of the TCB. These features shall include:
power-on tests, loadable tests, and operator-controlled tests.

The power-on tests shall test all basic components of the TCB hardware
and firmware elements including memory boards and memory
interconnections; data paths; busses; control logic and processor
registers; disk adapters; communication ports; system consoles, and
the keyboard speaker. These tests shall cover all components that are
necessary to run the loadable tests and the operator-controlled tests.

The loadable tests shall cover: processor components (e.g., arithmetic
and logic unit, floating point unit, instruction decode buffers,
interrupt controllers, register transfer bus, address translation
buffer, cache, and processor- to-memory bus controller); backplane
busses; memory controllers; and writable control memory for
operator-controlled and remote system- integrity testing.

Operator-controlled tests shall be able to initiate a series of
one-time or repeated tests, to log the results of these tests and, if
any fault is detected, to direct the integrity-test programs to
identify and isolate the failure.

Configurable software or firmware features shall be provided that can
be used to validate the correct operation of the on-site software
elements (i.e., code and data structures) of the TCB. These features
may include, but are not limited to, checksums and consistency checks
for TCB elements stored on storage media (e.g., disk-block consistency
conditions).

Tests that detect possible inconsistencies of the TCB elements (i.e.,
data structures and code) shall be performed whenever the content or
structure of these elements are modified as consequence of a transient
failure during an unprivileged subject's action.



4.3.12    Rated TCB Start-Up and Recovery Components

The TCB start-up and recovery components are rated based on feature
coverage; i.e., whether manual (levels TR-1, TR-2) or automatic (level
TR-3) recovery and start-up in a secure state is provided, and whether
the loss of user objects during recovery can be minimized (level TR-5)
or just detected (level TR-4). Primitive forms of secure recovery,
where potentially all objects are lost during recovery, have a
narrower coverage than that intended to be provided by automated
procedures.

TR-1 Minimal Requirements for Recovery or Start-up

1. Procedures and/or mechanisms shall be provided to assure that,
after a TCB failure or other discontinuity, recovery without
protection compromise is obtained.

TR-2 Basic Requirements for Recovery or Start-up

1. Procedures and/or mechanisms shall be provided to assure that,
after a TCB failure or other discontinuity, recovery without
protection compromise is obtained.

2. If automated recovery and start-up is not possible, the TCB shall
enter a state where the only system access method is via
administrative interfaces, terminals, or procedures.  Administrative
procedures shall exist to restore the system to a secure state (i.e.,
a state in which all the security-policy properties hold).

TR-3 Automated Recovery or Start-up

1. Procedures and/or mechanisms shall be provided to assure that,
after a TCB failure or other discontinuity, recovery without
protection compromise is obtained.

2. Automated procedures, under the control of the TCB, shall be
provided to assure that after a system failure, other discontinuity,
or start-up, a secure state is obtained without undue loss of system
or user objects. The security policy properties, or requirements, used
to determine that a secure state is obtained shall be defined.



TR-4 Object-Loss Detection

1. Procedures and/or mechanisms shall be provided to assure that,
after a TCB failure or other discontinuity, recovery without
protection compromise is obtained.

2. Automated procedures, under the control of the TCB, shall be
provided to assure that after a system failure, other discontinuity,
or start-up, a secure state is obtained without undue loss of system
or user objects. The security policy properties, or requirements, used
to determine that a secure state is obtained shall be defined.  The
TCB shall include checkpoint functions for recovery. Upon recovery, it
shall be possible to discover which user objects are corrupted or
unaccessible due to the TCB failure, if any, and to automatically
notify the users.

TR-5 Object-Loss Minimization

1. Procedures and/or mechanisms shall be provided to assure that,
after a TCB failure or other discontinuity, recovery without
protection compromise is obtained.

2. Automated procedures, under the control of the TCB, shall be
provided to assure that after a system failure, other discontinuity,
or start-up, a secure state is obtained without undue loss of system
or user objects. The security policy properties, or requirements, used
to determine that a secure state is obtained shall be defined.  The
TCB shall include checkpoint functions for recovery. Upon recovery, it
shall be possible to discover which user objects are corrupted or
unaccessible due to the TCB failure, if any, and to automatically
notify the users. The TCB functions that can be invoked through the
TCB interface shall be atomic (i.e., shall have the property that
either their invocation is completed correctly or the recovered system
state should be the one immediately prior to the execution of the TCB
function). The recovered secure state should minimize the corruption
and inaccessibility of user objects due to the TCB failure.

4.3.13    Rated TCB Privileged Operation Components

The TCB privileged operation components are rated based on the
granularity of privilege associated with individual TCB functions or
groups of functions (level PO-1), with modules of TCB functions and
operations of administrative roles (level PO-2), with individual
actions (level PO-3), and with individual code sections of an action
(level PO-4). The intent of these ratings is to separate (1) fine
granularity of privileges from coarser granularity and (2) the static
association of privileges with functions and modules from the run-time
association of privileges with actions (i.e., function invocations)
and sections of code within actions.  Although the granularity of
privileges of a product is a design choice, the intent of these
requirements is to encourage use of fine granularity of privilege and
run-time association of privileges, at least for the TCB actions of
bypassing access controls.

PO-1 Privilege Association with TCB Functions

1. TCB privileges needed by individual functions, or groups of
functions, shall be identified.  Privileged TCB calls or access to
privileged TCB objects, such as user and group registration files,
password files, security and integrity- level definition file, role
definition file, or audit-log file shall also be identified.

2. The identified privileged functions of a TCB functional component
shall be associated only with the privileges necessary to complete
their task.

PO-2 Privilege Association with TCB Modules

1. TCB privileges needed by individual functions, or groups of
functions, of a functional component shall be identified. Privileged
TCB calls or access to privileged TCB objects, such as user and group
registration files, password files, security and integrity-level
definition file, role definition file, audit-log file shall also be
identified. It shall be possible to associate TCB privileges with TCB
operations performed by administrative users.

2.The modules of a TCB function shall be associated only with the
privileges necessary to complete their task.

3. Support for product privilege implementation and association with
TCB modules provided by lower-level mechanisms or procedures (e.g.,
operating system, processors, language) shall be provided.

PO-3 Privilege Association with Individual Actions

1. TCB privileges needed by individual functions, or groups of
functions, of a functional component shall be identified. Privileged
TCB calls or access to privileged TCB objects, such as user and group
registration files, password files, security and integrity-level
definition file, role definition file, audit-log file shall also be
identified. It shall be possible to associate TCB privileges with TCB
operations performed by administrative users.

 2. The modules of a TCB function shall be associated only with the
privileges necessary to complete their task.TCB privileges needed by
individual actions of a module (i.e., function invocations) shall be
identified (e.g., privileges shall be assigned to actions that bypass
access controls, such as disclosure and modification of user objects).
Each action shall be associated only with the privileges necessary to
complete its task.

3. Support for product privilege implementation and association with
TCB actions provided by lower-level mechanisms or procedures (e.g.,
operating system, processors, language) shall be provided.

PO-4 Dynamic Privilege Association with Individual Actions

1. TCB privileges needed by individual functions, or groups of
functions, of a functional component shall be identified. Privileged
TCB calls or access to privileged TCB objects, such as user and group
registration files, password files, security and integrity-level
definition file, role definition file, audit-log file shall also be
identified. It shall be possible to associate TCB privileges with TCB
operations performed by administrative users.

2. TCB privileges needed by actions of a functional component (i.e.,
function invocations) shall be identified (e.g., privileges shall be
assigned to actions that bypass access controls, such as disclosure
and modification of user objects). Each action shall be associated
only with the privileges necessary to complete its task. The
identified TCB privileges shall be used by each functional component
to restrict the propagation of errors and failures of security
mechanisms that may lead to protection policy violations. TCB
functions allowing each component to acquire individual privileges up
to the maximum necessary and allowed, and to drop those privileges
(e.g., functions implementing privilege bracketing) shall be defined.
These functions shall be used to limit the use of privileges that
allow the bypassing of security policy controls within the TCB.

3.        Support for product privilege implementation and association
with TCB actions provided by lower- level mechanisms or procedures
(e.g., operating system, processors, language) shall be provided.

4.3.14    Rated TCB Ease-of-Use Components

The rating of the TCB ease of use components reflects the scope and
coverage of the protection functions in covering common product
configurations. At level EU-1, the requirements reflect the general
need for special administrative functions, not merely using an editor
to modify administrative files or default options for security
parameters. The coverage of the ease-of-use requirements is extended
at level EU-2 by providing for fail-safe defaults and user-settable
defaults for defined (privileged and unprivileged) subjects and
objects, and the means by which applications can protect themselves
and their objects from unauthorized use. The scope of the requirements
is extended at levels EU-3 and EU-4 by enlarging the set of subjects
and objects affected by this requirement to include subjects and
objects of common configurations, and all subjects and objects,
respectively.

EU-1 Ease of Security Management

1. The TCB shall provide well-defined actions to undertake
administrative functions. Default options shall be provided for
security parameters of administrative functions.

EU-2 Ease of Application Programming

1. The TCB shall provide well-defined actions to undertake
administrative functions. Default options shall be provided for
security parameters of administrative functions.

The TCB shall include fail-safe defaults for the policy attributes of
the defined subjects and objects, as well as user-settable defaults
for the defined subjects and objects.

2. The TCB shall provide well-defined application programming
interfaces and programming functions (e.g., libraries) for all its
policies to support the development of applications that can define
and enforce security policies on application- controlled subjects and
objects. The TCB shall enable user-controlled reduction of access
rights available to applications.

EU-3 Common Configuration Coverage

1. The TCB shall provide well-defined actions to undertake
administrative functions. Fail-safe default options shall be provided
for security parameters of administrative functions.

The TCB shall include fail-safe defaults for the policy attributes of
subjects, objects (e.g., devices) and services used in common system
configurations, as well as user-settable defaults for these subjects
and objects.

2. The TCB shall provide well-defined application programming
interfaces and programming functions (e.g., libraries) for all its
policies to support the development of applications that can define
and enforce security policies on application- controlled subjects and
objects. The TCB shall enable user-controlled reduction of access
rights available to applications.

EU-4 Complete Configuration Coverage

1. The TCB shall provide well-defined actions to undertake
administrative functions. Fail-safe default options shall be provided
for security parameters of administrative functions.

The TCB shall include fail-safe, user-settable defaults for the policy
attributes of all subjects, objects (e.g., devices), and services.

2. The TCB shall provide well-defined application programming
interfaces and programming functions (e.g., libraries) for all its
policies to support the development of applications that can define
and enforce security policies on application- controlled subjects and
objects. The TCB shall enable user-controlled reduction of permissions
available to applications.

4.4       Bibliographic Notes

TBD.  

Chapter 5.

DEVELOPMENT ASSURANCE REQUIREMENTS

5.1       Overview

Development assurance is concerned with showing that a specific IT
product satisfies the functional requirements of a protection profile.
This chapter defines assurance requirements that are used in
protection profiles to define an IT product developer's (i.e.,
producer's) responsibilities in establishing the correctness of the
product's security functions. These requirements are partitioned into
components that identify unique concerns a developer must address
during the product design, implementation, documentation, support, and
maintenance. By addressing these concerns, the developer can increase
consumer and evaluator confidence that the product satisfies the
functional requirements of a protection profile. Varying degrees of
confidence can be established using different combinations and subsets
of the assurance components.

The assurance components defined in this standard have evolved from
computer security and engineering experience in demonstrating the
correctness of IT hardware and software protection functions. The
components also include requirements of existing criteria and reflect
the interpretations of those requirements in practice during the past
decade. The components are specified in a product- independent manner
and, thus, are applicable to a wide set of products and protection
functions. To enable the profile developers to establish varying
degrees of confidence in the correctness of product protection
functions, each assurance component is rated based on a set of
well-defined parameters.  These ratings can also help establish the
relationships between, and the harmonization of, the assurance
requirements defined by this standard and those of existing standards.

This chapter is divided into four sections. The remainder of this
section defines four classes of development assurance components and
describes the types of components in each class. The second section
presents a description of each type of assurance component. The third
section contains the rated assurance components. The last section
includes a bibliography of useful literature references. (Appendices D
and E present some of the technical underpinnings used in deriving the
requirements of the modular decomposition and penetration analysis
components.)

Classes of Development Assurance. The development assurance components
have been partitioned into four classes reflecting distinct product
development tasks: (1) development process, (2) operational support,
(3) development environment, and (4) development evidence. The four
classes, and associated components, are illustrated in Figure 5

Development Process. The development process class consists of the
following four assurance components that identify specific activities
the developer must undertake during the design, implementation, and
analysis of an IT product: (1) TCB property identification, (2) TCB
design, which includes TCB element identification, interface
definition, modular decomposition, structuring support, and design
disciplines used, (3) TCB implementation support, and (4) TCB testing
and analysis, which includes security functional testing, penetration
analysis, and covert channel analysis. Since the development process
includes the primary assurances for the correct implementation of
protection functions, its components are included in most profiles.
The selection of different component levels within a profile is
determined by the assurance goals established for the profile, by the
dependencies among assurance components, and by the dependencies
between the profile functional and assurance components.

Operational Support. The operational support class consists of
assurance components that a developer must satisfy to enable users to
operate the product securely. This class includes the following four
components: (1) user guidance, (2) administrative guidance, (3) flaw
remediation, and (4) trusted generation. These components require the
developer to convey clearly the operational procedures for TCB
generation, installation, operation, and flaw correction. They also
require the developers to provide tools and/or procedures to properly
install and configure the product. The first two components of this
class are included in all profiles whereas the last two are included
in profiles that target medium and high-assurance products. The
selection of different component levels within a profile is largely
determined by assurance goals and by the dependencies among assurance
components.

Development Environment. The development environment class consists of
assurance components that refer to quality of the development,
maintenance, and distribution-control process for secure products.
This class includes the following three components: (1) life cycle
definition, (2) configuration management, and (3) trusted distribution
of the product. These components require that the developer enforces a
discernible engineering process to develop and maintain a product,
establishes control over the product configuration during development
and maintenance, and employs technical measures for the detection or
prevention of uncontrolled TCB modification during product
distribution. A key assurance aspect of these components is the extent
to which the development process and operational support requirements
are integrated into the developer's engineering processes. The
development environment components are included in profiles that
target medium and high-assurance products. The selection of different
component levels within a profile is largely determined by assurance
goals and by the dependencies among assurance components.

Development Evidence. The development evidence class consists of
assurance components that describe the documentation that a developer
must produce and maintain to show that the other assurance
requirements have been satisfied. The components of the development
evidence class establish the level of detail and scope of the
developer documentation and include requirements for evidence of: (1)
TCB protection properties, (2) product design and implementation, (3)
product testing and analysis, and (4) product support. These
components are included in all profiles. The selection of different
component levels within a profile is determined exclusively by the
dependencies among assurance components, since these levels must
mirror to a large extent the levels of the other development assurance
components.

5.2       Development Assurance Components

5.2.1     Development Process

5.2.1.1   TCB Property Identification

The identification of TCB properties is the prima facie assurance that
the consistency of the TCB's behavior with respect to the protection
profile's functional requirements can be established. These properties
are the baseline set of protection claims for a TCB. They enable the
generation of test conditions for security policy analysis and
penetration testing. They also help define the IT product's protection
capabilities in product documentation.

The first step to demonstrate that a product satisfies the functional
requirements of a protection profile is to produce the description of
the TCB protection properties. This is achieved by (1) identification
of the TCB elements intended to implement the functional requirements,
and (2) justification of how and why the identified elements implement
these requirements. Repeating this step for each functional
requirement of a protection profile produces a description of the set
of protection properties. Since a functional requirement can be
satisfied by different product architectures and operating systems,
the set of protection properties will illustrate both the developer's
philosophy of protection and the protection architecture choices made.

Demonstrating the consistency of the TCB behavior with the
requirements of the profile functional components can be performed
with different degrees of rigor. For example, consistency verification
can be performed by an informal process of tracing the requirements
within a product's TCB and providing a simple description of the
claimed TCB property.  This informal process relies primarily on
informal functional requirements (i.e., as provided by the protection
profile) and on descriptions of TCB elements. The primary assurance
gained from this informal process is derived from the consistency and
coherence of the profile requirements, and from the explanation of why
the TCB elements satisfy those requirements. This explanation will
reveal whether the developer's interpretation of the profile
functional requirements in the product TCB is valid.

The degree of rigor with which the demonstration of consistency
between the TCB elements and the functional requirements can be
performed increases whenever formal or informal models of the
functional requirements are used.  Models capture the essence of the
functional requirements by providing policy properties that must be
maintained by the TCB. For example, the Bell-LaPadula Model contains
two policy properties of mandatory access control. These examples are
the *-property (star property), which allows a subject write access to
an object only if the security level of the subject equals that of the
object, and the simple security condition, which allows a subject read
access to an object only if the security level of the subject
dominates that of the object. A discretionary access control model may
have a policy property stating that "only the owner of an object can
distribute or review permissions to that object." A TCB isolation
model may have an isolation property stating that "a parameter passed
by address to a TCB function invocation may only refer to the
invoker's space, and not to the TCB space or to another subject
space."

Tracing precise requirement properties among the TCB elements is
likely to be significantly more effective than tracing profile
requirement descriptions, which are informally expressed. However, the
precision with which the requirement properties are expressed by a
model generally depends on the type of model and the degree of model
formalism. Furthermore, the tracing process itself also depends on the
degree of precision and formalism with which the TCB elements are
described. For example, precision is enhanced by providing Descriptive
Interface Specifications (DIS) instead of informal descriptions of the
TCB interface found in product reference manuals, or by providing
Formal Interface Specifications (FIS) instead of the DIS. The use of
formal models and DIS/FIS of the TCB makes it possible to perform the
tracing process by (in)formally interpreting the requirements model in
the DIS/FIS. By showing that a documented (in)formal interpretation of
a requirement model in a TCB is valid, the properties of the TCB can
be stated (in)formally with a higher degree of rigor.

5.2.1.2   TCB Design

The TCB design component comprises several subcomponents that provide
product development assurance. These subcomponents are (1) element
identification, (2) interface definition, (3) modular decomposition,
(4) structuring support, and (5) design disciplines. Details of each
component follow.

5.2.1.2.1 TCB Element Identification

The importance of the TCB element identification as an assurance
component derives from the fact that all other assurance methods rely
on it either directly or indirectly.  Intuitively, the TCB includes
all code and data structures that implement protection functions of a
TCB (i.e., functional components). Although this intuitive definition
of the TCB elements is precise, in practice the identification of
these elements can be a challenging activity for the following three
reasons.

First, TCBs may include code and data structures that are irrelevant
to the protection components. In practice, products often implement
functions and mechanisms that include security irrelevant elements and
whose main purpose is not protection. Separating the protection
relevant from the irrelevant elements within these functions can
sometimes be a very difficult task because of the complexity and
performance implications of the interfaces that are introduced between
the protection relevant and irrelevant elements of a function.
Although desirable for assurance purposes, in general, it may be
impractical to remove all security irrelevant code from the TCB.

Second, the TCB is defined with respect to a set of protection
requirements and a set of assurances necessary to demonstrate that the
TCB satisfies those requirements. A product may include protection
functions for which assurance is not required. Nevertheless, these
protection functions in practice become part of the TCB since they
affect the overall behavior of the product in other environments. For
example, separating different TCBs for functions implementing
different security policies may be impractical. The TCB of a product
may include protection functions to support confidentiality,
integrity, and availability to various degrees, but the only required
policy support assurances may be for confidentiality. Providing a
separate TCB for availability and integrity components is impractical
for most products and unjustifiable, based on the incremental
assurance benefits that might be derived from the removing these
components from the confidentiality TCB. In practice, the
determination of which components must be included in a TCB cannot be
made exclusively based on the specific-policy relevance of the code
and data structures.

Third, sometimes it is challenging to determine whether a functional
component is security-policy relevant without the benefit of a formal
model of a security policy. For example, if a formal state-transition
model is available, any TCB function whose execution may cause a state
transition is, by definition, security-relevant. However, in the
absence of a formal model, one can determine whether a function is
security-policy relevant only if the function implements security
policy checks. Among the functions that invoke other functions
implementing security or accountability checks indirectly, few are
required to be part of the TCB since, by definition, they could be
placed outside the TCB and could invoke a TCB system call.

Since many of the IT product TCBs will include both
protection-relevant and irrelevant elements, the identification of
these elements (1) must separate the protection-relevant elements from
the irrelevant ones (if any), and (2) must provide a rationale for the
retention of the protection-irrelevant elements within the TCB.

5.2.1.2.2 TCB Interface Definition

To analyze the protection of the TCB domain, one must first define
interface of the TCB to external subjects. This interface establishes
the boundary between the TCB elements and unprivileged subjects. The
TCB protection behavior is defined at this interface.

The definition of the TCB interface is required by several assurance
methods, including security and penetration analysis and testing,
interpretation of security requirements and models within a TCB, and
covert channel analysis and testing. Establishing the TCB interface
requires that all TCB elements be identified to determine whether they
present an interface (i.e., are visible) to an unprivileged subject.

The TCB interfaces typically consist of several components including
(1) the command interfaces, (2) the application programming interfaces
(i.e., system calls), and (3) the machine/processor interface (i.e.,
processor instructions).  The command interface consists of the set of
TCB commands that can be input via user-oriented devices such as
keyboards, mouse devices, and joysticks; other command interfaces to a
TCB may include various sensor input interfaces for real-time devices
and processes external to the TCB. The application programming
interface consists of all the TCB system calls that an application
program can make, to include the signal, trap, and fault interfaces
which an application program may invoke. Similarly, the
machine/processor interface to the TCB consists of all instructions
that refer to TCB internal data structures, (e.g., memory registers,
segment and page tables), and processor registers (e.g., process
status registers, segment, page table, capability, cache, and
address-translation registers).

Determining the TCB interface cannot be simply performed by listing
all commands, system calls, and processor instructions. Not all
commands, system calls, or instructions may, in fact, represent a TCB
interface. For example, some commands and library calls may refer to
programs and data structures that are in user space. Similarly, some
instructions may refer to operands that are already loaded into
user-addressable registers and, therefore, need not include memory
protection checks. Some command and application program interfaces may
overlap and not represent distinct TCB interfaces. For example, two
distinct command interfaces that are implemented by command processors
running in user space may invoke the same application program
interfaces of the TCB. Consequently, the two distinct commands do not
provide distinct TCB interfaces. In some products, the TCB includes
the entire application and presents a command interface to its users
with no distinct application program interface or processor interface.
For example, in some real- time, process-control systems, the external
TCB interface may represent sensor input, but no external user or
application program input. In this case the TCB components and the TCB
external interface must still be identified because of attempts by
external processes to provide the sensor input.

The TCB interface definition requires that all TCB functions which are
visible outside the TCB be defined, including their calling
conventions, parameters, parameter types, order, and exceptions
signalled. The parameter types must include, in addition to the call
parameters, all of the subjects, objects, and access control
attributes affected by that call. Whenever covert channel analysis,
penetration analysis, and resource- constraint analysis are required,
the TCB interface definition must also include all effects of a call,
including the direct visibility and alterability of internal TCB
variables and functions. In these cases, the traditional definitions
of TCB interfaces provided in product reference manuals must be
augmented by additional elements. In all cases, all TCB interfaces
must be included. No interface may remain undocumented, and no
temporary interfaces for testing or performance monitoring, for
example, should be included.

5.2.1.2.3  TCB Modular Decomposition

Modular design and implementation constitutes a sound engineering
practice in general, and therefore, this technique represents sound
engineering practice for IT product development assurance. Reading,
understanding, maintaining, testing, and evolving a software product
is helped by modularity. "Understanding" includes identifying product
parts and their relationships, and determining important product
properties. Although modular design and implementation is not a
security-specific assurance, products that employ it offer the
following assurance advantages: (1) an incremental, divide-and-conquer
approach to determining correctness properties; (2) an incremental,
divide-and- conquer approach to product development, with many
individuals per development team possible; (3) replacement
independence of product parts based on well-defined interfaces and
uniform reference (i.e., references to modules need not change when
the modules change); and (4) an intuitive packaging of product
components with ease of navigation through the product, module by
module.

Appendix D provides some of the technical underpinnings used in
deriving the requirements of the TCB modular decomposition.

5.2.1.2.4 TCB Structuring Support

The TCB structuring using modular decomposition is necessary for
understanding, maintaining, testing, and evolving a product. However,
the modular decomposition does not necessarily reflect the run-time
enforcement of TCB structuring since the separation of modules may not
necessarily be supported by run-time mechanisms. The run-time
enforcement of internal TCB structuring adds a measure of assurance
that the TCB elements that are critical to the enforcement of the
protection functions are separated from non-critical elements. Also,
the use of run-time enforcement of TCB structuring helps separate
protection-critical elements of the TCB from each other, thereby
helping enforce the separation of protection concerns and minimizing
the common mechanisms shared between protection critical elements.

Run-time enforcement of TCB structuring is useful in cases when
compile-time structuring either cannot be enforced (e.g., the
programming language does not enforce modular decomposition) or can be
circumvented by transient hardware failures. In either case, software
errors may propagate through the entire TCB and corrupt
protection-critical elements. However, run-time enforcement of TCB
structuring is not considered to be a protection function because it
does not directly counter any security threat posed by unprivileged
subjects. Unlike the support for the least-privilege TCB operation,
which reduces the possibility that the penetration of a TCB functional
component affects other components, the run-time support for TCB
structuring has no direct protection use. Use of processor mechanisms
to support TCB structuring is desirable for minimizing the performance
penalties that will undoubtedly arise if these mechanisms were
provided by run-time software.

A key assurance requirement for run-time mechanisms that support TCB
structuring is that of conceptual simplicity and well-defined
semantics. Conceptually simple mechanisms are generally easy to
understand, and describe, define, or formally specify. Well-defined
semantics enable the rigorous analysis of TCB structuring and increase
the confidence that the internal TCB structuring is enforced
correctly. The use of architecture features for run-time enforcement
of TCB structuring into security kernels and privileged processes
ranges from process-isolation features to the use of ring or
domain-of-protection mechanisms. Among the architecture and operating
system features employed for enforcing the TCB structuring,
segmentation and paging has been used to separate logically distinct
storage objects with separate access- control attributes. The
separation of subsystem and module data structures and code within a
TCB is sometimes supported by ring or domain-of-protection mechanisms
with separate entry point support and protection (illustrated by ring
or domain gates). Thus, the TCB can be described in terms of the
different rings or domains of protection it employs for its
structuring into subsystems and modules, and in terms of the
segmentation or paging mechanisms it employs for structuring its
internal code and data structures into logically distinct storage
objects.

5.2.1.2.5 TCB Design Disciplines

Modularly decomposing the TCB provides many benefits.  However, it
does not minimize the complexity of the TCB or remove the
protection-irrelevant elements from the TCB.  Leaving
protection-irrelevant elements within a TCB necessarily results in a
significantly larger assurance effort because these elements must be
included in the TCB's analysis. Furthermore, modularly decomposing the
TCB does not necessarily minimize the sharing of global variables
between modules (i.e., the data structures used in a module need not
be "hidden" within the module), and does not necessarily help layer
the TCB (e.g., the cyclic dependencies among TCB modules cause lower
layers to require services of higher layers).  Consequently, the
analysis of the TCB could become very complex for medium size (e.g.,
500K to 1M lines of source code) or large products (e.g., over 1M
lines of source code).

Several design disciplines enable the rigorous analysis of TCB
security properties which is necessary for high-assurance products.
First, the complexity of the TCB must be reduced by minimizing the
number of protection-irrelevant elements that are left within the TCB.
This requirement, together with the functional requirements of
reference mediation and TCB protection, is the basis for demonstrating
that the TCB implements the reference validation mechanism, which is
important for the rigorous analysis of access control policy
implementations (see Appendix B).

Second, the TCB structuring must employ the use of data hiding to
minimize the sharing of global variables within the TCB.  This
requirement, together with the use of other design abstractions such
as functional and control abstractions, significantly enhances the
ability to structure the modules of a TCB into sets of (ordered)
layers and to precisely determine the protection properties of those
layers (e.g., derive abstraction and layer properties). As a result,
the formal analysis of the TCB modules becomes possible.

Third, extensive use of high-level synchronization constructs, such as
monitors and message passing, makes the analysis of the TCB behavior
possible despite the occurrence of asynchronous events. Further
structuring of TCB processes into threads decreases the cost of using
processes as a TCB structuring mechanism, thereby enhancing the
development of TCBs containing small independent modules sharing
process space.

5.2.1.3   Implementation Support

The implementation support component is an assurance method that can
be used to simplify the task of establishing the correspondence
between the product as built and the product design. The ultimate test
of the development process applied to a TCB is how well the TCB
implementation satisfies the protection profile requirements. Testing
can establish that the TCB implementation exhibits at least the
properties needed to satisfy the profile requirements. Analysis,
however, is needed to establish that the implementation does no more
than the profile requires. At a minimum, a complete analysis requires
that the source code be available. For more detailed analysis, the
system architecture and design are also necessary to simplify the task
of tracking the required TCB properties from requirements down to
implementation. As more rigor is brought to the process of design,
more analysis can be done at higher levels of abstraction. To complete
the chain and effectively leverage the previous analysis, the
implementation should be organized and packaged in the same manner as
the design to simplify the process of mapping the design to the
implementation.

5.2.1.4   TCB Testing and Analysis

A significant measure of product development assurance is derived from
the methods used to test and analyze a TCB provides. These methods,
which include (1) functional testing, (2) penetration analysis, and
(3) covert channel analysis, are described below.

5.2.1.4.1 Functional Testing

Functional testing is an assurance method for establishing that the
TCB interface exhibits the properties necessary to satisfy the
requirements of its protection profile.  Functional testing is
especially valuable in providing assurance that the TCB satisfies at
least its functional protection requirements. It does establish that
the TCB does no more than expected. The developer's functional testing
objective is to uncover all design and implementation flaws that would
enable a user external to the TCB to violate the product security
policy. Such flaws would invalidate the developer's claim of
compliance with the protection profile.  The developer should perform
functional testing whenever the TCB changes as a result of design
analysis, independent evaluation, product evolution, or repair of
security flaws identified by either consumers or previous functional
testing.

All approaches to security functional testing require the following
four major steps:

Test plan development. The test plans consist of test conditions, test
data including the expected test outcomes, and test coverage analysis.
Test plans must be developed for all TCB primitives exported at the
TCB interface.

Test program development. The test programs developed must reflect the
test conditions, test data, and coverage described in the test plans.

Test procedure description. The test procedures provide instructions
for using individual test programs, and complete test suites.

Test result analysis. The analysis of the test results verifies that
the test outputs correspond to the expected outcomes defined in the
test plans.

Functional testing should be done on a copy of the TCB that is
configured and installed as recommended in product documentation. The
product should be operating in a normal mode, as opposed to
maintenance or test mode. Tests should be done using user-level
programs that cannot read or write internal TCB data structures or
programs. New data structures and programs should also not be added to
a TCB for security testing purposes, and special TCB entry points that
are unavailable to external user programs should not be used. If a TCB
is tested in maintenance mode using programs that cannot be run at the
user level, the security tests would be meaningless because assurance
cannot be gained that the TCB performs user-level access control
correctly. If user-level test programs could read, write or add
internal TCB data structures and programs, as would be required by
traditional instrumentation testing techniques, the TCB would lose its
isolation properties. If user-level test programs could use special
TCB entry points not normally available to external users, the TCB
would become circumventable in the normal mode of operation.

Functional testing should be conducted according to procedures defined
in a test plan. Significant events during testing should be placed in
a test log. As testing proceeds sequentially through each test case,
the developer's test team should identify flaws and deficiencies that
will need to be corrected. After changing TCB elements (i.e.,
hardware, firmware, or software) to correct these flaws and
deficiencies, the developer should repeat the tests that identified
problem(s) as well as any other tests related to the changed TCB
elements. When the development team has corrected all functional
problems and has analyzed and retested all corrections, a test report
should be written and made a part of a functional testing report.

5.2.1.4.2 Penetration Analysis

The penetration analysis of a computer product is a separate assurance
concern from security policy design and/or implementation. Different
TCBs may exhibit the same degree of penetration resistance, but
implement widely different security policies, or may implement the
same policies, but exhibit different degrees of penetration
resistance.  Furthermore, penetration analysis is an important
assurance component since the effectiveness of all security policies
rely on the penetration resistance of a TCB.

The penetration analysis of a TCB consists of the identification and
confirmation of flaws in the design and implementation of protection
functions that can be exploited by unprivileged users or application
programs. Unlike security policy analysis and security functional
testing, penetration analysis identifies TCB flaws that are not
necessarily related to security policy design and implementation. For
example, penetration analysis identifies vulnerabilities of reference
mediation and TCB protection functions independent of the functions
that implement security policy support. This implies that the type of
policy that controls the subjects' access to objects is relevant to
security functional analysis and testing, but not to penetration
testing. Instead, penetration testing concerns include whether TCB
elements may be surreptitiously viewed or modified, and whether TCB
internal functions, which are intended to be invisible outside the
TCB, can in fact be invoked under the control of unprivileged users or
applications. Furthermore, penetration analysis includes assessments
of the strength of TCB protection functions and of vulnerabilities of
protection function implementation and operational use.

Appendix E presents some of the technical underpinnings used in
deriving the requirements of the penetration analysis component.

5.2.1.4.3 Covert Channel Analysis

Covert channel analysis is an assurance component that is required
whenever nondiscretionary confidentiality or integrity policies are
used to control information flow. It consists of (1) the
identification of covert channels within a TCB, (2) the estimation of
the maximum bandwidth of each channel, and (3) the testing of the
covert channel handling functions.

Identifying a covert channel requires discovery of a TCB internal
variable and one or more TCB interfaces that permit the alteration and
viewing of variable values in violation of the information-flow policy
imposed by nondiscretionary access controls. Both storage and timing
channels use at least one variable for the transmission of the
information being transferred between the sender and receiver.
Multiple TCB interface functions may be necessary for viewing or
altering a variable because after viewing or altering a variable, the
sender and/or the receiver may have to set up the transmission
environment for sending and/or reading the next bit. The covert
channel variable may be a software, firmware, or hardware variable. In
addition to TCB primitives and variables implemented by kernel and
trusted processes, covert channels may use hardware-processor
instructions and user-visible registers. Thus, complete covert channel
analysis should take into account a product's underlying hardware
architecture, not just kernels and trusted processes. Therefore, the
primary goal of covert-channel identification is that of discovering
all TCB variables and TCB interfaces that can be used to alter or view
these variables. A secondary goal of covert channel identification is
that of determining the TCB elements where time delays, noise (e.g.,
randomized table indices and object identifiers, spurious load), and
audit code may be placed for decreasing the channel bandwidth and
monitoring its use.

The term "bandwidth" is introduced to denote the rate at which
information is transmitted through a channel. This use of the term
bandwidth can also be related to the notion of "capacity". The
capacity of a channel is its maximum possible error-free information
rate in bits per second. Thus, the primary goal of covert-channel
bandwidth estimation is to determine the maximum possible error-free
transmission rate, measured in bits-per-second, through a covert
channel. The maximum covert channel bandwidth can be estimated using
standard information theory methods. Performance measurements of the
TCB are generally necessary to determine parameters required by the
information theory methods.

Covert channel testing is required to demonstrate that covert channel
handling functions (e.g., elimination, bandwidth limitation, audit)
chosen by product designers operate correctly. Testing is also useful
to confirm that the potential covert channels discovered in the
product are in fact real channels. Furthermore, testing is useful when
the handling functions use variable bandwidth-reduction parameters
(e.g., delays) that system administrators (e.g., auditors) can set.

In contrast with maximum bandwidth estimation, which provides upper
bounds for covert channels before handling functions are used, covert
channel testing always requires that actual measurements be performed
to determine the covert-channel bandwidths after the chosen handling
functions are implemented in a product. (Of course, maximum bandwidth
estimation can also be used after handling functions are implemented
in a product.) Test plan documentation, including test conditions,
test environment set-up, test data, expected test outcome, and actual
test result documentation must be provided.

5.2.2     Operational Support

The operational support class of components addresses the developer's
and users' responsibilities subsequent to IT product delivery. The
developer's responsibilities include providing the necessary guidance
to the consumer regarding the proper configuration, initialization,
use, and administration of the IT product. The consumer is assumed to
follow this guidance, however, fail-safe defaults may be provided to
preclude consumer difficulties. An issue of concern to consumers is
the identification and remediation of security flaws that may be
discovered subsequent to IT product delivery. This component includes
requirements for such identification and remediation.

5.2.2.1   User Guidance

Requirements for user guidance help ensure that product users are able
to operate the product in a secure manner (e.g., the usage constraints
assumed by the protection profile must be clearly explained and
illustrated). The user is defined as a person who operates the
product, but has no special privileges to affect the configuration of
the product. The user for most IT products is assumed to be a person
with little or no computer experience, but this need not always be the
case.

User's guidance is the primary means available to the developer for
providing the IT product users with the necessary background and
specific information on how to correctly use the product's protection
functions. User guidance must do two things. First, it must explain
how the protection functions of a specific product work, so that users
are able to consistently and effectively protect their information.
Second, it must explain the user's role in maintaining the IT
product's security.

The scope of the user's guidance should be limited to documenting only
the protection functions available to all users and only the
responsibilities that all users have for product security. To
accomplish this, the user's guidance documentation should explain what
protection functions are present in the product and why, how the
protection functions work, and how to use the functions properly. The
material should be easy to locate in the IT product documentation and
should be clear, concise, and complete.

5.2.2.2   Administrative Guidance

Requirements for administrative guidance help ensure that the
environmental constraints assumed by the protection profile are
understood by administrators and operators of the IT product.  The
administrator is defined as a person who has the special privileges
needed to affect the product configuration and set the user and
product security parameters. The operator is defined as a person who
has the special privileges needed to affect the routine operation of
the product after it has been configured. The administrator has the
primary responsibility for the security of the IT product. The
operator is often assumed to also have some responsibility for the
secure use of the IT product.

Administrative guidance is the primary means available to the
developer for providing the IT product administrators with detailed,
accurate information of how to: (1) configure and install an IT
product, (2) operate the IT product in a secure manner, (3) make
effective use of the product's privileges and protection mechanisms to
control access to administrative functions and databases, and (4)
avoid pitfalls and improper use of the administrative functions that
would compromise the TCB and user security.

Administrator guidance should clearly illustrate necessary
administrator actions (e.g., cite actual system commands and
procedures). Although a high level of detail in illustrating key
security concepts would benefit administrative users, the
administrator guidance should not become a training manual in the
areas of computer security and system administration.  Administrator
familiarity with the notion of IT product security should be assumed.
Administrator guidance should include examples of both proper use and
warnings about consequences of misuse of administrative functions,
procedures, privileges, and databases. Administrator guidance should
be easy to locate in the IT product documentation and should be clear,
concise, and complete.

5.2.2.3   Flaw Remediation

Flaw remediation is an operational support assurance component for
ensuring that flaws discovered by the IT product consumers will be
tracked and corrected while the product is supported by the developer.
While compliance with the flaw remediation requirements of a
protection profile cannot be determined when a product is evaluated,
it is possible to evaluate the procedures and policies that a
developer has in place to track and repair flaws and distribute the
repairs to affected consumers.

There are three parts to the flaw remediation process. First, the
developer must be prepared to receive, validate, and track consumer
reports of TCB flaws. Second, the developer must be prepared to devote
resources to identifying one or more corrections to each flaw and
maintaining these correction(s) with the reported flaws. Finally, the
developer must have a process in place for distributing the flaw
corrections to affected consumers.

5.2.2.4   Trusted Generation

Trusted generation is an operational support assurance component for
ensuring that the copy of the IT product's TCB that is configured and
activated by the consumer will exhibit the same protection properties
as the master copy of the IT product's TCB that was evaluated for
compliance with the protection profile. The trusted generation
procedures must provide some confidence that the consumer will be
aware of what product configuration parameters can affect the
protection properties of the TCB. The procedures must encourage the
consumer to choose parameter settings that are within the bounds
assumed during the product evaluation.

5.2.3     Development Environment

The development environment class of components addresses the
developer's engineering processes for product life cycle management,
product configuration management, and trusted product distribution.
These components are reviewed below.

5.2.3.1   Life Cycle Definition

Life cycle definition is an assurance component for establishing that
the engineering practices used by a developer to produce the IT
product's TCB include the considerations and activities identified in
the development process and operational support requirements of the
protection profile. Consumer confidence in the correspondence between
the protection profile requirements and the product's TCB is greater
when security analysis and the production of evidence are done on a
regular basis as an integral part of the development process and
operational support activities.

The developer must explain the processes used to develop and maintain
the product's TCB. The developer must also define the tools being used
to analyze and implement the TCB. The higher levels of the component
also require that the processes used by the developer are disciplined
(i.e., consistent, measurable, and repeatable) to achieve quality
products. It must be emphasized that this component imposes no
constraints on the specific process chosen by the developer other than
that it be sufficient to incorporate the stated requirements of the
protection profile. This component simply establishes the degree of
rigor required for documenting and demonstrating compliance with the
developer's defined process.

5.2.3.2   Configuration Management

Configuration management is an assurance component for ensuring that
the IT product's TCB configuration remains consistent and complete
during the product life cycle, and that changes to the TCB do not
adversely affect the protection properties of the TCB. Configuration
management must ensure that additions, deletions, or changes to the
TCB do not compromise the correspondence between the TCB
implementation and the requirements of the protection profile. This is
accomplished in the configuration management component by requiring
that the developer have procedures and tools that ensure that the TCB
and its documentation are updated properly when the TCB changes.
Configuration management is a sound engineering practice that also
provides the final element of traceability between the protection
profile requirements and the product delivered to the consumer.
Specifically, configuration management provides confidence that the IT
product's TCB and documentation used for evaluation are the ones
prepared for distribution to consumers.

The requirement of configuration management refers to four separate
tasks: configuration identification, control, status accounting, and
auditing. For every change that is made to the IT product, the changed
version of the product, its functional requirements, and design must
be identified. Control over the product configuration means that every
change to the product documentation, hardware, software, or firmware
is the subject of review and approval by a change-control authority.
Configuration status accounting is responsible for recording and
reporting on the configuration of the product throughout the change.
Finally, through the process of configuration audit, the completed
change can be verified to be functionally correct and consistent with
the protection properties the IT product. The procedures and tools
used to implement the four tasks are documented in a configuration
management plan to ensure that development personnel understand their
responsibilities for configuration management. Any deviation from the
configuration management plan could contribute to the failure of the
configuration control of an IT product and compromise the trust in the
product's ability to satisfy the protection profile.

5.2.3.3   Trusted Distribution

Trusted distribution is an assurance component for ensuring that the
master copy of the IT product's TCB sent from the developer is the
same one received by the consumer. The trusted distribution component
is intended to counter the possibility that the TCB could be
intentionally subverted during shipment from the development
environment to the consumer.

At a minimum, the trusted distribution techniques must allow the
consumer to determine if the TCB copy received has been modified
during shipment. The trusted distribution techniques should also be
designed to prevent any modifications from occurring during shipment.

5.2.4     Development Evidence

The development evidence class of components addresses requirements
for the documentation of all development process, operational support,
and development environment activities. The requirements for evidence
are stated in four components: TCB Protection Property, Product
Development, Product Analysis and Testing, and Product Support. These
evidence components are elaborated below:

5.2.4.1   TCB Protection Properties

The documentation of the TCB protection properties includes the
definition of the functional component requirements, their modeling
(if any), and their interpretation within a product's TCB.

For each functional requirement of a protection profile, a
description, definition (an informal, descriptive specification), or a
formal specification of the TCB components and their operation
corresponding to that requirement must be provided. This
correspondence must be documented to the extent necessary to establish
that the functional requirements are, in fact, supported by TCB
elements and interfaces. Alternate ways of presenting the evidence of
this correspondence are possible. For example, the documentation may
select TCB elements and interfaces, and for each individual set of
selected elements and interfaces, it may identify the corresponding
functional component requirement.

The correspondence between the functional component requirements and
the TCB elements and interfaces can be established and documented in
varying degrees of rigor. In addition to the above, the developer must
document the (in)formal models of the functional component
requirements, when higher levels of development assurance are desired.
Providing specific models that satisfy the requirements of a profile
increases the degree of rigor with which the correspondence can be
established between the profile requirements and the TCB elements and
interfaces. The interpretation of a model in a TCB must also be
documented.  However, as noted in the development assurance
components, not all functional requirements must be modeled. Thus, not
all aspects of this correspondence could be established at same degree
of rigor. (The required modeling areas are spelled out in the
assurance components.) Nevertheless, all aspects of the correspondence
between the functional requirements and TCB elements and interfaces
must be documented.

5.2.4.2    Product Design and Implementation

The TCB design evidence includes the documentation of the (1)
interface, (2) elements, (3) modular decomposition, (4) structuring
support, and (5) design disciplines used. The TCB implementation
evidence includes (1) the source code, and (2) the processor hardware
and firmware specifications. In addition to the documentation for each
stage of the development process, the design and implementation
evidence should contain descriptions/definitions/specifications of the
correspondences between the TCB design and the implementation.

In principle, the product design and implementation should follow a
development sequence beginning with the specification of the TCB
protection properties and ending with the implementation code and
processor specifications. In practice, however, the different
development sequences may, in fact, be executed in successive
refinements, with specifications and correspondences between design
and implementation being performed out of sequence. Alternative
development sequences are acceptable, provided that they lead to
products whose structures are accurately reflected in the design and
implementation documentation.

5.2.4.3    Product Testing and Analysis

The product testing and analysis evidence consists of the
documentation of functional testing, penetration analysis, and
covert-channel analysis.

5.2.4.3.1 Functional Testing

Functional testing evidence includes test plans, test results, and
test documentation. Each test plan consists of (1) the description,
definition or specification of the test conditions, (2) the test data,
and (3) a description of the test coverage. The test results contain
the actual outcome of each test run. The test plans must be documented
and, in some cases, maintained under configuration management.

5.2.4.3.2 Penetration Analysis

The penetration analysis evidence includes penetration test plans and
results, the documentation of the penetration testing method and
tools, and when appropriate, the scenario of the discovered
penetration flaws. The cause of a every discovered penetration flaw,
or class of penetration flaws, must also be documented.

5.2.4.3.3 Covert Channel Analysis

The covert-channel analysis evidence includes, in addition to
covert-channel test plans and results, the documentation of the
covert-channel identification method and tools, covert- channels
found, and bandwidth estimation. All storage and timing channels found
must be described in terms of the covert transmission scenarios (e.g.,
variables altered and viewed, source of time modulation). The cause of
each covert channel, or class of covert channels, must also be
documented.

5.2.4.4    Product Support

The product support evidence consists of the development environment
and operational support documentation and tools.  The development
environment evidence includes the documentation of the product
life-cycle process, configuration management procedures enforced, and
the trusted distribution mechanisms and procedures used. This evidence
also includes the identification of (1) the tools used in the product
development, configuration management, and trusted distribution, and
(2) the characteristics that make those tools suitable for development
of protection in IT products.

The operational support evidence includes the User's Guide and the
Trusted Facility Manual, the documentation describing the flaw
remediation policies and procedures, and the documentation describing
the trusted product generation. It also includes the description of
the tools used (if any) in the product flaw remediation and trusted
generation.

5.3       Rated Development Assurance Components

Each development assurance component addresses a unique IT
development, support, or maintenance method available to an IT product
developer (producer) for establishing the functional correctness of a
specific product. Although these methods change over time as these
disciplines mature, evolve, and new disciplines are introduced, all
existing and future methods can be rated by generic characteristics.
The extent to which such methods are used in a product development,
maintenance, and operation can be determined by the extent to which
the requirements of each method are satisfied. For this reason, the
assurance components are rated according to the extent to which their
requirements are satisfied. The rating of the assurance components
included herein is based on the following four parameters: (1) the
scope of the assurance method used, (2) the precision, or level of
detail, used in, or allowed by, applying a specific method, (3) the
coverage of the method, and (4) the strength of the particular method
employed.

1. Scope. The scope of a method determines whether the method applies
to all functional-component properties and to all steps of the product
development, maintenance, or operation processes. For example, a
specific design analysis method or a specific testing method may be
applied to security-policy properties, but not to TCB protection or
reference mediation properties; and a covert channel identification
method and tool may apply only to the design-specification step of the
development process, but not to the implementation step.  Similarly, a
configuration-control method may apply only to source code or to
design specifications, test plans, documentation, source code, and
hardware specifications; and a guidance manual (e.g., Trusted Facility
Manual) referring to product operation may, or may not, include all
system administration properties or requirements.

2. Precision. The precision in applying a method determines the level
of detail at which the method is applied in product development,
maintenance, or operation. For example, an analysis method may be
applied to a description of a functional component, to an informal
specification, or to a formal specification; it may require a formal
or an informal model of the functional-component properties; it may
require that formal correspondence between different levels of product
design be established or only that informal correspondences be
established; it may require that these correspondences show that all
TCB properties are preserved by the correspondence or only that some
properties are preserved.  Similarly, the degree of precision in
applying the method may require that the design, coding, and
configuration-control methods be described or defined; that they be
applied to TCB functions, subsystems, or individual low-level modules,
or only to TCB functions. Or, the degree of precision of the
operational method for flaw discovery, tracking, and repair may
indicate whether specific response-time deadlines are provided for
flaw repair.

3. Coverage. The coverage of a method determines the extent to which
the method is applied to a functional component, that is, whether the
method is fully or only partially applied to a functional component.
For example, security testing may use all test conditions required by
a functional-component description or model, or only a subset of those
conditions; or the test data may cover all positive and negative
outcomes of a test condition or only a subset of those outcomes.
Similarly, configuration management may require that all
change-control conditions be applied to the configuration items or
that only a subset of those conditions be applied.  Or, the
operational method of flaw discovery, tracking, and repair may, or may
not, use all conditions of flaw discovery, tracking, and repairs, or
only a subset of these conditions (e.g., use an explicit
protection-problem report step, take into account the consumer
protection requirements whenever protection flaws are repaired, and
maintain flaw reports and corrections under configuration management).

4. Strength. The strength of a method used may vary according to the
characteristics of the method. For example, test methods based on data
flow coverage are inherently stronger than those based on
boundary-value coverage (e.g., data-flow testing vs. monolithic
functional testing). Covert-channel identification methods that
eliminate false flows (i.e., formal flow violations) are inherently
stronger than those that allow the discovery of false flows. Methods
for estimating the maximum covert-channel bandwidth based on
information theory are inherently stronger than those exclusively
based on performance measurements. Configuration management methods
and tools that automatically enforce all change-control conditions are
inherently stronger than those that require operator-controlled
enforcement. Compilers that enforce programming conventions and
disciplines (e.g., type checking for user-defined, abstract data
types) are inherently stronger than those that merely perform syntax
checking.

The above parameters are chosen because, although general in nature,
they facilitate the rating of the assurance components at levels of
detail comparable to those of existing standards, thereby enabling
potential harmonization with these standards. Other rating parameters
that are equally suitable may exist. The parameters used to rate each
development assurance component are summarized in Table 3.

      Table 3. Rating Summary for Development Assurance Components
.----------------------------------------------------------------------.
|                                  |       | Prec- | Cover- |          |
| Development Assurance Components | Scope | ision |  age   | Strength |
|======================================================================|
| Development Process                                                  |
|----------------------------------+-------+-------+--------+----------|
| TCB Property Definition          |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| TCB Design                                                           |
|----------------------------------+-------+-------+--------+----------|
|   TCB Element Identification     |       |       |   X    |          |
|----------------------------------+-------+-------+--------+----------|
|   TCB Interface Definition       |       |   X   |        |          |
|----------------------------------+-------+-------+--------+----------|
|   TCB Modular Decomposition      |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
|   TCB Structuring Support        |   X   |   X   |        |          |
|----------------------------------+-------+-------+--------+----------|
|   TCB Design Disciplines         |       |       |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| TCB Implementation Support       |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| TCB Testing and Analysis                                             |
|----------------------------------+-------+-------+--------+----------|
|   Functional Testing             |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
|   Penetration Analysis           |   X   |   X   |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
|   Covert Channel Analysis        |   X   |   X   |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
| Operational Support                                                  |
|----------------------------------+-------+-------+--------+----------|
| User Security Guidance           |       |       |        |          |
|----------------------------------+-------+-------+--------+----------|
| Administrative Guidance          |       |       |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| Flaw Remediation                 |       |   X   |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
| Trusted Generation               |       |       |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
| Development Environment                                              |
|----------------------------------+-------+-------+--------+----------|
| Life Cycle Definition            |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| Configuration Management         |       |   X   |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
| Trusted Distribution             |       |       |        |    X     |
|----------------------------------+-------+-------+--------+----------|
| Development Evidence                                                 |
|----------------------------------+-------+-------+--------+----------|
| TCB Protection Properties        |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| Product Design & Implementation  |   X   |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
| Product Testing & Analysis                                           |
|----------------------------------+-------+-------+--------+----------|
|   Functional Testing             |       |   X   |   X    |          |
|----------------------------------+-------+-------+--------+----------|
|   Penetration Analysis           |   X   |   X   |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
|   Covert Channel Analysis        |   X   |   X   |   X    |    X     |
|----------------------------------+-------+-------+--------+----------|
| Product Support                  |       |   X   |   X    |    X     |
`----------------------------------------------------------------------'


5.3.1     Development Process

5.3.1.1   Rated TCB Property Identification Components

The TCB property identification components are rated based on the
precision and coverage of the methods for TCB property identification.
At level PD-1, the TCB properties are informally defined by
interpreting the functional component requirements within the TCB. At
level PD-2, precision is extended by the use of informal models of
functional requirements and by requiring definitions, instead of
descriptions, of the TCB element operations. At level PD-3, both the
precision and coverage are extended. Precision is extended by
requiring the use of formal models of functional requirements, and by
the use of Descriptive Interface Specifications (DIS) for the TCB.
Coverage of the interpretation method is extended by including a
demonstration, by coherent arguments, that the TCB operation defined
in the DIS is consistent with the appropriate formal models. At level
PD-4, both precision and the coverage of the interpretation method are
further extended. Precision is further extended by requiring the use
of Formal Interface Specifications (FIS) for the TCB; coverage of the
interpretation method is extended by including a proof that the TCB
operation, as defined by the FIS, is consistent with the appropriate
formal models, and by requiring that no TCB elements remain uncovered
by the this interpretation.

PD-1 Property Description

The developer shall interpret the functional requirements of the
protection profile within the product TCB. For each functional
requirement, the developer shall: (1) identify the TCB elements and
their TCB interfaces (if any) that implement that requirement; (2)
describe the operation of these TCB elements, and (3) explain why the
operation of these elements is consistent with the functional
requirement.

PD-2 Informal Property Identification

The developer shall provide informal models for the functional
components and sub-components of the profile. At a minimum, an
informal model of the access control components shall be provided.
Each informal model shall include (abstract) data structures and
operations defining each functional component or sub-component, and a
description of the model properties. The developer shall interpret
(e.g., trace) the informal models within the product TCB. For each
model entity, the developer shall: (1) identify the TCB elements and
their TCB interfaces (if any) that implement that entity; (2) define
the operation of these TCB elements, and (3) explain why the operation
of these elements is consistent with the model properties. The
developer's interpretation of each informal model, which defines the
TCB properties, shall identify all TCB elements that do not correspond
to any model entity and shall explain why these elements do not render
the TCB properties invalid.

For the components that are not informally modeled, the developer
shall interpret the functional requirements of the protection profile
within the product TCB. For each functional requirement, the developer
shall: (1) identify the TCB elements and their TCB interfaces (if any)
that implement that requirement; (2) describe the operation of these
TCB elements, and (3) explain why the operation of these elements is
consistent with the functional requirement. The developer's
interpretation of each functional requirement, which describes the TCB
properties, shall identify all TCB elements that do not correspond to
any functional requirement and shall explain why these elements do not
render the TCB properties invalid.

PD-3 Property Specification by Model Interpretation

The developer shall provide formal models for the functional
components and sub-components of the profile. At a minimum, a formal
model of the access control components shall be provided. The
properties of the formal models shall be clearly stated. The developer
shall provide an interpretation of the models in the DIS of the
product's TCB. For each model entity, the developer shall: (1)
identify the TCB elements and their DIS (if any) that implement that
entity; (2) define the operation of these TCB elements, and (3)
demonstrate, by coherent arguments, that the DIS of these elements is
consistent with the model properties. The developer's interpretation
of each formal model, which specifies the TCB properties, shall
identify all TCB and DIS elements (if any) that do not correspond to
any model entity and shall explain why these elements do not render
the TCB properties invalid.

An informal model of reference mediation and TCB protection shall be
provided. For the components that are not modeled, the developer shall
interpret the functional requirements of the protection profile within
the product TCB. For each functional requirement, the developer shall:
(1) identify the TCB elements and their TCB interfaces (if any) that
implement that requirement; (2) describe the operation of these TCB
elements, and (3) explain why the operation of these elements is
consistent with the functional requirement. The developer's
interpretation of each functional requirement, which describes the TCB
properties, shall include all the TCB elements.

PD-4 Formal Specification of TCB Properties

The developer shall provide formal models for the functional
components and sub-components of the profile. At a minimum, a formal
model of the access control components shall be provided. The
properties of the formal models shall be clearly stated. The developer
shall provide a formal interpretation of the models in the FIS of the
product's TCB. For each model entity, the developer shall: (1)
identify the TCB elements and their FIS (if any) that implement that
entity; (2) specify the operation of these TCB elements, and (3) prove
that the FIS of these elements is consistent with the model
properties. The developer's interpretation of each formal model, which
specifies the TCB properties, shall identify all TCB and FIS elements
(if any) that do not correspond to any model entity and shall explain
why these elements do not render the TCB properties invalid.

An informal model of reference mediation and TCB protection shall be
provided. For the components that are not modeled, the developer shall
interpret the functional requirements of the protection profile within
the product TCB. For each functional requirement, the developer shall:
(1) identify the TCB elements and their TCB interfaces (if any) that
implement that requirement; (2) describe the operation of these TCB
elements, and (3) explain why the operation of these elements is
consistent with the functional requirement. The developer's
interpretation of each functional requirement, which describes the TCB
properties, shall include all the TCB elements.

5.3.1.2   Rated TCB Element Identification Components

The TCB element identification components are rated based on the
coverage of the identification method. That is, the two levels of
identification requirements are distinguished by whether the retention
of protection-irrelevant elements within the TCB is justified.

ID-1: TCB Element Identification

The developer shall identify the TCB elements (i.e., software,
hardware/firmware code and data structures). Each element must be
unambiguously identified by its name, type, release, and version
number (if any).

ID-2: TCB Element Justification

The developer shall identify the TCB elements (i.e., software,
hardware/firmware code and data structures). Each element must be
unambiguously identified by its name, type, release, and version
number (if any).

The developer shall justify the protection relevance of the identified
elements (i.e., only elements that can affect the correct operation of
the protection functions shall be included in the TCB). If
protection-irrelevant elements are included in the TCB, the developer
shall provide a rationale for such inclusion.

5.3.1.3   Rated TCB Interface Definition Components

The TCB interface definition components are rated based on the
precision of the interface definition method. The precision of the
interface definition methods required at level IF-2 is higher than
that of level IF-1, because level IF-2 requires a Descriptive
Interface Specification, not just an informal interface description.
Similarly the precision of the interface definition methods required
at level IF-3 is higher than that of level IF-2, because level IF-3
requires a Formal Interface Specification, not just a Descriptive
Interface Specification.

IF-1: Interface Description

The developer shall describe all external (e.g., command, software,
and I/O) administrative (i.e., privileged) and non-administrative
interfaces to the TCB. The description shall include those components
of the TCB that are implemented as hardware and/or firmware if their
properties are visible at the TCB interface.

The developer shall identify all call conventions (e.g., parameter
order, call sequence requirements) and exceptions signaled at the TCB
interface.

IF-2: Interface Descriptive Specification

The developer shall define all external (e.g., command, software, and
I/O) administrative (i.e., privileged) and non-administrative
interfaces to the TCB.

The developer shall provide and maintain a descriptive interface
specification (DIS) of the TCB that completely and accurately
describes the TCB in terms of exceptions, error messages, and effects.
The DIS shall identify the TCB call conventions (e.g., parameter
order, call sequence requirements), and exceptions signaled. The DIS
shall also include the TCB call identifier, parameter types (e.g.,
input, output), the effect of the call, TCB call conventions (e.g.,
parameter order, call sequence requirements), and exceptions handled
and signaled. It shall be shown to be an accurate description of the
TCB interface.

The DIS shall include those components of the TCB that are implemented
as hardware and/or firmware if their properties are visible at the TCB
interface.

If the TCB consists of a kernel and privileged processes, the
developer shall separately identify and define the interfaces for the
kernel and each privileged process.

Whenever covert-channel analysis, penetration analysis, and
resource-constraint analysis are required, the TCB interface
definition must also include all effects of a call including the
direct visibility and alterability of internal TCB variables and
functions.

IF-3: Formal Interface Specification

The developer shall define all external (e.g., command, software, and
I/O) administrative (i.e., privileged) and non-administrative
interfaces to the TCB.

The developer shall provide and maintain a descriptive interface
specification (DIS) of the TCB that completely and accurately
describes the TCB in terms of exceptions, error messages, and effects.
The DIS shall identify the TCB call conventions (e.g., parameter
order, call sequence requirements), and exceptions signaled. The DIS
shall also include the TCB call identifier, parameter types (e.g.,
input, output), the effect of the call, TCB call conventions (e.g.,
parameter order, call sequence requirements), and exceptions handled
and signaled. It shall be shown to be an accurate description of the
TCB interface.

A Formal Interface Specification (FIS) of the TCB shall be maintained
that accurately describes the TCB in terms of the call identifier,
parameter types (e.g., input, output), the effect of the call, TCB
call conventions (e.g., parameter order, call sequence requirements),
and exceptions signaled.

The DIS and FIS shall include those components of the TCB that are
implemented as hardware and/or firmware if their properties are
visible at the TCB interface.

If the TCB consists of a kernel and privileged processes, the
developer shall separately identify and define the interfaces for the
kernel and each privileged process.

Whenever covert-channel analysis, penetration analysis, and
resource-constraint analysis are required, the TCB interface
definition must also include all effects of a call including the
direct visibility and alterability of internal TCB variables and
functions.

5.3.1.4   Rated Modular Decomposition Components

The modular decomposition components are rated based on the precision
and coverage of the decomposition method. The granularity of the
modular TCB decomposition at level MD-1, which delimits the precision
of the decomposition method, refers to subsystem-level decomposition.
The decomposition granularity is refined at level MD-2, as each
subsystem is further decomposed into constituent modules. Level MD-2
also extends the coverage of the decomposition method by requiring
that inter-module relationships be used in the decomposition method.
Level MD-3 further extends the coverage of the decomposition method by
requiring that the inter-module correctness dependencies be analyzed
(see Appendix D).

MD-1: Subsystem Decomposition

The developer shall describe the TCB structure in terms of its design
and implementation subsystems and the functional relationships between
those subsystems. The developer shall identify the specific TCB
protection functions (if any) associated with each subsystem and the
TCB interfaces (if any) implemented by each subsystem.  The developer
shall describe the interfaces between the subsystems.

For each subsystem, the developer shall describe: the role or purpose
of the subsystem, the set of related functions performed by the
subsystem, and the subsystem interface (i.e., the set of invocable
functions, calling conventions, parameters, global variables, and
results).

MD-2: Module-level Decomposition

The developer shall design the TCB as a small number (e.g., 10 to 100)
of design and implementation subsystems that have well-defined
functional relationships and shared-data dependencies. The developer
shall identify the specific TCB protection functions (if any)
associated with each subsystem and the TCB interfaces (if any)
implemented by each subsystem.

The developer shall design each subsystem as a set of modules. For
each module, the developer shall describe: the role or purpose of the
module, the set of related functions performed by the module, and the
module interface (i.e., the set of invocable functions, calling
conventions, parameters, global variables, and results). The developer
shall identify the protection functions of, and describe the
interfaces between, these modules. The developer shall choose the
modules so that the set of functions implemented by the module, the
module's contribution to the TCB protection properties, and the
interface(s) to the module can be described concisely (e.g., the
module shall have a single purpose). The TCB structuring into modules
shall be based on well- defined module relationships; for example, the
contains relation (e.g., A is part of B) or the "uses" relation (e.g.,
A is correct only if B is correct).

MD-3: Module Relationship Analysis

The developer shall design the TCB as a small number (e.g., 10 to 100)
of design and implementation subsystems that have well-defined
functional relationships and shared-data dependencies. The developer
shall identify the specific TCB protection properties and functions
associated with each subsystem and the TCB interfaces (if any)
implemented by each subsystem.

The developer shall design each subsystem as a set of modules. For
each module, the developer shall describe: the role or purpose of the
module, the set of related functions performed by the module, and the
module interface (i.e., the set of invocable functions, calling
conventions, parameters, global variables, and results). The developer
shall identify the protection functions of, and describe the
interfaces between, these modules. The developer shall choose the
modules so that the set of functions implemented by the module, the
module's contribution to the TCB protection properties, and the
interface(s) to the module can be described concisely (e.g., the
module shall have a single purpose).  The TCB structuring into modules
shall be based on well- defined module relationships; for example, the
contains relation (e.g., A is part of B), the "uses" relation (e.g., A
is correct only if B is correct). The developer shall analyze the
correctness dependencies among these modules. This analysis may
include, but is not restricted to, service and environmental
dependencies.

5.3.1.5   Rated TCB Structuring Support Components

The TCB structuring support components are rated based on the scope
and precision of the supporting mechanisms used in TCB structuring.
Ascending levels are assigned to mechanisms supporting TCB process
isolation, TCB modularity, and storage objects to reflect the degrees
of usefulness in TCB structuring added by these mechanisms. The
precision and conceptual simplicity of these mechanisms are assigned
to the highest level reflecting their importance in the rigorous
analysis of TCB structuring support.

At level SP-1, the structuring of the TCB includes the minimal
requirement of process isolation. Level SP-2 extends the support for
TCB structuring by including the separation of protection critical
elements and use of processor support for logically distinct storage
objects. Level SP-3 extends the precision requirements in the
definition of the protection mechanisms for TCB structuring support

SP-1: Process Isolation

The TCB shall maintain process isolation.

SP-2: Support for Storage Objects

The TCB shall maintain process isolation. The TCB shall separate those
elements that are protection- critical from those that are not.
Features in hardware, such as segmentation, shall be used to support
logically distinct storage objects with separate access-control
attributes (e.g., readable, writable).

SP-3: Structured Protection Mechanisms

The TCB shall maintain process isolation. The TCB shall separate those
elements that are protection- critical from those that are not.
Features in hardware, such as segmentation, shall be used to support
logically distinct storage objects with separate access-control
attributes (e.g., readable, writable). The TCB shall employ a
complete, conceptually simple, protection mechanism with precisely
defined semantics. This mechanism shall play a central role in
enforcing the internal structuring of the TCB and the product.

5.3.1.6   Rated TCB Design Discipline Components

The TCB design discipline components are rated based on the coverage
of the disciplines used for TCB structuring. The requirements range
from TCB complexity minimization to the use of data hiding, layering,
and high-level synchronization constructs.

At level DD-1, the design disciplines covered include that of
minimizing the TCB complexity, of maximizing the use of data hiding,
and of employing well-defined exception handling techniques. Level
DD-2 extends this coverage by including the use of layering,
high-level synchronization primitives, and
multi-tasking/multi-threaded modules.

DD-1: Specification of Disciplines Used

The developer shall design the product to minimize the complexity of
the TCB. System engineering shall be directed towards excluding from
the TCB modules that are not protection critical.

The TCB design shall reflect use of modern software engineering
techniques, such as data hiding and abstraction (i.e., data,
functional, and control abstractions) and well-defined
exception-handling.

DD-2: Extended Disciplines for TCB Structuring

The developer shall design the product to minimize the complexity of
the TCB. System engineering shall be directed towards excluding from
the TCB modules that are not protection critical.

The TCB design shall reflect use of modern software engineering
techniques), such as data hiding and abstraction (i.e., data,
functional, and control abstractions) and well-defined
exception-handling. The TCB design shall also include use of layering
(including a rationale for each layering violation), high-level
synchronization constructs, and multi-tasking/ multi-threading.

5.3.1.7   Rated Implementation Support Components

The implementation support components are rated according to the
precision and coverage in maintaining the implementation elements of
the TCB. At IM-1, the developer is only required to maintain the
implementation data used to generate a physical instantiation of the
TCB. IM-2 extends precision and coverage by requiring that the
implementation data be organized to reflect the TCB subsystem
structure and be identified as distinct configuration items. IM-3
further extends precision by requiring that the implementation data
reflect the TCB module structure. Finally, IM-4 further extends the
coverage of the maintenance method by requiring that the coding
standards be identified and enforced, and that the implementation data
modules use the same naming conventions as the design data to help
establish a link between the design and the implementation.

IM-1: Source Data Support

The developer shall maintain engineering diagrams and source code (as
applicable) for all TCB elements.

IM-2: Subsystem Correspondence Support

The developer shall maintain engineering diagrams and source code (as
applicable) for all TCB elements. The diagrams and source code for
each subsystem of the TCB shall be identified and provided as
configuration items.

IM-3: Module Correspondence Support

The developer shall maintain engineering diagrams and source code (as
applicable) for all TCB elements. The diagrams and source code for
each module of the TCB shall be identified and provided as
configuration items.

IM-4: Naming Support For Design Correspondence

The developer shall maintain engineering diagrams and source code (as
applicable) for all TCB elements. The developer shall identify the
programming languages used to develop the TCB software and reference
the definitions of those languages. The developer shall identify any
implementation dependent options of the programming language
compiler(s) used in the TCB source code. The developer shall describe
coding standards followed during the implementation of the product and
shall ensure that all source code complies with these standards. The
diagrams and source code for each module of the TCB shall be
identified and provided as configuration items.  The diagrams and
source code shall be named using the same conventions as those used in
the TCB design. The developer shall explain how the programming
languages used help establish the correspondence between the TCB
implementation and design.

5.3.1.8   Rated Functional Testing Components

The functional testing components are rated according to the precision
and coverage of the testing method. The scope of testing is constant:
all functions (as represented by TCB properties) required by the
protection profile must be tested.  The strength of the testing method
is assumed to be the same: testing is always used to show the presence
of desired functionality. The precision of testing refers to the
accuracy of the TCB properties and the interface definition (i.e., the
interface description, DIS, or FIS) used to derive test conditions and
data. The coverage of testing refers to the extent to which each
function is tested (e.g., whether all or only a defined set of
boundary conditions are tested).

At FT-1, the goal is to produce functional evidence that the TCB is
capable of satisfying the protection profile requirements. At FT-2,
the coverage of the testing is increased by requiring the tests to
sample more of the range of TCB inputs. Coverage is also increased by
requiring that tests for previously discovered TCB flaws be executed
for all subsequent versions of the TCB (i.e., by regression testing).
Precision is extended at level FT-3by requiring that interface
specifications (i.e., DIS, FIS) be used to generate the test
conditions and data.

FT-1: Conformance Testing

The developer shall test the TCB interface to show that all claimed
protection functions work as stated in the TCB interface description.

The developer shall correct all flaws discovered by testing and shall
retest the TCB until the protection functions are shown to work as
claimed.

FT-2: TCB Interface Testing

The developer shall test the TCB interface to show that all claimed
protection functions work as stated in the TCB interface description
or specification. The tests shall exercise the boundary conditions of
the protection functions.  The developer test procedures shall include
the tests used to demonstrate the absence of all flaws discovered in
previous versions of the TCB.

The developer shall correct all flaws discovered by testing and shall
retest the TCB to show that all discovered flaws have been eliminated,
no new flaws have been introduced, and the protection functions work
as claimed.

FT-3: Specification-Driven TCB Interface Testing

The developer shall test the TCB interface to show that all claimed
protection functions work as stated in the TCB interface description
or specification. The tests shall exercise the boundary conditions of
the protection functions.  The developer shall generate the test
conditions and data from the Descriptive or Formal Interface
Specification(s). The developer test procedures shall include the
tests used to demonstrate the absence of all flaws discovered in
previous versions of the TCB.

The developer shall correct all flaws discovered by testing and shall
retest the TCB to show that all discovered flaws have been eliminated,
no new flaws have been introduced, and the protection functions work
as claimed.

5.3.1.9   Rated Penetration Analysis Components

The penetration analysis components are rated based on the scope,
precision, coverage, and strength of the analysis methods used. The
scope and precision of the level PA-1 is limited to penetration
testing methods referring only to unprivileged user and application
programming interfaces of the TCB. The precision of penetration
testing is limited to that derived from documentation of the TCB
interface (e.g., system reference manuals). The coverage may be
limited to the testing of known classes of penetration flaws found in
other TCBs of the same, or different, types of products (e.g., generic
penetration flaws).

At level PA-2, both the precision and the coverage of penetration
testing are extended. The sources of design and implementation
information include, in addition to system reference manuals and TCB
interface description, the DIS, source code, and hardware and firmware
specifications. The test conditions are systematically generated using
the flaw- hypothesis method using the TCB interface specification.

Level PA-3 augments penetration testing with penetration- resistance
verification methods. In particular, penetration resistance properties
are defined and condition (validation) check specifications are
written for each property. The DIS and source code are then verified
to establish that the verification conditions are in fact implemented.

Level PA-4 represents a significant extension in the strength of the
penetration analysis. That is, it requires that the penetration
resistance properties of a TCB be verified formally using analysis
tools. This level assumes that the design and implementation of a TCB
is free of flaws that would cause penetration, and is intended to
demonstrate that TCB interfaces are resistant to penetration. As such,
it represents the highest level of penetration analysis assurance.

PA-1 Basic Penetration Testing

The developer shall define the TCB configuration, interface, and
protection functions that are subject to penetration testing. For each
test, the developer shall identify the goal of the test and the
criteria for successful penetration. The developer shall identify all
product documentation (e.g., system reference manuals) used to define
penetration-test conditions, and shall document all test conditions,
data (e.g., test set-up, function call parameters, and test outcomes),
and coverage.

The penetration testing shall include, at a minimum, known classes of
penetration flaws found in other TCBs (e.g., generic penetration
flaws).  For each uncovered flaw, the developer shall define and
document scenarios of flaw exploitation, and shall identify all
penetration outcomes resulting from that scenario.

PA-2 Flaw-Hypothesis Testing

The developer shall define the TCB configuration, interface, and
protection functions that are subject to penetration testing. For each
test, the developer shall identify the goal of the test and the
criteria for successful penetration. The developer shall illustrate
how, in addition to system reference manuals and TCB interface
description, the DIS, source code, and hardware and firmware
specifications are used to define penetration-test conditions. For
each test, the developer shall document all test conditions, data
(e.g., test set-up, function call parameters, and test outcomes), and
coverage.

The developer shall generate the test conditions from flaw-hypotheses
derived by negating assertions of TCB design capabilities and by
providing counter examples that show that these assertions are false.
The developer shall confirm the flaw hypotheses by checking design and
implementation documentation, by defining the test data and running
test programs, or by referring to known classes of penetration flaws
found in other TCBs. The refutation of any hypothesis shall be
documented.

For each uncovered flaw, the developer shall define and document
scenarios of flaw exploitation and shall identify all penetration
outcomes resulting from that scenario. The cause of the flaw shall be
identified and documented.

 PA-3 Penetration Analysis

The developer shall define the TCB configuration, interface, and
protection functions that are subject to penetration testing and
verification.  For each test, the developer shall identify the goal of
the test and the criteria for successful penetration. The developer
shall illustrate how, in addition to system reference manuals and TCB
interface description, the DIS, source code, and hardware and firmware
specifications are used to define penetration-test conditions. For
each test, the developer shall document all test conditions, data
(e.g., test set-up, function call parameters, and test outcomes), and
coverage.

The developer shall generate the test conditions from flaw-hypotheses
derived by negating assertions of TCB design capabilities and by
providing counter examples that show that these assertions are false.
The developer shall confirm the flaw hypotheses by checking design and
implementation documentation, by defining the test data and running
test programs, or by referring to known classes of penetration flaws
found in other TCBs. The refutation of each hypothesis shall be
documented.

The developer shall derive penetration-resistance properties and
conditions by interpreting reference mediation and TCB protection
requirements in the product's TCB. The penetration-resistance
properties and conditions shall also reflect the strength of
functional components (e.g., strength of the identification and
authentication).

The developer shall verify that the penetration- resistance conditions
are implemented by the TCB functions. All uncovered flaws in
implementing the penetration-resistance conditions shall be
documented. For each uncovered flaw, the developer shall define and
document scenarios of flaw exploitation and shall identify all
penetration outcomes resulting from that scenario. The cause of the
flaw shall be identified and documented.

PA-4 Analysis of Penetration Resistance

The developer shall define the TCB configuration, interface, and
protection functions that are subject to penetration testing and
verification.  For each test, the developer shall identify the goal of
the test and the criteria for successful penetration. The developer
shall illustrate how, in addition to system reference manuals and TCB
interface description, the DIS, source code, and hardware and firmware
specifications are used to define penetration-test conditions. For
each test, the developer shall document all test conditions, data
(e.g., test set-up, function call parameters, and test outcomes), and
coverage.

The developer shall generate the test conditions from flaw-hypotheses
derived by negating assertions of TCB design capabilities and by
providing counter examples that show that these assertions are false.
The developer shall confirm the flaw hypotheses by checking design and
implementation documentation, by defining the test data and running
test programs, or by referring to known classes of penetration flaws
found in other TCBs. The refutation of each hypothesis shall be
documented.

The developer shall use the DIS, FIS, source code, and hardware and
firmware specifications to derive and specify penetration-resistance
conditions, and shall document all such conditions. The developer
shall derive penetration-resistance properties and conditions by
interpreting reference mediation and TCB protection requirements in
the product's TCB.  The penetration-resistance properties and
conditions shall also reflect the strength of functional components
(e.g., strength of the identification and authentication).

The developer shall verify that the penetration- resistance conditions
are implemented by the TCB functions. Tools shall be used to verify
the penetration-resistance properties of the FIS and source code. The
tools shall be capable of checking whether a set of
penetration-resistance conditions is implemented by the FIS and/or
source code of a TCB function. All uncovered flaws in implementing the
penetration-resistance conditions shall be documented. For each
uncovered flaw, the developer shall define and document scenarios of
flaw exploitation and shall identify all penetration outcomes
resulting from that scenario.  The cause of the flaw shall be
identified and documented.

5.3.1.10  Rated Covert-Channel Analysis Components

 The covert channel analysis components are rated based on the scope,
precision, coverage, and strength of the analysis methods. The scope
and precision of level CCA-1are limited to storage channels identified
in TCB reference manuals and DIS, and the strength of maximum
bandwidth estimation is limited to that provided by informal
engineering measurements. The scope of identification method is
increased at level CCA-2 by including both storage and timing channels
and, consequently, enlarging the scope of the sources of information
used (e.g., by introducing processor and hardware specifications). At
level CCA-3, the precision and coverage of the covert identification
are extended to include analysis of FIS and specification-to-code
correspondence. Also, the strength of the maximum bandwidth estimation
is increased by the requirement to use information theory methods.

CCA-1 Analysis of Covert Storage Channels

1. Identification: The developer shall identify all sources of
information used in covert-storage- channel analysis. These sources
shall include TCB reference manuals and DIS. The developer shall
define the identification method used. The developer shall demonstrate
that the chosen identification method is sound (e.g., it leads to the
discovery of all covert storage channels in the DIS or source
documentation) and repeatable (i.e., independent evaluators can use
the method on the same sources of covert-storage-channel information
and can obtain the same results.) The developer shall define scenarios
of use for each covert storage channel.

2. Bandwidth Measurement or Engineering Estimation: The developer
shall define the method used for covert-storage-channel bandwidth
estimation. In measuring TCB performance for covert-channel-bandwidth
estimation, the developer shall satisfy the following assumptions. The
maximum bandwidth estimation shall be based on the assumptions that
the storage channel is noiseless, that the senders and receivers are
not delayed by the presence of other processes in the product, and
that the sender-receiver synchronization time is negligible. The
choice of informal estimation methods shall define and justify the
coding method and, therefore, the distribution of "0s" and "1s" in all
transmissions.

The developer shall select TCB primitives to be measured for bandwidth
determination from real scenarios of covert-storage-channel use. The
developer shall specify TCB measurement environment for the bandwidth
measurements. This specification shall include: (1) the speed of the
product functions, (2) the product configuration, (3) the sizes of the
memory and cache components, and (4) the product initialization. The
sensitivity of the measurement results to configuration changes shall
be documented. The covert-storage-channel measurements shall include
the fastest TCB function calls for altering, viewing, and setting up
the transmission environment; the demonstrably fastest process
(context) switch time shall also be included in the bandwidth
measurements. All measurements shall be repeatable.

3. Covert Channel Testing: The developer shall test all the use of all
identified covert storage channels to determine whether the handling
functions work as intended.

 CCA-2 Timing Channel Analysis

1. Identification: The developer shall identify all sources of
information used in covert-channel analysis. These sources shall
include TCB reference manuals and DIS.  The sources of information and
methods of identification shall include processor specifications
whenever the identification method includes source code and hardware
analysis. The developer shall define the identification method used.
The developer shall demonstrate that the chosen identification method
is sound (e.g., it leads to the discovery of all covert channels in
the DIS or source documentation) and repeatable (i.e., independent
evaluators can use the method on the same sources of covert-channel
information and can obtain the same results.) The developer shall
define scenarios of use for each covert channel. The developer shall
also define timing channel scenarios, and shall identify all functions
that provide independent sources of timing (e.g., CPUs, I/O
processors).

 2. Bandwidth Measurement or Engineering Estimation: The developer
shall define the method used for covert-channel bandwidth estimation.
In measuring TCB performance for covert-channel- bandwidth estimation,
the developer shall satisfy the following assumptions. The maximum
bandwidth estimation shall be based on the assumptions that the covert
channel is noiseless, that the senders and receivers are not delayed
by the presence of other processes in the product, and that the
sender-receiver synchronization time is negligible. The choice of
informal estimation methods shall define and justify the coding method
and, therefore, the distribution of "0s" and "1s" in all
transmissions.

The developer shall select TCB primitives to be measured for bandwidth
determination from real scenarios of covert-channel use. The developer
shall specify TCB measurement environment for the bandwidth
measurements. This specification shall include: (1) the speed of the
product functions, (2) the product configuration, (3) the sizes of the
memory and cache components, and (4) the product initialization. The
sensitivity of the measurement results to configuration changes shall
be documented. The covert-channel measurements shall include the
fastest TCB function calls for altering, viewing, and setting up the
transmission environment; the demonstrably fastest process (context)
switch time shall also be included in the bandwidth measurements. All
measurements shall be repeatable.

3. Covert Channel Testing: The developer shall test all the use of all
identified covert channels to determine whether the handling functions
work as intended.

CCA-3 Formal Covert Channel Analysis

1. Identification: The developer shall identify all sources of
information used in covert-channel analysis. These sources shall
include TCB reference manuals, DIS, and FIS. The sources of
information and methods of identification shall include processor
specifications whenever the identification method includes source code
and hardware analysis.  The developer shall define the identification
method used. The developer shall define the identification method
used. The developer shall demonstrate that the chosen identification
method is sound (e.g., it leads to the discovery of all covert
channels in the FIS or source documentation) and repeatable (i.e.,
independent evaluators can use the method on the same sources of
covert-channel information and can obtain the same results.) The
method shall be applied on the FIS of the TCB, and shall include
syntactic information-flow analysis (with or without the use of
semantic analysis) or noninterference analysis. The identification of
covert channels shall include specification-to- code correspondence.

The developer shall define scenarios of use for each cover channel.
The developer shall also define timing channel scenarios, and shall
identify all functions that provide independent sources of timing
(e.g., CPUs, I/O processors).

 2. Bandwidth Measurement or Engineering Estimation: The developer
shall define the method used for covert-channel bandwidth estimation.
The method shall be based on information theory methods. In measuring
TCB performance for covert- channel-bandwidth estimation, the
developer shall satisfy the following assumptions. The maximum
bandwidth estimation shall be based on the assumptions that the covert
channel is noiseless, that the senders and receivers are not delayed
by the presence of other processes in the product, and that the
sender-receiver synchronization time is negligible.

The developer shall select TCB primitives to be measured for bandwidth
determination from real scenarios of covert channel use. The developer
shall specify TCB measurement environment for the bandwidth
measurements. This specification shall include: (1) the speed of the
product functions, (2) the product configuration, (3) the sizes of the
memory and cache components, and (4) the product initialization. The
sensitivity of the measurement results to configuration changes shall
be documented. The covert-channel measurements shall include the
fastest TCB function calls for altering, viewing, and setting up the
transmission environment; the demonstrably fastest process (context)
switch time shall also be included in the bandwidth measurements. All
measurements shall be repeatable.

3. Covert Channel Testing: The developer shall test all the use of all
identified covert channels to determine whether the handling functions
work as intended.

5.3.2     Operational Support

5.3.2.1   Rated User Guidance Components

The user guidance component is unrated since it contain only one
level.

UG-1: User Guide

The developer shall provide a User Guide which describes all
protection services provided and enforced by the TCB. The User Guide
shall describe the interaction between these services and provide
examples of their use. The User Guide may be in the form of a summary,
chapter or manual. The User Guide shall specifically describe user
responsibilities. These shall encompass any user responsibilities
identified in the protection profile.

5.3.2.2   Rated Administrative Guidance Components

The rating of the administrative guidance components reflect, to a
large degree, the rating of the security management components. At
AG-1, the coverage of the Trusted Facility Manual (TFM) must include
an explanation of how the TCB can be installed and used to support an
organization's security policy. This explanation must include a
discussion of how to set the security parameters for all TCB functions
and how to use the audit trail to discover policy violations (see the
administrative functions of components SM-1 and SM-2). At AG- 2, TFM
coverage is extended to include a discussion of how to set additional
policy parameters, how to use the separate administrator and operator
roles and privileges, and how to securely generate the TCB (see the
administrative functions of component SM-3). Finally, at AG-3, which
assumes a product with fine-grained privileges, the TFM coverage is
increased to include the use of those privileges in implementing
extensive administrative policies (see the administrative functions of
component SM-4).

AG-1: Basic Administrative Guidance

The developer shall provide a Trusted Facility Manual intended for the
product administrators that describes how to use the TCB security
services (e.g., Access Control, System Entry, or Audit) to enforce a
system security policy. The Trusted Facility Manual shall include the
procedures for securely configuring, starting, maintaining, and
halting the TCB. The Trusted Facility Manual shall explain how to
analyze audit data generated by the TCB to identify and document user
and administrator violations of this policy.  The Trusted Facility
Manual shall explain the privileges and functions of administrators.
The Trusted Facility Manual shall describe the administrative
interaction between security services.

The Trusted Facility Manual shall be distinct from User Guidance, and
encompass any administrative responsibilities identified in security
management.

AG-2: Detailed Administrative Guidance

The developer shall provide a Trusted Facility Manual intended for the
product administrators and operators that describes how to use the TCB
security services (e.g., Access Control, System Entry, or Audit) to
enforce a system security policy. The Trusted Facility Manual shall
include the procedures for securely configuring, starting,
maintaining, and halting the TCB. The Trusted Facility Manual shall
explain how to analyze audit data generated by the TCB to identify and
document user and administrator violations of this policy.  The
Trusted Facility Manual shall explain the unique security-relevant
privileges and functions of administrators and operators. The Trusted
Facility Manual shall describe the administrative interaction between
security services.

The Trusted Facility Manual shall identify all hardware, firmware,
software, and data structures comprising the TCB. The detailed audit
record structure for each type of audit event shall be described. If
covert channel handling is required, the Trusted Facility Manual shall
explain how to configure the product to mitigate, eliminate, or audit
covert channel exploitation. The Trusted Facility Manual shall
describe the cautions about and procedures for using the TCB as a base
for site-specific secure applications. The Trusted Facility Manual
shall describe procedures for securely regenerating the TCB after any
part is changed (e.g., due to adding devices or installing flaw
corrections to the TCB software).

The Trusted Facility Manual shall be distinct from User Guidance, and
encompass any administrative responsibilities identified in security
management.

AG-3: Role-Based Administrative Guidance

The developer shall provide a Trusted Facility Manual intended for the
product administrators and operators that describes how to use the TCB
security services (e.g., Access Control, System Entry, or Audit) to
enforce a system security policy. The Trusted Facility Manual shall
include the procedures for securely configuring, starting,
maintaining, and halting the TCB. The Trusted Facility Manual shall
explain how to analyze audit data generated by the TCB to identify and
document user and administrator violations of this policy.  The
Trusted Facility Manual shall explain the unique security-relevant
privileges and functions of administrators and operators. The Trusted
Facility Manual shall also explain the distinct security-relevant
privileges and functions of the TCB and how they can be selectively
granted to provide fine-grained, multi-person or multi-role system and
application administration policies.  The Trusted Facility Manual
shall describe the administrative interaction between security
services.

The Trusted Facility Manual shall identify all hardware, firmware,
software, and data structures comprising the TCB. The detailed audit
record structure for each type of audit event shall be described. If
covert channel handling is required, the Trusted Facility Manual shall
explain how to configure the product to mitigate, eliminate, or audit
covert channel exploitation. The Trusted Facility Manual shall
describe the cautions about and procedures for using the TCB as a base
for site-specific secure applications. The Trusted Facility Manual
shall describe procedures for securely regenerating the TCB after any
part is changed (e.g., due to adding devices or installing flaw
corrections to the TCB software).

The Trusted Facility Manual shall be distinct from User Guidance, and
encompass any administrative responsibilities identified in security
management.

5.3.2.3   Rated Flaw Remediation Components

The flaw remediation components are rated according to the precision,
coverage and strength of the procedures used to identify and correct
flaws, and disseminate corrections to affected consumers. At FR-1, the
developer is responsible for establishing procedures to accept reports
of flaws, find corrections to those flaws, and disseminate the flaw
corrections to consumers who specifically request the corrections. At
FR-2, the precision of the developer-consumer interaction is increased
by requiring that the developer identify and publicize specific points
of contact for product security concerns. Coverage is increased by
requiring a remediation policy that distinguishes protection-relevant
changes to the product from other changes. At FR-3, the coverage of
both flaw repair and customer interaction procedures is increased by
considering the customer's security policies and by relating each
entry in the flaw tracking and repair database to the consumers who
might be affected. At FR-4, precision and coverage are extended by
requiring the developer to notify consumers of flaw discovery and to
distribute corrections of the discovered flaws within specific time
limits. Finally, at FR-5, the method is strengthened by requiring that
the flaw remediation procedures be tightly coupled to the rest of the
development process through the configuration management system.

FR-1: Basic Flaw Remediation

Flaw Tracking Procedures: The developer shall establish a procedure to
track all reported protection flaws in each release of the product.
The tracking system shall include a description of the nature and
effect of each flaw and the status of finding a correction to the
flaw.

Flaw Repair Procedures: The developer shall establish a procedure to
identify corrective actions for protection flaws.

Consumer Interaction Procedures: The developer shall provide flaw
information and corrections to registered consumers.

FR-2: Flaw Reporting Procedures

Flaw Tracking Procedures: The developer shall establish a procedure to
track all reported protection flaws with each release of the product.
The tracking system shall include a description of the nature and
effect of each flaw and the status of finding a correction to the
flaw.

Flaw Repair Procedures: The developer shall establish a procedure to
identify corrective actions for protection flaws. This procedure shall
include a policy to separate protection-relevant from non-protection
relevant corrections, changes, or upgrades to the product.

Consumer Interaction Procedures: The developer shall establish a
procedure for accepting consumer reports of protection problems and
requests for corrections to those problems. The developer shall
designate one or more specific points of contact for consumer reports
and inquiries about protection issues involving the product. This
procedure and the designated points of contact shall be provided in
the consumer documentation (e.g., the TFM or the SFUG).

FR-3: Systematic Flaw Remediation

Flaw Tracking Procedures: The developer shall establish a procedure to
track all reported protection flaws with each release of the product.
The tracking system shall include a description of the nature and
effect of each flaw and the status of finding a correction to the
flaw.

Flaw Repair Procedures: The developer shall establish a procedure to
identify corrective actions for protection flaws. This procedure shall
include a policy to separate protection-relevant from non-protection
relevant corrections, changes, or upgrades to the product. The
developer shall have a policy that when a consumer's system must be
used to diagnose and repair any problem, the developer personnel will
abide by that consumer's system security policy.

Consumer Interaction Procedures: The developer shall establish a
procedure for accepting consumer reports of protection problems and
requests for corrections to those problems. This procedure shall also
provide for automatic distribution of problem reports, for which
corrections have been found, to registered consumers who might be
affected by the problem. The developer shall designate one or more
specific points of contact for consumer reports and inquiries about
protection issues involving the product. These procedures and the
designated points of contact shall be provided in the consumer
documentation (e.g., the TFM or the SFUG).

FR-4: Timely Flaw Remediation

Flaw Tracking Procedures: The developer shall establish a procedure to
track all reported protection flaws with each release of the product.
The tracking system shall include a description of the nature and
effect of each flaw and the status of finding a correction to the
flaw.

Flaw Repair Procedures: The developer shall establish a procedure to
identify corrective actions for protection flaws. This procedure shall
include a policy to separate protection-relevant from non-protection
relevant corrections, changes, or upgrades to the product. The
developer shall have a policy that when a consumer's system must be
used to diagnose and repair any problem, the developer personnel will
abide by that consumer's system security policy.

Consumer Interaction Procedures: The developer shall establish a
procedure for accepting consumer reports of protection problems and
requests for corrections to those problems. This procedure shall
establish strict time intervals for automatically distributing the
problem reports to registered consumers who might be affected by the
problem and subsequently distributing the corrections that are found
to these same consumers. The developer shall designate one or more
specific points of contact for consumer reports and inquiries about
protection issues involving the product. These procedures and the
designated points of contact shall be provided in the consumer
documentation (e.g., the TFM or the SFUG).

FR-5: Controlled Protection State

Flaw Tracking Procedures: The developer shall establish a procedure to
track all reported protection flaws with each release of the product.
The tracking system shall include a description of the nature and
effect of each flaw and the status of finding a correction to the
flaw. The tracking system shall be incorporated into the configuration
management system.

Flaw Repair Procedures: The developer shall establish a procedure to
identify corrective actions for protection flaws. This procedure shall
include a policy to separate protection-relevant from non-protection
relevant corrections, changes, or upgrades to the product. The
developer shall have a policy that when a consumer's system must be
used to diagnose and repair any problem, the developer personnel will
abide by that consumer's system security policy.

Consumer Interaction Procedures: The developer shall establish a
procedure for accepting consumer reports of protection problems and
requests for corrections to those problems. This procedure shall
establish strict time intervals for automatically distributing the
problem reports to registered consumers who might be affected by the
problem and subsequently distributing the corrections that are found
to these same consumers. The developer shall designate one or more
specific points of contact for consumer reports and inquiries about
protection issues involving the product. These procedures and the
designated points of contact shall be provided in the consumer
documentation (e.g., the TFM or the SFUG).

5.3.2.4   Rated Trusted Generation Components

The trusted generation components are rated according to the coverage
and strength of the methods used to generate the baseline TCB. The
goal is to produce an operational TCB that does not invalidate the
protection properties established for the baseline TCB. At TG-1, the
developer must provide procedures for generating an operational TCB
from the delivered product. At TG-2, the coverage of the system
generation method is increased by requiring the developer to have the
system generation parameters default to their most restrictive
settings, thereby requiring the consumer to take a positive action to
reduce the protection provided by the TCB. At TG-3, the coverage and
strength of the generation method are increased by requiring the
developer to provide a tool that can be used after the TCB is
generated to determine if the TCB parameters are within the ranges of
a secure state.  Finally, at TG-4, coverage and strength are further
extended by requiring that the product periodically execute the
parameter checking tool and alert an administrator or operator when
the TCB configuration parameters are out of range.

TG-1: Basic Trusted Generation

The developer shall establish and document the procedures that a
consumer must perform to generate an operational TCB from the
delivered copy of the master TCB. The consumer documentation shall
identify any system parameters, which are initialized or set during
system generation, that affect the TCB's conformance to the protection
profile and state the acceptable ranges of values for those
parameters.

TG-2: Trusted Generation With Fail-Safe Defaults

The developer shall establish and document the procedures that a
consumer must perform to generate an operational TCB from the
delivered copy of the master TCB. The consumer documentation shall
identify any system parameters, which are initialized or set during
system generation, that affect the TCB's conformance to the protection
profile and state the acceptable ranges of values for those
parameters. The product shall be delivered with each of these
parameters set to its fail-safe defaults.

TG-3: Trusted Generation With Secure State Review

The developer shall establish and document the procedures that a
consumer must perform to generate an operational TCB from the
delivered copy of the master TCB. The consumer documentation shall
identify any system parameters, which are initialized or set during
system generation, that affect the TCB's conformance to the protection
profile and state the acceptable ranges of values for those
parameters. The product shall be delivered with each of these
parameters set to its fail-safe defaults. The developer shall provide
the consumer with a capability to review the product security state
(e.g., by providing a program, which could be executed after
generating and starting the TCB, that determines the consistency of
the protection-relevant parameters).

TG-4: Trusted Generation With Secure State Monitoring

The developer shall establish and document the procedures that a
consumer must perform to generate an operational TCB from the
delivered copy of the master TCB. The consumer documentation shall
identify any system parameters, which are initialized or set during
system generation, that affect the TCB's conformance to the protection
profile and state the acceptable ranges of values for those
parameters. The product shall be delivered with each of these
parameters set to its most protective value. The developer shall
provide the consumer with a capability to monitor the product security
state (e.g., by providing a program, which is periodically and
automatically executed after generating and starting the TCB, that
determines the consistency of the protection- relevant parameters).

5.3.3     Development Environment

5.3.3.1   Rated Life Cycle Definition Components

The life-cycle definition components are rated according to the
precision and coverage of the engineering process used to develop the
product. Coverage refers to the extent to which the engineering
process incorporates the development and operational support
requirements of a protection profile.  Precision refers to the
accuracy that can be brought to measuring the developer's conformance
to the claimed process including the specification of the programming
environment.  At LC-1, the developer is required to describe the
process used to develop the product, and show how all of the
development and operational support requirements of the protection
profile are satisfied as that process is followed.  No constraints are
placed on the engineering process chosen by the developer. At LC-2,
the precision and coverage are extended by requiring the developer to
use a well-defined process that provides for effective identification
of the engineering requirements as the product is developed.  Finally,
at LC-3, precision and coverage are further extended by requiring a
standard engineering process, which includes well-defined coding
standards, whose use can be measured.

LC-1: Developer-Defined Life Cycle Process

The developer shall describe the process used to develop and maintain
the product. The process shall incorporate a security policy that
states the technical, physical, procedural, personnel, and other
measures used by the developer to protect the product and its
documentation. The developer shall trace each development process and
support process requirement of the protection profile to the part, or
parts, of the developer's process where the requirement is satisfied.
The developer shall identify the programming languages used to develop
the TCB software.

LC-2: Standardized Life Cycle Process

The developer shall develop and maintain the product using a well
defined, standardized engineering process. The developer shall explain
why the process was chosen and how the developer uses it to develop
and maintain the product. The process shall incorporate a security
policy that states the technical, physical, procedural, personnel, and
other measures used by the developer to protect the product and its
documentation. The developer shall demonstrate that each development
process and support process requirement of the protection profile is
satisfied by some part, or parts, of the developer's process. The
developer shall identify the programming languages used to develop the
TCB software and reference the definitions of those languages. The
developer shall identify any implementation dependent options of the
programming language compiler(s) used to implement the TCB software.

LC-3: Measurable Life Cycle Process

The developer shall develop and maintain the product using a well
defined, standardized, and measurable engineering process. The
developer shall explain why the process was chosen and how the
developer uses it to develop and maintain the product. The developer
shall comply with the engineering process standard. The process shall
incorporate a security policy that states the technical, physical,
procedural, personnel, and other measures used by the developer to
protect the product and its documentation. The developer shall
demonstrate that each development process and support process
requirement of the protection profile is satisfied by some part, or
parts, of the developer's process. The developer shall identify the
programming languages used to develop the TCB software and reference
the definitions of those languages. The developer shall identify any
implementation dependent options of the programming language
compiler(s) used to implement the TCB software and reference the
definitions of those languages.The developer shall describe coding
standards followed during the implementation of the product and shall
ensure that all source code complies with these standards.

5.3.3.2   Rated Configuration Management Components

The configuration management components are rated according to the
precision, coverage, and strength of the configuration management
methods. Level CM-1 includes basic configuration management methods
that rely on an informal mapping between the various parts of the TCB
source data, documentation, and evidence. At CM-2, the precision and
strength of configuration management are increased by requiring that a
rigorous mapping between configuration items be used, and that the
source data configuration be controlled using automated techniques. At
CM-3, coverage and strength are extended by requiring the use of a
formal acceptance procedure for generating and maintaining source
data. Finally, at CM-4, the strength of the overall configuration
management process is enhanced by requiring that it conform to
developer-defined safeguards to protect the master copy.

CM-1: Procedural Control and Generation

The developer shall establish configuration control and generation
procedures for developing and maintaining the TCB. The procedures
shall be employed to ensure that changes to the TCB are consistent
with the product's protection properties and security policy. The
developer shall employ these procedures to track changes to
development evidence, implementation data (e.g., source code and
hardware diagrams), executable versions of the TCB, test documentation
and procedures, identified flaws, and consumer documentation.

The configuration control procedures shall permit the regeneration of
any supported version of the TCB.

CM-2: Automated Source Code Control

The developer shall establish configuration control and generation
procedures for developing and maintaining the TCB. The procedures
shall be employed to ensure that changes to the TCB are consistent
with the product's protection properties and security policy. The
developer shall employ these procedures to track changes to
development evidence, implementation data (e.g., source code and
hardware diagrams), executable versions of the TCB, test documentation
and procedures, identified flaws, and consumer documentation. The
procedures shall include automated tools to control the software
source code that comprises the TCB.

The configuration control procedures shall assure a consistent mapping
among documentation and code associated with the current version of
the TCB and permit the regeneration of any supported version of the
TCB.

CM-3: Comprehensive Automated Control

The developer shall establish configuration control and generation
procedures employing automated tools for developing and maintaining
the TCB. The procedures shall be employed to ensure that changes to
the TCB are consistent with the product's protection properties and
security policy. The developer shall employ these tools to track and
control changes to development evidence, implementation data (e.g.,
source code and hardware diagrams), executable versions of the TCB,
test documentation and procedures, identified flaws, and consumer
documentation. The procedures shall include a formal acceptance
process for protection-relevant changes.

The configuration control procedures shall assure a consistent mapping
among documentation and code associated with the current version of
the TCB and permit the regeneration of any supported version of the
TCB. The developer shall provide tools for the generation of a new
version of the TCB from source code. Also, tools shall be available
for comparing a newly generated version with the previous TCB version
to ascertain that only the intended changes have been made in the code
that will actually be used as the new version of the TCB.

CM-4: Extended Configuration Management

The developer shall establish configuration control and generation
procedures employing automated tools for developing and maintaining
the TCB. The procedures shall be employed to ensure that all changes
to the TCB are consistent with the product's protection properties and
security policy. The developer shall employ these tools to track and
control changes to development evidence, implementation data (e.g.,
source code and hardware diagrams), executable versions of the TCB,
test documentation and procedures, identified flaws, and consumer
documentation. The procedures shall include a formal acceptance
process for protection-relevant changes.

The configuration control procedures shall assure a consistent mapping
among documentation and code associated with the current version of
the TCB and permit the regeneration of any supported version of the
TCB. The developer shall provide tools for the generation of a new
version of the TCB from source code. Also, tools shall be available
for comparing a newly generated version with the previous TCB version
to ascertain that only the intended changes have been made in the code
that will actually be used as the new version of the TCB. The
developer shall use a combination of technical, physical, and
procedural safeguards to protect the master copy or copies of all
material used to generate the TCB from unauthorized modification or
destruction.

5.3.3.3   Rated Trusted Distribution Components

The rating of the trusted distribution components is based on the
strength the trusted distribution methods; i.e., on the ability to
detect or prevent modifications of the consumer's copy of the TCB from
being modified while it is transferred from the development
environment to the consumer's environment. At TD-1 the developer is
responsible for establishing procedures and/or using technical
measures that will allow a consumer to detect tampering or
modification of the TCB during transfer. At TD-2, stronger methods are
required to ensure that tampering with the TCB during transfer is
prevented.

TD-1: TCB Modification Detection During Distribution

The developer shall establish procedures and employ appropriate
technical measures to detect modifications to any TCB-related
software, firmware, and hardware, including updates, that is
transferred from the development environment to a consumer's site.

TD-2: TCB Modification Prevention During Distribution

The developer shall establish procedures and employ appropriate
technical measures to prevent modifications to any TCB-related
software, firmware, and hardware, including updates, that is
transferred from the development environment to a consumer's site.

5.3.4     Development Evidence

The rating of the development evidence parallels, to a large extent,
the rating of the development process, development environment, and
operational support. Thus, the number of evidence levels required to
reflect the process, environment and operational ratings must reflect
these ratings.

The rating considerations that lead to the articulation of the
development-evidence levels are similar to those used for the
development process. For this reason they will not be repeated here.

5.3.4.1   Rated TCB Protection Property Evidence Components

EPP-1 Evidence of TCB Correspondence to the Functional Requirements

The developer shall provide documentation which describes the
correspondence between the functional component requirements and the
TCB elements and interfaces. The TCB properties, which are defined by
this correspondence, shall be explained in this documentation.

EPP-2 Evidence of Informal Model Interpretation in the TCB

The developer shall provide documentation which describes the
correspondence between the functional component requirements and the
TCB elements and interfaces. The developer shall also provide an
informal access control model and its interpretation within the TCB.
The TCB properties, which are defined by this correspondence, shall be
explained in this documentation.

EPP-3 Evidence of Formal Model Interpretation in the DIS

The developer shall provide documentation which describes the
correspondence between the functional component requirements and the
TCB elements and interfaces. This documentation shall describe how the
TCB implements the reference monitor concept. The developer shall also
provide a formal access-control model and an informal reference
mediation and TCB protection model. The TCB properties, which are
defined by this correspondence and the interpretation of these models
within the DIS of the TCB shall be documented by the product
developer.

EPP-4 Evidence of Formal Model Interpretation in the FIS

The developer shall provide documentation which describes the
correspondence between the functional component requirements and the
TCB elements and interfaces. This documentation shall describe how the
TCB implements the reference monitor concept.The developer shall also
provide a formal access-control model and an informal reference
mediation and TCB protection model. The TCB properties, which are
defined by this correspondence and the interpretation of these models
within the DIS and FIS of the TCB shall be documented by the product
developer.

5.3.4.2   Rated Product Design/Implementation Evidence Compo- nents

EPD-1: Description Of The TCB External Interface

The developer shall provide an accurate description of the functions,
effects, exceptions and error messages visible at the TCB interface.

The developer shall provide a list of the TCB elements (hardware,
software, and firmware).

EPD-2: Specification Of The TCB External Interface

The developer shall provide TCB Design Specifications that include: a
list of the TCB elements (hardware, software, and firmware
configuration items); a description of the policy allocations,
functions, and interactions among the major TCB subsystems; and module
level descriptions of all software and hardware in the TCB.

The developer shall provide a Descriptive Interface Specification
(DIS) that describes the functions, effects, exceptions and error
messages visible at the TCB interface. The developer shall show that
the DIS is an accurate representation of the TCB's external
interfaces.

The developer shall provide a description of the TCB's implementation
and an explanation of how it corresponds to the TCB design.

EPD-3: Analysis Of The TCB External Interface

The developer shall provide TCB Design Specifications that include: a
list of the TCB elements (hardware, software, and firmware
configuration items); a list of protection services provided to the
TCB by hardware, software, and firmware that is not part of the TCB;
an explanation of the techniques and criteria used during the modular
decomposition of the TCB; a description of the policy allocations,
functions, and interactions among the major TCB subsystems; and module
level descriptions of all software and hardware in the TCB.

The developer shall provide a Descriptive Interface Specification
(DIS) that describes the functions, effects, exceptions and error
messages visible at the TCB interface. The developer shall show that
the DIS is an accurate representation of the TCB's external
interfaces.

The developer shall provide TCB Implementation Data consisting of the
engineering diagrams for all hardware included in the TCB and the
source code used to generate the TCB software and firmware.

EPD-4: Policy Consistency Of The DIS

The developer shall provide TCB Design Specifications that include: a
list of the TCB elements (hardware, software, and firmware
configuration items); a list of protection services provided to the
TCB by hardware, software, and firmware that is not part of the TCB;
an explanation of the techniques and criteria used during the modular
decomposition of the TCB; a description of the policy allocations,
functions, and interactions among the major TCB subsystems; and module
level descriptions of all software and hardware in the TCB.

The developer shall provide a Descriptive Interface Specification
(DIS) that describes the functions, effects, exceptions and error
messages visible at the TCB interface and includes a convincing
argument that the DIS is consistent with the formal model of the
policy. The developer shall show that the DIS is an accurate
representation of the TCB's external interfaces.

The developer shall provide TCB Implementation Data consisting of the
engineering diagrams for all hardware included in the TCB and the
source code used to generate the TCB software and firmware. The
developer shall show that the TCB software, firmware, and hardware
implement the documented TCB design.

EPD-5: Policy Consistency Of The FIS

The developer shall provide a Descriptive Interface Specification
(DIS) that describes the functions, effects, exceptions and error
messages visible at the TCB interface and includes a convincing
argument that the DIS is consistent with the formal model of the
policy. The developer shall show that the DIS is an accurate
representation of the TCB's external interfaces.

The developer shall provide a Formal Interface Specification (FIS)
that rigorously defines the protection functions available at the TCB
interface in terms of: the protection properties implemented by each
function, the precise semantics for invoking each function, the
effects of each function (i.e., returned values and effect on the TCB
state), and the possible exceptions and error messages returned by
each function. The FIS shall be accompanied by a convincing argument
that it is consistent with the formal model of the product protection
policy. This argument shall be constructed using both manual and
machine-assisted specification and verification methods. Machine-
assisted specification and verification methods shall be approved by
the product evaluation authority.

The developer shall provide TCB Design Specifications that include: a
list of the TCB elements (hardware, software, and firmware
configuration items); a list of protection services provided to the
TCB by hardware, software, and firmware that is not part of the TCB;
an explanation of the techniques and criteria used during the modular
decomposition of the TCB; a description of the policy allocations,
functions, and interactions among the major TCB subsystems; module
level descriptions of all software and hardware in the TCB; and an
argument that the design implements exactly the functions specified in
the FIS.

The developer shall provide TCB Implementation Data consisting of the
engineering diagrams for all hardware included in the TCB and the
source code used to generate the TCB software and firmware. The
developer shall show, through either manual or machine-assisted
correspondence methods, that the TCB software, firmware, and hardware
implement the documented TCB design.

5.3.4.3   Rated Functional Testing Evidence Components

EFT-1: Evidence of Conformance Testing

The developer shall provide evidence of the functional testing that
includes the test plan, the test procedures, and the results of the
functional testing.

EFT-2: Evidence of Test Configuration Control

The developer shall provide evidence of the functional testing that
includes the test plan, the test procedures, and the results of the
functional testing. The test plans, procedures, and results shall be
maintained under the same configuration control as the TCB software.

EFT-3: Evidence of Specification-Driven Testing

The developer shall provide evidence of the functional testing that
includes the test plan, the test procedures, and the results of the
functional testing. The test, plans, procedures, and results shall be
maintained under the same configuration control as the TCB software.
The test plans shall identify the TCB specification used in the
derivation of the test conditions, data, and coverage analysis.

5.3.4.4   Rated Penetration Analysis Evidence Components

EPA-1: Evidence of Penetration Testing

The developer shall provide evidence of penetration testing. The
evidence shall identify all product documentation on which the search
for flaws was based. The penetration evidence shall describe the
scenarios for exploiting each potential flaw in the system and the
penetration test conditions, data (e.g., test set-up, function call
parameters, and test outcomes), coverage, and conclusions derived from
each scenario.

EPA-2: Evidence of Flaw-Hypothesis Generation and Testing

The developer shall provide evidence of penetration testing. The
penetration evidence shall identify all product documentation and
development evidence on which the search for flaws was based. The
penetration evidence shall describe the scenarios for exploiting each
potential flaw in the system and the penetration test conditions, data
(e.g., test set-up, function call parameters, and test outcomes),
coverage, and conclusions derived from each scenario. The penetration
evidence shall summarize both refuted and confirmed flaws hypothesis.

EPA-3: Evidence of Penetration Analysis

The developer shall provide evidence of penetration testing. The
penetration evidence shall identify all product documentation and
development evidence on which the search for flaws was based. The
penetration evidence shall describe the scenarios for exploiting each
potential flaw in the system and the penetration test conditions, data
(e.g., test set-up, function call parameters, and test outcomes),
coverage, and conclusions derived from each scenario. The penetration
evidence shall summarize both refuted and confirmed flaws hypothesis
and identify TCB elements where the TCB implementation of the
penetration-resistance conditions is flawed.

EPA-4: Evidence of Formal Penetration Analysis

The developer shall provide evidence of penetration testing. The
penetration evidence shall identify all product documentation and
development evidence on which the search for flaws was based. The
penetration evidence shall describe the scenarios for exploiting each
potential flaw in the system and the penetration test conditions, data
(e.g., test set-up, function call parameters, and test outcomes),
coverage, and conclusions derived from each scenario. The penetration
evidence shall summarize both refuted and confirmed flaws hypothesis
and identify TCB elements where the TCB implementation of the
penetration-resistance conditions is flawed. The penetration evidence
shall include the results of mechanically validating the
implementation of the penetration resistance conditions specified for
the TCB.

5.3.4.5   Rated Covert Channel Analysis Evidence Components

ECC-1: Evidence of Covert Storage Channel Analysis and Han- dling

The developer's documentation shall present the results of the
covert-storage-channel analysis and the trade-offs involved in
restricting these channels. All auditable events that may be used in
the exploitation of known covert storage channels shall be identified.
The developer shall provide the bandwidths of known
covert-storage-channels whose use is not detectable by the auditing
mechanism. The documentation of each identified storage channel shall
consist of the variable that can be viewed/altered by the channel and
the TCB interface functions that can alter or view that variable. The
measurements of each TCB function call used by covert-storage channels
must be documented and the bandwidth computation shall be included for
each channel. The measurement environment should be documented as
specified.  Test documentation shall include results of testing the
effectiveness of the methods used to reduce covert-storage-channel
bandwidths.

ECC-2: Evidence of Covert Channel Analysis and Handling

The developer's documentation shall present the results of the covert
channel analysis and the trade-offs involved in restricting these
channels.  All auditable events that may be used in the exploitation
of known covert channels shall be identified. The developer shall
provide the bandwidths of known covert channels whose use is not
detectable by the auditing mechanism. The documentation of each
identified covert channel shall consist of the variables, timing
sources, and the TCB interface functions that can be used to transmit
information. The measurements of each TCB function call used by covert
channels must be documented and the bandwidth computation shall be
included for each channel. The measurement environment should be
documented as specified.  Test documentation shall include results of
testing the effectiveness of the methods used to reduce covert-channel
bandwidths.

5.3.4.6   Rated Product Support Evidence Components

EPS-1: Evidence of Basic Product Support

The developer shall provide evidence that describes the policies,
procedures, and plans established by the developer to satisfy the
Operational Support and Development Environment requirements of the
protection profile.

EPS-2: Evidence of Defined Product Support

The developer shall provide documentation that defines the policies,
procedures, plans, and tools established by the developer to satisfy
the Operational Support and Development Environment requirements of
the protection profile.

EPS-3: Evidence of Measured Product Support

The developer shall provide documentation that defines, explains, and
justifies the policies, procedures, plans, and tools established by
the developer to satisfy the Operational Support and Development
Environment requirements of the protection profile. The documentation
shall also explain how the developer periodically evaluates compliance
with the established procedures, policies, and plans.

5.4       Bibliographic Notes

TBD.  

Chapter 6.

 EVALUATION ASSURANCE REQUIREMENTS

Editor's Note: This chapter represents an initial attempt to
consolidate many different ideas regard- ing evaluations and
articulate a simple structure for levying requirements on the
evaluation process.  The material is presented to stimulate the debate
and analysis regarding what should be required of product evaluations.

6.1       Overview

Product evaluation is the process of validating that an IT product,
and the context in which it is developed and supported, conforms to
the requirements of a protection profile. Since only the protection
functions and quality of the product mitigate against risk, the
consumer's understanding of residual risk in any system employing the
product is largely dependent upon a producer's claims and/or upon
product evaluation information. Quality, in this context, is focused
on appropriateness, correctness, and simplicity of design with respect
to functional requirements, and correctness, effectiveness, and
efficiency of implementation with respect to design. When this
information is provided by a source independent of the product's
producer, the consumer generally has a greater degree of confidence
regarding the degree of conformance claimed by the producer.

 This chapter addresses the protection profile section for evaluation
assurance which contains requirements derived from the generic
components presented later in this chapter. These generic requirements
may be tailored with respect to the profile requirements for
protection functions and development assurance. Each protection
profile can be separately tailored for evaluation. Thus, all IT
products produced to conform to a particular protection profile will
be commonly evaluated at a level of assurance commensurate with the
profile's requirements for protection functions and development
assurance. This evaluation assurance level is agreed upon during
profile registration by the participants to the registration process
(e.g., producers, profile developers, evaluation authorities).

The evaluation assurance requirements contained in a protection
profile specify the minimum requirements that must be satisfied during
an evaluation process. This document adopts the philosophy that if a
protection function or development assurance requirement is placed on
a producer, then the satisfaction of such a requirement must be
evaluated.  Incremental evaluation assurance is accomplished by
changing the scope and intensity of examination to make the evaluated
aspects of the product's TCB, its internals, its interfaces, and its
production processes increasingly visible.

Evaluation assurance requirements do not by themselves define a
particular approach to product evaluation. There are conceivably many
different approaches to product evaluation to provide varying levels
of assurance. Any approach is defined by both evaluation methods and
the business process that incorporates those methods. Since the
business process is one that should remain flexible, the requirements
specified in this document are not intended to completely define a
specific process. Rather, they articulate requirements on methods that
can be used with a variety of business processes.The specific process
is largely the result of business decisions made by an evaluation
authority, often in conjunction with the producer and/or consumer,
regarding the most appropriate and cost-effective manner to accomplish
the evaluation assurance goals within the available resources.

This chapter is divided into four sections. The remainder of this
section groups the evaluation assurance components of a TCB into three
classes and describes the types of components in each class. The
second section presents a description of each type of evaluation
assurance component in terms of the functional and development
assurance requirements these components are intended to verify. The
third section presents the rated evaluation assurance components. The
last section includes a bibliography of useful literature references.

Classes of Evaluation Assurance: The product evaluation components
address three classes of evaluation methods (i.e., testing, review,
and analysis) and establish generic evaluation requirements based on
those methods. Test analysis and independent testing were grouped due
to the similarity of their requirements. The product evaluation
components are depicted in Figure 6.

Testing. This class of components defines two evaluation assurance
components: (1) test analysis components, and (2) independent testing
components. These two components determine whether the product's TCB
meets the functional protection requirements as defined in the
functional requirements section of the protection profile. These
components also assess whether activities required for TCB property
definition and TCB testing & analysis (both found in the development
process section of development assurance component section of the
protection profile) verification have been accomplished. These
components further assess whether these activities have been
documented in accordance with the development evidence requirements of
the development assurance section of the profile.

Review. This class of components defines two evaluation assurance
components: (1) development environment components, and (2)
operational support components. These two components validate
compliance with the operational support and development support
aspects of the development assurance requirements section of the
protection profile.

Analysis. This class of components defines two evaluation assurance
components: (1) design analysis components and (2) implementation
analysis components. These two components validate compliance with the
TCB design and TCB implementation support aspects of the development
assurance requirements section of the protection profile.

6.2       Evaluation Assurance Components

Editor's Note: The components included in this sec- tion are provided
to serve as examples and are, in some cases, incomplete. Comments
regarding their structure and content are desired from all review-
ers. An effort was made to concentrate only on eval- uation
requirements and to exclude any process- oriented areas (though some
process-oriented impli- cations may remain). The requirement for
specifying these components is to make them generic (i.e., suitable
for a variety of evaluation processes) and to be able to place them in
context with the other profile requirements (i.e., evaluation
requirements should be commensurate with the functional require- ments
and development assurance requirements).

6.2.1     Testing

Evaluation testing requirements will apply in all protection profiles.
Testing of the product and its protection functions is a
responsibility of the producer. The producer may also have the product
beta-tested by independent sources.  Evaluation testing includes (1)
the analysis of the appropriateness, coverage, consistency and
completeness of the beta-test site's test suite and/or the producer's
test suite, the data resulting from conducting these tests, and (2)
the independent application and analysis of testing by the evaluation
team. The evaluation process will be required to assess the producer's
testing results and may be required to independently perform some
level of testing of the product.  An example of such an evaluation
testing requirement would be where the evaluation team must execute
the producer's functional tests and then re-execute them after any
discovered errors (either with the tests or the product) have been
corrected.

Evaluation testing may be as simple as a pass or fail conformance test
suite against which the products must be tested. For more
comprehensive functional testing, the evaluators may be required to
functionally test aspects of the product not covered by the producer's
testing. The product's TCB, with respect to its ability to resist
penetration, will also require a range of penetration analysis and
testing. Such testing begins with known generic flaws and proceeds to
hypotheses that are refuted or confirmed. Again, the evaluators may
analyze the product's tests and test results, rerun all or a selected
set of such tests, or develop additional tests not covered by other
testing. If covert channel handling methods are incorporated into a
product to limit bandwidth, the effectiveness of those methods in
reducing channel bandwidths must also be tested. In general, the more
robust and/or resilient the product's protection is expected to be,
the more significant the level of testing that should be performed.

6.2.1.1   Test Analysis Components

Test analysis establishes the testing analysis requirements needed to
determine whether the product meets the functional protection
requirements as defined in the protection profile.  The producer will
always perform this functional testing.  Functional testing is based
on the operational product, the TCB's functional properties, the
product's operational support guidance, and other producer's
documentation as defined by the development evidence requirements.
Functional test analysis is based on the achieved test results as
compared to the expected results derived from the development
evidence. Penetration test analysis is based on known generic
penetration flaws and a set of flaw hypotheses established for the
specific product implementation. Covert channel bandwidth testing is
based on the bandwidth prior to the application of covert channel
handling method and the bandwidth that results after such application.

6.2.1.2   Independent Testing Components

Independent testing establishes the testing requirements performed by
a testing agent not associated with the producer.  These requirements
determine whether the product's TCB meets the functional protection
requirements as defined in the protection profile. Testing is based on
the operational product, the TCB's functional properties, the
product's operational support guidance, and other producer's
documentation as defined by the development evidence requirements.

6.2.2     Evaluation Review Requirements

This aspect of evaluation assurance addresses validating compliance
with the development assurance requirements.  Evaluation reviews
simply check for a process, discipline, or form of documentation by
examining evidence that validates presence or absence. Two aspects of
compliance are reviewed; (1) compliance with development environment
requirements and (2) compliance with operational support requirements.

6.2.2.1   Development Environment Review

The development environment review establishes the level of review
required to determine whether the product meets the requirements as
defined in the protection profile's development assurance subsections
for development environment. This includes the components life-cycle
definition, configuration management, and trusted distribution. An
example of such review would be configuration management audits
performed by the evaluation team to ensure that a configuration
management plan is being properly applied. At a certain level, the
evaluation team must conduct a configuration audit of all the
software, firmware, and hardware required to be kept under
configuration control according to the (approved) configuration
management plan.  Similar requirements would apply to trusted
distribution and life cycle management.

6.2.2.2   Operational Support Review

The operational support review establishes the level of review
required to determine whether the product meets the requirements as
defined in the protection profile's development assurance subsections
for operational support.  This includes the components for user and
administrative guidance, flaw discovery, tracking, and repair
procedures, and trusted generation.

6.2.3     Evaluation Analysis Requirements

This aspect of evaluation assurance addresses validating compliance
with two aspects of the development assurance requirements. Analysis
requirements are established to determine whether the product meets
the development assurance requirements. The analysis is based on the
producer's documentation, as defined by the development evidence
requirements. The two aspects analyzed are: (1) compliance with TCB
design requirements and (2) compliance with TCB implementation support
requirements.

6.2.3.1   Design Analysis

Design analysis requirements specify the objectives for evaluating a
product from a design perspective (i.e., without examination of the
product implementation). These requirements also address the adequacy
of required design documentation. A design analysis may range from a
relatively simple functional overview (e.g., a black-box perspective
of the TCB) to a detailed analysis of internal design details,
modularity, layering, etc. The level of evaluation analysis required
for producer-supplied documentation will be commensurate with the
product's design requirements as set forth in the protection profile's
development assurance section.

6.2.3.2   Implementation Analysis

Implementation analysis requirements address areas such as code
analysis. An example of such analysis is a requirement wherein the
evaluation team must examine at least 50% of the TCB's code to
ascertain whether the TCB meets the modularity requirements. The
selected code must be a representative set of the TCB and (as
appropriate) include samples of code from several different
programmers.

6.3       Rated Evaluation Assurance Components

6.3.1     Rated Test Analysis Components

This component establishes the testing analysis requirements to
determine whether the product meets the functional protection
requirements as defined in the protection profile.  This component is
required for all evaluations as it assumes that the producer will
always perform functional testing.

TA-1: Elementary Test Analysis

The evaluator shall assess whether the producer has performed the
activities defined in the development assurance requirements of the
protection profile for functional testing and whether the producer has
documented these activities as defined in the development evidence
requirements of the protection profile. The evaluator shall analyze
the results of the producer's testing activities for completeness of
coverage and consistency of results. The evaluator shall determine
whether the product's protection properties, as described in the
product documentation have been tested. The evaluator shall assess
testing results to determine whether the product's TCB works as
claimed.

TA-2: Enhanced Test Analysis

The evaluator shall assess whether the producer has performed the
activities defined in the development assurance requirements of the
protection profile for functional testing and penetration analysis,
and whether the producer has documented these activities as defined in
the development evidence requirements of the protection profile. The
evaluator shall analyze the results of the producer's testing
activities for completeness of coverage and consistency of results,
and general correctness (e.g., defect trend from regression testing).
This analysis shall examine the testability of requirements, the
adequacy of the tests to measure the required properties, the
deviation of the actual results obtained from the expected results,
and a general interpretation of what the testing results mean.  The
evaluator shall determine whether the product's protection properties,
as described in the product documentation, and all relevant known
penetration flaws have been tested. The evaluator shall assess testing
results to determine whether the product's TCB works as claimed, and
whether there are any remaining obvious ways (i.e., ways that are
known, or that are readily apparent or easily discovered in product
documentation) for an unauthorized user to bypass the policy
implemented by the TCB or otherwise defeat the product's TCB.

TA-3: Extended Test Analysis

The evaluator shall assess whether the producer has performed the
activities defined in the development assurance requirements of the
protection profile for functional testing and penetration analysis,
and whether the producer has documented these activities as defined in
the development evidence requirements of the protection profile. The
evaluator shall analyze the results of the producer's testing
activities for completeness of coverage and consistency of results,
and general correctness (e.g., defect trend from regression testing).
This analysis shall examine the testability of requirements, the
adequacy of the tests to measure the required properties, the
deviation of the actual results obtained from the expected results,
and a general interpretation of what the testing results mean.  The
evaluator shall determine whether the product's protection properties,
as defined at the TCB interface (i.e., by the DIS), and all relevant
known penetration flaws have been tested. The evaluator shall
independently develop, test, and document additional flaw hypotheses.
The evaluator shall assess testing results to determine whether the
product's TCB works as claimed, that the TCB's implementation is
consistent with the DIS, and whether there are any obvious ways (i.e.,
ways that are known, or that are readily apparent or easily discovered
in product documentation) for an unauthorized user to bypass the
policy implemented by theTCB or otherwise defeat the product's TCB,
and whether all discovered TCB flaws have been corrected and no new
TCB flaws introduced. The evaluator shall determine whether the
product is relatively resistant to penetrations.

TA-4: Comprehensive Test Analysis

The evaluator shall assess whether the producer has performed the
activities defined in the development assurance requirements of the
protection profile for functional testing and penetration analysis,
and whether the producer has documented these activities as defined in
the development evidence requirements of the protection profile. The
evaluator shall analyze the results of the producer's testing
activities for completeness of coverage and consistency of results,
and general correctness (e.g., defect trend from regression testing).
This analysis shall examine the testability of requirements, the
adequacy of the tests to measure the required properties, the
deviation of the actual results obtained from the expected results.
The analysis shall extend to trace all defects identified, corrected,
and retested. The analysis shall include an assessment of test
coverage and completeness, and defect frequency. The results of
testing shall be interpreted in terms that express product performance
and protection adequacy. The evaluator shall determine whether the
product's protection properties, as defined for all
protection-relevant modules of the TCB, and all relevant known
penetration flaws have been tested.  The evaluator shall independently
develop, test, and document additional flaw hypotheses. The evaluator
shall assess testing results to determine whether the product's TCB
works as claimed, that the TCB's implementation is consistent with the
DIS, and whether there are any obvious ways (i.e., ways that are
known, or that are readily apparent or easily discovered in product
documentation) for an unauthorized user to bypass the policy
implemented by theTCB or otherwise defeat the product's TCB, and
whether all discovered TCB flaws have been corrected and no new TCB
flaws introduced. No design flaws and no more than a few correctable
implementation flaws may be found during testing and there shall be
reasonable confidence that few remain.  If covert channel handling
methods have been implemented, the testing results shall show that the
methods used to reduce covert channel bandwidths have been effective
for all evaluated configurations. The evaluator shall determine
whether the product is relatively resistant to penetrations.

TA-5: Formal Test Analysis

The evaluator shall assess whether the producer has performed the
activities defined in the development assurance requirements of the
protection profile for functional testing and penetration analysis,
and whether the producer has documented these activities as defined in
the development evidence requirements of the protection profile. The
evaluator shall analyze the results of the producer's testing
activities for completeness of coverage and consistency of results,
and general correctness (e.g., defect trend from regression testing).
This analysis shall examine the testability of requirements, use of
the FIS for test derivation, the adequacy of the tests to measure the
required properties, the deviation of the actual results obtained from
the expected results. The analysis shall extend to trace all defects
identified, corrected, and retested. The analysis shall include an
assessment of test coverage and completeness, and defect frequency.
The results of testing shall be interpreted in terms that express
product performance and protection adequacy. The evaluator shall
determine whether the product's protection properties, as defined for
the entire TCB, and all relevant known penetration flaws have been
tested.  The evaluator shall independently develop, test, and document
additional flaw hypotheses. The evaluator shall assess testing results
to determine whether the product's TCB works as claimed, that the
TCB's implementation is consistent with the FIS, and whether there are
any obvious ways (i.e., ways that are known, or that are readily
apparent or easily discovered in product documentation) for an
unauthorized user to bypass the policy implemented by theTCB or
otherwise defeat the product's TCB, and whether all discovered TCB
flaws have been corrected and no new TCB flaws introduced. No design
flaws and no more than a few correctable implementation flaws may be
found during testing and there shall be reasonable confidence that few
remain.  If covert channel handling methods have been implemented, the
testing results shall show that the methods used to reduce covert
channel bandwidths have been effective for all evaluated
configurations. The evaluator shall determine whether the product is
completely resistant to penetrations.

6.3.2     Rated Independent Testing Components

This component establishes the independent testing requirements to
determine whether the product's TCB meets the functional protection
requirements as defined in the protection profile.

IT-1: Elementary Independent Testing

A tester, independent of the producer or evaluator, shall perform
functional and elementary penetration testing. This testing shall be
based on the product's user and administrative documentation, and on
relevant known penetration flaws. Satisfactory completion consists of
demonstrating that all user-visible security enforcing functions and
security-relevant functions work as described in the product's user
and administrative documentation and that no discrepancies exist
between the documentation and the product. Test results of the
producer shall be confirmed by the results of independent testing.
The evaluator may selectively reconfirm any test result.

If the independent testing is performed at beta- test sites, the
producer shall supply the beta- test plan and the test results. The
evaluator shall review the scope and depth of beta testing with
respect to the required protection functionality, and shall verify
independence of both the test sites and the producer's and beta- test
user's test results. The evaluator shall confirm that the test
environment of the beta-test site(s) adequately represents the
environment specified in the protection profile.

IT-2: Enhanced Independent Testing

The evaluator shall independently perform functional and elementary
penetration testing to confirm test results. This testing may be
selective and shall be based on (1) the results of other independent
and/or producer testing, (2) the TCB's DIS, (3) other product design
and implementation documentation, (4) the product's user and
administrative documentation, and (5) relevant known penetration
flaws. Satisfactory completion consists of demonstrating that all TCB
functions work as described in the product's relevant documentation,
that test results are consistent, and that no discrepancies exist
between the documentation and the product.

If the independent testing is performed at beta- test sites, the
producer shall supply the beta- test plan and the test results. The
evaluator shall review the scope and depth of beta testing with
respect to the required protection functionality, and shall verify
independence of both the test sites and the producer's and beta- test
user's test results. The evaluator shall also confirm that the test
environment of the beta-test site(s) adequately represents the
environment specified in the protection profile.

IT-3: Comprehensive Independent Testing.

The evaluator shall independently perform functional and elementary
penetration testing to confirm test results. This testing may be
selective and shall be based on (1) the results of other independent
and/or producer testing, (2) the TCB's DIS, (3) other product design
and implementation documentation, (4) the product's user and
administrative documentation, (5) relevant known penetration flaws,
and (6) evaluator-developed TCB penetration flaw hypotheses and
corresponding tests that attempt to exploit the hypothesized flaws.
Satisfactory completion consists of demonstrating that all TCB
functions work as described in the product's relevant documentation,
that test results are consistent, and that no discrepancies exist
between the documentation and the product.  Satisfactory penetration
test completion shall be determined by the subjective judgement (which
may be supported algorithmically) of the evaluator.  Test duration
agreements may further constrain this judgement. Categorization of an
actual penetration flaw shall be based on the reproducibility of that
flaw. Flaws that are discovered, but are not reproducible shall remain
categorized as potential penetration flaws. All actual penetration
flaws must be corrected and retested.

The evaluator shall provide a penetration test plan document that
describes the additional evaluator-developed flaw hypotheses and
associated tests. The evaluator shall execute these tests and shall
report any discovered flaws to the producer as part of the testing
results. At the conclusion of penetration testing, the evaluator shall
provide copies of this penetration test plan and its test results to
the producer. The producer shall ensure that this test plan and its
test results are incorporated into the rest of the product's testing
documentation and that such documentation is available for further
analysis throughout the life of the product.

If the product has incorporated covert channel handling, the evaluator
shall test for covert channel bandwidth reductions to determine the
effectiveness of handling method(s) in reducing the bandwidths of
identified covert channels for all evaluated configurations.

If the independent testing is performed at beta- test sites, the
producer shall supply the beta- test plan and the test results. The
evaluator shall review the scope and depth of beta testing with
respect to the required protection functionality, and shall verify
independence of both the test sites and the producer's and beta- test
user's test results. The evaluator shall also confirm that the test
environment of the beta-test site(s) adequately represents the
environment specified in the protection profile.

 IT-4: Formal Independent Testing.

The evaluator shall independently perform functional and elementary
penetration testing to confirm test results. This testing shall be
based on (1) the results of producer or other independent testing, (2)
the TCB's FIS, (3) the product's design and implementation
documentation, (4) the product's user and administrative
documentation, (5) relevant known penetration flaws, and (6)
evaluator-developed TCB penetration flaw hypotheses and corresponding
tests that attempt to exploit the hypothesized flaws.  Satisfactory
completion consists of demonstrating that all TCB functions work as
described in the product's relevant documentation, that the TCB
functions are consistent with the FIS, that test results are
consistent, and that no discrepancies exist between the documentation
and the product.  Satisfactory penetration test completion shall be
determined by the subjective judgement of the evaluator (which may be
supported algorithmically). Test duration agreements may further
constrain this judgement. Categorization of an actual penetration flaw
shall be based on the reproducibility of that flaw. Flaws that are
discovered, but are not reproducible shall remain categorized as
potential penetration flaws. All actual penetration flaws must be
corrected and retested.

The evaluator shall provide a penetration test plan document that
describes the additional evaluator-developed flaw hypotheses and
associated tests. The evaluator shall execute these tests and shall
report any discovered flaws to the producer as part of the testing
results. At the conclusion of penetration testing, the evaluator shall
provide copies of this penetration test plan and its test results to
the producer. The producer shall ensure that this test plan and its
test results are incorporated into the rest of the product's testing
documentation and that such documentation is available for further
analysis throughout the life of the product.

If the product has incorporated covert channel handling, the evaluator
shall test for covert channel bandwidth reductions to determine the
effectiveness of handling method(s) in reducing the bandwidths of
identified covert channels.

If the independent testing is performed at beta- test sites, the
producer shall supply the beta- test plan and the test results. The
evaluator shall review the scope and depth of beta testing with
respect to the required protection functionality, and shall verify
independence of both the test sites and the producer's and beta- test
user's test results. The evaluator shall also confirm that the test
environment of the beta-test site(s) adequately represents the
environment specified in the protection profile.

6.3.3     Rated Development Environment Review Components

This component establishes the level of review required to determine
whether the product meets the requirements as defined in the
protection profile's development assurance subsections for development
environment including life-cycle definition and configuration
management, and trusted distribution.

DER-1: Elementary Development Environment Review

The evaluator shall review the producer's development and maintenance
process description documentation to determine the degree of
discipline enforced upon and within the process, and to determine the
protection characteristics associated with the product's development
and maintenance. The results of this review shall establish, for the
evaluator, the producer's development environment, its policies, and
the degree of enforcement maintained during development execution.

DER-2: Enhanced Development Environment Review

The evaluator shall review the producer's development and maintenance
process description documentation and shall conduct a random audit of
the producer's processes using the evidence generated by each process
to determine the degree of discipline enforced upon and within the
process, and to determine the protection characteristics associated
with the product's development and maintenance. The results of this
review shall establish, for the evaluator, the producer's development
environment, its policies, and the degree of enforcement maintained
during development execution. The results of this review shall also
confirm the producer's general conformance with relevant development
environment requirements.

DER-3: Comprehensive Development Environment Review

The evaluator shall review the producer's development and maintenance
process description documentation and shall conduct a complete audit
of the producer's processes using the evidence generated by each
process to determine the degree of discipline enforced upon and within
the process, and to determine the protection characteristics
associated with the product's development and maintenance. The results
of this review shall establish, for the evaluator, the producer's
development environment, its policies, and the degree of enforcement
maintained during development execution. The review shall also confirm
the producer's complete conformance with all relevant development
environment requirements.

6.3.4     Rated Operational Support Review Components

This component establishes the level of review required to determine
whether the product meets the requirements as defined in the
protection profile's development assurance subsections for operational
support including user and administrative guidance, flaw discovery,
tracking, and repair procedures, and trusted generation.

OSR-1 Elementary Operational Support Review

The evaluator shall review all documentation focused on the activities
of product use (e.g., Users Manuals) and product administration
including installation, operation, maintenance, and trusted recovery
(e.g., Trusted Facility Management Manuals). This review shall assess
the clarity of presentation, difficulty in locating topics of
interest, ease of understanding, and completeness of coverage. The
need for separate manuals dedicated to protection-relevant aspects of
the product should be assessed for effectiveness.

This component should also address flaw remediation and trusted
generation. [[TBD.]]

OSR-2 Enhanced Operational Support Review

The evaluator shall review all documentation focused on the activities
of product use (e.g., Users Manuals) and product administration
including installation, operation, maintenance, and trusted recovery
(e.g., Trusted Facility Management Manuals). This review shall assess
the clarity of presentation, difficulty in locating topics of
interest, ease of understanding, and completeness of coverage. The
need for separate manuals dedicated to protection-relevant aspects of
the product should be assessed for effectiveness. The evaluator shall
randomly select a sample of the documented protection-relevant
features and procedures and execute them to determine if their
descriptions are accurate and correct.

This component should also address flaw remediation and trusted
generation. [[TBD.]]

OSR-3 Comprehensive Operational Support Review

The evaluator shall review all documentation focused on the activities
of product use (e.g., Users Manuals) and product administration
including installation, operation, maintenance, and trusted recovery
(e.g., Trusted Facility Management manuals. This review shall assess
the clarity of presentation, difficulty in locating topics of
interest, ease of understanding, and completeness of coverage. The
need for separate manuals dedicated to protection-relevant aspects of
the product should be assessed for effectiveness. The evaluator shall
execute all documented protection-relevant features and procedures to
determine if their descriptions are accurate and correct.

This component should also address flaw remediation and trusted
generation. [[To be written.]]

6.3.5     Rated Design Analysis Components

This component establishes the analysis requirements to determine
whether the product meets the design requirements as defined in the
development process assurance section of the protection profile,
including the TCB property definition and TCB design requirements. The
analysis is based on the producer's documentation, as defined by the
development evidence requirements.

DA-1: Elementary Design Analysis

The evaluator shall determine whether the producer has performed the
activities defined in the development process assurance requirements
of the protection profile for TCB property definition and TCB design.
The evaluator shall determine whether the producer has documented
these activities as defined in the development evidence requirements
of the protection profile. The evaluator shall analyze the results of
the producer's activities for completeness and consistency of design
with respect to requirements.

DA-2: Enhanced Design Analysis

The evaluator shall determine whether the producer has performed the
activities defined in the development process assurance requirements
of the protection profile for TCB property definition and TCB design.
The evaluator shall determine whether the producer has documented
these activities as defined in the development evidence requirements
of the protection profile. The evaluator shall analyze the results of
the producer's activities for completeness, consistency, and
correctness of design with respect to requirements.

DA-3: Comprehensive Design Analysis

The evaluator shall determine whether the producer has performed the
activities defined in the development process assurance requirements
of the protection profile for TCB property definition and TCB design.
The evaluator shall determine whether the producer has documented
these activities as defined in the development evidence requirements
of the protection profile. The evaluator shall analyze, with the help
of formal methods and appropriate automated tools, the results of the
producer's activities for completeness, consistency, and correctness
of design with respect to requirements (e.g., validating the formal
verification of the design).

6.3.6     Rated Implementation Analysis Components

This component establishes the implementation analysis required to
determine whether the product meets the requirements as defined in the
TCB implementation requirements in a protection profile's development
assurance section. The analysis is based on the implemented code and
on the producer's documentation, as defined by the development
evidence requirements.

CI-1: Elementary Implementation Analysis

The evaluator shall conduct a code inspection on a small sample of
randomly selected product code.  The assessment shall focus on clarity
of the coding style, adherence to coding standards, coding
documentation, and on possible software defects that may be present
with respect to the product's informal design. The inspection shall be
performed to obtain only a sample of possible software defects, not to
capture all such possible defects. The evaluator shall report all
discovered defects to the producer; the assessment shall report the
number of defects found per line of code inspected from the random
sample size. Use of producer-provided code inspection results can
supplement this sample inspection. All trapdoors built into the
product for maintenance purposes shall be identified by the producer
and shown to be protected by the product.

CI-2: Enhanced Implementation Analysis

The evaluator shall conduct a code inspection on a moderate sample of
randomly selected product code.  The assessment shall focus on clarity
of the coding style, adherence to coding standards, coding
documentation, and on possible software defects that may be present
with respect to the product's informal design and model. The
inspection shall be performed to obtain only a sample of possible
software defects, not to capture all such possible defects. The
evaluator shall report all discovered defects to the producer; the
assessment shall report the number of defects found per line of code
inspected from the random sample size. Use of producer-provided code
inspection results can supplement this sample inspection. All
trapdoors built into the product for maintenance purposes shall be
identified by the producer and shown to be protected by the product.

CI-3: Comprehensive Implementation Analysis

The evaluator shall conduct an inspection on a moderate sample of
randomly selected product code.  The assessment shall focus on the
clarity of the coding style, adherence to coding standards, coding
documentation, and on possible software defects that may be present
with respect to the product's formal design and model. The inspection
shall be performed to obtain only a sample of possible software
defects, not to capture all such possible defects. The evaluator shall
report all discovered defects to the producer; the assessment shall
report the number of defects found per line of code inspected from the
random sample size. Use of producer-provided code inspection results
can supplement this inspection. All trapdoors built into the product
for maintenance purposes shall be identified by the producer and shown
to be protected by the product. The producer shall correct all
discovered defects and the corrected software reinspected. A rigorous
analysis of the implementation's correspondence to the verified design
shall be performed by the evaluator to validate correctness. Such
analysis may be supported by appropriate automated tools.

6.4       Bibliographic Notes

TBD.  

Chapter 7.

CONSTRUCTION OF PROTECTION PROFILES

7.1       Overview

The functional and assurance components and their ratings defined in
previous chapters provide the basic building blocks for the definition
of protection profiles. The definition of a protection profile
consists of assembling different functional and assurance components
into a consistent and coherent set that satisfies specific security
goals of the anticipated environments of product use. The assembled
components and their requirements are generally intended to counter
threats, eliminate vulnerabilities, support security standards, and
satisfy regulatory requirements defined in the anticipated
environments of use.

During profile construction, environment-specific requirements are
used to select and synthesize the functional and the assurance
components for IT product development (see Chapter 3). It should be
noted that not all environment- specific requirements are relevant to
the selection of the functional and assurance components. For example,
some environment-specific requirements may address only problems of
organization management and IT product use that have no direct impact
on IT product requirements. The environment- specific requirements
referred to in this section are those that help select IT product
component requirements for profile inclusion.

This chapter describes the concerns that arise, and the steps that
must be taken, in synthesizing profile functional and assurance
components. It also illustrates the selection of these components by
several examples. The chapter is divided into three sections. The
first section describes several steps for synthesizing profile
components. The second section addresses the notion of dependency
analysis for profile components and component requirements. The third
section contains a bibliography of useful literature references
related to dependency analysis.

7.2       Synthesis of Profile Components

Different Levels of Abstract Requirements. The environment- specific
requirements are used in selecting the functional and assurance
components. These requirements can be stated at a level of abstraction
that is higher than, lower than, or similar to that of the functional
and assurance components.  This variance in levels of abstraction
exists because these requirements can be expressed in an unrestricted
form. The requirements may be more abstract because they may reflect
high-level security control objectives, organizational policies,
regulations and directives. For example, environment-specific
requirements may state that the computing facilities must reflect the
separation of roles defined within an organization, or must reflect a
document classification policy mandated by government directives.
Similarly, the requirements may state that the control of access to
documents processed within a computing facility must conform with a
particular document processing policy (e.g., ORGCON).

Environment-specific requirements may be less abstract than those used
in the functional and assurance components. Some may reflect the need
to support a specific security standard or guideline (e.g., password
guideline) while others may require a set of specific features and
assurances deemed necessary in the environments of IT product use. For
example, commercial security environments may require a specific set
of: password complexity rules, location- and time-based access control
rules, and security management rules. Other environments may mandate
the use of a specific subject and object labeling policy, may require
specific import or export policies for labeled objects, may mandate
the use of specific forms of acceptance testing and test coverage, or
may mandate a specific form of configuration management and trusted
distribution.

Environment-specific requirements may have the same level of
abstraction as that of the functional and assurance components because
they may be derived from requirements of existing product standards.
For example, some environment-specific requirements may be expressed
by the requirements of the Trusted Computer System Evaluation Criteria
(TCSEC) classes B2, B3, or A1, for high-assurance defense
environments.

Different Requirement Classifications. The environment- specific
requirements may be partitioned into components in a different manner
than that used in the partitioning of the product generic
requirements. Since the profile requirements ultimately drive the
profile component selection, the different component partitionings
must be resolved to ensure that the profile addresses all
environment-specific requirements. The partitioning of generic product
requirements into components and the rating of those components imply
that, when interpreted at the product- requirement level, the
environment-specific requirements must be expressed in terms of these
components and their levels.  For example, the environment-specific
requirement class of "reliability of service" may contain specific
requirements of limited service degradation, control of resource
consumption, automated crash recovery based on checkpoint restart, and
periodic back-up and restore operations. In terms of the product
component requirements, the "reliability of service" requirement will
be covered by the availability, trusted recovery, and security
management components.

The partitioning of environment-specific requirements into product
component requirements must take into account the rating of the
component requirements because certain specific requirements may, in
fact, be covered by individual requirements of multiple levels. For
example, environment- specific requirements of access control may
include all component level AC-2 (basic access control) and location-
dependent authorization, which is a requirement included in component
level AC-4 (fine-grain access control).  Consequently, if component
level AC-3 (extended access control) is selected, the
environment-specific requirement would not be satisfied by the
resulting profile, and if level AC-4 is selected, the resulting
profile becomes overspecified because the requirements of AC-4 are
unnecessarily included.  The resolution of this problem is discussed
in the next section.

The question of how the environment-specific requirements can be used
to construct functional and assurance requirements for inclusion in a
profile arises naturally, given the unconstrained level of abstraction
in the environment- requirement definition.  A key step in profile
synthesis is that of selecting the functional and assurance
components. The selection process is informal and, for this reason
must be carefully justified in constructing and accepting a profile.
When the level of the environment-specific requirements is close to
that of the component requirements, two selection steps, assignment
and refinement, are used.

7.2.1     Assignment

The assignment of environment-specific requirements to generic
component requirements is performed when a component requirement
corresponds to an environment-specific requirement. The correspondence
is determined by analyzing the intent and motivation for both the
environment-specific requirement and the product component
requirement. A match of the motivation and intent for these
requirements triggers the selection of the component requirement.

An assignment of environment-specific requirements to a component
requirement also takes place when a component requirement is given a
specific meaning. That is, a generic requirement of a component, which
may require the definition of a rule, condition, or constant, becomes
specific.

Example 1: Assignment of specific constants

In the identification and authentication component of the Commercial
Security Protection Profile CS-2, the following italicized
requirements assign specific default constants to successive
unsuccessful login attempts and to the default of the required delay:

The TCB shall end the attempted login session if the user performs the
authentication procedure incorrectly for a number of successive times
(i.e., a threshold) specified by an authorized system administrator.
The default threshold shall be three times. When the threshold is
exceeded, the TCB shall send an alarm message to the system console
and/or to the administrator's terminal, log this event in the audit
trail, and delay the next login by an interval of time specified by
the authorized system administrator. The default time interval shall
be 60 seconds. The TCB shall pro- vide a protected mechanism to
disable the user identity or account when the threshold of succes-
sive, unsuccessful login attempts is violated more than a number of
times specified by the adminis- trator. By default, this mechanism
shall be dis- abled (as it may cause unauthorized denial of service).



Also, in the access control component of the Commercial Security
Protection Profile CS-2, the following italicized requirement
identifies a specific subject attribute (i.e., group identity) to
which access rights are assigned:

Object attributes shall include defined access rights (i.e., read,
write, execute) that can be assigned to subject attributes. The TCB
shall be able to assign object access rights to group identities.



Example 2: Assignment of specific authorization rules

In the access control component of the Commercial Security Protection
Profile CS-2, the following italicized requirement assigns specific
authorization rules for subject references to objects:

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects.

At a minimum, the authorization rules shall be defined as follows:

a.        The access rights associated with a user identifier shall take
precedence over the access rights associated with any groups of which
that user identifier is a member.

b.        When a user identifier can be an active member of multiple
groups simultaneously, or if the access rights associated with the
user identifier conflict with the access rights associated with any
group in which the user is a member, it shall be possible for a system
administrator to configure rules that combine the access rights to
make a final access control decision.

c.        The TCB shall provide a protected mechanism to specify default
access rights for user identifiers not otherwise specified either
explicitly by a user identifier or implicitly by group membership.



Example 3: Assignment of specific conditions

In the access control component of the Commercial Security Protection
Profile CS-2, the following italicized requirement assigns specific
conditions to the rule for assignment and modification of access
control attributes for subjects and objects.

The effect of these rules shall be that access rights to an object by
users not already possessing access permission is assigned only by
authorized users.

Only the current owner or system administrators can modify access
control attributes of objects.

There should be a distinct access right to modify the contents of an
object's access control list (e.g., an "ownership" or "control"
right).



The component requirements are assigned a null environment- specific
requirement whenever an environment-specific requirement is not
assigned for a component. A null assignment implies that the component
is not included in a profile (unless another component, which is
required by another environment-specific requirement, depends upon
it).

Example 4: Null assignment

In the Commercial Security Protection Profiles (CS-1, CS-2, CS-3),
several assurance components were not selected for inclusion. The
modular decomposition component, TCB structuring support, and TCB
design disciplines were not selected because this profile does not
require assurances about the internal TCB structure.

When an environment-specific requirement is assigned, it is possible
that the component requirements used include some features that are
not explicitly selected (i.e., an exact match is not possible). In
this case, a do not care is assigned to the features and/or assurances
not selected.

Example 5: "Do not care" assignment

In Example 2, the assignment of the specific authorization rules
refers only to the selection of subject attributes for access
authorization and does not include any specification of the object
subset to which the authorization applies. This implies that a "do not
care" is assigned to the generic requirement of identifying the
authorization scope in the access control component. Similarly, a "do
not care" assignment is implicitly made in Example 3. Although
specific conditions are assigned to the rule for modification of
access control attributes, a specific condition or rule was not
assigned for attribute modification during object import and/ or
export operations.

7.2.2     Refinement

The refinement of a component requirement is necessary when the
environment-specific requirements are less abstract (i.e., more
specific) than the component requirements. As a consequence, one or
more environment-specific requirements are added to a single component
requirement. This represents a refinement of a component requirement.
Note that the refinement of a component requirement differs from the
assignment of environment-specific requirements to components. For
example, a refinement of a component requirement may not assign any
specific meaning to a requirement rule, condition, or constant.
Instead, the refinement provides an elaboration of a generic component
requirement in a specific environment.

Example 6: Refinement of the trusted path component

In the Commercial Security Protection Profile CS-2, the following
italicized requirement refines the Trusted Path component TP-1
requirement:

The TCB shall support a trusted communication path between itself and
the user for initial identification and authentication. Communications
via this path shall be initiated exclusively by a user.

The TCB shall provide a protected mechanism by which a data
entry/display device may force a direct connection between the port to
which it is connected and the authentication mechanism.

Example 7: Refinement of the authorization rules

In the Commercial Security Protection Profile CS-2, the following
italicized requirement refines the requirement for authorization rule
definition and enforcement:

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects.

For each object, the authorization rules of the TCB shall be based on
a protected mechanism to specify a list of user identifiers or groups
with their spe- cific access rights to that object (i.e., an access
control list).

The assignment and refinement rules become necessary whenever the
level of abstraction of the environment-specific requirements differs
from that of the generic product components. However, when the
partitioning or classification of environment specific requirements
differs from that of the functional and assurance components, two
additional selection steps, decomposition and level-selection, are
used.

7.2.3     Decomposition

The decomposition of a specific requirement becomes necessary when
that requirement must be assigned to multiple components of the
generic product requirements during the interpretation process.
Examples of decomposition are provided by both the specific
requirements of the commercial domain illustrated in the NIST Minimum
Security Functionality Requirements (MSFR) release 1.1 and by the
specific requirements of labeled protection found in the TCSEC.

Example 8: MSFR requirement decomposition into generic components

1. MSFR System Integrity Requirement -> Functional Components (AC, P,
AD, SC, SM)

Requirement Component (paragraph)

Separate process and address spaces P-1 (1) Verification of installed
software using SC-3
 checksums & digital signatures Restrict use of supervisory states P-1
(1) Audit use of operator consoles AD-2 (2) TCB software modification
restricted to SM-1 (4)
    administrative users System maintenance limited to SM-1 (4,5)
    administrative users Validate correct operation of hardware SC-1
    & firmware elements

2. Data Integrity Requirement -> Functional Components (AC, SC, SM,
ESU)

Requirement Component (paragraph)

Record date & time object last modified AC-4 (3) Check file system and
storage medium SC-3
 integrity Display of system parameters and flags SM-1 (2,3)
Directory/path search order ESU-2 (1)

3. Reliability of Service -> Function Components ((AR, AF), TR, SM)

Requirement Component (paragraph)

Degraded service operation AF (TDB) Controlled consumption of disk
space, AR-1
 CPU usage Recovery after system failure TR-1 Data backup & restore
SM-1 (4) Checkpoint restarts TR-4 (2)

Example 9: Decomposition of labeled component requirements into
generic components

1. TCSEC Device Labeling Requirement (B2) -> Functional Components
(AC, SE)

Requirement Component

The TCB shall support the assignment of AC-2 (2), minimum and maximum
security levels to all attached physical devices.

These security levels shall be used by I&A-2 (2) the TCB to enforce
constraints imposed by the physical environments in which the devices
are located.

7.2.4     Level-Selection

The rating of functional and assurance components requires that
specific component levels be selected when the environment-specific
requirements are interpreted at the product level. However, an
environment-specific requirement may exceed the requirements of a
single level and may include individual requirements of higher levels.
Whenever this happens, the selection of the component level follows a
"low water mark" rule. That is, the selected level is the highest
complete level required, but is augmented by individual requirements
of higher levels. This leads to the development of new components from
existing requirements, and ensures that the rating criteria used for
the component levels does not impair flexibility in profile
construction. Provided that an environment-specific requirement leads
to the selection of at least one complete level (e.g., the low-water
mark), different individual requirements of a higher level of the same
component can be selected to augment the selected low-water- mark
level.

Example 10: Low-water-mark selection of component levels for MSFR
requirements

Access control requirements of the Commercial Security Protection
Profiles CS-2 and CS-3 were derived from the specific requirements of
the MSFR by using low-water-mark selection of levels.

CS-2: AC-2+:        These rules shall, either by explicit user action or
by default, provide that objects are protected from unauthorized
access.

These rules shall allow authorized users to specify and control
sharing of objects by named individuals or defined groups of
individuals, or by both, and shall provide controls to limit
propagation of access rights, (i.e., these rules shall define the
distribution, revocation, and review of access control attributes).
The controls defined by these rules shall be capable of specifying for
each named object, a list of individuals and a list of groups of named
individuals, with their respective access rights to that object.
Furthermore, for each named object, it shall be possible to specify a
list of named individuals and a list of groups of named individuals
for which no access to the object is given [AC-4]. These controls
shall be capable of including or excluding access to the granularity
of a single user.

CS-3: AC-2+: If multiple access control policies are supported, the
access control attributes corresponding to each individual policy
shall be identified. The subject and object attributes shall
accurately reflect the sensitivity and/or integrity of the subject or
object. The subject's access control attributes also shall include
time and location attributes that can be assigned to authenticated
user identities [AC-4].

The TCB shall define and enforce authorization rules for the mediation
of subject references to objects. These rules shall be based on the
access control attributes of subjects and objects. These rules shall,
either by explicit user action or by default, provide that objects are
protected from unauthorized access. These rules shall include
time-of-access and location-of-access controls defined for subjects
and objects [AC-4].



The rating of the functional and assurance components can also cause
multiple levels of the same component to be selected when the
environment-specific requirements are interpreted at the product
level. Whenever this happens, the selection of the component level
follows a "high water mark" rule. That is, the selected level is the
maximum of all the levels separately selected from the same component.

Example 11: High-water-mark selection of component levels for TCSEC
requirements

The system architecture requirements of the TCSEC class B3 include the
following specific requirements:

TCSEC System Architecture Requirement (B3) --> Modular Decomposition
(MD)

Requirement Component

The TCB shall be structured into MD-2 well-defined modules
         and Significant system engineering shall be MD-3 directed
towards minimizing the complexity of the TCB and excluding from the
TCB modules that are not protection-critical.

The TCB structuring into modules requires the selection of assurance
component MD-2. The minimization of the TCB complexity and the
exclusion of protection-irrelevant modules from the TCB lead to the
selection of the assurance component MD-3 because module exclusion
requires the analysis of the correctness dependencies between modules.
This is required to determine whether a protection-relevant module
does not depend directly or indirectly on a module deemed to be
protection-irrelevant and scheduled for removal from the TCB.  Since
the modular decomposition level MD-3 includes the requirements of
level MD-2, level MD-3 is the high-water-mark level and thus it must
be selected.

The system architecture and design specification and verification
requirements of the TCSEC class A1 include the following specific
requirements:

TCSEC System Architecture Requirement (A1) - > Interface Definition
(IF-2)

TCSEC Design Specification Requirement (A1) - > Interface Definition
(IF-3)

Requirement Component

The user interface shall be completely IF-2 defined and all elements
identified.

A formal top-level specification (FTLS) IF-3 of the TCB shall be
maintained that accurately describes the TCB in terms of exceptions,
error messages, and effects.

Since the interface definition level IF-3 includes the requirements of
level IF-2, level IF-3 is the high-water-mark level and thus, it must
be selected.

Note that the decomposition and level-selection may require assignment
and refinement and vice-versa. For example, the "low water mark" level
selection, assignment, and refinement are illustrated by the
requirements of access-control attribute administration in component
AC-2+ of profiles CS-2 and CS-3.

7.3       Dependency Analysis

The analysis of the dependencies between functional and assurance
components must be performed during profile construction. Such
analysis helps (1) avoid inadequate, or incorrect, profile
specification, (2) avoid overspecification of a profile, (3) determine
the effect of profile changes (e.g., addition or removal of individual
components or component requirements), and (4) analyze the
compatibility of different protection profiles and harmonize different
sets of component requirements (see Appendix E). This section
illustrates and classifies functional and assurance dependencies.
Examples are provided to show the use of dependency analysis in
profile-compatibility analysis and profile-change analysis. This
section is intended to enable protection profile developers to define
consistent and coherent profiles that can be evaluated and used by
independent organizations. It is further intended to motivate the
analysis required when comparing different standards addressing
information protection in IT products or when ensuring the
preservation of previous investments (e.g., maintaining compatibility
with the TCSEC).

7.3.1     Dependency Classification

Dependencies among the components of a product appear (1) among the
functional components, (2) among assurance components, and (3) between
the functional components and assurance components. Dependencies may
also exist between the functional and assurance components and the
product definition and operation. These dependencies help enlarge the
application of a profile definition to widely-used products that might
otherwise be considered inadequate for a specific protection profile.
These dependencies can be analyzed in a similar manner as those of the
first three classes, as this class does not introduce new dependency
types. The role of classifying these dependencies is (1) to help
achieve consistency and coherent profile definition, and (2) to
decrease profile-definition susceptibility to inconsistent component
classification of a component either as function or as an assurance.

Dependencies are classified into several types that are reminiscent of
those that appear in the correctness analysis of large systems and
products. This classification helps identify the important
dependencies that are necessary to achieve the consistency and
coherence of a protection profile.

7.3.2     Dependencies Among Functional Components

Dependencies among functional components arise because the functions
that implement a component depend on functions implementing other
components, or because different functions implementing different
components must implement the same policy (properties) or
requirement(s), individually or together. Thus,a distinction is made
between the "uses" and "policy property" types of dependencies. There
exists a "uses" dependency between two functional components, A and B,
if the correctness of functions implementing A assumes the correctness
of functions implementing B. There exists a "policy property"
dependency between two functional components, A and B, if functions
implementing both A and B must implement, either individually or
together, a property or a condition required by the policy (e.g., the

property" dependencies may appear within a set of components, as shown
in the balance of this section.

7.3.2.1   "Uses" Dependency among Functional Components

"Uses" dependencies exist among different functional components of a
TCB. Figure 7 illustrates "uses" dependencies among the different
security policies supported by a TCB.  These policies include access
control, accountability (i.e., identification and authentication,
system entry, trusted path, and audit), and availability. Figure 7
also illustrates "uses" dependencies among the security policies and
the balance of the functional components (i.e., reference mediation,
TCB logical protection, TCB least privilege operation, TCB ease-of
-use, TCB start-up and recovery, TCB self-checking, and TCB physical
protection). For example, a "uses" dependency arises among the access
control and the TCB recovery components because access control can be
correctly enforced only if the TCB recovery from failures and
discontinuity of operations is correct.

"Uses" dependencies also exist within a functional component of a TCB
(i.e., among the individual requirements of a single component).
Figure 8 illustrates several "uses" dependencies within the access
control component of a TCB. For example, authorization has a "uses"
dependency on attribute- administration because the access
authorization functions are correct only if the distribution and
revocation functions implementing attribute administration are correct
(see Appendix C). A similar dependency appears within attribute
administration (i.e., the access review function is correct only if
the distribution and revocation functions are correct).

Note that both the "uses" dependency within a functional component and
among functional components may cause cyclic dependencies to arise. A
typical cyclic dependency is illustrated in Figure 9(a). Unprivileged
subject references to objects can be mediated correctly only if TCB
protection is provided, and TCB protection can be provided only if
unprivileged subject references that attempt to modify objects
implementing TCB isolation are denied by reference mediation. The
removal of this cyclic dependency is illustrated in Figure 9(b).
Removal is made possible by including a requirement (and corresponding
function) for a specialized reference mediation that mediates only
references to objects implementing TCB isolation.

Cyclic dependencies may arise among the requirements of several
functional components, and individual requirements of functional
components may be part of several cyclic dependencies. An example of
multiple (i.e., three) cyclic dependencies is illustrated in Figure
9(c).

In Figure 9(c), the first cyclic dependency is between access
authorization and attribute administration. It arises not only because
the authorization functions depend on attribute- administration
functions (i.e., distribution and revocation functions), but also
because the attribute-administration functions require authorization
for reading and writing authorization objects (e.g., access control
lists) to distribute, review, and revoke object access rights. The
second cyclic dependency is between authorization and object creation
and destruction. Object creation and destruction depends on
authorization because, when objects are created (or destroyed) and
placed in (or removed from) directories, the creation (or destruction)
functions rely on access check functions that authorize directory
modification. Attribute administration, however, depends on object
creation and destruction because attribute-administration functions
need to create authorization objects to specify object attributes
(i.e., access rights). Hence, authorization depends, albeit
indirectly, on object creation and destruction functions. The third
cyclic dependency is between the availability component and the access
control component. The availability function of modifying resource
quotas can be correct only if the authorization function of access
control is correct.  Otherwise, arbitrary modifications of resource
quotas may take place. Hence, availability depends on access
authorization. Since the object creation component of access control
depends on the resource allocation component of availability, a cyclic
dependency arises because the authorization component depends
indirectly on the object creation component.

Figure 9(d) illustrates the removal of the cyclic dependencies
depicted in Figure 9(c). The cyclic dependency between authorization
and attribute administration can be removed by including a requirement
for a specialized authorization function that controls access only to
authorization objects used for attribute administration. The cyclic
dependency between attribute administration and object creation and
destruction can be removed by including a requirement for default
creation, initialization, and destruction of authorization objects for
all other objects, within attribute administration. As illustrated in
Figure 9(d), the removal of these two cyclic dependencies also causes
the removal of the cyclic dependency between access authorization and
the availability component of this example.

7.3.2.2   Policy-Property Dependency

"Policy property" dependencies may be found within a single functional
component and among different functional components of a TCB. Figure 8
also illustrates these policy property dependencies within a
functional component of a TCB.  For example, a property of an access
control policy may be that "a subject may not view an object unless it
has the read access right and may not alter an object unless it has
the write access right for that object" (i.e., a property of access
authorization which the TCB must implement). In an access control
policy that supports this property, both the authorization and the
attribute administration functions must maintain this property.
Similarly, if the propagation of access rights to an object must be
controlled, then a policy property may be that "unauthorized retention
of access rights to an object cannot take place." To satisfy this
property, the access-right revocation function must be able to undo
the effect of the access-right distribution function (i.e., a "policy
property" dependency exists between the distribution and revocation
functions of attribute administration). The two functions must have
the same scope, granularity, and coverage (i.e., it must refer to the
same set of subjects and objects, must refer to the same subject and
object attributes, and must include or exclude the same conditions,
such as transitivity).

Figure 10 illustrates several "policy property" dependencies among
different functional components of a TCB. If components such as access
control, audit, and availability are supposed to counter the same set
of threats, then these components must satisfy the same policy
properties, or requirements, either individually or together, and must
have the same scope and granularity. For example, if the threat is
that posed by malicious application programs (e.g., Trojan Horses in
untrusted application programs), then the functional components of
access control and availability policies (i.e., resource control) must
be non-discretionary, and must control and audit the use of covert
channels. These policies must also refer to the same set of subjects
and objects (i.e., same scope) and to the same subject and object
attributes (i.e., same granularity). Identification and authentication
components must include non-discretionary attributes (e.g.,
confidentiality and/or integrity levels, roles) among the
authorization data, and must control the users' selection of these
attributes during system entry. Trusted path support also becomes
necessary.

7.3.2.3   Multiple Dependencies

A functional component may simultaneously depend on other functional
components. A component may have (1) multiple "uses" dependencies, (2)
multiple "policy-property" dependencies, or (3) combinations of
`"uses" and "policy- property" dependencies. For example, Figure 7
shows that the access control, audit, and availability components have
direct or indirect "uses" dependencies with all other functional
components. Also, Figure 9 shows that object creation and destruction
may have multiple direct "uses" dependencies (i.e., on authorization
and availability).

Figures 8 and 10 suggest that, since multiple policies may be
supported in a product, multiple policy properties will exist and,
therefore, a component may have multiple "policy property"
dependencies. The composition of policies within a product requires
that multiple dependencies be analyzed to determine whether the
composed policies satisfy the required system policy. For example, a
profile may require that both a mandatory policy controlling
information flow (via covert channels) and a discretionary policy be
supported. The composition rules for the resulting TCB access control
policy require that (1) both the mandatory and discretionary
authorization rules be enforced on every subject and object protected
by discretionary controls, and (2) the references issued by the
enforcement modules of the discretionary policy be subject to the
mediation specified by the mandatory rules.  This precedence of
enforcement is important whenever the exceptions returned by the
enforcement of the two sets of rules are different. The reason is that
if non-identical exceptions are returned by the two sets of rules, new
covert channels may appear that would otherwise not appear had only
the mandatory rules been enforced. These covert channels would violate
the intent of the mandatory confidentiality policy.  Similarly, the
composition of distinct mandatory policies that individually control
information flow may introduce additional flow violations that did not
exist before composition. This suggests that the composition of
policies within a profile introduces additional requirements for
analyzing policy-property dependencies.

Figures 8 and 10 also illustrate that a component may have both "uses"
and "policy-property" dependencies.

7.3.3     Dependencies Among Assurance Components

Dependencies arise among assurance components because some components
use other components, or because different assurance components belong
to the same assurance process.  Thus, a distinction is made between
"uses" dependencies and "assurance process" dependencies. A "uses"
dependency exists between two assurance components, A and B, if
obtaining assurance A requires that assurance B must be first
obtained.  An "assurance process" dependency exists between two
assurance components, A and B, if both A and B represent two required
stages of the same assurance process (e.g., development process,
maintenance process in the development environment, and
operation-support process).

7.3.3.1   "Uses" Dependency among Assurance Components

The "uses" dependency can arise both among, and within, the components
of the same assurance process and between the components of different
assurance processes. Figure 11 illustrates several "uses" dependencies
among, and within, the operational assurance requirements of the TCSEC
class B2.  For example, operational assurance SR1 depends on
operational assurance SR6 because the TCB user (external) interfaces
must be completely defined to establish the protection boundary of the
TCB domain. SR1 also depends on the operational assurance SR11 (i.e.,
the reference validation mechanism) because the protection of the TCB
domain can be established only if user references that attempt to
modify TCB internal objects implementing TCB isolation are blocked by
the reference validation mechanism. Operational assurance SR11
requires that the TCB be decomposed into modules. However, since the
hardware/firmware modules that separate the protection- critical
elements from those that are not protection-critical also contain
reference validation checks, these modules must also be identified to
satisfy operational assurance SR11.  Hence, SR11 also depends on SR2.
Also, operational assurance SR10 depends on operational assurance SR6
since the operator and administrator functions offer external TCB
interfaces.  SR10 depends on operational assurance SR4 because the
operator and administrator functions are part of the TCB and, thus,
must operate with the least privileges to accomplish their role
Furthermore, the separation of operator and administrator functions
implies that the operator and administrator must have special
privileges representing different role authorities to invoke these
functions. Similar reasoning applies to the other dependencies shown
in Figure 11.

"Uses" dependencies appear between the components of the same
assurance process because of the types of specifications and the types
of correspondences between specifications used in the process. For
example, both penetration-flaw and covert- channel identification
methods depend on the types of TCB specification used.
Specification-to-code correspondence depends on whether TCB design
specifications are required and on the specific type of TCB design
specifications (DIS or FIS). Generation of functional test conditions
depends on policy-model interpretation in, or correspondence to, the
TCB design specification, and test coverage using data-flow and path
analysis depends on specification-to-code correspondence.

The "uses" dependency may arise between components of different
assurance processes. For example, operational support components, such
as flaw-discovery, tracking and repair, and also protection
maintenance, TCB generation, and TCB distribution, depend on the
configuration management component of the development environment.
Naturally, the development evidence components depend on the
components of the development process.

7.3.3.2   Assurance-Process Dependencies

In contrast to the "uses" dependencies, the "assurance process"
dependencies arise only among the stages of the same assurance
process. For example, the operation-support process would be
incomplete if only flaw discovery, but not tracking and repair, were
performed. The maintenance process of the development environment
would be meaningless if the configuration management component is
implemented, but not the life-cycle component. If the procedures for
controlling access to the configuration management systems are
unspecified, the use of that IT product may become meaningless in some
environments. Similarly, assurance of correct implementation of the
TCB properties would not be available without the provision of a
detailed design, architectural design, or TCB property definition.

Assurance-process dependencies help determine the assurance components
necessary in an IT product and the chain of evidence that the product
is correctly implemented. For example, the development assurance
process may include the following design specification and
verification requirements: (1) definition of the model for the access
control policy, (2) TCB interface specification, (3) TCB
implementation (e.g., source code), (4) valid interpretation of the
model in the TCB (i.e., demonstration of consistency between the model
and the TCB), and (5) TCB specification-to-code correspondence (i.e.,
demonstration of consistency between the TCB design specification and
TCB source code). These requirements are process-dependent. Without
any one of these requirements, the design specification and
verification would be incomplete and the protection profile could
become inadequate for the chosen environment of product use (e.g., it
may not be possible to demonstrate the correct implementation of the
reference monitor concept).

Example 12: Missing process dependencies for the design specification
and verification process

Assurance requirements (1) - (5) listed above are found among those of
the TCSEC class A1. The assurance requirements of class B3 lack the
last assurance requirement, namely TCB specification-to-code
correspondence (i.e., demonstration of consistency between the TCB
design specification and TCB source code) and thus, the B3 design
specification and verification process is incomplete. Note that since
the complete analysis and testing of the reference validation
mechanism is a requirement of the reference monitor concept, and since
the assurance requirements of TCSEC class B3 require the demonstration
of a reference monitor implementation, it is concluded that the class
B3 assurance requirements do not completely satisfy the requirements
of the reference monitor concept. (Although the other TCSEC classes
lack this and other requirements of the design specification and
verification process, their assurances are affected to a smaller
degree because most of these classes do not include a requirement for
demonstrable reference monitor implementation.)

7.3.4      Dependencies between Functions and Assurances

The analysis of the dependencies between functional and assurance
components helps determine whether the selection of assurances made in
the definition of a profile is consistent with the specific selection
of functional-component requirements. That is, by definition, a
functional component requirement has a "uses" dependency on an
assurance requirement if the assurance requirement becomes necessary
whenever the functional component requirement is used in a profile
definition. In other words, the analysis of the dependencies between
functional and assurance components helps determine whether a
functional component can be correctly designed, analyzed, implemented,
and evaluated given the selected set of assurance components.

Note that, based on the definition of a "uses" dependency and on the
definition and classification of functions and assurances used in this
standard, obtaining an assurance should be independent of the presence
of any protection function; i.e., obtaining and demonstrating an
assurance for a protection function should not require that other
protection functions be added to a TCB. This assurance independence of
functional components is also justified by the observation that
assurances contribute only to the elimination of internal TCB design
and implementation errors but do not counter any threat posed by
external users or untrusted applications.

The dependencies between functional and assurance components are
"uses" dependencies. These dependencies are illustrated by the
following examples:

a.        Whenever functions of distinct security policies are supported
(e.g., composed) within the TCB, the TCB interface must be designed so
that it is consistent with the properties of the overall TCB security
pol- icy. By the definition of dependency between func- tional and
assurance components, the access control functions depend on the TCB
interface design.

b.        Whenever mandatory confidentiality or integrity poli- cies are
supported within a TCB to establish informa- tion flow boundaries
among untrusted applications, a covert-channel analysis must be
performed. Thus, the access control policies used depend on
covert-channel analysis.

c.        Whenever different identification and authentication policies
are used within a TCB (e.g., user-chosen passwords or one-time
passwords generated by password devices), the selection of test
condition and test coverage types is based on the properties of those
policies. Password length, lifetime, and complexity testing is
performed for policies that allow users to choose their own passwords,
whereas only the analysis of the complexity of one-time passwords is
performed for policies using one-time passwords (since these passwords
have fixed length and lifetime).

d.        Whenever the reference validation mechanism is imple- mented
within a TCB, the access control policies defined have a dependency on
the type of specifica- tion-to-code correspondence method. For
example, the correspondence methods used to show that discretionary
access control requirements are implemented by source code may be
based on establishing the correspondence between state transitions of
a policy model and those of the source code. These methods differ from
those based on information flow and non-interference, which are used
to show that the source code does not intro- duce information flows to
those flows found in the interface specifications.

7.3.4.1   Relationship to other Function and Assurance Classifi- cations

It is important to note that other, equally valid, classifications of
functional and assurance components, which differ from the one defined
in this standard, may cause assurances to depend on access control
components. For example, TCB recovery, covert channel handling,
trusted facility management, and the TCB privileged (i.e., least
privilege) operations may be considered to be operational assurances
(see the TCSEC). As shown in Figures 8 and 10, some operational
assurances become policy-property dependent on the access control
components because some of these assurances can only be obtained if
the policy properties are defined.  Cyclic dependencies may also arise
between these components; e.g., between trusted recovery assurance and
access control.

The specific classification of TCB functional and assurance components
used in this standard does not affect the dependencies among the
profile components. For example, the dependencies among operational
assurances of the TCSEC B2 class products are described as (1) "uses"
dependencies among assurance components of the development process,
(2) "uses" dependencies among functional components, and (3) "uses"
dependencies between functional components on assurance components of
this standard. This is illustrated by the examples of the next
section. It is important to note that regardless of how the functional
and assurance components are classified, the existence of dependencies
identified among those components does not change. In this sense,
dependency analysis removes the susceptibility of a profile definition
and analysis to different classifications of functional and assurance
components.

7.3.5     Examples of Using Dependency Analysis

The use of dependency analysis is illustrated by two examples.  First,
functional and assurance components are selected for a protection
profile that is intended to include the B2 operational assurances of
the TCSEC (see protection profile LP-2). Second, dependency analysis
is used in profile enhancement. The example illustrates the role of
dependency analysis when the B2 assurances are enhanced by the B3
assurances (see protection profile LP-3).

Example 13: Analysis of profile compatibility

The result of decomposing the TCSEC B2 operational assurance
requirements into the functional and assurance components of this
standard is illustrated in Figure 12. After decomposing the B2
requirements, it must be established that the decomposition does
preserve the dependencies (e.g., the "uses" dependencies) that exist
among the B2 operational assurances. To establish that the
dependencies are preserved, the assignment and level-selection steps
must also be performed. Figure 12 shows the assignment and
level-selection performed for the decomposed B2 assurance
requirements. With the exception of specific requirements, SR1, SR8,
SR10 and SR11, which are classified as functional component
requirements by this standard, all other specific B2 operational
assurance requirements (see Figure 11) correspond to assurance
components of this standard.

Figure 12 illustrates the fact that reclassification of an assurance
component as a functional component does not affect the existing
dependencies. This figure shows that the TCB interface design (IF-2)
relies on the decomposition of the TCB into modules and the
identification of the modules that offer external TCB interfaces
(MD-2). TCB modular decomposition cannot be performed without the
identification of the TCB elements (ID-2). Storage channel analysis
(CCA-1) needs both the TCB interface design (IF-2) and the modular
decomposition of the TCB (MD-2); the former is needed for defining the
covert-storage channels in terms of TCB system calls and parameters,
whereas the latter is needed for source-code level identification of
information flows. Support for TCB structuring (SP-2) can be effective
only if both the modular decomposition of the TCB (MD-2) and the
identification of the TCB elements (ID-2) are available. The isolation
of TCB processes and the separation of the protection critical TCB
elements from the non-critical ones (SP-2) requires the modular
decomposition of the TCB elements. Modular decomposition and
separation can only be done after the TCB elements are identified and
justified (ID-2). Note, however, that the dependency of the specific
requirement SR2 on SR5 illustrated in Figure 11 does not correspond to
an inter- component dependency in Figure 12. Instead, it corresponds
to the implicit dependency between the component levels SP- 2 and
SP-1; i.e., SP-1 is included in SP-2. The high-water-mark level
selection implies that only level SP-2 is selected for profile
inclusion.

Similar reasoning can be used to show that the rest of the
dependencies among the B2 operational assurances are preserved by the
decomposition, assignment, and level- selection steps leading to the
functional and assurances components synthesized in Figure 12 (and in
the protection profile LP-2).

Example 14: Enhancing profile requirements

Enhancing the component requirements of a protection profile (1) can
introduce new dependencies and (2) lead to new level selections in
profile synthesis. For example, enhancing the operational assurance
requirements of the TCSEC B2 class to obtain those of the TCSEC B3
class introduces both new dependencies and level selections. Figure 13
illustrates the new level selections for the corresponding profile
components. For example, the B3 requirement SR10', which replaces the
B2 requirement SR10, implies that component SM- 1++ must replace
component SM-1+ in the corresponding profile (see protection profile
LP-3). Furthermore, the B3 covert- channel analysis requirement SR9',
which replaces the B2 storage-channel analysis requirement SR9,
implies that the component CCA-2 must replace component CCA-1 in the
corresponding profile (see protection profile LP-3).

Figure 13 also illustrates the new dependencies introduced by the
transition from operational assurances of class B2 to those of class
B3 in the TCSEC. New dependencies appear between requirements SR13 and
SR3, between requirements SR13 and SR2, between requirements SR12 and
SR2, and between requirements SR12 and SR5. These new dependencies
cause the high-water-mark selection of levels MD-3 and SP-3. Within
the development process, the minimization of the TCB complexity (as
required by SR13) depends on the modular decomposition of the TCB (as
required by SR3), and on the analysis of the "uses" dependencies among
modules. If a module containing a protection-relevant function also
depends upon the correctness of another module, then that other module
cannot be removed from the TCB. Since the modular decomposition level
MD-3, not MD-2, includes the analysis of the inter-module correctness
relationships, level MD-3 must be selected.  Similarly, the run-time
enforcement of data hiding, abstraction, and layering must be
supported by a TCB protection mechanism with precisely defined
semantics (e.g., rings or domains of protection). Otherwise, it cannot
be reasoned that the TCB structuring is correctly enforced. This
suggests that the TCB structuring support component SP-3, not SP-2,
must be selected for profile inclusion.

The dependency of the specific requirement SR12 on SR2 and SR5
illustrated in Figure 13 does not correspond to an inter- component
dependency. Instead, it corresponds to the implicit dependency between
the component levels SP-3, SP- 2 and SP-1; i.e., SP-1 is included in
SP-2, and SP-2 is included in SP-3.  Note that, even if component
level SP-2 is required by other component levels (e.g., by RM-3 in
Figure 12), the high-water- mark level selection implies that
component level SP-3 must be selected.

7.4       Bibliographic Notes

TBD.  

ACRONYMS

AIS       Automated Information System

CISR      Commercial International Security Requirements

CTCPEC    Canadian Trusted Computer Product Evaluation Criteria

DAA       Designated Approving Authority

DARPA     Defense Advance Research Projects Agency

DBMS      Database Management System

DIS       Descriptive Interface Specification

DoD       Department of Defense

FCWG      Federal Criteria Working Group

FIPS      Federal Information Processing Standard

FIS       Formal Interface Specification

ISO       International Standards Organization

IT        Information Technology

ITSEC     Information Technology Security Evaluation Criteria

LAN       Local Area Network

MSR       Minimum Security Requirements

NCSC      National Computer Security Center

NIST      National Institute of Standards and Technology

NSA       National Security Agency

RBOC      Regional Bell Operating Company

TCB       Trusted Computing Base

TCSEC     Trusted Computer System Evaluation Criteria

TDI       Trusted Database Management System Interpretation
          of the Trusted Computer System Evaluation Criteria

TRS       Travel Related Services


GLOSSARY

Access - Ability and means to communicate with (i.e., input to or
receive output from), or otherwise make use of any information,
resource, or object in an Information Tech- nology (IT) Product.
Frequently used as a verb, contrary to the rules of grammar.

          Note: An individual does not have "access" if the proper
authority or a physical, technical, or procedural measure prevents
them from obtaining knowledge or having an opportunity to alter
information, material, resources, or components.

Access Control - Process of limiting access to the resources of an IT
product only to authorized users, programs, pro- cesses, systems, or
other IT products.

Access Control List -A list of subjects that are authorized to have
access to some object(s). Usually, this list con- tains entries
consisting of identifiers of users and groups of users and access
rights.

Access Control Mechanism - Security safeguards designed to de- tect
and prevent unauthorized access, and to permit au- thorized access in
an IT product.

Access Mediation - Process of monitoring and controlling ac- cess to
the resources of an IT product, including but not limited to the
monitoring and updating of policy at- tributes during accesses as well
as the protection of un- authorized or inappropriate accesses (see
Access Control).

Accountability - Means of linking individuals to their inter- actions
with an IT product, thereby supporting identifi- cation of and
recovery from unexpected or unavoidable failures of the control
objectives.

Accreditation - Formal declaration by a designated approving authority
that an Automated Information System (AIS) is approved to operate in a
particular security configura- tion using a prescribed set of
safeguards.

Application Program Interface - System access point or library
function that has a well-defined syntax and is accessible from
application programs or user code to provide well- defined
functionality.

Assignment - Requirement in a protection profile taken direct- ly as
stated, without change, from the list of components or derived by
placing a bound on a threshold definition.

          Note: The assignment of environment-specific requirements to
generic component requirements is performed when a component
requirement corresponds to an environment-specific requirement.

Assurance - (See Profile Assurance and IT Product Assurance).

Audit - Independent review and examination of records and ac- tivities
to determine compliance with established usage policies and to detect
possible inadequacies in product technical security policies of their
enforcement.

Audit Trail - Chronological record of system activities to en- able
the reconstruction and examination of the sequence of events and/or
changes in an event. [NSTISSI 4009]

          Note: Audit trail may apply to information in an IT product or
an AIS or to the transfer of COMSEC material.

Authenticate - Verify the identity of a user, user device, or other
entity, or the integrity of data stored, transmit- ted, or otherwise
exposed to unauthorized modification in an IT product.

Authentication - Means of verifying an entity's (e.g., indi- vidual
user, machine, software component) eligibility to receive specific
categories of information.

Authorization - Access rights granted to a user, program, or process.
[NSTISSI 4009]

Authorized - Entitled to a specific mode of access.

Automated Information System (AIS) - Any equipment or inter- connected
systems or subsystems of equipment that is used in the automatic
acquisition, storage, manipulation, management, movement, control,
display, switching, in- terchange, transmission or reception of data
and in- cludes computer software, firmware, and hardware.  [NSTISSI
4009]

          Note: Included are computers, word processing systems,
networks, or other electronic information handling systems, and
associated equipment.

Availability - Ability to access a specific resource within a specific
time frame as defined within the IT product specification.

Bandwidth - Rate at which information is transmitted through a
channel. (See channel capacity)

          Note: Bandwidth is originally a term used in analog
communication, measured in Hertz, and related to information rate by
the "sampling theorem" (generally attributed to H. Nyquist although
the theorem was in fact known before Nyquist used it in communication
theory). Nyquist's sampling theorem says that the information rate in
bits (samples) per second is at most twice the bandwidth in Hertz of
an analog signal created from a square wave. In a covert-channel
context "bandwidth" is given in bits/second rather than Hertz and is
commonly used, in an abuse of terminology, as a synonym for
information rate.

Bell-La Padula Security Model - Any formal state-transition model of a
technical security policy for an AIS that pre- sents (a) Access
Constraints (including initial-state constraints and variants or the
simple security and star properties), (b) allowed state transitions
(called "rules of operation"), and (c) a proof that the allowed state
transitions guarantee satisfaction of the con- straints.

Category - Restrictive label that has been applied to both classified
and unclassified data, thereby increasing the requirement for
protection of, and restricting the ac- cess to, the data. [NSTISSI
4009]

          Note: Examples include sensitive compartmented information and
proprietary information.  Individuals are granted access to special
category information only after being granted formal access
authorization.

Certification - Comprehensive evaluation of the technical and
nontechnical security features of an AIS and other safe- guards, made
in support of the accreditation process, to establish the extent to
which a particular design and im- plementation meets a set of
specified security require- ments. [NSTISSI 4009]

Channel Capacity - Maximum possible error-free rate, measured in bits
per second, at which information can be sent along a communications
path.

Clear-text - Intelligible data, the semantic content of which is
available. [ISO]

Confidentiality - Assurance that information is not disclosed to
inappropriate entities or processes.

Configuration - Selection of one of the sets of possible com-
binations of features of a system. [ITSEC]

Consumers - Individuals or groups responsible for specifying
requirements for IT product security (e.g., policy mak- ers and
regulatory officials, system architects, inte- grators, acquisition
managers, product purchasers, and end users.

Control Objective - Required result of protecting information within
an IT product and its immediate environment.

Countermeasure - Action, device, procedure, technique, or other
measure that reduces the vulnerability of an AIS.  [NSTISSI 4009]

Covert Channel - Unintended and/or unauthorized communica- tions path
that can be used to transfer information in a manner that violates an
AIS security policy. (See overt channel and exploitable channel.)
[NSTISSI 4009]

Covert Storage Channel - Covert channel that involves the di- rect or
indirect writing to a storage location by one process and the direct
or indirect reading of the storage location by another process.
[NSTISSI 4009]

          Note: Covert storage channels typically involve a finite
resource (e.g., sectors on a disk) that is shared by two subjects at
different security levels.

Covert Timing Channel - Covert channel in which one process signals
information to another process by modulating its own use of system
resources (e.g., central processing unit time) in such a way that this
manipulation affects the real response time observed by the second
process.  [NSTISSI 4009]

Decomposition - Requirement in a protection profile that spans several
components.

          Note: The decomposition of a specific requirement becomes
necessary when that requirement must be assigned to multiple
components of the generic product requirements during the
interpretation process.

Definition - an informal statement expressing the essential
characteristics of one or more facts.

Demonstration - an act or process of producing conclusive evidence for
one or more facts. (A demonstration is more rigorous than an
explanation and less rigorous than a proof).

Dependency - Condition in which the correctness of one or more
functions (or assurances) is contingent (depends for its correctness)
on the correctness of another function(s) (or assurances). Notion also
used in describing the re- lationships among TCB subsets
[NCSC-TG-021]. A TCB sub- set A depends for its correctness on TCB
subset B if and only if the (engineering) arguments of the correct im-
plementation of A with respect to its specification as- sume, wholly
or in part, that the specification of B has been implemented
correctly.

Description - an enumeration of facts and their characteris- tics.

Designated Approving Authority (DAA) - Official with the au- thority
to formally assume responsibility for operating an IT product, an AIS,
or network at an acceptable level of risk.

Development Assurance - Sources of IT product assurance rang- ing from
how a product was designed and implemented to how it is tested,
operated and maintained.

Development Assurance Component - Fundamental building block,
specifying how an IT product is developed, from which de- velopment
assurance requirements are assembled.

Development Assurance Package - Grouping of development as- surance
components assembled to ease specification and common understanding of
how an IT product is developed.

Development Assurance Requirements - Requirements in a pro- tection
profile which address how each conforming IT product is developed
including the production of appro- priate supporting developmental
process evidence and how that product will be maintained.

Discretionary Access Control - Methods of restricting access to
objects or other resources based primarily on the in- structions of
arbitrary unprivileged users.

Domain - Unique context (e.g., access control parameters) in which a
program is operating.

          Note: A subject's domain determines which access- control
attributes an object must have for a subject operating in that domain
to have a designated form of access.

Encapsulated Object -A data structure whose existence is known, but
whose internal organization is not accessi- ble, except by invoking
the encapsulated subsystem that manages it.

Encapsulated Subsystem -A collection of procedures and data objects
that is protected in a domain of its own so that the internal
structure of a data object is accessible only to the procedures of the
encapsulated subsystem that the procedures may be called only at
designated domain entry points. Encapsulated subsystem, protected sub-
system, and protected mechanisms of the TCB are terms that may be used
interchangeably.

Environment - All entities (users, procedures, conditions, objects,
AISs, other IT products) that interact with (af- fect the development,
operation and maintenance of) that IT product.

Evaluation - Technical assessment of a component's, prod- uct's,
subsystem's, or system's security properties that establishes whether
or not the component, product, sub- system, or system meets a specific
set of requirements.

          Note: Evaluation is a term that causes much confusion in the
security community, because it is used in many different ways. It is
sometimes used in the general English sense (judgement or
determination of worth or quality). Based on common usage of the term
in the security community, one can distinguish between two types of
evaluation: (1) evaluations that exclude the environment, and (2)
evaluations that include the environment. This second type of
evaluation, an assessment of a system's security properties with
respect to a specific operational mission, is termed certification
within this document. Evaluations that exclude the environment, the
type of evaluations considered herein, are assessments of the security
properties against a defined criteria.

Evaluation Assurance - Source of IT product assurance based on the
kind and intensity of the evaluation analysis per- formed on the
product.

Evaluation Assurance Component - Fundamental building block,
specifying the type and the rigor of required evaluation activities,
from which evaluation assurance requirements are assembled.

Evaluation Assurance Package - Grouping of evaluation assur- ance
components assembled to ease specification and com- mon understanding
of the type and the rigor of required evaluation activities.

Evaluation Assurance Requirements - Requirements in a protec- tion
profile which address both the type and the rigor of activities that
must occur during product evaluation.

Evaluators - Individuals or groups responsible for the inde- pendent
assessment of IT product security (e.g., product evaluators, system
security officers, system certifiers, and system accreditors).

Explanation - a description and its justification; an enumer- ation of
facts, their characteristics, and their cause or reason. (An
explanation is less rigorous than both a demonstration and a proof.)

Exploitable Channel - Covert channel that is usable or detect- able by
subjects external to the AIS's trusted computing base and can be used
to violate the AIS's technical se- curity policy. (See covert
channel.)

External Security Controls - Measures which include physical,
personnel, procedural, and administrative security re- quirements and
a separate certification and accredita- tion process that govern
physical access to an IT product.

          Note: These measures constitute assumptions and boundary
conditions that are part of the environment described in a protection
profile.

Flaw - Error of commission, omission, or oversight in an IT product
that may allow protection mechanisms to be by- passed.

Formal Security Policy Model - Mathematically precise state- ment
consisting of (a) a formal technical security policy (given by
constraints on a Product's external interface and/or constraints on
the handling of controlled enti- ties internal to the Product), (b)
rules of operation that show how the definition of security is to be
en- forced, and (c) a formal proof showing that the rules of operation
guarantee satisfaction of the definition of security. [NCSC-TG-010]

Formal Specification - Statement about a product made using the
restricted syntax and grammar of a formal reasoning system and a set
of terms that have been precisely and uniquely defined of specified.

          Note: The formal statement should be augmented by an informal
explanation of the conventions used and the ideas being expressed. A
well-formed syntax and semantics with complete specification of all
constructs used must be referenced.

Functional Component - Fundamental building block, specifying what an
IT product must be capable of doing, from which functional protection
requirements are assembled.

Functional Package - Grouping of functional components assem- bled to
ease specification and common understanding of what an IT product is
capable of doing.

Functional Protection Requirements - Requirements in a pro- tection
profile which address what conforming IT prod- ucts must be capable of
doing.

Functionality - Set of functional protection requirements to be
implemented in IT products.

Generic Threat - Class of threats with common characteristics
pertaining to vulnerabilities, agents, event sequences, and resulting
misfortunes.

Granularity - Relative fineness or coarseness to which an ac- cess
control mechanism or other IT product aspect can be adjusted.

          Note: Protection at the file level is considered course
granularity, whereas protection at the field level is considered to be
finer granularity.

Granularity of a Requirement - Determination of whether a re-
quirement applies to all the attributes of users, sub- jects or
objects, and all TCB functional components.

Group - Named collection of user identifiers.

Identification - Process that enables recognition of an entity by an
IT product.

Informal Specification - Statement about (the properties of) a product
made using the grammar, syntax, and common def- initions of a natural
language (e.g., English).

          Note: While no notational restrictions apply, the informal
specification is also required to provide defined meanings for terms
which are used in a context other than that accepted by normal usage.

Information Protection Policy - Set of laws, rules, and prac- tices
that regulate how an IT product will, within spec- ified limits,
counter threats expected in the product's assumed operational
environment.

Internal Security Controls - Mechanisms implemented in the hardware,
firmware, and software of an IT product which provide protection for
the IT product.

Integrity - Correctness and appropriateness of the content and/or
source of a piece of information.

Least Privilege - Principle that requires that each subject be granted
the most restrictive set of privileges needed for the performance of
authorized tasks. [NSTISSI 4009]

          Note: Application of this principle limits the damage that can
result from accident, error, or unauthorized use of an AIS.

Mandatory Access Control - Means of restricting access to ob- jects
based on the sensitivity (as represented by a la- bel) of the
information contained in the objects and the formal authorization
(i.e., clearance) of subjects to access information of such
sensitivity. (See non-discre- tionary access control.)

Mechanism - Operating system entry point or separate operating system
support program that performs a specific action or related group of
actions.

Need-to-know - Access to, or knowledge or possession of, spe- cific
information required to carry out official duties.  [NSTISSI 4009]

Non-Discretionary Access Control - Means of restricting ac- cess to
objects based largely on administrative actions.

Normal Operation - Process of using a system. [ITSEC]

Object - Controlled entity that precisely gives or receives
information in response to access attempts by another (active) entity.

          Note: Access to an object implies access to the information
contained in that object. Examples of objects include: subjects,
records, blocks, pages, segments, files, directories, directory trees
and programs, as well as bits, bytes, words, fields, processors, I/O
devices, video displays, keyboards, clocks, printers, and network
nodes.

Object Encapsulation - viz., encapsulated object.

Organizational Security Policy - Set of laws, rules, and prac- tices
that regulate how an organization manages, pro- tects, and distributes
sensitive information.

Overt Channel - Communications path within a computer system or
network that is designed for the authorized transfer of data. (See
covert channel) [NSTISSI 4009]

Owner - User granted privileges with respect to security at- tributes
and privileges affecting specific subjects and objects.

Password - Protected/private character string used to authen- ticate
an identity or to authorize access to data.  [NSTISSI 4009]

Penetration Testing - Security testing in which evaluators at- tempt
to circumvent the security features of an AIS based on their
understanding of the system design and imple- mentation. [NSTISSI
4009]

Primitive - Orderly relation between TCB subsets based on de-
pendency. [NCSC-TG-021]

          Note: A TCB subset B is more primitive than a second TCB
subset A (and A is less primitive than B) if A directly depends on B
or a chain of TCB subsets from A to B exists such that each element of
the chain directly depends on its successor in the chain.

Privilege - Special authorization that is granted to partic- ular
users to perform security relevant operations.

Process - A program in execution on a processor which repre- sents a
scheduling and accounting (and sometimes a con- currency and recovery)
entity in a computer system.

Producers - Providers of IT product security (e.g., product vendors,
product developers, security analysts, and val- ue-added resellers).

Product - Package of IT software and/or hardware designed to perform a
specific function either stand alone or once incorporated into an IT
system.

Product Rationale - Overall justification; including antici- pated
threats, objectives for product functionality and assurance, technical
security policy, and assumptions about the environments and uses of
conforming products; for the protection profile and its resulting IT
product.

Profile - Detailed security description of the physical struc- ture,
equipment component, location, relationships, and general operating
environment of an IT product or AIS.  (See Protection Profile.)

Profile Assurance - Measure of confidence in the technical soundness
of a protection profile.

Proprietary Information - Information that is owned by a pri- vate
enterprise and whose use and/or distribution is re- stricted by that
enterprise.

          Note: Proprietary information may be related to the company's
products, business, or activities, including but not limited to:
financial information, data or statements; trade secrets; product
research and development information; existing and future product
designs and performance specifications; marketing plans or techniques;
schematics; client lists; computer programs; processes; and trade
secrets or other company confidential information.

Protected Mechanism - See encapsulated subsystem.

Protection Philosophy - Informal description of the overall design of
an IT product that shows how each of the sup- ported control
objectives is dealt with.

Protection Profile - Statement of security criteria; shared by IT
product producers, consumers, and evaluators; built from functional,
development assurance, and eval- uation assurance requirements; to
meet identified secu- rity needs through the development of conforming
IT products.

Protection Profile Family - Two or more protection profiles with
similar functional requirements and rationale sec- tions but with
different assurance requirements.

Proof - the process of establishing the validity of one or more
statements; the process of establishing a the truth of a fact. (A
proof is more rigorous than both a demon- stration and an
explanation.)

Prove a Correspondence - Provide a formal correspondence, us- ing a
formal reasoning system (e.g., typed lambda calcu- lus) between the
levels of abstraction.

          Note: This involves proving that required properties continue
to hold under the interpretation given in the formal correspondence.

Reference Monitor - Access mediation concept that refers to an
abstract machine that mediates all accesses to objects by subjects.

Reference Validation Mechanism - Portion of a trusted comput- ing
base, the normal function of which is to mediate ac- cess between
subjects and objects, and the correct operation of which is essential
to the protection of data in the system.

          Note: This is the implementation of reference monitor.

Refinements - Requirement in a protection profile taken to a lower
level of abstraction than the component on which it is based.

          Note: The refinement of a component requirement is necessary
when multiple environment-specific requirements must be assigned to a
single component requirement.

Requirements - Phase of the Development Process wherein the top level
definition of the functionality of the system is produced.

Residual Risk - Portion of risk that remains after security measures
have been applied. [NSTISSI 4009]

Resource - Anything used or consumed while performing a func- tion.

          Note: The categories of resources include: time, information,
objects (information containers), or processors (the ability to use
information) Specific examples include: CPU time; terminal connect
time; amount of directly-addressable memory; disk space; and number of
I/O requests per minute.

Risk - The expected loss due to, or impact of, anticipated threats in
light of system vulnerabilities and strength or determination of
relevant threat agents.

Role - A distinct set of operations (actions) performed on
encapsulated data objects.

Scope of a Requirement - Determination of whether a require- ment
applies to: all users, subjects and objects of the TCB; all the TCB
commands and application programming in- terfaces, to all TCB
elements; all configurations, or only a defined subset of
configurations.

Security - The combination of confidentiality, integrity and
availability. [ITSEC]

Security kernel - An encapsulation of key security-relevant portions
of an operating system that prevent unautho- rized subject access to
objects.

Security Audit Trail - Set of records that collectively pro- vide
documentary evidence of processing used to aid in tracing from
original transactions forward to related records and reports, and/or
backwards from records and reports to their component source
transactions. [TCSEC]

Security Relevant Event - Any event that attempts to change the
security state of the system (e.g., change access controls, change the
security level of a user, change a user password). Also, any event
that attempts to violate the security policy of the system (e.g., too
many logon attempts). [TCSEC]

Security Target - Product-specific description, elaborating the more
general requirements in a protection profile and including all
evidence generated by the producers, of how a specific IT product
meets the security requirements of a given protection profile.

Shall - Indication that a requirement must be met unless a
justification of why it cannot be met is given and ac- cepted.

Should - Indication of an objective requirement that requires less
justification for non-conformance and should be more readily approved.

          Note: Should is often used when a specific requirement is not
feasible in some situations or with common current technology.

Simple Security Property - An invariant state property allow- ing a
subject read access to an object only if the secu- rity level of the
subject dominates the security level of the object.

Specification - one or more detailed, precise statement(s) expressing
the essential characteristics of one or more facts.

Star (*) Property - An invariant state property allowing a subject
write access to an object only if the security level of the object
dominates the security level of the subject.

State - Give required information with no attempt or implied
requirement, to justify the information presented.

Strength of a Requirement - Definition of the conditions under which a
functional component withstands a defined attack or tolerates
failures.

Subject - Active entity in an IT product or AIS, generally in the form
of a process or device, that causes information to flow among objects
or changes the system state.

System - IT products assembled together; either directly or with
additional computer hardware, software, and/or firmware; configured to
perform a particular function within a particular operational
environment.

System Entry - Mechanism by which an identified and authenti- cated
user is provided access into the system.

TCB Subset - Set of software, firmware, and hardware (where any of
these three could be absent) that mediates the access of a set S of
subjects to a set O of objects on the basis of a stated access
mediation policy P and sat- isfies the properties:

          (1) M mediates every access to objects in O by subjects in S;

          (2) M is tamper resistant; and

          (3) M is small enough to be subject to analysis and tests, the
completeness of which can be assured.

Technical Policy - Set of rules regulating access of subjects to
objects enforced by a TCB subset. [NCSC-TG-021]

Technical Security Policy - Specific protection conditions and /or
protection philosophy that express the bound- aries and
responsibilities of the IT product in support- ing the information
protection policy control objectives and countering expected threats.

Threat - Sequence of circumstances and events that allows a (human or
other) agent to cause an information-related misfortune by exploiting
a vulnerability in an IT prod- uct.

Trace a Correspondence - Explain a correspondence, using nat- ural
language prose, between levels of abstraction.

Transaction - Set of subject actions and their associated data storage
accesses.

Trap Door - Hidden software or hardware mechanism that can be
triggered to permit protection mechanisms in an automat- ed
information system to be circumvented. [NSTISSI 4009]

          Note: A trap door is usually activated in some
innocent-appearing manner (e.g., a special random key sequence at a
terminal). Software developers often write trap doors in their code
that enable them to reenter the system to perform certain functions.

Trojan Horse - Computer program containing an apparent or ac- tual
useful function that contains additional (hidden) functions that allow
unauthorized collection, falsifica- tion or destruction of data.
[NSTISSI 4009]

Trusted Computing Base (TCB) - Totality of protection mecha- nisms
within an IT product, including hardware, firm- ware, software and
data, the combination of which is responsible for enforcing a
technical security policy.

          Note: The ability of an organization to achieve an
organizational security policy depends jointly on the correctness of
the mechanisms within the TCB, the protection of those mechanisms to
ensure their correctness, and on adherence to associated usage
security policies by authorized users.

Trusted Path - Mechanism by which a person using a terminal can
communicate directly with the TCB. [NSTISSI 4009]

          Note: Trusted path can only be activated by the person or the
TCB and cannot be imitated by untrusted software.

Usage Security Policy - Assumptions regarding the expected en-
vironment and intended method of IT product use.

User - Person or process accessing an IT product by direct connections
(e.g., via terminals) or indirect connec- tions; an individual who is
accountable for some identi- fiable set of activities in a computer
system.

          Note: Indirect connection relates to persons who prepare input
data or receive output that is not reviewed for content or
classification by a responsible individual.

User Identifier (User ID)- Unique symbol or character string that is
used by an IT product to uniquely identify a spe- cific user.

Virus - Self replicating, malicious program segment that at- taches
itself to an application or other executable sys- tem component and
leaves no external signs of its presence. [NSTISSI 4009]

Vulnerability - Weakness in an information system or compo- nents
(e.g., system security procedures, hardware de- sign, internal
controls) that could be exploited to produce an information-related
misfortune.  

Appendix A.

THREATS TO INFORMATION

Table 4 provides a description of common threat agents that may impact
on a potential IT product (Courtney, 1991). Tables 5, 6, and 7 provide
common threat actions for confidentiality, integrity and availability
that may occur within the environment of an IT product (Neumann,
1989). A successful threat scenario may include several threat actions
in succession. The collective information in these tables also
includes vulnerabilities, attacks, methods, and risks.

                       Table 4. Common Threat Agents
.--------------------------------------------------------------------------.
| Well-Meaning People         | Custodians, guards, users, system          |
| in the Organization         | operators, security administrators         |
|-----------------------------+--------------------------------------------|
| Other People in the         | Greedy employees, disgruntled employees,   |
| Organization                | inside terrorists, intelligence agents     |
|-----------------------------+--------------------------------------------|
| Inanimate Agents            | Routine water damage (e.g., from leaking   |
|                             | pipes), power surges and failures (e.g.,   |
|                             | from electrical storms), physical          |
|                             | calamities (e.g., from fires, floods,      |
|                             | civil unrest), hardware failure within the |
|                             | IT product, malfunctioning external        |
|                             | devices and systems, disabled external     |
|                             | devices and systems                        |
|-----------------------------+--------------------------------------------|
| People Outside the          | Hackers, hostile intelligence agents,      |
| Organization                | terrorists, ex-employees                   |
`--------------------------------------------------------------------------'



 Table 5. Inappropriate Disclosure Threats (Confidentiality Violations)
.--------------------------------------------------------------------------.
| Passive Observation         | Exposure (e.g., via system malfunctions)   |
|                             | Scavenging (e.g., dumpster diving)         |
|                             | Eavesdropping (e.g., on video displays)    |
|                             | Wiretapping                                |
|                             | Traffic analysis                           |
|                             | Analysis of IT Product emanations          |
|                             | Other forms of signals intelligence        |
|-----------------------------+--------------------------------------------|
| Hardware Attacks            | Theft of physical media                    |
|                             | Physical trespass and observation          |
|                             | Implanting eavesdropping devices           |
|                             | Disarming controls (e.g., via routine      |
|                             |  maintenance)                              |
|-----------------------------+--------------------------------------------|
| Masquerade                  | Individuals that impersonate (e.g., via    |
|                             |  password guessing)                        |
|                             | Processes that impersonate (e.g., Trojan   |
|                             |  horses)                                   |
|-----------------------------+--------------------------------------------|
| Misuse of Authority         | Deliberate disclosure                      |
|                             | Misuse of administrative privilege         |
|                             |  o Modification of access control          |
|                             |    attributes                              |
|                             |  o Editing of password files               |
|                             | Exploiting inference and aggregation       |
|                             |  vulnerabilities (e.g., reverse            |
|                             |  engineering)                              |
|                             | Exploiting product vulnerabilities         |
|                             |  o Exploiting covert channels              |
|                             |  o Inadequate authentication               |
|                             |  o Trap doors that bypass system checks    |
|                             |  o Improper initialization or recovery     |
|                             |  o Faulty reuse of objects or devices      |
|                             |  o Inadequate argument validation          |
|                             |  o Miscellaneous logic errors              |
|                             |  o Hardware flaws                          |
|                             | Browsing, searching for exploitable        |
|                             |  patterns                                  |
|                             | Willful neglect and other errors of        |
|                             |  omission                                  |
|                             |  o Failing to log out when leaving a       |
|                             |    workstation                             |
|                             | Preparation for misuse                     |
|                             |  o Code-breaking efforts                   |
|                             |  o Off-line password guessing              |
|                             |  o Autodialer scanning                     |
|                             |  o Creating, planting, and arming malicious|
|                             |    software                                |
`--------------------------------------------------------------------------'


 Table 6. Fault-and-Error Threats (Integrity Violations)
.--------------------------------------------------------------------------.
| Hardware Attacks            | Implanting malicious hardware              |
|                             | Disarming hardware controls                |
|                             | Malfunctioning hardware (via aging,        |
|                             |  routine maintenance)                      |
|-----------------------------+--------------------------------------------|
| Masquerade                  | Individuals that impersonate (e.g., via    |
|                             |  password guessing)                        |
|                             | Processes that impersonate (e.g., Trojan   |
|                             |  horses)                                   |
|-----------------------------+--------------------------------------------|
| Deception of users and      |                                            |
| operators                   |                                            |
|-----------------------------+--------------------------------------------|
| Misuse of Authority         | Deliberate falsification via data entry or |
|                             |  modification                              |
|                             | Repudiation (falsely denying origin or     |
|                             |  receipt of information)                   |
|                             | Misuse of administrative privilege         |
|                             |  o Modification of access control          |
|                             |    attributes                              |
|                             |  o Editing of password files               |
|                             | Exploiting inference and aggregation       |
|                             |  vulnerabilities (e.g., reverse            |
|                             |  engineering)                              |
|                             | Deliberate compounding of small errors     |
|                             | Exploiting product vulnerabilities         |
|                             |  o Exploiting covert channels              |
|                             |  o Inadequate authentication               |
|                             |  o Trap doors that bypass system checks    |
|                             |  o Improper initialization or recovery     |
|                             |  o Faulty reuse of objects or devices      |
|                             |  o Inadequate argument validation          |
|                             |  o Miscellaneous logic errors              |
|                             |  o Hardware flaws                          |
|                             | Willful neglect and other errors of        |
|                             |  omission                                  |
|                             |  o Failing to log out when leaving a       |
|                             |    workstation                             |
|                             | Preparation for misuse                     |
|                             |  o Code-breaking efforts                   |
|                             |  o Off-line password guessing              |
|                             |  o Autodialer scanning                     |
|                             |  o Creating, planting, and arming          |
|                             |    malicious software                      |
|-----------------------------+--------------------------------------------|
| Lack of adequate competence | Accidental falsification via data entry or |
|                             |  modification                              |
|                             | Installing flawed application software     |
|                             | Misapplication of software                 |
|                             |  o Application to wrong data               |
|                             |  o Miscommunication of inputs              |
|                             |  o Improper runtime environment            |
`--------------------------------------------------------------------------'
 

 Table 7. Loss-of-Service Threats (Availability Violations)
.--------------------------------------------------------------------------.
| Inherent system inadequacies| Inadequate deadlock avoidance              |
|                             | Inadequate response to transient errors    |
|-----------------------------+--------------------------------------------|
| Hardware threats            | Deliberate hardware modification           |
|                             |  o Disabling critical components           |
|                             |  o Shutting off system or power supply     |
|                             |  o Implanting self-destruct devices        |
|                             | Inadvertent hardware modification          |
|                             |  o Normal aging                            |
|                             |  o Routine maintenance                     |
|                             |  o Accidental damage (e.g., water damage)  |
|                             | Interference (e.g., electronic jamming,    |
|                             |  cosmic rays)                              |
|-----------------------------+--------------------------------------------|
| Usage threats               | Deliberate denial of service               |
|                             | Misuse of administrative privilege         |
|                             |  o Modification of access control          |
|                             |    attributes                              |
|                             |  o Editing of password files               |
|                             | Exploiting product vulnerabilities         |
|                             |  o Exploiting covert channels              |
|                             |  o Inadequate authentication               |
|                             |  o Trap doors that bypass system checks    |
|                             |  o Improper initialization or recovery     |
|                             |  o Faulty reuse of objects or devices      |
|                             |  o Inadequate argument validation          |
|                             |  o Miscellaneous logic errors              |
|                             |  o Hardware flaws                          |
|                             | Excessive usage via masquerading           |
|                             |  o Individuals that impersonate (e.g., via |
|                             |    password guessing)                      |
|                             |  o Processes that impersonate (e.g.,       |
|                             |    Trojan horses)                          |
|                             | Creating, planting, and arming malicious   |
|                             |  software                                  |
|                             | Willful neglect and other errors of        |
|                             |  omission                                  |
|                             | Failure to order necessary supplies        |
|                             | Failure to perform routine maintenance     |
|                             | Administrative actions                     |
|                             | System shutdown                            |
|                             | Disabling user accounts                    |
|                             | Incorrect setting of security attributes   |
|                             | Accidental deletion of critical data       |
|                             | Overload                                   |
|                             | Normal excess usage                        |
|                             | Runaway programs                           |
|                             | Personal use of organization computers     |
`--------------------------------------------------------------------------'



Bibliographic References

[Courtney, 1991] Courtney R.H., "A Proposed Information Security
Program for the NIST for Consideration by the Computer Systems
Security and Privacy Advisory Board", June 12, 1991.

[Neumann, 1989] Neumann P.G. and Parker D.B., "A Survey of Computer
Abuse Techniques", Proceedings of the 12th National Computer Security
Conference, pages 396-407, October 1989.  

Appendix B.

THE REFERENCE MONITOR CONCEPT

The concept of the reference monitor, "which enforces the authorized
access relationships between subjects and objects of a system," was
introduced by the Computer Security Technology Planning Study,
conducted by James P. Anderson & Co., in October of 1972. The
reference monitor concept was found to be an essential element of any
product that must demonstrably implement an access control policy. The
Anderson report listed three design requirements of the reference
validation mechanism, which is "an implementation of the reference
monitor concept that validates each reference to data or programs by
any user (program) against a list of authorized types of reference for
that user." These requirements are:

a.        The reference validation mechanism must be tamperproof.

b.        The reference validation mechanism must always be invoked.

c.        The reference validation mechanism must be small enough to be
subject to analysis and tests, the completeness of which can be
assured.

Early examples of the reference validation mechanism were known as
security kernels. Security kernels typically support the three
reference monitor requirements listed above.  However, most
commercially available systems do not implement reference validation
mechanisms (e.g., security kernels) largely because their design and
implementation do not fully satisfy requirement (c). General-purpose
systems do not support security kernels, and their TCB generally
includes key elements of the operating system and may include all of
the operating system. In embedded systems, the security policy may
deal with objects in a way that is meaningful at the application level
rather than at the operating system level.  Thus, the protection
policy may be enforced in the application software rather than in the
underlying operating system. The TCB will necessarily include all
those portions of the operating system and application software
essential to the support of the policy.

Note that, as the amount of code in the TCB increases, it becomes
harder to be confident that the TCB enforces the reference monitor
requirements under all circumstances. This suggests that, to
demonstrably satisfy requirement (c) of the reference validation
mechanism, the selection of functions to be designed within the
product must be governed by the ability to completely analyze and test
the reference validation mechanism. If use of state-of-the-art formal
methods are required for complete analysis and test of a product, the
product functions that become part of the reference validation
mechanism will, by necessity, be limited in scope. For example,
functions that support a wide selection of devices and access methods
may not be supported. Also, access-control functions whose design
and/or implementation by the reference validation mechanism are not,
or cannot be, completely analyzed may limit the degree of assurance
that can be obtained. Thus, requirement (c) establishes a dependency
of the access control functions on the design, specification, and
verification disciplines used in analysis and testing.

The concept of the reference monitor, and its implementation via the
reference validation mechanism, plays the key role in supporting a
wide variety of access control policies. However, the role of the
reference monitor concept in other security policy areas is, by
definition, limited. For example, the reference validation mechanism
is not intended to implement identification and authentication
policies (e.g., policies governing the choice of password complexity,
strength of the encryption functions). Nor is the reference validation
mechanism intended to implement availability policy (i.e., resource
allocation, and fault-tolerance). Furthermore, the reference
validation mechanism plays an important, but incomplete role, in
establishing the penetration resistance of a TCB. Although the
reference validation mechanism itself must be penetration resistant by
virtue of requirements (a) and (b), penetrations caused by weak
authentication or availability functions, and penetrations of
privileged processes of the TCB that are not part of the reference
validation mechanism, cannot be prevented by a (penetration-
resistant) reference validation mechanism.  

Appendix C.

DEFINING ACCESS CONTROL POLICIES

Defining a Product Policy

Access control policies can be characterized in terms of five
functional subcomponents, namely (1) definition of subject and object
policy attributes, (2) administration of the policy attributes, (3)
authorization of subject access to objects, (4) subject and object
creation and destruction, and (5) object encapsulation. These
subcomponents, defined in the following paragraphs, may be used to
characterize a wide variety of security policies, including
traditional discretionary and non-discretionary policies. The intent
of characterizing all security policies in terms of these five
subcomponents is to provide a general set of requirements applicable
to all policies regardless of the aim of those policies and regardless
of the kinds of objects controlled by those policies. These
requirements provide the developers of protection profiles with a
template for an access control policy component to be used in the
definition of individual policies, without imposing any specific
constraints on policy or on the kinds of objects involved.

Since individual policies will follow this template, combinations of
policies will also be defined in terms of the five subcomponents.
Whenever multiple policies are supported, these subcomponents define
the composition of policies and how the policies are enforced (e.g.,
subject and object type coverage, precedence of enforcement). To
reflect the need to satisfy all these subcomponents in each specified
product policy, a single rating is assigned to access control, not to
individual subcomponents. This rating is intended to capture general
goals of policy specifications, instead of the differences between
individual subcomponents in two or more policy specifications.

Within a policy specification, requirement can be stated as different
sets of rules. These rules define the properties of each policy.
Access control policy subcomponents may include requirements that may
not be applicable to some policies. In such cases, the individual
requirement shall be designated as non-applicable in the definition of
the policy. For example, the transitive distribution of permissions
applies primarily to discretionary policies. Consequently, attribute
administration rules of non-discretionary controls may not include
conditions for transitive distribution and revocation, and these
conditions will be designated as non- applicable to a specific
non-discretionary policy. Similarly, discretionary policies may not
necessarily control access to object status variables (e.g.,
existence, size, creation, access and modification time, locking
state). Hence, the rules or conditions specifying such controls may be
designated as non-applicable in specific discretionary policies.

Some subcomponents may also include requirements that may not be
applicable to some types of objects. In such cases, the individual
requirement that is applicable to that type of object will be
specified separately. The intent of providing per-type access policy
specifications is to capture the access control needs of a particular
type of object without imposing impractical or meaningless policy
constraints. For example, user-oriented rules for access-right
administration need not be imposed on objects that cannot, and are not
intended to, store user data. Requiring transitive, temporal, time-
and location-dependent distribution and revocation conditions for a
discretionary policy on interprocess communication objects such as
semaphores and sockets or on publicly accessible objects such as
bulletin boards would be both impractical and unnecessary. However,
when per-type specifications are used, the totality of the per-type
rules and conditions must be shown to support the policy properties.

Definition of Policy Attributes. A policy specification must define
the subject and object attributes required by that policy, and must
identify the context-resident policy attributes. Subject attributes
may include user-related subject credentials (e.g., user identifier,
group or role identifier(s), confidentiality or integrity levels,
access time intervals, access location identifier), as well as user-
independent credentials assigned to privileged subjects (e.g., system
privileges allowing the invocation of TCB functions unavailable to
unprivileged subjects). Object attributes may include user-relevant,
policy attributes (e.g., distinct object permissions for different
users), as well as user-dependent attributes (e.g., secrecy or
integrity levels, access time constraints, access location
constraints). Finally, context-resident policy attributes may include
the current time, group definitions, and/or a level indicating whether
an emergency is in progress.

Administration of Policy Attributes. A policy specification must
include rules for maintaining the subject and object attributes. The
attribute maintenance rules determine the conditions under which a
subject can change its own attributes as well as those of other
subjects and objects. These conditions define whether a subject is
authorized to modify a policy attribute and may not rely on those used
in the authorization of subject references to objects (discussed
below). Otherwise, a cyclic dependency may arise between the
requirements of policy attribute administration and those of
authorization of subject references to objects (see Chapter 7). The
attribute maintenance rules also define the attributes for subject or
object import or export operations.

As an example of attribute maintenance rules, consider those rules
that determine what subjects have the authority to distribute, revoke,
and review policy attributes for specific subjects and objects, and
the conditions under which these actions can be performed. The
distribution and revocation rules determine which of the following
conditions are enforced.

a. Selectivity: distribution and revocation can be performed at the
individual attribute level, such as user, group, role, permission,
privilege, security or integrity level.

b. Transitivity: a recipient of a permission from an original
distributor can further distribute that permission to another subject,
but when the original distributor revokes that permission from the
original recipient, then the subject which received that permission
from the original recipient will also have it revoked.

c. Immediacy: the effect of the distribution and revocation of policy
attributes should take place within a specified period of time.

d. Independence: two or more subjects can distribute or revoke policy
attributes to the same subject independent of each other.

e. Time-dependency: the effect of the distribution and revocation of
policy attributes must take place at a certain time and must last for
a specified period of time.

f. Location-dependency: the distribution and revocation of policy
attributes must take place at a certain location.

The review rules determine which of the following two kinds of review
are supported and impose conditions constraining the review of
attributes.

1. Per-object review: for an object, list all (or a specified class
of) attributes that govern the relationship between that object and a
specified set of subjects that may directly or indirectly access that
object.

2. Per-subject review: for a subject, list all (or a specified class
of) policy attributes which govern the relationship between that
subject and a specified set of objects that subject may directly or
indirectly access.

The imposed conditions for allowing the review of attributes
determine, in particular, which users of an object may discover which
users have access to that object, as well as what subjects may be used
to access that object.

The coverage of attribute-review rules is specified in terms of the
kinds of objects and subjects to which they apply. If different rules
and conditions apply to different subjects and objects, the totality
of these rules must be shown to support the defined control
objectives. If a composition of several policies is to be supported,
attribute administration must be composed.

Authorization of Subject References to Objects. A subject`s reference
to an object consists of invoking an action on a set of objects. The
subject's reference to the object can be thought of as a request to
access that object. Examples of actions include invocations of TCB
commands, function calls, processor instructions, protected
subsystems, and transactions. An action may have separate policy
attributes from those of the issuer of the reference. For example,
invocations of transactions and protected subsystems (which
encapsulate objects) will generally include policy attributes that
differ from those of their invokers. In contrast, other actions such
as invocations of individual processor instructions, TCB function
calls, some TCB commands, and applications programs are prohibited
from using policy attributes, such as identity, group, role, or
secrecy and integrity levels, that differ from those of their invoker.
Policy attributes involved in rules for deciding access authorization
are referred to as "access control" attributes.

The rules for authorizing subject references to objects are defined in
terms of (1) the subject's authorization to an action, (2) the action
authorization to one or more objects, and (3) the subject's
authorization to one or more objects, as illustrated in Figure 1.
These rules are based on the policy attributes defined for subjects
and objects. The rules are defined either on <subject, action> and
<action, object(s)> tuples or on <subject, action, object(s)> triples,
depending upon the specified policy. The authorization rules specify
the authorization scope and granularity in terms of (1) resources
containing one or more objects, (2) individual subjects and objects,
(3) the subject and object policy attributes, and (3) the subject and
object status attributes (e.g., existence, size, creation, access and
modification time, locked/unlocked). The authorization rules also
specify whether delegated authorization (i.e., authorization of a
subject access performed on behalf of other subjects, using
combined-subject attributes) is allowed.

The coverage of the authorization rules is specified in terms of the
types of objects and subjects to which they apply. If different rules
apply to different subjects and objects, the totality of these rules
is shown to support the defined policy properties. If multiple
policies are supported, these rules define the composition of policies
and how the authorization conditions are enforced (e.g., subject and
object type coverage, order of enforcement)

Creation and Destruction of Subjects and Objects. The rules for
allowing the creation and destruction of subjects and objects must be
defined. These rules impose the following conditions under which
subjects and objects can be created and destroyed.

a.        Creation and destruction authorization: the authorization of
specific subjects to create and destroy a subject or an object and
with what attributes.

b.        Object reuse: the revocation of all authorizations to the
information contained within a storage object prior to initial
assignment, allocation or reallocation of that storage object to a
subject from the TCB's pool of unused storage objects; no information,
including encrypted representations of information, produced by a
prior subject's actions should be available to any unauthorized
subject.

c.        Space availability: the capacity and presence of storage space
shall be available for the creation of a subject or object.

d.        Definition of default attributes subject or the default values
and rules for inheriting object attributes, if any, shall be defined.

Object Encapsulation. The encapsulation subcomponent of an access
control policy specifies that a subject's access to a objects be
constrained in such a way that (1) all accesses to these objects occur
via access to a logically and/or physically isolated set of subjects
that protect these objects from more general forms of access, with
each subject having a unique protected entry point; and (2)
confinement of this set of protecting subjects is such that these
subjects cannot access any other objects and cannot give away access
to the objects they protect.

Discretionary encapsulation allows individual (privileged and
unprivileged) users to create protected subsystems and to set access
to them at their own discretion (perhaps using well- known
discretionary access control mechanisms). Non- discretionary
encapsulation uses logical and/or physical domains (and perhaps
security levels) to enforce encapsulation at the product level (i.e.,
by system administrators as opposed to at the discretion of the
creator of the protected subsystem). The traditional DoD mandatory
policies may be useful for encapsulation in some environments.  For
example, one could use DoD mandatory policies to encapsulate a
protected subsystem by reserving a sublattice of compartments for the
programs and data objects of that subsystem. (Some trusted database
management systems use this approach for the support of per-client
Database Management System (DBMS) servers. The server(s) and database
objects are encapsulated in a reserved sublattice of the TCB). Note
that both discretionary and non-discretionary encapsulation can
involve the use of surrogate subjects to protect the entry points to
protected subsystems.

The rules for object encapsulation must be defined whenever object
encapsulation is supported. The rules for object encapsulation
constrain (1) access authorization to encapsulated objects (i.e., a
subject access to an object can take place only if the subject invokes
another subject that performs the requested action on the object using
additional authorizations associated with the encapsulation); (2)
application-level encapsulation (i.e., they define conditions for the
creation of encapsulated subsystems); and (3) invocation of
encapsulated subsystems.

Composition of Access Control Policies within a Product

Many of the access control policies supported by a product represent a
composition of two or more basic access control policies. The need to
compose basic policies arises for at least two reasons. First, to
extend the range of an IT product's protection applicability, new
applications subsystems or individual functions may be added to a TCB.
These subsystems and functions may support different basic access
control policies from those supported by the original TCB. These
different policies must be composed with those of the original TCB.
Second, to support new system or organizational policies, functions
implementing new basic access policies are required to be added to a
product's TCB.  These new access control policies must also be
composed with the existing ones to enable the implementation of the
protection objectives of an organization.

The composition of access control policies within a product adds new
requirements to the definition of product access control policies. For
example, whenever trusted subsystems or functions that extend the TCB
are added to support new policies, it must be ensured that existing
TCB functions can not be used to access the new subjects and objects
in an unauthorized way, and that the new subsystems and functions can
not be used to access the currently existing subjects and objects in
an unauthorized way. Also, whenever multiple policies are composed
within the same TCB and refer to the same set of subjects and objects,
it must be determined that the composition of access control policies
is consistent with the overall TCB protection policy and does not
introduce new vulnerabilities.

The composition of access control policies within an access control
component also requires that both the individual access control
policies and their rules for composition be completely defined (i.e.,
for each element of the defined policy, a corresponding set of rules
must establish the completeness of the composition).

Composition of Discretionary and Non-Discretionary Policies.

A typical example of access control policy composition within the same
IT product TCB is provided by the addition of a non- discretionary
access control policy (e.g., the DoD mandatory policy) to a TCB that
originally supports only a discretionary policy. The composition rules
for the resulting TCB access control policy require that (1) both the
mandatory and discretionary authorization rules be enforced on every
subject and object protected by discretionary controls, and (2) the
references issued by the enforcement modules of the discretionary
policy be subject to the mediation specified by the mandatory rules.
This precedence of enforcement is important whenever the exceptions
returned by the enforcement of the two sets of rules are different.
The reason is that if non-identical exceptions are returned by the two
sets of rules, new covert channels may appear that would not appear
had only the mandatory rules be enforced. These covert channels would
violate the intent of the mandatory secrecy policy.

Other examples of policy composition within the same TCB include those
in which the DoD mandatory secrecy policy and a mandatory integrity
policy are supported. This composition might imply (1) that both the
mandatory authorization rules be enforced on every subject and object
reference and (2) that the controlled sharing rules of the two
mandatory policies must be compatible with each other. Compatibility
of these rules would imply, for example, that the secrecy and
integrity upgrade conditions must not introduce covert channels that
otherwise would not exist when the individual policies were used
separately.

Composition by Policy Partitioning.

A typical example of policy partitioning appears when a subsystem
implementing its own access control policy is integrated within an
operating system TCB. (An alternate way of integrating such a
subsystem in a trusted operating system is illustrated in the
following discussion of TCB policy subsetting). Such subsystem
integration is fairly common of database management systems and
products. Since these subsystems implement their own policies, which
generally differ from those of the operating system, the composition
must ensure that neither the operating system nor the database
subsystem interfaces of the same TCB would allow (1) an untrusted
database application or an unprivileged database user to access
operating system objects in an unauthorized manner, or (2) an
untrusted operating system application or an unprivileged operating
system user to access database objects in an unauthorized manner.
Furthermore, when non- discretionary access controls are implemented
in both the operating system and the database subsystem, the
composition of the two should not introduce covert channels that were
not present when the individual policies were supported.

The suggested composition causes the access control partitioning of
the TCB into an operating system and a database partition. The two
partitions can share other TCB policy components such as
identification and authentication, system entry, and trusted path.
Other similar examples of policy partitioning are offered by message
or mail subsystems and communication protocol subsystems.

Composition by Policy Subsetting.

An alternate method of policy composition is that provided by policy
subsetting. In this method, separate TCB subsets are allocated
different policies. This method of policy composition is addressed in
detail in the Trusted Database Management System Interpretation of the
Trusted Computer System Evaluation Criteria (TDI) [NCSC 1991].

In this composition method a TCB subset, M, is a set of software,
firmware, and hardware (where any of these three could be absent) that
mediates the access of a set of subjects, S, to a set of objects, O,
on the basis of a stated access control policy, P, and satisfies the
properties or the reference validation mechanism [NCSC 1991]. M uses
resources provided by an explicit set of more primitive TCB subsets to
create the objects of O, create and manage its data structures, and
enforce the policy P.  (The above definition does not explicitly
prohibit an access control policy P that allows trusted subjects.) If
there are no TCB subsets more primitive than M, then M uses only
hardware resources to instantiate its objects, to create and manage
its own data structures, and to enforce its policy. However, if M is
not the most primitive TCB subset, then M does not necessarily use the
hardware or firmware functions to protect itself. Rather, it uses
either hardware resources or the resources provided by other, more
primitive TCB subsets.  Thus TCB subsets build on abstract machines,
either physical hardware machines or other TCB subsets.  Just like
reference validation mechanisms, a TCB subset must enforce a defined
access control policy separately than those enforced by other subsets.

The access control policy P[i] is the policy allocation for each
identified TCB subset M[i] of a product along with the relation of
these policies to the product policy P. The allocated policies P[i]
will be expressed in terms of subjects in S[i] and objects in O[i]. To
satisfy the requirement that the (composite) TCB enforce its stated
policy P, each rule in P must be traceable through the structure of
the candidate TCB subsets to the TCB subset(s) where that enforcement
occurs.  It must also be noted that every subject trusted with respect
to P[i] must be within the TCB subset M[i].

An Example of Organizational Protection Objective: Separation of Roles

 Separation of roles provides for the compartmentalization of
authority and responsibility, and reduces the potential damage from
errors or accidents or damage caused by unskilled or corrupt users or
administrators. Separation of roles facilitates the secure
administration of a product by enabling administrators to distribute,
review, and revoke permissions of users to objects based on individual
roles instead of on individual users and individual objects. This
objective appears to be very common in organizations that have a
stable structure with well-defined roles and that frequently change
which users fill which roles.

The separation-of-role policies provide a measure of data
confidentiality and integrity by reducing the likelihood of an
unauthorized action being taken, or limiting the effects of an
unauthorized action if it does occur. To accomplish this, these
policies must associate (1) identified and authenticated users with
roles; (2) roles with sets of identified actions (e.g., executions of
specific TCB functions, commands, application programs, and
transactions identities differing from those of their invokers); and
(3) identified actions with sets of objects. The first two
associations must be non-discretionary whereas the third can be either
discretionary or non-discretionary, depending upon the threats assumed
in the product's environment (e.g., whether Trojan horses or viruses
are assumed to be included in the code of a transaction).

An Access Control Policy component providing fine-grained separation
can be used to restrict the capabilities of an unskilled or corrupt
administrator to more specific duties.  By creating audit
administrator, account administrator, and operator roles (for
example), potential damage can be contained and the integrity of the
product and its resources and data can provide greater protection. The
functions performed by the various security-relevant roles (e.g.,
security administrator) are identified. The administrative personnel
should be able to perform security administrative functions only after
taking a distinct auditable action to assume a security administrative
role on the product. Non- security functions that can be performed in
a security administration role should be limited strictly to those
essential to performing the security role effectively.

Complete separation of roles is provided in those products which, in
addition to separate administrator roles, provide the ability to
define roles for subjects. For example, a bank would require distinct
role definitions for bank tellers, loan officers and clerks. Different
definitions would also be required on a military supply system for
order clerks, shipping and receiving personnel, and combat unit
personnel.  

Appendix D.

MODULAR DECOMPOSITION

This Appendix discusses the notion of TCB modular decomposition and
how the specific assurance requirements for modular decomposition can
be satisfied. First, a definition of a module is given. The discussion
on decomposition relations gives background information on how to
satisfy the requirements of level MD-2 for the identification of the
protection functions and the interface between the modules through the
use of the contains and the uses relations.  Finally, a discussion on
correctness dependencies among modules gives background information on
how to satisfy the requirements of level MD-3 for an analysis of the
correctness dependencies (i.e., for service and environment
dependencies).

Module Definition. A module is defined as an independently replaceable
product part (unit, building block). A software product module has the
following five characteristics: a role, a set of related functions, a
well-defined interface, an internal design, and replacement
independence.

1. Role. A module has a well-defined unique role (responsibility,
purpose, contract) that describes its effect as a relation among
inputs, outputs, and the retained state of the module. The role of a
module describes its effects or behavior on inputs. The effects can be
reflected in the values of outputs or the retained state of the
module. The state of a software module can be represented by a set of
variables (simple variables or tables). A well-defined role should
have a short and clear description.  A module should have a simple
name that reflects its role. Typically, module roles are product
unique; no two modules of a product have the same role (no duplication
of roles). However, the product may intentionally duplicate modules to
achieve other product goals (e.g., performance, reliability).

2. Set of Related Functions. A module contains only all the functions
(procedures, subroutines) necessary to satisfy its role. Each function
has well-defined inputs, outputs, and effects. Functions can, but need
not, be named. In software, for example, some functions are expanded
in-line for performance reasons; however, such in-line expansion may
not be expressible in some programming languages. The name of a
function should reflect its purpose. The inputs and outputs of a
software function can be formal parameters, informal (global,
environment) parameters, or (request-response) messages. It should be
simple to distinguish the public from the private functions (if any)
in a module. It is desirable, but not necessary, that the functions of
a module be nonredundant (function redundancy is at the discretion of
the product or module designer). Regarding the "all and only" nature
of a module's functions, certain functions typically have a
complementary twin, (e.g., get-set, read-write, lock- unlock, do-undo,
reserve-unreserve, allocate-deallocate).

3. Well-Defined Interface. A module interface is well-defined if it
contains all and only the module assumptions that a module user needs
to know. A module has an interface (external specification) that
consists of the public (visible) items that the module exports. For
software, a well-defined interface contains declarations of exported
(public) functions and their formal parameters, data, types, manifest
constants, exceptions raised, exceptions handled, exception handlers,
and, the associated rules (restrictions or discipline) for using these
public functions, types, constants, and global variables. The
discipline of an interface, if any, may explain or constrain the
"legal" order in which to use public functions. However, it may be
inappropriate or impossible to capture certain programming
restrictions or disciplines. In such cases, the restrictions should be
provided in associated documentation or commentary.  Note that a
module interface includes variables that are global to that module.

4. Internal Design. A module has an internal design that contains its
construction assumptions and details how its interface is satisfied.
It should be possible to understand the interface (and role) of a
module without understanding its internal design. Module users need
not know the module internal design.

5. Replacement Independence. A broken or non-functional module can be
replaced (e.g., with a corrected function having an identical
interface) without also replacing any other module in the product. In
software products, the notion of replacement independence has a
somewhat different meaning.  While replacement independence is implied
by information hiding, and information hiding disallows global
variables, replacement independence does not rule out the use of
global variables in software modules, provided that the global
variables are explicitly defined in the module's interface, and that
the dependencies among the modules using those global variables are
known.

Decomposition Relations. The decomposition of any product into modules
relies on two intermodule relations, namely (1) the contains relation,
and (2) the uses relation. These relations imply certain correctness
dependencies among modules that are fundamental to the understanding
of the module structure of a product.

1. The Contains Relation. Internally, a module may contain component
submodules. Sometimes it is necessary or desirable to identify a set
of component parts of a module as submodules. These submodules
partition the parent module in a collectively exhaustive and mutually
exclusive manner. The decision as to when to stop partitioning a
product into additional modules is generally based on a designer's
discretion and economics (i.e., no apparent return on the effort) as
there is no other generally accepted criterion for when to stop.

Collected product-wide, the contains relation yields a module
hierarchy (tree). Nodes of the tree represent modules. Arc (A, B)
means that module A directly contains submodule B. The root is the
zero-th level of the tree. The product itself should be considered as
the zero-th level module. The (n+1)-th level consists of the children
(direct submodules) of the n-th level. Modules with no submodules are
called leaf modules. We can define a part hierarchy product as modular
if the product itself, and recursively each of its subparts that we
identify as should-be-modules, satisfies the definition of module.

2. The Uses Relation. We define the uses relation between functions
and modules as follows. Function A uses function B if and only if (1)
A references B (e.g., A invokes B, A reads data written by B) and uses
results or side-effects of that reference and (2) there must be a
correct version of B present for A to work (run, operate) correctly. A
function uses a module if and only if it uses at least one function
from that module. A module uses another module if and only if at least
one function uses that module. The uses relation is well- defined.
>From the uses relation we can draw a directed graph for a given level,
where the nodes are same-level modules, and arc (A, B) means that
module A uses module B. Also, we can draw a uses graph of the leaf
modules.

Correctness Dependencies Among Modules. Correctness dependencies among
modules are basic to describing, evaluating, and simplifying the
connectivity of modules, and therefore basic to product review and
restructuring. For modules A and B, A depends on B, or A has a
correctness dependency on B or "the correctness of A depends on the
correctness of B", if and only if there must be a correct version of B
present for A to work correctly. There are two types of correctness
dependencies.

1. Service Dependency. A service dependency exists where A references
a service in B and uses results or side-effects of that service. The
service may be referenced by invocation through a function call,
message, signal (e.g., a semaphore or monitor operation), or hardware
trap, or by sharing data.  It is important to point out that not all
invocations are service dependencies. For example, some services
invoke other services simply to provide notification or advice of the
occurrence of certain events and do not rely on the results of the
invoked service. In contrast, data sharing always represents service
dependencies. Modules that are either readers or writers of shared
data depend on other modules that are writers of those same shared
data. Thus, shared data with multiple writer modules produce mutual
dependencies and increase module connectivity.

2. Environmental Dependency. An environmental dependency may exist
even though A may neither invoke nor share any data with B, but
nevertheless depends upon B's correct functioning.  Examples of
environmental dependencies are provided by the dependencies of most of
a product's services on the interrupt, signal, and global exception
handling subsystems. Other low- level services may become part of the
"environment" of all higher-level services (e.g., recovery services)
and, thus, environmental dependencies become pervasive in all
products.

For structural analysis, it is desirable to represent correctness
dependencies between product modules with the contains and the uses
relations and their graphs. As seen previously, the contains relation
among modules is unambiguously defined by syntactic analysis. In
contrast, the uses relations can be defined in two possible ways: (1)
as representing all correctness dependencies; or (2) as representing
only service dependencies. To use all correctness dependencies is
desirable but impractical in all but small products. Hence, the uses
relation could be defined in terms of only service dependencies. To
simplify product structure, we need to minimize correctness
dependencies and eliminate all circular dependencies. To do this, we
first minimize data sharing dependencies, because they contribute to
circular dependencies, then we remove other circular dependencies. The
achievement of the product simplification goal can be measured by the
results of eliminating global variables and acyclic structure, and
minimizing the cardinality of the uses relation. If this uses relation
represents all product correctness dependencies and if its graph is
cycle-free, then showing correctness of the product parts in a bottom
up order (the reverse of a topological sort of the uses graph) leads
to correctness of the product.  

Appendix E.

PENETRATION ANALYSIS

This appendix discusses the notion of penetration analysis and how the
specific assurance requirements for penetration analysis are
satisfied. First, the scope of penetration analysis is defined. This
gives background information for the level PA-1 requirement to define
the TCB configuration, interface, and protection functions that are
subject to penetration testing. Next, the precision coverage and test
conditions for penetration analysis are discussed. This gives
background information for the level PA-2 requirement on how the
system reference manuals, DIS, and source code are used to define the
penetration coverage and test conditions.  Penetration resistance
properties are then discussed which gives background information for
the levels PA-3 and PA-4 requirements regarding the derivation and
verification of penetration resistance properties.

Penetration analysis requires that the scope of the analysis method be
defined. This includes the following requirements: (1) that the
product and TCB configuration be defined and frozen, (2) that the TCB
protection functions that are the subject of analysis be identified,
and (3) that the TCB interface that is subject to penetration be
defined. The TCB configuration includes both the hardware and the
software configuration. The TCB protection functions include, but are
not restricted to, the identification of the security policies
supported, reference mediation, and TCB protection components. The TCB
interface includes all the unprivileged user-visible and application
programming interfaces. The user-visible interfaces may also include
privileged user interfaces, depending upon whether the vulnerabilities
of the security management and administrative roles need to be
analyzed.

Penetration analysis also requires that the precision and coverage of
the analysis method be defined. The analysis precision depends on
several factors, including the level of analysis detail, and the
definition of the types of TCB interface, design, and implementation
documentation used.  Typically, the TCB documentation includes the
programming reference manuals-not just the TCB interface definition,
DIS and FIS-and source code. The coverage of the analysis methods
includes the goals, or purposes, and the outcomes of the penetration
method. Among the typical goals of penetration analysis are flaw
identification and repair, vulnerability assessment, and testing of
known classes of penetration flaws found in other TCBs that might be
relevant to the particular product's TCB. These goals are usually
defined in terms of a set of threats deemed important to counter for
the product's security. The outcomes of the penetration analysis are
the identification of security flaws and the demonstration of the
effects of those flaws. A common desirable outcome of penetration
analysis is the confidence that a directed, comprehensive examination
of the TCB has been performed by skilled analysts using
state-of-the-art methods and tools for a given period of time. This is
a generally useful outcome even when few flaws are discovered.

Penetration analysis methods include penetration testing and
verification of penetration-resistance conditions.  Penetration
testing requires that test conditions, or flaw hypotheses, be
generated, and test data (e.g.,test environment, TCB call parameters,
and outcome) are defined.  Test conditions are typically generated
from existing TCB documentation, from known generic flaws, from known
flaws of other similar products, and from implementation inspection.
Note that the test conditions need not include policy-oriented
conditions; those are the subject of the security functional testing.
Penetration testing also requires that the tests be carried out to
confirm that a particular flaw is, in fact, real. In some cases, the
test need not be carried out if the design analysis confirms the
existence of a flaw, or if penetration scenarios for that flaw exist
or were confirmed by testing on a similar product.

In contrast with penetration testing, which rests on the hypothesis
that penetration flaws exist, the penetration- resistance verification
is based on the hypothesis that a TCB achieve various degrees of
penetration resistance whenever it adheres to a specific set of design
properties. In particular, these design properties are derived by
interpreting the requirements for reference mediation and TCB
protection functions. Note that, as in the case of penetration
testing, the penetration resistance properties need not include
security policy properties; those are the subject of the security
policy verification. For example, whether the authentication function
of an identification and authentication component satisfies its
definition is a concern of policy verification. Whether such a
function resists a dictionary attack is a concern of penetration
resistance.

The set of penetration-resistance properties refer to, but are not
restricted to, the following functional components: (1) TCB isolation
(or tamper proofness), which includes call parameter validation,
TCB/user space separation checks, control of both TCB entry-point
checks and TCB privilege checks; (2) TCB noncircumventability, which
guarantees that all references to TCB object (e.g., references to
object status variables, object permissions) are mediated; (3)
consistency of TCB global variables and objects, which maintains the
properties of global variables, objects, and internal functions of the
product; (4) timing consistency of condition (validation) checks,
which assures that the validity of a condition (validation) check is
not lost at the moment when an action that depends on that check is
actually performed; and (5) elimination of undesirable system and/or
user dependencies, which ensures that unnecessary dependencies between
system and user are not present in the system.

Unlike flaw hypotheses, the penetration-resistance properties are
captured in penetration-analysis models by the model constants and the
state-transition rules. A model must be based on a penetration
resistance policy. For example, the policy may state that a TCB
element may be altered or viewed, or a TCB internal function may be
invoked, only if the set of conditions associated with the
alter/view/invoke access specified by penetration-resistance
properties are validated in an atomic sequence (with the
alter/view/invoke operation itself); i.e., if the timing consistency
of the condition check is preserved. Penetration-resistance modeling
is useful for the same reasons as those for security policy
verification, namely, it enhances the understanding of the penetration
resistance properties and enables the design of verification methods
and tools. In the context of penetration resistance, models suggest
that penetrations, which are caused by incorrect implementation of the
penetration- resistance properties within a TCB, can be identified in
a TCB's source code as patterns of incorrect or absent
validation-check statements or flaws that violate the intended design
specifications or source code.  

Appendix F.

MOTIVATION FOR DEPENDENCY ANALYSIS

This appendix illustrates the need for dependency analysis in the
development of protection profiles, and classifies functional and
assurance dependencies.

The analysis of dependencies among the functional and assurance
components of a profile is necessary for at least the following four
reasons. Dependency analysis helps (1) avoid inadequate, or incorrect,
profile specification; (2) avoid overspecification of a profile; (3)
determine the effect of profile changes (e.g., addition or removal of
individual components or component requirements); and (4) analyze the
compatibility of different protection profiles (e.g., for the
harmonization of different security standards).

1. Avoiding inadequate, or incorrect, profile specification.
Inadequate, or incorrect, profile specification can manifest itself in
many guises. One manifestation is that of missing specifications of
functional or assurance requirements that are necessary to achieve the
goal of a particular protection profile. For example, profiles might
not include either requirements for TCB physical protection or
requirements for operational, administrative, or environmental
protection that could compensate for lack of TCB physical protection.
Other profiles may include information flow (i.e., covert-channel)
identification and control as part of the confidentiality policy
components but omit them from the integrity policy components, or may
include trusted recovery as part of the integrity components but omit
them from the confidentiality components.

Another manifestation of inadequate specification is that of including
insufficient or incomplete requirements in a profile. For example,
requirements of TCB modularity and TCB module support of the least
privilege principle are meaningless without a definition of the
module. And, structuring the TCB into largely independent modules
cannot be performed unless the identification of intermodule
relationships is required. Other profile requirements may become
insufficiently specified whenever they are overly abstract and general
and cannot be used for specific components. For example, in a
window-based product, many of the general device-labeling requirements
lack specifications for input devices (e.g., mouse, keyboard) that
operate across independently labeled windows.

Inadequate requirement specifications can manifest themselves as
inconsistent requirement levels, (e.g., inconsistent specification
scope, granularity, coverage, or strength for different functional
components). For example, when the profile also requires the handling
of covert storage channels, the scope and granularity of
non-discretionary policies of a profile cannot be used at a level that
requires only the control of access to a defined subset of subject and
objects, or to the object contents, but not object status attributes.
The handling of covert storage channels (e.g., elimination, bandwidth
reduction, audit) would become immaterial when the scope and
granularity of non-discretionary policy would make overt means of data
leakage available to unprivileged programs or users. Similarly, the
TCB structuring requirement of minimizing the TCB complexity by
excluding from the TCB all modules that are not protection-critical
would be inconsistent with a level of modularity that requires only
subsystem-level TCB decomposition. Such a structuring requirement
would also be inconsistent with a level of modularity that requires
only modular decomposition but does not require the analysis of
inter-module relationships. In both cases, the requirement
inconsistencies makes it impossible to determine the
protection-criticality of a module targeted for exclusion from the
TCB.

Inadequate specifications can cause cyclic dependencies among the
requirements of functional or assurance components of a profile. A
cyclic dependency appears between two (or more) requirements whenever
they mutually depend on each other. For example, a cyclic dependency
may arise in the specification of the controlled sharing requirements
and the access authorization requirements. To authorize access to an
object, the controlled sharing components of access control would have
to modify a separate object or an object access-control attribute.
This modification action, in turn, requires access authorization.
Cyclic dependencies may appear in an incompletely specified profile
definition or may be introduced in a profile definition when
individual requirements of functional components are refined, or
elaborated, and/or when new functional-component requirements are
added to the profile definition. Cyclic dependencies among profile
requirements are particularly undesirable both because they make it
difficult to reason about the profile consistency and completeness and
because they make it difficult to demonstrate that such requirements
are satisfied in practice. Consequently, cyclic dependencies among
requirements must be identified and, whenever possible, eliminated
(see the example of cyclic dependency removal in the next section).

Finally, inadequate profile specification may, in fact, impose
requirements that are demonstrably impossible to satisfy in general.
For example, a general access review specification requiring the
determination of whether a subject could obtain a certain permission
to an object cannot, in general, be satisfied by discretionary access
control models; viz., the uniform safety problem [Denning83]. Only
some specific discretionary policy implementations could allow such
review features and, therefore, the requirement would have to be
restated in terms of the definition of a specific policy
implementation.

Dependency analysis helps avoid inadequate, or incorrect, profile
specification. By requiring that the different types of dependencies
among the functional and assurance components be identified (discussed
below), the analysis helps determine whether any necessary
requirements are missing from a profile definition. By establishing a
transitive closure of all dependent requirements, the analysis helps
determine whether incomplete or inconsistent levels of requirements
are specified in the profile. The transitive closure of all dependent
requirements implies that cyclic dependencies have been identified and
removed.

2. Avoiding overspecification of a profile. The overspecification of
protection-profile requirements may limit the practical usefulness of
the profile by levying unnecessary functional and/or assurance
requirements on products. It may also inadvertently bias the profile
towards specific products or environments of use. This would be
particularly inappropriate since profiles are intended to capture the
essential protection requirements of diverse products and
environments. For example, a profile whose functional or assurance
components require that segmentation be supported by the hardware to
represent storage objects biases the profile towards products that
support segmented address spaces and against products that support
linear address spaces (e.g., in reduced instruction set
architectures). A profile that defines what privileges must be used in
a TCB also biases the profile towards a specific product. Similarly, a
profile may be undesirably biased towards a specific environment. For
example, if a profile includes a specific set of mandatory
authorization rules instead of generic access control rules, the
profile may become biased to a non-commercial environment in which
classified information is processed. This bias may be desirable if the
environment of profile use is appropriately recognized as being
restricted.

Overspecification may add impractical requirements to a profile,
namely, requirements that could not be satisfied by most, or even any,
product, in practice. For example, a requirement of enforcing the same
access authorization rule on all types of objects would be impractical
because, in most systems, access control rules are implemented on a
per-object- type basis. The authorization rules for directories differ
from those on shared memory segments and message queues, and
authorization rules for database objects differ from those for
operating system objects. A further example of overspecification is
requiring flexible discretionary access control policies for
user-oriented controlled sharing on objects that cannot, and are not
intended to, store user data, (e.g., requiring access control lists on
interprocess communication objects and on user processes as opposed to
the files containing the programs executed by user processes). For
such objects, simple controlled sharing rules that isolate the object
from unwanted or unintended sharing would be adequate.

Profile overspecification may cause meaningless requirements to be
levied on a product. Functional component requirements may be
meaningless for products that cannot, and are not intended to, support
certain functions and operations. For example, functions that prevent
object reuse are irrelevant to products that only need to support a
fixed number of objects that are never destroyed. Similarly, TCB
recovery functions and self-checking functions for disk data
structures are irrelevant to diskless workstations.

Dependency analysis helps avoid profile overspecification. By
establishing a transitive closure of all dependencies among the
functional and assurance components and between the security
functional components and operational characteristics of various
products, the analysis helps determine whether unnecessary,
impractical, or meaningless requirements, or levels of requirements,
are specified in the profile.

3. Determining the effects of profile changes. Registered protection
profiles are expected to be stable for extended periods of time (e.g.,
years and possibly decades). However, as experience accumulates with
building security targets and products using these profiles, the need
for incremental changes and maintenance of profile components becomes
inevitable. Such changes may affect both individual profiles and
profile families. The fundamental concerns that arise in making such
changes are those of determining the effect of a requirement change on
the balance of the profile requirements and of maintaining the
consistency and coherence of the changed profile. These concerns are
also relevant in determining whether the updated profile should be
accepted into the profile registry.

For example, suppose that the security-testing component of a profile
is changed to require explicit, systematic test- coverage analysis and
coverage documentation in test plans.  This change implies that,
regardless of the coverage analysis method, the test conditions must
be generated from the interpretation of the policy models in the TCB.
Otherwise, the notion of test coverage would remain undefined. Hence,
this change suggests that a requirement for policy model and its
interpretation must be included in the assurance (i.e., development
process) components of the profile (family).  Furthermore, if a more
specific form of coverage is required, additional requirements may
become necessary. For instance, if either data-flow or path coverage
is specified, then the identification of the protection-critical
modules becomes necessary because these types of coverage require that
a graph of all authorization checks must be derived from the source
code. Hence, both modular decomposition at a level that provides
intermodule correctness dependencies and implementation requirements
must be included in the development process components of the profile
(family).

Dependency analysis is a primary requirement for determining the
effect of profile changes and maintenance. By establishing a
transitive closure of all dependent requirements, the analysis helps
determine precisely the scope of the profile change in terms of the
required components and levels of required components.

4. Analyzing the compatibility of different protection profiles. An
important objective of this standard is to enable the comparative
analysis of product security requirements of existing standards with
those protection profiles accepted under this standard. Several
national and international security standards already exist, and a
substantial number of different products have been evaluated under
these standards.  Thus, it is important to establish relationships
between the existing standards and evaluated products, and the
accepted profiles of this standard.

An impediment that arises in any attempt to establish a relationship
among the profiles of two different standards is the fact that some
components are classified as assurance components in some standards
and as functional components in others. For example, the TCSEC
includes operational assurances that are classified as functional
assurances in the CTCPEC and the ITSEC. Although this may only be
considered a superficial problem of profile organization, in practice
it may have far reaching implications because the rating of the
functionality levels may not be based on the same parameters as those
of the assurance levels in different standards. Thus, the ability to
establish a correspondence between, and harmonize, profiles of
different standards may be hampered by inconsistent requirement
classification. Furthermore, establishing the correspondence between
these profiles requires that the dependencies among the components of
both individual profiles be analyzed and preserved under the
established correspondence.

Dependency analysis is an important step in establishing the
correspondence between profiles of different security standards. This
analysis decreases profile susceptibility to inconsistent
classification of a component either as a function or as an assurance.
Regardless of how a component is classified, its dependencies with
other components of the same profile are identified by dependency
analysis. Those dependencies could then be preserved under the
established correspondence.  

Appendix G.

EXAMPLE ASSURANCE PACKAGES

This appendix provides seven example assurance packages using the
development assurance components defined in Chapter 5
 and 
the evaluation assurance components defined in Chapter 6. The 
structure of each assurance package follows that of the de-
velopment assurance and evaluation assurance components, 
(i.e., each package contains components, where required, for 
development process, operational support, development envi-
ronment, development evidence, and from the classes of eval-
uation methods: testing, review and analysis). The 
designations T1 through T7 indicate a ranking of assurance 
provided by the package. These packages are summarized in Ta-
ble 15 at the end of this appendix.

Assurance Package T1

The T1 assurance package is intended to include IT products 
which meet the minimum assurance levels acceptable to consum-
ers whether in the DoD and Intelligence Community or the com-
mercial world. This assurance package includes only the 
developmental assurance and evaluation assurance components, 
at their lowest levels, deemed necessary to provide minimal 
understanding of the product.

The intent of the development process assurance for this pack-
age is to establish that the external behavior of the product 
conforms to its user-level and administrative documentation 
without any analysis of the internal structure of the IT prod-
uct's TCB. For this reason, only the claimed TCB protection 
properties, the TCB element list, and the TCB interface de-
scription are required to enable functional testing.

The intent of the operational support assurance for this pack-
age is to establish a minimal level of user and administrative 
guidance and product information that enables the correct 
product installation and use of the product's protection func-
tions.

There are no requirements in this package pertaining to the 
environment in which the product is developed.

The intent of this package is to require the type of assurance 
evidence that was generated during the normal development pro-
cess of a product that was rated C2 by TCSEC standards. Table 
8 summarizes the generic assurance components that comprise 
the T1 assurance package.

Table 8. T1 Assurance Package

.---------------------------------------.
| Assurance Components           |  T1  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-1 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-1 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-1 |
|--------------------------------+------|
|   TCB Modular Decomposition    | ---- |
|--------------------------------+------|
|   TCB Structuring Support      | ---- |
|--------------------------------+------|
|   TCB Design Disciplines       | ---- |
|--------------------------------+------|
| TCB Implementation Support     | ---- |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-1 |
|--------------------------------+------|
|   Penetration Analysis         | ---- |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-1 |
|--------------------------------+------|
| Trusted Generation             | ---- |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | ---- |
|--------------------------------+------|
| Configuration Management       | ---- |
|--------------------------------+------|
| Trusted Distribution           | ---- |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP1 |
|--------------------------------+------|
| Product Development            | EPD1 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT1 |
|--------------------------------+------|
|   Penetration Analysis         | ---- |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Product Support                | ---- |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-1 |
|--------------------------------+------|
|   Independent Testing          | IT-1 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | ---- |
|--------------------------------+------|
|   Operational Support          | ---- |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | ---- |
|--------------------------------+------|
|   Implementation               | ---- |
`---------------------------------------'

Assurance Package T2 

The T2 assurance package is intended to include IT products 
used within the DoD and Intelligence Community as well as the 
commercial world. For this assurance package a few additional 
development and evaluation assurance components, at their 
lowest levels, have been added. Some of the components from 
the previous package have been augmented but still remain on 
the low side of the component scale.

The intent of the development process assurance for this pack-
age, like the previous package, is only to establish that the 
external behavior of the product conforms to its user-level 
and administrative documentation without any analysis of the 
internal structure of the IT product's TCB. For this reason, 
only the claimed TCB protection properties, the formal models 
of these properties, the TCB interface description, and the 
TCB element list are required to enable functional testing. 
Support for TCB structuring is limited to process isolation 
and the separation of the protection critical TCB elements 
from the protection non-critical ones.

The intent of the operational support assurance for this pack-
age is to establish a minimal level of user and administrative 
guidance and product information that enables the correct 
product installation and use of the product's protection func-
tions.

There are no requirements in this package pertaining to the 
environment in which the product is developed.

The intent of this package is to require the type of assurance 
evidence generated during the normal development process of a 
product that was rated B1 by TCSEC standards. Table 9 summa-
rizes the generic assurance components that comprise the T2 
assurance package.

Table 9. T2 Assurance Package

.---------------------------------------.
| Assurance Components           |  T2  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-2 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-2 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-1 |
|--------------------------------+------|
|   TCB Modular Decomposition    | ---- |
|--------------------------------+------|
|   TCB Structuring Support      | SP-1 |
|--------------------------------+------|
|   TCB Design Disciplines       | ---- |
|--------------------------------+------|
| TCB Implementation Support     | ---- |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-1 |
|--------------------------------+------|
|   Penetration Analysis         | ---- |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-1 |
|--------------------------------+------|
| Trusted Generation             | TG-1 |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | ---- |
|--------------------------------+------|
| Configuration Management       | ---- |
|--------------------------------+------|
| Trusted Distribution           | ---- |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP2 |
|--------------------------------+------|
| Product Development            | EPD1 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT1 |
|--------------------------------+------|
|   Penetration Analysis         | ---- |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Product Support                | EPS1 |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-1 |
|--------------------------------+------|
|   Independent Testing          | IT-1 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | ---- |
|--------------------------------+------|
|   Operational Support          | OSR1 |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | ---- |
|--------------------------------+------|
|   Implementation               | ---- |
`---------------------------------------'


Assurance Package T3

The T3 assurance package is intended to include the highest 
level commercial IT products that incorporate protection 
functionality. Although most development assurance components 
are required at their lowest levels, the requirements of sev-
eral development components are extended to capture (1) spe-
cific TCB properties, and (2) a rudimentary notion of support 
for product structure.

The intent of the development process assurance for this pack-
age is to establish that the external behavior of the product 
conforms to its user-level and administrative documentation 
without analysis of the internal structure of the IT product's 
TCB. Like the previous package, only the claimed TCB protec-
tion properties and their informal models, the TCB interface 
description, and the TCB element list are required to enable 
functional testing. Penetration testing is also enabled for 
this package using the same parameters. Support for TCB struc-
turing is limited to process isolation and separation of the 
protection critical TCB elements from the protection non-
critical ones. 

The intent of the operational support assurance for this pack-
age is to establish a minimal level of user and administrative 
guidance and product information that enables the correct 
product installation and use of product protection functions. 

The development environment assurances are intended to pro-
vide a minimal level of control over the product configuration 
and production. This level of development environment assur-
ance is similar to that already present in most established 
commercial development organizations.

The intent of this package is to require the type of assurance 
evidence that is generated during the most stringent commer-
cial development process. Table 10 summarizes the generic as-
surance components that comprise the T3 assurance package.

Table 10. T3 Assurance Package

.---------------------------------------.
| Assurance Components           |  T3  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-2 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-2 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-1 |
|--------------------------------+------|
|   TCB Modular Decomposition    | ---- |
|--------------------------------+------|
|   TCB Structuring Support      | SP-1 |
|--------------------------------+------|
|   TCB Design Disciplines       | ---- |
|--------------------------------+------|
| TCB Implementation Support     | ---- |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-1 |
|--------------------------------+------|
|   Penetration Analysis         | PA-1 |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-2 |
|--------------------------------+------|
| Trusted Generation             | TG-2 |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | LC-1 |
|--------------------------------+------|
| Configuration Management       | CM-1 |
|--------------------------------+------|
| Trusted Distribution           | ---- |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP2 |
|--------------------------------+------|
| Product Development            | EPD1 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT1 |
|--------------------------------+------|
|   Penetration Analysis         | EPA1 |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Product Support                | EPS1 |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-2 |
|--------------------------------+------|
|   Independent Testing          | IT-1 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | DER1 |
|--------------------------------+------|
|   Operational Support          | OSR1 |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | DA-1 |
|--------------------------------+------|
|   Implementation               | ---- |
`---------------------------------------'


Assurance Package T4

The T4 assurance package is intended to include IT products 
no longer of a commercial variety. This package includes sev-
eral extensions to the assurance components of the previous 
two packages. 

The intent of the development process assurance for this pack-
age is both to establish that the external behavior of the 
product conforms to its user-level and administrative docu-
mentation and to provide visibility into the internal struc-
ture of the IT product's TCB. For this reason, requirements 
for Descriptive Interface Specifications and modular decompo-
sition have been added. The TCB element identification, func-
tional testing, and penetration testing requirements have 
also been extended to support the added assurances of external 
behavior. 

The intent of the operational support assurance for this pack-
age is to establish a level of user and administrative guid-
ance and product information that enables the correct product 
installation and use of product protection functions. The de-
veloper is required to establish and document a policy for 
responding to consumer inquiries. 

The development environment assurances are intended to pro-
vide a level of control over the product configuration and 
production, including well-defined coding standards and 
strict configuration management processes. This level of de-
velopment environment assurance is more stringent than that 
used in most advanced commercial development organizations.

The intent of this package is to require more assurance evi-
dence than that which is generated during commercial develop-
ment oriented towards high-quality products. Table 11 
summarizes the generic assurance components that comprise the 
T4 assurance package.

Table 11. T4 Assurance Package

.---------------------------------------.
| Assurance Components           |  T4  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-2 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-2 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-2 |
|--------------------------------+------|
|   TCB Modular Decomposition    | MD-1 |
|--------------------------------+------|
|   TCB Structuring Support      | SP-1 |
|--------------------------------+------|
|   TCB Design Disciplines       | ---- |
|--------------------------------+------|
| TCB Implementation Support     | IM-1 |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-2 |
|--------------------------------+------|
|   Penetration Analysis         | PA-2 |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-2 |
|--------------------------------+------|
| Trusted Generation             | TG-2 |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | LC-2 |
|--------------------------------+------|
| Configuration Management       | CM-2 |
|--------------------------------+------|
| Trusted Distribution           | ---- |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP2 |
|--------------------------------+------|
| Product Development            | EPD2 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT2 |
|--------------------------------+------|
|   Penetration Analysis         | EPA2 |
|--------------------------------+------|
|   Covert Channel Analysis      | ---- |
|--------------------------------+------|
| Product Support                | EPS2 |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-3 |
|--------------------------------+------|
|   Independent Testing          | IT-2 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | DER2 |
|--------------------------------+------|
|   Operational Support          | OSR2 |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | DA-2 |
|--------------------------------+------|
|   Implementation               | CI-1 |
`---------------------------------------'


Assurance Package T5 

The T5 assurance package is the first of the high-assurance 
packages that are intended for environments where security is 
a primary operational consideration. These environments in-
clude, but are not restricted to, national defense, industrial 
process control, medical information processing, financial, 
and business controls.

The intent of the development process assurance for this pack-
age is to lead to IT products that are internally structured 
to the extent required by source-code analyses and by strict 
development environment requirements (e.g., strict configura-
tion management). The source code analyses, which include pen-
etration and storage-channel analyses, are intended to convey 
the evidence that the TCB protection properties are correctly 
implemented in the product.

The intent of the operational support assurance for this pack-
age is to establish a level of user and administrative guid-
ance and product information that enables the correct product 
installation and use of product protection functions. The de-
veloper is required to establish and document a policy for 
responding to consumer inquiries. 

The development environment assurances are intended to pro-
vide a well-defined level of control over the product config-
uration and production, including well-defined coding 
standards and strict configuration management processes. This 
level of development environment assurance is more stringent 
than that used in the most advanced commercial development or-
ganizations.

The intent of this package is to require the type of evidence 
that is necessary to assess whether this product is satisfac-
tory for high assurance environments. This assurance evidence 
is the type generated during the normal development process 
of a product that was rated B2 by TCSEC standards. Evidence 
for the additional analyses is required. Table 12 summarizes 
the generic assurance components that comprise the T5 assur-
ance package.

Table 12. T5 Assurance Package

.---------------------------------------.
| Assurance Components           |  T5  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-3 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-2 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-2 |
|--------------------------------+------|
|   TCB Modular Decomposition    | MD-2 |
|--------------------------------+------|
|   TCB Structuring Support      | SP-2 |
|--------------------------------+------|
|   TCB Design Disciplines       | ---- |
|--------------------------------+------|
| TCB Implementation Support     | IM-3 |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-3 |
|--------------------------------+------|
|   Penetration Analysis         | PA-2 |
|--------------------------------+------|
|   Covert Channel Analysis      | CCA1 |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-2 |
|--------------------------------+------|
| Trusted Generation             | TG-2 |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | LC-2 |
|--------------------------------+------|
| Configuration Management       | CM-2 |
|--------------------------------+------|
| Trusted Distribution           | ---- |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP3 |
|--------------------------------+------|
| Product Development            | EPD3 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT3 |
|--------------------------------+------|
|   Penetration Analysis         | EPA2 |
|--------------------------------+------|
|   Covert Channel Analysis      | ECC1 |
|--------------------------------+------|
| Product Support                | EPS2 |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-4 |
|--------------------------------+------|
|   Independent Testing          | IT-3 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | DER2 |
|--------------------------------+------|
|   Operational Support          | OSR2 |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | DA-2 |
|--------------------------------+------|
|   Implementation               | CI-1 |
`---------------------------------------'


Assurance Package T6

The T6 assurance package is intended for environments where 
security is a major operational consideration. These environ-
ments include, but are not restricted to, national defense, 
industrial process control, medical information processing, 
financial, and business controls.

The intent of the development process assurance for this pack-
age is to lead to IT products that are internally structured 
to the highest possible extent required by source-code anal-
yses and by strict development environment requirements 
(e.g., strict configuration management). The assurances in-
cluded in this package include specific design disciplines 
that enable systematic code analysis (e.g., minimization of 
the TCB size and complexity). The source code analyses, which 
include systematic penetration and covert-channel analyses, 
are intended to convey evidence that the TCB protection prop-
erties are correctly implemented in the product.

The intent of the operational support assurance is to estab-
lish precise, specific administrative guidance on a per role 
basis that could mitigate or deter the exploitation of poten-
tial vulnerabilities. 

The development environment assurances are intended to main-
tain a strict level of control over the product configuration 
and production, including demonstrable compliance with coding 
standards and strict configuration management processes. This 
level of development environment assurance is much more strict 
than that commonly used in the most advanced commercial de-
velopment organizations.

The intent of this package is to require the type of evidence 
that is necessary to assess whether this product is satisfac-
tory for high assurance environments. This assurance evidence 
is the type generated during the normal development process 
of a product that was rated B3 by TCSEC standards. Evidence 
for the additional analyses is required. Table 13 summarizes 
the generic assurance components that comprise the T6 assur-
ance package.

Table 13. T6 Assurance Package

.---------------------------------------.
| Assurance Components           |  T6  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-3 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-2 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-2 |
|--------------------------------+------|
|   TCB Modular Decomposition    | MD-3 |
|--------------------------------+------|
|   TCB Structuring Support      | SP-3 |
|--------------------------------+------|
|   TCB Design Disciplines       | DD-2 |
|--------------------------------+------|
| TCB Implementation Support     | IM-3 |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-3 |
|--------------------------------+------|
|   Penetration Analysis         | PA-2 |
|--------------------------------+------|
|   Covert Channel Analysis      | CCA2 |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-3 |
|--------------------------------+------|
| Trusted Generation             | TG-3 |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | LC-3 |
|--------------------------------+------|
| Configuration Management       | CM-3 |
|--------------------------------+------|
| Trusted Distribution           | ---- |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP3 |
|--------------------------------+------|
| Product Development            | EPD4 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT3 |
|--------------------------------+------|
|   Penetration Analysis         | EPA2 |
|--------------------------------+------|
|   Covert Channel Analysis      | ECC2 |
|--------------------------------+------|
| Product Support                | EPS3 |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-4 |
|--------------------------------+------|
|   Independent Testing          | IT-3 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | DER3 |
|--------------------------------+------|
|   Operational Support          | OSR3 |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | DA-3 |
|--------------------------------+------|
|   Implementation               | CI-3 |
`---------------------------------------'


Assurance Package T7

The T7 assurance package is intended for environments where 
security is the major operational consideration. These envi-
ronments include, but are not restricted to, national defense, 
industrial process control, life-support systems, as well as 
special aeronautical and space applications. Products devel-
oped at this level of assurance are expected to include spe-
cial development environments, not just special development 
processes.

The intent of the development process assurance for this pack-
age is to lead to IT products that are internally structured 
to the highest possible extent required by formal design and 
source-code analyses and by very strict development environ-
ment requirements (e.g., automated configuration management 
and configuration management safeguards). The assurances in-
cluded in this package include the state-of-the-art design 
disciplines that enable formal analysis and systematic code 
analysis (e.g., minimization of the TCB size and complexity). 
The source code analyses, which include verification of pen-
etration-resistance and covert-channel analysis, are intended 
to convey evidence that the TCB protection properties are cor-
rectly designed and implemented in the product.

The intent of the operational support assurance is to estab-
lish precise, specific administrative guidance on a per role 
basis that could mitigate or deter the exploitation of poten-
tial vulnerabilities. 

The development environment assurances are intended to main-
tain the highest level of control over the product configura-
tion and production, including demonstrable compliance with 
coding standards and strict configuration management process-
es. This level of development environment assurance is the 
most stringent used for any IT product production.

The intent of this package is to require the type of evidence 
that is necessary to assess whether the IT product is satis-
factory for the highest levels of assurance. This assurance 
evidence is the type generated during the normal development 
process of a product that was rated A1 by TCSEC standards. 
Evidence of the formal analyses becomes necessary. Table 14 
summarizes the generic assurance components that comprise the 
T7 assurance package.

Table 14. T7 Assurance Package

.---------------------------------------.
| Assurance Components           |  T7  |
|================================|======|
| Development Assurance Components      |     
|=======================================|
| Development Process                   |
|--------------------------------+------|
| TCB Property Definition        | PD-4 |
|--------------------------------+------|
| TCB Design                            |
|--------------------------------+------|
|   TCB Element Identification   | ID-2 |
|--------------------------------+------|
|   TCB Interface Definition     | IF-3 |
|--------------------------------+------|
|   TCB Modular Decomposition    | MD-3 |
|--------------------------------+------|
|   TCB Structuring Support      | SP-3 |
|--------------------------------+------|
|   TCB Design Disciplines       | DD-2 |
|--------------------------------+------|
| TCB Implementation Support     | IM-4 |
|--------------------------------+------|
| TCB Testing and Analysis              |
|--------------------------------+------|
|   Functional Testing           | FT-3 |
|--------------------------------+------|
|   Penetration Analysis         | PA-2 |
|--------------------------------+------|
|   Covert Channel Analysis      | CCA3 |
|--------------------------------+------|
| Operational Support                   |
|--------------------------------+------|
| User Security Guidance         | UG-1 |
|--------------------------------+------|
| Administrative Guidance        | AG-3 |
|--------------------------------+------|
| Trusted Generation             | TG-3 |
|--------------------------------+------|
| Development Environment               |
|--------------------------------+------|
| Life Cycle Definition          | LC-3 |
|--------------------------------+------|
| Configuration Management       | CM-4 |
|--------------------------------+------|
| Trusted Distribution           | TD-1 |
|--------------------------------+------|
| Development Evidence                  |
|--------------------------------+------|
| TCB Protection Properties      | EPP4 |
|--------------------------------+------|
| Product Development            | EPD5 |
|--------------------------------+------|
| Product Testing & Analysis            |
|--------------------------------+------|
|   Functional Testing           | EFT3 |
|--------------------------------+------|
|   Penetration Analysis         | EPA2 |
|--------------------------------+------|
|   Covert Channel Analysis      | ECC2 |
|--------------------------------+------|
| Product Support                | EPS3 |
`---------------------------------------'
|=======================================|
| Evaluation Assurance Components       |
|=======================================|
| Testing                               |
|--------------------------------+------|
|   Test Analysis                | TA-5 |
|--------------------------------+------|
|   Independent Testing          | IT-4 |
|--------------------------------+------|
| Review                                |
|--------------------------------+------|
|   Development Environment      | DER3 |
|--------------------------------+------|
|   Operational Support          | OSR3 |
|--------------------------------+------|
| Analysis                              |
|--------------------------------+------|
|   Protection Properties        | ---- |
|--------------------------------+------|
|   Design                       | DA-3 |
|--------------------------------+------|
|   Implementation               | CI-3 |
`---------------------------------------'


Table 15. Assurance Packages Summary
.---------------------------------------------------------------------------------.
| Assurance Components           |  T1  |  T2  |  T3  |  T4  |  T5  |  T6  |  T7  |
|================================|======|======|======|======|======|======|======|
| Development Assurance Components                                                |     
|=================================================================================|
| Development Process                                                             |
|--------------------------------+------+------+------+------+------+------+------|
| TCB Property Definition        | PD-1 | PD-2 | PD-2 | PD-2 | PD-3 | PD-3 | PD-4 |
|--------------------------------+------+------+------+------+------+------|------|
| TCB Design                                                                      |
|--------------------------------+------+------+------+------+------+------+------|
|   TCB Element Identification   | ID-1 | ID-2 | ID-2 | ID-2 | ID-2 | ID-2 | ID-2 |
|--------------------------------+------+------+------+------+------+------+------|
|   TCB Interface Definition     | IF-1 | IF-1 | IF-1 | IF-2 | IF-2 | IF-2 | IF-3 |
|--------------------------------+------+------+------+------+------+------+------|
|   TCB Modular Decomposition    | ---- | ---- | ---- | MD-1 | MD-2 | MD-3 | MD-3 |
|--------------------------------+------+------+------+------+------+------+------|
|   TCB Structuring Support      | ---- | SP-1 | SP-1 | SP-1 | SP-2 | SP-3 | SP-3 |
|--------------------------------+------+------+------+------+------+------+------|
|   TCB Design Disciplines       | ---- | ---- | ---- | ---- | ---- | DD-2 | DD-2 |
|--------------------------------+------+------+------+------+------+------+------|
| TCB Implementation Support     | ---- | ---- | ---- | IM-1 | IM-3 | IM-3 | IM-4 |
|--------------------------------+------+------+------+------+------+------+------|
| TCB Testing and Analysis                                                        |
|--------------------------------+------+------+------+------+------+-------------|
|   Functional Testing           | FT-1 | FT-1 | FT-1 | FT-2 | FT-3 | FT-3 | FT-3 |
|--------------------------------+------+------+------+------+------+------+------|
|   Penetration Analysis         | ---- | ---- | PA-1 | PA-2 | PA-2 | PA-2 | PA-2 |
|--------------------------------+------+------+------+------+------+------+------|
|   Covert Channel Analysis      | ---- | ---- | ---- | ---- | CCA1 | CCA2 | CCA3 |
|--------------------------------+------+------+------+------+------+------+------|
| Operational Support                                                             |
|--------------------------------+------+------+------+------+------+------+------|
| User Security Guidance         | UG-1 | UG-1 | UG-1 | UG-1 | UG-1 | UG-1 | UG-1 |
|--------------------------------+------+------+------+------+------+------+------|
| Administrative Guidance        | AG-1 | AG-1 | AG-2 | AG-2 | AG-2 | AG-3 | AG-3 |
|--------------------------------+------+------+------+------+------+------+------|
| Trusted Generation             | ---- | TG-1 | TG-2 | TG-2 | TG-2 | TG-3 | TG-3 |
|--------------------------------+------+------+------+------+------+------+------|
| Development Environment                                                         |
|--------------------------------+------+------+------+------+------+------+------|
| Life Cycle Definition          | ---- | ---- | LC-1 | LC-2 | LC-2 | LC-3 | LC-3 |
|--------------------------------+------+------+------+------+------+------+------|
| Configuration Management       | ---- | ---- | CM-1 | CM-2 | CM-2 | CM-3 | CM-4 |
|--------------------------------+------+------+------+------+------+------+------|
| Trusted Distribution           | ---- | ---- | ---- | ---- | ---- | ---- | TD-1 |
|--------------------------------+------+------+------+------+------+------+------|
| Development Evidence                                                            |
|--------------------------------+------+------+------+------+------+------+------|
| TCB Protection Properties      | EPP1 | EPP2 | EPP2 | EPP2 | EPP3 | EPP3 | EPP4 |
|--------------------------------+------+------+------+------+------+------+------|
| Product Development            | EPD1 | EPD1 | EPD1 | EPD2 | EPD3 | EPD4 | EPD5 |
|--------------------------------+------+------+------+------+------+------+------|
| Product Testing & Analysis                                                      |
|--------------------------------+------+------+------+------+------+------+------|
|   Functional Testing           | EFT1 | EFT1 | EFT1 | EFT2 | EFT3 | EFT3 | EFT3 |
|--------------------------------+------+------+------+------+------+------+------|
|   Penetration Analysis         | ---- | ---- | EPA1 | EPA2 | EPA2 | EPA2 | EPA2 |
|--------------------------------+------+------+------+------+------+------+------|
|   Covert Channel Analysis      | ---- | ---- | ---- | ---- | ECC1 | ECC2 | ECC2 |
|--------------------------------+------+------+------+------+------+------+------|
| Product Support                | ---- | EPS1 | EPS1 | EPS2 | EPS2 | EPS3 | EPS3 |
`---------------------------------------------------------------------------------'
|=================================================================================|
| Evaluation Assurance Components                                                 |
|=================================================================================|
| Testing                                                                         |
|--------------------------------+------+------+------+------+------+------+------|
|   Test Analysis                | TA-1 | TA-1 | TA-2 | TA-3 | TA-4 | TA-4 | TA-5 |
|--------------------------------+------+------+------+------+------+------+------|
|   Independent Testing          | IT-1 | IT-1 | IT-1 | IT-2 | IT-3 | IT-3 | IT-4 |
|--------------------------------+------+------+------+------+------+------+------|
| Review                                                                          |
|--------------------------------+------+------+------+------+------+------+------|
|   Development Environment      | ---- | ---- | DER1 | DER2 | DER2 | DER3 | DER3 |
|--------------------------------+------+------+------+------+------+------+------|
|   Operational Support          | ---- | OSR1 | OSR1 | OSR2 | OSR2 | OSR3 | OSR3 |
|--------------------------------+------+------+------+------+------+------+------|
| Analysis                                                                        |
|--------------------------------+------+------+------+------+------+------+------|
|   Protection Properties        | ---- | ---- | ---- | ---- | ---- | ---- | ---- |
|--------------------------------+------+------+------+------+------+------+------|
|   Design                       | ---- | ---- | DA-1 | DA-2 | DA-2 | DA-3 | DA-3 |
|--------------------------------+------+------+------+------+------+------+------|
|   Implementation               | ---- | ---- | ---- | CI-1 | CI-1 | CI-3 | CI-3 |
`---------------------------------------------------------------------------------'

Downloaded From P-80 International Information Systems 304-744-2253