NCSC*TG*019

                                                                       Lib
rary No. S*232,458

FOREWORD


The Trusted Product Evaluation Questionnaire is the latest in a series of
technical documents that are being published by the National Computer
Security Center under the Technical Guidelines Programs.  It is the goal
of the Technical Guidelines Program to assure that each process in the
Trusted Product Evaluation Program and the features of the Department of
Defense Trusted Computer Systems Evaluation Criteria will be discussed in
detail and provide the proper interpretations with specific guidance.
These publications are designed to provide insight to the Department of
Defense Trusted Computer Systems Evaluation Criteria requirements for the
computer security vendor and developer, as well as the technical
evaluator.

The specific questions in the Trusted Product Evaluation Questionnaire
provide a set of good practices related to necessary system security and
system security documentation.  This questionnaire has been written to
help the vendor understand what technical information is required
concerning the system for a product evaluation.  From the vendor's
responses, the evaluator may obtain an understanding of the security of
the system applying for evaluation.

As the Director, National Computer Security Center, I invite your
recommendations for revision to this technical guideline.  We plan to
review this document when the need arises.


________________
Patrick R. Gallagher,
Jr.
                       16 October 1989
Director
National Computer Security Center

ACKNOWLEDGMENTS

The National Computer Security Center extends special recognition to
Santosh Chokhani, Ph.D. and Harriet Goldman as the primary authors of this
document, and to MAJ James P. Gordon (US Army) and LT Patricia R. Toth (US
Navy) for the development and publication of this guideline.

We wish to thank the many members of the computer security community, who
enthusiastically gave of their time and technical expertise in reviewing
this questionnaire and providing valuable comments and suggestions.

CONTENTS

FOREWORD        i

ACKNOWLEDGMENTS ii

INTRODUCTION    1

       1. PURPOSE      1

       2. SCOPE        2

QUESTIONNAIRE   4

       1. SUBJECTS     4

       2. OBJECTS      6

       3. HARDWARE ARCHITECTURE        8

       4. SOFTWARE     10

       5. IDENTIFICATION & AUTHENTICATION (I&A)        14

       6. OBJECT REUSE 16

       7. DISCRETIONARY ACCESS CONTROL (DAC) POLICY    17

       8. LABELS       20

       9. MANDATORY ACCESS CONTROL (MAC)       25

       10. INTEGRITY   26

       11. AUDIT       28

       12. MODELING AND ANALYSIS       32

       13. TESTING     34

       14. OTHER ASSURANCES    37

       15. OTHER DOCUMENTATION 40

GLOSSARY        43

REFERENCES      54
INTRODUCTION

The principal goal of the National Computer Security Center (NCSC) is to
encourage the widespread availability of trusted computer systems.  In
support of this goal a metric was created, the Department of Defense
Trusted Computer System Evaluation Criteria (TCSEC), against which
computer systems could be evaluated.  The TCSEC 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 Information Systems (AISs),"
has been written to require, among other things, the Department of Defense
Trusted Computer System Evaluation Criteria to be used throughout the DoD.
The 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, B, and A there are
subdivisions known as classes, which are also ordered in a hierarchical
manner to represent different levels of security in these classes.

The NCSC has established an aggressive program to study and implement
computer security technology and to encourage the widespread availability
of trusted computer products for use by any organization desiring better
protection of their important data.  The Trusted Product Evaluation
Program and the open and cooperative business relationship being forged
with the computer and telecommunications industries will result in the
fulfillment of our country's computer security requirement.  We are
resolved to meet the challenge of identifying trusted computer products
suitable for use in processing all types and classifications of
information.


 1. PURPOSE

The NCSC is responsible for evaluating commercial products through an
independent evaluation based on TCSEC requirements by a qualified team of
experts and maintaining a list of those products on the Evaluated Products
List (EPL).  To accomplish this mission, the NCSC Trusted Product
Evaluation Program has been established to assist vendors in developing,
testing, and evaluating trusted products for the EPL.

During the evaluation process, the TCSEC for classes C1 through A1
requires a determination that the security features of a system are
implemented as designed and that they are adequate for the specified level
of trust.  In addition, the TCSEC also requires documentation to support a
system's security.  During the various phases of the evaluation process,
the vendor supplies to an evaluation team certain information on system
security and documentation.  The purpose of the Trusted Product Evaluation
Questionnaire (product questionnaire) is to assist system developers and
vendors as a data gathering tool for *formalizing the data gathering
process for the various phases of the Trusted Products Evaluation process.


Examples in this document are not to be construed as the only
implementations that may answer the questionnaire.  The examples are
suggestions of appropriate implementations.  The recommendations in this
document are also not to be construed as supplementary requirements to the
questionnaire.


 2. SCOPE

The questionnaire will address the TCSEC Criteria Classes C1 thru A1.  In
an effort to gather a better understanding of the system security, some
questions in the questionnaire address information in addition to that
required in the Department of Defense Trusted Computer Systems Evaluation
Criteria.  This document is organized by Criteria class subject area.  The
information provided in the questionnaire by the vendor is to assist the
evaluator in obtaining an initial understanding of the system applying for
evaluation and its security features of the respective Criteria class.
The product questionnaire is not a statement of requirements, just an
information gathering tool.  This questionnaire should give the vendor an
idea of the information required by the evaluator during the evaluation
process and prepare the vendor for additional information necessary by the
evaluation team later on in the evaluation process.

