3833 lines
135 KiB
Plaintext
3833 lines
135 KiB
Plaintext
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
NATIONAL COMPUTER
|
||
|
||
SECURITY CENTER
|
||
|
||
|
||
|
||
|
||
|
||
A GUIDE TO
|
||
|
||
UNDERSTANDING
|
||
|
||
CONFIGURATION MANAGEMENT
|
||
|
||
IN TRUSTED SYSTEMS
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
NCSC-TG-006-88
|
||
Library No. S-228,590
|
||
|
||
|
||
|
||
|
||
FOREWORD
|
||
|
||
|
||
This publication, "A Guide to Understanding Configuration
|
||
Management in Trusted Systems", is being issued by the National
|
||
Computer Security Center (NCSC) under the authority of and in
|
||
accordance with Department of Defense (DoD) Directive 5215.1. The
|
||
guidelines described in this document provide a set of good
|
||
practices related to configuration management in Automated Data
|
||
Processing (ADP) systems employed for processing classified and
|
||
other sensitive information. Recommendations for revision to
|
||
this guideline are encouraged and will be reviewed biannually by
|
||
the National Computer Security Center through a formal review
|
||
process. Address all proposals for revision through appropriate
|
||
channels to:
|
||
|
||
National Computer Security Center
|
||
9800 Savage Road
|
||
Fort George G. Meade, MD 20755-6000
|
||
|
||
Attention: Chief, Computer Security Technical Guidelines
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
____________________________
|
||
Patrick R. Gallagher, Jr. 28 March 1988
|
||
Director
|
||
National Computer Security Center
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
i
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
ACKNOWLEDGEMENTS
|
||
|
||
|
||
Special recognition is extended to James N. Menendez, National
|
||
Computer Security Center (NCSC), as project manager and primary
|
||
author of this document.
|
||
|
||
Special acknowledgement is given to Grant Wagner, NCSC, and Dana
|
||
Nell Stigdon, NCSC, for their constant help and guidance in the
|
||
production of this document. Additionally, Dana Nell Stigdon,
|
||
was responsible for writing the section on the Ratings
|
||
Maintenance Program. Acknowledgement is also given to all those
|
||
members of the computer security community who contributed their
|
||
time and expertise by actively participating in the review of
|
||
this document.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
ii
|
||
|
||
|
||
CONTENTS
|
||
|
||
FOREWORD .................................................... i
|
||
|
||
ACKNOWLEDGEMENTS ............................................ ii
|
||
|
||
CONTENTS .................................................... iii
|
||
|
||
PREFACE ..................................................... v
|
||
|
||
1. PURPOSE ................................................. 1
|
||
|
||
2. SCOPE ................................................... 1
|
||
|
||
3. CONTROL OBJECTIVES ...................................... 2
|
||
|
||
4. ORGANIZATION ............................................ 3
|
||
|
||
5. OVERVIEW OF CONFIGURATION MANAGEMENT PRINCIPLES ......... 4
|
||
|
||
5.1 PURPOSE OF CONFIGURATION MANAGEMENT ................ 4
|
||
|
||
6. MEETING THE CRITERIA REQUIREMENTS ....................... 5
|
||
|
||
6.1 THE B2 CONFIGURATION MANAGEMENT REQUIREMENTS ....... 5
|
||
6.2 THE B3 CONFIGURATION MANAGEMENT REQUIREMENTS ....... 6
|
||
6.3 THE A1 CONFIGURATION MANAGEMENT REQUIREMENTS ....... 6
|
||
|
||
7. FUNCTIONS OF CONFIGURATION MANAGEMENT ................... 7
|
||
|
||
7.1 CONFIGURATION IDENTIFICATION ....................... 7
|
||
7.1.1 Configuration Items ......................... 8
|
||
|
||
7.2 CONFIGURATION CONTROL .............................. 10
|
||
7.3 CONFIGURATION STATUS ACCOUNTING .................... 11
|
||
7.4 CONFIGURATION AUDIT ................................ 12
|
||
|
||
8. THE CONFIGURATION MANAGEMENT PLAN ....................... 14
|
||
|
||
9. IMPLEMENTATION METHODS .................................. 16
|
||
|
||
9.1 THE BASELINE CONCEPT ............................... 16
|
||
9.2 CONFIGURATION MANAGEMENT AT MER, INC. .............. 18
|
||
9.3 THE CONFIGURATION CONTROL BOARD .................... 20
|
||
|
||
10. OTHER TOPICS ............................................ 23
|
||
|
||
10.1 TRUSTED DISTRIBUTION ............................... 23
|
||
10.2 FUNCTIONAL TESTING ................................. 24
|
||
10.3 CONFIGURATION MANAGEMENT TRAINING .................. 24
|
||
|
||
iii
|
||
|
||
|
||
|
||
10.4 CONFIGURATION MANAGEMENT SUPERVISION ............... 25
|
||
|
||
11. RATINGS MAINTENANCE PROGRAM ............................. 26
|
||
|
||
12. CONFIGURATION MANAGEMENT SUMMARY ....................... 27
|
||
|
||
APPENDIX A: AUTOMATED TOOLS ................................. 29
|
||
|
||
A.1 UNIX (1) SCCS ...................................... 29
|
||
A.2 VAX DEC/CMS ........................................ 30
|
||
|
||
GLOSSARY .................................................... 32
|
||
|
||
REFERENCES .................................................. 34
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
(1) Unix is a registered trademark of Bell Laboratories
|
||
|
||
iv
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
PREFACE
|
||
|
||
|
||
Throughout this guideline there will be recommendations made that
|
||
are not included in the Trusted Computer System Evaluation
|
||
Criteria (TCSEC) as requirements. Any recommendations that are
|
||
not in the TCSEC will be prefaced by the word "should," whereas
|
||
all requirements will be prefaced by the word "shall." It should
|
||
be noted that a TCSEC rating will only be based upon meeting the
|
||
TCSEC requirements. Recommendations are made in order to provide
|
||
additional ways of increasing assurance. It is hoped that this
|
||
will help to avoid any confusion.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
v
|
||
|
||
|
||
|
||
1. PURPOSE
|
||
|
||
The Trusted Computer System Evaluation Criteria (TCSEC) is the
|
||
standard used for evaluating the effectiveness of security
|
||
controls built into ADP systems. The TCSEC is divided into four
|
||
divisions: D, C, B, and A, ordered in a hierarchical manner with
|
||
the highest division, A, being reserved for systems providing the
|
||
best available level of assurance. Within divisions C through A
|
||
are a number of subdivisions known as classes, which are also
|
||
ordered in a hierarchical manner to represent different levels of
|
||
security in these classes.
|
||
|
||
For TCSEC classes B2 through A1, the TCSEC requires that all
|
||
changes to the Trusted Computing Base (TCB) be controlled by
|
||
configuration management. Configuration management of a trusted
|
||
system consists of identifying, controlling, accounting for, and
|
||
auditing all changes made to the TCB during its development,
|
||
maintenance, and design. The primary purpose of this guideline
|
||
is to provide guidance to developers of trusted systems on what
|
||
configuration management is and how it may be implemented in the
|
||
development and life-cycle of a trusted system. This guideline
|
||
has also been designed to provide guidance to developers of all
|
||
systems on the importance of configuration management and how it
|
||
may be implemented.
|
||
|
||
Examples in this document are not to be construed as the only
|
||
implementation that will satisfy the TCSEC requirement. The
|
||
examples are merely suggestions of appropriate implementations.
|
||
The recommendations in this document are also not to be construed
|
||
as supplementary requirements to the TCSEC. The TCSEC is the
|
||
only metric against which systems are to be evaluated.
|
||
|
||
This guideline is part of an on-going program to provide helpful
|
||
guidance on TCSEC issues and the features they address.
|
||
|
||
|
||
2. SCOPE
|
||
|
||
An important security feature of TCSEC classes B2 through A1 is
|
||
that there be configuration management procedures to manage
|
||
changes to the Trusted Computing Base (TCB) and all of the
|
||
documentation and tests affected by these changes. Additionally,
|
||
it is recommended that such plans and procedures exist for
|
||
systems not being considered for an evaluation or whose target
|
||
evaluation class may be less than B2. The assurance provided by
|
||
configuration management is beneficial to all systems. This
|
||
guideline will discuss configuration management and its features
|
||
as they apply to computer systems and products, with specific
|
||
attention being given to those that are being built with the
|
||
|
||
1
|
||
|
||
|
||
|
||
intention of meeting the requirements of the TCSEC, and to those
|
||
systems planning to be re-evaluated under the Ratings Maintenance
|
||
Program (RAMP) (see Section 11. RAMP).
|
||
|
||
Except in cases where there is a distinction between the
|
||
configuration management of a trusted system and an untrusted
|
||
system, the word "system" shall be used as the object of
|
||
configuration management, encompassing both the system and the
|
||
TCB. It should be noted that the TCSEC only requires the TCB to
|
||
be controlled by configuration management, although it is
|
||
recommended that the entire system be maintained under
|
||
configuration management.
|
||
|
||
|
||
3. CONTROL OBJECTIVES
|
||
|
||
The TCSEC gives the following as the Assurance Control Objective:
|
||
|
||
"Systems that are used to process or handle classified or
|
||
other sensitive information must be designed to guarantee
|
||
correct and accurate interpretation of the security policy
|
||
and must not distort the intent of that policy. Assurance
|
||
must be provided that correct implementation and operation
|
||
of the policy exists throughout the system's life-cycle."[1]
|
||
|
||
Configuration management maintains control of a system throughout
|
||
its life-cycle, ensuring that the system in operation is the
|
||
correct system, implementing the correct security policy. The
|
||
Assurance Control Objective as it relates to configuration
|
||
management leads to the following control objective that may be
|
||
applied to configuration management:
|
||
|
||
"Computer systems that process and store sensitive or
|
||
classified information depend on the hardware and software
|
||
to protect that information. It follows that the hardware
|
||
and software themselves must be protected against
|
||
unauthorized changes that could cause protection mechanisms
|
||
to malfunction or be bypassed completely. [For this
|
||
reason, changes to trusted computer systems, during their
|
||
entire life-cycle, must be carefully considered and
|
||
controlled to ensure that the integrity of the
|
||
protection mechanism is maintained.] Only in this way can
|
||
confidence be provided that the hardware and software
|
||
interpretation of the security policy is maintained
|
||
accurately and without distortion."[1]
|
||
|
||
|
||
|
||
|
||
|
||
2
|
||
|
||
|
||
|
||
4. ORGANIZATION
|
||
|
||
This document has been written to provide the reader with an
|
||
understanding of what configuration management is and how it may
|
||
be implemented in an ADP system.
|
||
|
||
For developers of trusted systems, this document also relates the
|
||
TCSEC requirements to the configuration management practices that
|
||
meet them. This document has been organized to illustrate the
|
||
connection between practices and requirements through the use of
|
||
a numbering convention for the TCSEC requirements. The
|
||
configuration management requirements have been broken down into
|
||
19 separate requirements in Section 6 of this document. The
|
||
requirement number(s) will be located in parenthesis following
|
||
its appropriate discussion, e.g., (Requirements 2, 15), signifies
|
||
that the previous discussion dealt with TCSEC requirements 2 and
|
||
15 as stated in Section 6.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
3
|
||
|
||
|
||
|
||
5. OVERVIEW OF CONFIGURATION MANAGEMENT PRINCIPLES
|
||
|
||
Configuration management consists of four separate tasks:
|
||
identification, control, status accounting, and auditing. For
|
||
every change that is made to an automated data processing (ADP)
|
||
system, the design and requirements of the changed version of the
|
||
system should be identified. The control task of configuration
|
||
management is performed by subjecting every change to
|
||
documentation, hardware, and software/firmware to review and
|
||
approval by an authorized authority. Configuration status
|
||
accounting is responsible for recording and reporting on the
|
||
configuration of the product throughout the change. Finally,
|
||
through the process of a configuration audit, the completed
|
||
change can be verified to be functionally correct, and for
|
||
trusted systems, consistent with the security policy of the
|
||
system. Configuration management is a sound engineering practice
|
||
that provides assurance that the system in operation is the
|
||
system that is supposed to be in use. The assurance control
|
||
objective as it relates to configuration management of trusted
|
||
systems is to "guarantee that the trusted portion of the system
|
||
works only as intended."[1]
|
||
|
||
Procedures should be established and documented by a
|
||
configuration management plan to ensure that configuration
|
||
management is performed in a specified manner. Any deviation
|
||
from the configuration management plan could contribute to the
|
||
failure of the configuration management of a system entirely, as
|
||
well as the trust placed in a trusted system.
|
||
|
||
|
||
5.1 Purpose of Configuration Management
|
||
|
||
Configuration management exists because changes to an existing
|
||
ADP system are inevitable. The purpose of configuration
|
||
management is to ensure that these changes take place in an
|
||
identifiable and controlled environment and that they do not
|
||
adversely affect any properties of the system, or in the case of
|
||
trusted systems, do not adversely affect the implementation of
|
||
the security policy of the TCB. Configuration management
|
||
provides assurance that additions, deletions, or changes made to
|
||
the TCB do not compromise the trust of the originally evaluated
|
||
system. It accomplishes this by providing procedures to ensure
|
||
that the TCB and all documentation are updated properly.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
4
|
||
|
||
|
||
|
||
6. MEETING THE CRITERIA REQUIREMENTS
|
||
|
||
This section lists the TCSEC requirements for configuration
|
||
management. Each requirement for each class has been listed
|
||
separately and numbered. Each number may be referenced to the
|
||
requirement discussions that follow in this document. This
|
||
section is designed to serve as a quick reference for TCSEC class
|
||
requirements.
|
||
|
||
|
||
6.1 The B2 Configuration Management Requirements
|
||
|
||
Requirement 1 - "During development and maintenance of the TCB, a
|
||
configuration management system shall be in place."[1]
|
||
|
||
Requirement 2 - The configuration management system shall
|
||
maintain "control of changes to the descriptive top-level
|
||
specification (DTLS)."[1]
|
||
|
||
Requirement 3 - The configuration management system shall
|
||
maintain control of changes to "other design data."[1]
|
||
|
||
Requirement 4 - The configuration management system shall
|
||
maintain control of changes to "implementation documentation"[1]
|
||
(e.g., user's manuals, operating procedures).
|
||
|
||
Requirement 5 - The configuration management system shall
|
||
maintain control of changes to the "source code."[1]
|
||
|
||
Requirement 6 - The configuration management system shall
|
||
maintain control of changes to "the running version of the object
|
||
code."[1]
|
||
|
||
Requirement 7 - The configuration management system shall
|
||
maintain control of changes to "test fixtures."[1]
|
||
|
||
Requirement 8 - The configuration management system shall
|
||
maintain control of changes to test "documentation."[1]
|
||
|
||
Requirement 9 - "The configuration management system shall assure
|
||
a consistent mapping among all documentation and code associated
|
||
with the current version of the TCB."[1]
|
||
|
||
Requirement 10 - The configuration management system shall
|
||
provide tools "for generation of a new version of the TCB from
|
||
the source code."[1]
|
||
|
||
Requirement 11 - The configuration management system shall
|
||
provide "tools for comparisons of a newly generated TCB version
|
||
|
||
5
|
||
|
||
|
||
|
||
with the previous version in order 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."[1]
|
||
|
||
|
||
6.2 The B3 Configuration Management Requirements
|
||
|
||
The requirements for configuration management at TCSEC class B3
|
||
are the same as the requirements for TCSEC class B2. Although no
|
||
additional requirements have been added, the configuration
|
||
management system shall change to reflect changes in the design
|
||
documentation requirements at class B3. This means that the
|
||
additional documentation required for TCSEC class B3 shall also
|
||
be maintained under configuration management.
|
||
|
||
6.3 The A1 Configuration Management Requirements
|
||
|
||
Requirements 2 through 11 are the same as those described in
|
||
Section 6.1 for a class B2 rating. In addition the following
|
||
requirements are added for class A1:
|
||
|
||
Requirement 12 - "During the entire life-cycle, i.e., during the
|
||
design, development, and maintenance of the TCB, a configuration
|
||
management system shall be in place for all security-relevant
|
||
hardware, firmware, and software."[1]
|
||
|
||
Requirement 13 - The configuration management system shall
|
||
maintain control of changes to the TCB hardware.
|
||
|
||
Requirement 14 - The configuration management system shall
|
||
maintain control of changes to the TCB software.
|
||
|
||
Requirement 15 - The configuration management system shall
|
||
maintain control of changes to the TCB firmware.
|
||
|
||
Requirement 16 - The configuration management system shall
|
||
"maintain control of changes to the formal model."[1]
|
||
|
||
Requirement 17 - The configuration management system shall
|
||
maintain control of changes to the "formal top-level
|
||
specifications."[1]
|
||
|
||
Requirement 18 - The tools available for configuration management
|
||
shall be "maintained under strict configuration control."[1]
|
||
|
||
Requirement 19 - "A combination of technical, physical, and
|
||
procedural safeguards shall be used to protect from unauthorized
|
||
modification or destruction the master copy or copies of all
|
||
material used to generate the TCB."[1]
|
||
|
||
6
|
||
|
||
|
||
|
||
7. FUNCTIONS OF CONFIGURATION MANAGEMENT
|
||
|
||
7.1 Configuration Identification
|
||
|
||
Configuration management procedures should enable a person to
|
||
"identify the configuration of a system at discrete points in
|
||
time for the purpose of systematically controlling changes to the
|
||
configuration and maintaining the integrity and traceability
|
||
of this configuration throughout the system life cycle."[4] The
|
||
basic function of configuration identification is to identify the
|
||
components of the design and implementation of a system. When it
|
||
concerns trusted systems, this specifically means the design and
|
||
implementation of the TCB. This task may be accomplished through
|
||
the use of identifiers and baselines (see Section 9.1 The
|
||
Baseline Concept). By establishing configuration items and
|
||
baselines, the configuration of the system and its TCB can be
|
||
accurately identified throughout the system life-cycle.
|
||
|
||
At TCSEC class B2, the TCSEC requires that "changes to the
|
||
descriptive top-level specification, other design data,
|
||
implementation documentation, source code, the running version of
|
||
the object code, and test fixtures and documentation"[1] of the
|
||
TCB be controlled by configuration management (Requirements 2, 3,
|
||
4, 5, 6, 7, 8). Configuration identification helps achieve this
|
||
control. The TCSEC requires that each change to the TCB shall be
|
||
individually identifiable so that a history of the TCB may be
|
||
generated at any time. At TCSEC class A1, the requirements are
|
||
extended to include that the "formal model...and formal top-level
|
||
specifications" of the TCB shall also be maintained under the
|
||
configuration management system (Requirements 16, 17).
|
||
|
||
The following is a sample list of what shall be identified and
|
||
maintained under configuration management:
|
||
|
||
* the baseline TCB including hardware, software, and firmware
|
||
|
||
* any changes to the TCB hardware, software, and firmware
|
||
since the previous baseline
|
||
|
||
* design and user documentation
|
||
|
||
* software tests including functional and system integrity
|
||
tests
|
||
|
||
* tools used for generating current configuration items
|
||
(required at TCSEC class A1 only)
|
||
|
||
Configuration management procedures should make it possible to
|
||
accurately reproduce any past TCB configuration. In the event a
|
||
|
||
7
|
||
|
||
|
||
|
||
security vulnerability is discovered in a version of the TCB
|
||
other than the most current one, analysts will need to be able to
|
||
reconstruct the past environment. This reconstruction will be
|
||
possible to perform if proper configuration identification has
|
||
been performed throughout the system life-cycle.
|
||
|
||
The TCSEC also requires at class B2 and above, that tools shall
|
||
be provided "for generation of a new version of the TCB from the
|
||
source code" and that there "shall be tools for comparing a newly
|
||
generated version with the previous TCB version in order 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"[1]
|
||
(Requirements 10, 11). These tools are responsible for providing
|
||
assurance that no additional changes have been inserted into the
|
||
TCB that were not intended by the system designer. Automated
|
||
tools are available that make it possible to identify changes to
|
||
a system online (see APPENDIX A: AUTOMATED TOOLS). Any changes,
|
||
or suggested changes to a system should be entered into an online
|
||
library. This data can later be used to compare any two versions
|
||
of a system. Such online configuration libraries may even
|
||
provide the capability for line-by-line comparison of software
|
||
modules and documentation. At Class A1, the tools used to
|
||
perform this function shall be "maintained under strict
|
||
configuration control"[1] (Requirement 18). These tools shall
|
||
not be changed without having to undergo a strict review process
|
||
by an authorized authority.
|
||
|
||
|
||
7.1.1 Configuration Items
|
||
|
||
A configuration item is an uniquely identifiable subset of the
|
||
system configuration that represents the smallest portion of the
|
||
system to be subject to independent configuration management
|
||
change control procedures. Configuration items need to be
|
||
individually controlled because any change to a configuration
|
||
item may have some effect upon the properties of the system or
|
||
the security policy of the TCB.
|
||
|
||
Configuration items as they relate to the TCB, are subsets of the
|
||
TCB's hardware, firmware, software, documentation, tests, and at
|
||
class A1, development tools. Each module of TCB software for
|
||
example, may constitute a separate configuration item.
|
||
Configuration items should be assigned unique identifiers (e.g.,
|
||
serial numbers, names) to make them easier to identify throughout
|
||
the system life-cycle. Proper identification plays a vital role
|
||
in meeting the TCSEC requirement for class B2 that requires the
|
||
configuration management system to "assure a consistent mapping
|
||
among all documentation and code associated with the current
|
||
version of the TCB"[1] (Requirement 9). Used in conjunction with
|
||
|
||
8
|
||
|
||
|
||
|
||
a configuration audit, a consistent labeling system helps tie
|
||
documentation to the code it describes. Not only does labeling
|
||
each configuration item make them easier to identify, but it also
|
||
increases the level of control that may be maintained over the
|
||
entire system by making these items more traceable.
|
||
|
||
Configuration items may be given an identifier through a random
|
||
distribution process, but, it is more useful for the
|
||
configuration identifier to describe the item it identifies.
|
||
Selecting different fields of the configuration identifier to
|
||
represent characteristics of the configuration item is one method
|
||
of accomplishing this. The United States Social Security number
|
||
is a "configuration identifier" we all have that uses such a
|
||
system. The different fields of the number identify where we
|
||
applied for the Social Security card, hence describing a little
|
||
bit about ourselves. As the configuration identifier relates to
|
||
computer systems, one field should identify the system version
|
||
the item belongs to, the version of software that it is, or its
|
||
interface with other configuration items. When using a
|
||
numbering scheme like this, a change to a configuration item
|
||
should result in the production of a new configuration
|
||
identifier. This new identifier should be produced by an
|
||
alteration or addition to the existing configuration identifier.
|
||
A new version of a software program should not be identified by
|
||
the same configuration item number as the original program. By
|
||
treating the two versions as distinct configuration items, line-
|
||
by-line comparisons are possible to perform.
|
||
|
||
Identifying configuration items is a task that should be
|
||
performed early in the development of the system, and once
|
||
something is designated as a configuration item, the design
|
||
of that item should not change without the knowledge and
|
||
permission of the party controlling the item. Early
|
||
identification of configuration items increases the level of
|
||
control that may be maintained over the item and allows the item
|
||
to be traced back through all stages of the system development.
|
||
In the event that a configuration item is not identified until
|
||
late in the development process, accountability for that item in
|
||
the early stages of the system development would be non-existent.
|
||
|
||
Configuration items may vary widely in complexity, size, and
|
||
type, and it is important to choose configuration items with
|
||
appropriate granularity. If the items are too large, the data
|
||
identifying each one will overwhelm anyone trying to audit the
|
||
system. If the items are too small, the amount of total
|
||
identification data will overwhelm the system auditors.[2] The
|
||
appropriate granularity for configuration items should be
|
||
identified by each vendor and documented in the configuration
|
||
management plan.
|
||
|
||
9
|
||
|
||
|
||
|
||
7.2 Configuration Control
|
||
|
||
"Configuration control involves the systematic evaluation,
|
||
coordination, approval, or disapproval of proposed changes to the
|
||
design and construction of a configuration item whose
|
||
configuration has been formally approved."[5] Configuration
|
||
control should begin in the earliest stages of the design and
|
||
development of the system and extend over the full life of the
|
||
configuration items included in the design and development
|
||
stages. Early initiation of configuration control procedures
|
||
provides increased accountability for the system by making its
|
||
development more traceable. The traceability function of
|
||
configuration control serves a dual purpose. It makes it
|
||
possible to evaluate the impact of a change to the system and
|
||
controls the change as it is being made. With configuration
|
||
control in place, there is less chance of making undesirable
|
||
changes to a system that may later adversely affect the security
|
||
of the system.
|
||
|
||
Initial phases of configuration control are directed towards
|
||
control of the system configuration as defined primarily in
|
||
design documents. For these, the Configuration Management plan
|
||
shall specify procedures to ensure that all documentation is
|
||
updated properly and presents an accurate description of the
|
||
system and TCB configuration. Often a change to one area of a
|
||
system may necessitate a change to another area. It is not
|
||
acceptable to only write documentation for new code or newly
|
||
modified code, but rather documentation for all parts of the TCB
|
||
that were affected by the addition or change shall be updated
|
||
accordingly. Although documentation may be available, unless it
|
||
is kept under configuration management and updated properly it
|
||
will be of little, if any use. In the event that the system is
|
||
found to be deficient in documentation, efforts should be made to
|
||
create new documentation for areas of the system where it is
|
||
presently inadequate or non-existent.
|
||
|
||
To meet the TCSEC requirements though, configuration control
|
||
shall cover a broader area than just documentation, and at Class
|
||
B2 shall also maintain control of "design data, source code, the
|
||
running version of the object code, and test fixtures"[1] of the
|
||
TCB (Requirements 3, 5, 6, 7). A change to any of these shall be
|
||
subject to review and approval by an authorized authority.
|
||
|
||
For TCB configuration items, those items shall not be able to
|
||
change without the permission of the controlling party. At
|
||
TCSEC class A1, this requirement is strengthened to require
|
||
"procedural safeguards"[1] to protect against unauthorized
|
||
modification of the materials used in the TCB (Requirement 19).
|
||
These procedures should require that not only does the
|
||
|
||
10
|
||
|
||
|
||
|
||
controlling party need to give permission to have a change
|
||
performed, but that the controlling party performs the change on
|
||
the master copy of the TCB that will be released. This ensures
|
||
against changes being made to the master copy that are different
|
||
than the approved changes.
|
||
|
||
The degree of configuration control that is exercised over the
|
||
TCB will affect whether or not it meets the TCSEC requirements
|
||
for configuration management. The configuration management
|
||
requirements in the TCSEC require that a configuration management
|
||
system be in place during the "development and maintenance of the
|
||
TCB" at Class B2 (Requirement 1), and at Class A1, "during the
|
||
entire life-cycle"[1] of the TCB (Requirement 12). A minimal
|
||
configuration control system that would not be sufficient in
|
||
meeting the TCSEC requirements, may only provide for review after
|
||
a change has been made to the system. A system such as this may
|
||
ensure that the change is complete and acceptable and may control
|
||
the release of the change, but for the most part, the control
|
||
exercised is little more than an after-the-fact quality assurance
|
||
check. This system is certainly better than having no control
|
||
system in place, but it would not meet the TCSEC requirements for
|
||
configuration management. What is missing from this system that
|
||
would bring it closer to the B2 requirements is control over the
|
||
change as it is being made. The configuration control required
|
||
by the TCSEC should provide for constant checking and approval of
|
||
a change from its inception, through implementation and testing,
|
||
to release. The level of control exercised over the TCB may
|
||
exceed that of the rest of the system, but it is recommended that
|
||
all parts of the system be under configuration control.
|
||
|
||
In the case of a change to hardware or software/firmware that
|
||
will be used at multiple sites, configuration control is also
|
||
responsible for ensuring that each site receives the appropriate
|
||
version of the system.
|
||
|
||
The point behind configuration control of the TCB is that all
|
||
changes to the TCB shall be approved, monitored, and evaluated to
|
||
provide assurance that the TCB functions properly and that all
|
||
security policies are maintained.
|
||
|
||
|
||
7.3 Configuration Status Accounting
|
||
|
||
Configuration status accounting is charged with reporting on the
|
||
progress of the development in very specific ways. It
|
||
accomplishes this task through the processes of data recording,
|
||
data storing, and data reporting. The main objective of
|
||
configuration status accounting is to record and report all
|
||
information that is of significance to the configuration
|
||
|
||
11
|
||
|
||
|
||
|
||
management process. What is of significance should be outlined
|
||
in the Configuration Management Plan. The establishment of a new
|
||
baseline (see Section 9.1 THE BASELINE CONCEPT) or the meeting of
|
||
a milestone is an example of what should be recorded as
|
||
configuration status accounting information. The requirements in
|
||
the configuration management plan should be viewed as the minimum
|
||
and any events that seem relevant to configuration management
|
||
should be captured and recorded in that they may prove to be
|
||
useful in the future.
|
||
|
||
The configuration accounting system may consist of tracing
|
||
through documentation manually to find the status of a change or
|
||
it may consist of a database that can automatically track a
|
||
change. As long as the information exists accurately in some
|
||
form though, it will serve its purpose. The benefit of an online
|
||
status accounting system is that the information may be kept in a
|
||
more structured fashion, which would facilitate keeping it up to
|
||
date. Being able to query a database for information concerning
|
||
the status of a configuration change or configuration item would
|
||
also be less cumbersome than sorting through notebook pages.
|
||
Finally, the durability of a diskette or hard disk for storage
|
||
outweighs that of a spiral notebook or folder, provided that it
|
||
is properly backed up to avoid data loss in the event of a system
|
||
failure.
|
||
|
||
Whichever system is used, it should be possible to quickly locate
|
||
all authorized versions of a configuration item, add together all
|
||
authorized changes with comments about the reason for the change,
|
||
and arrive at either the current status of that configuration
|
||
item, or some intermediate status of the requested item. The
|
||
status of all authorized changes being performed should be
|
||
formulated into a System Status Report that will be presented at
|
||
a Configuration Control Board meeting (see Section 9.3 THE
|
||
CONFIGURATION CONTROL BOARD).
|
||
|
||
Configuration status accounting "establishes records and reports
|
||
which enable proper logistics support, i.e., the supplying of
|
||
spares, instruction manuals, training and maintenance facilities,
|
||
etc. to be established."[5] The records and reports produced
|
||
through configuration status accounting should include a current
|
||
configuration list, an historical change list, the original
|
||
designs, the status of change requests and their implementation,
|
||
and should provide the ability to trace all changes.
|
||
|
||
|
||
7.4 Configuration Audit
|
||
|
||
Configuration auditing involves checking for top to bottom
|
||
completeness of the configuration accounting information "to
|
||
|
||
12
|
||
|
||
|
||
|
||
ascertain that only the [authorized] changes have been made in
|
||
the code that will actually be used as the new version of the
|
||
TCB."[1] (Requirement 11) When a change has been made to a
|
||
system, it should be reviewed and audited for its effect on the
|
||
rest of the system. This should include reviewing and testing all
|
||
software to ensure that the change has been performed correctly.
|
||
|
||
Configuration auditing is concerned with examining the control
|
||
process of the system and ensuring that it actually occurs the
|
||
way it should. Configuration auditing for trusted systems
|
||
verifies that after a change has been made to the TCB, the
|
||
security features and assurances are maintained. Configuration
|
||
audits should be performed periodically to verify the
|
||
configuration status accounting information. The configuration
|
||
audit minimizes the likelihood that unapproved changes have been
|
||
inserted without going unnoticed and that the status accounting
|
||
information adequately demonstrates that the configuration
|
||
management assurance is valid.
|
||
|
||
"A complete audit should include tracing each requirement down
|
||
through all functions that implement it to see if that
|
||
requirement is met."[2] Furthermore, the configuration audit
|
||
should also ensure that no additions were made that were not
|
||
required. For the audit to provide a useful form of technical
|
||
review, it should be predictable and as foolproof as possible,
|
||
i.e., there should be specific desired results.
|
||
|
||
The configuration audit should verify that:
|
||
|
||
* the architectural design satisfies the requirements
|
||
|
||
* the detailed design satisfies the architectural design
|
||
|
||
* the code implements the detailed design
|
||
|
||
* the item/product performs per the requirements
|
||
|
||
* the configuration documentation and the item/product match
|
||
|
||
The main emphasis of configuration auditing is on providing the
|
||
user with reasonable assurance that the version of a system in
|
||
use is the same version that the user expects to be in use.
|
||
Configuration audits ensure that the configuration control
|
||
procedures of the configuration management system are being
|
||
followed. The assurance feature of configuration auditing is
|
||
provided through reasonable and consistent accountability
|
||
procedures. All code audits should follow roughly the same
|
||
procedures and perform the same set of checks for every change to
|
||
the system.
|
||
|
||
13
|
||
|
||
|
||
|
||
8. THE CONFIGURATION MANAGEMENT PLAN
|
||
|
||
Effective configuration management should include a well-thought-
|
||
out plan that should be prepared immediately after project
|
||
initiation. This plan should describe, in simple, positive
|
||
statements, what is to be done to implement configuration
|
||
management in the system and TCB. A minimal configuration
|
||
management plan may be limited to simply defining how
|
||
configuration management will be implemented as it relates to the
|
||
identification, control, accounting, and auditing tasks. The
|
||
configuration management plan described in the following
|
||
paragraphs is an example of a plan that goes into more detail and
|
||
contains documentation on all aspects of configuration
|
||
management, such as examples of documents to be used for
|
||
configuration management, procedures for any automated tools
|
||
available, or a Configuration Control Board roster (see Section
|
||
9.3 THE CONFIGURATION CONTROL BOARD). The configuration
|
||
management plan should contain documentation that describes how
|
||
the configuration management "tasks are to be carried out in
|
||
sufficient detail that anyone involved with the project can
|
||
consult them to determine how each specific development task
|
||
relates to CM."[2]
|
||
|
||
One portion of the configuration management plan should define
|
||
the roles played by designers, developers, management, the
|
||
Configuration Control Board, and all of the personnel involved
|
||
with any part of the life-cycle of the system. The
|
||
responsibilities required by all those involved with the system
|
||
should be established and documented in the configuration
|
||
management plan to ensure that the human element functions
|
||
properly during configuration management. A list of
|
||
Configuration Control Board members, or the titles of the members
|
||
should also be included in this section.
|
||
|
||
Any tools that will be available and used for configuration
|
||
management should be documented in the configuration management
|
||
plan. At TCSEC class A1, it is required that these tools shall
|
||
be "maintained under strict configuration control"[1]
|
||
(Requirement 18). These tools may include forms used for change
|
||
control, conventions for labeling configuration items, software
|
||
libraries, as well as any automated tools that may be available
|
||
to support the configuration management process. Samples of any
|
||
documents to be used for reporting should also be contained in
|
||
the configuration management plan with a description of each.
|
||
|
||
A section of the Configuration Management Plan should deal with
|
||
procedures. Since the main thrust of configuration management
|
||
consists of the following of procedures, there needs to be
|
||
thorough documentation on what procedures one should follow
|
||
|
||
14
|
||
|
||
|
||
|
||
during configuration management. The configuration management
|
||
plan should provide the procedures to take to ensure that both
|
||
user and design documentation are updated in synchrony with all
|
||
changes to the system. It should include the guidelines for
|
||
creating and maintaining functional tests and documentation
|
||
throughout the life of the system. The configuration management
|
||
plan should describe the procedures for how the design and
|
||
implementation of changes are proposed, evaluated, coordinated,
|
||
and approved or disapproved. The configuration management plan
|
||
should also include the steps to take to ensure that only those
|
||
approved changes are actually included and that the changes are
|
||
included in all of the necessary areas.
|
||
|
||
Another portion of the configuration management plan should
|
||
define any existing "emergency" procedures, e.g., procedures for
|
||
performing a time sensitive change without going through a full
|
||
review process, that may override the standard procedure. These
|
||
procedures should define the steps for retroactively implementing
|
||
configuration management after the emergency change has been
|
||
completed.
|
||
|
||
The configuration management plan is a living document and should
|
||
remain flexible during design and development phases. Although
|
||
the configuration management plan is in place to impose control
|
||
on a project, it should still be open to additions and changes as
|
||
designers and developers see fit. This is not to say that the
|
||
configuration management plan is only a guide and need not be
|
||
followed, but that modifications should be able to occur. If the
|
||
plan is not followed, there is no way it will be able to provide
|
||
the appropriate assurances. In the event that a change is needed
|
||
to the configuration management plan, the change should be
|
||
carefully evaluated and approved. In changes to the
|
||
configuration management plan of a trusted system this evaluation
|
||
shall ensure that the security features and assurances supported
|
||
by the plan are still maintained after the change has been
|
||
implemented.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
15
|
||
|
||
|
||
|
||
9. IMPLEMENTATION METHODS
|
||
|
||
This section discusses implementation methods for configuration
|
||
management that may be used to meet some of the requirements of
|
||
the TCSEC. Section 9.1 discusses the baseline concept as a
|
||
method of configuration identification. The baseline concept
|
||
utilizes the features of configuration management spoken of
|
||
previously, but divides the life-cycle of the system into
|
||
different baselines.
|
||
|
||
Section 9.2 illustrates how a fictitious company, MER, Inc.,
|
||
conducts configuration management. They are attempting to meet
|
||
the TCSEC requirements for a B2 system.
|
||
|
||
Section 9.3 discusses the concept of a Configuration Control
|
||
Board (CCB) for carrying out configuration control. A CCB is a
|
||
body of people responsible for configuration control. This
|
||
concept is widely used by many computer vendors.
|
||
|
||
|
||
9.1 The Baseline Concept
|
||
|
||
Baselines are established at pre-selected design points in the
|
||
system life-cycle. One baseline may be used to describe a
|
||
specific version of a system, or in some configuration management
|
||
systems a single baseline may be defined at each of several major
|
||
milestones. Baselines should be established at the discretion
|
||
of the Configuration Control Board and outlined in the
|
||
configuration management plan. In cases where several baselines
|
||
are established, each baseline serves as a cutoff point for one
|
||
segment of development, while simultaneously acting as the step
|
||
off point for another segment. The characteristics common to
|
||
all baselines are that the design of the system will be approved
|
||
at the point of their establishment and it is believed that any
|
||
changes to this design will have some impact on the future
|
||
development of the system.
|
||
|
||
Baseline management is one technique for performing configuration
|
||
identification. It identifies the system and TCB design and
|
||
development as a series of phases or baselines that are subject
|
||
to configuration control. Used in conjunction with configuration
|
||
items, this is another effective way to identify the system and
|
||
its TCB configuration throughout its life-cycle.
|
||
|
||
"For each different type of baseline, the individual components
|
||
to be controlled should be identified, and any changes that
|
||
update the current configuration should be approved and
|
||
documented. For each intermediate product in the development
|
||
[life-cycle] there is only one baseline. The current
|
||
|
||
16
|
||
|
||
|
||
|
||
configuration can be found by applying all approved changes to
|
||
the baseline."[2]
|
||
|
||
In a system defining several baselines for different stages of
|
||
development, these baselines or milestones should be established
|
||
at the system inception to serve as guides throughout the
|
||
development process. Although specific baselines are
|
||
established in this case, alternatives may be recommended to
|
||
promote greater design flexibility or efficiency. The number of
|
||
baselines that may be established for a system will vary
|
||
depending upon the size and complexity of the system and the
|
||
methods supported by the designers and developers. It is
|
||
possible to establish multiple baselines existing at the same
|
||
time so long as configuration management practices are applied
|
||
properly to each baseline. The following example will discuss
|
||
the baseline concept using three common baseline categories:
|
||
functional, allocated, and product. It should be emphasized that
|
||
these are simply basic milestones and baselines should be
|
||
established depending upon the decisions of the designers and
|
||
developers.
|
||
|
||
The first baseline, the functional baseline, is established at
|
||
the system inception. It is derived from the performance and
|
||
objectives criteria documentation that consists of specifications
|
||
defining the system requirements. Once these specifications have
|
||
been established, any changes to them should be approved.
|
||
|
||
The requirements produced in the functional baseline may be
|
||
divided and subdivided into various configuration items. Once it
|
||
has been decided what the configuration items will be, each of
|
||
the items should be given a configuration identifier. From the
|
||
analysis of the system requirements the allocated baseline will
|
||
be established. This baseline identifies all of the required
|
||
functions with a specific configuration item that is responsible
|
||
for the function. In this baseline, an individual should be
|
||
charged with the responsibility for each configuration item.
|
||
All changes affecting specifications defining design requirements
|
||
for the system or its configuration items as stated in the
|
||
allocated baseline should require approval of the responsible
|
||
individual.
|
||
|
||
The final baseline, the product baseline, should contain that
|
||
version of the system that will be turned over for integration
|
||
testing. This baseline signifies the end of the development
|
||
phase and should contain a releasable version of the system.
|
||
|
||
The baseline example mention earlier in which one baseline is
|
||
established for a single version of a system entails the same
|
||
reasoning as the functional, allocated, and product baseline
|
||
|
||
17
|
||
|
||
|
||
|
||
example. The system established as a baseline in the single
|
||
baseline example will need to have an approved design before
|
||
being placed under configuration control. Prior to the design
|
||
approval, the system design will have to have undergone some type
|
||
of functional review and a process that would allocate these
|
||
functions to various configuration items. Although the early
|
||
processes of the design will not be as formal in the single
|
||
baseline example as they are when the early tasks are
|
||
individually defined, the system will still benefit from being
|
||
under the control of configuration management as a baseline. The
|
||
main point of establishing any baseline is controlling changes to
|
||
that baseline by requiring any changes to it to have to undergo
|
||
an established change control process.
|
||
|
||
|
||
9.2 Configuration Management at MER, Inc.
|
||
|
||
MER, Inc., is a manufacturer of computer systems. Their latest
|
||
project consists of building a system that will meet the B2
|
||
requirements of the TCSEC. In the past, their configuration
|
||
management has only consisted of quality assurance checks, but to
|
||
meet the B2 requirements they realize that they will need to have
|
||
specific configuration management procedures in place during the
|
||
development and maintenance of the system.
|
||
|
||
The project manager was assigned the task of writing the
|
||
configuration management procedures and elected to present them
|
||
in a configuration management plan. After doing some research on
|
||
what should be contained in the configuration management plan, he
|
||
proceeded to write a plan for MER, Inc. The configuration
|
||
management plan that was written listed all of the steps to be
|
||
followed when carrying out configuration management for the
|
||
system. It described the procedures to be followed by the
|
||
development team and described the automated tools that were
|
||
going to be used at MER, Inc. for configuration management.
|
||
These tools consisted of an online tracking data base to be used
|
||
for status accounting, an online data base that contained a
|
||
listing of all of the items under configuration control, and
|
||
automated libraries used for storing software. Before
|
||
development began, all of the development team was responsible
|
||
for reading the configuration management plan to ensure that they
|
||
were aware of the procedures to be followed for configuration
|
||
management.
|
||
|
||
As the system was developed, the TCB hardware, software, and
|
||
firmware were labeled using a configuration item numbering scheme
|
||
that had been explained in the configuration management plan. In
|
||
addition, the documentation and tests accompanying these items
|
||
were also given configuration item numbers to assure a consistent
|
||
|
||
18
|
||
|
||
|
||
|
||
mapping between TCB code and these items. All of the
|
||
configuration item numbers and a description of the items were
|
||
stored in a data base that could be queried at any time to derive
|
||
the configuration of the entire system. Software and
|
||
documentation were stored in a software library where they could
|
||
be retrieved and worked on without affecting the master versions.
|
||
The master copies of all software were stored in a master library
|
||
that contained the releasable versions of the software. Both of
|
||
these libraries are protected by a discretionary access control
|
||
mechanism to prevent any unauthorized personnel from tampering
|
||
with the software.
|
||
|
||
During the development of the system, changes were required. The
|
||
procedures for performing a change under configuration control
|
||
are described in the configuration management plan. These are
|
||
the same procedures that will remain in effect throughout the
|
||
life-cycle of the system. For each proposed change, a decision
|
||
has to be made by management whether or not the change is
|
||
feasible and necessary. MER, Inc. has an online forum for
|
||
reviewing suggested changes. This forum makes it possible for
|
||
all of the members of the development team to comment on how the
|
||
proposed change may affect their work. Management would often
|
||
consult this forum to help arrive at their final decision.
|
||
|
||
After a decision was made, a programmer was assigned to perform
|
||
the change. The programmer would retrieve the most recent
|
||
version of the software from the software library and proceed to
|
||
change it. As the change was being performed, the changes were
|
||
entered into the online tracking data base. This made it
|
||
possible for members of the development team to query this data
|
||
base to find the current status of the change at any time. After
|
||
the change had been performed it was tested and documented, and
|
||
upon successful completion it was forwarded to a reviewer. This
|
||
reviewer was the software manager, who was the only person
|
||
authorized to approve a changed version for release. After the
|
||
change was approved for release, the changed version was stored
|
||
in the master library and a second copy was stored in the
|
||
software library. Each change stored in these libraries was
|
||
given a new configuration identification number. A tool was
|
||
available at MER, Inc. that made it possible to identify changes
|
||
made to software. It compared any two versions of the software
|
||
and provided a line-by-line listing of the differences between
|
||
the two.
|
||
|
||
It was realized at the beginning of the development process that
|
||
there would be times when critical changes would need to be
|
||
performed that would not be able to undergo this review process.
|
||
For these changes, emergency procedures had been listed in the
|
||
configuration management plan and a critical fix library was
|
||
|
||
19
|
||
|
||
|
||
|
||
available to record critical changes that had occurred since a
|
||
release.
|
||
|
||
A control process for changes to the TCB hardware was also
|
||
provided for in the configuration management plan. The
|
||
procedures ensured that changes to the TCB hardware were
|
||
traceable and did not violate the security assumptions made by
|
||
the TCB software. Similar to software changes, all hardware
|
||
changes were reviewed by the project manager before being
|
||
implemented.
|
||
|
||
After a change is made to the TCB software, MER, Inc. performs a
|
||
configuration audit to verify the information that exists in the
|
||
tracking data base. Whether or not a change is performed, the
|
||
configuration management plan at MER, Inc. specifies that a
|
||
configuration audit be performed at least once a month. This
|
||
audit compares the current master version with the status
|
||
accounting information to verify that no changes have been
|
||
inserted that were not approved.
|
||
|
||
This configuration management plan encompasses the descriptive
|
||
top-level specification (DTLS), implementation documentation,
|
||
source code, object code, test fixtures, and test documentation,
|
||
and has been found to satisfy the TCSEC requirements for
|
||
configuration management at class B2.
|
||
|
||
|
||
9.3 The Configuration Control Board (CCB)
|
||
|
||
Configuration control may be performed in different ways. One
|
||
method of configuration control that is in use by systems already
|
||
evaluated at TCSEC Class B2 and above is to have the control
|
||
carried out by a body of qualified individuals known as the
|
||
Configuration Control Board (CCB), also known as the
|
||
Configuration Change Board. The Board is headed by a
|
||
chairperson, who is responsible for scheduling meetings and for
|
||
giving the final approval on any proposed changes. The
|
||
membership of the CCB may vary in size and composition from
|
||
organization to organization, but it should include members from
|
||
any or all of the following areas of the system team:
|
||
|
||
* Program Management
|
||
|
||
* System Engineering
|
||
|
||
* Quality Assurance
|
||
|
||
* Technical Support
|
||
|
||
|
||
20
|
||
|
||
|
||
|
||
* Integration and Test
|
||
|
||
* System Installation
|
||
|
||
* Technical Documentation
|
||
|
||
* Hardware and Software/Firmware Acquisition
|
||
|
||
* Program Development
|
||
|
||
* Security Engineering
|
||
|
||
* User Groups
|
||
|
||
The members of the CCB should interact periodically, either
|
||
through formal meetings, electronic forums, or any other
|
||
available means, to discuss configuration management topics such
|
||
as proposed changes, configuration status accounting reports, and
|
||
other topics that may be of interest to the different areas of
|
||
the system development. These interactions should be held at
|
||
periodic intervals to keep the entire system team up-to-date with
|
||
all advancements or alterations in the system. The Board serves
|
||
to control changes to the system and ensures that only approved
|
||
changes are implemented into the system. The CCB carries out
|
||
this function by considering all proposals for modifications and
|
||
new acquisitions and by making decisions regarding them.
|
||
|
||
An important part of having cross representation in the CCB from
|
||
various groups involved in the system development is to prevent
|
||
"unnecessary and contradictory changes to the system while
|
||
allowing changes that are responsive to new requirements, changed
|
||
functional allocations, and failed tests."[2] All of the members
|
||
of the Board should have a chance to voice their opinions on
|
||
proposed changes. For example, if system engineering proposes a
|
||
change that will affect security, both sides should be able to
|
||
present their case at a CCB meeting. If diversity did not exist
|
||
in the CCB, changes may be performed, and upon implementation may
|
||
be found to be incompatible with the rest of the system.
|
||
|
||
The configuration control process begins with the documentation
|
||
of a change request. This change request should include
|
||
justification for the proposed change, all of the affected items
|
||
and documents, and the proposed solution. The change request
|
||
should be recorded, either manually or online in order to provide
|
||
a way of tracking all proposed changes to the system and to
|
||
ensure against duplicate change requests being processed.
|
||
|
||
When the change request is recorded, it should be distributed for
|
||
analysis by the CCB who will review and approve or disapprove the
|
||
|
||
21
|
||
|
||
|
||
|
||
change request. An analysis of the total impact of the change
|
||
will decide whether or not the change should be performed. The
|
||
CCB will approve or disapprove the change request depending upon
|
||
whether or not the change is viewed as a necessary and feasible
|
||
change that will further the design goals of the system. In
|
||
situations where trusted systems are involved, the CCB shall also
|
||
ensure that the change will not affect the security policy of the
|
||
system.
|
||
|
||
Once a decision has been reached regarding any modifications, the
|
||
CCB is responsible for prioritizing the approved modifications to
|
||
ensure that those that are most important are developed first.
|
||
When prioritizing changes, an effort should be made to have the
|
||
changes performed in the most logical order whenever possible.
|
||
The CCB is also responsible for assigning an authority to perform
|
||
the change and for ensuring that the configuration documentation
|
||
is updated properly. The person assigned to do the change should
|
||
have the proper authorization to modify the system, and in
|
||
trusted systems processing sensitive information, this
|
||
authorization shall be required. During the development of any
|
||
enhancements and new developments, the CCB continues to exert
|
||
control over the system by determining the level of testing
|
||
required for all developments.
|
||
|
||
Upon completion of the change, the CCB is responsible for
|
||
verifying that the change has been properly incorporated and that
|
||
only the approved change has been incorporated. Tests should be
|
||
performed on the modified system or TCB to ensure that they
|
||
function properly after the change is completed. The CCB should
|
||
review the test results of any developments and should be the
|
||
final voice on release decisions.
|
||
|
||
The use of a CCB is one way of performing configuration control,
|
||
but not every vendor may have the desire or resources to
|
||
establish one. Whatever the preference, there should still be
|
||
some way of performing the control processes described
|
||
previously.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
22
|
||
|
||
|
||
|
||
10. OTHER TOPICS
|
||
|
||
10.1 Trusted Distribution
|
||
|
||
Related to the configuration management requirements for trusted
|
||
systems is the TCSEC requirement for trusted distribution at
|
||
class A1 which states:
|
||
|
||
"A trusted ADP system control and distribution facility
|
||
shall be provided for maintaining the integrity of the
|
||
mapping between the master data describing the current
|
||
version of the TCB and the on-site master copy of the code
|
||
for the current version. Procedures (e.g., site security
|
||
acceptance testing) shall exist for assuring that the TCB
|
||
software, firmware, and hardware updates distributed to a
|
||
customer are exactly as specified by the master
|
||
copies."[1]
|
||
|
||
Two questions that the trusted distribution process should answer
|
||
are: (a) Did the product received come from the organization who
|
||
was supposed to have sent it? and (b) Did the recipient receive
|
||
exactly what the sender intended?
|
||
|
||
Configuration management assists trusted distribution by ensuring
|
||
that no alterations are made to the TCB from the time of approved
|
||
modification to the time of release. The additional
|
||
configuration management requirement at A1 that supports this is,
|
||
"A combination of technical, physical and procedural safeguards
|
||
shall be used to protect from unauthorized modification or
|
||
destruction the master copy or copies of all material used to
|
||
generate the TCB"[1] (Requirement 19). This requirement calls
|
||
for strict control over changes made to any versions of the TCB.
|
||
The possibility that a change may not be performed as specified,
|
||
or that a harmful modification may be inserted into the TCB
|
||
should be considered and the authority to perform changes to the
|
||
master copy should be restricted. A single master copy authority
|
||
should be made responsible for ensuring that only approved and
|
||
acceptable changes are implemented into the master copy.
|
||
|
||
Configuration status accounting records and auditing reports can
|
||
provide accountability for all TCB versions in use. In the event
|
||
of altered copies being distributed or "bogus" copies being
|
||
distributed that were not manufactured by the vendor,
|
||
configuration management records will be able to assess the
|
||
validity and accuracy of all TCB versions. Trusted distribution
|
||
displays the need for configuration control over all changes to
|
||
the TCB. Without configuration control there would be no
|
||
accountability for the TCB versions distributed to the customer.
|
||
|
||
|
||
23
|
||
|
||
|
||
|
||
10.2 Functional Testing
|
||
|
||
"The system developer shall provide to the evaluators a document
|
||
that describes the test plan, test procedures that show how the
|
||
security mechanisms were tested, and results of the security
|
||
mechanisms' functional testing."[1] The creation and maintenance
|
||
of these functional tests is required to be part of the
|
||
configuration management procedures. Test results and any
|
||
affected test documentation shall be maintained under
|
||
configuration management and updated wherever necessary
|
||
(Requirements 7, 8). The tests should be repeatable, and include
|
||
sufficient documentation so that any knowledgeable programmer
|
||
will be able to figure out how to run them. The test plan for
|
||
the system should be described in the functional specification
|
||
(or other design documentation) for the TCB, along with
|
||
descriptions of the test programs. The test plan and programs
|
||
should be reviewed and audited along with the programs they test,
|
||
although the coding standards need not be as strict as those of
|
||
the tested programs.
|
||
|
||
It is not acceptable to only generate tests for code that was
|
||
opened or replaced, but all of the portions of the TCB that were
|
||
affected by the change should also be tested. The NCSC
|
||
evaluators can provide a description of the security functional
|
||
tests required to meet the TCSEC testing requirements, including
|
||
the testing required as stated above for configuration
|
||
management.
|
||
|
||
|
||
10.3 Configuration Management Training
|
||
|
||
Each new technical employee should receive training in the
|
||
configuration management procedures that a particular
|
||
installation follows. Experienced programmers, although they may
|
||
be familiar with some form of configuration management, will also
|
||
require training in any new procedures, i.e., an automated
|
||
accounting system, that will be required to be followed.
|
||
Training should be conducted either "by holding formal classes or
|
||
by setting aside sufficient time for the reading of the company
|
||
wide configuration standards."[2] New programmers should become
|
||
familiar with the Configuration Management Plan before being
|
||
allowed to incorporate any changes into the design baseline. It
|
||
should be stressed that a failure to maintain the configuration
|
||
management standards resulting from untrained employees, could
|
||
prevent the system from receiving a rating.[2]
|
||
|
||
|
||
|
||
|
||
|
||
24
|
||
|
||
|
||
|
||
10.4 Configuration Management Supervision
|
||
|
||
A successful configuration management system requires the
|
||
following of many procedures. Considering the demands made on
|
||
the system staff, errors may occur and shortcuts may be sought
|
||
which will jeopardize the entire configuration management plan.
|
||
A review process should be present to ensure that no single
|
||
person can create a change to the system and implement it without
|
||
being subject to some type of approval process. Supervisors, who
|
||
are responsible for the personnel performing the change should be
|
||
required to sign an official record that the change is the
|
||
correct change.[2]
|
||
|
||
Proper supervision also provides assurance that whoever performs
|
||
the change has the proper authorization to do so. Changes should
|
||
not be performed by personnel that are not qualified to perform
|
||
the change. Also, in systems that process sensitive information,
|
||
the programmer performing the change shall possess the proper
|
||
security clearance to perform the change.
|
||
|
||
Management itself must directly support the configuration
|
||
management plan in order for it to work. It should not encourage
|
||
cutting configuration management corners under any circumstances,
|
||
e.g., due to scheduling or budgeting. Management should be
|
||
willing to support the expenditure of money, people, and time to
|
||
allow for proper configuration management.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
25
|
||
|
||
|
||
|
||
11. RATINGS MAINTENANCE PROGRAM
|
||
|
||
The Ratings Maintenance Program (RAMP) has been developed by the
|
||
NCSC in an effort to keep the Evaluated Products List (EPL)
|
||
current. By training vendor personnel to recognize which changes
|
||
may adversely affect the implemetation of the security policy of
|
||
the system, and to track these changes to the evaluated product
|
||
through the use of configuration management, RAMP will permit a
|
||
vendor to maintain the rating of the evaluated product without
|
||
having to re-evaluate the new version. Because changes from one
|
||
version of an operating system to the next version may affect the
|
||
security features and assurances of that operating system,
|
||
configuration management is an integral part of RAMP. For a
|
||
system to maintain its rating under this program, the NCSC shall
|
||
be assured, through the vendor's configuration management
|
||
procedures, that the changes made have not adversely affected the
|
||
implementation of the security mechanisms and assurances of the
|
||
system.
|
||
|
||
Each RAMP participant shall develop an NCSC approved Rating
|
||
Maintenance Plan (RMPlan) which includes a detailed Configuration
|
||
Management Plan (CMP) to support the rating maintenance process.
|
||
This requirement applies to all systems participating in RAMP,
|
||
regardless of class. For further information about the RAMP
|
||
program and about configuration management requirements for RAMP,
|
||
contact:
|
||
|
||
National Computer Security Center
|
||
9800 Savage Road
|
||
Fort George G. Meade, MD 20755<35>6000
|
||
|
||
Attention: Chief, Requirements and Resources Division
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
26
|
||
|
||
|
||
|
||
12. CONFIGURATION MANAGEMENT SUMMARY
|
||
|
||
The assurance provided by configuration management is beneficial
|
||
to all systems. It is a requirement for trusted systems for
|
||
classes B2 and above that a configuration management system "be
|
||
in place that maintains control of changes to the descriptive
|
||
top-level specification, other design data, implementation
|
||
documentation, source code, the running version of the object
|
||
code, and test fixtures and documentation"[1] (Requirements 1, 2,
|
||
3, 4, 5, 6, 7, 8). Although configuration management is a
|
||
requirement for trusted systems for classes B2 and above, it
|
||
should be in place in all systems regardless of class rating, or
|
||
if the system has a rating at all.
|
||
|
||
Successful configuration management is built around four main
|
||
objectives: control, identification, accounting, and auditing.
|
||
Through the accomplishment of these objectives, configuration
|
||
management is able to maintain control over the TCB and protect
|
||
it against "unauthorized changes that could cause protection
|
||
mechanisms to malfunction or be bypassed completely."[1] Even
|
||
for those aspects of the system which are not security-relevant,
|
||
configuration management is still a valuable method of ensuring
|
||
that all of the properties of a system are maintained after a
|
||
change. It is very important to the success of configuration
|
||
management that a formal configuration management plan be adhered
|
||
to during the life-cycle of the system.
|
||
|
||
A successful configuration management plan should begin with
|
||
early and complete definition of configuration management goals,
|
||
scope, and procedures. The success of configuration management
|
||
is dependent upon accuracy. Changes should be identified and
|
||
accounted for accurately, and after the change is completed, the
|
||
change, and all affected parts of the system should be thoroughly
|
||
documented and tested.
|
||
|
||
Configuration management provides control and traceability for
|
||
all changes made to the system. Changes in progress are able to
|
||
be monitored through configuration status accounting information
|
||
in order to control the change and to evaluate its impact on
|
||
other parts of the system.
|
||
|
||
An important part of having a successful configuration management
|
||
plan is that the people involved with it must adhere to its
|
||
procedures in order to keep all documentation current and the
|
||
status of changes up-to-date.
|
||
|
||
With a firm and well documented configuration management plan in
|
||
place, the occurrence of any unnecessary or duplicate changes
|
||
will be reduced greatly and any necessary changes that are
|
||
|
||
27
|
||
|
||
|
||
|
||
required should be able to be identified with great ease. An
|
||
effective configuration management system should be able to show
|
||
what was supposed to have been built, what was built, and what is
|
||
presently being built.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
28
|
||
|
||
|
||
|
||
APPENDIX A: AUTOMATED TOOLS
|
||
|
||
Automated tools may be used to perform some of the configuration
|
||
management functions that previously had to be performed
|
||
manually. A data base management system, even with just a
|
||
limited query system, may be used to perform the configuration
|
||
audit and status accounting functions of configuration
|
||
management. The principle behind using automated systems is that
|
||
text, both from source code and other documents involved in the
|
||
development of the system, can be entered into a Master Library
|
||
and modified only through the use of the automated system. This
|
||
prevents anyone from performing a change without having the
|
||
proper authorization to access the configuration data base. "In
|
||
general, only one program librarian, who should be the project
|
||
manager or someone directly responsible to the manager, should
|
||
have write access to the Master Library during development."[2]
|
||
|
||
A number of software developers have created software control
|
||
facilities that are currently available to be used for
|
||
configuration status accounting. A brief discussion of two of
|
||
these systems follows.
|
||
|
||
|
||
A.1 UNIX (1) SCCS
|
||
|
||
"Under the Unix (1) system, the make utility, and the elements
|
||
admin, get, prs, and delta, which comprise the Source Code
|
||
Control System, provide a basic configuration accounting system.
|
||
Initially a directory is created using the mkdir function. At
|
||
this point, it is possible to use the owner, group, world
|
||
protection scheme provided by Unix (1) to protect the directory.
|
||
In addition a list of login identifiers is created which
|
||
specifies who may update each element to be processed by SCCS."
|
||
[2]
|
||
|
||
Following directory initiation, each document is entered using
|
||
the admin -n function. Each entry that is made is referred to as
|
||
an element. As each update is made to a new element, a new
|
||
generation of that element, known as a delta, is created. The
|
||
name of each element that is stored in a file by SCCS is preceded
|
||
by "s.". If a file is added to the directory that does not
|
||
contain this prefix, it is ignored by the SCCS function calls.
|
||
When the admin function is called, a number of arguments may be
|
||
specified that "specify parameters that may affect the file, and
|
||
may be changed by a subsequent call to admin. The alogin
|
||
argument is used to create the equivalent of an access control
|
||
list by listing the login names of users who can apply the delta
|
||
function to the element, thus creating either a new generation
|
||
|
||
(1) UNIX is a registered trademark of AT&T Bell Laboratories
|
||
29
|
||
|
||
|
||
|
||
(delta) or variant branch."[2]
|
||
|
||
The initial release, or initial delta, of each code module is
|
||
entered into the SCCS directory through the admin -n function,
|
||
thus creating the Master Library. The programmer may update each
|
||
module in the Master Library by using the get -e function "which
|
||
indicates that the module will be edited and then the completed
|
||
document will be reentered into the directory using the delta
|
||
function. As long as the module being edited was extracted from
|
||
the SCCS directory using get -e, it can be returned to the
|
||
library using delta, and all necessary update information will be
|
||
entered with it. The get function can be used to extract a copy
|
||
of any document, but after it is edited it cannot be reentered
|
||
into the library."[2]
|
||
|
||
"SCCS provides the capability to specify a software build by the
|
||
way it assigns an SCCS Identification Number (SID) to each output
|
||
of the delta function."[2] One can get any version of a text or
|
||
source code by specifying the appropriate SID. "There are
|
||
straightforward rules regarding how to specify the particular SID
|
||
desired when get is called. If no SID is specified, the latest
|
||
release and level is provided." The SID of the resulting call to
|
||
delta is affected by the SID used when get -e is called.[2]
|
||
|
||
"The function prs allows for configuration accounting, since it
|
||
extracts information from the s. files in the SCCS directory and
|
||
prints them out for the user. Prs can be used to quickly create
|
||
reports, listing one or two important values such as the last
|
||
modified date for many SCCS files, or many values for one or two
|
||
file. Larger reports can also be processed and created using an
|
||
editor."[2]
|
||
|
||
|
||
A.2 VAX DEC/CMS
|
||
|
||
"VAX DEC/CMS [7] is also used to track a history of each text
|
||
file stored in a CMS directory, but CMS does significantly more
|
||
auditing and cross-checking than admin does. For example, if an
|
||
editor is used directly to modify a file in a CMS directory, any
|
||
further use by CMS of that file generates a warning meassage.
|
||
Any files entered into a CMS directory by other than the CMS
|
||
utility will cause CMS itself to issue a warning message when it
|
||
is invoked for that directory. Otherwise, the process of
|
||
configuration accounting is similar to SCCS.
|
||
|
||
The CMS CREATE LIBRARY function causes a directory to be set up,
|
||
and initial logging to start. The project manager enters each
|
||
element into the directory by using the CMS CREATE ELEMENT
|
||
function. One must RESERVE an element of a library to modify it,
|
||
|
||
30
|
||
|
||
|
||
|
||
and it can only be put back into the library using the REPLACE
|
||
function. If someone else has RESERVEd an element between the
|
||
original programmer's RESERVE and REPLACE calls, a warning is
|
||
issued to both programmers and the occurrence is logged. To get
|
||
a sample copy of the text, such as a program source, the FETCH
|
||
function will generate the latest generation or any specified
|
||
generation of an element, but will not allow an edited copy to be
|
||
reinserted into the library. The SHOW function can be used to
|
||
audit the information about each element in the library.
|
||
|
||
Differences between SCCS and DEC/CMS appear concerning software
|
||
builds. In Unix (1) a build must be either described in a
|
||
makefile, or else each element to be used in a build must be
|
||
retrieved from the SCCS directory using get, placed in another
|
||
directory, and the makefile then may refer to these source files
|
||
to create the executable build. In CMS, the process of selecting
|
||
only a subset of source files, including some which are not the
|
||
most current, is automated by the use of class and group
|
||
mechanisms. To explain how this works, one must understand the
|
||
CMS concepts of generations and variants. Each generation of a
|
||
file corresponds to a Unix (1) delta. Generations are normally
|
||
numbered in ascending order. CMS also has the capability of
|
||
creating a variant development line to any generation by
|
||
specifying in the REPLACE function a variant name. For example,
|
||
if one RESERVEs generation 3 of an element, then performs a
|
||
REPLACE/VARIANT = T, this will create generation 3T1 which may
|
||
then be developed separately from generation 3. The first time
|
||
this is used, the equivalent of an SCCS branch delta is created.
|
||
Branches themselves can have branches, a capability that SCCS
|
||
does not have.
|
||
|
||
A group can be defined within a CMS directory, using the CMS
|
||
CREATE GROUP, and CMS INSERT ELEMENT functions. A group is
|
||
composed of all generations, including variant generations, of
|
||
all elements inserted into the group. Groups can be included
|
||
within other groups. Groups can be defined with a non-empty
|
||
intersection so that they have overlapping membership.
|
||
|
||
The CMS CREATE CLASS function, together with the CMS INSERT
|
||
GENERATION function, can be used to specify the exact elements of
|
||
a software build, and the DESCRIPTION file can then refer to the
|
||
entire class by using the /GENERATION=classname qualifier on
|
||
either the source or action line of a dependency rule. The
|
||
makefile required by Unix (1) SCCS can be much more complex when
|
||
it is required to describe a software build for intermediate
|
||
testing."[2]
|
||
|
||
|
||
(1) Unix is a registered trade mark of Bell Laboratories
|
||
|
||
31
|
||
|
||
|
||
|
||
GLOSSARY
|
||
|
||
Automatic Data Processing (ADP) System - An assembly of computer
|
||
hardware, firmware, and software configured for the purpose of
|
||
classifying, sorting, calculating, computing, summarizing,
|
||
transmitting and receiving, storing, and retrieving data with a
|
||
minimum of human intervention.[1]
|
||
|
||
Baseline - A set of critical observations or data used for a
|
||
comparison or a control. A baseline indicates a cutoff point in
|
||
the design and development of a configuration item beyond which
|
||
configuration does not evolve without undergoing strict
|
||
configuration control policies and procedures.
|
||
|
||
Configuration Accounting - The recording and reporting of
|
||
configuration item descriptions and all departures from the
|
||
baseline during design and production.[2]
|
||
|
||
Configuration Audit - An independent review of computer software
|
||
for the purpose of assessing compliance with established
|
||
requirements, standards, and baselines.[2]
|
||
|
||
Configuration Control - The process of controlling modifications
|
||
to the system's design, hardware, firmware, software, and
|
||
documentation which provides sufficient assurance the system is
|
||
protected against the introduction of improper modification prior
|
||
to, during, and after system implementation.
|
||
|
||
Configuration Control Board (CCB) - An established committee that
|
||
is the final authority on all proposed changes to the ADP system.
|
||
|
||
Configuration Identification - The identifying of the system
|
||
configuration throughout the design, development, test, and
|
||
production tasks.
|
||
|
||
Configuration Item - The smallest component of hardware,
|
||
software, firmware, documentation, or any of its discrete
|
||
portions, which is tracked by the configuration management
|
||
system.
|
||
|
||
Configuration Management - The management of changes made to a
|
||
system's hardware, software, firmware, documentation, tests, test
|
||
fixtures, and test documentation throughout the development and
|
||
operational life of the system.
|
||
|
||
Descriptive Top-Level Specification (DTLS) - A top-level
|
||
specification that is written in a natural language (e.g.,
|
||
English), an informal program design notation, or a combination
|
||
of the two.[1]
|
||
|
||
32
|
||
|
||
|
||
|
||
Firmware - Equipments or devices within which computer
|
||
programming instructions necessary to the performance of the
|
||
device's discrete functions are electrically embedded in such a
|
||
manner that they cannot be electrically altered during normal
|
||
device operations.[3]
|
||
|
||
Formal Security Policy Model - An accurate and precise
|
||
description, in a formal, mathematical language, of the security
|
||
policy supported by the system.
|
||
|
||
Formal Top-Level Specification - A top-level specification that
|
||
is written in a formal mathematical language to allow theorems
|
||
showing the correspondence of the system specifications to its
|
||
formal requirements to be hypothesized and formally proven.[1]
|
||
|
||
Granularity - The relative fineness or courseness by which a
|
||
mechanism can be adjusted. The phrase "the granularity of a
|
||
single user" means the access control mechanism can be adjusted
|
||
to include or exclude any single user.[1]
|
||
|
||
Hardware - The electric, electronic, and mechanical equipment
|
||
used for processing data.[3]
|
||
|
||
Informal Security Policy Model - An accurate and precise
|
||
description, in a natural language (e.g., English), of the
|
||
security policy supported by the system.
|
||
|
||
Software - Various programming aids that are frequently supplied
|
||
by the manufacturers to facilitate the purchaser's efficient
|
||
operation of the equipment. Such software items include various
|
||
assemblers, generators, subroutine libraries, compilers,
|
||
operating systems, and industry application programs.[6]
|
||
|
||
Tools - The means for achieving an end result. The tools
|
||
referred to in this guideline are documentation, procedures, and
|
||
the organizational body, i.e., the CCB, which all contribute to
|
||
achieving the control objective of configuration management.
|
||
|
||
Trusted Computing Base (TCB) - The totality of protection
|
||
mechanisms within a computer system -- including hardware,
|
||
firmware, and software -- the combination of which is responsible
|
||
for enforcing a security policy. A TCB consists of one or more
|
||
components that together enforce a unified security policy over a
|
||
product or system. The ability of a TCB to correctly enforce a
|
||
security policy depends solely on the mechanisms within the TCB
|
||
and on the correct input by system administrative personnel of
|
||
parameters (e.g., a user's clearance) related to the security
|
||
policy.[1]
|
||
|
||
|
||
33
|
||
|
||
|
||
|
||
REFERENCES
|
||
|
||
1. National Computer Security Center, DOD Trusted Computer
|
||
System Evaluation Criteria, DOD, DOD 5200.28-STD, 1985.
|
||
|
||
2. Brown, R. Leonard, "Configuration Management for Development
|
||
of a Secure Computer System", ATR-88(3777-12)-1, The
|
||
Aerospace Corporation, 1987.
|
||
|
||
3. Subcommittee on Automated Information System Security,
|
||
Working Group #3, "Dictionary of Computer Security
|
||
Terminology", 23 November 1986.
|
||
|
||
4. Bersoff, Edward H., Henderson, Vilas D., Siegal, Stanley G.,
|
||
Software Configuration Management, Prentice Hall, Inc.,
|
||
1980.
|
||
|
||
5. Samaras, Thomas T., Czerwinski, Frank L., Fundamentals of
|
||
Configuration Management, Wiley-Interscience, 1971.
|
||
|
||
6. Sipple, Charles J., Computer Dictionary, Fourth Edition,
|
||
Howard W. Sams & Co., 1985.
|
||
|
||
7. Digital Equipment Corporation, VAX DEC/CMS Reference Manual,
|
||
AA-L372B-TE, Digital Equipment Corporation, 1984.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
34
|
||
|
||
|
||
|
||
|
||
NCSC-TG-001
|
||
Library No. S-228,470
|
||
|
||
|
||
|
||
|
||
FOREWORD
|
||
|
||
|
||
|
||
|
||
This publication, "A Guide to Understanding Audit in Trusted
|
||
Systems," is being issued by the National Computer Security
|
||
Center (NCSC) under the authority of and in accordance with
|
||
Department of Defense (DoD) Directive 5215.1. The guidelines
|
||
described in this document provide a set of good practices
|
||
related to the use of auditing in automatic data processing
|
||
systems employed for processing classified and other sensitive
|
||
information. Recommendations for revision to this guideline are
|
||
encouraged and will be reviewed biannually by the National
|
||
Computer Security Center through a formal review process.
|
||
Address all proposals for revision through appropriate channels
|
||
to:
|
||
|
||
National Computer Security Center
|
||
9800 Savage Road
|
||
Fort George G. Meade, MD 20755-6000
|
||
|
||
Attention: Chief, Computer Security Technical Guidelines
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
_________________________________
|
||
Patrick R. Gallagher, Jr. 28 July 1987
|
||
Director
|
||
National Computer Security Center
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
i
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
ACKNOWLEDGEMENTS
|
||
|
||
|
||
|
||
Special recognition is extended to James N. Menendez, National
|
||
Computer Security Center (NCSC), as project manager of the
|
||
preparation and production of this document.
|
||
|
||
Acknowledgement is also given to the NCSC Product Evaluations
|
||
Team who provided the technical guidance that helped form this
|
||
document and to those members of the computer security community
|
||
who contributed their time and expertise by actively
|
||
participating in the review of this document.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
ii
|
||
|
||
|
||
|
||
CONTENTS
|
||
|
||
|
||
FOREWORD ................................................... i
|
||
|
||
ACKNOWLEDGEMENTS ........................................... ii
|
||
|
||
CONTENTS ................................................... iii
|
||
|
||
PREFACE ..................................................... v
|
||
|
||
1. INTRODUCTION ............................................. 1
|
||
|
||
1.1 HISTORY OF THE NATIONAL COMPUTER SECURITY CENTER .... 1
|
||
1.2 GOAL OF THE NATIONAL COMPUTER SECURITY CENTER ....... 1
|
||
|
||
2. PURPOSE .................................................. 2
|
||
|
||
3. SCOPE .................................................... 3
|
||
|
||
4. CONTROL OBJECTIVES ....................................... 4
|
||
|
||
5. OVERVIEW OF AUDITING PRINCIPLES .......................... 8
|
||
|
||
5.1 PURPOSE OF THE AUDIT MECHANISM....................... 8
|
||
5.2 USERS OF THE AUDIT MECHANISM......................... 8
|
||
5.3 ASPECTS OF EFFECTIVE AUDITING ....................... 9
|
||
|
||
5.3.1 Identification/Authentication ................ 9
|
||
5.3.2 Administrative ............................... 10
|
||
5.3.3 System Design ................................ 10
|
||
|
||
5.4 SECURITY OF THE AUDIT ............................... 10
|
||
|
||
6. MEETING THE CRITERIA REQUIREMENTS ........................ 12
|
||
|
||
6.1 THE C2 AUDIT REQUIREMENT ............................ 12
|
||
|
||
6.1.1 Auditable Events ............................. 12
|
||
6.1.2 Auditable Information ........................ 12
|
||
6.1.3 Audit Basis .................................. 13
|
||
|
||
6.2 THE B1 AUDIT REQUIREMENT ............................ 13
|
||
|
||
6.2.1 Auditable Events ............................. 13
|
||
6.2.2 Auditable Information ........................ 13
|
||
6.2.3 Audit Basis .................................. 14
|
||
|
||
iii
|
||
|
||
|
||
CONTENTS (Continued)
|
||
|
||
6.3 THE B2 AUDIT REQUIREMENT ............................ 14
|
||
|
||
6.3.1 Auditable Events ............................. 14
|
||
6.3.2 Auditable Information ........................ 14
|
||
6.3.3 Audit Basis .................................. 14
|
||
|
||
6.4 THE B3 AUDIT REQUIREMENT ............................ 15
|
||
|
||
6.4.1 Auditable Events ............................. 15
|
||
6.4.2 Auditable Information ........................ 15
|
||
6.4.3 Audit Basis .................................. 15
|
||
|
||
6.5 THE A1 AUDIT REQUIREMENT ............................ 16
|
||
|
||
6.5.1 Auditable Events ............................. 16
|
||
6.5.2 Auditable Information ........................ 16
|
||
6.5.3 Audit Basis .................................. 16
|
||
|
||
7. POSSIBLE IMPLEMENTATION METHODS .......................... 17
|
||
|
||
7.1 PRE/POST SELECTION OF AUDITABLE EVENTS .............. 17
|
||
|
||
7.1.1 Pre-Selection ................................ 17
|
||
7.1.2 Post-Selection ............................... 18
|
||
|
||
7.2 DATA COMPRESSION .................................... 18
|
||
7.3 MULTIPLE AUDIT TRAILS ............................... 19
|
||
7.4 PHYSICAL STORAGE .................................... 19
|
||
7.5 WRITE-ONCE DEVICE ................................... 20
|
||
7.6 FORWARDING AUDIT DATA ............................... 21
|
||
|
||
8. OTHER TOPICS ............................................. 22
|
||
|
||
8.1 AUDIT DATA REDUCTION ................................ 22
|
||
8.2 AVAILABILITY OF AUDIT DATA .......................... 22
|
||
8.3 AUDIT DATA RETENTION ................................ 22
|
||
8.4 TESTING ............................................. 23
|
||
8.5 DOCUMENTATION ....................................... 23
|
||
8.6 UNAVOIDABLE SECURITY RISKS .......................... 24
|
||
|
||
8.6.1 Auditing Administrators/Insider Threat ....... 24
|
||
8.6.2 Data Loss .................................... 25
|
||
|
||
9. AUDIT SUMMARY ........................................... 26
|
||
|
||
GLOSSARY
|
||
|
||
REFERENCES .............................................. 27
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
PREFACE
|
||
|
||
|
||
|
||
|
||
Throughout this guideline there will be recommendations made that
|
||
are not included in the Trusted Computer System Evaluation
|
||
Criteria (the Criteria) as requirements. Any recommendations
|
||
that are not in the Criteria will be prefaced by the word
|
||
"should," whereas all requirements will be prefaced by the word
|
||
"shall." It is hoped that this will help to avoid any confusion.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
v
|
||
1
|
||
|
||
|
||
|
||
1. INTRODUCTION
|
||
|
||
1.1 History of the National Computer Security Center
|
||
|
||
The DoD Computer Security Center (DoDCSC) was established in
|
||
January 1981 for the purpose of expanding on the work started by
|
||
the DoD Security Initiative. Accordingly, the Director, National
|
||
Computer Security Center, has the responsibility for establishing
|
||
and publishing standards and guidelines for all areas of computer
|
||
security. In 1985, DoDCSC's name was changed to the National
|
||
Computer Security Center to reflect its responsibility for
|
||
computer security throughout the federal government.
|
||
|
||
|
||
1.2 Goal of the National Computer Security Center
|
||
|
||
The main goal of the National Computer Security Center is to
|
||
encourage the widespread availability of trusted computer
|
||
systems. In support of that goal a metric was created, the DoD
|
||
Trusted Computer System Evaluation Criteria (the Criteria),
|
||
against which computer systems could be evaluated for security.
|
||
The Criteria was originally published on 15 August 1983 as CSC-
|
||
STD-001-83. In December 1985 the DoD adopted it, with a few
|
||
changes, as a DoD Standard, DoD 5200.28-STD. DoD Directive
|
||
5200.28, "Security Requirements for Automatic Data Processing
|
||
(ADP) Systems" has been written to, among other things, require
|
||
the Department of Defense Trusted Computer System Evaluation
|
||
Criteria to be used throughout the DoD. The Criteria is the
|
||
standard used for evaluating the effectiveness of security
|
||
controls built into ADP systems. The Criteria is divided into
|
||
four divisions: D, C, B, and A, ordered in a hierarchical manner
|
||
with the highest division (A) being reserved for systems
|
||
providing the best available level of assurance. Within
|
||
divisions C and B there are a number of subdivisions known as
|
||
classes, which are also ordered in a hierarchical manner to
|
||
represent different levels of security in these classes.
|
||
|
||
|
||
2. PURPOSE
|
||
|
||
For Criteria classes C2 through A1 the Criteria requires that a
|
||
user's actions be open to scrutiny by means of an audit. The
|
||
audit process of a secure system is the process of recording,
|
||
examining, and reviewing any or all security-relevant activities
|
||
on the system. This guideline is intended to discuss issues
|
||
involved in implementing and evaluating an audit mechanism. The
|
||
purpose of this document is twofold. It provides guidance to
|
||
manufacturers on how to design and incorporate an effective audit
|
||
mechanism into their system, and it provides guidance to
|
||
implementors on how to make effective use of the audit
|
||
1
|
||
|
||
|
||
|
||
capabilities provided by trusted systems. This document contains
|
||
suggestions as to what information should be recorded on the
|
||
audit trail, how the audit should be conducted, and what
|
||
protective measures should be accorded to the audit resources.
|
||
|
||
Any examples in this document are not to be construed as the only
|
||
implementations that will satisfy the Criteria requirement. The
|
||
examples are merely suggestions of appropriate implementations.
|
||
The recommendations in this document are also not to be construed
|
||
as supplementary requirements to the Criteria. The Criteria is
|
||
the only metric against which systems are to be evaluated.
|
||
|
||
This guideline is part of an on-going program to provide helpful
|
||
guidance on Criteria issues and the features they address.
|
||
|
||
|
||
3. SCOPE
|
||
|
||
An important security feature of Criteria classes C2 through A1
|
||
is the ability of the ADP system to audit any or all of the
|
||
activities on the system. This guideline will discuss auditing
|
||
and the features of audit facilities as they apply to computer
|
||
systems and products that are being built with the intention of
|
||
meeting the requirements of the Criteria.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
2
|
||
|
||
|
||
|
||
4. CONTROL OBJECTIVES
|
||
|
||
The Trusted Computer System Evaluation Criteria gives the
|
||
following as the Accountability Control Objective:
|
||
|
||
"Systems that are used to process or handle classified or
|
||
other sensitive information must assure individual
|
||
accountability whenever either a mandatory or
|
||
discretionary security policy is invoked. Furthermore, to
|
||
assure accountability the capability must exist for an
|
||
authorized and competent agent to access and evaluate
|
||
accountability information by a secure means, within a
|
||
reasonable amount of time and without undue difficulty."(1)
|
||
|
||
The Accountability Control Objective as it relates to auditing
|
||
leads to the following control objective for auditing:
|
||
|
||
"A trusted computer system must provide authorized personnel
|
||
with the ability to audit any action that can potentially
|
||
cause access to, generation of, or effect the release
|
||
of classified or sensitive information. The audit
|
||
data will be selectively acquired based on the auditing
|
||
needs of a particular installation and/or application.
|
||
However, there must be sufficient granularity in the audit
|
||
data to support tracing the auditable events to a specific
|
||
individual (or process) who has taken the actions or on
|
||
whose behalf the actions were taken."(1)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
3
|
||
|
||
|
||
|
||
5. OVERVIEW OF AUDITING PRINCIPLES
|
||
|
||
Audit trails are used to detect and deter penetration of a
|
||
computer system and to reveal usage that identifies misuse. At
|
||
the discretion of the auditor, audit trails may be limited to
|
||
specific events or may encompass all of the activities on a
|
||
system. Although not required by the TCSEC, it should be
|
||
possible for the target of the audit mechanism to be either a
|
||
subject or an object. That is to say, the audit mechanism should
|
||
be capable of monitoring every time John accessed the system as
|
||
well as every time the nuclear reactor file was accessed; and
|
||
likewise every time John accessed the nuclear reactor file.
|
||
|
||
|
||
5.1 Purpose of the Audit Mechanism
|
||
|
||
The audit mechanism of a computer system has five important
|
||
security goals. First, the audit mechanism must "allow the
|
||
review of patterns of access to individual objects, access
|
||
histories of specific processes and individuals, and the use of
|
||
the various protection mechanisms supported by the system and
|
||
their effectiveness."(2) Second, the audit mechanism must allow
|
||
discovery of both users' and outsiders' repeated attempts to
|
||
bypass the protection mechanisms. Third, the audit mechanism
|
||
must allow discovery of any use of privileges that may occur when
|
||
a user assumes a functionality with privileges greater than his
|
||
or her own, i.e., programmer to administrator. In this case
|
||
there may be no bypass of security controls but nevertheless a
|
||
violation is made possible. Fourth, the audit mechanism must act
|
||
as a deterrent against perpetrators' habitual attempts to bypass
|
||
the system protection mechanisms. However, to act as a
|
||
deterrent, the perpetrator must be aware of the audit mechanism's
|
||
existence and its active use to detect any attempts to bypass
|
||
system protection mechanisms. The fifth goal of the audit
|
||
mechanism is to supply "an additional form of user assurance that
|
||
attempts to bypass the protection mechanisms are recorded and
|
||
discovered."(2) Even if the attempt to bypass the protection
|
||
mechanism is successful, the audit trail will still provide
|
||
assurance by its ability to aid in assessing the damage done by
|
||
the violation, thus improving the system's ability to control the
|
||
damage.
|
||
|
||
|
||
5.2. Users of the Audit Mechanism
|
||
|
||
"The users of the audit mechanism can be divided into two groups.
|
||
The first group consists of the auditor, who is an individual
|
||
with administrative duties, who selects the events to be audited
|
||
on the system, sets up the audit flags which enable the recording
|
||
|
||
4
|
||
|
||
|
||
|
||
of those events, and analyzes the trail of audit events."(2) In
|
||
some systems the duties of the auditor may be encompassed in the
|
||
duties of the system security administrator. Also, at the lower
|
||
classes, the auditor role may be performed by the system
|
||
administrator. This document will refer to the person
|
||
responsible for auditing as the system security administrator,
|
||
although it is understood that the auditing guidelines may apply
|
||
to system administrators and/or system security administrators
|
||
and/or a separate auditor in some ADP systems.
|
||
|
||
"The second group of users of the audit mechanism consists of the
|
||
system users themselves; this group includes the administrators,
|
||
the operators, the system programmers, and all other users. They
|
||
are considered users of the audit mechanism not only because
|
||
they, and their programs, generate audit events,"(2) but because
|
||
they must understand that the audit mechanism exists and what
|
||
impact it has on them. This is important because otherwise the
|
||
user deterrence and user assurance goals of the audit mechanism
|
||
cannot be achieved.
|
||
|
||
|
||
5.3 Aspects of Effective Auditing
|
||
|
||
|
||
5.3.1. Identification/Authentication
|
||
|
||
Logging in on a system normally requires that a user enter the
|
||
specified form of identification (e.g., login ID, magnetic strip)
|
||
and a password (or some other mechanism) for authentication.
|
||
Whether this information is valid or invalid, the execution of
|
||
the login procedure is an auditable event and the identification
|
||
entered may be considered to be auditable information. It is
|
||
recommended that authentication information, such as passwords,
|
||
not be forwarded to the audit trail. In the event that the
|
||
identification entered is not recognized as being valid, the
|
||
system should also omit this information from the audit trail.
|
||
The reason for this is that a user may have entered a password
|
||
when the system expected a login ID. If the information had been
|
||
written to the audit trail, it would compromise the password and
|
||
the security of the user.
|
||
|
||
There are, however, environments where the risk involved in
|
||
recording invalid identification information is reduced. In
|
||
systems that support formatted terminals, the likelihood of
|
||
password entry in the identification field is markedly reduced,
|
||
hence the recording of identification information would pose no
|
||
major threat. The benefit of recording the identification
|
||
information is that break-in attempts would be easier to detect
|
||
and identifying the perpetrator would also be assisted. The
|
||
|
||
5
|
||
|
||
|
||
|
||
information gathered here may be necessary for any legal
|
||
prosecution that may follow a security violation.
|
||
|
||
|
||
5.3.2 Administrative
|
||
|
||
All systems rated at class C2 or higher shall have audit
|
||
capabilities and personnel designated as responsible for the
|
||
audit procedures. For the C2 and B1 classes, the duties of the
|
||
system operators could encompass all functions including those of
|
||
the auditor. Starting at the B2 class, there is a requirement
|
||
for the TCB to support separate operator and administrator
|
||
functions. In addition, at the B3 class and above, there is a
|
||
requirement to identify the system security administrator
|
||
functions. When one assumes the system security administrator
|
||
role on the system, it shall be after taking distinct auditable
|
||
action, e.g., login procedure. When one with the privilege of
|
||
assuming the role is on the system, the act of assuming that role
|
||
shall also be an auditable event.
|
||
|
||
|
||
5.3.3 System Design
|
||
|
||
The system design should include a mechanism to invoke the audit
|
||
function at the request of the system security administrator. A
|
||
mechanism should also be included to determine if the event is to
|
||
be selected for inclusion as an audit trail entry. If
|
||
pre-selection of events is not implemented, then all auditable
|
||
events should be forwarded to the audit trail. The Criteria
|
||
requirement for the administrator to be able to select events
|
||
based on user identity and/or object security classification must
|
||
still be able to be satisfied. This requirement can be met by
|
||
allowing post-selection of events through the use of queries.
|
||
Whatever reduction tool is used to analyze the audit trail shall
|
||
be provided by the vendor.
|
||
|
||
|
||
5.4 Security of the Audit
|
||
|
||
Audit trail software, as well as the audit trail itself, should
|
||
be protected by the Trusted Computing Base and should be subject
|
||
to strict access controls. The security requirements of the
|
||
audit mechanism are the following:
|
||
|
||
(1) The event recording mechanism shall be part of the TCB and
|
||
shall be protected from unauthorized modification or
|
||
circumvention.
|
||
|
||
(2) The audit trail itself shall be protected by the TCB from
|
||
|
||
6
|
||
|
||
|
||
|
||
unauthorized access (i.e., only the audit personnel may
|
||
access the audit trail). The audit trail shall also be
|
||
protected from unauthorized modification.
|
||
|
||
(3) The audit-event enabling/disabling mechanism shall be part
|
||
of the TCB and shall remain inaccessible to the unauthorized
|
||
users.(2)
|
||
|
||
At a minimum, the data on the audit trail should be considered to
|
||
be sensitive, and the audit trail itself shall be considered to
|
||
be as sensitive as the most sensitive data contained in the
|
||
system.
|
||
|
||
When the medium containing the audit trail is physically removed
|
||
from the ADP system, the medium should be accorded the physical
|
||
protection required for the highest sensitivity level of data
|
||
contained in the system.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
7
|
||
|
||
|
||
|
||
6. MEETING THE CRITERIA REQUIREMENTS
|
||
|
||
This section of the guideline will discuss the audit requirements
|
||
in the Criteria and will present a number of additional
|
||
recommendations. There are four levels of audit requirements.
|
||
The first level is at the C2 Criteria class and the requirements
|
||
continue evolving through the B3 Criteria class. At each of
|
||
these levels, the guideline will list some of the events which
|
||
should be auditable, what information should be on the audit
|
||
trail, and on what basis events may be selected to be audited.
|
||
All of the requirements will be prefaced by the word "shall," and
|
||
any additional recommendations will be prefaced by the word
|
||
"should."
|
||
|
||
|
||
6.1 The C2 Audit Requirement
|
||
|
||
6.1.1 Auditable Events
|
||
|
||
The following events shall be subject to audit at the C2 class:
|
||
|
||
* Use of identification and authentication mechanisms
|
||
|
||
* Introduction of objects into a user's address space
|
||
|
||
* Deletion of objects from a user's address space
|
||
|
||
* Actions taken by computer operators and system
|
||
administrators and/or system security administrators
|
||
|
||
* All security-relevant events (as defined in Section 5 of
|
||
this guideline)
|
||
|
||
* Production of printed output
|
||
|
||
6.1.2 Auditable Information
|
||
|
||
The following information shall be recorded on the audit trail at
|
||
the C2 class:
|
||
|
||
* Date and time of the event
|
||
|
||
* The unique identifier on whose behalf the subject generating
|
||
the event was operating
|
||
|
||
* Type of event
|
||
|
||
* Success or failure of the event
|
||
|
||
|
||
8
|
||
|
||
|
||
|
||
* Origin of the request (e.g., terminal ID) for
|
||
identification/authentication events
|
||
|
||
* Name of object introduced, accessed, or deleted from a
|
||
user's address space
|
||
|
||
* Description of modifications made by the system
|
||
administrator to the user/system security databases
|
||
|
||
|
||
6.1.3 Audit Basis
|
||
|
||
At the C2 level, the ADP System Administrator shall be able to
|
||
audit based on individual identity.
|
||
|
||
The ADP System Administrator should also be able to audit based
|
||
on object identity.
|
||
|
||
|
||
6.2 The B1 Audit Requirement
|
||
|
||
6.2.1 Auditable Events
|
||
|
||
The Criteria specifically adds the following to the list of
|
||
events that shall be auditable at the B1 class:
|
||
|
||
* Any override of human readable output markings (including
|
||
overwrite of sensitivity label markings and the turning off
|
||
of labelling capabilities) on paged, hard-copy output
|
||
devices
|
||
|
||
* Change of designation (single-level to/from multi-level) of
|
||
any communication channel or I/O device
|
||
|
||
* Change of sensitivity level(s) associated with a
|
||
single-level communication channel or I/O device
|
||
|
||
* Change of range designation of any multi-level communication
|
||
channel or I/O device
|
||
|
||
|
||
6.2.2 Auditable Information
|
||
|
||
The Criteria specifically adds the following to the list of
|
||
information that shall be recorded on the audit trail at the B1
|
||
class:
|
||
|
||
* Security level of the object
|
||
|
||
|
||
9
|
||
|
||
|
||
|
||
The following information should also be recorded on the audit
|
||
trail at the B1 class:
|
||
|
||
* Subject sensitivity level
|
||
|
||
|
||
6.2.3 Audit Basis
|
||
|
||
In addition to previous selection criteria, at the B1 level the
|
||
Criteria specifically requires that the ADP System Administrator
|
||
shall be able to audit based on individual identity and/or object
|
||
security level.
|
||
|
||
|
||
6.3 The B2 Audit Requirement
|
||
|
||
6.3.1 Auditable Events
|
||
|
||
The Criteria specifically adds the following to the list of
|
||
events that shall be auditable at the B2 class:
|
||
|
||
* Events that may exercise covert storage channels
|
||
|
||
6.3.2 Auditable Information
|
||
|
||
No new requirements have been added at the B2 class.
|
||
|
||
|
||
6.3.3 Audit Basis
|
||
|
||
In addition to previous selection criteria, at the B2 level the
|
||
Criteria specifically requires that "the TCB shall be able to
|
||
audit the identified events that may be used in the exploitation
|
||
of covert storage channels." The Trusted Computing Base shall
|
||
audit covert storage channels that exceed ten bits per second.(1)
|
||
|
||
The Trusted Computing Base should also provide the capability to
|
||
audit the use of covert storage mechanisms with bandwidths that
|
||
may exceed a rate of one bit in ten seconds.
|
||
|
||
|
||
6.4 The B3 Audit Requirement
|
||
|
||
6.4.1 Auditable Events
|
||
|
||
The Criteria specifically adds the following to the list of
|
||
events that shall be auditable at the B3 class:
|
||
|
||
* Events that may indicate an imminent violation of the
|
||
|
||
10
|
||
|
||
|
||
|
||
system's security policy (e.g., exercise covert timing
|
||
channels)
|
||
|
||
|
||
6.4.2 Auditable Information
|
||
|
||
No new requirements have been added at the B3 class.
|
||
|
||
|
||
6.4.3 Audit Basis
|
||
|
||
In addition to previous selection criteria, at the B3 level the
|
||
Criteria specifically requires that "the TCB shall contain a
|
||
mechanism that is able to monitor the occurrence or accumulation
|
||
of security auditable events that may indicate an imminent
|
||
violation of security policy. This mechanism shall be able to
|
||
immediately notify the system 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."(1)
|
||
|
||
Events that would indicate an imminent security violation would
|
||
include events that utilize covert timing channels that may
|
||
exceed a rate of ten bits per second and any repeated
|
||
unsuccessful login attempts.
|
||
|
||
Being able to immediately notify the system security
|
||
administrator when thresholds are exceeded means that the
|
||
mechanism shall be able to recognize, report, and respond to a
|
||
violation of the security policy more rapidly than required at
|
||
lower levels of the Criteria, which usually only requires the
|
||
System Security Administrator to review an audit trail at some
|
||
time after the event. Notification of the violation "should be
|
||
at the same priority as any other TCB message to an operator."(5)
|
||
|
||
"If the occurrence or accumulation of these security-relevant
|
||
events continues, the system shall take the least disruptive
|
||
action to terminate the event."(1) These actions may include
|
||
locking the terminal of the user who is causing the event or
|
||
terminating the suspect's process(es). In general, the least
|
||
disruptive action is application dependent and there is no
|
||
requirement to demonstrate that the action is the least
|
||
disruptive of all possible actions. Any action which terminates
|
||
the event is acceptable, but halting the system should be the
|
||
last resort.
|
||
|
||
|
||
|
||
|
||
|
||
11
|
||
|
||
|
||
|
||
7.5 The A1 Audit Requirement
|
||
|
||
7.5.1 Auditable Events
|
||
|
||
No new requirements have been added at the A1 class.
|
||
|
||
|
||
7.5.2 Auditable Information
|
||
|
||
No new requirements have been added at the A1 class.
|
||
|
||
|
||
7.5.3 Audit Basis
|
||
|
||
No new requirements have been added at the A1 class.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
12
|
||
|
||
|
||
|
||
7. POSSIBLE IMPLEMENTATION METHODS
|
||
|
||
The techniques for implementing the audit requirements will vary
|
||
from system to system depending upon the characteristics of the
|
||
software, firmware, and hardware involved and any optional
|
||
features that are to be available. Technologically advanced
|
||
techniques that are available should be used to the best
|
||
advantage in the system design to provide the requisite security
|
||
as well as cost-effectiveness and performance.
|
||
|
||
|
||
7.1 Pre/Post Selection of Auditable Events
|
||
|
||
There is a requirement at classes C2 and above that all security-
|
||
relevant events be auditable. However, these events may or may
|
||
not always be recorded on the audit trail. Options that may be
|
||
exercised in selecting which events should be audited include a
|
||
pre-selection feature and a post-selection feature. A system may
|
||
choose to implement both options, a pre-selection option only, or
|
||
a post-selection option only.
|
||
|
||
If a system developer chooses not to implement a general pre/post
|
||
selection option, there is still a requirement to allow the
|
||
administrator to selectively audit the actions of specified users
|
||
for all Criteria classes. Starting at the B1 class, the
|
||
administrator shall also be able to audit based on object
|
||
security level.
|
||
|
||
There should be options to allow selection by either individuals
|
||
or groups of users. For example, the administrator may select
|
||
events related to a specified individual or select events related
|
||
to individuals included in a specified group. Also, the
|
||
administrator may specify that events related to the audit file
|
||
be selected or, at classes B1 and above, that accesses to objects
|
||
with a given sensitivity level, such as Top Secret, be selected.
|
||
|
||
|
||
7.1.1 Pre-Selection
|
||
|
||
For each auditable event the TCB should contain a mechanism to
|
||
indicate if the event is to be recorded on the audit trail. The
|
||
system security administrator or designee shall be the only
|
||
person authorized to select the events to be recorded.
|
||
Pre-selection may be by user(s) identity, and at the B1 class and
|
||
above, pre-selection may also be possible by object security
|
||
level. Although the system security administrator shall be
|
||
authorized to select which events are to be recorded, the system
|
||
security administrator should not be able to exclude himself from
|
||
being audited.
|
||
|
||
13
|
||
|
||
|
||
|
||
Although it would not be recommended, the system security
|
||
administrator may have the capability to select that no events be
|
||
recorded regardless of the Criteria requirements. The intention
|
||
here is to provide flexibility. The purpose of designing audit
|
||
features into a system is not to impose the Criteria on users
|
||
that may not want it, but merely to provide the capability to
|
||
implement the requirements.
|
||
|
||
A disadvantage of pre-selection is that it is very hard to
|
||
predict what events may be of security-relevant interest at a
|
||
future date. There is always the possibility that events not
|
||
pre-selected could one day become security-relevant, and the
|
||
potential loss from not auditing these events would be impossible
|
||
to determine.
|
||
|
||
The advantage of pre-selection could possibly be better
|
||
performance as a result of not auditing all the events on the
|
||
system.
|
||
|
||
|
||
7.1.2 Post-Selection
|
||
|
||
If the post-selection option to select only specified events from
|
||
an existing audit trail is implemented, again, only authorized
|
||
personnel shall be able to make this selection. Inclusion of
|
||
this option requires that the system should have trusted
|
||
facilities (as described in section 9.1) to accept
|
||
query/retrieval requests, to expand any compressed data, and to
|
||
output the requested data.
|
||
|
||
The main advantage of post-selection is that information that may
|
||
prove useful in the future is already recorded on an audit trail
|
||
and may be queried at any time.
|
||
|
||
The disadvantage involved in post-selection could possibly be
|
||
degraded performance due to the writing and storing of what could
|
||
possibly be a very large audit trail.
|
||
|
||
|
||
7.2 Data Compression
|
||
|
||
"Since a system that selects all events to be audited may
|
||
generate a large amount of data, it may be necessary to encode
|
||
the data to conserve space and minimize the processor time
|
||
required" to record the audit records.(3) If the audit trail is
|
||
encoded, a complementary mechanism must be included to decode the
|
||
data when required. The decoding of the audit trail may be done
|
||
as a preprocess before the audit records are accessed by the
|
||
database or as a postprocess after a relevant record has been
|
||
|
||
14
|
||
|
||
|
||
|
||
found. Such decoding is necessary to present the data in an
|
||
understandable form both at the administrators terminal and on
|
||
batch reports. The cost of compressing the audit trail would be
|
||
the time required for the compression and expansion processes.
|
||
The benefit of compressing data is the savings in storage and the
|
||
savings in time to write the records to the audit trail.
|
||
|
||
|
||
7.3 Multiple Audit Trails
|
||
|
||
All events included on the audit trail may be written as part of
|
||
the same audit trail, but some systems may prefer to have several
|
||
distinct audit trails, e.g., one would be for "user" events, one
|
||
for "operator" events, and one for "system security
|
||
administrator" events. This would result in several smaller
|
||
trails for subsequent analysis. In some cases, however, it may
|
||
be necessary to combine the information from the trails when
|
||
questionable events occur in order to obtain a composite of the
|
||
sequence of events as they occurred. In cases where there are
|
||
multiple audit trails, it is preferred that there be some
|
||
accurate, or at least synchronized, time stamps across the
|
||
multiple logs.
|
||
|
||
Although the preference for several distinct audit trails may be
|
||
present, it is important to note that it is often more useful
|
||
that the TCB be able to present all audit data as one
|
||
comprehensive audit trail.
|
||
|
||
|
||
7.4 Physical Storage
|
||
|
||
A factor to consider in the selection of the medium to be used
|
||
for the audit trail would be the expected usage of the system.
|
||
The I/O volume for a system with few users executing few
|
||
applications would be quite different from that of a large system
|
||
with a multitude of users performing a variety of applications.
|
||
In any case, however, the system should notify the system
|
||
operator or administrator when the audit trail medium is
|
||
approaching its storage capacity. Adequate advance notification
|
||
to the operator is especially necessary if human intervention is
|
||
required.
|
||
|
||
If the audit trail storage medium is saturated before it is
|
||
replaced, the operating system shall detect this and take some
|
||
appropriate action such as:
|
||
|
||
1. Notifying the operator that the medium is "full" and action
|
||
is necessary. The system should then stop and require
|
||
rebooting. Although a valid option, this action creates a
|
||
|
||
15
|
||
|
||
|
||
|
||
severe threat of denial-of-service attacks.
|
||
|
||
2. Storing the current audit records on a temporary medium with
|
||
the intention of later migration to the normal operational
|
||
medium, thus allowing auditing to continue. This temporary
|
||
storage medium should be afforded the same protection as the
|
||
regular audit storage medium in order to prevent any attempts
|
||
to tamper with it.
|
||
|
||
3. Delaying input of new actions and/or slowing down current
|
||
operations to prevent any action that requires use of the
|
||
audit mechanism.
|
||
|
||
4. Stopping until the administrative personnel make more space
|
||
available for writing audit records.
|
||
|
||
5. Stopping auditing entirely as a result of a decision by the
|
||
system security administrator.
|
||
|
||
|
||
Any action that is taken in response to storage overflow shall be
|
||
audited. There is, however, a case in which the action taken may
|
||
not be audited that deserves mention. It is possible to have the
|
||
system security administrator's decisions embedded in the system
|
||
logic. Such pre-programmed choices, embedded in the system
|
||
logic, may be triggered automatically and this action may not be
|
||
audited.
|
||
|
||
Still another consideration is the speed at which the medium
|
||
operates. It should be able to accommodate the "worst case"
|
||
condition such as when there are a large number of users on the
|
||
system and all auditable events are to be recorded. This worst
|
||
case rate should be estimated during the system design phase and
|
||
(when possible) suitable hardware should be selected for this
|
||
purpose.
|
||
|
||
Regardless of how the system handles audit trail overflow, there
|
||
must be a way to archive all of the audit data.
|
||
|
||
|
||
7.5 Write-Once Device
|
||
|
||
For the lower Criteria classes (e.g., C2, B1) the audit trail may
|
||
be the major tool used in detecting security compromises.
|
||
Implicit in this is that the audit resources should provide the
|
||
maximum protection possible. One technique that may be employed
|
||
to protect the audit trail is to record it on a mechanism
|
||
designed to be a write-only device. Other choices would be to
|
||
set the designated device to write-once mode by disabling the
|
||
|
||
16
|
||
|
||
|
||
|
||
read mechanism. This method could prevent an attacker from
|
||
erasing or modifying the data already written on the audit trail
|
||
because the attacker will not be able to go back and read or find
|
||
the data that he or she wishes to modify.
|
||
|
||
If a hardware device is available that permits only the writing
|
||
of data on a medium, modification of data already recorded would
|
||
be quite difficult. Spurious messages could be written, but to
|
||
locate and modify an already recorded message would be difficult.
|
||
Use of a write-once device does not prevent a penetrator from
|
||
modifying audit resources in memory, including any buffers, in
|
||
the current audit trail.
|
||
|
||
If a write-once device is used to record the audit trail, the
|
||
medium can later be switched to a compatible read device to allow
|
||
authorized personnel to analyze the information on the audit
|
||
trail in order to detect any attempts to penetrate the system.
|
||
If a penetrator modified the audit software to prevent writing
|
||
records on the audit trail, the absence of data during an
|
||
extended period of time would indicate a possible security
|
||
compromise. The disadvantage of using a write-once device is
|
||
that it necessitates a delay before the audit trail is available
|
||
for analysis by the administrator. This may be offset by
|
||
allowing the system security administrator to review the audit
|
||
trail in real-time by getting copies of all audit records on
|
||
their way to the device.
|
||
|
||
|
||
7.6 Forwarding Audit Data
|
||
|
||
If the facilities are available, another method of protecting the
|
||
audit trail would be to forward it to a dedicated processor. The
|
||
audit trail should then be more readily available for analysis by
|
||
the system security administrator.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
17
|
||
|
||
|
||
|
||
8. OTHER TOPICS
|
||
|
||
|
||
8.1 Audit Data Reduction
|
||
|
||
Depending upon the amount of activity on a system and the audit
|
||
selection process used, the audit trail size may vary. It is a
|
||
safe assumption though, that the audit trail would grow to sizes
|
||
that would necessitate some form of audit data reduction. The
|
||
data reduction tool would most likely be a batch program that
|
||
would interface to the system security administrator. This batch
|
||
run could be a combination of database query language and a
|
||
report generator with the input being a standardized audit file.
|
||
|
||
Although they are not necessarily part of the TCB, the audit
|
||
reduction tools should be maintained under the same configuration
|
||
control system as the remainder of the system.
|
||
|
||
|
||
8.2 Availability of Audit Data
|
||
|
||
In standard data processing, audit information is recorded as it
|
||
occurs. Although most information is not required to be
|
||
immediately available for real-time analysis, the system security
|
||
administrator should have the capability to retreive audit
|
||
information within minutes of its recording. The delay between
|
||
recording audit information and making it available for analysis
|
||
should be minimal, in the range of several minutes.
|
||
|
||
For events which do require immediate attention, at the B3 class
|
||
and above, an alert shall be sent out to the system security
|
||
administrator. In systems that store the audit trail in a
|
||
buffer, the system security administrator should have the
|
||
capability to cause the buffer to be written out. Regarding
|
||
real-time alarms, where they are sent is system dependent.
|
||
|
||
|
||
8.3 Audit Data Retention
|
||
|
||
The exact period of time required for retaining the audit trail
|
||
is site dependent and should be documented in the site's
|
||
operating procedures manual. When trying to arrive at the
|
||
optimum time for audit trail retention, any time restrictions on
|
||
the storage medium should be considered. The storage medium used
|
||
must be able to reliably retain the audit data for the amount of
|
||
time required by the site.
|
||
|
||
The audit trail should be reviewed at least once a week. It is
|
||
very possible that once a week may be too long to wait to review
|
||
|
||
18
|
||
|
||
|
||
|
||
the audit trail. Depending on the amount of audit data expected
|
||
by the system, this parameter should be adjusted accordingly.
|
||
The recommended time in between audit trail reviews should be
|
||
documented in the Trusted Facility Manual.
|
||
|
||
|
||
8.4 Testing
|
||
|
||
The audit resources, along with all other resources protected by
|
||
the TCB, have increasing assurance requirements at each higher
|
||
Criteria class. For the lower classes, an audit trail would be a
|
||
major factor in detecting penetration attempts. Unfortunately,
|
||
at these lower classes, the audit resources are more susceptible
|
||
to penetration and corruption. "The TCB must provide some
|
||
assurance that the data will still be there when the
|
||
administrator tries to use it."(3) The testing requirement
|
||
recognizes the vulnerability of the audit trail, and starting
|
||
with the C2 class, shall include a search for obvious flaws that
|
||
would corrupt or destroy the audit trail. If the audit trail is
|
||
corrupted or destroyed, the existence of such flaws indicates
|
||
that the system can be penetrated. Testing should also be
|
||
performed to uncover any ways of circumventing the audit
|
||
mechanisms. The "flaws found in testing may be neutralized in
|
||
any of a number of ways. One way available to the system
|
||
designer is to audit all uses of the mechanism in which the flaw
|
||
is found and to log such events."(3) An attempt should be made
|
||
to remove the flaw.
|
||
|
||
At class B2 and above, it is required that all detected flaws
|
||
shall be corrected or else a lower rating will be given. If
|
||
during testing the audit trail appears valid, analysis of this
|
||
data can verify that it does or does not accurately reflect the
|
||
events that should be included on the audit trail. Even though
|
||
system assurances may increase at the higher classes, the audit
|
||
trail is still an effective tool during the testing phase as well
|
||
as operationally in detecting actual or potential security
|
||
compromises.
|
||
|
||
|
||
8.5 Documentation
|
||
|
||
Starting at the C2 class, documentation concerning the audit
|
||
requirements shall be contained in the Trusted Facility Manual.
|
||
The Trusted Facility Manual shall explain the procedures to
|
||
record, examine, and maintain audit files. It shall detail the
|
||
audit record structure for each type of audit event, and should
|
||
include what each field is and what the size of the field is.
|
||
|
||
The Trusted Facility Manual shall also include a complete
|
||
|
||
19
|
||
|
||
|
||
|
||
description of the audit mechanism interface, how it should be
|
||
used, its default settings, cautions about the trade-offs
|
||
involved in using various configurations and capabilities, and
|
||
how to set up and run the system such that the audit data is
|
||
afforded appropriate protection.
|
||
|
||
If audit events can be pre- or post-selected, the manual should
|
||
also describe the tools and mechanisms available and how they are
|
||
to be used.
|
||
|
||
|
||
8.6 Unavoidable Security Risks
|
||
|
||
There are certain risks contained in the audit process that exist
|
||
simply because there is no way to prevent these events from ever
|
||
occurring. Because there are certain unpredictable factors
|
||
involved in auditing, i.e., man, nature, etc., the audit
|
||
mechanism may never be one hundred per cent reliable. Preventive
|
||
measures may be taken to minimize the likelihood of any of these
|
||
factors adversely affecting the security provided by the audit
|
||
mechanism, but no audit mechanism will ever be risk free.
|
||
|
||
|
||
8.6.1 Auditing Administrators/Insider Threat
|
||
|
||
Even with auditing mechanisms in place to detect and deter
|
||
security violations, the threat of the perpetrator actually being
|
||
the system security administrator or someone involved with the
|
||
system security design will always be present. It is quite
|
||
possible that the system security administrator of a secure
|
||
system could stop the auditing of activities while entering the
|
||
system and corrupting files for personal benefit. These
|
||
authorized personnel, who may also have access to identification
|
||
and authentication information, could also choose to enter the
|
||
system disguised as another user in order to commit crimes under
|
||
a false identity.
|
||
|
||
Management should be aware of this risk and should be certain to
|
||
exercise discretion when selecting the system security
|
||
administrator. The person who is to be selected for a trusted
|
||
position, such as the system security administrator, should be
|
||
subject to a background check before being granted the privileges
|
||
that could one day be used against the employer.
|
||
|
||
The system security administrator could also be watched to ensure
|
||
that there are no unexplained variances in normal duties. Any
|
||
deviation from the norm of operations may indicate that a
|
||
violation of security has occurred or is about to occur.
|
||
|
||
|
||
20
|
||
|
||
|
||
|
||
An additional security measure to control this insider threat is
|
||
to ensure that the system administrator and the person
|
||
responsible for the audit are two different people. "The
|
||
separation of the auditor's functions, databases, and access
|
||
privileges from those of the system administrator is an important
|
||
application of the separation of privilege and least privilege
|
||
principles. Should such a separation not be performed, and
|
||
should the administrator be allowed to undertake auditor
|
||
functions or vice-versa, the entire security function would
|
||
become the responsibility of a single, unaccountable
|
||
individual."(2)
|
||
|
||
Another alternative may be to employ separate auditor roles.
|
||
Such a situation may give one person the authority to turn off
|
||
the audit mechanism, while another person may have the authority
|
||
to turn it back on. In this case no individual would be able to
|
||
turn off the audit mechanism, compromise the system, and then
|
||
turn it back on.
|
||
|
||
|
||
8.6.2 Data Loss
|
||
|
||
Although the audit software and hardware are reliable security
|
||
mechanisms, they are not infallible. They, like the rest of the
|
||
system, are dependent upon constant supplies of power and are
|
||
readily subject to interruption due to mechanical or power
|
||
failures. Their failure can cause the loss or destruction of
|
||
valuable audit data. The system security administrator should be
|
||
aware of this risk and should establish some procedure that would
|
||
ensure that the audit trail is preserved somewhere. The system
|
||
security administrator should duplicate the audit trail on a
|
||
removable medium at certain points in time to minimize the data
|
||
loss in the event of a system failure. The Trusted Facility
|
||
Manual should include what the possibilities and nature of loss
|
||
exposure are, and how the data may be recovered in the event that
|
||
a catastrophe does occur.
|
||
|
||
If a mechanical or power failure occurs, the system security
|
||
administrator should ensure that audit mechanisms still function
|
||
properly after system recovery. For example, any auditing
|
||
mechanism options pre-selected before the system malfunction must
|
||
still be the ones in operation after the system recovery.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
21
|
||
|
||
|
||
|
||
9. AUDIT SUMMARY
|
||
|
||
|
||
For classes C2 and above, it is required that the TCB "be able to
|
||
create, maintain, and protect from modification or unauthorized
|
||
access or destruction an audit trail of accesses to the objects
|
||
it protects."(1) The audit trail plays a key role in performing
|
||
damage assessment in the case of a corrupted system.
|
||
|
||
The audit trail shall keep track of all security-relevant events
|
||
such as the use of identification and authentication mechanisms,
|
||
introduction of objects into a user's address space, deletion of
|
||
objects from the system, system administrator actions, and any
|
||
other events that attempt to violate the security policy of the
|
||
system. The option should exist that either all activities be
|
||
audited or that the system security administrator select the
|
||
events to be audited. If it is decided that all activities
|
||
should be audited, there are overhead factors to be considered.
|
||
The storage space needed for a total audit would generally
|
||
require more operator maintenance to prevent any loss of data and
|
||
to provide adequate protection. A requirement exists that
|
||
authorized personnel shall be able to read all events recorded on
|
||
the audit trail. Analysis of the total audit trail would be both
|
||
a difficult and time-consuming task for the administrator. Thus,
|
||
a selection option is required which may be either a
|
||
pre-selection or post-selection option.
|
||
|
||
The audit trail information should be sufficient to reconstruct a
|
||
complete sequence of security-relevant events and processes for a
|
||
system. To do this, the audit trail shall contain the following
|
||
information: date and time of the event, user, type of event,
|
||
success or failure of the event, the origin of the request, the
|
||
name of the object introduced into the user's address space,
|
||
accessed, or deleted from the storage system, and at the B1 class
|
||
and above, the sensitivity determination of the object.
|
||
|
||
It should be remembered that the audit trail shall be included in
|
||
the Trusted Computing Base and shall be accorded the same
|
||
protection as the TCB. The audit trail shall be subject to
|
||
strict access controls.
|
||
|
||
An effective audit trail is necessary in order to detect and
|
||
evaluate hostile attacks on a system.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
22
|
||
|
||
|
||
|
||
GLOSSARY
|
||
|
||
Administrator - Any one of a group of personnel assigned to
|
||
supervise all or a portion of an ADP system.
|
||
|
||
Archive - To file or store records off-line.
|
||
|
||
Audit - To conduct the independent review and examination of
|
||
system records and activities.
|
||
|
||
Auditor - An authorized individual with administrative duties,
|
||
whose duties include selecting the events to be audited on the
|
||
system, setting up the audit flags which enable the recording of
|
||
those events, and analyzing the trail of audit events.(2)
|
||
|
||
Audit Mechanism - The device used to collect, review, and/or
|
||
examine system activities.
|
||
|
||
Audit Trail - A set of records that collectively provide
|
||
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.(1)
|
||
|
||
Auditable Event - Any event that can be selected for inclusion in
|
||
the audit trail. These events should include, in addition to
|
||
security-relevant events, events taken to recover the system
|
||
after failure and any events that might prove to be
|
||
security-relevant at a later time.
|
||
|
||
Authenticated User - A user who has accessed an ADP system with a
|
||
valid identifier and authentication combination.
|
||
|
||
Automatic Data Processing (ADP) System - An assembly of computer
|
||
hardware, firmware, and software configured for the purpose of
|
||
classifying, sorting, calculating, computing, summarizing,
|
||
transmitting and receiving, storing, and retrieving data with a
|
||
minimum of human intervention.(1)
|
||
|
||
Category - A grouping of classified or unclassified sensitive
|
||
information, to which an additional restrictive label is applied
|
||
(e.g., proprietary, compartmented information) to signify that
|
||
personnel are granted access to the information only if they have
|
||
formal approval or other appropriate authorization.(4)
|
||
|
||
Covert Channel - A communication channel that allows a process to
|
||
transfer information in a manner that violates the system's
|
||
security policy.(1)
|
||
|
||
|
||
23
|
||
|
||
|
||
|
||
Covert Storage Channel - A covert channel that involves the
|
||
direct or indirect writing of a storage location by one process
|
||
and the direct or indirect reading of the storage location by
|
||
another process. Covert storage channels typically involve a
|
||
finite resource (e.g., sectors on a disk) that is shared by two
|
||
subjects at different security levels.(1)
|
||
|
||
Covert Timing Channel - A covert channel in which one process
|
||
signals information to another by modulating its own use of
|
||
system resources (e.g., CPU time) in such a way that this
|
||
manipulation affects the real response time observed by the
|
||
second process.(1)
|
||
|
||
Flaw - An error of commission, omission or oversight in a system
|
||
that allows protection mechanisms to be bypassed.(1)
|
||
|
||
Object - A passive entity that contains or receives information.
|
||
Access to an object potentially implies access to the information
|
||
it contains. Examples of objects are: records, blocks, pages,
|
||
segments, files, directories, directory trees and programs, as
|
||
well as bits, bytes, words, fields, processors, video displays,
|
||
keyboards, clocks, printers, network nodes, etc.(1)
|
||
|
||
Post-Selection - Selection, by authorized personnel, of specified
|
||
events that had been recorded on the audit trail.
|
||
|
||
Pre-Selection - Selection, by authorized personnel, of the
|
||
auditable events that are to be recorded on the audit trail.
|
||
|
||
Security Level - The combination of a hierarchical classification
|
||
and a set of non-hierarchical categories that represents the
|
||
sensitivity of information.(1)
|
||
|
||
Security Policy - The set of laws, rules, and practices that
|
||
regulate how an organization manages, protects, and distributes
|
||
sensitive information.(1)
|
||
|
||
Security-Relevant Event - Any event that attempts to change the
|
||
security state of the system, (e.g., change discretionary access
|
||
controls, change the security level of the subject, change user
|
||
password, etc.). Also, any event that attempts to violate the
|
||
security policy of the system, (e.g., too many attempts to login,
|
||
attempts to violate the mandatory access control limits of a
|
||
device, attempts to downgrade a file, etc.).(1)
|
||
|
||
Sensitive Information - Information that, as determined by a
|
||
competent authority, must be protected because its unauthorized
|
||
disclosure, alteration, loss, or destruction will at least cause
|
||
perceivable damage to someone or something.(1)
|
||
|
||
24
|
||
|
||
|
||
|
||
Subject - An active entity, generally in the form of a person,
|
||
process, or device that causes information to flow among objects
|
||
or changes the system state. Technically, a process/domain
|
||
pair.(1)
|
||
|
||
Subject Sensitivity Level - The sensitivity level of the objects
|
||
to which the subject has both read and write access. A subject's
|
||
sensitivity level must always be less than or equal to the
|
||
clearance of the user the subject is associated with.(4)
|
||
|
||
System Security Administrator - The person responsible for the
|
||
security of an Automated Information System and having the
|
||
authority to enforce the security safeguards on all others who
|
||
have access to the Automated Information System.(4)
|
||
|
||
Trusted Computing Base (TCB) - The totality of protection
|
||
mechanisms within a computer system -- including hardware,
|
||
firmware, and software -- the combination of which is responsible
|
||
for enforcing a security policy. A TCB consists of one or more
|
||
components that together enforce a unified security policy over a
|
||
product or system. The ability of a TCB to correctly enforce a
|
||
security policy depends solely on the mechanisms within the TCB
|
||
and on the correct input by system administrative personnel of
|
||
parameters (e.g., a user's clearance) related to the security
|
||
policy.(1)
|
||
|
||
User - Any person who interacts directly with a computer
|
||
system.(1)
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
25
|
||
|
||
|
||
|
||
REFERENCES
|
||
|
||
|
||
1. National Computer Security Center, DoD Trusted Computer
|
||
System Evaluation Criteria, DoD, DoD 5200.28-STD, 1985.
|
||
|
||
2. Gligor, Virgil D., "Guidelines for Trusted Facility
|
||
Management and Audit," University of Maryland, 1985.
|
||
|
||
3. Brown, Leonard R., "Guidelines for Audit Log Mechanisms in
|
||
Secure Computer Systems," Technical Report
|
||
TR-0086A(2770-29)-1, The Aerospace Corporation, 1986.
|
||
|
||
4. Subcommittee on Automated Information System Security,
|
||
Working Group #3, "Dictionary of Computer Security
|
||
Terminology," 23 November 1986.
|
||
|
||
5. National Computer Security Center, Criterion
|
||
Interpretation, Report No. C1-C1-02-87, 1987.
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
26 |