12200 lines
626 KiB
Plaintext
12200 lines
626 KiB
Plaintext
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, the simple security condition). Both "uses" and "policy
|
||
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
|