The questionnaire will be initially sent out to the vendor prior to the
Preliminary Technical Review (PTR).  The vendor can point to appropriate
documents for the answers.  The vendor need not answer the questions that
are not pertinent.  Some of the questions may be applicable at the later
stages of the evaluation process and thus may be deferred until the
appropriate time.  The vendor will send a completed questionnaire to NCSC
prior to the PTR.  The PTR team will evaluate the vendor contribution and
determine which information needs further elaboration.  The PTR team will
use the questionnaire during the PTR to seek additional information used
later on in the evaluation process.  When an evaluation team has reached
the Design Analysis and IPAR preparation phase, it will use the
questionnaire to seek specific references in vendor documentation for
further details on the answers to these questions.

The document is to provide the evaluator an understanding of the various
hardware and software configurations, architecture and design, testing,
and documentation, system security features and their applicability to
security and accountability policy, Trusted Computing Base (TCB) isolation
and noncircumventability, and covert channel analysis methods.  Also this
questionnaire may request information on penetration testing and
specification-to-code correspondence.

This questionnaire is designed for the operating systems only.  This
questionnaire does not address networks, subsystems nor data base
management.

For definition and clarification of the terms used in this document,
please see the Glossary section of the Department of Defense Trusted
Computer System Evaluation Criteria (DOD 5200.28*STD) and Glossary of
Computer Security Terms (NCSC*TG*004).

Review of this document will occur periodically or when the need arises.
Address all proposals for revision through appropriate channels to:

                                                                       Nat
ional Computer Security Center
                                                                       980
0 Savage Road
                                                                       For
t George G. Meade, MD 20755-6000

                                                                       Att
ention: Chief, Criteria and Technical Guidelines Division


QUESTIONNAIRE

 1. SUBJECTS

A subject is an active entity in the system, generally in the form of a
person, process, or device that causes information to flow among objects
or changes the system state.  A subject can be viewed as a process/domain
pair whose access controls are checked prior to granting the access to
objects.

       1.      What are the subjects in your system?



       2.      When and how are the subjects created?  (For example, they
can be created or activated when a user logs on or when a process is
spawned.)



       3.      When and how are the subjects destroyed?  (For example,
they can be destroyed or deactivated when a process terminates or when the
user logs off.)



       4.      What are the security attributes of a subject?  (Examples
of security attributes are user name, group id, sensitivity level, etc.)
For each type of subject in your system (i.e. user, process, device), what
mechanisms are available to define and modify these attributes?  Who can
invoke these mechanisms?



       5.      What are other privileges a subject can have?  (Examples
of privileges are: super user, system operator, system administrator, etc.
Your operating system may assign numerous other privileges to the
subjects, such as the ability to use certain devices.)  For each type of
subject in your system, what mechanisms are available to define and modify
these privileges?  Who can invoke these mechanisms?  Provide a list of
subjects within the TCB boundary and the list of privileges for each of
them.



       6.      When a subject is created, where do its security
attributes and privileges originate, i.e., how are the security attributes
and privileges inherited?  (Questions about security attributes and
privileges will be asked later.  For example, a subject may inherit a
subset of attributes and privileges of the invoking process or the user.)



 2. OBJECTS

Examples of objects in a system are directories, files, segments,
processes, devices, etc.

       7.      List the objects in your system that are protected by the
Discretionary Access Control (DAC) mechanisms.



       8.      List the objects in your system that are protected by the
Mandatory Access Control (MAC) mechanisms.



       9.      List the objects that are not protected by either the DAC
or the MAC mechanism.  Why are they not protected by the DAC or the MAC?
Describe other mechanisms used to isolate and protect these objects.



       10.     List other shared resources which are not protected by the
DAC or the MAC mechanism.  (Examples include print queues, interprocess
communications, etc.)  Why are they not protected by the DAC or the MAC?
Describe the mechanisms that are used to isolate and protect these
resources.



       11.     How are the various types of objects created (e.g.,
directories, files, devices)?



       12.     How are the various types of objects destroyed?



13.             Provide a list of objects within the TCB (e.g.,
authentication database, print queues).



 3. HARDWARE ARCHITECTURE

If this evaluation is for a family of hardware, the following questions
(14-24) should be answered for each member of the hardware family.  You
may choose to answer each question for each member of the family, or
answer each question for a baseline family member and point out the
difference for each of the remaining family members.

14.             Provide a high-level block diagram of the system.  The
diagram should depict various Central Processor Units (CPUs), memory
controllers, memory, I/O processors, I/O controllers, I/O devices (e.g.
printers, displays, disks, tapes, communications lines) and relationships
(both control flow and data flow) among them.



15.             Provide a high-level block diagram of a CPU. The diagram
should explain the relationship among the following elements: Instruction
Processor, Microsequencer, Microengine, Memory, Cache, Memory Mapping or
Address Translation Unit, I/O devices and interfaces.



16.             Provide a list of privileged instructions for your
hardware.  Provide a brief description of each privileged instruction.



17.             For each privileged instruction, provide the privileges
required to execute the instruction.  (Examples of privileges include the
machine state, the executing ring/segment, physical memory location of the
instruction, etc.)



18.             How does the process address translation (logical/virtual
to physical) work in your system?



19.             How does I/O processing address translation work for the
Direct Memory Access (DMA) controllers/devices?  Identify if the address
translation is done through the memory address translation unit or if the
logic is part of the controller.  How are the address translation maps
and/or tables initialized?



20.             Describe the hardware protection mechanisms provided by
the system.



21.             Describe the isolation mechanisms for the process memory.
Two possible techniques are rings and segments.


22.             Provide a description of the process address space.  When
and how is it formed?



23.             What are the machine/processor states supported by the
system?  How are the states changed?  What data structures are saved as
part of the processor state?



24.             List all the interrupts and traps (hardware and software).
How are they serviced by the system?



 4. SOFTWARE

