home *** CD-ROM | disk | FTP | other *** search
/ Hackers Toolkit v2.0 / Hackers_Toolkit_v2.0.iso / HTML / archive / Rainbow / ncsc / burgundyncsc.txt < prev    next >
Text File  |  1999-11-04  |  67KB  |  1,329 lines

  1. A Guide to Understanding Design Documentation
  2.  
  3. ACKNOWLEDGMENTS
  4.  
  5. Special recognition is extended to James N. Menendez, National Computer
  6. Security Center (NCSC), as project manager and co-author of this document.
  7. Recognition is also extended to Don Brinkley and Rick Dedrick, Unisys, as
  8. co-authors of this document. 
  9.  
  10. Special acknowledgment is given to Barbara Mayer, NCSC, for her invaluable
  11. input and review of this document, which has resulted in its current form.
  12.  
  13. Acknowledgment is also given to all those members of the computer security
  14. community who contributed their time and expertise by actively
  15. participating in the review of this document. 
  16.  
  17. A Guide to Understanding Design Documentation 
  18.  
  19. NCSC-TG-07 Version 1 
  20.  
  21. 1. INTRODUCTION
  22.  
  23. 1.1 Purpose
  24.  
  25. The Trusted Computer System Evaluation Criteria (TCSEC) is the standard
  26. used for evaluating the effectiveness of security controls built into
  27. Automated Data Processing (ADP) systems. The TCSEC is divided into four
  28. divisions: D, C, B, and A, ordered in a hierarchical manner, with the
  29. highest division (A) being reserved for those systems providing the best
  30. available level of assurance. Within Divisions C through A are a number of
  31. subdivisions known as classes, which are also ordered in a hierarchical
  32. manner to represent different levels of trust in these classes. 
  33.  
  34. Design Documentation is a TCSEC requirement for classes C1 and above. The
  35. purpose of this guideline is to provide developers of trusted computer
  36. systems with guidance in understanding and meeting the design
  37. documentation requirements contained in the TCSEC. To accomplish this, the
  38. guideline addresses two goals. First, the guideline increases the vendors'
  39. awareness of the importance of design documentation to the security of
  40. their system throughout the system life-cycle. Second, the guideline forms
  41. an initial basis of understanding between the vendor and evaluator
  42. communities concerning what is expected by the evaluation team in the
  43. review process and deliverables for design documentation. 
  44.  
  45. Any examples in this document are not to be construed as the only
  46. implementation that will satisfy the TCSEC requirement. The examples are
  47. merely suggested implementations. The recommendations in this document are
  48. also not to be construed as supplementary requirements to the TCSEC. The
  49. TCSEC is the only metric against which systems will be evaluated. 
  50.  
  51. This guideline is part of the Technical Guidelines Program to provide
  52. helpful guidance on TCSEC issues and the features they address. 
  53.  
  54. 1.2 Scope
  55.  
  56. Design Documentation is a TCSEC requirement for classes C1 through A1. It
  57. is one of the four types of documentation required by the TCSEC. The other
  58. three documentation requirements are for a Trusted Facility Manual (TFM),
  59. Security Features Users Guide (SFUG), and Test Plan Documentation. The
  60. role of Design Documentation is to identify and describe the Trusted
  61. Computing Base (TCB) and its security features. Only Design Documentation
  62. for the TCB is required to meet the TCSEC requirements, but it is strongly
  63. recommended that design documentation exist for the entire system.
  64. Throughout this document, the word system will be used as the object of
  65. design documentation to include the TCB and the untrusted portions of the
  66. system. However, it should be emphasized that the TCSEC requirements are
  67. based solely on the design documentation of the TCB. 
  68.  
  69. Design Documentation assists vendors during the system life-cycle by
  70. thoroughly defining the policies that the system enforces. It also
  71. provides the material by which the evaluator can assess whether, and to
  72. what degree, the design intent was carried into the implementation. The
  73. design documentation is intended to guide the implementation of the
  74. product; it is not intended merely as an abstract philosophical exercise
  75. completely divorced from the "real" product. 
  76.  
  77. Design documentation also increases the developer's level of understanding
  78. of the system. It should facilitate the correct implementation of the
  79. intended behavior and features of the system. This guideline will discuss
  80. design documentation and its features as they apply to computer systems
  81. and products that are being built with the intention of meeting the
  82. requirements of the TCSEC. 
  83.  
  84. 1.3 Control Objective
  85.  
  86. Each of the TCSEC requirements serves to ensure that one of the three
  87. basic control objectives for trusted computing - security policy,
  88. accountability, and assurance - are satisfied. Throughout the system
  89. life-cycle, design documentation aids in attaining the third objective,
  90. assurance, by helping to "substantiate claims for the completeness of
  91. access mediation and degree of tamper resistance." [5] 
  92.  
  93.      The TCSEC gives the following as the Assurance Control Objective: 
  94.  
  95.      "Systems that are used to process or handle classified or other
  96.      sensitive information must be designed to guarantee correct and
  97.      accurate interpretation of the security policy and must not distort
  98.      the intent of that policy. Assurance must be provided that correct
  99.      implementation and operation of the policy exists throughout the
  100.      system's life-cycle."[5] 
  101.  
  102. Design documentation plays an important role in providing this life-cycle
  103. assurance. It demonstrates that correct implementation and enforcement of
  104. the system's security policy exists throughout the system's life-cycle. As
  105. it relates to this control objective, design documentation facilitates the
  106. efforts of vendors and system developers in modifying and maintaining the
  107. system throughout its life-cycle, without compromising the trustworthiness
  108. of the system. 
  109.  
  110. In addition, design documentation serves as a useful training tool. Design
  111. documentation presents a technical history of the system, containing
  112. documentation on past changes to the system as well as the current system.
  113. It can be used in the training of new systems programmers and hardware
  114. engineers to familiarize them with the system. 
  115.  
  116. 2. OVERVIEW OF DESIGN DOCUMENTATION
  117. PRINCIPLES
  118.  
  119. Design documentation is a requirement for TCSEC classes C1 and above. It
  120. provides a means of communicating the design of a system to developers
  121. that enables them to comprehend the design principles of the system and to
  122. make changes or upgrades to the system without compromising the
  123. trustworthiness of the system. The information contained in the design
  124. documentation provides a rationale as to why a system is designed as it is
  125. and whether changes to the system will alter the intent of the design. 
  126.  
  127. Design documentation plays an important role in the life-cycle maintenance
  128. of a system and should not be viewed as a burden to system development.
  129. This document should help developers understand the importance of design
  130. documentation in the life-cycle of computer systems, as well as to the
  131. maintenance of trust in these systems. Developers should recognize the
  132. importance of meeting the purpose and intent of the TCSEC design
  133. documentation requirements as opposed to meeting them in a strictly
  134. mechanical fashion. 
  135.  
  136. 2.1 Purpose of Design Documentation
  137.  
  138. The primary purpose of design documentation is to define and describe the
  139. properties of a system. As it relates to the TCSEC, design documentation
  140. provides an explanation of how the security policy of a system is
  141. translated into a technical solution through the TCB hardware, software,
  142. and firmware. 
  143.  
  144. Design documentation explains the system's protection mechanisms so that
  145. the effect a change may have on the security of the system can be
  146. evaluated prior to a change being performed. It relates the TCSEC
  147. requirements to the architecture of a system and guides the implementation
  148. of the system under development. Complete documentation ensures that the
  149. vendor has an understanding of what elements of the system are protection
  150. critical. Design documentation explains the system design to the vendor's
  151. development team and enables the developers to understand the design of
  152. the system well enough to maintain the system and to perform any necessary
  153. changes to it without adversely affecting the trustworthiness of the
  154. system. In addition, the design documentation assists the evaluators by
  155. providing them with a vehicle by which the completeness and correctness of
  156. the implementation can be assessed. 
  157.  
  158. 2.2 Design Documentation Development for Evaluation
  159.  
  160. Developers should incorporate the design documentation requirements into
  161. the system development process. A plan that addresses each design
  162. documentation requirement should be developed early in the development
  163. phase and shared with the National Computer Security Center evaluators to
  164. ensure the thoroughness of the documentation. 
  165.  
  166. Iterative development of the design documentation is the key to minimizing
  167. vendor and evaluator efforts during the evaluation process. Vendors should
  168. precede their design documentation with the submittal of an outline of the
  169. design documentation to the evaluators. This outline should contain, among
  170. other things, a statement of purpose and the intended audience of the
  171. design documentation. Then, through a process of draft submittal,
  172. evaluator comments and requests for additional information, and draft
  173. revision the design documentation requirements will be met. This guideline
  174. should expedite this process by bringing the vendor's first drafts closer
  175. to evaluator expectations and by facilitating convergence between vendor
  176. product and evaluator expectations. If vendors establish a dialogue with
  177. evaluators early in the design documentation development and solicit their
  178. comments on early and subsequent drafts of the design documentation, both
  179. vendors and evaluators will save a great deal of time and effort in
  180. completing the evaluation process. 
  181.  
  182. 2.3 Level of Detail of Design Documentation
  183.  
  184. The level of detail of design documentation will determine its usefulness
  185. and adequacy in meeting the TCSEC requirements, as well as its usefulness
  186. to the vendor in the development and maintenance of the system. For
  187. evaluators, the level of detail of the design documentation is reviewed to
  188. ensure that the system developer understands the design of the system well
  189. enough to make changes or upgrades to the system without compromising the
  190. trustworthiness of the system. Design documentation also ensures that the
  191. developer understands the overall security concepts that are required to
  192. be part of the system design. How well the security properties of the
  193. system are documented, and how this information is integrated into the
  194. design documentation will determine whether or not the level of detail of
  195. the design documentation is sufficient in meeting the TCSEC requirements. 
  196.  
  197. The design documentation shall be detailed enough to serve as a useful
  198. tool for vendor maintenance of the system and shall clearly indicate what
  199. elements of the design impact the trustworthiness of the system. One
  200. purpose behind design documentation is to assist vendors in maintaining
  201. the system and should not present a burden to the vendor in terms of
  202. quantity or detail. A good rule of thumb is that the level of detail of
  203. design documentation should be sufficient to permit an individual with a
  204. degree in Computer Science, Electrical Engineering, or the equivalent with
  205. knowledge and skills in programming, hardware, or firmware development to
  206. understand the system design and be able to design system modifications
  207. without adversely affecting trustworthiness of the system. 
  208.  
  209. 2.4 Level of Effort for Meeting the Requirements
  210.  
  211. The level of effort necessary for developing satisfactory design
  212. documentation has historically been underestimated because the intent and
  213. implications of the TCSEC requirements for design documentation have
  214. seldom been completely understood. An important factor to consider when
  215. deciding on an appropriate level of effort is the importance of the design
  216. documentation throughout the system life-cycle. Well structured design
  217. documentation that is carefully planned and developed will make it easier
  218. to understand the design of the system. 
  219.  
  220. The level of effort necessary for a vendor to meet the design
  221. documentation requirements varies from system to system. The level of
  222. effort generally will depend upon the necessary level of detail, which
  223. depends upon the class of evaluation and the complexity of the system
  224. being evaluated. The requirements for TCSEC classes C1 and C2 may be met
  225. by simply following good engineering documentation practices, but as the
  226. TCSEC class level increases, so does the level of detail and effort
  227. necessary for meeting the TCSEC requirements. 
  228.  
  229. In terms of quantity, the length of design documentation at the higher
  230. classes has been found to be roughly comparable in bulk to the source
  231. listings of the overall system. In general, producing the design
  232. documentation may require several man months to a man year of system
  233. development time at Classes C1 and C2, and up to several man years at the
  234. higher classes. Although developing design documentation for a system may
  235. be time consuming, this time will be amply rewarded by the ease of system
  236. maintainability during its life-cycle. 
  237.  
  238. 2.5 Format of Design Documentation
  239.  
  240. The format and style for each vendor's design documentation is specific to
  241. that vendor, and to suggest a specific format would restrict vendors in
  242. developing their design documentation. Although this guideline addresses
  243. distinct requirements for design documentation, it should not be assumed
  244. that separate documents are necessary to meet each requirement. Indeed,
  245. the design documentation shall address each of the requirements, but it is
  246. acceptable for evaluators to be pointed to a number of documents to
  247. address a specific requirement. Also, graphics serve as a useful adjunct
  248. to design documentation, although not sufficient alone to meet the TCSEC
  249. requirement for design documentation. Developers may choose to use
  250. graphics to describe a system in addition to other design documentation. 
  251.  
  252. Differences among computer system architectures, designs, and
  253. implementation approaches make developing a standard format for design
  254. documentation inadvisable. In addition, the format of design documentation
  255. for one system may be totally inappropriate for meeting another system's
  256. needs. The format chosen by the vendor for presenting the design
  257. documentation may be influenced by business concerns other than
  258. expeditious security evaluation. Different design documentation formats
  259. present different advantages and challenges to evaluators and different
  260. advantages and costs to vendors that should be weighed. 
  261.  
  262. A system's design may be evolutionary, resulting from improvements that
  263. build upon an initial version. Maintaining documentation on a system in a
  264. release/update form may be convenient for a developer. However, it is
  265. difficult for new developers and life-cycle personnel to gain an
  266. understanding of the overall system architecture from documentation that
  267. describes the system in chronological terms through system releases and
  268. updates. To be useful, these updates shall be incorporated into the design
  269. documentation, and the design documentation shall be presented as a
  270. complete description of the system, and not the initial description plus
  271. supplemental sections describing changes. 
  272.  
  273. 3. MEETING THE CRITERIA REQUIREMENTS
  274.  
  275. This section lists the TCSEC requirements for design documentation at each
  276. class. All of these requirements have been extracted from the TCSEC design
  277. documentation requirements and include explicit and implicit design
  278. documentation requirements, where necessary. Each numbered requirement is
  279. referenced in the discussions that follow in Sections 6 and 7 of this
  280. document. This section serves as a quick reference for TCSEC class
  281. requirements. 
  282.  
  283. As the TCSEC evaluation class level increases, it is implicitly required
  284. that the design documentation be more detailed. This is due to an increase
  285. in assurance required at the higher classes, as well as the introduction
  286. of new features at the higher classes that need to be documented, for
  287. example, labeling, auditing. 
  288.  
  289. 3.1 The C1 Design Documentation Requirements
  290.  
  291. Requirement 1 - Describe the philosophy of protection. 
  292.  
  293. Requirement 2 - Describe how the philosophy of protection is translated
  294. into the TCB. 
  295.  
  296. Requirement 3 - Describe how the TCB is modularized (if modular). 
  297.  
  298. Requirement 4 - Describe all interfaces between the TCB modules (if
  299. modular). 
  300.  
  301. Requirement 5 - Describe how the TCB protects itself. 
  302.  
  303. Requirement 6 - Provide a statement of the system security policy. 
  304.  
  305. 3.2 The C2 Design Documentation Requirements
  306.  
  307. No new requirements have been added at the C2 class. 
  308.  
  309. 3.3 The B1 Design Documentation Requirements
  310.  
  311. Requirement 7 - Provide an informal or a formal description of the
  312. security policy model enforced by the TCB. 
  313.  
  314. Requirement 8 - Explain the sufficiency of the security policy model to
  315. enforce the security policy. 
  316.  
  317. Requirement 9 - Identify and describe the TCB protection mechanisms. 
  318.  
  319. Requirement 10 - Explain how the TCB mechanisms satisfy the security
  320. policy model. 
  321.  
  322. 3.4 The B2 Design Documentation Requirements
  323.  
  324. Requirement 11 - Describe how the TCB is modularized. 
  325.  
  326. Requirement 12 - Describe all of the interfaces between the TCB modules. 
  327.  
  328. Requirement 13 - Provide a formal description of the security policy
  329. model. 
  330.  
  331. Requirement 14 - Prove the sufficiency of the security policy model to
  332. enforce the security policy. 
  333.  
  334. Requirement 15 - Show that the Descriptive Top Level Specification (DTLS)
  335. is an accurate description of the TCB interface. 
  336.  
  337. Requirement 16 - Describe how the TCB implements the Reference Monitor
  338. Concept. 
  339.  
  340. Requirement 17 - Describe why the reference monitor is tamper resistant. 
  341.  
  342. Requirement 18 - Describe why the reference monitor cannot be bypassed. 
  343.  
  344. Requirement 19 - Describe why the reference monitor is correctly
  345. implemented. 
  346.  
  347. Requirement 20 - Describe how the TCB is structured to facilitate testing.
  348.  
  349. Requirement 21 - Describe how the TCB is structured to enforce least
  350. privilege. 
  351.  
  352. Requirement 22 - Present the results and methodology of the covert channel
  353. analysis. 
  354.  
  355. Requirement 23 - Describe the tradeoffs involved in restricting covert
  356. channels. 
  357.  
  358. Requirement 24 - Identify all auditable events that may be used in
  359. exploitation of known covert storage channels. 
  360.  
  361. Requirement 25 - Provide the bandwidths of known covert storage channels
  362. whose use is not detectable by auditing mechanisms. 
  363.  
  364. 3.5 The B3 Design Documentation Requirements
  365.  
  366. Requirement 26 - Identify all auditable events that may be used in
  367. exploitation of known covert timing channels. 
  368.  
  369. Requirement 27 - Provide the bandwidths of known covert timing channels
  370. whose use is not detectable by auditing mechanisms. 
  371.  
  372. Requirement 28 - Describe how the system complies with additional B3
  373. system architecture requirements, for example, minimal TCB and layering. 
  374.  
  375. Requirement 29 - Informally show consistency of the TCB implementation (in
  376. hardware, firmware, and software) with the DTLS. 
  377.  
  378. Requirement 30 - Informally show correspondence between elements of the
  379. DTLS and elements of the TCB. 
  380.  
  381. Requirement 31 - Informally show consistency of the DTLS with the model. 
  382.  
  383. 3.6 The A1 Design Documentation Requirements
  384.  
  385. Requirement 32 - Informally show consistency of the TCB implementation
  386. with the Formal Top Level Specification (FTLS). 
  387.  
  388. Requirement 33 - Informally show correspondence between elements of the
  389. FTLS and elements of the TCB. 
  390.  
  391. Requirement 34 - Clearly describe hardware, software, and firmware
  392. internal to the TCB that is not dealt with in the FTLS. 
  393.  
  394. Requirement 35 - Informally or formally show consistency of the FTLS with
  395. the model. 
  396.  
  397. Requirement 36 - Informally show correspondence between the FTLS and the
  398. DTLS. 
  399.  
  400. 4. COMPONENTS OF DESIGN DOCUMENTATION
  401.  
  402. Design documentation describes why a system is trusted, how this trust is
  403. achieved, the mechanisms which provide the trust, and the relevant
  404. information that makes proper maintenance of a system possible. Design
  405. documentation at TCSEC class C1 lays the foundation for trusted systems by
  406. defining the philosophy of protection of a system. As the TCSEC classes
  407. increase, the level of detail and the quantity of information contained in
  408. the design documentation shall also increase. The following sections
  409. discuss design documentation and its role in describing the security
  410. policy of the system, the protection mechanisms of the system, and the
  411. specific requirements concerning covert channels. 
  412.  
  413. 4.1 Documenting The Security Policy
  414.  
  415. The design and development of any trusted system, from TCSEC class C1 to
  416. A1, is based upon a philosophy of protection that shall be described in
  417. the design documentation (Requirement 1). Design documentation explains
  418. and defines the philosophy of protection by describing how a system
  419. provides trust. Trust in computer systems is provided by the protection
  420. mechanisms contained within the TCB, such as discretionary access controls
  421. and identification and authentication mechanisms. These and all of the TCB
  422. mechanisms and their functions shall be described in the design
  423. documentation. In addition, the system security policy, i.e., what is
  424. being accessed by whom or from what, shall also be described in the design
  425. documentation (Requirement 6). 
  426.  
  427. In order to describe how a system is trustworthy, the design documentation
  428. shall describe how the philosophy of protection is translated into the TCB
  429. (Requirement 2) and how it is supported by the TCB protection mechanisms.
  430. The design documentation shall first define the boundaries of the system
  431. and shall describe the parts of the system that are security relevant and
  432. the parts that are not. Rationale shall be presented that those portions
  433. of the system which are claimed to be outside of the TCB, are really
  434. outside. The proper identification of these parts is important to the
  435. maintenance of security in the system because it is necessary to know when
  436. a change to the system will affect the TCB implementation, and possibly
  437. violate the security policy of the system. 
  438.  
  439. At the higher TCSEC classes, the description of the philosophy of
  440. protection evolves into a more structured description of how a system
  441. provides trust. At TCSEC class B1, this philosophy of protection shall be
  442. presented as an informal or formal security policy model in the design
  443. documentation (Requirement 7). This security policy model shall informally
  444. or formally define the subjects, objects, modes of access, and the
  445. security properties of the system. In addition, the model shall define the
  446. initial state of the system, a secure state of the system, and the way in
  447. which the system progresses from one state to the next. An informal
  448. security policy model may be presented in a natural language, for example,
  449. English. An explanation shall be provided demonstrating that the informal
  450. model is sufficient to enforce the security policy (Requirement 8). 
  451.  
  452. At TCSEC class B2, a formal security policy model shall exist (Requirement
  453. 13). In addition to the B1 requirements, the formal security policy model
  454. shall contain: a set of security properties that captures the security
  455. policy, an abstract description of the operations performed by the TCB,
  456. and a rigorous argument through the use of predicate calculus that the
  457. description is consistent - internally consistent, that is, is not
  458. self-contradictory. The model shall include a proof that if the initial
  459. state of the system satisfies the definition of a "secure" state and if
  460. all assumptions of the model are satisfied, then all future states of the
  461. system will be secure. 
  462.  
  463. A security policy model provides assurance that the system has been
  464. designed to enforce the security policy and provides a basis for the TCB
  465. implementation. As a means of increasing assurance, the design
  466. documentation shall show that the security policy model is sufficient to
  467. enforce the security policy of the system (Requirement 8). At TCSEC class
  468. B1, it shall be sufficient to show this in a natural language, e.g.,
  469. English, but at class B2, this sufficiency of the security policy model
  470. shall be shown through a formal proof (Requirement 14). The design
  471. documentation shall provide a mapping of the security properties to the
  472. security policy. This sufficiency shall be demonstrated by describing how
  473. all aspects of the security policy are addressed by the security policy
  474. model. 
  475.  
  476. An example of a formal security policy that enforces the DoD security
  477. policy is the Bell-La Padula model [1]. Although the Bell-La Padula
  478. security policy model supports the DoD security policy, it is important to
  479. realize that this does not mean that the Bell-La Padula model model can be
  480. directly used for all systems. The Bell-La Padula model, when used with
  481. different systems, will need to be representative of the system. 
  482.  
  483. At TCSEC class B2, the TCSEC design specification and verification
  484. requirement calls for a descriptive top level specification (DTLS) of the
  485. TCB to be maintained to provide documentary evidence of how the formal
  486. security policy model is implemented through the TCB interface. The DTLS
  487. provides evaluators with a better understanding of the implementation of
  488. the reference monitor and provides maintenance personnel with the
  489. necessary documentation to correct, modify, or augment the TCB without
  490. destroying the TCB's cohesiveness and internal consistency. The
  491. description of the TCB should contain a description of the services and
  492. functions provided by the TCB and how they are invoked. For example, for
  493. UNIX1-based systems, the DTLS may be based upon enhanced manual pages. The
  494. manual pages shall include enough information to satisfy the design
  495. specification and verification requirement that the TCB be described in
  496. "terms of exceptions, error messages, and effects."[5] These individual
  497. manual sections should be accompanied by detailed section headers which
  498. clearly explain the security concepts and entities referenced within each
  499. section. The design documentation shall demonstrate that the DTLS is an
  500. accurate description of the TCB interface (Requirement 15). It should do
  501. this by accurately and completely describing the DTLS in relation to the
  502. TCB interface. 
  503.  
  504. The design documentation shall be used to test against the TCB to,
  505. "demonstrate that the TCB implementation is consistent with the
  506. descriptive top level specification." [5] The design documentation shall
  507. describe how the TCB is structured to facilitate this testing (Requirement
  508. 20). 
  509.  
  510. At TCSEC class B3, the design documentation shall informally show
  511. consistency of the TCB hardware, firmware, and software implementation
  512. with the DTLS as well as showing correspondence between elements of the
  513. DTLS and elements of the TCB (Requirements 29, 30). The goal of these two
  514. requirements is to ensure that the mapping between the TCB and DTLS is
  515. complete, easily understandable, unambiguous, and one-to-one between
  516. elements of the TCB implementation and elements of the DTLS. The level of
  517. detail of this mapping should be sufficient for any inconsistency to be
  518. obvious to members of the vendor's development team throughout the system
  519. life-cycle. 
  520.  
  521. Also at TCSEC class B3, the design documentation shall provide a mapping
  522. from the DTLS to the TCB implementation (Requirement 30). This mapping
  523. should demonstrate that all elements that were specified were, in fact,
  524. implemented, and that any code that appears which is not specified
  525. directly merely reflects implementation detail; that there are no new,
  526. unspecified, user interfaces implemented. With this mapping, the design
  527. documentation shall describe all areas of correspondence between elements
  528. of the - 
  529.  
  530. ----------------------------------- 
  531.  
  532. 1 UNIX is a trademark of AT&T Bell Labs 
  533.  
  534. DTLS and elements of the TCB. For example, the mapping may be pointers in
  535. the DTLS description to source code modules of the TCB implementation. 
  536.  
  537. The addition of the design specification and verification requirement of a
  538. mapping between the DTLS and the formal security policy model completes
  539. the evidence from the security policy to implementation. The entities of
  540. the model shall be shown to correspond to the elements of the DTLS
  541. (Requirement 31). This correspondence provides assurance that the security
  542. properties that are proven in the formal model are accurately reflected in
  543. the implementation. 
  544.  
  545. At TCSEC class A1, the mapping shall be from the formal top level
  546. specification (FTLS) to the TCB (Requirements 32, 33). In addition, the
  547. mapping to the model shall be from the FTLS (Requirement 35). These
  548. changes reflect the introduction of an FTLS requirement in the design
  549. specification and verification requirements at A1. The design
  550. documentation shall describe how the FTLS accurately represents the TCB
  551. interface. The hardware/firmware components of the TCB, such as mapping
  552. registers and direct memory access input/output (I/O) components, that are
  553. directly or indirectly visible at the TCB interface shall be described in
  554. the design documentation. As stated previously, the goal of these
  555. requirements is to ensure that the mapping between the elements of the TCB
  556. implementation and the FTLS are complete, easily understandable,
  557. unambiguous, and one-to-one. 
  558.  
  559. Although the TCSEC design documentation requirement changes at class A1 to
  560. require a mapping from the FTLS to the TCB, a DTLS is still required for
  561. class A1 systems. At TCSEC class A1, the DTLS serves to augment the FTLS
  562. by completing the description of the TCB in an informal language and by
  563. providing the conceptual glue to the specification of the reference
  564. monitor mechanism and the other TCB components. Since there is an explicit
  565. requirement at class A1 that both the FTLS and DTLS correspond to the
  566. formal security policy model, the DTLS and the FTLS must correspond
  567. (Requirement 36). At TCSEC class A1, "the FTLS and DTLS may be two
  568. separate documents, or they may be combined into a Complete Top Level
  569. Specification (CTLS). In a CTLS, the FTLS and DTLS portions (shall) be
  570. separately identifiable. The CTLS (shall) be a complete and accurate
  571. description of the TCB, and it (shall) be sufficiently well
  572. commented/annotated so that it can be easily understood with little or no
  573. knowledge of formal specifications."[8] 
  574.  
  575. It is recognized that not all of the TCB internals are able to be
  576. specified within the FTLS. For the hardware, firmware, and software
  577. internal to the TCB, but not dealt with in the FTLS, the design
  578. documentation shall describe them in complete, clear, and careful detail
  579. (Requirement 34). 
  580.  
  581. 4.2 Documenting TCB Protection Mechanisms
  582.  
  583. As part of the description of the philosophy of protection and how it
  584. translates into the TCB, the design documentation shall include
  585. explanations of the security services offered by the TCB software,
  586. hardware, and firmware mechanisms from a system level view (Requirement
  587. 2). At TCSEC class C1, the design documentation for these protection
  588. mechanisms shall include how the mechanisms protect the TCB from tampering
  589. (Requirements 5). The description of why the TCB is tamper resistant is an
  590. important requirement for all of the TCSEC classes. This design
  591. documentation requirement supports the TCSEC class C1 system architecture
  592. requirement which calls for the TCB to maintain a domain that implements
  593. the reference monitor concept that, "protects it from external
  594. interference or tampering"[5]. The mechanisms described in this section of
  595. the design documentation include things such as Discretionary Access
  596. Control (DAC) and identification and authentication (I&A) mechanisms. For
  597. example, the design documentation shall describe the DAC enforcement
  598. mechanism and how it controls discretionary access between named users or
  599. groups and named objects within the ADP system. As it relates to
  600. identification and authentication, the design documentation shall describe
  601. how users are identified to the TCB and the mechanism that authenticates
  602. the user's identity. Furthermore, the design documentation shall describe
  603. how the TCB protects the authentication data. To ensure that these
  604. mechanisms have not failed in any way, hardware and software mechanisms
  605. shall exist to periodically validate the correct operation of the on-site
  606. hardware and firmware elements of the TCB. These system integrity
  607. mechanisms shall also be described in the design documentation. 
  608.  
  609. At TCSEC class B1, the design documentation shall identify and provide
  610. descriptions of the TCB protection mechanisms (Requirement 9). This
  611. documentation is required to provide the additional assurance required at
  612. TCSEC class B1. In most cases, these TCB protection mechanisms at TCSEC
  613. class B1 may be the same protection mechanisms that were described in
  614. TCSEC class C1, but at class B1, the description of these mechanisms shall
  615. describe how they support the additional system architecture requirement
  616. for process isolation. Process isolation mechanisms that prevent untrusted
  617. subjects from directly accessing separate address spaces are introduced at
  618. TCSEC class B1 and shall be described in the design documentation. The
  619. design documentation shall also show that all of the security services
  620. required by the security policy model are provided by the TCB mechanisms
  621. (Requirement 10). 
  622.  
  623. At TCSEC class B2, the design documentation shall describe how the TCB
  624. protection mechanisms implement the reference monitor concept, i.e., is
  625. nonbypassable, always invoked, and small enough to be analyzed
  626. (Requirement 16). The design documentation requirement should demonstrate
  627. how the reference validation mechanism is tamper resistant, cannot be
  628. bypassed, is correctly implemented, and is structured to enforce least
  629. privilege (Requirements 17, 18, 19, 21). Although a reference monitor has
  630. been in place since TCSEC class C1, the system architecture requirements
  631. at TCSEC class B2 require that the TCB be protected, "from external
  632. interference and tampering," maintain process isolation, and be
  633. "internally structured into well defined largely independent modules."[5]
  634. These additional requirements shall be reflected in the design
  635. documentation. 
  636.  
  637. One position for how the reference monitor hardware should be documented
  638. is presented in the following paragraphs: 
  639.  
  640. "For microprograms (firmware), design documentation is needed for common
  641. routines, that is, documentation which fully describes the functionality
  642. and what is done to implement that functionality. At the least, a high
  643. level view of major operations, e.g., interrupts, I/O instruction
  644. interpretations is needed if the microcode is not modular enough to be
  645. described in terms of microroutines. 
  646.  
  647. For items inside the TCB, but outside of the reference monitor (such as
  648. most disk controllers, printers, and other peripherals), the interface
  649. must be described, but not the internals. 
  650.  
  651. In the case of systems that do not use microcode, convincing arguments
  652. must be provided as to what elements of the hardware are security critical
  653. and why."[2] 
  654.  
  655. The design documentation for the TCB firmware should parallel the
  656. documentation that is written for the TCB software, that is, it should
  657. fully describe the functionality and what is done to implement the
  658. functionality of the security kernel. 
  659.  
  660. Assurance needs to be provided that the TCB is protected from
  661. modification. At TCSEC class B2, the design documentation shall provide
  662. this assurance through a description of why the reference monitor is
  663. tamper resistant (Requirement 17). This description shall include the
  664. methods and mechanisms by which the TCB protects itself from illicit
  665. modification. Any hardware mechanisms used by the TCB to separate
  666. protection critical elements from those that are not protection critical
  667. shall be described. The mechanisms used by the TCB to help support
  668. logically distinct storage objects with separate attributes shall also be
  669. described. The mechanisms used to protect against illicit modification may
  670. include some of the same mechanisms used to mediate accesses of objects by
  671. subjects that were introduced at TCSEC class C1. These mechanisms shall be
  672. described again at TCSEC class B2, but in greater detail as to how they
  673. apply to the reference validation mechanism. 
  674.  
  675. The previous paragraph explained how the design documentation describes
  676. protection mechanisms, but more importantly, at TCSEC class B2, the design
  677. documentation shall show that all of the TCB software, firmware, and
  678. hardware mechanisms have been implemented as described and that the
  679. implementation functions correctly (Requirement 19). The design
  680. documentation shall justify the correctness of the entire TCB. 
  681.  
  682. Also, at TCSEC class B2, the design documentation shall describe how the
  683. TCB is structured to enforce least privilege (Requirement 21). This
  684. description shall relate to the hardware, firmware, and software modules
  685. of the TCB, as well as to the enforcement of least privilege both within
  686. the TCB and upon trusted subjects. Least privilege ensures that any TCB
  687. module or trusted process has only those privileges and capabilities
  688. needed for it to perform the specific function for which it was designed.
  689. For example, if the hardware architecture implements protection rings, a
  690. description shall be given of the ring mechanisms. This description shall
  691. show how access to the innermost ring provides a means of running highly
  692. privileged processes, while the outermost ring provides a means of running
  693. unprivileged processes. Likewise, the description shall justify placement
  694. of functions within the higher privileged rings and the conferring of
  695. special privileges to trusted processes. Thus, the hardware is shown as a
  696. means of enforcing least privilege. 
  697.  
  698. Similarly, firmware and software mechanisms may provide a means of
  699. enforcing least privilege. For example, a labeling mechanism may be
  700. implemented in software or firmware. Because labels may be used to enforce
  701. least privilege, the software or firmware modules enforcing the labeling
  702. and label based access control shall be shown as a means of enforcing
  703. least privilege. 
  704.  
  705. The separation of administrative roles in the system is one more way in
  706. which least privilege may be exercised. In this case, the roles of system
  707. administrator, security administrator, and/or system auditor may be
  708. performed by separate individuals. This is to ensure that the security
  709. functions of the system are not able to be performed by a single person.
  710. The way these roles are carried out in the system shall be described in
  711. the design documentation. 
  712.  
  713. At TCSEC class B3, the system architecture requirements call for the TCB
  714. to be minimized, i.e., only security relevant functions appear within the
  715. TCB. The TCB at this class, "shall incorporate significant use of
  716. layering, abstraction, and data hiding," and shall have minimal
  717. complexity. The design documentation shall describe how the system
  718. complies with these additional architectural requirements in (Requirement
  719. 28). As stated previously, as the TCSEC classes increase and the
  720. implementation of the reference monitor concept becomes more defined, the
  721. amount of design documentation shall also increase. 
  722.  
  723. 4.3 Documentation of Covert Channels
  724.  
  725. A portion of the B2 requirements for design documentation addresses covert
  726. channels. The results of all covert channel analysis need to be in the
  727. design documentation to aid in the design and development of TCB
  728. mechanisms. For this reason, the design documentation shall present the
  729. results of the covert channel analysis and the methodology used
  730. (Requirement 22). The design documentation shall provide an overview of
  731. the covert storage channel analysis and testing procedures. It shall
  732. document the results of these tests and all of the covert channels
  733. identified. All auditable events shall be identified and described for all
  734. covert storage channels that are not removed from the system (Requirement
  735. 24). 
  736.  
  737. When covert channels are identified, actions are sometimes taken to
  738. restrict the bandwidth of those channels. The design documentation shall
  739. describe and discuss these actions and the resulting degree of covert
  740. channel restriction in light of performance degradation, operational
  741. utility, or other considerations (Requirement 23). Processing delays
  742. resulting from reducing the number and bandwidth of covert channels shall
  743. be identified and characterized. The design documentation shall also note
  744. whether the exploitation of known covert channels is auditable. There will
  745. be some covert storage channels whose use will not be detectable by
  746. auditing mechanisms. The design documentation shall document the worst
  747. case and expected case bandwidths of these storage channels whose
  748. exploitation is not auditable (Requirement 25). 
  749.  
  750. At TCSEC class B3, the design documentation shall recognize the
  751. introduction of covert timing channels into the requirements and shall
  752. consider them in all covert channel related descriptions as stated above
  753. (Requirements 26, 27). The covert timing channel analysis and testing
  754. procedures, and the results obtained from the tests shall be described in
  755. the design documentation. Additionally at TCSEC class A1, formal methods
  756. shall be used in the covert channel analysis and shall be described in the
  757. design documentation. 
  758.  
  759. 5. OTHER TOPICS
  760.  
  761. 5.1 Modularity
  762.  
  763. An important architectural feature of trusted systems for TCSEC class B2
  764. and above is that the TCB be modular. The modularity of the TCB is
  765. important for ease of understanding, ease of analysis, and ease of
  766. maintenance. Modularity ensures that interfaces are well defined and
  767. errors are contained. It also provides a basis for enforcing least
  768. privilege. The content of hardware and software modules should be selected
  769. based on the following criteria: a module performs exactly one well
  770. defined action, a module has a well defined interface, a module interacts
  771. with other modules only in well defined ways, and a module is called upon
  772. to perform a function whenever that function is required. Although TCB
  773. modularity is not a requirement until class B2 (Requirements 11, 12), it
  774. is possible that vendors would want to build systems with modular TCBs at
  775. the lower classes. Regardless of class, if the TCB is modular, the design
  776. documentation shall describe how the TCB is modular and the interfaces
  777. between the TCB modules (Requirement 3, 4). As with all design
  778. documentation, the level of detail shall permit the description of the
  779. interfaces between the modules to be a useful description. Specifically,
  780. the design documentation shall include identification of the TCB hardware,
  781. software, and firmware modules, why the modules are considered as such,
  782. the interfaces between them, and the implementation of the modules. A
  783. mapping of the security services and mechanisms to the modules should also
  784. be described. 
  785.  
  786. The level of detail of the design documentation increases the amount of
  787. assurance to be gained by the developers and evaluators. The description
  788. of the interfaces between the modules, whether hardware, firmware, or
  789. software, shall describe the types and sources of information passing
  790. between them (Requirement 4). In addition, the interfaces between these
  791. TCB modules and other system modules external to the TCB shall be
  792. described. This description is necessary to show that no breach of
  793. security can occur through the interfaces. 
  794.  
  795. In some cases, software modules may depend upon hardware or firmware
  796. modules to perform correctly and these dependencies should also be
  797. included in the design documentation. 
  798.  
  799. 5.2 Hardware Design Documentation
  800.  
  801. Hardware design documentation for a system shall be provided at all levels
  802. of trust. Specifically, at TCSEC classes B2 and above, it is felt that the
  803. hardware design documentation is critical to the security of a system. At
  804. this class, systems "shall make effective use of available hardware to
  805. separate those elements that are protection critical from those that are
  806. not."[5] To meet this TCSEC requirement, developers should know the
  807. hardware base they are building on top of. Also, evaluators will need the
  808. hardware design documentation in order to evaluate that the vendor is
  809. making "effective use" of the hardware. 
  810.  
  811. The hardware design documentation includes descriptive information about
  812. the system's Central Processing Unit(s) (CPU), Memory Management Unit(s)
  813. (MMU), and all other additional processors, for example, I/O Processors,
  814. channel devices. The hardware design documentation is intended to discuss
  815. what the hardware is meant to do, but does not need to include details of
  816. implementation, such as the flow of control to perform a specific action.
  817. The hardware design documentation for every logical module in the hardware
  818. base should include a functional name, functional description, and a
  819. functional interface of that module. 
  820.  
  821. The hardware design documentation defines the hardware portion of the TCB
  822. interface. The information on the hardware interface is important to
  823. correctly develop TCB routines and device drivers. Additionally, the
  824. hardware design documentation provides sufficient information that the TCB
  825. meets the System Architecture requirements of the TCSEC. 
  826.  
  827. The information contained in the hardware design documentation shall be
  828. complete, specifying all possible interfaces to the system hardware,
  829. including the user-to-hardware interface as well as the TCB
  830. software-to-hardware interface. The hardware design documentation should
  831. include unprivileged instructions, privileged instructions, unpublished
  832. instructions, and all CPU-to-MMU, CPU-to-Channel, CPU-to-I/O bus, and
  833. additional processor interactions. Also, the software interface visible
  834. registers that exist on the CPU, MMU, and other processors shall be
  835. described in the hardware design documentation. 
  836.  
  837. The design documentation for some hardware modules may require internal
  838. detail down to a bit level functional description of the module. The
  839. modules that fall into this category are those that make up thereference
  840. monitor, such as the address translation module, process isolation support
  841. module, fault handling module, I/O control module, and the diagnostic
  842. module. These hardware modules of the reference monitor directly support
  843. security and will require an explanation of why the reference monitor is
  844. "tamper resistant, cannot be bypassed, and is correctly implemented."[5] 
  845.  
  846. 5.3 Configuration Management
  847.  
  848. The design documentation for the system shall be under configuration
  849. management for the entire life-cycle of the system. Design documentation
  850. is only useful if it is complete and accurate. This means that any change
  851. to the system should also result in a change to the design documentation
  852. for the system. 
  853.  
  854. The design documentation for a system should be treated as a configuration
  855. item for the system and should be subject to the identification, control,
  856. accounting, and audit functions of configuration management. "Initial
  857. phases of configuration control are directed towards control of the system
  858. configuration as defined primarily in design documents. 
  859.  
  860. Often a change to one area of a system may necessitate a change to another
  861. area. It is not acceptable to only write documentation for new code or
  862. newly modified code, but rather documentation for all parts of the TCB
  863. that were affected by the addition or change shall be updated accordingly.
  864. Although documentation may be available, unless it is kept under
  865. configuration management and updated properly it will be of little, if any
  866. use. In the event that the system is found to be deficient in
  867. documentation, efforts should be made to create new documentation for
  868. areas of the system where it is presently inadequate or nonexistent."[7] 
  869.  
  870. The TCSEC requirements for configuration management do not begin until
  871. TCSEC class B2, but this should not mean that the design documentation for
  872. TCSEC class C1 to B1 systems not be under some type of control. At these
  873. lower classes, the control process for the design documentation may be
  874. less formal than that required by the configuration management
  875. requirements, but it should still provide assurance that the design
  876. documentation accurately describes the current system. 
  877.  
  878. The National Computer Security Center has recently developed the Ratings
  879. Maintenance Program (RAMP) which requires configuration management at
  880. these lower classes of trust. "By training vendor personnel to recognize
  881. which changes may adversely affect the implementation of the security
  882. policy of the system, and to track these changes to the evaluated product
  883. through the use of configuration management, RAMP will permit a vendor to
  884. maintain the rating of the evaluated product without having to reevaluate
  885. the new version." [7] 
  886.  
  887. For further information about the RAMP program and about the configuration
  888. management requirements for RAMP, contact: 
  889.  
  890. National Computer Security Center 
  891.  
  892. 9800 Savage Road 
  893.  
  894. Fort George G. Meade, MD 20755 6000 
  895.  
  896. Attention: C12 
  897.  
  898. 6. SUMMARY OF DESIGN DOCUMENTATION
  899.  
  900. Design documentation is responsible for describing systems at all levels
  901. of trust. During the life-cycle of a system, it describes the system to
  902. facilitate changes and maintenance of the system. As it relates to the
  903. security of a system, design documentation provides assurance by
  904. describing how a system provides trust and shows that all of the
  905. protection mechanisms of a system are correctly implemented and
  906. sufficiently provide the needed trust. At the lower classes, design
  907. documentation begins to describe how security is provided in a system by
  908. stating the philosophy of protection of the system. At TCSEC class B1, the
  909. design documentation describes the security policy model of a system, and
  910. at TCSEC class B2 the security policy model is required to be formal. 
  911.  
  912. Many of the other requirements in the TCSEC are related to design
  913. documentation. Design documentation shall describe how these requirements
  914. are satisfied. Covert channels are specifically addressed in the design
  915. documentation requirement. The assurance provided by design documentation
  916. is dependent upon its thoroughness and accuracy. When design documentation
  917. is written, the role that it plays in the system life-cycle should be kept
  918. in mind. A new employee should be able to look at the design documentation
  919. and get an understanding of what the current system is and how it works.
  920. The key word in design documentation is current. When a system changes,
  921. the design documentation shall change accordingly. By accurately
  922. describing a system, design documentation provides assurance that there is
  923. an understanding of how and why the system provides trust. In addition, it
  924. provides information that will enable developers to analyze changes to the
  925. system to ensure that they do not adversely affect the trustworthiness of
  926. the system. 
  927.  
  928. APPENDIX B
  929.  
  930. EXCERPTS FROM FINAL EVALUATION REPORTS
  931.  
  932. This appendix reproduces excerpts from Final Evaluation Reports for
  933. products currently on the Evaluated Products List. The excerpts are
  934. reproduced from the "Applicable Features" portion of the section
  935. describing how the product met the requirements for Design Documentation. 
  936.  
  937. The Final Evaluation Reports are available from the National Computer
  938. Security Center. However, most of the vendor documents mentioned in this
  939. appendix contain proprietary information, and therefore are not publicly
  940. available. Please do not request copies of the vendor documents from the
  941. National Computer Security Center. 
  942.  
  943. B.1 CLASS C2
  944.  
  945. B.1.1 UTX/32S[6]
  946.  
  947. The following documents were provided to the evaluation team in
  948. fulfillment of the Design Documentation criterion: 
  949.  
  950. "Security Policy Model" 
  951.  
  952. "Program Maintenance Manual UTX/32S, Release 1.0 (DRAFT)". 
  953.  
  954. "System Calls" and "Maintenance" in the "System Administrator's Reference
  955. Manual". 
  956.  
  957. "4.2BSD and UTX-32 Differences Study for Gould 
  958.  
  959. UTX/32S" 
  960.  
  961. "Memory Management for Gould UTX/32S" 
  962.  
  963. "Object Reuse Study for Gould UTX/32S" 
  964.  
  965. The "Gould UTX/32S 1.0 Security Policy Model" describes Gould's philosophy
  966. of protection and explains how this philosophy is translated into the TCB.
  967. It identifies all elements comprising the TCB, including the kernel,
  968. programs, data files, and processes. Subjects and objects are identified,
  969. and the mediation of accesses between them is described. A mapping from
  970. the TCB to the security philosophy is provided, and the discretionary
  971. access control, identification and authentication, and audit features and
  972. mechanisms are described. Additionally, the document discusses the role of
  973. secure sockets in interprocess communications. The "Gould UTX/32S 1.0
  974. Security Policy Model" identifies all programs comprising the TCB. 
  975.  
  976. The kernel interface is described by the "System Calls" section of the
  977. "System Administrator's Reference Manual". The "Maintenance" section of
  978. the reference manual comprises manual pages useful for systems programmers
  979. in maintaining UTX/32S. "4.2BSD and UTX-32 Differences Study for Gould
  980. UTX/32S" describes differences between 4.2BSD UNIX and Gould UTX/32 
  981.  
  982. 1.2. Using "4.2BSD and 4.3BSD as Examples of the UNIX System," by
  983. J.S. Quarterman, A. Silberschatz, and J.L. Peterson (Computing
  984. Surveys, Vol. 17, No. 4, December 1985, pp. 379-418), as a
  985. baseline, the document identifies all instances where Gould UTX/32
  986. differs from the described UNIX system.
  987.  
  988. The "UTX/32S Program Maintenance Manual" describes code modifications made
  989. to UTX/32 to meet the requirements of the "Gould UTX/32S 1.0 Security
  990. Policy Model". The document includes an overview of the mechanisms
  991. implemented in UTX/32S to strengthen security and to correct problems
  992. found in UTX/32 and other UNIX systems, and detailed descriptions for: the
  993. implementation of trusted servers to replace the functionality of the
  994. eliminated setuid and setgid bits; kernel modifications; auditing
  995. mechanisms; and additions, deletions, and modifications to utilities and
  996. libraries. Each module description includes an overview, a functional
  997. specification, and a design specification. Pointers to source code, which
  998. Gould made available to the evaluation team are provided. 
  999.  
  1000. Security critical features of the Gould PowerNode hardware used by UTX/32S
  1001. are described in "UTX/32S Traps and Interrupts and Memory Management for
  1002. Gould UTX/32S." "UTX/32S Traps and Interrupts" describes how UTX/32S makes
  1003. use of the trap and interrupt facilities to interface with the hardware
  1004. and process environments. "Memory Management for Gould UTX/32S" describes
  1005. how UTX/32S uses the memory management facilities of the PowerNode
  1006. hardware to provide the process environment. Both documents include
  1007. applicable material from "Gould SS 6 (Virtual Mode), V6, and V9 Central
  1008. Processing Unit Reference Manual". 
  1009.  
  1010. "Object Reuse Study for Gould UTX/32S" provides details regarding how
  1011. UTX/32S hardware and software manage system objects. This study identifies
  1012. the system resources which can be allocated and deallocated, and details
  1013. the strategies used to ensure that one process cannot gain access to the
  1014. resources or data previously allocated to another process. This study,
  1015. along with "Memory Management for Gould UTX/32S", provides a good
  1016. description of UTX/32S design features which are used to meet the Object
  1017. Reuse criterion. 
  1018.  
  1019. B.2 CLASS B2
  1020.  
  1021. B.2.1 Multics3]
  1022.  
  1023. The following documents satisfy the Design Documentation requirement: 
  1024.  
  1025. Applicable Features 
  1026.  
  1027. The "Computer Security Model: Unified Exposition and MULTICS
  1028. Interpretation" provides a description of Honeywell's philosophy for
  1029. protection and how this is translated into the TCB. The security model
  1030. enforced by the TCB is the Bell-La Padula model. 
  1031.  
  1032. Multics has a set of Multics Design Documents (MDDs) that describe the
  1033. TCB. (These documents are Honeywell Internal Documentation and are
  1034. available only through the vendor by request. Honeywell reserves the right
  1035. to deny such requests.) The MDDs are organized by major TCB service or
  1036. function. These design documents describe the interfaces between TCB
  1037. modules, how the TCB implements the reference monitor, and how the TCB is
  1038. structured to facilitate testing and enforce least privilege. 
  1039.  
  1040. These documents coupled with the Honeywell produced "Multics
  1041. Interpretation," referenced in the previous paragraph identify the
  1042. security protection mechanisms and explain how they satisfy the model. 
  1043.  
  1044. The DTLS is an accurate description of the TCB interface. 
  1045.  
  1046. The "Covert Channel Analysis" describes all identified covert channels,
  1047. how they can and cannot be restricted, how they are audited, and their
  1048. bandwidths. 
  1049.  
  1050. B.3 CLASS A1
  1051.  
  1052. B.3.1 SCOMP [4]
  1053.  
  1054. The following documents satisfy the Design Documentation requirement: The
  1055. manufacturer's philosophy of protection is documented in "SCOMP: A
  1056. Solution to the Multilevel Security Problem" and its translation into the
  1057. TCB given in "SCOMP Trusted Computing Base." The interfaces between the
  1058. TCB modules are described in the several Part II specifications, 
  1059.  
  1060. "Detail Specification for SCOMP Kernel Part I, 
  1061.  
  1062. Release 2.1" 
  1063.  
  1064. "Detail Specification for SCOMP Kernel Part II, 
  1065.  
  1066. Release 2.1" 
  1067.  
  1068. A formal description of the security policy model (Bell-La Padula) that is
  1069. enforced by the TCB is given in "Secure Computer Systems", for the general
  1070. case and Multics in particular in "Computer Security Model: 
  1071.  
  1072. Unified Exposition and MULTICS Interpretation". The Bell-La Padula Model
  1073. has been accepted by the National Computer Security Center to model
  1074. security policy "Security Requirements for Automatic Data Processing
  1075. Systems" and to be consistent with its axioms. An interpretation of the
  1076. model for the SCOMP system is given in "SCOMP Interpretation of the
  1077. Bell-La Padula Model." 
  1078.  
  1079. The specific TCB protection mechanisms are 1) protection rings, 2) SPM
  1080. mediation of per user virtual memory, 3) minimum privilege for each TCB
  1081. function, 4) integrity levels for users, operators, administrators, and
  1082. security administrators, 5) individual trusted software processes for
  1083. separate functions, and 6) ring gates and checks on parameter passing. The
  1084. Part II Specifications previously referenced provide the necessary
  1085. documentation for satisfaction of this requirement. The explanation given
  1086. to show that the TCB protection mechanisms satisfy the model appears in
  1087. "SCOMP Interpretation of the Bell-La Padula Model." 
  1088.  
  1089. Section 3 of "SCOMP Trusted Computing Base" describes the SCOMP TCB
  1090. reference monitor implementation. An analysis of the Reference Monitor
  1091. appears in Appendix C and concludes that the informal proofs that the
  1092. SCOMP system implements the reference monitor concept are adequate. 
  1093.  
  1094. The TCB implementation was shown to be consistent with the FTLS by
  1095. specification to source code mappings 
  1096.  
  1097. "FTLS to Code Mapping for the SCOMP Kernel Software" 
  1098.  
  1099. "FTLS to Code Mapping for SCOMP Trusted Software" 
  1100.  
  1101. "Justification for Unspecified Code for the SCOMP Kernel Software, Release
  1102. 2.1" 
  1103.  
  1104. "Justification for Unspecified Code for SCOMP Trusted Software" 
  1105.  
  1106. TCB testing is documented in: 
  1107.  
  1108. "SCOMP Kernel Test Procedures" 
  1109.  
  1110. "SCOMP Kernel Functional Test Summary" 
  1111.  
  1112. "Kernel Software Test Report for the SCOMP, 
  1113.  
  1114. Release 2.1"
  1115.  
  1116. "Trusted Software Test Plan for the SCOMP" 
  1117.  
  1118. "Trusted Software Test Report for the SCOMP, 
  1119.  
  1120. STOP Release 2.0"
  1121.  
  1122. "Trusted Software Test Report for the SCOMP, 
  1123.  
  1124. Appendix A:Test Programs, Appendix B: Test Results" 
  1125.  
  1126. "SCOMP Test and Verification Software 
  1127.  
  1128. Description, Rev. 3" 
  1129.  
  1130. The TCB structure provided added assurance of the validity of the testing
  1131. and helped to demonstrate the implementation of least privilege. The
  1132. results of the covert channel analysis including conservative bandwidth
  1133. estimates are presented in "Covert Channels in the SCOMP Kernel" and "Flow
  1134. and Covert Channel Analysis for SCOMP Trusted Software, Release 2.1." 61
  1135. Auditable events, identified in Section 13 of "SCOMP Trusted Facility
  1136. Manual, STOP Release 2.1", and the scheme of randomly selected delays on
  1137. exception returns appear to satisfactorily limit the utility of the
  1138. identified covert channels. 
  1139.  
  1140. Finally, the internal TCB mechanisms that are not security related and
  1141. hence not dealt with in the FTLS are described in the commercial Honeywell
  1142. Level 6 documentation ("Honeywell Level 6 Minicomputer Systems Handbook,
  1143. CC71" and "Honeywell Level 6 Communications Handbook, AT97-02D"), and the
  1144. SCOMP system unique specifications: 
  1145.  
  1146. "Detail Specification for SCOMP Kernel Part I,Release 2.1" 
  1147.  
  1148. "Detail Specification for SCOMP Kernel Part II, Release 2.1". 
  1149.  
  1150. GLOSSARY
  1151.  
  1152. Access
  1153.  
  1154. A specific type of interaction between a subject and an object that
  1155. results in the flow of information from one to the other.[9] 
  1156.  
  1157. Access Attribute
  1158.  
  1159. Characteristic of an access of an object that specifies possible results
  1160. of the access. Four example access attributes follow: execute (processing
  1161. based upon the object accessed, but neither altering nor viewing
  1162. capability); read (viewing but not altering capability); append (altering
  1163. but not viewing capability); and write (both altering and viewing
  1164. capabilities).[1] 
  1165.  
  1166. Audit Trail
  1167.  
  1168. A chronological record of system activities that is sufficient to enable
  1169. the reconstruction, reviewing, and examination of the sequence of
  1170. environments and activities surrounding or leading to an operation, a
  1171. procedure, or an event transaction from its inception to final results.[9]
  1172.  
  1173. Covert Channel
  1174.  
  1175. A communication channel that allows two cooperating processes to transfer
  1176. information in a manner that violates the system's security policy. Also
  1177. called confinement channel.[9] 
  1178.  
  1179. Covert Storage Channel
  1180.  
  1181. A covert channel that involves the direct or indirect writing of a storage
  1182. location by one process and the direct or indirect reading of the storage
  1183. location by another process. Covert storage channels typically involve a
  1184. finite resource (e.g., sectors on a disk) that is shared by two subjects
  1185. at different security levels.[5] 
  1186.  
  1187. Covert Timing Channel
  1188.  
  1189. A covert channel in which one process signals information to another by
  1190. modulating its own use of system resources (e.g., CPU time) in such a way
  1191. that this manipulation affects the real response time observed by the
  1192. second process.[5] 
  1193.  
  1194. Descriptive Top Level Specification (DTLS)
  1195.  
  1196. A top level specification that is written in a natural language (e.g.,
  1197. English), an informal program design notation, or a combination of the
  1198. two.[5] 
  1199.  
  1200. Formal Security Policy Model
  1201.  
  1202. A mathematically precise statement of a security policy. To be adequately
  1203. precise, such a model must represent the initial state of a system, the
  1204. way in which the system progresses from one state to another, and a
  1205. definition of a "secure" state of the system. To be acceptable as a basis
  1206. for a TCB, the model must be supported by a formal proof that if the
  1207. initial state of the system satisfies the definition of a "secure" state
  1208. and if all assumptions required by the model hold, then all future states
  1209. of the system will be secure. Some formal modeling techniques include:
  1210. state transition models, temporal logic models, denotational semantics
  1211. models, algebraic specification models. An example is the model described
  1212. by Bell-La Padula.[9] 
  1213.  
  1214. Formal Top Level Specification (FTLS)
  1215.  
  1216. A top level specification that is written in a formal mathematical
  1217. language to allow theorems showing the correspondence of the system
  1218. specification to its formal requirements to be hypothesized and formally
  1219. proven.[9] 
  1220.  
  1221. Least Privilege
  1222.  
  1223. This principle requires that each subject in a system be granted the most
  1224. restrictive set of privileges needed for the performance of authorized
  1225. tasks. The application of this principle limits the damage that can result
  1226. from accident, error, or unauthorized use.[9] 
  1227.  
  1228. Object
  1229.  
  1230. A passive entity that contains or receives information. Access to an
  1231. object potentially implies access to the information it contains. Examples
  1232. of objects are: records, blocks, pages, segments, files, directories,
  1233. directory trees, and programs, as well as bits, bytes, words, fields,
  1234. processors, video displays, keyboards, clocks, printers, and network
  1235. nodes.[9] 
  1236.  
  1237. Reference Monitor Concept
  1238.  
  1239. An access control concept that refers to an abstract machine that mediates
  1240. all accesses to objects by subjects.[9] 
  1241.  
  1242. Security Kernel
  1243.  
  1244. The hardware, firmware, and software elements of the Trusted Computing
  1245. Base that implement the reference monitor concept. It must mediate all
  1246. accesses, be protected from modification, and be verifiable as correct.[9]
  1247.  
  1248. Security Level
  1249.  
  1250. The combination of hierarchical classification and a set of
  1251. nonhierarchical categories that represents the sensitivity of
  1252. information.[9] 
  1253.  
  1254. Security Mechanism
  1255.  
  1256. A system or means of implementing a security service within a system. 
  1257.  
  1258. Security Policy
  1259.  
  1260. The set of laws, rules, and practices that regulate how an organization
  1261. manages, protects, and distributes sensitive information.[9] 
  1262.  
  1263. Security Policy Model
  1264.  
  1265. A formal presentation of the security policy enforced by the system. It
  1266. must identify the set of rules and practices that regulate how a system
  1267. manages, protects, and distributes sensitive information.[9] 
  1268.  
  1269. Security Service
  1270.  
  1271. A system or method of providing a security relevant feature in the system.
  1272.  
  1273. Sensitivity Label
  1274.  
  1275. A piece of information that represents the security level of an object.
  1276. Sensitivity labels are used by the TCB as the basis for mandatory access
  1277. control decisions.[9] 
  1278.  
  1279. Subject
  1280.  
  1281. An active entity, generally in the form of a person, process, or device
  1282. that causes information to flow among objects or changes the system state.
  1283. Technically, a process/domain pair.[9] 
  1284.  
  1285. Trusted Computing Base (TCB) 
  1286.  
  1287. The totality of protection mechanisms within a computer system-including
  1288. hardware, firmware, and software-the combination of which is responsible
  1289. for enforcing a security policy. It creates a basic protection environment
  1290. and provides additional user services required for a trusted computer
  1291. system. The ability of a trusted computing base to correctly enforce a
  1292. security policy depends solely on the mechanisms within the Trusted
  1293. Computing Base and on the correct input by system administrative personnel
  1294. of parameters (e.g., a user's clearance level) related to the security
  1295. policy.[9] 
  1296.  
  1297. REFERENCES
  1298.  
  1299.      1. Bell, D.E., and L.J. La Padula, "Secure Computer System: Unified
  1300.      Exposition and Multics Interpretation," MTR-2997, Mitre Corp.,
  1301.      Bedford, MA, July 1975. 
  1302.      2. Gabriele, Mark D., Excerpts from the Criteria Discussions Forum on
  1303.      the Dockmaster computer system at the National Computer Security
  1304.      Center, Forum entry #0680, Hardware Design Documentation at B2 and
  1305.      Above, May 9, 1987. 
  1306.      3. National Computer Security Center, Final Evaluation Report of
  1307.      Honeywell Multics MR11.0, CSC-EPL-85/003, June 1, 1986. 
  1308.      4. Department of Defense Computer Security Center, Final Evaluation
  1309.      of SCOMP, Secure Communications Processor, STOP Release 2.1,
  1310.      CSC-EPL-85/001, September 23, 1985. 
  1311.      5. Department of Defense Standard, Department of Defense Trusted
  1312.      Computer System Evaluation Criteria, DoD 5200.28- STD, December 1985.
  1313.      6. National Computer Security Center, Final Evaluation Report of
  1314.      Gould, Inc., Computer Systems Division, UTX/32S, Release 1.0,
  1315.      CSC-EPL-86/007, December 31, 1986. 
  1316.      7. National Computer Security Center, A Guide to Understanding
  1317.      Configuration Management in Trusted Systems, NCSC-TG-006, March 28,
  1318.      1988. 
  1319.      8. National Computer Security Center, Criterion Interpretation,
  1320.      Report No. C1-CI-01-87, 1987. 
  1321.      9. National Computer Security Center, Glossary of Computer Security
  1322.      Terms, NCSC-TG-004-88, October 1988. 
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.