NCSC TG 005
NCSC TG 005
NCSC TG 005
SECURITY CENTER
A GUIDE TO
UNDERSTANDING
CONFIGURATION MANAGEMENT
IN TRUSTED SYSTEMS
NCSC-TG-006-88
Library No. S-228,590
Page 1
FOREWORD
____________________________
Patrick R. Gallagher, Jr. 28 March 1988
Director
National Computer Security Center
Page 2
ACKNOWLEDGEMENTS
this document.
Page 3
CONTENTS
FOREWORD .................................................... i
ACKNOWLEDGEMENTS ............................................ ii
PREFACE ..................................................... v
1. PURPOSE ................................................. 1
2. SCOPE ................................................... 1
4. ORGANIZATION ............................................ 3
Page 4
12. CONFIGURATION MANAGEMENT SUMMARY ....................... 27
GLOSSARY .................................................... 32
REFERENCES .................................................. 34
Page 5
PREFACE
Page 6
1. PURPOSE
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.
2. SCOPE
Page 7
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
3. CONTROL OBJECTIVES
4. ORGANIZATION
Page 8
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.
Page 9
6. MEETING THE CRITERIA REQUIREMENTS
Page 10
6.2 The B3 Configuration Management Requirements
Page 11
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
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]
Page 12
(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
Page 13
the item belongs to, the version of software that it is, or its
Page 14
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
against changes being made to the master copy that are different
than the approved changes.
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
Page 15
a change from its inception, through implementation and testing,
to release. The level of control exercised over the TCB may
Page 16
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).
Page 17
* the item/product performs per the requirements
Page 18
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
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.
implemented.
9. IMPLEMENTATION METHODS
Page 19
management that may be used to meet some of the requirements of
the TCSEC. Section 9.1 discusses the baseline concept as a
Page 20
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
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
Page 21
9.2 Configuration Management at MER, Inc.
Page 22
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.
the change had been performed it was tested and documented, and
Page 23
and has been found to satisfy the TCSEC requirements for
configuration management at class B2.
* Program Management
* System Engineering
* Quality Assurance
* Technical Support
* System Installation
* Technical Documentation
* Program Development
* Security Engineering
* User Groups
changes are implemented into the system. The CCB carries out
this function by considering all proposals for modifications and
Page 24
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.
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.
Page 25
but not every vendor may have the desire or resources to
Page 26
accountability for the TCB versions distributed to the customer.
management.
Page 27
the system staff, errors may occur and shortcuts may be sought
procedures, that the changes made have not adversely affected the
implementation of the security mechanisms and assurances of the
system.
Page 28
Fort George G. Meade, MD 20755©6000
Page 29
will be reduced greatly and any necessary changes that are
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.
Page 30
APPENDIX A: AUTOMATED TOOLS
"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
specified that "specify parameters that may affect the file, and
Page 31
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
Page 32
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.
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
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]
Page 33
GLOSSARY
of the two.[1]
Page 34
manner that they cannot be electrically altered during normal
device operations.[3]
Page 35
REFERENCES
Page 36
Page 37