The TCB software consists of the elements that are involved in enforcing
the system security policy.  Examples of the TCB elements include: kernel,
interrupt handlers, process manager, I/O handlers, I/O manager,
user/process interface, hardware diagnostics, hardware exercisers, and
command languages/interfaces (for system generation, operator,
administrator, users, etc.).  The security kernel consists of the
hardware, firmware and software elements of the TCB that are involved in
implementing the reference monitor concept, i.e., the ones that mediate
all access to objects by subjects.

25.             Provide a description and architecture of the Trusted
Computing Base (TCB) at the element level.



26.             Describe the interfaces (control and data flow) among the
TCB elements.



27.             Describe the interface between the kernel and the rest of
the TCB elements.



28.             Describe the interface between the TCB and user processes
that are outside the TCB.



29.             Describe the hardware ring/memory segment/physical
location where each TCB element resides.



30.             Describe the hardware ring/memory segment/physical
location where the user processes reside.



31.             List software mechanisms that are used to isolate and
protect the TCB and the user processes.  Provide a brief description of
each mechanism.



32.             List all the privileges a process can have.  Include the
privileges based on the process or user profile, process or user name, or
process or user identification.



33.             How is a process created?  How is a process destroyed?



34.             How are a process's privileges determined?



35.             Describe various elements of the process address space and
their location in terms of ring/segment/physical memory.



36.             Describe the process states.  (Examples of process states
are active, ready for execution, suspended, swapped out, etc.)



37.             Describe how these states are manipulated by the TCB.



38.             Describe the data structures for a process context.
Describe both hardware and software mechanisms used to manipulate/switch
the process context.



39.             Describe process scheduling.



40.             Describe all interprocess communications mechanisms.



41.             Describe the file management system.  This should include:
the directory hierarchy, if any, directory and file attributes.  Also
identify all system directories and files, and their access attributes.



42.             Describe how the devices and their queues are managed.
Examples of devices include tape drives, non-file-system disks, printers,
etc.



43.             How are the batch jobs and their queues managed?



44.             What software engineering tools and techniques were used
for the TCB design and implementation?


45.             How is a process sensitivity level determined?



46.             How was the modularity requirement achieved and
implemented?



47.             For each TCB element, identify protection-critical
portions of the code.  Describe the protection-critical functions
performed by the code.



48.             For each TCB element, identify non-protection-critical
portions of the code.  Explain why the code is part of the TCB.



49.             How was the data abstraction and information hiding
requirement achieved and implemented?



50.             Is the TCB layered?  If yes, how many layers are in the
TCB?  Provide a brief description of modules and functions in each layer.
How are the lower layers protected from higher layers?



 5. IDENTIFICATION & AUTHENTICATION (I&A)

51.             Does the system require the users to provide
identification at login?  If yes, what information is requested by the
system?



52.             Is there any additional device or physical security
required for user I&A (e.g., terminal ID, pass key, smart card, etc.)?



53.             Is each user uniquely identified?



54.             Does the system authenticate this identity at the time of
login?  If yes, what information is requested by the system?  How does the
system use this information to authenticate the identity?



55.             Describe the algorithms used in user authentication.
Where in the system are the algorithms and data for authentication (e.g.,
user/password data base) stored?



56.             How are the authentication algorithms and data protected?



57.             Does the I&A process associate privileges with the user?
If so, what and how?



58.             Does the I&A process associate a sensitivity level with
the user?  If so, how?



 6. OBJECT REUSE

59.             How are the storage resources cleared?  Examples include
writing predefined patterns, writing random patterns, preventing reading
before writing, etc.  When are the storage resources cleared: prior to
allocation or after deallocation and/or release?  Describe the TCB
hardware, software and procedures used in clearing these resources.
Please answer this question for each type of storage resource.  (Example
of storage resources include memory pages, cache, disk sectors, magnetic
tapes, removable disk media, terminals, etc.)



60.             Is it possible to read the data that have been deleted?
For example, what happens when a process attempts to read past the
end-of-file (EOF) mark?  In this case, is it possible to read old data by
going past the EOF?



 7. DISCRETIONARY ACCESS CONTROL (DAC) POLICY

61.             What mechanisms are used to provide discretionary access
controls?  (Examples of mechanisms are:   access control lists, protection
bits, capabilities, etc.)



62.             Can the access be granted to the users on an individual
user basis?  If so, how?



63.             Can access be denied to the users on an individual user
basis, i.e., exclude individual users?  If so, how?



64.             Can the access be granted to groups of individuals?  If
so, how?



65.             Can the access be denied to groups of individuals?  If so,
how?



66.             How is a group defined?  Who has the ability to create or
delete groups?  Who has the ability to add or delete users from a group?



67.             What are the initial access permissions when an object is
created?  Can the initial access permission be changed?  If so, by whom
and how?  (User/owner, system administrator, others.)



68.             Can different initial access permissions be specified for
different users, or is this is a system-wide setting?  If the former, by
whom and how?



69.             Who can grant the access permissions to an object after
the object is created?  (Examples include creator, current owner, system
administrator, etc.)  How is the permission granted?



70.             Can the ability to grant permissions be passed to another
user?  If so, by whom and how?  How can the previous owner of the
privilege still retain it?



71.             How can the access be revoked on an individual user basis?



72.             How can the access be revoked on a group basis?



73.             Are any objects that can be accessed by other users
excluded from the DAC policy (e.g., IPC files, process
signaling/synchronization flags)?



74.             For each TCB object identified in 13, describe the DAC
mechanism.



75.             List the access modes supported by the system.  Examples
of access modes are: read, write, delete, owner, execute, append, etc.
Briefly describe the meaning of each access mode for each class of object.



76.             For questions 62-72, how can the access modes be
explicitly defined?




 8. LABELS

77.             How many hierarchical sensitivity classifications (such as
unclassified, confidential, secret, top secret), does your system provide
for?  What mechanisms are available to define the internal/storage and
external/print format?  What mechanisms are available to change them?  Who
can invoke these mechanisms?



