top - download
⟦08b72043b⟧ Wang Wps File
Length: 37653 (0x9315)
Types: Wang Wps File
Notes: DAMOS SECURITY EVALUATION
Names: »4118A «
Derivation
└─⟦32539f54d⟧ Bits:30006181 8" Wang WCS floppy, CR 0369A
└─ ⟦this⟧ »4118A «
WangText
…1d……0d……1d……0f……1d……05……1c……0b……1c……86…1
…02…
…02…
…02…
…02…CPS/TCN/073
…02…OKH/831012…02……02…#
DAMOS
SECURITY
EVALUATION
…02……02… CAMPS
1 SCOPE ..........................................
5
2 DOD REQUIREMENTS ...............................
6
2.1 SUMMARY ....................................
6
2.2 EVALUATION APPROACH ........................
7
2.3 SUMMARY OF EVALUATION CLASSES ..............
7
2.4 EVALUATION OF DAMOS AGAINST DOD REQUIREMENTS
9
2.5 FUTURE TRENDS IN SECURITY EVALUATION .......
11
3. DAMOS SECURITY DEFICIENCIES ..................
11
3.1 SUMMARY ....................................
11
3.2 I/O ARCHITECTURE ...........................
12
3.3 PROCESS CREATION OVERHEAD ..................
13
3.4 FMS SECURITY ...............................
13
3.5 AUDIT ......................................
14
3.6 CONFIGURATION MANAGEMENT ...................
14
4 DAMOS PERFORMANCE DEFICIENCIES .................
14
4.1 PROCESS COMMUNICATION ......................
15
4.2 MEMORY MANAGEMENT ..........................
16
4.3 PROCESS CREATION ...........................
16
4.4 FMS PERFORMANCE ............................
16
5 REQUIREMENTS FOR ENHANCED DAMOS ................
17
5.1 PROCESS COMMUNICATION ......................
18
5.1.1 Purpose ................................
18
5.1.2 Queues .................................
18
5.1.3 Messages and Answers ...................
19
5.1.4 Interrupt Signals ......................
20
5.2 INPUT-OUTPUT ...............................
20
5.2.1 Purpose ................................
20
5.2.2 I/O Instructions .......................
20
5.2.3 Interrupts .............................
21
5.2.4 Basic File System ......................
21
5.3 DATA COMMUNICATIONS ........................
22
5.3.1 Purpose ................................
22
5.3.2 Security Filter ........................
22
5.4 MEMORY MANAGEMENT ..........................
24
5.4.1 Purpose ................................
24
5.4.2 MAP ....................................
24
5.4.3 Page Manager ...........................
25
5.5 PROCESS MANAGEMENT .........................
25
5.5.1 Purpose ................................
25
5.5.2 Real Time Process ......................
26
5.5.3 Recurring Process ......................
26
5.6 PROCESS CLEAN UP ...........................
27
5.6.1 Static Processes .......................
27
5.6.2 Normal Termination .....................
28
1̲ ̲ ̲S̲C̲O̲P̲E̲
The purpose of this report is to
- Describe experiences during the last couple of
years with Secure Systems.
- Discuss future trends in the area.
- Propose short term and long term HW/SW enhancements
to support secure system design with proper performance.
My sources of information and experience are
- Department of Defence:
Trusted Computer System Evaluation Criteria.
August 15, 1983.
- Participation in CAMPS design and implementation.
- Discussions with TRW security consultants.
- Participation in the CR80E discussions.
- Participation in the SACLANT proposal effort.
- Discussions with Stephen Walker, former chairman
of DOD Computer Security Technical Consortium.
The main conclusion is that a considerable development
effort is required for both hardware and software in
order to stay in the market 3-5 years from now.
The following topics will be covered in detail:
a) D̲O̲D̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲
- Overview of the evaluation criteria.
- Evaluation of DAMOS against the criteria and
against other systems
- Discussion of future trends
b) D̲A̲M̲O̲S̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲ ̲D̲e̲f̲i̲c̲i̲e̲n̲c̲i̲e̲s̲
A more detailed discussion of the deficiencies
of DAMOS compared to DOD requirements.
c) D̲A̲M̲O̲S̲ ̲P̲e̲r̲f̲o̲r̲m̲a̲n̲c̲e̲ ̲D̲e̲f̲i̲c̲i̲e̲n̲c̲i̲e̲s̲
A more detailed discussion of the deficiencies
of DAMOS regarding performance.
d) D̲A̲M̲O̲S̲ ̲E̲n̲h̲a̲n̲c̲e̲m̲e̲n̲t̲s̲
A number of suggestions for short term and long
term enhancements for a secure system which can
still perform.
2̲ ̲ ̲D̲O̲D̲ ̲R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲
2.1 S̲U̲M̲M̲A̲R̲Y̲
The DOD requirements do not present any new ideas or
concepts. They just organize security concepts and
techniques and define a scale of measurement for the
degree to which a given system implements those concepts
and techniques.
There are 7 levels ranging from level D with no security
to level A1 with maximum security. The latter is just
at the frontier of what is technically possible today.
The actual evaluation process will require that a DOD
test team analyzes system design and tests the system
for implementation flaws for a period of several months.
The current DAMOS without any enhancement will be ranked
to the next lowest level, which is C1.
With a very limited effort, DAMOS can be enhanced to
the level of B1, which is the fourth level.
With a very limited redesign but a major effort in
the area of configuration management and development
tools, DAMOS could be enhanced to the B2 level, which
is the 3rd highest level.
2.2 E̲V̲A̲L̲U̲A̲T̲I̲O̲N̲ ̲A̲P̲P̲R̲O̲A̲C̲H̲
The general idea of the DOD Requirements is as follows:
- Identify most important security properties.
- Establish for each property a scale of increasing
compliance with the ultimate goal.
- Establish a set of evaluation classes (7 at present)
having an increasing compliance with overall security
properties. Each class requires a specific minimum
evaluation for each security property.
- If a system under evaluation for a certain evaluation
class fails to meet the minimum requirement of
the class for just one property, it cannot go into
that class, no matter how compliant with other
requirements.
The kind of system they have in mind consists of at
least the following:
- DAMOS Kernel and File Systems.
- High level operating system, such as TOS or CAMPS
SSC.
- Trusted Utilities for System Generation etc.
Two interesting consequences of this approach are:
- AMOS + TOS fall into the lowest of the seven classes,
because it has no hardware protection between processes.
- DAMOS + TOS (or SSC) without enhancements fall
into the next lowest of the seven classes, as it
has no log on disk of security related events such
as:
-- Opening, closing of files or connections.
-- Log on, log off of users.
2.3 S̲U̲M̲M̲A̲R̲Y̲ ̲O̲F̲ ̲E̲V̲A̲L̲U̲A̲T̲I̲O̲N̲ ̲C̲L̲A̲S̲S̲E̲S̲
There are 4 main groups A, B, C, D where A is the highest
ranked. Group B is subdivided into B1, B2 and B3, while
group C is subdivided into C1 and C2.
Thus B3 (as required by SACLANT) is the next highest
class.
The main properties of the classes are listed below.
Only the additional properties of a class are described.
D: N̲o̲ ̲R̲e̲q̲u̲i̲r̲e̲m̲e̲n̲t̲s̲
Indicates just that the requirements of C1 were
not met.
C1: D̲i̲s̲c̲r̲e̲t̲i̲o̲n̲a̲r̲y̲ ̲A̲c̲c̲e̲s̲s̲ ̲C̲o̲n̲t̲r̲o̲l̲
Users and their data shall be protected against
each other. A log in procedure with password shall
be used.
C2: L̲o̲g̲ ̲O̲f̲ ̲U̲s̲e̲r̲ ̲A̲c̲t̲i̲o̲n̲s̲
The system must maintain a security log on disk
of user actions, such as log on-log off and opening-closing
of files. The log shall be available for later
analysis.
B1: L̲a̲b̲e̲l̲l̲e̲d̲ ̲S̲e̲c̲u̲r̲i̲t̲y̲
A security system with security classification
and compartments shall be supported. Security labels
shall follow all output from the system, e.g. classification
at top and bottom of all printed output.
B2: S̲t̲r̲u̲c̲t̲u̲r̲e̲d̲ ̲P̲r̲o̲t̲e̲c̲t̲i̲o̲n̲
Security software shall be completely protected
from direct or indirect modification by user programs,
and shall be highly structured internally.
A configuration management system shall be used
to automatically keep track of any changes and
to maintain and protect source, link and object
modules and to generate a system based on these
modules.
B3: M̲i̲n̲i̲m̲i̲z̲e̲ ̲T̲r̲u̲s̲t̲e̲d̲ ̲S̲o̲f̲t̲w̲a̲r̲e̲
The trusted part of the system shall be small enough
to be easily analyzed and tested. Significant engineering
effort shall be used to exclude non security relevant
software from the trusted part of the system, and
to separate and protect the modules of trusted
software from each other.
A1: V̲e̲r̲i̲f̲i̲e̲d̲ ̲D̲e̲s̲i̲g̲n̲
The trusted software shall be designed in a top
down way using a formal specification language.
Automatic verification tools shall be used to verify
that the required security properties are not compromised
during each step down in the design.
The difference between B3 and A1 is only that of the
design and verification tools.
At present Honeywell has forwarded a version of their
Mini 6 for an A1 evaluation.
2.4 E̲V̲A̲L̲U̲A̲T̲I̲O̲N̲ ̲O̲F̲ ̲D̲A̲M̲O̲S̲ ̲A̲G̲A̲I̲N̲S̲T̲ ̲D̲O̲D̲ ̲R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲
At present there are very few systems around, which
can hope for a B3 ranking, and they are typically smaller
and with less functionality than DAMOS. An example
is the Honeywell Mini 6.
As mentioned in section 2.1, the current DAMOS without
enhancements would not even reach the C2 level.
There is a large number of B3 requirements which are
not fulfilled by DAMOS (together with TOS and SSC).
Most of these can be fulfilled with very limited redesign,
even though some of them would require major effort,
such as the requirement for configuration management.
The tough requirement, which can never be met without
major redesign, is that of keeping the trusted part
of software small with a lot of internal protection
and separation between modules, and exclude from the
trusted software "all" components which are not security
relevant.
There are plenty of examples of violation of that requirement,
with most of them in the I/O area. Some of them are:
- Device Handling.
DAMOS Device Handlers are located at the most security
sensitive place in the system. They include a large
amount of protocol software for handling high level
communication protocols, such as X.25 level 3.
They are typically subject to …86…1 …02… …02… …02…
…02…
major modifications in each new project, in order to
adapt to the wide variety of equipment which shall
be connected. The internal protection between different
device handlers is minimal.
- FMS
File Directory functions are not security relevant.
Disk Cache Manager is neither security nor performance
relevant.
- IOS
90% of IOS consists of collecting user parameters
and scheduling multiple I/O requests.
- LTU/LTUX Software/Firmware
Most of this is pure protocol handling. Moreover
the software handles multilevel data, but is not
in any way structured or internally protected in
the way required for trusted software.
In addition a number of DAMOS modules are much more
complicated than would be needed. This has consequences
for security evaluation as well as for performance.
The main reasons for many of the complications are
that some of the fundamental design concepts were not
analyzed sufficiently at the early stages of the project.
This is the case for process communication, I/O and
page management as explained in later sections.
C̲o̲n̲c̲l̲u̲s̲i̲o̲n̲:̲
DAMOS is among the best existing operating systems
in terms of security. The few which are better will
typically be smaller systems with less functionality.
They are typically used for front end application etc.
With very little redesign but a major effort in configuration
management, system generation tools etc. DAMOS can
probably be evaluated to a B2 level.
An evaluation to B3 level or above will require a major
redesign effort.
2.5 F̲U̲T̲U̲R̲E̲ ̲T̲R̲E̲N̲D̲S̲ ̲I̲N̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲E̲V̲A̲L̲U̲A̲T̲I̲O̲N̲
The DOD requirements seem to be widely accepted. SACLANT
already required a B3 system !
A number of systems are already in the process of formal
evaluation with targeted evaluation level ranging from
C2 to A1.
It can be assumed that within a time frame of 2-3 years
it will be a mandatory requirement for military systems
that the operating system part has been formally evaluated.
Most systems will be required to have a ranking of
B2 or above at the time of bid submission, and the
customer may require that the vendor will enhance the
system to the A1 level during the development phase.
In order to stay in the market of secure systems, CR
must probably start up in two directions in the near
future:
- Enhance the current DAMOS and get a formal evaluation
by DOD.
- Initiate research and design activities for a next
generation of secure system, which can be evaluated
to the A1 level.
3. D̲A̲M̲O̲S̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲ ̲D̲E̲F̲I̲C̲I̲E̲N̲C̲I̲E̲S̲
3.1 S̲U̲M̲M̲A̲R̲Y̲
The security deficiencies are mainly in the following
areas:
- I/O Architecture.
-- Device handlers, including support for a number
of network protocol execute at the highest
system level.
-- LTU/TDX software/firmware must be trusted.
-- IO System and FMS/TMS include a large amount
of non security relevant functions.
- Process Creation.
The DAMOS security features cannot be effectively
utilized in transaction oriented systems like CAMPS
and CCIS.
- A security log shall be generated on disk.
- Configuration management tools are completely missing.
3.2 I̲/̲O̲ ̲A̲R̲C̲H̲I̲T̲E̲C̲T̲U̲R̲E̲
There are 3 fundamental problems with the current HW
architecture:
a) I/O instructions are privileged at highest system
level.
b) Interfaces to the various devices are not uniform.
c) Problems of SW/FW in controllers and local networks
have not been considered.
Together these have resulted in an implementation of
I/O software, which is equally poor from the security
and the performance point of view.
By introducing virtual device addresses checked by
the map module, and by letting interrupts be handled
in enabled mode, it is possible to move all the device
handling software from kernel to ordinary processes.
This would be a major step forward in terms of security.
A further redesign of Process Communication, FMS and
IOS would allow direct communication between application
process and device driver for the input output functions,
such that only the control functions for file management
etc. would have to pass through FMS. The same considerations
apply to TMS. This would improve security as well as
performance.
An independent redesign effort should be directed towards
the LTU/TDX area. This should result in a design where
the major parts of LTU, STI, TDX, LTUX etc. SW/FW can
be untrusted.
Section 5 describe the possibilities and advantages
further.
3.3 P̲R̲O̲C̲E̲S̲S̲ ̲C̲R̲E̲A̲T̲I̲O̲N̲ ̲O̲V̲E̲R̲H̲E̲A̲D̲
Systems like CAMPS and SACLANT CCIS are transaction
oriented. Users at their terminals perform transactions
displaying data from or entering data into the system,
and the security classifications of the data change
from transaction to transaction.
In order to use the DAMOS security features in transaction
oriented systems, a process must be created at initiation
of each transaction. The process must be equipped with
the security attributes needed to perform the transaction,
and with no rights beyond those needed.
The DAMOS overhead involved in creation and removal
of a process is, however, so big that this solution
is impossible in most cases. As a result the processes
executing terminal transactions are implemented as
static ones running with highest security classification.
Therefore they must be trusted.
The consequence of letting most of the software in
a system like CAMPS be trusted is of course that it
becomes practically impossible to verify the security
properties of the system. The system can therefore
not obtain a high security rating.
In section 5 the notion of "recurring process" is introduced
for a process which shall execute repeatedly with changing
security attributes. The requirement will be that the
CPU time needed to clean such a process and its associated
objects after a previous transaction and create it
again with a new security profile for a new transaction
should not exceed 50 msec. including communication
with FMS and TMS, but excluding possible load of new
program and data.
3.4 F̲M̲S̲ ̲S̲E̲C̲U̲R̲I̲T̲Y̲
Most of the functions performed by FMS are not security
relevant. Examples are:
- File Directory Functions
- Disk Cache Management
The Directory Handling could be taken out and managed
by a separate utility program. The Disk Cache Management
could presumably be removed completely, as it does
not seem to give any performance advantage as shown
below.
3.5 A̲U̲D̲I̲T̲
One of the important requirements for security is the
capability of generating log records on disk of "all
security relevant events".
DAMOS currently reports all device errors. Security
relevant events which are not reported are opening
and closing of files and connections.
The missing reports can easily be generated, so only
a small redesign is required.
The high level operating system (SSC or TOS shall write
the reports to disk in addition to writing them on
a printer.
3.6 C̲O̲N̲F̲I̲G̲U̲R̲A̲T̲I̲O̲N̲ ̲M̲A̲N̲A̲G̲E̲M̲E̲N̲T̲
The requirements for configuration management and for
documentation are very strong, even at the B2 level.
A series of design documents shall exist at various
levels of detail, and strong arguments shall be presented
to support the claim that the desired security properties
are preserved in the design transformations and in
the final implementation.
An automatic system for version control shall exist,
and it shall be possible to verify at object code level
that only those changes specified at source code level
have actually been carried out.
A configuration management system supporting these
requirements is a major effort.
4̲ ̲ ̲D̲A̲M̲O̲S̲ ̲P̲E̲R̲F̲O̲R̲M̲A̲N̲C̲E̲ ̲D̲E̲F̲I̲C̲I̲E̲N̲C̲I̲E̲S̲
It might seem that performance has nothing to do with
security. That is not true, however, as the following
two examples show:
- The early exercises in Security Kernels for PDP
11 like KSOS and PSOS have never come into practical
use because of performance limitations.
- A number of the solutions used in CAMPS are bad
ones from a security point of view, but they are
dictated by performance considerations.
The main principle, when designing functions in an
operating system, shall be:
Functions shall be layered such that high level
functions are implemented on the top of low level
ones. The main principle in defining function layers
shall be:
The lowest level shall be as simple as possible,
but it shall be of practical use for a reasonably
large class of applications. Thus it shall be possible
to build a highly efficient system using low level
tools. The higher level tools are then available
for the cases where ease of use is preferred for
efficiency.
Apparently this principle has not been used as guidelines
in DAMOS Design, as will be seen in the following.
4.1 P̲R̲O̲C̲E̲S̲S̲ ̲C̲O̲M̲M̲U̲N̲I̲C̲A̲T̲I̲O̲N̲
This is one of the most fundamental functions in an
operating system, and in DAMOS it is simply a disaster.
The following table shows the actions required by sender
and receiver in order to send a message of 500 words
and get a short reply back. The figures are msecs.
Sender Receiver
--------------------------------------------------------
lock pages 2.0
setup xferlist 0.5
send 2.5
init await 1.25
single await 3.00
xfer data 4.75
wait xfer 1.00
build OD 0.50
send 2.50
dismantle object 1.00
init await 1.25
single await 3.00
̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲ ̲
̲ ̲ ̲ ̲ ̲
9.25 14.00
Total = 23.25 msec.
Only wait xfer of 1.0 msec depends upon message length.
This is the mechanism used by IOS and FMS/TMS, so every
I/O is burdened with that communication overhead.
The reason for this state of affairs is that process
communication and transfer of data between processes
are two different functions, and that process communication
has not analyzed in advance the requirements of message-answer
mechanisms.
4.2 M̲E̲M̲O̲R̲Y̲ ̲M̲A̲N̲A̲G̲E̲M̲E̲N̲T̲
The basic page manager functions are at a too high
level. The design target has been processes needing
virtual memory with demand paging. Resident processes
having a need for resident overlays because of the
small logical address space are thus penalized by a
lot of list manipulation in the map in/map out operations.
A map in of a segment could actually be done in about
0.3 msec. but it takes actually 2.25 msecs at best,
and longer for large processes.
4.3 P̲R̲O̲C̲E̲S̲S̲ ̲C̲R̲E̲A̲T̲I̲O̲N̲
As mentioned in 3.3 it is of crucial importance to
be able to create and remove processes efficiently
in a transaction oriented environment. This cannot
be done in DAMOS.
4.4 F̲M̲S̲ ̲P̲E̲R̲F̲O̲R̲M̲A̲N̲C̲E̲
The performance of FMS is poor. This is due to two
main reasons:
- A poor process communication facility making the
transfer of control information and data between
application and FMS very inefficient.
- Internal overhead in FMS.
Only the last problem will be addressed here.
The internal overhead of FMS is about 15 msec. This
is approximately the same as the revolution time for
a CDC disk, and it is 2 times the mean access time
of a fixed head disk.
Approximately half of the overhead comes from the Disk
Cache Manager.
Theoretical analysis as well as practical measurements
show that there is virtually no advantage of using
the disk cache. It only works as a means for FMS to
keep its control structures for random files in memory,
thus avoiding extra disk accesses for access to those
files. For applications process file access, it is
only overhead and gives no advantages in exchange for
this overhead.
5 R̲E̲Q̲U̲I̲R̲E̲M̲E̲N̲T̲S̲ ̲F̲O̲R̲ ̲E̲N̲H̲A̲N̲C̲E̲D̲ ̲D̲A̲M̲O̲S̲
This section proposes a number of enhancements of DAMOS
for increased performance and security. Even though
they are considered to be enhancements, a number of
them are actually simplifications.
Some of the main criteria for selection of the enhancements
have been:
- Target Environment.
DAMOS shall not be equally suited for any type
of environment. The design center shall be that
of turn key systems with many interactive terminals
and users of varying security clearance.
Program development and similar environments have
second priority. They can be supported by building
additional features upon the basic system.
- Efficiency of Basic Tools.
The basic tools shall be suited for efficient low
level programming in the target environment. When
some application areas require higher level tools,
these must be built upon the basic ones. It shall
be possible to implement low level applications
without being penalized by functions which are
only needed for high level applications.
- Limited Hardware Changes.
The proposed enhancements can be implemented with
few or no hardware changes, even though they can
be greatly facilitated by such changes.
- Security Evaluation Growth Path.
The enhanced DAMOS can be a candidate for a formal
security evaluation at the B3 level. Based on the
experiences gained, a next generation DAMOS based
upon new hardware can then be a candidate for the
A1 level evaluation.
5.1 P̲R̲O̲C̲E̲S̲S̲ ̲C̲O̲M̲M̲U̲N̲I̲C̲A̲T̲I̲O̲N̲
5.1.1 P̲u̲r̲p̲o̲s̲e̲
The purpose of process communication is to synchronize
and exchange data between processes.
The major requirements are:
- A queued message-answer mechanism providing efficient
exchange of large amounts of data. This is the
most important facility, and shall also be the
basis for I/O from application processes.
- A queued signal facility, optionally with transfer
of a few words of data. This corresponds partly
to the current synchronization element facility.
- Semaphores for locking of shared data.
Only the semaphores need to allow await access from
more than one process.
5.1.2 Q̲u̲e̲u̲e̲s̲
A queue is similar to a f̲i̲x̲e̲d̲ set of synchronization
elements. Each of those are called subqueues. A subqueue
may be an information subqueue allowing only messsages
or signals with information or a simple subqueue allowing
only a signal without information.
Each queue has an o̲w̲n̲e̲r̲, which is the only process
allowed to await information from the queue. The security
profile of a queue may thus be identical to that of
the owner process.
When a process requests an await on the queue, it specifies
by a mask or similar mechanism a subset of the subqueues
from which it will receive information.
The purpose of the queue is to preserve the capability
of awaiting a dynamically selected subset of external
events, while removing those features which result
in heavy overhead without real advantages.
5.1.3 M̲e̲s̲s̲a̲g̲e̲s̲ ̲a̲n̲d̲ ̲A̲n̲s̲w̲e̲r̲s̲
This concept is well known from AMOS and similar systems.
It appears to be the most fundamental way of communicating
between processes, and should therefore be the design
center of process communication.
The basic requirement is that it shall be very tightly
connected to the transfer of large data blocks between
processes.
Logically a message is a carrier of read and/or write
access right for a specified data area sent to a specified
queue.
For reasons of efficiency, the data buffer may be restricted
to a contiguous buffer completely contained in a memory
segment.
A message shall be an object, and the receiving process
shall automatically get an object descriptor when the
message is received from the queue. The object descriptor
is used for subsequent access to the data of the message.
PCF shall automatically furnish the message with
- sender process id
- sender process security profile
- answer queue id
- control info for associated data.
Access to the data can be implemented by one or more
of the following mechanisms, listed in sequence of
increasing demand for HW/FW support:
- PCF makes a protected copy of the data.
- The data are accessed via block move instructions
using physical address information.
- The data are mapped into the receiving process
with bound registers protecting that part of the
segment which is not accessible.
5.1.4 I̲n̲t̲e̲r̲r̲u̲p̲t̲ ̲S̲i̲g̲n̲a̲l̲s̲
A major security enhancement will be to move the current
device handlers from the kernel to device driver processes.
Interrupts should then be directed to simple subqueues,
c.f. 5.1.2. It follows that activation of a process
when a signal is received shall be very fast, at least
for real time processes, c.f.5.5.2 The same applies
to the sending of a signal to a simple subqueue.
5.2 I̲N̲P̲U̲T̲-̲O̲U̲T̲P̲U̲T̲
5.2.1 P̲u̲r̲p̲o̲s̲e̲
The purpose of the enhancements proposed in this section
is to
- Improve security by moving device handlers from
kernel to driver processes.
- Improve access to backing storage by a simple file
system with contiguous files implemented by disk
driver. This shall remove the overhead introduced
by putting IO System and FMS in between application
process and disk handler.
5.2.2 I̲/̲O̲ ̲I̲n̲s̲t̲r̲u̲c̲t̲i̲o̲n̲s̲
I/O instructions shall be made non-privileged, at least
logically, such that device driver processes can execute
them.
This can be done in two ways:
- The most efficient way is to introduce virtual
device addresses which are mapped onto real device
addresses by MAP module.
- The virtualization may be done by software, so
that a driver executes an IO instruction via a
MON call, checking that the calling process has
access to the device.
The latter method is probably efficient enough
for the present purposes.
5.2.3 I̲n̲t̲e̲r̲r̲u̲p̲t̲s̲
Device Interrupts shall be handled by driver processes.
An interrupt shall result in a signal to a queue, c.f.
If necessary an interrupt procedure in the driver process
may be the initial handler of the interrupt. The procedure
shall be called in the context of the drive process
with timer interrupts enabled. The interrupt procedure
may be a standard one, just signalling the interrupts
to the process.
5.2.4 B̲a̲s̲i̲c̲ ̲F̲i̲l̲e̲ ̲S̲y̲s̲t̲e̲m̲
An efficient backing storage handling shall be available
for applications without any needs for a sophisticated
high level file handling.
The basic requirements are:
- The file system shall be managed by the disk driver.
- Only contiguous files need to be supported. This
may be extended if it can be done without performance
penalties or increased complexity of disk handler.
Management of file catalogues and possibly mapping
of more complex file structures onto the basic files
shall be done by a File Catalogue Process.
The application process may communicate directly with
disk driver using message-answer mechanism, c.f.5.1.
No IO system shall be required for basic file system.
The overhead of file access as seen from an application
process shall be comparable to the mean asccess time
of about 8 msecs for a fixed head disk.
5.3 D̲A̲T̲A̲ ̲C̲O̲M̲M̲U̲N̲I̲C̲A̲T̲I̲O̲N̲S̲
5.3.1 P̲u̲r̲p̲o̲s̲e̲
This area will be a weak point in security for a long
time because of the amount of software and firmware
handling network protocols at various levels, and because
new technologies are still emerging for local networks.
The main purposes are:
- Move network protocol software from kernel to driver
processes.
- Define a system structure by which security relevant
functions can be separated from protocol handling.
The structure shall as far as possible tolerate
untrusted components at all network levels.
5.3.2 S̲e̲c̲u̲r̲i̲t̲y̲ ̲F̲i̲l̲t̲e̲r̲
A security filter is a trusted subsystem which is inserted
in a data stream between untrusted componenets. It
has the capability to inspect all data in the stream
and to reject data which violate specified security
rules.
One way to separate network protocol handlers and allow
them to be untrusted is to insert security filters
at each side of the untrusted component.
Security filters can be inserted at any place in the
network architecture, and they can be implemented by
any mixture of SW, FW and HW. One obvious example of
using security filters is shown in figure 1.
The Security Filter at the terminal end is a simple
interface card, possibly integrated with an opto interface.
The two security filters shall allow for an untrusted
Network Interface Driver in the PU and/or untrusted
components of the network.
FIGURE 1
Security Filters Encapsulating Untrusted
Network Components
The filters have a simple security filter protocol
between them with the following purposes:
- Preserve data integrity across the untrusted network.
This includes correct sequencing. Possible methods
are packet sequence numbers together with CRC redundancy
checks.
- Protect against network routing errors by logical
address checks.
- If needed, protect against network tapping by end
to end encryption.
5.4 M̲E̲M̲O̲R̲Y̲ ̲M̲A̲N̲A̲G̲E̲M̲E̲N̲T̲
5.4.1 P̲u̲r̲p̲o̲s̲e̲
The memory management implemented by Page Manager and
MAP shall put special emphasis on the needs of driver
processes and interactive transaction oriented processes
in a turn key system.
It shall
- Enable efficient process switch, especially for
rather small processes.
- Enable efficient change of memory mapping by a
process for support of overlays etc.
- Enable efficient process swapping
The support for demand paging shall have second priority
and must not decrease efficiency of the other functions.
5.4.2 M̲A̲P̲
Each process has a translation table, TT, of 128 words
defining the current mapping of the logical address
space. The TT is loaded into the MAP at the following
occasions:
- When the process is selected for execution by a
CPU.
- When the TT has been changed by map in, map out
etc.
The time used for this loading of TT into MAP is about
0.25 msec.
For most processes less than 25% of the possible 128
pages are in use, and only a small part of those will
actually be used by the map until next load of TT.
The MAP should therefore only be supplied with the
physical location of TT. When a page is found absent
by MAP, it should inspect the TT in memory. If the
page is not absent there, it should load the entry
and execute the original request.
Update of TT should only result in a request to MAP
of making the corresponding entries absent. Then it
would automatically fetch the updated entries when
needed.
5.4.3 P̲a̲g̲e̲ ̲M̲a̲n̲a̲g̲e̲r̲
Most of the page manager functions use extensive list
manipulation, including search in lists. This makes
the map in and map out of segments very slow. The only
reason for all this overhead is the support for demand
paging.
Emphasis shall instead be on:
- Overlay support, including map in and map out of
segments as well as transfer of complete segments
between main memory and backing storage.
- Process swapping
This will make all list manipulation for virtual pages
superfluous.
5.5 P̲R̲O̲C̲E̲S̲S̲ ̲M̲A̲N̲A̲G̲E̲M̲E̲N̲T̲
5.5.1 P̲u̲r̲p̲o̲s̲e̲
The following two concepts shall be particularly emphasized
by process management:
- Real Time Process.
This type of process has requirements for activation
by interrupts or internal requests with a minimum
of overhead. It shall in particular be used for
driver processes.
- Recurring Process.
This type of process has requirements for efficient
cleaning and recreation with new security profile
upon a normal termination. It shall in particular
be used for execution of transactions from user
terminals with frequently changing security clearance.
5.5.2 R̲e̲a̲l̲ ̲T̲i̲m̲e̲ ̲P̲r̲o̲c̲e̲s̲s̲
A real time process is typically a driver process.
It can await interrupt signals in a simple subqueue
in parallel with requests from other processes in a
Message Subqueue, c.f.5.1.
The primary requirements are:
- Efficient activation directly by interrupts.
- CPU time accounting not necessary.
- Time slicing not necessary. Max CPU time allocation
at each activation to protect against endless loops.
5.5.3 R̲e̲c̲u̲r̲r̲i̲n̲g̲ ̲P̲r̲o̲c̲e̲s̲s̲
A recurring process is a process which could run forever
executing a series of transactions, except that the
security profile has to be changed between every two
transactions.
The purpose of introducing the concept is to allow
a change of security profile without having to go through
the tedious task of removing the process completely
and creating it again from start.
The interesting feature about a recurring process is
that it will always be started with the same context,
e.g. set of objects inherited from parent. Especially
the initial memory segments will be the same. A recurring
process will always be untrusted.
The following requirements apply:
- A new function "clean recurring" shall be used
to clean the process upon a n̲o̲r̲m̲a̲l̲ termination.
It shall check that the process has no pending
messages etc. The efficiency requirement only applies
if all those checks are passed. So normal clean
up after a failed process shall be possible but
need not be efficient.
The clean recurring function must not remove the
basic objects of the process.
- A new function "resume recurring" shall be used
to resume a recurring process with a new security
profile. This profile shall automatically be set
on the basic objects owned by the process.
5.6 P̲R̲O̲C̲E̲S̲S̲ ̲C̲L̲E̲A̲N̲ ̲U̲P̲
A large amount of the overhead of DAMOS modules arise
from the requirement of always being able to remove
a process upon command from parent.
Removal can be requested when the process has failed
or by other reasons, e.g. user regrets a transaction
just initiated. This section specifies some relaxations
to this requirement, which may be used to decrease
the associated overhead.
5.6.1 S̲t̲a̲t̲i̲c̲ ̲P̲r̲o̲c̲e̲s̲s̲e̲s̲
A number of processes in any system will be static
in the sense that once created they will never be removed
again. Typical examples are FMS, TMS and ROOT.
All actions by DAMOS modules, which are done in order
to facilitate removal of a process can be bypassed
for static processes.
5.6.2 N̲o̲r̲m̲a̲l̲ ̲T̲e̲r̲m̲i̲n̲a̲t̲i̲o̲n̲
A process has terminated normally, if it has no pending
messages, I/O activities etc.
The DAMOS modules shall facilitate fast checks of whether
a process has terminated normally. Clean up of a normally
terminated process will mostly consist of these controls.
If a process has not terminated normally, it shall
still be possible to remove the process, but it need
not be particularly efficient, as removal of failed
processes is considered a rare event in the target
environments.