78.             How many nonhierarchical sensitivity categories (such as
FOUO) does your system provide for?  What mechanisms are available to
define the internal/storage and external/print format?  What mechanisms
are available to change them?  Who can invoke these mechanisms?



79.             What is the internal TCB storage format of the sensitivity
label?



80.             For each type of subject, where is the subject sensitivity
label stored?



81.             For each type of object, where is the object sensitivity
label stored?



82.             List the subjects and objects that are labeled and not
labeled.  Why are they labeled or not labeled?  How are these subjects and
objects controlled?



83.             How is imported (brought-in) data, labeled?  Is a human
being involved in the labeling?  If so, what is the role of the person
involved?  Does this labeling require special privileges?  What are those
privileges?



84.             Who can change the labels on a subject?  How?



85.             Who can change the labels on an object?  How?



86.             How are the labels associated with objects communicated
outside the TCB?



87.             How does the TCB acknowledge a change in the sensitivity
level associated with an interactive user?  Is the user notification
posted on the user terminal?  How immediate is this change?



88.             How does a user query the system TCB for his or her
current sensitivity label?  What part of the sensitivity label is output?
Where is this output posted?



89.             How does the system designate each device to be
single-level or multilevel?  List the ways this designation can be
changed.  List the users who can invoke these mechanisms/ways.



90.             How does the TCB designate the sensitivity level of a
single-level device?  List the ways this designation can be changed.  List
the users who can invoke these mechanisms.



91.             How does the TCB designate the minimum and maximum
sensitivity levels of a device?  List the ways these designations can be
changed.  List the users who can invoke these mechanisms.



92.             How does the TCB export the sensitivity label associated
with an object being exported over a multilevel device?  What is the
format for the exported label?  How does the TCB ensure that the
sensitivity label is properly associated with the object?



93.             What mechanisms are available to specify the
human-readable print label associated with a sensitivity label?  Who can
invoke these mechanisms?



94.             Is the beginning and end of each hardcopy output marked
with the human-readable print label representing the sensitivity level of
the output?  In other words, does each hardcopy output have banner pages?
What happens if a banner page output is longer and/or wider than a
physical page?



95.             Is the top and bottom of each hardcopy output page marked
with the human-readable print label representing the sensitivity level of
the output?  What happens if the print label is wider and/or longer than
the space available for the top and/or the bottom?



96.             How does the TCB mark the top and bottom page of
nontextual type of output such as graphics, maps, and images?



97.             How can these markings listed in questions 94-96 be
overridden?  Who can override the markings?



98.             How can an operator distinguish the TCB-generated banner
pages from user output?



99.             What is the sensitivity label for each TCB object listed
in question 13?



100.            Can a minimum sensitivity level be specified for each
physical device?  If so, how?



101.            Can a maximum sensitivity level be specified for each
physical device?  If so, how?



102.            List the circumstances under which the TCB allows input or
output of data that fall outside a device sensitivity range (i.e.,
minimum, maximum).



 9. MANDATORY ACCESS CONTROL (MAC)

103.            Describe the MAC policy for the possible access modes such
as read, write, append, delete.



104.            Does the system use sensitivity labels to enforce the MAC?
If not, what information is used to make the MAC decisions?



105.            List the subjects, objects, and circumstances under which
the MAC policy is not enforced.  Why?



106.            In what sequence does the system check for detecting
access mechanisms such as:  a. privileges that bypass DAC and MAC, b. DAC,
c. MAC, d. other access mechanisms in lieu of DAC and/or MAC?



107.            Does the TCB support system-low and system-high
sensitivity levels?  If yes, how can they be designated and changed?  Who
can invoke the functions to designate and change them?  How are these
levels used by the system in various labeling functions and MAC decisions?




 10. INTEGRITY

108.            How many hierarchical integrity categories does your
system provide for?  What mechanisms are available to define the
internal/storage and external/print format?  Who can invoke these
mechanisms?



109.            How many nonhierarchical integrity compartments does your
system provide for?  What mechanisms are available to define the
internal/storage and external/print format?  Who can invoke these
mechanisms?



110.            What is the internal TCB storage format of the integrity
label?



111.            For each type of subject, where is the subject integrity
label stored?



112.            For each type of object, where is the object integrity
label stored?



113.            List the subjects and objects that do not have integrity
labels.  Why are they not labeled?



114.            How are the data that are imported (brought in) labeled
with an integrity label?  Is a human being involved in the labeling?  If
so, who is it?  Does the user labeling require special privileges?  What
are those privileges?


115.            Who can change the integrity labels on a subject?  How?



116.            Who can change the integrity labels on an object?  How?



117.            Describe the integrity policy for various access modes
such as read and write.  Provide a brief description of the formal policy
model.



118.            Does the system use the integrity labels to enforce the
integrity policy?  If not, what information is used to enforce the
integrity policy?



119.            List the subjects, objects, and circumstances under which
the integrity policy is not enforced.  Why?




 11. AUDIT

120.            Provide a brief description (preferably in block diagram
form) of audit data flow in terms of how the data are created,
transmitted, stored, and viewed for analysis.  How are the audit logs
protected?



121.            How can the audit log be read?  Who can invoke these
mechanisms?



122.            How can the audit log be written or appended?  Who can
invoke these mechanisms?



123.            How can the audit log be deleted?  Who can invoke these
mechanisms?



124.            Provide a list of auditable events.  Are the following
events auditable:  attempted logins, logouts, creation of subjects,
deletion of subjects, assignment of privileges to subjects, change of
subject privileges, use of privileges by subjects, creation of objects,
deletion of objects, initial access to objects (in other words
introduction of the object into user address space or, e.g., file open),
accesses that exploit covert storage channels, change in the device
designation of single-level or multilevel, change in device level, change
in device minimum or maximum level, override of banner page or page top
and bottom markings, assumption of the role of security administrator.



125.            Which actions by the privileged users are auditable?
Which are not?  Examples of trusted users are system operator, account
administrator, system security officer/administrator, auditor, system
programmer, etc.



126.            What data are recorded for each audit event?  Are the
following data recorded for each event: date, time, user, user sensitivity
level, object, object sensitivity level, object DAC information (e.g.,
ACL), type of event, invoked or not invoked, why not invoked, success or
failure in execution, terminal identification, etc?



127.            Under what circumstances can the password become part of
the audit record?



128.            What mechanisms are available to designate and change the
activities being audited?  Who can invoke these mechanisms?



129.            What mechanisms are available for selective auditing
(i.e., selection of events, subjects, objects, etc., to be audited)?  What
parameters or combination of parameters can be specified for the selective
auditing?  Examples of parameters are: individual or group of subjects,
individual objects, subjects within a sensitivity range, objects within a
sensitivity range, event type, etc.  Who can invoke these mechanisms?



130.            When do changes to the audit parameters take effect (e.g.,
immediately for all processes, for new processes)?



131.            What tools are available to output raw or processed (i.e.,
analyzed and reduced) audit information?  Who can invoke these tools?
What do the tools do in terms of audit data reduction?  What are the
internal formats of audit records.  What are the formats of the
reports/outputs generated by these tools?



132.            Are the audit reduction tools part of the TCB?  If not, is
there a trusted mechanism to view/output the audit log?



133.            Does the system produce multiple audit logs?  If yes, what
tools, techiques and methodologies are available to correlate these logs?



134.            Who (e.g., operator, system administrator or other trusted
user) is notified when the audit log gets full?  What options are
available to handle the situation?



135.            What other action does the TCB take when the audit log
becomes full?  Examples of the TCB options are: halt the system, do not
perform auditable events, overwrite oldest audit log data, etc.  In the
worst case, how much audit data can be lost?  Describe the worst case
scenario.  When does it occur?


136.            What happens to the audit data in the memory buffers when
the system goes down?  Are the data recovered as part of the system
recovery?  In the worst case, how much data can be lost?  Describe the
worst case scenario.  When does it occur?



137.            How does the TCB designate and change the occurrence or
accumulation of events that require real-time notification?  Who can
invoke these mechanisms?  Who gets the real-time notification?  What
actions/options are available to the individual being notified?  What does
the TCB do about the event and the process that caused this alert?



 12. MODELING AND ANALYSIS

138.            Provide a copy of the Verification Plan, a brief
description of its contents, or an annotated outline.  Provide a schedule
for completion of the Verification Plan.



139.            What tools, techniques and methodologies are used to
represent the formal model of the system security policy?  What policies
are represented in the formal model.  Examples include: MAC, DAC,
privileges, other protection mechanisms, object reuse, etc.



140.            What tools, techniques and methodologies are used to
verify through formal means the model against its axioms?



141.            What tools, techniques and methodologies are used to
represent the Descriptive Top Level Specification (DTLS)?  What portions
of the TCB are represented by the DTLS?



142.            What tools, techniques and methodologies are used to
identify, analyze, calculate, and reduce the bandwidths of data flows in
violation of the system security policy?  How are the occurrences of these
flow violations audited?



143.            What tools, techniques and methodologies are used to show
that the DTLS is consistent with the formal security policy model?



144.            What tools, techniques and methodologies are used to
represent the Formal Top Level Specification (FTLS)?  What portions of the
TCB are represented by the FTLS?



145.            What tools, techniques and methodologies are used to
verify or show that the FTLS is consistent with the formal security policy
model?



146.            What tools, techniques and methodologies are used to
identify the implemented code modules that correspond to the FTLS?



147.            What tools, techniques and methodologies are used to show
that the code is correctly implemented vis- a-vis the FTLS?



 13. TESTING

148.            What routines are available to test the correct operation
of the system hardware and firmware?  What elements of the system hardware
are tested through these routines?  What elements of the system firmware
are tested through these routines?  What elements of the system hardware
and firmware are not tested through these routines?



149.            How are the system hardware and firmware tested?  Does the
testing include boundary and anomalous conditions?  Is the emphasis on
diagnosing and pinpointing faults or is it on ensuring the correct
operation of the system hardware and firmware?  The latter may require
more of the same testing or different kinds of testing.



150.            How are these routines invoked?  Who can invoke these
routines?  Do they run under the control of the operating system or do
they run in stand-alone mode?



151.            When can these routines be run?  When should these
routines be run?  If they run automatically, when do they run? Examples
include powerup, booting, rebooting, etc.



152.            Describe the software development testing methodology.  In
the methodol-ogy, include various testing steps such as unit, module,
integration, subsystem, system testing.  For each step, provide a
description of test coverage criteria and test cases development
methodology.


153.            Provide a copy of the security test plan, brief
description of its contents, or an annotated outline.  Does the test plan
include the following information:  system configuration for testing,
procedures to generate the TCB, procedures to bring up the system, testing
schedule, test procedures, test cases, expected test results?  Provide a
schedule for development of the security test plan.



154.            How thorough is the security testing?  Do the test cases
include nominal, boundary, and anomalous values for each input?  What
about the combinations of inputs?  Describe the test coverage criteria.



155.            How are the test cases developed?  Are they based on the
concept of func-tional testing, structural testing, or a combination of
the two?



156.            What tools and techniques (automated, manual, or a
combination of the two) will be used to do the functional and/or
structural analysis in order to develop a thorough set of test cases?
Indicate how you plan to use FTLS and DTLS in this analysis.  If you do
not plan to use them, how do you plan to show consistency among FTLS,
DTLS, and the code?



157.            How do you plan to develop the scenarios for penetration
testing?



158.            How do you plan to test the bandwidths of flow violation
channels?



159.            How do you plan to ascertain that only a few errors
remain?



 14. OTHER ASSURANCES

160.            Describe the Configuration Management (CM) system in place
in terms of organizational responsibilities, procedures, and tools and
techniques (automated, manual, or a combination of the two).  Describe the
version control or  other philosophy to ensure that the elements represent
a consistent system, i.e., object code represents the source code, which
in turn represents the FTLS and DTLS, etc.  If the CM system is different
for some of the elements listed under Question 25, answer this question
for each of the elements.



161.            When was the CM instituted?  Provide the approximate date
as well as the system life-cycle phase (e.g. design, development, testing).



162.            List the TCB elements that are under the Configuration
Management.  List the TCB elements that are not under CM.  Examples of TCB
elements are: hardware elements, firmware elements, formal security policy
model, FTLS, DTLS, design data and documentation, source code, object
code, software engineering environment, test plans, Security Features
User's Guide, Trusted Facilities Manual, etc.



163.            Describe the protection mechanisms in place to safeguard
the CM elements.



       164.    When (e.g., before user authentication) and how (e.g. by
typing a specific control character sequence) can the trusted path be
invoked by the user?  What TCB elements are involved in establishing the
trusted path?



       165.    List separately the functions that can be performed by
each of the trusted users such as the operator, security administrator,
accounts administrator, auditor, systems programmer, etc.  For each of
these persons/roles, list the system data bases that can be accessed and
their access modes.  For each of these roles, also list the privileges
provided to them.



       166.    How does the TCB recognize that a user has assumed one of
the above-mentioned trusted roles?  Which of the above-mentioned functions
can be performed without the TCB recognizing this role?



       167.    When and how does the TCB invoke the trusted path?  What
TCB elements are involved in establishing the trusted path?



       168.    How does the TCB ensure that the trusted path is
unspoofable?



       169.    How does the system recovery work?  What system resources
(e.g., memory, disks blocks, files) are protected prior to and during the
system recovery?  How are they protected?  What resources are not
protected?



170.            Does the system have a degraded mode of operation?  What
can cause this to occur?  How long can the system keep running in this
mode?  How does an operator get the system back to full operation?  What
security-related services are provided in the degraded mode?  What
security-related services are not provided?



171.            Describe the tools, techniques and procedures used to
ensure the integrity of the TCB elements (hardware, firmware, software,
documents, etc.) supplied to the customers.  Examples include trusted
courier, electronic seals, physical seals, etc.



 15. OTHER DOCUMENTATION

172.            Describe the methodology used in the design of the system.
Provide a list of documents that capture the system design.  For each
document, provide a copy, a brief description of its contents, or an
annotated outline.  Provide a schedule for development of the design
documents.



173.            Provide a copy of the Security Features User's Guide
(SFUG), a brief description of its contents, or an annotated outline.
Does the document describe the protection mechanisms available to the
users?  Does it include examples of how to use the protection mechanisms
in conjunction with one another to meet the user security objectives?
Provide a schedule for development of the SFUG.



174.            Provide a copy of the Trusted Facility Manual (TFM), a
brief description of its contents, or an annotated outline.  Provide a
schedule for development of the TFM.



175.            Does the TFM contain procedures to configure the secure
system?  Does it list the devices and hardware elements that are part of
the evaluated configuration?  Does it contain procedures for configuring
each of the devices, for connecting them, and for configuring the entire
system?  Does it list the devices that are not part of the evaluated
configuration?  Does it list the procedures for securely configuring them
out and for disconnecting them?



176.            Does the TFM contain procedures to generate the TCB from
source code?  For each system parameter or input, does the TFM list valid
values for a secure TCB generation?



177.            Does the TFM list the functions, privileges, and data
bases that are to be controlled?  Does it list how these are controlled?
Does it list the consequences of granting access to them as warnings?



178.            Does the TFM provide procedures for maintaining the audit
log?  Does it describe how the audit log can be turned on, turned off,
combined, and backed up?  Does it describe how to detect the audit log is
getting full, or is full, and what actions to take in order to minimize
the loss of audit data?



179.            Does the TFM contain the structure of the audit log file
and the format of the audit records?  Does it describe how the audit
records can be viewed?  Does it describe the capabilities of the audit
reduction tool, how to invoke these capabilities, and the format of the
tool output?



180.            Does the TFM contain the procedures and warnings for
secure operation of the computing facility?  Does it address the physical,
personnel, and administrative aspects of security in order to ensure the
protection of computing hardware, firmware, software, and privileged
devices such as the operator terminals?  Does it  address the protection
of hard-copy outputs?



181.            Does the TFM provide a list of trusted users and
processes?  For each trusted user or process, does it list the functions,
privileges, and data bases to be accessed?  Examples of trusted users are
system operator, security administrator, accounts administrator, auditor,
etc.  Examples of trusted processes are device queue manipulation, user
profile editor, etc.  Examples of functions are creating and deleting
users, changing user security profile, setting up defaults for
discretionary and mandatory access controls, selecting auditing events in
terms of functions, subjects, objects, sensitivity levels, and/or a
combination of them, etc.  Examples of data bases are user security
profiles, authentication data base, etc.



182.            Does the TFM include a list of TCB modules that make up
the security kernel?



183.            Does the TFM contain the procedures for securely
starting/booting/initializing the system?



184.            Does the TFM contain the procedures for securely
restarting/resuming the system after a lapse in system operation?



185.            Does the TFM contain the procedures for securely
recovering the system after a system failure?



GLOSSARY

Access
               A specific type of interaction between a subject and an
object that results in the flow of information from one to the other.

Access List
               A list of users, programs, and/or processes and the
specifications of access categories to which each is assigned.

Administrative User
               A user assigned to supervise all or a portion of an ADP
system.

Audit
               To conduct the independent review and examination of
system records and activities.

Audit Trail
               A chronological record of system activities that is
sufficient to enable the reconstruction, reviewing, and examination of the
sequence of environments and activities surrounding or leading to an
operation, a procedure, or an event in a transaction from its inception to
final results.

Auditor
               An authorized individual, or role, with administrative
duties, which include selecting the events to be audited on the system,
setting up the audit flags that enable the recording of those events, and
analyzing the trail of audit events.

Authenticate
               (1) To verify the identity of a user, device, or other
entity in a computer system, often as a prerequisite to allowing access to
resources in a system.

               (2) To verify the integrity of data that have been stored,
transmitted, or otherwise exposed to possible unauthorized modification.

Authenticated User
               A user who has accessed an ADP system with a valid
identifier and authentication combination.

Authorization
               The granting of access rights to a user, program, or
process.

Bandwidth
               A characteristic of a communication channel that is the
amount of information that can be passed through it in a given amount of
time, usually expressed in bits per second.

Bell-LaPadula Model
               A formal state transition model of computer security
policy that describes a set of access control rules.  In this formal
model, the entities in a computer system are divided into abstract sets of
subjects and objects.  The notion of a secure state is defined, and it is
proven that each state transition preserves security by moving from secure
state to secure state, thereby inductively proving that the system is
secure.  A system state is defined to be "secure" if the only permitted
access modes of subjects to objects are in accordance with a specific
security policy.  In order to determine whether or not a specific access
mode is allowed, the clearance of a subject is compared to the
classification of the object, and a determination is made as to whether
the subject is authorized for the specific access mode.  The
clearance/classification scheme is expressed in terms of a lattice.  See
Star Property (*-property) and Simple Security Property.

Channel
               An information transfer path within a system.  May also
refer to the mechanism by which the path is effected.

Covert Channel
               A communication channel that allows two cooperating
processes to transfer information in a manner that violates the system's
security policy.

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.

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.

Coverage Analysis
               Qualitative or quantitative assessment of the extent to
which the test conditions and data show compliance with required
properties (e.g., security model and TCB primitive properties).  See: Test
Condition, Test Data, Security Policy Model.

Data
               Information with a specific physical representation.

Data Integrity
               The property that data meet an a priori expectation of
quality.

Degauss
               To reduce magnetic flux density to zero by applying a
reverse magnetizing field.

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.

Discretionary Access Control (DAC)
               A means of restricting access to objects based on the
identity and need-to-know of the user, process and/or groups to which they
belong.  The controls are discretionary in the sense that a subject with a
certain access permission is capable of passing that permission (perhaps
indirectly) on to any other subject.

Dominate
               Security level S1 is said to dominate security level S2 if
the hierarchical classification of S1 is greater than or equal to that of
S2 and the nonhierarchical categories of S1 include all those of S2 as a
subset.

Exploitable Channel
               Any channel that is usable or detectable by subjects
external to the Trusted Computing Base whose purpose is to violate the
security policy of the system.

Flaw
               An error of commission, omission, or oversight in a system
that allows protection mechanisms to be bypassed.

Flaw Hypothesis Methodology
               A system analysis and penetration technique in which
specifications and documentation for the system are analyzed and then
flaws in the system are hypothesized.  The list of hypothesized flaws is
prioritized on the basis of the estimated probability that a flaw actually
exists and, assuming a flaw does exist, on the ease of exploiting it and
on the extent of control or compromise it would provide.  The prioritized
list is used to direct a penetration attack against the system.

Formal Proof
               A complete and convincing mathematical argument,
presenting the full logical justification for each proof step, for the
truth of a theorem or set of theorems.

Formal Security Policy Model
               A mathematically precise statement of a security policy.
To be adequately precise, such a model must represent the initial state of
a system, the way in which the system progresses from one state to
another, and a definition of a "secure" state of the system. To be
acceptable as a basis for a TCB, the model must be supported by a formal
proof that if the initial state of the system satisfies the definition of
a "secure" state and if all assumptions required by the model hold, then
all future states of the system will be secure.  Some formal modeling
techniques include:  state transition models, temporal logic models,
denotational semantics models, algebraic specification models.

Formal Top-Level Specification (FTLS)
               A Top-Level Specification that is written in a formal
mathematical language to allow theorems showing the correspondence of the
system specification to its formal requirements to be hypothesized and
formally proven.

Formal Verification
               The process of using formal proofs to demonstrate the
consistency  between a formal specification of a system and a formal
security policy model (design verification) or  between the formal
specification and its program implementation (implementation verification).

Functional Testing
               The segment of security testing in which the advertised
mechanisms of a system are tested, under operational conditions, for
correct operation.

Identification
               The process that enables recognition of an entity by a
system, generally by the use of unique machine-readable user names.

Integrity
               Sound, unimpaired or perfect condition.

Internal Security Controls
               Hardware, firmware, and software features within a system
that restrict access to resources (hardware, software, and data) to
authorized subjects only (persons, programs, or devices).

Isolation
               The containment of subjects and objects in a system in
such a way that they are separated from one another, as well as from the
protection controls of the operating system.

Lattice
               A partially ordered set for which every pair of elements
has a greatest lower bound and a least upper bound.

Least Privilege
               This principle requires that each subject in a system be
granted the most restrictive set of privileges (or lowest clearance)
needed for the performance of authorized tasks.  The application of this
principle limits the damage that can result from accident, error, or
unauthorized use.

Mandatory Access Control (MAC)
               A means of restricting access to objects based on the
sensitivity (as repre-sented by a label) of the information contained in
the objects and the formal authorization (i.e., clearance) of subjects to
access information of such sensitivity.

Multilevel Device
               A device that is used in a manner that permits it to
simultaneously process data of two or more security levels without risk of
compromise.  To accomplish this, sensitivity labels are normally stored on
the same physical medium and in the same form (i.e., machine-readable or
human-readable) as the data being processed.

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 tree, and programs, as well as bits, bytes,
words, fields, processors, video displays, keyboards, clocks, printers,
network nodes.

Object Reuse
               The reassignment and reuse of a storage medium (e.g., page
frame, disk sector, magnetic tape) that once contained one or more
objects.  To be securely reused and assigned to a new subject, storage
media must contain no residual data (magnetic remanence) from the
object(s) previously contained in the media.

Penetration
               The successful act of bypassing the security mechanisms of
a system.

Process
               A program in execution.

Protection-Critical Portions of the TCB
               Those portions of the TCB whose normal function is to deal
with the control of access between subjects and objects.  Their correct
operation is esssential to the protection of data on the system.

Read
               A fundamental operation that results only in the flow of
information from an object to a subject.

Read Access (Privilege)
               Permission to read information.

Reference Monitor Concept
               An access-control concept that refers to an abstract
machine that mediates all accesses to objects by subjects.

Security Level
               The combination of a hierarchical classification and a set
of nonhierarchical categories that represents the sensitivity of
information.

Security Policy
               The set of laws, rules, and practices that regulate how an
organization manages, protects, and distributes sensitive information.

Security Policy Model
               A formal presentation of the security policy enforced by
the system.  It must identify the set of rules and practices that regulate
how a system manages, protects, and distributes sensitive information.
See Bell-La Padula Model and Formal Security Policy Model.

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).  Also, any event
that attempts to violate the security policy of the system, (e.g., too
many attempts to log in, attempts to violate the mandatory access control
limits of a device, attempts to downgrade a file).

Security Testing
               A process used to determine that the security features of
a system are implemented as designed.  This includes hands-on functional
testing, penetration testing, and verification.

Simple Security Property
               A Bell-La Padula security model rule allowing a subject
read access to an object only if the security level of the subject
dominates the security level of the object.  Also called simple security
condition.

Single-Level Device
               An automated information systems device that is used to
process data of a  single security level at any one time.

Spoofing
               An attempt to gain access to a system by posing as an
authorized user.  Synonymous with impersonating, masquerading or mimicking.

Star Property
               A Bell-La Padula security model rule allowing a subject
write access to an object only if the security level of the object
dominates the security level of the subject.  Also called confinement
property, *-property.

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.

Subject Security Level
               A subject's security level is equal to the security level
of the objects to which it has both read and write access.  A subject's
security level must always be dominated by the clearance of the user the
subject is associated with.

Terminal Identification
               The means used to provide unique identification of a
terminal to a system.

Test Condition
               A statement defining a constraint that must be satisfied
by the program under test.

Test Data
               The set of specific objects and variables that must be
used to demonstrate that a program produces a set of given outcomes.

Test Plan
               A document or a section of a document which describes the
test conditions, data, and coverage of a particular test of group of
tests.  See also: Test Condition, Test Data, Coverage Analysis.

Test Procedure (Script)
               A set of steps necessary to carry out one or a group of
tests. These include steps for test environment initialization, test
execution, and result analysis.  The test procedures are carried out by
test operators.

Test Program
               A program which implements the test conditions when
initialized with the test data and which collects the results produced by
the program being tested.

Top-Level Specification (TLS)
               A nonprocedural description of system behavior at the most
abstract level, typically, a functional specification that omits all
implementation details.

Trusted Computer System
               A system that employs sufficient hardware and software
integrity measures to allow its use for processing simultaneously a range
of sensitive or classified information.

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.  It creates a basic
protection environment and provides additional user services required for
a trusted computer system.  The ability of a trusted computing base 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) re-lated to the security policy.

Trusted Path
               A mechanism by which a person at a terminal can
communicate directly with the Trusted Computing Base.  This mechanism can
only be activated by the person or the Trusted Computing Base and cannot
be imitated by untrusted software.

User
               Person or process accessing an AIS either by direct
connections (i.e., via terminals), or indirect connections (i.e., prepare
input data or receive output that is not reviewed for content or
classification by a responsible individual).

Verification
               The process of comparing two levels of system
specification for proper correspondence (e.g., security policy model with
top-level specification, TLS with source code, or source code with object
code).  This process may or may not be automated.

Write
               A fundamental operation that results only in the flow of
information from a subject to an object.

Write Access (Privilege)
               Permission to write an object.

REFERENCES

1.      Department of Defense, Trusted Computer System Evaluation
Criteria, DoD 5200.28*STD, December 1985.

2.      Department of Defense, ADP Security Manual - Techniques and
Procedures for Implementing, Deactivating, Testing, and Evaluating Secure
Resource Sharing ADP Systems, DoD 5200.28*M, revised June 1979.

3.      Aerospace Report No. TOR-0086 (6777*25)1, "Trusted Computer System
Evaluation Management Plan," 1 October 1985.

4.      National Computer Security Center, NCSC*TG*002 Version *1, Trusted
Product Evaluations - A Guide For Vendors, 1 March 1988 (DRAFT).

5.      National Computer Security Center, NCSC*TG*004 Version 1, Glossary
of Computer Security Terms, 21 October 1988.

6.      National Computer Security Center, NCSC*TG*013 Version 1, Rating
Maintenance Phase * Program Document, 23 June 1989