home *** CD-ROM | disk | FTP | other *** search
/ Hackers Toolkit v2.0 / Hackers_Toolkit_v2.0.iso / HTML / archive / Rainbow / ncsc / aquancsc.txt next >
Text File  |  1999-11-04  |  253KB  |  3,600 lines

  1. FOREWORD
  2.  
  3. The National Computer Security Center is issuing A Guide to Understanding Security 
  4. Modeling in Trusted Systems as part of the "Rainbow Series" of documents produced by our 
  5. Technical Guidelines Program. In the Rainbow Series, we discuss, in detail, the features of the 
  6. Department of Defense Trusted Computer System Evaluation Criteria (DoD 5200.28-STD) and 
  7. provide guidance for meeting each requirement. The National Computer Security Center, through 
  8. its Trusted Product Evaluation Program, evaluates the security features and assurances of 
  9. commercially-produced computer systems. Together, these programs ensure that organizations are 
  10. capable of protecting their important data with trusted computer systems. Security modeling, in its 
  11. various forms, is an important component of the assurance of the trust of a computer system.
  12.  
  13. A Guide to Understanding Security Modeling in Trusted Systems is intended for use by 
  14. personnel responsible for developing models of the security policy of a trusted computer system. 
  15. At lower levels of trust, this model is generally the system"s philosophy of protection. At higher 
  16. trust levels, this also includes informal and formal models of the protection mechanisms within a 
  17. system. This guideline provides information on many aspects of security modeling, including the 
  18. process of developing a security policy model, security modeling techniques, and specific ways to 
  19. meet the requirements of the Department of Defense Trusted Computer System Evaluation 
  20. Criteria.
  21.  
  22. As the Director, National Computer Security Center, I invite your suggestions for revising this 
  23. document. We plan to review and revise this document as the need arises.
  24.  
  25. Patrick R. Gallagher, Jr.       October 1992
  26.  
  27. Director
  28.  
  29. National Computer Security Center
  30.  
  31. ACKNOWLEDGMENTS
  32.  
  33. Special recognition and acknowledgment for their contributions to this document are 
  34. extended to the following: Dr. James Williams, as primary author of this document; Barbara 
  35. Mayer, Capt. James Goldston, USAF, and Lynne Ambuel, for project management.
  36.  
  37. Special thanks are also given to the many evaluators, vendors, and researchers whose careful 
  38. reviews and suggestions contributed to this document, with special recognition for the advice of 
  39. David Bell, Daniel Schnackenberg, Timothy Levin, Marshall Abrams, Deborah Bodeau, Leonard 
  40. La Padula, Jonathan Millen, William L. Harkness, Thomas A. Ambrosi, Paul Pittelli, Dr. Michael 
  41. Sinutko, Jr, and COL Rayford Vaughn, USA.
  42.  
  43. TABLE OF CONTENTS
  44.  
  45. FOREWORD        i
  46.  
  47. ACKNOWLEDGMENT  ii
  48.  
  49. 1.      INTRODUCTION    1
  50.  
  51. 1.1 Background  1       
  52.  
  53. 1.2 Purpose     2
  54.  
  55. 1.3 Control Objectives  3
  56.  
  57. 1.3.1 The Assurance Objective   3
  58.  
  59. 1.3.2 The Security Policy Objective     4
  60.  
  61. 1.4 Historical Overview 5
  62.  
  63. 1.5 Content and Organization    7
  64.  
  65. 2.      OVERVIEW OF A SECURITY MODELING PROCESS 9
  66.  
  67. 2.1 Security Models and Their Purpose   9
  68.  
  69. 2.2 Security Modeling in the System Development Process 11
  70.  
  71. 2.3 Identifying the Contents of a Security Model        14
  72.  
  73. 2.3.1 Step 1: Identify Requirements on the External Interface   16
  74.  
  75. 2.3.2 Step 2: Identify Internal Requirements    18
  76.  
  77. 2.3.3 Step 3: Design Rules of Operation for Policy Enforcement  20
  78.  
  79. 2.3.4 Step 4: Determine What is Already Known   21
  80.  
  81. 2.3.5 Step 5: Demonstrate Consistency and Correctness   22
  82.  
  83. 2.3.6 Step 6: Demonstrate Relevance     23
  84.  
  85. 2.4 Presentation for Evaluation and Use 24
  86.  
  87. 3       .SECURITY MODELING TECHNIQUES           27
  88.  
  89. 3.1 Basic Concepts      27
  90.  
  91. 3.1.1 Data Structures and Storage Objects       28
  92.  
  93. 3.1.2 Processes and Subjects    29
  94.  
  95. 3.1.3 Users and User Roles      31
  96.  
  97. 3.1.4 I/O Devices       33
  98.  
  99. 3.1.5 Security Attributes       35
  100.  
  101. 3.1.6 Partially Ordered Security Attributes     37
  102.  
  103. 3.1.7 Nondisclosure Levels      39
  104.  
  105. 3.1.8 Unlabeled Entities and the Trusted Computing Base 40
  106.  
  107. 3.2 Nondisclosure and Mandatory Access Control  41
  108.  
  109. 3.2.1 External-Interface Requirements and Model 43
  110.  
  111. 3.2.2 Information-Flow Model    45
  112.  
  113. 3.2.3 Application to the Reference Monitor Interface    47
  114.  
  115. 3.2.4 Access-Constraint Model   48
  116.  
  117. 3.2.5 Tailoring the Models      51
  118.  
  119. 3.3 Need-to-Know and Discretionary Access Control       53
  120.  
  121. 3.3.1 DAC Requirements and Mechanisms   54
  122.  
  123. 3.3.2 User Groups and User Roles        55
  124.  
  125. 3.3.3 Sources of Complexity and Weakness        56
  126.  
  127. 3.3.4 Tight Per-User Access Control     59
  128.  
  129. 3.4 TCB Subjects-Privileges and Responsibilities        61
  130.  
  131. 3.4.1 Identifying Privileges and Exemptions     62
  132.  
  133. 3.4.2 Responsible Use of Exemptions     65
  134.  
  135. 3.5 Integrity Modeling  66
  136.  
  137. 3.5.1 Objectives, Policies, and Models  67
  138.  
  139. 3.5.2 Error Detection and Recovery      68
  140.  
  141. 3.5.3 Encapsulation and Level-Based Access Control      71
  142.  
  143. 4. TECHNIQUES FOR SPECIFIC KINDS OF SYSTEM              5
  144.  
  145. 4.1 Operating Systems   75
  146.  
  147. 4.1.1Traditional Access Control Models  75
  148.  
  149. 4.1.2 The Models of Bell and La Padula  77
  150.  
  151. 4.2 Networks and Other Distributed Systems      78
  152.  
  153. 4.2.1 Systems and Their Components      78
  154. 4.2.2 Model Structure and Content       80
  155. 4.2.3 Network Security Models   82
  156. 4.2.4 Individual Component Security Models      84
  157. 4.2.5 Underlying Models of Computation  85
  158.  
  159. 4.3 Database Management Systems 86
  160.  
  161. 4.3.1 System Structure  87
  162. 4.3.2 Integrity Mechanisms and Policies 89
  163. 4.3.3 Aggregation       90
  164.  
  165. 4.3.4 Inference 91
  166. 4.3.5 Partially Automated Labeling      92
  167.  
  168. 4.4 Systems with Extended Support for Label Accuracy    94
  169.  
  170. 4.4.1 Factors Inhibiting Accuracy in Labeling   94
  171. 4.4.2 Floating Sensitivity Labels       95
  172. 4.4.3 Compartmented Mode Workstations (CMW)     95
  173. 4.4.4 The Chinese Wall Security Policy  96
  174.  
  175. 5. MEETING THE REQUIREMENTS             99
  176.  
  177. 5.1 Stated Requirements on the Security Model   99
  178. 5.2 Discussion of the B1 Requirements   100
  179. 5.3 Discussion of the B2 Requirements   103
  180. 5.4 Discussion of the B3 Requirements   104
  181. 5.5 Discussion of the A1 Requirements   105
  182.  
  183. APPENDIX A. SECURITY LEVELS AND PARTIALLY ORDERED SETS          107
  184.  
  185. A.l Terminology 107
  186.  
  187. A.2 Embeddings  109
  188. A.3 Cartesian Products  109
  189.  
  190.  A.4 Duality    110
  191.  
  192. APPENDIX B. AVAILABLE SUPPORT TOOLS             113
  193.  
  194. B.1 FDM: the Formal Development Methodology     114
  195.  
  196. B.2 GVE: the Gypsy Verification Environment     115
  197.  
  198. APPENDIX C. PHILOSOPHY OF PROTECTION OUTLINE            17
  199.  
  200. APPENDIX D. SECURITY MODEL OUTLINE              21
  201.  
  202. APPENDIX E. GLOSSARY            127
  203.  
  204. REFERENCES              45
  205.  
  206. 1.      INTRODUCTION
  207.  
  208. This document provides guidance on the construction, evaluation, and use of security policy 
  209. models for automated information systems (AIS) used to protect sensitive information whose 
  210. unauthorized disclosure, alteration, loss, or destruction must be prevented. In this context, sensitive 
  211. information includes classified information as well as unclassified sensitive information.
  212.  
  213. 1.1     BACKGROUND
  214.  
  215. The National Computer Security Center (NCSC) was established in 1981 and acquired its 
  216. present name in 1985. Its main goal is to encourage the widespread availability of trusted AISs. In 
  217. support of this goal, the DoD Trusted Computer System Evaluation Criteria (TCSEC) was written 
  218. in 1983. It has been adopted, with minor changes, as a DoD standard for the protection of sensitive 
  219. information in DoD computing systems. [NCSC85] The TCSEC is routinely used for the 
  220. evaluation of commercial computing products prior to their accreditation for use in particular 
  221. environments. This evaluation process is discussed in Trusted Product Evaluations: A Guide for 
  222. Vendors. [NCSC90c]
  223.  
  224. The TCSEC divides AISs into four main divisions, labeled D, C, B, and A, in order of 
  225. increasing security protection and assurance. Divisions C through A are further divided into 
  226. ordered subdivisions referred to as classes. For all classes (C1, C2, B1, B2, B3 and A1), the TCSEC 
  227. requires system documentation that includes a philosophy of protection. For classes B1, B2, B3, 
  228. and A1, it also requires an informal or formal security policy model.
  229.  
  230. Although the TCSEC is oriented primarily toward operating systems, its underlying concepts 
  231. have been applied much more generally. In recognition of this, the NCSC has published a Trusted 
  232. Network Interpretation [NCSC87] and a Trusted Database Management System Interpretation. 
  233. [NCSC91] In addition, the NCSC also provides a series of guidelines addressing specific TCSEC 
  234. requirements, of which this document is an example.
  235.  
  236. 1.2     PURPOSE
  237.  
  238. This guideline is intended to give vendors and evaluators of trusted systems a solid 
  239. understanding of the modeling requirements of the TCSEC and the Trusted Network Interpretation 
  240. of the TCSEC (TNI). It presents modeling and philosophy of protection requirements for each of 
  241. the classes in the TCSEC, describes possible approaches to modeling common security 
  242. requirements in various kinds of systems, and explains what kinds of mode is are useful in an 
  243. evaluation. It is intended for vendors, evaluators, and other potential builders and users of security 
  244. models.
  245.  
  246. This guideline discusses the philosophy of protection requirement, explains how it relates to 
  247. security modeling, and provides guidance on documentation relating to the system's philosophy of 
  248. protection and security policy model. It explains the distinction between informal and formal 
  249. security policy models as well as the relationships among application-independent models, 
  250. application-dependent security models, and model interpretations. It also explains which 
  251. techniques may be used to meet the modeling requirements at levels B1 through Al as well as the 
  252. advantages and disadvantages of the various modeling techniques. Finally, it discusses the specific 
  253. TCSEC modeling requirements.
  254.  
  255. This guideline also addresses human aspects of modeling. It describes how modeling captures 
  256. basic security requirements and how the security modeling effort leads to better systems and 
  257. provides a basis for increased assurance of security.
  258.  
  259. Finally, this guideline answers common questions about NCSC recommendations regarding 
  260. the construction of security models. Security policies and models are supplied by vendors in 
  261. response to customer needs and TCSEC requirements; they are not supplied by the NCSC or the 
  262. TCSEC. The TCSEC does, however, set minimum requirements in the areas of mandatory and 
  263. discretionary access control. The TCSEC does not require particular implementation techniques; 
  264. this freedom applies, by extension, to modeling techniques. Acceptability of a technique depends 
  265. on the results achieved. More specifically, a security model must provide a clear and accurate 
  266. description of the security policy requirements, as well as key ideas associated with their 
  267. enforcement. Moreover, one must be able to validate the model using assurance techniques 
  268. appropriate to the proposed evaluation class. Any vendor-supplied modeling technique which 
  269. appears to be compatible with the security modeling requirements will be seriously considered 
  270. during the course of a product evaluation.
  271.  
  272. Topics which are closely related to security modeling include formulation of security policy 
  273. objectives, design specification and verification, covert channel analysis, and implementation 
  274. correspondence analysis. These topics are addressed only to the extent necessary to establish their 
  275. influence on the security modeling process. All but the first of these topics are addressed in other 
  276. guidelines in this series. Security objectives for trusted systems traditionally include 
  277. nondisclosure, integrity, and denial of service. [cf NCSC88, AIS Security] However, the modeling 
  278. of denial of service is not addressed in this guideline, due to the lack of adequate literature on this 
  279. topic. This guideline is written with the understanding that security modeling will continue to 
  280. evolve in response to new policy objectives and modeling techniques associated with future trusted 
  281. system designs.
  282.  
  283. Reading and understanding this guideline is not sufficient to allow an inexperienced 
  284. individual to develop a model. Rather, he or she should read this document in conjunction with one 
  285. or more of the published models in the list of references. This guideline assumes a general 
  286. familiarity with the TCSEC and with computer security. A general text such as Building a Secure 
  287. Computer System [GASS87] may provide useful background reading. Additional mathematical 
  288. background needed for formal modeling can be found in general texts on mathematical structures 
  289. such as Introduction to Mathematical Structures [GALO89].
  290.  
  291. The approaches to security modeling presented in this document are not the only possible 
  292. approaches to satisfying TCSEC modeling requirements, but are merely suggested approaches. 
  293. The presentation of examples illustrating these approaches does not imply NCSC endorsement of 
  294. the products on which these examples are based. Recommendations made in this document are not 
  295. supplementary requirements to the TCSEC. The TCSEC itself (as supplemented by announced 
  296. interpretations [NCSC87, NCSC88a, NCSC88b, NCSC91]) is the only metric used by the NCSC 
  297. to evaluate trusted computing products.
  298.  
  299. 1.3     CONTROL OBJECTIVES
  300.  
  301. The requirements of the TCSEC were derived from three main control objectives: assurance, 
  302. security policy, and accountability. The security modeling requirements of the TCSEC support the 
  303. assurance and security policy control objectives in systems rated B1 and above.
  304.  
  305. 1.3.1                   THE ASSURANCE OBJECTIVE
  306.  
  307. The TCSEC assurance control objective states, in part,
  308.  
  309. "Systems that are used to process or handle classified or other sensitive information 
  310. must be designed to guarantee correct and accurate interpretation of the security policy and 
  311. must not distort the intent of that policy." [NCSC85, º 5.3.3]
  312.  
  313. Assurance in this sense refers primarily to technical assurance rather than social assurance. It 
  314. involves reducing the likelihood that security mechanisms will be subverted as opposed to just 
  315. improving people's confidence in the utility of the security mechanisms.
  316.  
  317. 1.3.2           THE SECURITY POLICY OBJECTIVE
  318.  
  319. The TCSEC security policy control objective states, in part,
  320.  
  321. "A statement of intent with regard to control over access to and dissemination of 
  322. information, to be known as the security policy, must be precisely defined and 
  323. implemented for each system that is used to process sensitive information. The security 
  324. policy must accurately reflect the laws, regulations, and general policies from which it is 
  325. derived." [NCSC85, º 5.3.1]
  326.  
  327.  The security policy objective given in the TCSEC covers "mandatory security policy," 
  328. "discretionary security policy," and "marking" objectives. The mandatory security policy 
  329. objective requires the formulation of a mandatory access control (MAC) policy that regulates 
  330. access by comparing an individual's clearance or authorization for information to the classification 
  331. or sensitivity designation of the information to be accessed. The discretionary access control 
  332. objective requires the formulation of a discretionary access control (DAC) policy that regulates 
  333. access on the basis of each individual's need-to-know, Finally, the marking objective gives labeling 
  334. requirements for information stored in and exported from systems designed to enforce a mandatory 
  335. security policy.
  336.  
  337. The access controls associated with security policies serve to enforce nondisclosure and 
  338. integrity. Nondisclosure controls prevent inappropriate dissemination of information. Integrity 
  339. controls prevent inappropriate modification of information.
  340.  
  341. The security policy control objective requires that the security policy accurately reflect the 
  342. laws, regulations, and general policies from which it is derived. These may include the revised 
  343. DoD Directive 5200.28, Security Requirements for Automated Information Systems (AISs). 
  344. [DOD88a] Section D of Directive 5200.28 gives policy relating to both integrity and 
  345. nondisclosure. It mentions safeguards "against sabotage, tampering, denial of service, espionage, 
  346. fraud, misappropriation, misuse, or release to unauthorized users." Enclosure 2 defines relevant 
  347. terms and, in particular, extends the concept of "user" to include processes and devices interacting 
  348. with an automated information system on behalf of users. Enclosure 3 gives general security 
  349. requirements, including data-integrity requirements. The revised 5200.28 does not use the MAC/
  350. DAC terminology. Instead, it requires accurate marking of sensitive information and the existence 
  351. of an (undifferentiated) access control policy based partly on the identity of individual users. It 
  352. treats need-to-know as a form of least privilege.
  353.  
  354. Security policy relating to nondisclosure stems from Executive Order 12356 [REAG82] and, 
  355. in the case of DoD systems, from DoD 5200.1-R. [DOD86] Depending on the application, the 
  356. security policy may be constrained by a variety of other regulations as well. The collection, 
  357. maintenance, use, and dissemination of personal information is protected by DoD Directive 
  358. 5400.11 [DOD82, º E.2] and by Public Law 100-503 [CONG88]. Classified and other sensitive 
  359. information needed for the conduct of federal programs is protected by the Computer Security Act 
  360. of 1987, Public Law 100-235 [CONG87], which requires safeguards against loss and unauthorized 
  361. modification.
  362.  
  363. 1.4     HISTORICAL OVERVIEW
  364.  
  365. The starting point in modeling a MAC policy is the observation that security levels are 
  366. partially ordered (see Appendix A). This fact was first reflected in the design of the ADEPT-50, 
  367. an IBM 360-based, time-sharing system with both mandatory and discretionary controls. 
  368. [WEIS69, LAND81] The central role of partial orderings in MAC policy models was then 
  369. recognized in subsequent work. [POPE73; BELL73; BELL74a] These partial orderings on security 
  370. levels have become known as dominance relations.
  371.  
  372. Independently of this, access control matrices were used by Lampson and Graham [LAMP71; 
  373. GRAH72] to represent protection data. These works modeled discretionary access control using 
  374. matrices whose rows and columns represented subjects and objects. Subjects were active entities 
  375. such as processes and users. Objects were entities such as data structures that played a passive role, 
  376. but often included subjects as well. Each entry in an access matrix told what a given subject was 
  377. allowed to do with a given object by giving a set of allowed operations such as read, write, execute, 
  378. or change ownership. The AIS used the access matrix to mediate all accesses by subjects to objects.
  379.  
  380. An Air Force Computer Security Technology Planning Study [ANDE72], referred to as "the 
  381. Anderson Report," discussed use of a reference monitor to enforce nondisclosure policies and 
  382. advanced the idea of formal security verification- the use of rigorous mathematical proofs to give 
  383. (partial) assurance that a program design satisfies stated security requirements. This idea was 
  384. investigated by Schell, Downey and Popek. [SCHE73]
  385.  
  386. At that time, Bell and La Padula adapted access control matrices for use in modeling both 
  387. mandatory and discretionary access controls and codified the reference monitor concept using state 
  388. machines. Their machine states included access matrices and other security-relevant information 
  389. and are now often referred to as protection states. Having established the necessary framework, 
  390. they observed that a portion of DoD policy for nondisclosure of classified information could be 
  391. formalized as invariant properties of protection states [LAPA73], that is, as properties which hold 
  392. in all reachable states of the system. Their invariants constrained the allowed accesses between 
  393. subjects and objects. The most significant of these was their *-property It included a form of the 
  394. simple security property and guaranteed that the security level of every object read by an untrusted 
  395. subject was at or below the security level of every object written by that subject. [BELL74] These 
  396. ideas and their use in enforcing nondisclosure are covered in detail in Sections 3.2.4 and 4.1.
  397.  
  398. To complete their state machine, Bell and La Padula introduced a set of state transformations, 
  399. called rules of operation, that modeled basic changes in a protection state and then rigorously 
  400. proved that the rules of operation preserved the identified state invariants. [LAPA73, BELL74, 
  401. BELL76] This work contains the first widely discussed use of mathematical proof for studying 
  402. multilevel security.
  403.  
  404. In parallel with Bell and La Padula, Walter and others developed a similar approach to 
  405. verifying multilevel security. [WALT74, WALT74a] A strong point of the work by Walter et al. 
  406. is the use of modularity and data abstraction techniques that have since been accepted as 
  407. indispensable for verifying large systems.
  408.  
  409. The intent of the state invariants identified by Bell and La Padula is that information is 
  410. allowed to flow from one entity to another only if the second entity is at an equal or higher security 
  411. level than the first. Denning and others attempted to formalize this idea directly using "information 
  412. flow" models. [DENN76, DENN77, COHE77, REIT79, ANDR80]. These models differed in style 
  413. from access control models in that they referred explicitly to information flow, but, in contrast to 
  414. more recent investigations, did not actually define information flow. Denning's work did, 
  415. however, point out an interesting distinction. In the conditional assignment
  416.  
  417. if a = 0 then b := c,
  418.  
  419. information flows explicitly from c to b (when a = 0) and implicitly from a to b (when b  c). 
  420. Denning also pointed out that, in the case of the ADEPT-50, access control can easily allow 
  421. implicit information flow. [DENN77] This problem is discussed in detail in Section 3.2.
  422.  
  423. Discrepancies between information flow and access control open up the possibility of covert 
  424. channels- paths of information flow that malicious processes can use to bypass the access control 
  425. mechanism and thereby violate underlying security objectives. [cf LAMP73] Information flow 
  426. models and concern over covert channels have led to the development of techniques and tools for 
  427. covert channel analysis that are capable of detecting a variety of covert channels. [MILL76, 
  428. MILL81, FEIE77, FEIE80]
  429.  
  430. The developments just described provided the technical background for the security modeling 
  431. requirements given in the TCSEC. A variety of important developments not explicitly reflected in 
  432. the TCSEC have taken place in the last decade and will be presented later in this guideline. The 
  433. class of security policies that can be formally modeled has been greatly extended, beginning with 
  434. Biba's (pre-TCSEC) work on integrity. [BlBA77] Work has also gone into tailoring nondisclosure 
  435. security to particular applications. Finally, various external-interface models have been developed 
  436. that do not constrain internal system structure, an example of which is the noninterference model 
  437. of Goguen and Meseguer. [GOGU82] These models provide a rationale for rigorously assessing 
  438. new approaches to access control.
  439.  
  440. 1.5     CONTENT AND ORGANIZATION
  441.  
  442. Section 2 presents an overview of the security modeling process, with emphasis on 
  443. correctness and utility. Section 3 presents technical detail on how to model concepts of interest, 
  444. including nondisclosure and integrity policies, mandatory and discretionary access controls, and 
  445. exemption from access control within the Trusted Computing Base (TCB).
  446.  
  447. Section 4 shows how to apply the techniques from Section 3 to various kinds of systems; 
  448. including operating systems, networks, database systems, and multilevel workstations. Finally, 
  449. Section 5 summarizes all of the TCSEC security modeling requirements for B1, B2, B3, and A1 
  450. computing systems.
  451.  
  452. Appendix A presents facts about lattices and partially ordered sets that are needed for Sections 
  453. 3 and 4. Appendix B contains brief descriptions of available support tools. Appendices C and D 
  454. contain suggested outlines for a philosophy of protection and a security policy model. Finally, 
  455. Appendix E is a glossary giving definitions of technical terms. This glossary includes all terms that 
  456. are introduced in italics throughout the guideline.
  457.  
  458. When TCSEC requirements are discussed in this guideline, they are identified either by the 
  459. key words "must" or "shall" or by explicit quotations from the TCSEC. By way of contrast, when 
  460. desirable but optional actions and approaches are discussed, they are presented without exhortation 
  461. and are instead accompanied by an explanation of specific advantages or benefits. In a few cases, 
  462. possible requirements are designated by "should," because the implications of the TCSEC are not 
  463. fully understood or agreed upon. 
  464.  
  465. 2.       OVERVIEW OF A SECURITY MODELING PROCESS
  466.  
  467. A security model precisely describes important aspects of security and their relationship to 
  468. system behavior. The primary purpose of a security model is to provide the necessary level of 
  469. understanding for a successful implementation of key security requirements. The security policy 
  470. plays a primary role in determining the content of the security model. Therefore, the successful 
  471. development of a good security model requires a clear, well-rounded security policy. In the case 
  472. of a formal model, the development of the model also must rely on appropriate mathematical 
  473. techniques of description and analysis for its form.
  474.  
  475. Sections 2.1 and 2.2 explain what security models describe, why they are useful, and how they 
  476. are used in the design of secure systems. Section 2.3 introduces general definitions relating to 
  477. security models and explains how security models are created. Finally, Section 2.4 discusses the 
  478. presentation of a security model in a modeling document.
  479.  
  480. 2.1     SECURITY MODELS AND THEIR PURPOSE
  481.  
  482. Early security models focused primarily on nondisclosure of information. More recently, the 
  483. importance of data as a basis for decisions and actions has stimulated interest in integrity models. 
  484. [DOD88a, WHIT84] For example, nondisclosure properties alone do not protect against viruses 
  485. that can cause unauthorized, malicious modification of user programs and data.
  486.  
  487. A wide variety of concepts can impact nondisclosure and integrity in particular system 
  488. designs. As a result, the content of security models is quite varied. Their primary purpose is to 
  489. provide a clear understanding of a system's security requirements. Without such an understanding, 
  490. even the most careful application of the best engineering practices is inadequate for the successful 
  491. construction of secure systems. 
  492.  
  493. Inadequacies in a system can result either from a failure to understand requirements or from 
  494. flaws in their implementation. The former problem, defining what a system should do, is relatively 
  495. difficult in the case of security. The definition must be precise in order to prevent undesired results, 
  496. or subtle flaws, during the implementation of the system design.
  497.  
  498. During the entire design, coding, and review process, the modeled security requirements may 
  499. be used as precise design guidance, thereby providing increased assurance that the modeled 
  500. requirements are satisfied by the system. The precision of the model and resulting guidance can be 
  501. significantly improved by casting the model in a formal language.
  502.  
  503. Once the system has been built, the security model serves the evaluation and accreditation 
  504. processes. It contributes to the evaluators' judgement of how well the developers have understood 
  505. the security policy being implemented and whether there are inconsistencies between security 
  506. requirements and system design. Moreover, the security model provides a mechanism for tailoring 
  507. the evaluation process to the vendor's needs because it presents the security concept that is 
  508. supported by the system being evaluated. The inclusion of particular facts in the security model 
  509. proclaims to evaluators and potential customers that those facts are validated at the level of 
  510. assurance which the TCSEC associates with that system's evaluation class.
  511.  
  512. Upon successful evaluation and use, the security model provides a basis for explaining 
  513. security-relevant aspects of system functionality. Later, during maintenance, it provides a basis for 
  514. guidance in making security-relevant modifications. Finally, by suppressing inessential design 
  515. detail, security models facilitate a broader understanding of security that can be applied to 
  516. increasingly larger classes of systems. Among the many examples of such generalizations is the 
  517. adaptation of traditional reference monitor concepts referenced in the TNI to provide a basis for 
  518. understanding network security requirements. [NCSC87]
  519.  
  520. The intended purpose of a security model suggests several desirable properties. The 
  521. requirements captured by a good model pertain primarily to security, so that they do not unduly 
  522. constrain the functions of the system or its implementation. A good model accurately represents 
  523. the security policy that is actually enforced by the system. Thus, it clarifies both the strengths and 
  524. the potential limitations of the policy. (As an extreme example, if the system can simply declassify 
  525. all objects and then proceed normally, as in McLean's System Z [MCLE87], a good model would 
  526. show this.) Finally, a good model is simple and therefore easy to understand; it can be read and 
  527. fully understood in its entirety by its intended audience. This last property cannot be achieved 
  528. without significant care in choosing the contents, organization, and presentation of the security 
  529. model. For example, the desire to provide a security model with the "look and feel" of UNIX, 
  530. might need to be tempered by the need for simplicity and abstraction. [cf NCSC90b, Sec. 6.2]
  531.  
  532. 2.2     SECURITY MODELING IN THE SYSTEM DEVELOPMENT PROCESS
  533.  
  534. Security requirements are best identified early in the system development process. Not 
  535. identifying security requirements in a timely fashion is likely to have devastating effects on 
  536. security assurance, security and application functionality, development schedule, and overall 
  537. development costs. For example, in the case of a development using DOD-STD-2167A, [DOD88] 
  538. this identification process would be part of the system requirements analysis. The identification of 
  539. security requirements begins with the identification of high-level security objectives (as described 
  540. in Section 1.3) and the methods by which they are to be met, including automated, procedural, and 
  541. physical protection methods. This identification of security requirements and their derivation from 
  542. identified higher-level security objectives is the initial material for a philosophy of protection 
  543. (POP). As indicated in Appendix C, the philosophy of protection may also include a broad range 
  544. of other topics such as the structure of the trusted computing base (TCB) and physical and 
  545. procedural security mechanisms.
  546.  
  547. Those requirements in the philosophy of protection which deal with automated protection 
  548. methods provide an initial definition of security for a security policy model. The model's purpose 
  549. is to precisely state these requirements and to compare them with key aspects of the security 
  550. enforcement mechanism. A security policy model in this sense contains two essential portions: a 
  551. "definition of security" portion that captures key security requirements and a "rules of operation" 
  552. portion that shows how the definition of security is enforced.
  553.  
  554. The model's definition of security can be used to avoid major system development errors. It 
  555. can be used to guide the design of basic software protection mechanisms and to influence the 
  556. design, selection and use of underlying firmware and hardware protection mechanisms. The initial 
  557. draft model, and supporting documentation, provides guidance as to system security during 
  558. reviews of the system design. However, there often are discrepancies between the design and the 
  559. model. Some of these are resolvable and can be identified and corrected during the normal design 
  560. review process. In some cases, however, discrepancies are unavoidable and can only be resolved 
  561. by making some assumptions that simplify the problem. These assumptions need to be justifiable, 
  562. based on the model. These discrepancies can also be addressed through procedural restrictions on 
  563. the use of the system. There are some portions of a security model that may require design 
  564. information that is not initially available and must, therefore, be postponed. Possible examples 
  565. include detailed rules of operation for a security kernel and security models for specific security- 
  566. critical processes. In such cases, the system designer must ensure that discrepancies are noted and 
  567. the completed system will satisfy the completed model.
  568.  
  569. To ensure that a design satisfies modeled security requirements, it is necessary to give a model 
  570. interpretation which shows how the model relates to the system. For evaluation classes B1 and B2, 
  571. this involves explaining how each concept in the model is embodied by the system design and 
  572. informally demonstrating that the modeled requirements are met. Since the model's rules of 
  573. operation must conform to the model's definition of security, the model interpretation need 
  574. demonstrate only that the rules of operation are adhered to. For classes B3 and A1, the model 
  575. interpretation is done in two steps. The design, as reflected in a top-level specification (TLS), is 
  576. shown to be consistent with the model, and the implementation is shown to be consistent with the 
  577. TLS. For Class B3, an informal descriptive top-level specification (DTLS) is used, an informal 
  578. correspondence from the DTLS to the model is performed, and the implementation is shown to be 
  579. consistent with the DTLS. At Class A1, the DTLS is supplemented with a formal top-level 
  580. specification (FTLS), a formal verification proves that the FTLS is consistent with the model, and 
  581. the implementation is shown to be consistent with the FTLS. A fuller summary of model-
  582. interpretation requirements is given in Section 5.
  583.  
  584. The role of security modeling in relation to other aspects of system development is 
  585. summarized in Figure 2.1. Aspects that do not directly involve modeling, per se, are shaded in grey. 
  586. Requirements concerning the model are summarized at the beginning of Section 5. The broadest 
  587. document is the philosophy of protection (POP); it covers higher-level security objectives, derived 
  588. security policies constraining the design and use of the system, and the protection mechanisms 
  589. enforced by the TCB. The POP, the security policy, and the model all cover the system's definition 
  590. of security. Both the POP and the model cover key aspects of the TCB protection mechanisms. At 
  591. B2 and above, the formal model supports a rigorous proof showing that the rules of operation 
  592. enforce the definition of security, and the DTLS gives a functional description of the TCB 
  593. protection mechanisms with emphasis on the TCB interface. At A1, the FTLS formalizes a large 
  594. portion of the DTLS in order to verify that the TCB design satisfies the modeled security 
  595. requirements.
  596.  
  597.  
  598.  
  599. Figure 2.1. Security Documentation
  600.  
  601. The above paragraphs refer to a single security model but networks, database systems, and 
  602. other complex systems may involve several security models or submodels. When a system is made 
  603. up of several complex components or subsystems, interfaces between the components or 
  604. subsystem layers must be modeled, if they play a key role in security protection. In this case, the 
  605. best approach may be to develop separate models for each component or layer in order to show 
  606. how the various subsystems contribute to overall system security. A danger with this approach, 
  607. however, is that the combined effect of the various submodels may not be obvious. This is 
  608. discussed further in Section 4.
  609.  
  610. 2.3     IDENTIFYING THE CONTENTS OF A SECURITY MODEL
  611.  
  612. The most basic strategy in identifying the contents of a security model is perhaps that of divide 
  613. and conquer. The modeling effort may be subdivided according to higher-level security objectives. 
  614. Requirements on a system can be mapped to derived requirements on subsystems. Requirements 
  615. for a particular objective can be classified according to level in a requirements hierarchy.
  616.  
  617. Security modeling provides a five-stage elaboration hierarchy for mapping a system's 
  618. security policy requirements to the behavior of the system. As a result of this hierarchy, the phrases 
  619. "security policy" and "security model" have taken on a variety of meanings. The five relevant 
  620. stages are as follows:
  621.  
  622. 1.                      Higher-level policy objectives
  623.  
  624. 2.              External-interface requirements
  625.  
  626. 3.                      Internal security requirements
  627.  
  628. 4.              Rules of operation
  629.  
  630. 5.      Top-level specification
  631.  
  632. A higher-level objective specifies what is to be achieved by proper design and use of a computing 
  633. system; it constrains the relationship between the system and its environment. The TCSEC control 
  634. objectives belong to this first level of the requirements hierarchy. An external-interface 
  635. requirement applies a higher-level objective to a computing system's external interface; it explains 
  636. what can be expected from the system in support of the objective but does not unduly constrain 
  637. internal system structure. Internal security requirements constrain relationships among system 
  638. components and, in the case of a TCB-oriented design, among controlled entities. Rules of 
  639. operation explain how internal requirements are enforced by specifying access checks and related 
  640. behaviors that guarantee satisfaction of the internal requirements. A top-level specification is a 
  641. completely functional description of the TCB interface. It also specifies behavior of system 
  642. components or controlled entities.
  643.  
  644. In various contexts, the phrase security policy may refer to any or all of the first four stages 
  645. of elaboration. In many contexts, the term security policy refers to organizational security policy. 
  646. [cf NCSC85, Glossary] From a modeling perspective, organizational policies are the source of 
  647. higher-level policy objectives. In much of the literature on security modeling, a system security 
  648. policy is part of the requirements stages of development and provides the definition of security to 
  649. be modeled. Additional thoughts on the importance of distinguishing among policy objectives, 
  650. organizational policies, and system policies may be found in Sterne's article "On the Buzzword 
  651. "Security Policy." [STER91] The terms "AIS security policy" and "automated security policy" are 
  652. synonyms for "system security policy."
  653.  
  654. The security policy model is a model of the security policy enforced by the TCB. It is 
  655. simultaneously a model of the policy and of the system for which the model is given. The portions 
  656. of the system which are constrained by the model belong to the TCB by definition. The model's 
  657. definition of security may contain external-interface requirements, but more traditionally consists 
  658. of internal requirements. Its rules of operation may, in some cases, amount to a top-level 
  659. specification. There is no firm boundary between rules of operation and top-level specifications: 
  660. both explain how internal requirements are enforced by the TCB. However, more detail is required 
  661. in a TLS, including accurate descriptions of the error messages, exceptions, and effects of the TCB 
  662. interface. Security requirements occur implicitly in rules of operation and top-level specifications. 
  663. In this form they are often referred to as security mechanisms. Internal requirements are sometimes 
  664. classified as "policy" or "mechanism" according to whether or not they are derived from a specific 
  665. higher-level policy objective.
  666.  
  667. Conceptually, the security modeling process takes place in two main phases. Requirements 
  668. modeling takes place after a system security policy is fairly well understood. This is accomplished 
  669. by constraining the system's design and use based on the higher-level objectives. Rules of 
  670. operation may be deferred until after the definition of security is established and the basic 
  671. architecture of the system has been identified.
  672.  
  673. The following paragraphs contain general suggestions for the construction of security models. 
  674. Suggestions pertaining to specific kinds of security requirements and specific kinds of systems are 
  675. given in Sections 3 and 4, respectively.
  676.  
  677. These suggestions are broken down into six steps that could be carried out with respect to an 
  678. entire system and security policy or, more simply, for a given component and higher-level policy 
  679. objective. The first step is to identify externally imposed security policy requirements on how the 
  680. system (or component) must interact with its environment. The second is to identify the internal 
  681. entities of the system and to derive the requirements portion of the model in such a way as to extend 
  682. the external-interface requirements. The third is to give rules of operation in order to show how the 
  683. modeled security requirements can be enforced. After completion of step three enough information 
  684. generally is available to determine reliably whether the model is inherently new or can be 
  685. formalized by known techniques. At classes B2 and above, this is the fourth step. The first three 
  686. steps taken together result in the identification of several submodels. The fifth step is to 
  687. demonstrate consistency among these various submodels, so that they fit together in a reasonable 
  688. way to form a completed security policy model. Finally, the sixth step is to demonstrate relevance 
  689. of the model to the actual system design. Typically, the majority of the security modeling effort is 
  690. associated with these last two steps and associated revisions to the model. The total effort needed 
  691. to produce a security policy model varies considerably, but is often between six staff-months and 
  692. two staff-years.
  693.  
  694. 2.3.1           STEP 1: IDENTIFY REQUIREMENTS ON THE EXTERNAL INTERFACE
  695.  
  696. The first step is to identify major security requirements and distinguish them from other kinds 
  697. of issues. These identified requirements should adequately support known higher-level policy 
  698. objectives for use of the system. An emphasis on external-interface requirements helps prevent an 
  699. unrecognized mixing of security and design issues. Such mixing could interfere with the 
  700. understanding of security and could impose unnecessary constraints on the system design.
  701.  
  702. External-interface requirements for a computer system can be described in several ways. An 
  703. elegant, but possibly difficult, approach is to limit the discussion purely to data crossing the system 
  704. interface; this is the "black-box" approach. The best known example of the black-box approach is 
  705. noninterference (see Section 3.2.1). Alternatively, one can describe the system in terms of its 
  706. interactions with other entities in its environment, such as other computing systems, users, or 
  707. processes. Finally, one can give a hypothetical description of internal structure that ensures the 
  708. desired external-interface behavior.
  709.  
  710. In general, the system's interaction with its environment is constrained by the sensitivity of 
  711. the information handled and by the authorizations of the individuals and systems accessing the 
  712. system. Identified user roles, associated privileges, and the extent to which certain roles are 
  713. security-critical also limit the system's interface to the environment. These constraints determine 
  714. security attributes that are associated with the system's inputs and outputs. Security attributes may 
  715. include classification, integrity, origin, ownership, source of authorization, and intended use, 
  716. among others. The use of such attributes in the construction of security models is discussed in 
  717. Section 3.
  718.  
  719. In the case of mandatory access control policies, information must be accurately labeled and 
  720. handled only by authorized users. This requirement places restrictions on how information is input 
  721. to the system and, implicitly, on how it will be processed. Authorized handling of information is 
  722. modeled in terms of constraints on what information may flow from one user to another: 
  723. information input to the system as classified information should be output only to authorized 
  724. recipients.
  725.  
  726. In addition to general regulations, there are often site-dependent and application-dependent 
  727. constraints that may need to be modeled. In particular, there may be site-dependent constraints on 
  728. allowed security labels.
  729.  
  730. Having identified the security requirements on the system interface, it is necessary to decide 
  731. on the requirements to be covered in the model's definition of security. It must then be decided 
  732. which of these requirements should be modeled directly or indirectly in terms of internal 
  733. requirements on system entities and the TCB interface. The set of requirements to include is 
  734. constrained by minimal TCSEC requirements, the need to adequately support relevant policy 
  735. objectives, and the need for a simple, understandable model. The inclusion of more requirements 
  736. may provide more useful information for accreditation once the system is evaluated, but it also 
  737. increases the difficulty of the vendor's assurance task. The inclusion of more requirements also 
  738. suggests a more careful structuring of the model in order to show how various aspects of security 
  739. fit together.
  740.  
  741. Several factors may influence a decision of whether to directly include external-interface 
  742. requirements in the security model. The direct inclusion of external-interface requirements can 
  743. help explain how the model supports higher-level policy objectives. In the case of an application 
  744. security model, the direct modeling of user-visible operations may be more relevant to end users, 
  745. a point of view reflected in the SMMS security model. [LAND84] In the case of a network security 
  746. model, understanding is facilitated by modeling of the network's interaction with hosts in its 
  747. environment, as will be discussed in Section 4.2. 
  748.  
  749. 2.3.2           STEP 2: IDENTIFY INTERNAL REQUIREMENTS
  750.  
  751. To support the identified external requirements, the system must place constraints on the 
  752. controlled entities of the system. These internal constraints traditionally form the model's 
  753. definition of security. In a model whose definition of security contains external-interface 
  754. requirements, internal constraints can provide a needed bridge between the definition of security 
  755. and the rules of operation.
  756.  
  757. The controlled entities themselves should be identified at a level of granularity that is fine 
  758. enough to allow needed security-relevant distinctions among entities. At class B2 and above, the 
  759. controlled entities should include all (active and passive) system resources that are accessible 
  760. outside of the TCB. For convenience, controlled entities may be grouped into subclasses in any 
  761. way that facilitates understanding of the system. Such groupings will depend on the system to be 
  762. modeled. For an operating system, the relevant controlled entities might include buffers, segments, 
  763. processes, and devices. In most models, it has been convenient to group entities according to 
  764. whether they play an active or a passive role in order to help show how the TCB implements the 
  765. reference monitor concept . For networks and other complex systems, identification of controlled 
  766. entities may need to be preceded by identification of subsystems and their derived security 
  767. requirements.
  768.  
  769. Constraints on controlled entities are best stated as general properties and relationships that 
  770. apply to all (or a broad class of) entities and accesses. Greater generality eliminates unnecessary 
  771. constraints on the system design, improves on's intuition about the model, and can greatly reduce 
  772. the overall effort needed to validate correctness of the identified constraints.
  773.  
  774. The identification of necessary constraints on controlled entities and their interactions is a 
  775. nontrivial task; familiarity with similar systems and security models can be of great benefit. To 
  776. define the necessary constraints, it will be necessary to label each entity with appropriate security 
  777. attributes and to identify possible kinds of interactions, or accesses, between controlled entities. As 
  778. used here, an access is any interaction that results in the flow of information from one entity to 
  779. another. [cf DOD88a]
  780.  
  781. In describing access constraints, it may be useful to know that some kinds of accesses are 
  782. highly restricted, as when a process accesses a file by executing it. The notion of causality may also 
  783. be important: a transfer of information from entity e1 to e2 might occur because e1 wrote e2, 
  784. because e2 read e1,or because a third entity directly copied e1 to e2 without actually reading e1. [cf 
  785. MCLE90, Sec. 2]
  786.  
  787. In the particular case of state machine models, constraints often take the form of state 
  788. invariants, as in the work of Bell and La Padula. Recent efforts suggest that state-transition 
  789. constraints are an attractive alternative to state invariants for certain kinds of security requirements. 
  790. [MCLE88; NCSC90b, Sec. 6.7] The simplest well-known, state-transition constraint is the 
  791. tranquility principle of Bell and La Padula, which says that the security level of a controlled entity 
  792. cannot change during a state transition. Tranquility can be artificially rephrased as a state invariant: 
  793. in any reachable state, the level of an entity coincides with its level in the initial state. Consider, 
  794. however, the DAC requirement that a subject which gains access to an object must possess the 
  795. necessary DAC permissions when the access request is made. This is harder to rephrase as a state 
  796. invariant because DAC permissions can change from one state to the next. Good tutorial examples 
  797. of state invariants and state-transition constraints may be found in Building a Secure Computer 
  798. System [GASS87, Sec. 9.5.1, 9.5.2]; more complex examples occur in the TRUSIX work 
  799. (NCSC90b, Sec. 2].
  800.  
  801. The number of internal requirements in a typical model varies considerably depending on the 
  802. desired level of assurance, the complexity of the policy and system being modeled, and the 
  803. granularity of the individual requirements. For example, the Trusted UNIX Working Group 
  804. (TRUSIX) model covers TCSEC access control requirements for a B3 Secure Portable Operating 
  805. System Interface for Computer Environments (POSIX) system and has eleven state invariants and 
  806. ten state-transition constraints. [NCSC90b]
  807.  
  808. The question of which security requirements to cover in the model's internal requirements is 
  809. answered as much by issues of good engineering practice as by the TCSEC. At a minimum, the 
  810. model must cover the control of processes outside the TCB. Such processes are potentially a 
  811. significant security risk because they may be of unknown functionality and origin. According to 
  812. current practice, those portions of the TCB that do not support user-requested computation do not 
  813. have to be modeled. For example, the security administrator interface does not have to be modeled. 
  814. However, if significant user-requested computation is performed by some portion of the TCB, it 
  815. should be modeled. A typical example would be a trusted downgrading process available to 
  816. authorized users (not necessarily the security administrator). A more extreme example would be a 
  817. multilevel database management system implemented as a TCB subject whose database consisted 
  818. of a single highly-classified file.
  819.  
  820. Finally, there is the possibility that some security requirements might be included in the 
  821. model, but only in the rules of operation. The rules of operation may allow the application of good 
  822. security practice closer to the implementation level. The rules of operation can then contain 
  823. security conditions that are not explicitly required by the security policy. Rules of operation can 
  824. not make up for an inadequate definition of security, however. The task of inferring a modeled 
  825. security policy from the rules of operation may be excessively difficult, especially if the rules are 
  826. complex. [cf NCSC90b, Sec. 6.8]
  827.  
  828. 2.3.3           STEP 3: DESIGN RULES OF OPERATION FOR POLICY ENFORCEMENT
  829.  
  830. How can the modeled security requirements on system entities be enforced? The rules of 
  831. operation answer this question in broad terms by describing abstract interactions among system 
  832. entities with particular emphasis on access control and other policy-enforcement mechanisms. In 
  833. the case of an operating system kernel, the rules of operation would typically describe state 
  834. transformations and associated access checks needed to uphold the definition of security. In the 
  835. case of a formal model, this step amounts to the construction of a miniature FTLS. It is a useful 
  836. preliminary step, even if a full FTLS specification is planned. The rules of operation together with 
  837. the modeled requirements on controlled entities form the security policy model.
  838.  
  839. In giving rules of operation, it is important that system behavior be adequately represented. 
  840. However, actual interactions among controlled entities need not be directly specified when they 
  841. can be described as a composition of several rules of operation. There is no need for an 
  842. implementation to directly support an individual rule where several rules have been combined to 
  843. describe an action. An appropriate level of detail for rules of operation is illustrated by the work of 
  844. Bell and La Padula. [BELL76] Good tutorial examples may be found in Building a Secure 
  845. Computer System. [GASS87, º 9.5.1 (Step 3)] More complex examples may be found in the 
  846. TRUSIX work. [NCSC90b] The rules of operation will usually be more readable if they are not too 
  847. detailed. At class B3 and above, it is especially important to avoid details that are not security 
  848. relevant. This is because their inclusion in the model may force their inclusion in the TCB in order 
  849. to achieve a successful model interpretation, thereby violating the TCB minimization 
  850. requirements. [NCSC85, Sec.3.3.3.1.1]
  851.  
  852. In the case of a B1 informal model, the rules of operation may reasonably contain information 
  853. that, for higher evaluation classes, would be found in a DTLS. Thus, a stronger emphasis on policy 
  854. enforcement than on policy requirements may be useful. This is especially true if the TCB is large 
  855. and complex, as, for example, when security is retrofitted onto a previously unevaluated system. 
  856. [BODE88]
  857.  
  858. A formal model needs to formalize the idea that a particular state transformation is being 
  859. executed on behalf of a particular subject. Two traditional approaches are to add an extra input to 
  860. the state transformation that gives the subject id and to add a "current subject" field to the system 
  861. state. With the former approach, accompanying documentation should explain clearly how the 
  862. subject-identity parameter is passed, in order to avoid the erroneous impression that the subject is 
  863. responsible for identifying itself to the TCB. The latter approach suggests that the system being 
  864. modeled has a single central processing unit. This may be a problem for the model interpretation 
  865. if the system actually contains multiple CPUs. See the TRUSIX work for further discussion. 
  866. [NCSC90b, Sec. 6.13]
  867.  
  868. Finally, in designing rules of operation, it may be convenient to separate access decisions 
  869. from other kinds of system functionality, including the actual establishment or removal of access. 
  870. This separation facilitates exploration of new access control policies. Only the access decision 
  871. portion is affected by a change in policy because access enforcement depends only on the access 
  872. decision, not on how it was made. [LAPA90, ABRA90] Isolation of the access decision 
  873. mechanism occurs in the LOCK system design [SAYD87] and in the security policy architecture 
  874. of Secure Ware's Compartmented Mode Workstation [NCSC91b, Section 2.2.1.].
  875.  
  876. 2.3.4           STEP 4: DETERMINE WHAT IS ALREADY KNOWN
  877.  
  878. Usually some, if not all, aspects of the identified security model will have been studied before. 
  879. The identification of previously used terminology allows security issues to be presented in a 
  880. manner that is more easily understood; and making the connection to previously studied issues may 
  881. provide valuable insight into their successful solution. 
  882.  
  883. For classes B2 and above, the modeling effort must be based on accepted principles of 
  884. mathematical exposition and reasoning. This is because formal models and mathematical proofs 
  885. are required. The chosen mathematical formalism must allow for an accurate description of the 
  886. security model and should provide general mechanisms for its analysis. This is necessary so that 
  887. specific interactions among the entities of the model can be verified as being appropriate.
  888.  
  889. In practice, needed mathematical techniques are usually adapted from previous security 
  890. modeling efforts because security modeling, per se, is generally much easier than the development 
  891. of new mathematical techniques. Extensive use of past modeling techniques is especially feasible 
  892. in the case of fairly general and familiar policy requirements. System-dependent modeling is 
  893. generally required for policy enforcement, but established techniques are often available for 
  894. demonstrating consistency with the modeled requirements.
  895.  
  896. If new mathematical techniques are used, their credibility is best established by exposure to 
  897. critical review, in order to uncover possible errors in the mathematics and its intended use. This 
  898. review process is facilitated by the development of comparative results that give useful 
  899. relationships between new models and old ones.
  900.  
  901. 2.3.5           STEPS: DEMONSTRATE CONSISTENCY AND CORRECTNESS
  902.  
  903. Since the security provided by a system is largely determined by its security model, it is 
  904. important that the model capture needed security requirements and that its rules of operation show 
  905. how to enforce these requirements.
  906.  
  907. The first crucial step of identifying security requirements on the system interface cannot be 
  908. directly validated by mathematical techniques. [cf MCLE85] Human review is needed to establish 
  909. what security requirements need to be addressed and whether these requirements are reflected in 
  910. later mathematical formalizations. For systems in class B2 and above, real-world interpretations 
  911. are assigned to key constructs of the formal model in order to provide a common semantic 
  912. framework for comparing the model and the security policy.
  913.  
  914. The appropriate technique for validating requirements on controlled entities (Step 2) depends 
  915. partly on the novelty of the approach. Informal human review is required to assure that the modeled 
  916. requirements support the original system security policy. Careful comparisons with previous 
  917. models of the same or related policies may help to show how new modeling techniques relate to 
  918. previously accepted techniques for handling particular policy concepts. (See, for example, 
  919. [MCLE87; MCLE90, Sec. 3 & Sec. 4].) An alternate technique is to give an external-interface 
  920. model and then mathematically prove that the constraints on system entities imply satisfaction of 
  921. the external-interface model. The external-interface model is easily compared with a security 
  922. policy or policy objective. The constraints on system entities are those identified in the 
  923. requirements portion of the security policy model. This technique is illustrated in Section 3.2.
  924.  
  925. If the rules of operation are given correctly (Step 3), they will comply with the constraints 
  926. given in the requirements portion of the model. A formal proof of compliance is required for 
  927. classes B2 and above. In a state-transition model, state invariants are proved by induction: one 
  928. proves that they hold for the initial state and are preserved by each state transition given in the rules 
  929. of operation. (See, for example, [CHEH81].) State-transition constraints are straightforwardly 
  930. proved by showing that each state transition satisfies the constraints.
  931.  
  932. 2.3.6           STEP 6: DEMONSTRATE RELEVANCE
  933.  
  934. The rules of operation should be a correct abstraction of the implementation. A preliminary 
  935. model interpretation that is done as part of the modeling process can provide an informal check on 
  936. whether the rules of operation are sensible and relevant. This model interpretation shows how 
  937. enforcement mechanisms modeled in the rules of operation are realized by the system. A model 
  938. interpretation explains what each model entity represents in the system design and shows how each 
  939. system activity can be understood in terms of the given rules of operation. Thus, for example, a 
  940. "create file" operation in the system might be explained as involving a restricted use of the rules 
  941. for "create object," "write object," and/or "set permissions" in the model, depending on the actual 
  942. arguments to the "create file" command.
  943.  
  944. An appropriate, somewhat novel, example of a model interpretation is found in the TRUSIX 
  945. work. [NCSC90b, Sec. 4] The model interpretation is described as an informal mapping from the 
  946. TRUSIX DTLS to the TRUSIX model. This interpretation first explains how UNIX entities are 
  947. represented in the model and the DTLS. For example, messages, semaphores, and shared memory 
  948. are entities that the DTLS refers to as interprocess communication (IPC) objects but that are treated 
  949. as "files" in the model. Thirty-six UNIX system interface functions are then described by giving 
  950. pseudocode that shows how each function can be expressed in terms of the state transformations 
  951. given by the rules of operation. In other words, the transformations given in the rules of operation 
  952. form a toy security kernel that could be used to implement UNIX if efficiency were irrelevant.
  953.  
  954. The SCOMP and Multics model interpretations are examples based on Secure Computer 
  955. System: Unified Exposition and Multics Interpretation. [BELL76]. In the SCOMP interpretation, 
  956. a set of security-relevant kernel calls and trusted processes are identified as `SCOMP rules of 
  957. operation." [HONE85] For each such SCOMP rule, a brief summary of security-relevant 
  958. functionality is given and then interpreted as the combined effect of restricted use of one or more 
  959. rules from the above work by Bell. [BELL76] The specific restrictions are enumerated in an 
  960. appendix, along with a rationale for omitting some kernel calls and trusted functions from the 
  961. interpretation. The correspondence between the rules in this work [BELL76] and actual SCOMP 
  962. behavior is rather complex. The Multics interpretation, by way of contrast, is more sketchy, but the 
  963. actual correspondence appears to be simpler. [MARG85]
  964.  
  965. 2.4     PRESENTATION FOR EVALUATION AND USE
  966.  
  967. The most important factors in the successful presentation of a security model are the 
  968. simplicity of the model, its appropriateness, and an understanding of its intended uses.
  969.  
  970. The presentation of the model must demonstrate that the model correctly describes the system 
  971. security policy. A clear explanation of the policy from which the model is derived should be 
  972. available for this demonstration. Sufficiency of the model may be demonstrated by presenting the 
  973. relationship of the model to the policy and by carefully explaining and justifying the modeling 
  974. decisions behind this relationship. In addition to modeled requirements, the system may support 
  975. other security requirements that are not suitable for inclusion in the model, especially if it is a 
  976. formal model. Unmodeled security requirements can be presented in an appendix so that TCB 
  977. developers have all of the security requirements in a single document.
  978.  
  979. An overview of the model interpretation is needed so that readers can understand the 
  980. relevance of the system's security model to the security policy and to the overall system- 
  981. development process. All of these topics may be legitimately covered in a philosophy of 
  982. protection. In fact, it is highly desirable that the philosophy of protection be the first document 
  983. delivered by the vendor in a system evaluation, so that it can serve as a basis for further 
  984. understanding of the security model and other system documentation.
  985.  
  986. In the case of a formal model, an informal explanation or presentation of the model prepared 
  987. for a general audience is highly desirable. This is partly for reasons mentioned in Section 2.3.5 and 
  988. partly because of the general need to acquaint system developers, implementors, and end users 
  989. with the basic security principles that are to be supported by the system. The informal presentation 
  990. can reasonably be included in the philosophy of protection.
  991.  
  992. A well-written explanation of the model's definition of security can be used by potential 
  993. buyers of a secure system to determine compatibility between the computing system and their 
  994. organization's security policies and needs. To evaluate the ability of a computing system to support 
  995. these policies, potential users may wish to construct an informal model of their security policies 
  996. and compare it to the definition of security supported by the computing system. This use of the 
  997. security model and the fact that some aspects of security modeling can only be validated by social 
  998. review suggest that portions of the security model and the philosophy of protection be made 
  999. available to a relatively wide audience, for example, treating them as publicly released, 
  1000. nonproprietary documents.
  1001.  
  1002. For systems at the B2 level or above, the requirement of mathematical proof necessitates the 
  1003. presentation of a rigorous mathematical formalization as well. For a mathematical audience, 
  1004. standards of precision may preclude a style that will be appropriate for a general audience. In this 
  1005. case, an informal presentation of the model is also needed in order to reach the general audience.
  1006.  
  1007. At the A1 level of assurance, the formal model is directly involved in the formal verification 
  1008. of the FTLS. As a result, it may be appropriate to present the model in the formal specification 
  1009. language of an endorsed verification system (see Appendix B). Authors and readers must be fully 
  1010. aware of the nuances of the descriptive notation of the verification system used in order to avoid 
  1011. errors due to discrepancies between author intent and reader expectation. Furthermore, if a formal 
  1012. verification system is used to check proofs, it is necessary to achieve a correct translation of what 
  1013. is to be proved into the language of the verification system. Further discussion of these points may 
  1014. be found in [FARM86; NCSC90b, Sec. 6.3]. 
  1015.  
  1016. 3.       SECURITY MODELING TECHNIQUES
  1017.  
  1018. Having introduced the major topics involved in security modeling, we now consider detailed 
  1019. modeling issues with emphasis on mathematical structure as well as empirical justification. In this 
  1020. section, a review of basic concepts is followed by discussions on the modeling of various kinds of 
  1021. policies and objectives: nondisclosure, need-to-know, integrity, and special-purpose policies of 
  1022. particular TCB subjects.
  1023.  
  1024. In most cases, modeling techniques are introduced, with details handled via references to the 
  1025. available literature. Inclusion of these references does not imply NCSC endorsement of referenced 
  1026. products incorporating the techniques discussed.
  1027.  
  1028. 3.1     BASIC CONCEPTS
  1029.  
  1030. As discussed in Section 2, the identification of controlled entities plays a crucial role in the 
  1031. development of a security policy model. At B2 and above, the controlled entities must include all 
  1032. system resources. If the policy is multifaceted, with separate subpolicies for mandatory and 
  1033. discretionary access controls, it may be acceptable to decompose the system into different sets of 
  1034. controlled entities for different subpolicies. A secure computing system may decompose into data 
  1035. structures, processes, information about users, I/O devices, and security attributes for controlled 
  1036. entities. In general, the number of different kinds of entities depends on what security-relevant 
  1037. distinctions are to be made. The following paragraphs discuss how to perform such a 
  1038. decomposition for typical kinds of entities, with the goal of modeling security requirements in such 
  1039. a way as to allow an accurate, useful model interpretation.
  1040.  
  1041. An explicitly controlled entry is one that has explicitly associated security attributes. In the 
  1042. TRUSIX model, for example, the explicitly controlled entities are referred to as "elements". They 
  1043. consist of subjects and three kinds of objects; files, directories, and entries (i.e., links). [NCSC90b, 
  1044. Sec. 6.9-6.11] In addition to explicitly controlled entities, a system will have implicitly controlled 
  1045. entities. Such an entity might be contained in an explicitly controlled entity or might be a 
  1046. composite entity composed of explicitly controlled entities having potentially different security 
  1047. attributes.
  1048.  
  1049. The discussion of security attributes in this section emphasizes security levels used for 
  1050. mandatory access control because the TCSEC labeling requirements apply primarily to mandatory 
  1051. access control and auditing. However, much of what is said about MAC labels applies to other 
  1052. kinds of security attributes including, for example, discretionary access control lists.
  1053.  
  1054. It is necessary to model creation and destruction of most kinds of controlled entities. A 
  1055. simpler model results if the same approach is used in all cases. In a formal model, one can model 
  1056. the creation of new controlled entities by modeling changes in the set of all controlled entities. A 
  1057. fixed set of possible controlled entities, together with an indication of which entities are available 
  1058. for use in a particular state (e.g., which subjects are active, which objects or object-ids are 
  1059. allocated) can also be used. [cf NCSC90b]
  1060.  
  1061. 3.1.1           DATA STRUCTURES AND STORAGE OBJECTS
  1062.  
  1063. In this guideline, a data structure is a repository for data with an internal state, or value, that 
  1064. can be written (i.e., changed) and/or read (i.e., observed) by processes (and, possibly, devices) 
  1065. using well defined operations available to them. A data structure is distinct from its value at a 
  1066. particular time, which is, in turn, distinct from the information conveyed by that value. The 
  1067. information content depends not only on the value but also on how it is interpreted. Similarly, a 
  1068. data structure is distinct from a name for that data structure.
  1069.  
  1070. A data structure that is explicitly associated with exactly one security level by the security 
  1071. policy model is a storage object. There are no a priori restrictions on the level of abstraction at 
  1072. which data structures and storage objects are modeled. In particular, objects may be abstract data 
  1073. structures that are accessed using high-level operations provided by an encapsulation mechanism. 
  1074. In this case, a user would have access to the high-level operations but could not access the 
  1075. encapsulated data directly via more concrete operations that may have been used to define the high-
  1076. level operations. This lack of direct access would have to be enforced by the TCB.
  1077.  
  1078. Ordinarily, the storage objects in a security model are disjoint. This means that, in principle, 
  1079. changes to one object do not force changes to other objects. If a state-machine model is used, 
  1080. disjoint storage objects can be modeled as separate components of the underlying machine state. 
  1081. If two objects at different security levels were not disjoint, then access to data in their intersection 
  1082. would be allowed or denied according to which label is used. This ambiguity can be resolved by 
  1083. explicitly associating a level with their intersection. In this case, the associated level allows the 
  1084. intersection to also be regarded as a separate storage object, thereby restoring disjointness. Thus, 
  1085. disjointness in storage objects simplifies one's understanding of how security labels are used to 
  1086. control access. It has also been argued that disjointness simplifies covert channel analysis via 
  1087. shared resource matrices.
  1088.  
  1089. In some systems, collections of objects are combined to form multilevel data structures that 
  1090. are assigned their own security levels. Multilevel data structures called "containers" are used in the 
  1091. Secure Military Message System (SMMS) to address aggregation problems. [LAND84] The 
  1092. level of a container must dominate the levels of any objects or containers inside it.
  1093.  
  1094. When an object or other controlled entity is created, it must be assigned security attributes and 
  1095. initialized in such a way as to satisfy the object reuse requirement. The modeling of object reuse 
  1096. policies (e.g., objects are erased when allocated) can be useful, but object reuse is not found in 
  1097. traditional access control models because the object reuse requirement deals with the content of 
  1098. objects and TCB data structures. The initialization of security attributes, however, plays an 
  1099. essential role in access control and can be modeled by distinguishing between "active" and 
  1100. "inactive" entities, as in [NCSC90b]. The security attributes of a newly created object may be taken 
  1101. from, or assigned by, the subject that created it. In many systems, creating an object is essentially 
  1102. a special case of writing to it: its value changes from undefined to null. If this change is visible to 
  1103. non-TCB subjects and the new object is created by a non-TCB subject, then the security level of 
  1104. the new object must dominate that of the creating subject. DAC attributes, by way of contrast, are 
  1105. usually given by system- or user-supplied defaults.
  1106.  
  1107. 3.1.2           PROCESSES AND SUBJECTS
  1108.  
  1109. A process may create, destroy, and interact with storage objects and other processes, and it 
  1110. may interact with I/O devices. It has an associated run-time environment and is distinct from the 
  1111. program or code which defines it. For instance, the program would ordinarily be modeled as 
  1112. information contained in a storage object. An explicitly controlled process is a subject. It normally 
  1113. has a variety of associated security attributes including a security level, hardware security 
  1114. attributes such as its process domain, the user and user group on whose behalf it is executing, 
  1115. indications of whether it belongs to the TCB, and indications of whether it is exempt from certain 
  1116. access control checks.
  1117.  
  1118. The issues regarding disjointness of storage objects mentioned in Section 3.1.1 apply to 
  1119. subjects as well. If two subjects share memory, it is advisable to model the shared memory as an 
  1120. object separate from either subject in order to achieve the disjointness needed for information-flow 
  1121. analysis. Local memory need not be separately modeled, but must be properly taken into account 
  1122. when modeling the subject. Registers (including the instruction pointer) are technically shared 
  1123. memory but can often be treated abstractly as unshared local memory. This is especially true if 
  1124. registers are saved and restored during process swaps and the information they contain is not 
  1125. shared between processes.
  1126.  
  1127. Security levels for processes are ordinarily similar to security levels for storage objects. The 
  1128. TCSEC requires that a subject have a nondisclosure level that is dominated by the clearance and 
  1129. authorization of its user. A TCB subject may reasonably be assigned separate levels for reading 
  1130. and writing in order to allow partial exemption from access control (see Section 3.4). Other TCB-
  1131. related entities may also need separate levels for reading and writing in some systems. One such 
  1132. example is /dev/null in UNIX. [GLIG86] This object is system high in the sense that any process 
  1133. can write to it; but it is system low in the sense that any process can read from it because its value 
  1134. is always null.
  1135.  
  1136. In general, the security-relevant attributes of a subject are part of its run-time environment. 
  1137. Some attributes are relatively static and are inherited from the subject's executable code or are 
  1138. stored with its code. In UNIX, the property of being a set-user-id program is a statically determined 
  1139. attribute, as is the effective user-id. Other attributes are dynamically assigned and are inherited 
  1140. from a subject's parent or are actively assigned by the parent (assuming it has a parent process). In 
  1141. the latter case, the parent must be relied upon to assign the child's security attributes appropriately. 
  1142. As a result the parent usually belongs to the TCB in this latter case. A secure terminal server, for 
  1143. example, might create a subject and assign it security attributes based on the determined identity 
  1144. of a user logging in.
  1145.  
  1146. There are potential difficulties in associating user-ids with TCB subjects. A terminal server 
  1147. would appear to operate on behalf of the user currently logged in or on behalf of the Identification 
  1148. and Authentication mechanism if no one was logged in. A print spooler acts on behalf of the users 
  1149. in its print queue. Such TCB subjects are, in reality, associated with multiple user-ids, a fact which 
  1150. is relevant to the design of the audit mechanism. A TCB subject that does not act on behalf of a 
  1151. given user can be handled either as having a dynamically modifiable user-id or as acting on behalf 
  1152. of the system (equivalently, as acting on behalf of a system-defined pseudo-user).
  1153.  
  1154. When a subject creates a child subject by executing a program, the resulting child might 
  1155. belong to the TCB and be exempt from certain access control checks, even if the original subject 
  1156. was not in the TCB. This is possible if exemptions are associated with the program object itself.
  1157.  
  1158. With the advent of multitasking languages such as Ada, there is a question of when two 
  1159. threads of control belong to the same subject. Pragmatically, to be the same subject, they should 
  1160. have the same security attributes. To qualify as separate subjects, their separation should be 
  1161. enforceable by the TCB. Finally, nothing explicitly prohibits a multithreaded process from 
  1162. consisting of several subjects operating at different security levels. Of course, intraprocess 
  1163. communication will be somewhat limited for such a process unless it contains TCB subjects that 
  1164. are exempt from some of the MAC constraints.
  1165.  
  1166. 3.1.3           USERS AND USER ROLES
  1167.  
  1168. User-related topics often turn up in security models in spite of the fact that users are not 
  1169. controlled entities and thus do not need to be directly modeled. The users of a system may perform 
  1170. specific user roles by executing associated role-support programs. In general, a user may engage 
  1171. in a combination of several roles. As a matter of policy, a given user role may require system-
  1172. mediated authorization and may provide specific system resources needed for performance of the 
  1173. role. Although the following paragraphs discuss only individual user roles, most of the basic 
  1174. concepts extend to roles for other kinds of clients in the environment of a computing system 
  1175. including user groups and, in the case of a network, hosts or subjects running on hosts.
  1176.  
  1177. The TCSEC requires support for certain trusted user roles. For systems at B2 and above, these 
  1178. roles include the security administrator role and the system operator role. The administrator role 
  1179. governs security attributes of users, moderates discretionary and mandatory access control, and 
  1180. interprets audit data. The operator role ensures provision of service and performs accounting 
  1181. activities. [NCSC90a] These roles may be subdivided so that they can be shared by multiple users. 
  1182. In addition, they do not preclude the addition of other trusted roles. In general, trusted user roles 
  1183. are characterized by the fact that they involve handling security-critical information in a way that 
  1184. violates access restrictions placed on non-TCB subjects. As a result, processes that support trusted 
  1185. roles can be misused and must have restricted access. By definition, such trusted role processes 
  1186. have security properties that are unacceptable without special constraints on the behavior of their 
  1187. users. These observations suggest (but do not mandate) the modeling of support for user roles, 
  1188. especially trusted user roles. Trusted role processes are usually treated as TCB subjects. Additional 
  1189. information on modeling them is given in Section 3.4.
  1190.  
  1191. Instructive examples of role definitions may be found in Secure Xenix [GLIG86] and the 
  1192. SMMS security model [LAND84]. Secure Xenix restructured the Guru role into four separate 
  1193. roles. The SMMS security model included a system security officer role, a downgrader role and a 
  1194. releaser role. In both of these systems, the roles support separation of duty in that each role has 
  1195. privileges not available to the other roles. Separation of duty has been emphasized by Clark and 
  1196. Wilson, who have given a general scheme for constraining user roles by using triples of the form 
  1197. (user, program, object-list) in order to control how and whether each user may access a given 
  1198. collection of objects. [CLAR87] A similar role-enforcement mechanism is supported by type 
  1199. enforcement. [BOEB85] The type-enforcement mechanism itself assigns "types" to both subjects 
  1200. and objects; subject types are referred to as "domains." The accesses of each subject are 
  1201. constrained by a "type table" based on subject domain and object type. Each user has a set of 
  1202. domains associated with subjects running on his behalf. These domains are used to define user 
  1203. roles. [cf THOM90]
  1204.  
  1205. 3.1.4           I/O DEVICES
  1206.  
  1207. Although users are external to the computing system and need not be directly modeled, it is 
  1208. still useful to model their allowed interactions with the system in order to document security-
  1209. relevant constraints that are enforced by the system. User interactions may be modeled in terms of 
  1210. constraints on I/O devices if there is a convention for discussing the current user of a device. 
  1211. Devices which are accessible to subjects outside the TCB should be modeled either implicitly or 
  1212. explicitly as part of the interface between the non-TCB subjects and the TCB. An additional reason 
  1213. for interest in I/O devices is that I/O typically accounts for a large portion of the TCB. The 
  1214. following paragraphs present general information on the modeling of devices with emphasis on 
  1215. device security requirements and then discuss when they should be modeled as objects, as subjects, 
  1216. or as their own kind of entity.
  1217.  
  1218. Normally, security models discuss abstract encapsulated devices rather than actual physical 
  1219. devices. An encapsulated device is an abstract representation of a device, its associated device 
  1220. driver, and possibly other associated entities such as attached hardware and dedicated device 
  1221. buffers. Thus, for example, one might discuss a line printer connected to the system but not the 
  1222. actual RS-232 device used to achieve the connection or its associated device driver.
  1223.  
  1224. By definition, an input device injects information into the system in a way that the system 
  1225. cannot entirely control. The next state of the system may depend on the actual input as well as on 
  1226. the current state and the particular state transformation being executed. This fact can be 
  1227. accommodated in several ways in an FTLS or a model that addresses object content. One can treat 
  1228. the actual input as a parameter to the transformation. If there are only a few different input values, 
  1229. one can associate different transformations with different inputs. Finally, one can treat the 
  1230. transformation as being nondeterministic, meaning that several different states can result from 
  1231. executing the transformation in a given state.
  1232.  
  1233. Abstract encapsulated devices are often passive entities, in contrast to their underlying 
  1234. hardware. Security requirements for devices, however, differ significantly from those for either 
  1235. storage objects or controlled processes:
  1236.  
  1237. ╖       External policy on use of the system requires that devices pass information only to 
  1238. authorized users.
  1239.  
  1240. ╖       Devices may transport either unlabeled data or labeled data and are classified as single 
  1241. level or multilevel devices accordingly.
  1242.  
  1243. ╖       At B2 and above, the TCSEC requires that every device have a minimum and maximum 
  1244. device level that represents constraints imposed by the physical environment in which 
  1245. the device is located.
  1246.  
  1247. Authorized use of a device may be enforced by requiring that any piece of information output 
  1248. by the device have a security level that is dominated by the clearance and authorization of the 
  1249. recipient. A combination of procedural and automated methods are needed to correctly associate 
  1250. the security level of the information, the user who will receive that information, and the security 
  1251. level of that user. Typically, the device itself will also have a security level. The user who receives 
  1252. information from a device may well be different than the user who sent that information to the 
  1253. device. If a device with local memory (an intelligent terminal, for example) is allocated to different 
  1254. users or different security levels at different times, it will typically need to be reset between users 
  1255. in order to meet requirements on authorized transmission of information.
  1256.  
  1257. Both single-level and multilevel devices may handle multiple levels of information. A single-
  1258. level device can only handle a single level at a time but may have some convention for changing 
  1259. levels. A multilevel device, by way of contrast, can handle different levels of data without altering 
  1260. its security designation, but still might be used in such a way as to carry data at only one fixed 
  1261. security level.
  1262.  
  1263. The TCSEC requirement for device ranges does not explain how they are to be used. The most 
  1264. common option is to require that the level of any object transmitted by the device be within the 
  1265. range. Another option is to require that the security clearance of any user be within the range. 
  1266. Separate decisions regarding device minimum and device maximum are also possible. In the 
  1267. Trusted Xenix system, a user with a secret clearance can have an unclassified session on a 
  1268. terminal with a secret device minimum. The intended interpretation of the device minimum is that 
  1269. the device is in a restricted area that should contain only users whose clearance is at least the device 
  1270. minimum. If the device minimum is secret, then a login attempt by an uncleared user is treated as 
  1271. a violation of physical security. [GLIG86]
  1272.  
  1273. The question of whether devices should be modeled in the same way as other kinds of 
  1274. controlled entities depends on the complexity of the devices involved, observed similarities 
  1275. between devices and other modeled entities, and goals relating to the simplicity and accuracy of 
  1276. the model. The TRUSIX group decided to model devices in the same way as file objects, a decision 
  1277. that depended heavily on both the nature of UNIX and the specific goals of the TRUSIX effort. 
  1278. [NCSC90b, º 6.9] The SMMS model treats devices as containers in order to capture the fact that 
  1279. the device maximum must dominate the level of all data handled by the device. [LAND84] Yet 
  1280. another alternative is to model devices by modeling their device drivers as TCB subjects. In 
  1281. general, more sophisticated I/O devices need greater modeling support, with the limiting case 
  1282. being intelligent workstations modeled as autonomous computing systems.
  1283.  
  1284. 3.1.5           SECURITY ATTRIBUTES
  1285.  
  1286. A security attribute is any piece of information that may be associated with a controlled entity 
  1287. or user for the purpose of implementing a security policy. The attributes of controlled entities may 
  1288. be implicit; they need not be directly implemented in data structures. Labels on a multilevel tape, 
  1289. for example, can be stored separately from the objects they label, provided there is an assured 
  1290. method of determining the level of each object on the tape. [cf NCSC88b, C1-C1-05-84]
  1291.  
  1292. Primary attributes of security policies that are usefully reflected in the security model include 
  1293. locus of policy enforcement, strength and purpose of the policy, granularity of user designations, 
  1294. and locus of administrative authority. These policy aspects lead to a taxonomy of policies and 
  1295. security attributes.
  1296.  
  1297. There are several types of security attributes of any given system: informational attributes, 
  1298. access control attributes, nondisclosure attributes, and integrity attributes. Informational attributes 
  1299. are maintained for use outside the given computing system, whereas access control attributes limit 
  1300. access to system resources and the information they contain. Purely informational attributes are 
  1301. somewhat uncommon; an informative example is given in Section 4.4. Access control attributes 
  1302. may be classified according to what they control. A loose access control attribute controls access 
  1303. to the entity it is associated with, whereas a tight access control attribute also controls access to 
  1304. information contained in that entity. Thus, access restrictions determined by tight attributes must 
  1305. propagate from one object to another when (or before) information is transferred, because control 
  1306. over the information must still be maintained after it leaves the original entity. Nondisclosure 
  1307. attributes are used to prevent unauthorized release of information, whereas integrity attributes are 
  1308. used to prevent unauthorized modification or destruction of information.
  1309.  
  1310. Attributes can also be classified by the granularity and authority of their control. The user 
  1311. granularity of an attribute may be "coarse," controlling access on the basis of broadly defined 
  1312. classes of users, or it can be "per-user," controlling access by individual users and processes acting 
  1313. on their behalf. Finally, centralized authority implies that policy for use of attributes is predefined 
  1314. and takes place under the control of a system security administrator, whereas distributed authority 
  1315. implies that attributes are set by individual users for entities under their control. This classification 
  1316. of security attributes is based partly on the work of Abrams. [ABRA90]
  1317.  
  1318. When applied to typical security policies for B2 systems, these distinctions among security 
  1319. attributes might take the form given in Figure 3.1. MAC policies must enforce nondisclosure 
  1320. constraints on information and may enforce integrity constraints as well. They must regulate access 
  1321. to information on the basis of user clearance and labeled sensitivity of data. The involvement of 
  1322. user clearances typically comes at the expense of per-user granularity because several users are 
  1323. likely to have the same clearance. Authority to assign security attributes is usually somewhat 
  1324. centralized. Users can create entities at various levels, but ability to change the levels of existing 
  1325. entities is usually restricted to authorized users.
  1326.  
  1327. DAC policies must enforce access constraints on both reading and writing. They must provide 
  1328. per-user granularity as criteria for access decisions, although they often include a group 
  1329. mechanism for coarse gained access decisions as well. DAC policies are normally used to enforce 
  1330. both nondisclosure and integrity, but constraints on access to named objects do not necessarily 
  1331. imply corresponding constraints on access to information in those objects. Authority to change 
  1332. discretionary attributes is usually distributed among users on the basis of ownership.
  1333.  
  1334.                 MAC     DAC
  1335.  
  1336.         Binding Strength:       Tight   Loose           
  1337.  
  1338.         Purpose:        Nondisclosure10 Nondisclosure & Integrity
  1339.  
  1340.         User Granularity:       Coarse  Per-user
  1341.  
  1342.         Authority       Centralized     Distributed10
  1343.  
  1344.  
  1345.  
  1346. Figure 3.1. Typical Classification of Access Control Policies
  1347.  
  1348. 3.1.6           PARTIALLY ORDERED SCURITY ATTRIBUTES
  1349.  
  1350. A security attribute belonging to a partially ordered set may be referred to as a level. The 
  1351. associated partial ordering may be referred to as the dominance relation; in symbols, L1 is 
  1352. dominated by L2 if and only if L1 ú L2. The use of partially ordered levels is usually associated 
  1353. with tight access control policies and constraints on information flow. Constraints on information 
  1354. flow can arise for several different reasons. As a result a multifaceted policy might have a different 
  1355. partial ordering for each reason. Often, the combined effect of constraints associated with several 
  1356. partial orderings can be expressed in terms of a single composite ordering. In this case, facts about 
  1357. Cartesian products of partially ordered sets given in Appendix A may be used to simplify the 
  1358. formal model and, possibly, the system's implementation as well. The following paragraphs 
  1359. discuss the connection between levels and constraints on information flow, the use of these 
  1360. constraints for supporting nondisclosure and integrity objectives, and the tailoring of level-based 
  1361. policies to particular applications.
  1362.  
  1363. A dominance relation is often viewed as an abstraction of allowed information flows: 
  1364. information can flow from entity E1 to entity E2 only if the level of E1 is dominated by the level of 
  1365. E2. This rather general view, which is an analogue of the original *-property of Bell and La Padula, 
  1366. allows the illustration of some basic issues in the use of levels, but it is overly simple in some 
  1367. respects. It does not address whether information flows properly or whether the flow is direct or 
  1368. indirect. Moreover, this view does not contain any explicit assumption about why information may 
  1369. be prevented from flowing from one entity to another.
  1370.  
  1371. Partially ordered levels and related constraints on information flow have been suggested for 
  1372. use in enforcing both nondisclosure and integrity objectives. The motivation for these suggestions 
  1373. may be understood from the following considerations. Suppose that access controls could enforce 
  1374. the above information-flow constraints perfectly. Suppose that the two objects contain the same 
  1375. information, but one is labeled at a higher level than the other. In this situation, information is less 
  1376. likely to be disclosed from the higher-level object because fewer subjects have a sufficiently high 
  1377. level to receive this information. Conversely, if lower-level subjects can write higher-level objects, 
  1378. then inappropriate modification of the lower-level object is less likely because fewer subjects have 
  1379. a sufficiently low level to write to it. This dual relationship may cause the goals of nondisclosure 
  1380. and integrity to conflict, especially if the ordering on levels is strongly hierarchical. As explained 
  1381. in Section 3.5, this duality between nondisclosure and integrity has some significant limitations. A 
  1382. given set of security levels designed for enforcing nondisclosure may be in appropriate for 
  1383. enforcing integrity, and not all integrity policies use partially ordered security attributes.
  1384.  
  1385. When a computing system is accredited for use at a particular site, it is assigned a host 
  1386. accreditation range - a set of levels at which the host may store, process, and transmit data. A 
  1387. host range can prevent the aggregation of certain classes of data. If several objects have different 
  1388. levels and no level in the host range dominates all of them, then there is no legitimate way of 
  1389. concatenating these objects. This use of host ranges is discussed further in Section 4.4.
  1390.  
  1391. A desirable constraint holds between a host range and device ranges: if the host range contains 
  1392. a level that does not belong to any device range, a non-TCB subject running at that level can not 
  1393. communicate bidirectionally without using covert channels. By way of contrast, a device range 
  1394. may reasonably contain levels not in the host range. Suppose, for example, that A and B are 
  1395. incomparable levels dominated by a level C that does not belong to the host range. A device might 
  1396. reasonably use C as a maximum device level in order to allow use of the device at either level A 
  1397. or level B. But, in this case, the system would need to check that each object input from the device 
  1398. actually belonged to the host range.
  1399.  
  1400. 3.1.7           NONDlSCLOSURE LEVELS
  1401.  
  1402. The following paragraphs discuss the structure of nondisclosure levels as it relates to their 
  1403. abstract mathematical properties, to TCSEC requirements, and to their intended use. Analyses 
  1404. given in the following paragraphs suggest that the structure of nondisclosure levels that are used 
  1405. to enforce nondisclosure policies is often not needed for modeling purposes. If their structure plays 
  1406. no significant role in a given model, their inclusion is unnecessary and may limit the applicability 
  1407. of the model.
  1408.  
  1409. The TCSEC requires that nondisclosure levels contain a classification component and a 
  1410. category component. The hierarchical "classification" component is chosen from a linearly 
  1411. ordered set and the nonhierarchical "category" component must belong to a set of the form *(C), 
  1412. the set of all subsets of C, for some set C of categories. [cf NCSC85, Sec. 9.0, Sec. 3.1.1.4] In some 
  1413. applications, thousands of categories may be needed. In others, only the four clearance levels 
  1414. "unclassified", "confidential", "secret", and "top secret" are needed, as a result of Executive Order 
  1415. 12356. [REAG82] These facts illustrate the importance of configuration-dependent host 
  1416. accreditation ranges to remove unused security levels.
  1417.  
  1418. As explained in Appendix A, any partially ordered set may be fully embedded in one based 
  1419. on categories. As a result, TCSEC constraints on nondisclosure levels do not restrict the class of 
  1420. partially ordered sets that may be used for such levels (although these constraints do affect the use 
  1421. of human-readable names). The decomposition of levels into classification and category 
  1422. components can be configuration-dependent and may be given along with the host accreditation 
  1423. range. This fact is of some interest for computing systems with both commercial and military 
  1424. applications. [cf BELL90] In this case, the model should be general enough to embrace all intended 
  1425. configurations.
  1426.  
  1427. Even if labels are explicitly assumed to contain classification and category components, 
  1428. nothing in the TCSEC prevents the addition of vendor-supplied components because such 
  1429. additions do not invalidate the mandated access checks. Thus, for example, each label could 
  1430. contain a release date after which the contained information will be valueless and, therefore, 
  1431. unclassified. If release dates are chronologically ordered, later dates would represent a higher 
  1432. nondisclosure level. The initial specification of release dates, like that of other nondisclosure 
  1433. attributes, needs to be handled by trusted path software. The regrading from classified -outdated to 
  1434. unclassified would be carried out by trusted software in conformance with accepted downgrading 
  1435. requirements.
  1436.  
  1437. A nondisclosure level is, by definition, commensurate with the level of harm that could result 
  1438. from unauthorized disclosure, and it should also be commensurate with the level of assurance 
  1439. against unauthorized disclosure that is to be found in the system's TCB and surrounding physical 
  1440. environment. Various rules of thumb have been worked out to correlate risk with levels of 
  1441. nondisclosure and assurance. [DOD88a, NCSC85a] While these relationships are not likely to 
  1442. show up in the security model itself, they may affect the kinds of security attributes that are 
  1443. included in the nondisclosure level.
  1444.  
  1445. 3.1.8           UNLABELED ENTITIES AND THE TRUSTED COMPUTING BASE
  1446.  
  1447. In addition to controlled entities, there are system resources that either are not user accessible 
  1448. or are part of the mechanism by which user-accessible resources are controlled. These latter 
  1449. resources are the software, hardware, and internal data structures which make up the TCB. At 
  1450. higher levels of assurance, significant effort goes into minimizing the size and complexity of the 
  1451. TCB in order to reduce the overall effort needed to validate its correct operation.
  1452.  
  1453. The TCB typically consists of the implemented access control mechanism and other entities 
  1454. that must be protected in order to maintain the overall security of the system. A TCB process which 
  1455. is not part of the access control mechanism may be assigned security attributes and controlled as a 
  1456. subject in order to help enforce the principle of least privilege within the TCB. Conversely, certain 
  1457. subjects may need to be included within the TCB because they assign security levels to input, 
  1458. support trusted user roles, transform data in such a way as to legitimately alter the data security 
  1459. level, or perform some other security-critical function. A data structure may also be security- 
  1460. critical, as when it contains user-authentication data, a portion of the audit trail, audit-control data, 
  1461. or security attributes of controlled entities. It is not always necessary to assign security attributes 
  1462. to TCB processes and security-critical data structures, but this is often done to enforce the principle 
  1463. of least privilege within the TCB and to regulate access by non-TCB subjects to security critical 
  1464. data structures.
  1465.  
  1466. If a piece of data can be accessed as a direct effect of a system call (i.e. access directly 
  1467. specified in a parameter) then it must be accounted for in the interpretation of controlled entities in 
  1468. such away as to satisfy MAC requirements. But some data structures may not be directly 
  1469. accessible. Possible examples include security labels, the current access matrix, internal object 
  1470. names that are not accessible to users of the system, and transient information related to access 
  1471. control, opening of files, and so forth. A data structure which is not directly accessible does not 
  1472. have to be labeled. A decision to supply a label may complicate the modeling process, whereas a 
  1473. decision not to supply a label may increase the difficulty of the covert channel analysis.
  1474.  
  1475. While there is no explicit requirement to model the TCB, the model must capture security 
  1476. requirements imposed by the TCSEC, including reference monitor requirements relating to non-
  1477. TCB subjects and the entities they manipulate. [cf NCSC87, Appendices B.3.4, B.7.1] A possible 
  1478. approach to modeling these reference monitor requirements is discussed in Section 3.2.4. If 
  1479. significant aspects of the system security policy are embodied in TCB subjects that are exempt 
  1480. from modeled access constraints on non-TCB subjects, then exempt subject modeling is also 
  1481. needed. This topic is discussed further in Section 3.4.
  1482.  
  1483. 3.2     NONDISCLOSURE AND MANDATORY ACCESS CONTROL
  1484.  
  1485. How can nondisclosure requirements be accommodated in a model's definition of security? 
  1486. To what extent can access control succeed in enforcing nondisclosure? What impact do 
  1487. nondisclosure and access control requirements have on trusted systems design? The first of these 
  1488. questions is customarily addressed by imposing access constraints on controlled entities (e.g., the 
  1489. *-property). But various research efforts have contributed additional approaches that provide a 
  1490. useful context in which to explain how access constraints can support nondisclosure objectives. 
  1491. Both traditional and newer research-related approaches are discussed below. The ordering is top- 
  1492. down, beginning with nondisclosure requirements on the external system interface, as in the 
  1493. modeling paradigm described in Section 2.3.
  1494.  
  1495. Section 3.2.1 shows how nondisclosure requirements can be formalized in an external-
  1496. interface model. In Section 3.2.2, external-interface requirements are elaborated to obtain an 
  1497. information-flow model, in order to facilitate later analysis. Section 3.2.3 introduces the reference 
  1498. monitor interface and applies the information-flow requirements to individual subject instructions. 
  1499. Section 3.2.4 presents an access-constraint model that ensures satisfaction of the information-flow 
  1500. requirements at the reference monitor interface. Finally, Section 3.2.5 only briefly discusses rules 
  1501. of operation because of their system-specific nature.
  1502.  
  1503. Each of the three models presented in Sections 3.2.1, 3.2.2, and 3.2.4 provides adequate 
  1504. conceptual support for nondisclosure requirements found in the TCSEC mandatory security 
  1505. objective and could serve as a definition of mandatory security in a security policy model. 
  1506. Adequacy of the access-constraint model, in particular, is established by comparison with the 
  1507. previous two models. Comments regarding the impact of these models on overall system design 
  1508. are distributed among the various subsections, with the third access-constraint model providing the 
  1509. most explicit basis for designing rules of operation and judging correctness of implementation.
  1510.  
  1511. These models are very simple and need to be adjusted to accommodate policy variations 
  1512. found in particular trusted systems. These models do not address aggregation and inference. For 
  1513. sake of simplicity, no accommodation is made for trusted processes or discretionary access control. 
  1514. The presented access-constraint model is especially relevant to systems in which all user-initiated 
  1515. computation is performed by subjects outside of the TCB. It may not be adequate for systems 
  1516. whose TCB contains major trusted applications (e.g., a multilevel DBMS implemented as a TCB 
  1517. subject). Finally, the entire analysis assumes that the system to be modeled is deterministic in the 
  1518. sense that its behavior is completely determined by its combined input sequence and data initially 
  1519. in the system.
  1520.  
  1521. 3.2.1           EXTERNAL-INTERFACE REQUIREMENTS AND MODEL
  1522.  
  1523. Consider a system where each input or output is labeled with a nondisclosure level. Users 
  1524. work with I/O streams containing items at a given level and provide inputs in such a way that the 
  1525. level of a given input stream accurately reflects the sensitivity of the informatIon it contains. The 
  1526. system creates each output item by extracting information from input items (possibly at several 
  1527. different levels) and affixing an appropriate label. A combination of automated and procedural 
  1528. methods is used to combine input streams into a single input sequence and to separate the resulting 
  1529. combined output sequence into separate output streams at different levels.
  1530.  
  1531. The actual nondisclosure requirement is this: outputs labeled with a given level must contain 
  1532. only information whose sensitivity is dominated by that of their label. This requirement is pictured 
  1533. in Figure 3.2, where lighter shadings represent higher information security levels:  for level A 
  1534. dominates  for level B, which dominates  for level C.
  1535.  
  1536. This requirement is difficult to model (let alone implement) because it talks about the actual 
  1537. sensitivity of output information, whereas the system is only given the attributed sensitivity of its 
  1538. data. These difficulties can be avoided with the following alternate requirement: a given labeled 
  1539. output must not contain information derived from data whose attributed sensitivity fails to be 
  1540. dominated by the level of the output's label. This alternate requirement applies to both data 
  1541. supplied in the input streams, and data residing in the system itself. This alternate requirement is 
  1542. slightly stronger than the original provided that information at a given level cannot be synthesized 
  1543. by aggregation and inference from information at strictly lower levels. In this case, any classified 
  1544. information in the system either came from the input stream or was already contained in the system 
  1545. when it was installed level .
  1546.  
  1547. Figure 3.2 Intended Use of a Secure System
  1548.  
  1549. In the first external-interface model, each item in the system's input stream is taken to be a 
  1550. labeled value, as is each item in the output stream. There are two "nondisclosure security" 
  1551. requirements which are given relative to an arbitrary level L:
  1552.  
  1553. Noninterference:
  1554.  
  1555. Any output stream at level L remains unchanged when inputs at levels not dominated by L are 
  1556. altered or removed.
  1557.  
  1558. Nonobservability:
  1559.  
  1560. Any output stream at level L remains unchanged when data in the system whose sensitivity is 
  1561. not dominated by L is altered or removed.
  1562.  
  1563. These two terms and the requirements they name are similar; the only distinction is that 
  1564. noninterference discusses independence from high-level input whereas nonobservability 
  1565. discusses independence from high-level data in the system.
  1566.  
  1567. As with any mathematical modeling effort, there is a need to specify the physical 
  1568. interpretation of the model. There are also choices to be made as to which aspects of the system's 
  1569. observable behavior are actually addressed by this external-interface model. An "accurate" 
  1570. interpretation of this model is a physical system whose I/O streams and data are related according 
  1571. to the above two requirements. In a "complete" interpretation of this model, the input stream would 
  1572. contain all external influences on the system being modeled; the output stream would contain all 
  1573. observable effects of the system on its environment; and the data in the system would include all 
  1574. data that can influence the value of the output stream. An accurate interpretation can be "useful" 
  1575. without being complete if it includes all outputs associated with normal use as well as enough of 
  1576. the inputs and system state to predict the included outputs. It is standard engineering practice to 
  1577. avoid details that would make the modeling problem intractable and then consider them in a 
  1578. separate covert channel analysis.
  1579.  
  1580. The noninterference requirement is due to Goguen and Meseguer. (GOGU82] Under useful 
  1581. interpretations, this requirement rules out resource-exhaustion channels associated with those 
  1582. aspects of the system that are covered by the model's interpretation. Suppose that some system 
  1583. resource (such as memory) is used for processing both low-level and high-level inputs, and that the 
  1584. processing of low-level inputs cannot proceed when that resource is unavailable. In this case, the 
  1585. system may not emit a low-level diagnostic explaining the nature of the problem, since the 
  1586. diagnostic could reveal "interference" by high-level input. The low-level diagnostic, if allowed, 
  1587. would have provided a resource-exhaustion channel.
  1588.  
  1589. The nonobservability requirement was developed as part of the LOCK verification effort. It 
  1590. covers situations in which classified data is entered during system configuration using information 
  1591. paths not addressed in the security modeling process. A superficially stronger requirement is that 
  1592. the system initially contains no classified information. This stronger requirement occurs implicitly 
  1593. in the original noninterference models of Goguen and Meseguer. [GOGU82, GOGU84] With this 
  1594. stronger requirement, useful physical interpretations would need to include any classified inputs 
  1595. that occurred during the construction, installation, or booting of the system.
  1596.  
  1597. 3.2.2           INFORMATION-FLOW MODEL
  1598.  
  1599. The information-flow model is discussed next because of its close relationship to 
  1600. noninterference. The requirements of this model are motivated by an informal view of how 
  1601. information flows through a deterministic state-machine system. The possible paths of information 
  1602. flow during a state transition are depicted as arrows in Figure 3.3, where I, O,  and S abbreviate 
  1603. input, output, and state, respectively
  1604.  
  1605. .
  1606.  
  1607. Figure 3.3. Information Flows in a Deterministic State Machine
  1608.  
  1609. Each input is assumed to induce a state transition and a (possibly empty) sequence of labeled 
  1610. outputs. As indicated in the above diagram, there are just four possible flows: directly from input 
  1611. to output, from an input to the next system state, from a given state to the next state, and from a 
  1612. given state to an output. Correspondingly, there are four flow-security requirements for the 
  1613. information-flow model that must hold for any nondisclosure level L. They refer to "portions" of 
  1614. the state, meaning collections of variables (i.e., state components):
  1615.  
  1616. I/O Security: 
  1617.  
  1618. An output at level L can only be induced by an input whose level is dominated by L.
  1619.  
  1620. I/S Security:
  1621.  
  1622. An input at level L can affect only those portions of the system state whose levels 
  1623. dominate L.
  1624.  
  1625. S/O Security:
  1626.  
  1627. An output at level L can depend only on those portions of the system state whose levels 
  1628. are dominated by L.
  1629.  
  1630. S/S Security:
  1631.  
  1632. A portion of the state which is at level L can affect only those portions of the state whose 
  1633. levels dominate L.
  1634.  
  1635. To see the effect of these requirements, suppose, for example, that the current time is 
  1636. maintained as a state component that is implicitly incriminated by every input instruction 
  1637. according to the time needed for its execution. The I/S security property implies that the clock level 
  1638. must dominate every level in the input stream because every input affects this particular state 
  1639. component. This observation does not imply that all "system" clocks have to be system high, 
  1640. however. One possibility is to partition time into several disjoint "slices." This partitioning 
  1641. effectively creates a virtual clock for each time slice. Processes running in a given time slice affect 
  1642. only the virtual clock associated with that time slice, so that the level of the virtual clock need only 
  1643. dominate the levels of these processes. Consequently, a process that reads the virtual clock for its 
  1644. time slice must have a level that dominates those of other processes running in that time slice.
  1645.  
  1646. The four requirements of the information-flow model imply those of the nondisclosure-
  1647. requirements model. This fact is an example of an "unwinding" theorem in that it shows how to 
  1648. recast nondisclosure in terms of individual inputs and state transitions. An informal justification of 
  1649. this fact can be given as follows. First, consider the nonobservability requirement: information at 
  1650. a given level L in the output stream cannot come directly from portions of the state not dominated 
  1651. by L (by the S/O security property), and it cannot come indirectly from a preceding state transition 
  1652. (by the S/S security property). Now consider noninterference: information in the output stream at 
  1653. a given level L cannot come directly from inputs not dominated by L (by the I/O security property), 
  1654. and it cannot come indirectly via an intermediate system state as a result of the I/S security and 
  1655. nonobservability properties.
  1656.  
  1657. All four of the flow-security requirements are necessary for noninterference. Moreover, there 
  1658. is a partial converse: in the case of systems that contain "print" commands capable of outputting 
  1659. arbitrary state components, the four flow-security requirements follow from the nondisclosure 
  1660. requirements.
  1661.  
  1662. This information-flow model is similar to those of Feiertag, Levitt, and Robinson [FEIE77] 
  1663. but it makes some minor improvements: an input that causes a state change may also induce output; 
  1664. a given input may induce outputs at several different levels; and it is not required that each input 
  1665. be associated with an identified user. The correctness of this model with respect to the 
  1666. nondisclosure-requirements model is formally proven in [WILL91]. The result is a variant of the 
  1667. unwinding theorem of Goguen and Meseguer. [GOGU84, RUSH85] An exposition of Rushby's 
  1668. treatment of the unwinding theorem can be found in the article "Models of Multi level Security." 
  1669. [MILL89]
  1670.  
  1671. 3.2.3           APPLICATION TO THE REFERENCE MONITOR INTERFACE
  1672.  
  1673. Security policy models traditionally emphasize the reference monitor interface and cover the 
  1674. processing of subject instructions but ignore issues associated with the sequencing of subject 
  1675. instructions and their synchronization with external inputs. These ignored issues are handled 
  1676. separately via covert channel analysis. This is due to the lack of general, well-developed modeling 
  1677. techniques for dealing with time, concurrence, and synchronization. Subject-instruction 
  1678. processing, by way of contrast, is readily modeled. In particular, the above external-interface and 
  1679. information-flow models can be used for subject-instruction processing, just by giving them a new 
  1680. physical interpretation.
  1681.  
  1682. Under this new interpretation, the inputs of the state machine are the instructions that subjects 
  1683. execute, including system traps whose semantics are defined by the TCB's kernel-calI software. 
  1684. External system inputs are also included in the case of "input instructions." Each instruction is 
  1685. executed to produce a state change and zero or more outputs. The outputs include external system 
  1686. outputs and, possibly, feedback to the unmodeled instruction-sequencing mechanism.
  1687.  
  1688. Notice that subjects do not literally execute instructions (since they are untrusted). The TCB 
  1689. itself executes each subject instruction on behalf of an associated subject controlled by the TCB. 
  1690. In particular, each hardware instruction available to processes outside of the TCB (i.e., each "user-
  1691. mode" instruction) is executed by the CPU, which is part of the TCB. To ensure nondisclosure 
  1692. security, all subject instructions, including user-mode hardware instructions, must satisfy the 
  1693. reinterpreted model requirements, either by virtue of the hardware design or by enforced 
  1694. restrictions on their use. For example, security may be violated if a subject can follow a kernel call 
  1695. with a "branch-to-previous C ontext" instruction that inadvertently restores all of the access 
  1696. privileges used during the processing of that kernel call. Instructions implemented by the hardware 
  1697. but not used by compilers should be modeled if the compilers are bypassable. In the unusual case 
  1698. where non-TCB subjects can directly execute microcode instructions, these too need to be 
  1699. modeled.
  1700.  
  1701. The actual accesses of a given subject to various objects in its environment are determined by 
  1702. the instructions it executes (or attempts to execute). Therefore, it is this stream of subject 
  1703. instructions that the reference validation mechanism must mediate in order to carry out the 
  1704. recommendations of the Anderson Report. [ANDE72] The application of noninterference and 
  1705. information flow to subject-instruction processing dates back to [FEIE77] where a form of 
  1706. noninterference is referred to as "property P1." The validation of noninterference as applied to 
  1707. LOCK subject-instruction processing is presented in [HAIG87a; FINE90]. Keefe and Tsai have 
  1708. adapted noninterference for use in modeling DBMS schedulers. [KEEF90] It can be shown that 
  1709. information flow for subject-instruction processing, together with a variant of noninterference for 
  1710. subject-instruction sequencing, implies noninterference and nonobservability for the entire system. 
  1711. [WlLL91]
  1712.  
  1713. 3.2.4           ACCESS--CONSTRAINT MODEL
  1714.  
  1715. An access-constraint model can be obtained by expanding the information-flow model of 
  1716. instruction processing to include traditional notions of access control, including subjects, objects, 
  1717. a current-access matrix, and access constraints. This is not a complete access control model in the 
  1718. traditional sense because it lacks rules of operation. It is a definition of mandatory security for 
  1719. instruction processing; it does not show how access constraints are actually enforced.
  1720.  
  1721. The access-constraint model assumes that the instruction processing state is made up of 
  1722. labeled state components called objects. The model does not explicitly assume that subjects are 
  1723. controlled processes, but it does assume that every computation involving either access to objects 
  1724. or output has an associated subject. Each subject has a nondisclosure level and is assumed to 
  1725. include its local data space (including stack, program counter, and so forth). Consequently, each 
  1726. subject is also considered to be an object that could passively be acted on by other subjects. The 
  1727. system state, st, contains a "current-access matrix," Ast (s, o), that associates each subject-object 
  1728. pair with a set of "modes." For simplicity, the possible modes are taken to be just "observe" and 
  1729. "modify."
  1730.  
  1731. The requirements of the access-constraint model fall into three groups: traditional 
  1732. requirements, constraints on the semantics of observation and modification, and I/O requirements. 
  1733. These requirements are formulated for systems with file-like objects that are opened (in accordance 
  1734. with simple security and the *-property), accessed for a period of time (in accordance with the 
  1735. observe-semantics and modify-semantics requirements), and then closed. Each of the eight 
  1736. requirements must hold in every reachable state.
  1737.  
  1738. Simple Security:
  1739.  
  1740. A subject may have observe access to an object only if its level dominates that of the 
  1741. object.
  1742.  
  1743. *-Property:
  1744.  
  1745. A subject may have modify access to an object only if its level is dominated by that of 
  1746. the object.
  1747.  
  1748. Tranquility:
  1749.  
  1750. The level of a given subject or object is the same in every reachable state.
  1751.  
  1752. Variants of simple security and the *-property are found in virtually all mandatory security 
  1753. models. The tranquility requirement can be weakened without compromising the mandatory 
  1754. security objective, but possibly at the expense of a more complicated model. [cf MCLE88]
  1755.  
  1756. The requirements which constrain the semantics of reading and writing are a major factor in 
  1757. deciding what checks must appear in the rules of operation. Other major factors include the actual 
  1758. system design and the degree of detail needed in the model.
  1759.  
  1760. Observe Semantics:
  1761.  
  1762. A subject that executes an instruction whose behavior depends on the value of some state 
  1763. component must have observe access to that state component.
  1764.  
  1765. Modify Semantics:
  1766.  
  1767. A subject that executes an instruction which modifies a given state component must have 
  1768. modify access to that state component.
  1769.  
  1770. The observe-semantics requirement is slightly stronger than necessary. A subject (e.g., a mail 
  1771. program) that knows the existence of two objects at a higher level might reasonably cause 
  1772. information to be transferred from one to the other by means of a "blind" copy instruction, but this 
  1773. is directly ruled out by the observe-semantics requirement. As noted by McLean [MCLE90, Sec. 
  1774. 4], Haigh's analysis contains a similar restriction. [HAIG84] A very careful treatment of what 
  1775. constitutes observation may be found in "A Semantics of Read." [MARC86] The use of a 
  1776. semantics of reading and writing may be found also in several other security modeling efforts, 
  1777. including those by Cohen, [COHE77] Popek, [POPE78] and Landwehr [LAND84].
  1778.  
  1779. The following requirements constrain allowed associations between subjects and I/O streams. 
  1780. They assume that each input is read on behalf of an associated subject referred to as its "reader."
  1781.  
  1782. Reader Identification:
  1783.  
  1784. The decision as to which subject is the reader for a given input must be based only on 
  1785. information whose level is dominated by that of the reader.
  1786.  
  1787. Reader Authorization:
  1788.  
  1789. The level of the data read must be dominated by that of the reader.
  1790.  
  1791. Writer Authorization:
  1792.  
  1793. A subject that executes an instruction which produces an output must have a level that is 
  1794. dominated by that of the output.
  1795.  
  1796. In some implementations, the associations between inputs and subjects are relatively static, and 
  1797. their validation is straightforward. In others, subjects are created dynamically to service inputs as 
  1798. they arrive, and explicit modeling may be useful.
  1799.  
  1800. If the eight requirements of this access-constraint model are satisfied, then so are the 
  1801. requirements of the information-flow model. [WILL91] This observation supports the thesis that 
  1802. access constraints can provide an adequate definition of mandatory security. Related comparisons 
  1803. of access control models and information-flow models may be found in the works by Gove and 
  1804. Taylor. [GOVE84, TAYL84] Unfortunately, this access-constraint model also shares some 
  1805. potential weaknesses of the previous models. In particular, use of the simple security and *-
  1806. properties to enforce nondisclosure rests on the following implicit assumption: a non-TCB subject 
  1807. either outputs information at its own level or outputs information of an unknown lower level that 
  1808. must, therefore, be given worst-case protection. This assumption ignores the possibility that a 
  1809. process may be able to produce information which is more highly classified than its inputs through 
  1810. some form of aggregation or inference. Security models which address this possibility in the case 
  1811. of database management systems are discussed in Section 4.3.
  1812.  
  1813. 3.2.5           TAILORING THE MODELS
  1814.  
  1815. The remaining tasks in modeling nondisclosure are to tailor the definition of mandatory 
  1816. security to meet specific system needs and to provide rules of operation describing the kinds of 
  1817. actions that will be exhibited by the system being modeled. The following paragraphs discuss 
  1818. adaptations relating to lack of current access and the desirability of modeling error diagnostics, 
  1819. trusted operations, and nondeterminacy.
  1820.  
  1821. In most systems there are some operations that access objects without being preceded by an 
  1822. operation that provides access permission. For these operations, authorization must be checked on 
  1823. every access, and either the model or its interpretation must treat the combined effects of the simple 
  1824. security and observe-semantics properties, and of the *-property and modify-semantics properties. 
  1825. If this is done in the model, the result is as follows:
  1826.  
  1827. Observe Security:
  1828.  
  1829. A subject may execute an instruction whose behavior depends on the value of an object 
  1830. only if its security level dominates that of the object.
  1831.  
  1832. Modify Security:
  1833.  
  1834. A subject may execute an instruction that modifies an object only if its level dominates 
  1835. that of the object.
  1836.  
  1837. These axioms omit reference to the traditional current-access matrix and are particularly well-
  1838. suited to systems that do not have an explicit mechanism for granting access permissions.
  1839.  
  1840. Although it is necessary to model unsuccessful execution resulting from attempted security 
  1841. violations, it is not necessary to model resulting error diagnostics. If the model only covers normal 
  1842. use of the system, it is both acceptable and traditional to omit error diagnostics, as would typically 
  1843. be the case in an informal model of a B1 system. For higher evaluation classes, however, an 
  1844. available option is to give detailed rules of operation that explicitly model some or all error returns. 
  1845. Their inclusion in the model can provide an alternative to examining them by means of a more 
  1846. traditional covert channel analysis, as well as additional information for judging correctness of the 
  1847. system's design and implementation. Error diagnostics resulting from unsuccessful instruction 
  1848. executions can reasonably be modeled either as output or as information written into the subject's 
  1849. data space.
  1850.  
  1851. A variant of the above modeling strategy has been carried out for the LOCK system. The 
  1852. LOCK verification is based on noninterference and nonobservability applied to subject-instruction 
  1853. processing (as opposed to the entire system). The inputs consist of LOCK kernel requests and user-
  1854. mode machine instructions. LOCK uses a "conditional" form of noninterference in which certain 
  1855. "trusted" inputs are explicitly exempted from the noninterference requirement. The LOCK model 
  1856. was elaborated by means of an unwinding theorem and then augmented to obtain an access control 
  1857. model. Technically, the LOCK noninterference verification is an extension of traditional access 
  1858. control verification because the first major step in proving noninterference was to verify the 
  1859. traditional Bell & La Padula properties for the LOCK access control model. This access-control 
  1860. verification represents about half of the LOCK noninterference verification evidence. The LOCK 
  1861. developers compared noninterference verification with a traditional covert channel analysis 
  1862. technique based on shared resource matrices. [HAIG87, FINE89] They have since concluded that 
  1863. the noninterference approach is preferable, especially if both nonobservability and noninterference 
  1864. are verified, because of the extensive hand analysis associated with the shared resource matrix 
  1865. approach.
  1866.  
  1867. Noninterference has been generalized to nondeterministic systems in several ways. A variety 
  1868. of nonprobabilistic generalizations has been proposed for dealing with nondeterminacy, but they 
  1869. do not provide a full explanation of nondisclosure because of the possibility of noisy information 
  1870. channels. [WITT90] Despite this limitation, nonprobabilistic generalizations of noninterference 
  1871. provide useful insight into the nature of security in distributed systems. An interesting result is that 
  1872. a security model can be adequate for sequential systems, but is not adequate for a distributed 
  1873. system. This is because the process of "hooking up" its sequential components introduces new 
  1874. illegal information channels that are not addressed by the model. [MCCU88a] A state-machine 
  1875. model that overcomes this lack of "hook-up" security has been provided by McCullough. 
  1876. [MCCU88] It relies on state-transition techniques and, like the original Goguen and Meseguer 
  1877. models, has a demonstrated compatibility with traditional design verification methodologies.
  1878.  
  1879. 3.3     NEED-TO-KNOW AND DISCRETIONARY ACCESS CONTROL
  1880.  
  1881. Discretionary access control (DAC) mechanisms typically allow individual users to protect 
  1882. objects (and other entities) from unauthorized disclosure and modification. Many different DAC 
  1883. mechanisms are possible, and these mechanisms can be tailored to support a wide variety of user- 
  1884. -controlled security policy objectives. Users may impose need-to-know constraints by restricting 
  1885. read access and may guard the integrity of their files by restricting write access. As explained 
  1886. below, the use of group names may also allow specific objects and processes to be associated with 
  1887. specific user roles in support of least privilege. Discretionary security mechanisms are more varied 
  1888. and tend to be more elaborate than mandatory mechanisms. The policy requirements for them are 
  1889. weaker in order to allow for this variation. As a result, a well-understood discretionary security 
  1890. model can play a larger role both in clarifying what is provided in a particular system and in 
  1891. encouraging an elegant security design.
  1892.  
  1893. Traditionally, systems have been built under the assumption that security objectives related to 
  1894. DAC are both user-enforced and user-supplied. A variety of well-known weaknesses are traceable 
  1895. to this assumption. By way of contrast, vendor cognizance of user security objectives allows the 
  1896. development of a DAC security model whose mechanisms correctly support higher-level, user- 
  1897. enforced security policies. Moreover, modeling of these higher-level policies would provide a 
  1898. suitable basis for validating correctly designed DAC mechanisms and for supplying guidance on 
  1899. their use for policy enforcement.
  1900.  
  1901. DAC mechanisms and requirements are summarized in Section 3.3.1. Group mechanisms and 
  1902. their use in supporting user roles are covered in Section 3.3.2. Section 3.3.3 discusses traditional 
  1903. weaknesses in meeting common user-enforced security objectives and Section 3.3.4 presents 
  1904. mechanisms that overcome some of these weaknesses. Further information on DAC mechanisms 
  1905. may be found in A Guide to Understanding Discretionary Access Control in Trusted Systems. 
  1906. [NCSC87a] The formalization of control objectives such as need-to-know and least privilege, as 
  1907. well as the subsequent verification of access control mechanisms with per-user granularity, are 
  1908. research topics that have yet to be adequately explored.
  1909.  
  1910. 3.3.1           DAC REQUIREMENTS AND MECHANISMS
  1911.  
  1912. Separate DAC attributes for reading and writing are traditional but not required. DAC security 
  1913. attributes must be able to specify users both explicitly and implicitly (i.e., by specifying a user 
  1914. group whose membership might be controlled by another user or user group). For systems at B3 
  1915. and above, DAC attributes must give explicit lists of individuals and groups that are allowed or 
  1916. denied access. A wide variety of relationships among individual and group permissions and denials 
  1917. are possible. [cf LUNT88]
  1918.  
  1919. The assignment of DAC attributes may be carried out by direct user interaction with the TCB, 
  1920. by (non-TCB) subjects acting on behalf of the user [NCSC88b, C1-CI-01-86], or by default. This 
  1921. last alternative is needed in order to ensure that an object is protected until such time as its DAC 
  1922. attributes are set explicitly. [NCSC88b, C1-CI-03-86] The default attributes for an object may be 
  1923. inherited (as when a new object is created in UNIX by copying an object owned by the user) or 
  1924. they may be statically determined.
  1925.  
  1926. A user who has responsibility for assigning DAC attributes to an object may be regarded as 
  1927. an owner of the object. Typically, the user who creates an object has responsibility for assigning 
  1928. DAC attributes and is thus the initial owner in this sense, but this is not a requirement. [NCSC88b, 
  1929. C1-CI-03-85] In UNIX, each file has a unique explicit owner, but root can also modify DAC 
  1930. attributes and it is thus an implicit co-owner. Some systems provide for change of ownership and 
  1931. for multiuser ownership; others do not. A variety of issues arise in the case of multiple owners. 
  1932. May any owner grant and revoke access, or are some owners more privileged than others? How is 
  1933. coordination among owners achieved; is agreement among owners required? The answers can 
  1934. differ for read and write accesses and for granting and revoking. Analogous issues arise when 
  1935. transfer of ownership occurs. A traditional approach to these issues is to let any owner grant or 
  1936. revoke access or ownership; another is to adopt a principle of "least access," so that all owners must 
  1937. grant a particular kind of access in order for it to become available. [cf LUNT88]
  1938.  
  1939. By tradition, the entities controlled by the DAC mechanism must include all user-accessible 
  1940. data structures controlled by MAC. However, the explicitly controlled entities (i.e. named objects) 
  1941. may be different from MAC storage objects. Examples where storage objects and named objects 
  1942. differ are found in some database systems (see Section 4.3). Operating systems can also have this 
  1943. feature. For example, files might be named objects which are made up of individually labeled 
  1944. segments that are the storage objects.
  1945.  
  1946. 3.3.2           USER GROUPS AND USER ROLES
  1947.  
  1948. Access control lists determine triples of the form [user/group, object, access-mode] and 
  1949. thereby provide a limited variety of triples of the sort used for role enforcement. In fact, 
  1950. generalizing the mechanism to allow arbitrary programs in place of access modes would provide a 
  1951. general mechanism of the sort used for role enforcement, as was discussed at the end of Section 
  1952. 3.1.3. In the case of a trusted role, all associated programs would belong to the TCB.
  1953.  
  1954. Some systems allow a user to participate in several groups or roles. Some of these systems 
  1955. require a user to set a "current group" variable for a given session. In this case, the user would run 
  1956. only programs with execute access in the current group, and they would access only files associated 
  1957. with that group. Again, the effect is to create a three-way constraint involving user groups, 
  1958. processes, and storage objects. In order for a user to participate in several groups or roles, it must 
  1959. be possible for some groups to be subgroups of others or for a user to be associated with several 
  1960. different groups. The possibility of subgroups involves some interesting implementation issues. 
  1961. [SAND88] In the SMMS [LAND84], groups represent user roles, each user has a unique 
  1962. "individual" role, there is a notion of current role, and a given user may have several current roles. 
  1963. This use of individual roles or groups is a way of tying individual accesses to group accesses so 
  1964. that the two kinds of access do not have to be discussed separately: individual access is implicitly 
  1965. given by the rules for group access applied to one-member groups.
  1966.  
  1967. The ability to define user groups may be distributed. It is usually assumed that the class 
  1968. authorized to define user groups is larger than the class of system security personnel but smaller 
  1969. than the entire user population. A group associated with a trusted user role (e.g., downgrader, 
  1970. security administrator) would necessarily be controlled by a system administrator.
  1971.  
  1972. The owner of a group and the users who specify access to their objects in terms of that group 
  1973. need to clearly understand both the criteria for group membership and the entitlements associated 
  1974. with membership in that group. Such understandings depend partly on the mechanics of the group 
  1975. mechanism, which may be clarified by including groups in the security model.
  1976.  
  1977. 3.3.3            SOURCES OF COMPLEXITY AND WEAKNESS
  1978.  
  1979. In security policies and definitions of security, complexity tends to inhibit effective user 
  1980. understanding. As such, it is a weakness that, in some cases, may be offset by accompanying 
  1981. advantages. The following paragraphs discuss several sources of complexity and weakness in DAC 
  1982. mechanisms including objects that are not disjoint, the coexistence of two or more access control 
  1983. mechanisms, discrepancies between allowed and authorized accesses, and the use of "set-user-id" 
  1984. to allow object encapsulation. Finally, the most common weakness found in DAC mechanisms is 
  1985. discussed, namely, that they are loose; that is, they control access to objects without necessarily 
  1986. controlling access to the information they contain.
  1987.  
  1988. It can happen that named objects overlap so that a given piece of data can be associated with 
  1989. several different sets of security attributes. In this case, they can be called disjoint. This is 
  1990. essentially what happens if ownership is associated with file names rather than with files. In this 
  1991. case, a given piece of data can have multiple owners, each of whom can give or revoke access to 
  1992. it. As with mandatory access controls, a lack of disjointness tends to interfere with one's ability to 
  1993. determine allowed accesses. It usually implies that named objects are different from storage 
  1994. objects, a fact which is a source of complexity that may have some advantages. Discretionary 
  1995. access may be controlled to a finer or coarser level of object granularity than mandatory access. 
  1996. Aggregation problems can be addressed by allowing some objects to be subobjects of others and 
  1997. by imposing stricter access controls on an aggregate object than on its components. In the case of 
  1998. aggregate objects, there is the additional problem that a change in the permissions of the aggregate 
  1999. may logically entail a change in the permissions of its components.
  2000.  
  2001. When a C2 or B1 system is created by retrofitting security into a previously unevaluated 
  2002. system, it may happen that the new mechanism supports access control lists in addition to the old 
  2003. discretionary mechanism supported. In this case, the discretionary portion of the security model 
  2004. can play a useful role in showing how the two mechanisms interact. [BODE88]
  2005.  
  2006. If a process has its discretionary permission to access an object revoked while the process is 
  2007. using it, some implementations allow this usage to continue, thereby creating a distinction between 
  2008. authorized and allowed accesses. This distinction is both an added complexity and a weakness that 
  2009. needs to be modeled in order to accurately reflect the utility of the mechanism. The principal reason 
  2010. for allowing this distinction is efficiency of implementation. However, in virtual memory systems, 
  2011. immediate revocation can often be handled efficiently by deleting access information in an object's 
  2012. page table. [KARG89]
  2013.  
  2014. Although discretionary access is ordinarily thought of as relating to users and objects, 
  2015. processes also acquire discretionary permissions, either dynamically when they are executed, or 
  2016. statically from their executable code. With dynamic allocation, the permissions may be those 
  2017. associated with the user who invoked the process; the process's user id would be an example. In 
  2018. command and control systems, there is often a "turnover" mechanism in which the user id of a 
  2019. process can change in order to allow a smooth transfer of control when a user's shift ends. In 
  2020. UNIX, the user id of a shell program changes in response to a "switch user" command.
  2021.  
  2022. With static allocation, security attributes might be associated with a subject on the basis of its 
  2023. executable code. The UNIX "set user id" feature provides an example of this type of allocation. 
  2024. The owner of a program can specify that it is a "set-id" program, meaning that it will run with the 
  2025. owner's "effective user id" and thereby assume its owner's permissions when executed by other 
  2026. users. The purpose of this mechanism is to allow programmers to create "encapsulated" objects. 
  2027. Such an object is encapsulated by giving it owner-only access, so that it can be handled only by 
  2028. programs whose effective user id is that of the owner. Other users can access the object by only 
  2029. executing "encapsulating" set-user-id programs that have the same owner as the encapsulated 
  2030. object. The UNIX set-user-id option is a source of added complexity, and, as explained below, is 
  2031. vulnerable to a variety of misuses. Other methods of object encapsulation are thus well worth 
  2032. investigating. Suggested patches to the UNIX set-user-id mechanism have been considered in the 
  2033. design of Secure Xenix [GLIG86], and modeling of the set-user-id mechanism itself is illustrated 
  2034. in the TRUSIX work. [NCSC90b]
  2035.  
  2036. Discretionary access controls are inherently loose. This can cause information to be disclosed 
  2037. even though the owner has forbid it. For example, breaches of need-to-know security may occur 
  2038. when user i, who owns a file f gives permission to access information in f to user j but not to user 
  2039. k, and then k indirectly obtains access to f. This can happen in a variety of ways, including the 
  2040. following:
  2041.  
  2042. ╖ j copies f to a file that k has read access to.
  2043.  
  2044. ╖ a Trojan horse acting under authority of either i or j gives k a copy of f.
  2045.  
  2046. ╖ a Trojan horse acting under authority of i gives k read access to f.
  2047.  
  2048. ╖ a poorly designed set-user-id program created by j is run by k (with the discretionary 
  2049. permissions of j) and is misused to give k a copy of f.
  2050.  
  2051. Each case involves an extension of access that is analogous to downgrading in MAC. If this 
  2052. extension occurs without the knowledge and permission of f owner, then the intent of the owner's 
  2053. protection is violated.
  2054.  
  2055. The first three of the above five weaknesses are specific to policies dealing with 
  2056. nondisclosure, and they need not carry over to other policies dealing with unauthorized 
  2057. modification. The fourth and fifth weaknesses, by way of contrast, involve tampering with DAC 
  2058. security attributes by non-TCB subjects, a feature that seriously affects any policy relying on DAC 
  2059. attributes.
  2060.  
  2061. The first of the above weaknesses appears to be an inherent aspect of traditional DAC 
  2062. mechanisms. An interesting fact about these mechanisms is that there is no general algorithm that 
  2063. can decide, for an arbitrary system and system state, whether a given user can ever obtain access 
  2064. to a given object. [HARR76] As explained below, such weaknesses are not forced by DAC 
  2065. requirements, despite their prevalence in existing systems.
  2066.  
  2067. 3.3.4            TIGHT PER-USER ACCESS CONTROL
  2068.  
  2069. Tight controls on the distribution of information within a computing system originate from 
  2070. efforts to provide DAC-like mechanisms that have useful information-flow properties [MILL84] 
  2071. and from efforts to provide automated support for "ORCON" and similar release markings that are 
  2072. used in addition to security classifications. (ISRA87, GRAU89] Some typical release markings 
  2073. are:
  2074.  
  2075. ORCON-dissemination and extraction of information controlled by originator 
  2076.  
  2077. NOFORN-not releasable to foreign nationals
  2078.  
  2079. NATO-releasable to NATO countries only
  2080.  
  2081. REL -releasable to specified foreign countries only
  2082.  
  2083. EYES ONLY -viewable by members of specified offices only 
  2084.  
  2085. PERSONAL FOR -releasable to specified individuals only.
  2086.  
  2087. Release markings are used by the originator(s) of a document for providing need-to-know 
  2088. information. Some release markings such as NOFORN, NATO, and REL <>, have coarse user 
  2089. granularity and, as explained in Appendix A.4, can be handled via nondisclosure categories. Others 
  2090. have per-user granularity but, unlike traditional DAC mechanisms, restrict access to both the 
  2091. document and the information it contains. A catalogue of release markings and an accompanying 
  2092. language syntax may be found in the article "Beyond the Pale of MAC and DAC - Defining New 
  2093. Forms of Access Control." [MCCO90]
  2094.  
  2095. Tight access control mechanisms designed to support need-to-know differ from traditional 
  2096. DAC mechanisms in several crucial respects. The explicitly controlled entities (i.e., "named 
  2097. objects") include processes as well as data structures. In addition, a user's ability to modify their 
  2098. security attributes is highly constrained. The first such mechanism was proposed by Millen 
  2099. [MILL84]; a minor variant of it follows.
  2100.  
  2101. Each controlled entity is associated with two sets of users, a "distribution" set and a 
  2102. "contribution" set. These are obtained by evaluating the entity's "access expression" whenever the 
  2103. object is involved in an access check. Access expressions are the DAC attributes of the policy; their 
  2104. semantics explain the interplay among individual and group authorizations and denials. For the 
  2105. sake of brevity these are not modeled. The distribution and contribution sets enforce nondisclosure 
  2106. and integrity constraints, respectively. Smaller distribution sets represent a higher level of 
  2107. nondisclosure, and smaller contribution sets represent a higher level of integrity. The empty set is 
  2108. both the highest nondisclosure level and the highest integrity level. Information may flow from 
  2109. entity f to entity g, provided the distribution set for f contains the distribution set for g and the 
  2110. contribution set for f is contained in the contribution set for g.
  2111.  
  2112. In Millen's model, devices have a controlling influence on user behavior. A terminal, for 
  2113. example, is modeled as two separate devices-a keyboard for input and a screen for output. When 
  2114. a user logs in, the distribution and contribution sets for both the keyboard and the screen are set (by 
  2115. a secure terminal server) to {i}. Communication from other users (or files that they own) is enabled 
  2116. by extending the contribution set for the screen. Communication to other users is enabled by 
  2117. extending the distribution set for the keyboard. The keyboard contribution set and the screen 
  2118. distribution set must always contain {i} in order to reflect the actual presence of the person using 
  2119. the terminal.
  2120.  
  2121. The distribution sets and contribution sets of Millen's model may be viewed as levels whose 
  2122. partial ordering is directly tied to an information-flow policy. Consequently, this DAC mechanism 
  2123. is tight enough to control information flow, and covert storage channel analysis can be used to 
  2124. check the extent to which distribution sets control disclosure in an actual implementation. In 
  2125. Millen's model, DAC permissions for an object are set (by its creator or by default) when it is 
  2126. created and are never modified thereafter. As a result, DAC Trojan horses of the sort discussed in 
  2127. Section 3.3.3 are impossible. The ability to dynamically change discretionary attributes without 
  2128. losing tightness would require some nontrivial additions to the policy. Expansion must be done 
  2129. only by trusted path software in response to appropriate owner authorization. Ownership must 
  2130. propagate so that it is associated not only with controlled entities but also with the information they 
  2131. contain. One option is for ownership to propagate in the same way as contribution sets, with each 
  2132. owner supplying access constraints. A slightly different option is suggested in McCollum's work. 
  2133. [MCCO90]
  2134.  
  2135. Similarities between MAC and the tight DAC of Millen's model suggest the possibility of a 
  2136. single mechanism meeting both sets of requirements. Moreover, both sets of requirements stem 
  2137. from the same policy objective in Security Requirements for Automated Information Systems 
  2138. (AISs). [DOD88a] The consistency of the two sets can be informally justified as follows: assume 
  2139. the system supports co-ownership by maintaining separate distribution and contribution sets for 
  2140. each owner, taking intersections in the obvious way. Each input must be co-owned by a system 
  2141. security officer (SSO), and there is a trusted path mechanism that allows a user to select the SSO's 
  2142. distribution set from a collection of SSO-controlled groups. For example, the groups might be TS, 
  2143. S+, and U+ where, by definition, U+ is the group of all users, S+ is the union of TS and the secret 
  2144. users, and TS is the top secret-users. Users are instructed to select the SSO's distribution set 
  2145. according to the sensitivity of their data, and, as a result, the main MAC requirements for labeling 
  2146. and access control are satisfied.
  2147.  
  2148. A disadvantage of tight DAC is that there are many innocuous violations of the policy, as, for 
  2149. example, when a user creates a file with owner-only access and then mails it to a colleague. Pozzo 
  2150. has suggested that, if the user is authorized to extend access, a trusted path mechanism should 
  2151. interrupt the program causing the violation in order to obtain the user's permission, thereby 
  2152. minimizing the inconvenience associated with tight control. [POZZ86] Another strategy for 
  2153. minimizing unnecessary access violations, which has been suggested by Graubartis, is to allow 
  2154. DAC security attributes to float so that when a process reads a file, for example, the distribution 
  2155. list for the process would be intersected with that of the file. [GRAU89] A disadvantage of 
  2156. propagated ownership is that the set of owners tends to expand, and this is inconvenient if all 
  2157. owners must agree on access control decisions.
  2158.  
  2159. 3.4     TCB SUBJECTS-PRIVILEGES AND RESPONSIBILITIES
  2160.  
  2161. TCB processes are often exempt from some of the access constraints placed on non-TCB 
  2162. subjects and are, therefore, able to access data and perform actions that are not available to non-
  2163. TCB subjects. The responsible use of such exemptions by the TCB is properly part of the system 
  2164. security policy. Exemptions in this sense are not a license to violate policy. If a TCB process is 
  2165. exempt from some of the constraints placed on non-TCB subjects but not others, it may be useful 
  2166. to treat it as a TCB subject so that the TCB can enforce those constraints from which it has not been 
  2167. exempt.
  2168.  
  2169. The trusted-role programs identified in Section 3.1.3 are usually exempt in this sense because 
  2170. they have access to security critical data structures and, in many cases, address role-related 
  2171. extensions of the basic system security policy. Device-related subjects are also likely to be exempt. 
  2172. A secure terminal server needs to handle inputs at a variety of security levels and may be 
  2173. implemented as a TCB subject exempt from some of the MAC constraints. A print server is also 
  2174. likely to be implemented as a multilevel TCB subject because of the need to save, label, and print 
  2175. files at several different security levels.
  2176.  
  2177. In some cases, exempt subjects conform to the same overall policy that the system enforces 
  2178. on non-TCB subjects. In others, exempt subjects provide limited but significant extensions to the 
  2179. basic system policy. As a result, the presence of unmodeled exempt subjects can make it difficult 
  2180. to determine the actual system security policy by looking at the security policy model. [cf 
  2181. LAND84] To the extent that the policy for exempt subjects differs from the policy described in the 
  2182. system security model, the validity of the model as a representation of the system is compromised 
  2183. as are assurances derived from an analysis of the model. The extent of the compromise tends to be 
  2184. influenced by the extent to which such exempt subjects interact with nonexempt subjects.
  2185.  
  2186. The actual rules enforced by the system include both what may be done by non-TCB subjects 
  2187. and what is done by TCB subjects. Unmodeled special cases can be avoided by directly addressing 
  2188. the policies associated with exempt subjects in the model. [cf ABRA90] The following paragraphs 
  2189. address the modeling of exemptions and their legitimate use by TCB processes. There is no explicit 
  2190. requirement to model TCB subjects and their exemptions from access control, but there may be 
  2191. implicit modeling requirements that apply to some subjects, especially those that are directly 
  2192. involved in the access control mechanism. In the case of subjects exempt from mandatory access 
  2193. checks, it is often appropriate to substitute covert channel analysis for explicit modeling.
  2194.  
  2195. 3.4.1           IDENTIFYING PRIVILEGES AND EXEMPTIONS
  2196.  
  2197. If the principle of least privilege is followed in allocating exemptions to TCB subjects, then 
  2198. the extent of a subject's exemptions are both a partial measure of the need to model its behavior 
  2199. and an indicator of what should be modeled. This information indicates the extent to which a TCB 
  2200. subject's privileges may be abused and, thus, the amount of assurance that must be provided 
  2201. regarding the subject's correctness. Information on the extent of a subject's exemptions can be 
  2202. provided by an explicit identification of exemptions, by its security attributes, and by specific 
  2203. knowledge of the resources accessible to it. These identification techniques provide a variety of 
  2204. techniques for modeling and implementing exemptions.
  2205.  
  2206. A useful first step in describing exemptions is to classify them according to various kinds of 
  2207. security requirements, such as mandatory access control, discretionary access control, auditing, 
  2208. and service assurance. The purpose of this classification is to guarantee that any process which fails 
  2209. to have a particular kind of exemption will not interfere with the corresponding kind of security 
  2210. requirement. Each named exemption or "privilege" is associated with a particular kind of 
  2211. functionality allowed by that exemption. Ideally, this functionality should be available only 
  2212. through possession of the named exemption. As with other security attributes, it is important to 
  2213. know how a process inherits its exemptions (e.g., dynamically from its parent or statically from its 
  2214. executable code). Whether this classification is an explicit part of the model will depend largely on 
  2215. whether it appears in the system design. Including exemptions explicitly in the design simplifies 
  2216. the analysis of exempt subjects but also complicates the access control mechanism.
  2217.  
  2218. In the Army Secure Operating System (ASOS), exemptions are an explicit part of the access 
  2219. control mechanism. [DIVI90] The association between exemptions and kinds of security allows 
  2220. the model to assert, for example, that any process (trusted or otherwise) satisfies the *-property 
  2221. unless it has the "security-star-exemption." To possess an exemption, a process must receive that 
  2222. exemption both statically during system generation and dynamically from its parent process. Thus, 
  2223. most ASOS subjects can never have exemptions. Those subjects that can have exemptions will 
  2224. only run with the exemptions when they are necessary. The TRUSIX work also illustrates the use 
  2225. of exemptions for the case of a trusted login server: two exemptions and associated transformations 
  2226. allow (a new invocation of) the server to change its real user id and raise its security level. 
  2227. [NCSC90b]
  2228.  
  2229. The DAC mechanism can be extended to identify TCB subjects and security-critical objects 
  2230. in the following way. The system has one or more distinguished pseudousers. Some or all security- 
  2231. critical data structures are owned by these pseudousers. A named object owned by a pseudouser 
  2232. has owner-only access, and DAC is designed in such a way that nothing can ever alter the access 
  2233. permissions of an object owned by a pseudouser. (This implies that the system's DAC mechanism 
  2234. is free from some of the traditional weaknesses mentioned in Section 3.3.3.) Only TCB subjects 
  2235. are allowed to act on behalf of pseudousers and, therefore, are the only subjects capable of 
  2236. accessing objects owned by their pseudousers. Thus, if the audit trail, for example, is owned by an 
  2237. "auditor" pseudouser, then editing of audit files can be performed only by specially designed TCB 
  2238. subjects acting on behalf of the auditor, if at all.
  2239.  
  2240. The MAC mechanism can also be extended to allow partial exemptions. Security-critical data 
  2241. structures can be treated as objects with special security levels possessed only by TCB subjects. 
  2242. More significantly, subjects can be partially exempt from the *-property. Each subject is provided 
  2243. with two separate security labels, an "alter-min" label that gives the minimum level to which a 
  2244. subject may write and a "view-max" label that gives the maximum level from which it may read. 
  2245. A process is partially trusted to the extent that its alter-min level fails to dominate its view-max 
  2246. level. [SCHE85, BELL86, DION81] A straightforward application of partially trusted processes is 
  2247. found in the GEMSOS design. [SCHE85] Each process has two security labels and is classified as 
  2248. "single-level" or "multilevel," according to whether the two labels are equal or distinct. Each 
  2249. security label has separate nondisclosure and integrity components. The nondisclosure component 
  2250. of the view-max label must dominate the nondisclosure component of the alter-min label, whereas, 
  2251. the integrity component of the alter-min label dominates the integrity component of the view-max 
  2252. label because of the partial duality between nondisclosure and integrity mentioned in Section 3.1.6.
  2253.  
  2254. Finally, as an example of the above identification techniques, consider the requirement that 
  2255. only certain administrative processes can access user-authentication data. One possibility is to treat 
  2256. this independently of other policy requirements. User-authentication data can be stored in 
  2257. unlabeled TCB data structures that are not available to non-TCB subjects or even most TCB 
  2258. subjects. This nonavailability constraint (and exemption from it) might be implemented via 
  2259. hardware isolation or by an explicit software exemption mechanism. This approach could be 
  2260. explicitly modeled.
  2261.  
  2262. A second possibility is to permanently place user-authentication data in named objects owned 
  2263. by an "administrator" pseudouser and allow only certain programs to run on behalf of this 
  2264. pseudouser. A (fixable) drawback of this approach is that such programs may need to run on behalf 
  2265. of actual users for auditing purposes.
  2266.  
  2267. A third possibility is to place user-authentication data in a storage object which has a unique 
  2268. security level that is incomparable with any level available to users of the system. Only certain 
  2269. administrative programs are allowed to run at this level; such programs may need to be partially 
  2270. trusted in order to access data at other security levels. Notice that other TCB-only security levels 
  2271. may be needed to ensure that these administrative programs do not have access to other security- 
  2272. critical data structures which are also being protected by the MAC mechanism.
  2273.  
  2274. 3.4.2           RESPONSIBLE USE OF EXEMPTIONS
  2275.  
  2276. In modeling an exempt subject, the goal is to prohibit abuses of privilege that might result 
  2277. from exemptions by placing explicit constraints on that subject's behavior. The main challenge in 
  2278. formulating these constraints is to achieve an appropriate level of abstraction. In most cases, the 
  2279. requisite security requirement is considerably weaker than a detailed statement of functional 
  2280. correctness. The following paragraphs first discuss subjects that conform to the overall policy 
  2281. enforced for non-TCB subjects and then discuss those that do not. These latter subjects include, 
  2282. primarily, the trusted-role programs identified in Section 3.1.3.
  2283.  
  2284. An exempt subject that conforms to the basic policy illustrated by the modeling of non-TCB 
  2285. subjects usually does not require separate modeling unless it supports a significant extension of the 
  2286. TCB interface that is not covered by the general model. This is the case of a subject which is also 
  2287. a trusted DBMS, for example. However, the modeling of a policy-conforming exempt subject can 
  2288. provide additional insight into its proper design and is particularly valuable if the subject is visible 
  2289. at the user interface. For example, a scheduler is user-visible, should be policy-conforming, and 
  2290. could be treated as an exempt subject whose behavior is justified either by modeling 
  2291. noninterference-like requirements [cf KEEF90; MAIM90] or by performing a covert channel 
  2292. analysis.
  2293.  
  2294. A secure terminal server is another example of a user-visible, policy conforming, exempt 
  2295. subject. The main security-critical requirements for a secure terminal server are that each user and 
  2296. terminal have a trusted path (or paths) for exchanging security-critical information with the TCB 
  2297. and that there be no "cross talk" between a given trusted path and any other I/O channel. The issue 
  2298. of how logical channels are multiplexed onto a given terminal is not security-relevant, as long as 
  2299. it is correct. The fact that the multiplexing includes an Identification and Authentication (I&A) 
  2300. protocol is security-relevant, but modeling details of the I&A mechanism is unlikely to add much 
  2301. assurance unless it is accompanied by an analysis of subvertability.
  2302.  
  2303. In the case of a trusted-role program, misuse and resulting breaches of security can be 
  2304. prevented through a combination of software checks and procedural constraints on correct use of 
  2305. the program. If the program and the trusted role it supports are designed together, then the design 
  2306. analysis can identify errors of use and can determine whether they are easily detected through 
  2307. automated checks. The automated checks are appropriately covered in a trusted-process security 
  2308. model. Knowledge of errors that are not caught by the automated checks can be recast as informal 
  2309. policies associated with the trusted role itself. These procedural policies are reasonably included 
  2310. in the system's Trusted Facility Manual. A reader of the high-level system documentation should 
  2311. be able to see how a given misuse of a trusted role is inhibited through an appropriate combination 
  2312. of software mechanisms required by the model and procedural constraints found in the definition 
  2313. of the trusted role. One should be able to see, for example, how a system administrator is inhibited 
  2314. from falsifying evidence about the behavior of other users by editing the audit trail.
  2315.  
  2316. Security properties for trusted-role processes often involve constraints that hold over a 
  2317. sequence of events, as opposed to constraints on individual state transitions. The use of locks to 
  2318. ensure proper sequencing of events may be needed, at least in some cases. [cf LAND89] Modeling 
  2319. of trusted-role processes is often omitted on grounds of restricted use and lack of accepted 
  2320. examples, but this argument is weak because the higher level of user trust is offset by a greater 
  2321. potential for abuse.
  2322.  
  2323. 3.5     INTEGRITY MODELING
  2324.  
  2325. Although both integrity and nondisclosure are important for both commercial and military 
  2326. computing systems, commercial systems have historically placed greater emphasis on integrity, 
  2327. and military systems more emphasis on nondisclosure. Accordingly, guidelines on integrity policy 
  2328. are under development by the National Institute of Science and Technology (NIST).
  2329.  
  2330. Although the TCSEC does not impose specific requirements for integrity policy modeling, it 
  2331. does provide for vendor-supplied policies and models. As mentioned in Section 1.3.2, DoD 
  2332. Directive 5200.28 includes both integrity and nondisclosure requirements. In addition, the NCSC 
  2333. evaluation process accommodates any security policy that meets minimum TCSEC requirements 
  2334. and is of interest to the Department of Defense.
  2335.  
  2336. Although the following paragraphs do not offer guidance on the formulation of system 
  2337. integrity policies, they do consider relevant modeling techniques and TCSEC requirements. A brief 
  2338. discussion of integrity objectives, policies, and models is given in order to provide an overall 
  2339. picture of the field of security policy modeling. This is followed by a brief taxonomy of integrity-
  2340. related concepts and their relationship to security modeling. Topics covered in the taxonomy fall 
  2341. into two broad areas: error handling and integrity-oriented access control. Examples relating to 
  2342. TCB integrity are included with the taxonomy as indications of possible relationships between 
  2343. integrity modeling and related assurance issues for the TCB. The presented taxonomy is based 
  2344. largely on the one found in "A Taxonomy of Integrity Models, Implementations and Mechanisms." 
  2345. [ROSK90]
  2346.  
  2347. 3.5.1           OBJECTIVES, POLICIES, AND MODELS
  2348.  
  2349. The term integrity has a variety of uses in connection with computer security [cf RUTH89], 
  2350. all stemming from a need for information that meets known standards of correctness or 
  2351. acceptability with respect to externally supplied real-world or theoretical situations. A closely 
  2352. related need is the ability to detect and recover from occasional failures to meet these standards. 
  2353. These needs lead to derived objectives for user integrity, data integrity, and process integrity in 
  2354. order to maintain and track the acceptability of information as it is input, stored, and processed by 
  2355. a computing system.
  2356.  
  2357. Commercial experience as a source of integrity objectives, policies, and mechanisms is 
  2358. covered in the landmark paper by Clark and Wilson. [CLAR87; KATZ89] Their paper includes a 
  2359. separation-of-duty objective for promoting user integrity; application-dependent, integrity-
  2360. validation processes for ensuring data integrity; the application-dependent certification of 
  2361. "transformation procedures" for establishing process integrity; and a ternary access control 
  2362. mechanism for constraining associations among users, processes, and data. A thorough discussion 
  2363. of their work is given in the Report on the Invitational Workshop on Integrity Policy in Computer 
  2364. Information Systems (WIPCIS). [KATZ89]
  2365.  
  2366. Their requirement for well-formed transactions suggests that for high-integrity processes, 
  2367. application-dependent software modeling may be needed as input to the certification process. As 
  2368. discussed in Section 3.5.3, the access control mechanism of Clark and Wilson determines which 
  2369. procedures may act on a given object and thereby provides an encapsulation mechanism similar to 
  2370. those associated with data abstraction in modern programming and specification languages.
  2371.  
  2372. 3.5.2           ERROR DETECTION AND RECOVERY
  2373.  
  2374. In the following paragraphs, general observations on the nature of error handling are followed 
  2375. by a variety of examples that arise in connection with integrity policies.
  2376.  
  2377. An error can only be recognized if an unexpected value occurs or if an unexpected 
  2378. relationship among two or more values occurs. The possibility of anomalous values and 
  2379. relationships may be built in as part of the system design, as in the case of audit records and 
  2380. message acknowledgments. It may be added by an application, be of external origin resulting from 
  2381. syntactic and semantic constraints on the structure of the application data, or be external in the form 
  2382. of information held by multiple users (in addition to the computing system).
  2383.  
  2384. The detection of anomalous values and relationships is only partially automated in most cases. 
  2385. Typically, an initial error or anomalous situation is detected, perhaps automatically. This discovery 
  2386. may be followed by further automated or manual investigation to find related errors and, perhaps, 
  2387. the root cause of these errors. Finally, corrective action removes the errors and/or inhibits the 
  2388. creation of new errors.
  2389.  
  2390. The automated portions of this three-part, error-handling process are more likely to be suitable 
  2391. for security modeling. In the case of a partially automated error-handling mechanism, modeling 
  2392. can help clarify which portions of the mechanism are automated (namely, those that are modeled). 
  2393. If detection is automated and recovery is manual, there may be additional issues associated with 
  2394. the design of an alarm mechanism (e.g., timeliness, avoidance of masking high-priority alarms 
  2395. with low-priority alarms).
  2396.  
  2397. As already mentioned, the TCB audit mechanism required for systems at classes C2 and 
  2398. above is a built-in, error-rejection mechanism. It is usually not modeled but could be; Bishop has 
  2399. provided an example. [BISH90] Recent integrity articles have suggested that audit records should 
  2400. allow for a complete reconstruction of events so that errors can be traced to their source. [SAND90, 
  2401. CLAR89] This integrity requirement on audit trails is potentially amenable to formal analysis.
  2402.  
  2403. "Checkpoint and restore" is another built-in mechanism found in many systems. Modeling of 
  2404. this mechanism may be no more interesting than for auditing. However, systems at classes B3 and 
  2405. above have a trusted-recovery requirement. The state invariants that come out of the formal 
  2406. modeling and verification process effectively define exceptional values of the system state that 
  2407. must not exist in a newly restored state. Moreover, run-time checking of these state invariants may 
  2408. be necessary after an unexplained system failure.
  2409.  
  2410. A variety of integrity mechanisms promote user integrity by collecting the same or related 
  2411. information from several different users. Supervisory control and N-person control allow two or 
  2412. more users to affirm the validity of the same information. Supervisory control involves sequential 
  2413. production and review of an action, whereas N-person control refers to simultaneous or 
  2414. independent agreement on taking action. A possible approach to modeling N-person control is 
  2415. given by McLean. [MCLE88, Sec. 3] The subjects of the model include composite subjects made 
  2416. up of N ordinary subjects acting on behalf of different users. The explicit inclusion of these N-
  2417. person subjects invites questions about their security attributes; for example, what is their security 
  2418. level? In both supervisory and N-person control, lack of agreement is an error condition, and the 
  2419. system performs error handling by blocking the action being controlled.
  2420.  
  2421. Certain access controls may be suspended by any user in an emergency, but the system may 
  2422. require that a state of emergency be explicitly declared before suspending these access controls. 
  2423. The explicit declaration together with the actual violation of the controls provides two different 
  2424. indications of the need for a typical action. The decision to constrain a particular action via 
  2425. supervisory, N-person, or emergency-override control might be made by an appropriately 
  2426. authorized user, as opposed to the system's designers. In all three of these mechanisms, the actions 
  2427. to be controlled need not be vendor-defined.
  2428.  
  2429. A related strategy for promoting user integrity is separation of duty. This involves defining 
  2430. user roles in such a way that no one user can commit a significant error without detection. Instead, 
  2431. there would have to be collusion among several users. For example, if no one person can order 
  2432. goods, accept delivery, and provide payment, then it is difficult for a user to buy nonexistent items 
  2433. from himself. A more generic example recommended by Clark and Wilson is that no person who 
  2434. is authorized to use a transformation procedure has participated in its certification. Separation of 
  2435. duty promotes user integrity, if roles are designed in such a way that several different users 
  2436. contribute overlapping, partially redundant views of an external situation modeled in the 
  2437. computing system. In most cases, design of the roles is application-dependent. Provisions for role 
  2438. enforcement are part of the system design. Detection of errors can be either manual or automated 
  2439. (but application-dependent). Error recovery is largely manual. In the Clark-Wilson model, 
  2440. separation of duty is enforced via access control triples, but is itself not formally modeled.
  2441.  
  2442. According to Clark and Wilson, consistency checks on the structure of user-supplied data are 
  2443. needed initially to guarantee that data has been properly entered [CLAR87] and can be run later as 
  2444. a check against inappropriate modification [CLAR89]. Typically, these Integrity Validation 
  2445. Procedures (IVPs) compare new information against previously computed information, as in a 
  2446. program that compares actual inventory data against previously computed inventory. The use of 
  2447. IVPs is explicitly modeled by Clark and Wilson, but the fact that they reject anomalous data is not.
  2448.  
  2449. Redundancy to improve process integrity is used in high-availability systems. Two or more 
  2450. processes with different hardware and/or algorithms are run with the same expected result, and a 
  2451. voting algorithm combines the results. An interesting feature of these data- and process-integrity 
  2452. promoting algorithms is that they apparently increase integrity through aggregation and inference. 
  2453. In this respect, integrity is similar to nondisclosure, not dual to it. Interesting formal models of 
  2454. voting algorithms include the "Byzantine Generals Problem", in which a process can give 
  2455. inconsistent results [LAMP82], and clock synchronization algorithms. [LAMP87, RUSH89]
  2456.  
  2457. In general, all error-handling mechanisms exploit redundancy of the sort discussed in 
  2458. information theory and conform to the same general principles that provide the basis for error- 
  2459. correcting codes [cf HAMM80] used to suppress noise. What sets integrity-related mechanisms 
  2460. apart is their emphasis on user-induced errors.
  2461.  
  2462. 3.5.3           ENCAPSULATION AND LEVEL-BASED ACCESS CONTROL
  2463.  
  2464. The following paragraphs discuss encapsulation mechanisms, the use of level-based access 
  2465. control and integrity hierarchies, and the use of partially trusted subjects to achieve encapsulation.
  2466.  
  2467. Encapsulation mechanisms ensure what Clark and Wilson refer to as "internal consistency." 
  2468. They provide a limited set of high-level operations that can be certified to maintain a known 
  2469. structure on the data that they encapsulate. Several mechanisms suitable for performing 
  2470. encapsulation have been discussed in Sections 3.1.3, 3.3.2, and 3.3.3. Another encapsulation 
  2471. mechanism is message passing, as illustrated in the design of Smalltalk. [GOLD80] As discussed 
  2472. below, level-based access control with partially trusted subjects also provides an encapsulation 
  2473. capability similar to type enforcement.
  2474.  
  2475. If an encapsulation mechanism is supported, it may be used to provide tamper proofing for 
  2476. the TCB and to enforce the principle of least privilege within the TCB. Type enforcement has been 
  2477. used for this purpose. [BOEB85] In the LOCK system, each security-critical entity (for example, 
  2478. the password file) is of a type that can be accessed only by the appropriate TCB subjects. This 
  2479. typing information is preset and, in the case of TCB entities, cannot be modified, even by the 
  2480. system security officer. Since the type enforcement mechanism is formally verified, this 
  2481. verification provides a partial verification of TCB integrity as a special case. Type enforcement has 
  2482. also been used to extend the LOCK TCB for a trusted DBMS application. [STAC90] In the 
  2483. extension, new TCB subjects are straightforwardly prevented from interfering with the old part of 
  2484. the TCB through static access restrictions in the type-enforcement table.
  2485.  
  2486. The crucial idea behind access control based on integrity levels was alluded to in Section 
  2487. 3.1.6. That information may flow from one entity to another only if the latter's integrity level is at 
  2488. or below that of the former, thereby preventing the latter from being contaminated with low-
  2489. integrity information. Thus, if the integrity ordering is inverted for purposes of access control, then 
  2490. the *-property will automatically enforce the desired property. As observed by Roskos, [ROSK90] 
  2491. this duality applies not only to access control, but to higher-level nondisclosure policies as well. In 
  2492. the case of noninterference, for example, if inputs from user A cannot "interfere" with outputs to 
  2493. user "B," then A cannot compromise the integrity of these outputs. [PITT88] The practical utility 
  2494. of these observations is undetermined.
  2495.  
  2496. For level-based integrity to be useful, there must be some convention for assigning integrity 
  2497. levels to controlled entities. Biba [BIBA77] suggested a hierarchy dual to that given by Executive 
  2498. Order 12356, which, as mentioned in Section 3.1.7, defines the terms "confidential," "secret," and 
  2499. "top secret." Thus, integrity levels would be classified according to the level of harm which could 
  2500. result from unauthorized or inappropriate modification of information. The dual of "secret," for 
  2501. example, would be a level indicating that inappropriate modification could result in serious, but 
  2502. not exceptionally grave, damage to national security. While this suggestion has not found wide 
  2503. acceptance, there are clear-cut examples of integrity orderings associated with the possibility of 
  2504. serious harm. The inadvertent substitution of "exercise" data for "live" data is one such example; 
  2505. effectively, "exercise" is a lower integrity level than "live." What Biba's suggestion lacks (in 
  2506. contrast to the work of Clark and Wilson) is a convention for controlling not only who may modify 
  2507. data but also how they do it.
  2508.  
  2509. There are several other integrity measures not based on level of harm. [cf PORT85] User 
  2510. contribution sets form an integrity ordering under the dual of the subset relation, as was noted in 
  2511. Section 3.3.4. A careful analysis of user roles can also give indications of needed integrity and 
  2512. nondisclosure levels. [LIPN82] The results of trusted error-detection and integrity-validation 
  2513. procedures can be stored as (components of) integrity levels in order to disable inappropriate uses 
  2514. of flawed data and to enable appropriate error-recovery procedures.
  2515.  
  2516. Integrity levels (or components) that are based on freedom from various kinds of error cannot 
  2517. be preserved during processing unless the procedures involved do not introduce these kinds of 
  2518. errors. This motivates the use of software assurance hierarchies. The necessary level of software 
  2519. assurance is found by working backwards from a level of acceptable risk, which depends both on 
  2520. the expected level of software errors and the level of harm which may result from these errors in a 
  2521. particular operating environment (the latter being bounded by the relevant Biba integrity levels). 
  2522. If software at several levels of assurance is needed on the same system, then an access control 
  2523. mechanism is needed to be sure that software used in a given application is backed up by adequate 
  2524. assurance. A technique that suggests itself is to include assurance levels as components of integrity 
  2525. levels.
  2526.  
  2527. A well-defined hierarchy of assurance levels is given in the TCSEC for evaluating TCBs. It 
  2528. has been adapted to subsystems [cf NCSC88a] and is readily adapted to individual processes; the 
  2529. hierarchy itself is summarized in Appendix D of the TCSEC. An easily applied assurance hierarchy 
  2530. based on credibility of origin has also been suggested by Pozzo: [POZZ86] software supplied by a 
  2531. system's vendor is regarded as having higher assurance than software developed by a company's 
  2532. support staff, and production software typically has higher assurance than experimental software. 
  2533. Software of unknown origin has lowest assurance. Such a hierarchy presupposes an ability to track 
  2534. data sources, as described in DoD 5200.28-R. [DODS8a, Enclosure2, Req. 7]
  2535.  
  2536. The use of level-based integrity for TCB encapsulation is suggested by Millen. [MILL84] One 
  2537. or more integrity categories can be reserved for TCB entities, as a means of protecting them from 
  2538. non-TCB entities. An application of this idea is found in the network described by Fellows. 
  2539. [FELL87] In this network, each communication process in the TCB is a partially trusted subject 
  2540. that sends messages labeled with its own unique integrity category, thereby encoding authorship 
  2541. of the message in the security label itself.
  2542.  
  2543. Lee and Shockley have argued that level-based integrity with partially trusted subjects can 
  2544. partially fulfill the requirements of Clark and Wilson. [LEE88, SHOC88] The ASOS integrity 
  2545. policy may be viewed as a special case of this general partially trusted subject mechanism. Access 
  2546. checking in ASOS allows any process to read below its own integrity level; the implicit assumption 
  2547. is that any subject with reasonable integrity can be relied on to make its own integrity checks when 
  2548. needed. In effect, each subject in ASOS is treated as if it had a separate view-max security label 
  2549. obtained by setting the integrity component of its security label to integrity-low. [DIVI90]
  2550.  
  2551. 4.      TECHNIQUES FOR SPECIFIC KINDS OF SYSTEMS
  2552.  
  2553. Though relevant to many systems, some security modeling techniques are best illustrated by 
  2554. a particular kind of system. While traditional access control models are applicable to a wide class 
  2555. of systems, they are nicely illustrated by operating systems because they both contain file-like 
  2556. objects that are opened, accessed for a period of time, and then closed. The issue of selecting an 
  2557. underlying model of computation occurs in any modeling effort, but models not based on state 
  2558. machines have occurred most frequently in networks. Trusted application models often take the 
  2559. form of models for database systems. Issues having to do with label accuracy are illustrated in 
  2560. Compartmented Mode Workstations (CMWs) and the Secure Military Message System (SMMS). 
  2561. The treatment of these topics is largely introductory because of the breadth (and, in some cases, 
  2562. relative newness) of the material to be covered.
  2563.  
  2564. 4.1     OPERATING SYSTEMS
  2565.  
  2566. In modeling operating systems, there is especially rich literature to draw on. The following 
  2567. paragraphs discuss traditional access control models and the models of Bell and La Padula in 
  2568. particular.
  2569.  
  2570. 4.1.1           TRADITIONAL ACCESS CONTROL MODELS
  2571.  
  2572. An access control model traditionally involves a set of states, together with a set of primitive 
  2573. operations on states. Each state contains a set S of "subjects," a set O of "objects," and an "access" 
  2574. matrix A. For each subject s and object o, A [s, o] is a set of access rights, such as "read," "write," 
  2575. "execute," and "own." In the context of an access control model, rules of operation are axioms or 
  2576. definitions describing the primitive operations.
  2577.  
  2578. The simplest useful access control model is perhaps the HRU model of Harrison, Ruzzo and 
  2579. Ullman. [HARR76] The HRU model assumes that every subject is also an object, the rationale 
  2580. being that (almost) every subject has local memory that it can access. In the HRU model, the 
  2581. primitive operations are, create s, create o, destroy s, destroy o, enter r into A [s, o], and delete r 
  2582. from A [s, o], where r varies over all supported access rights.
  2583.  
  2584. To use an access control model for security modeling, one needs to add functions that extract 
  2585. security labels from subjects and objects and to explain how operations are affected by security 
  2586. labels. In some cases, it may also be appropriate to model other attributes of objects, such as 
  2587. directory hierarchies. These additions to the basic access control model facilitate a clear 
  2588. presentation, but are not theoretically necessary for discussing security, as can be seen from 
  2589. Pittelli's translation of a Bell and La Padula model into the HRU model. [PITT87] One can model 
  2590. the addition of new subjects or objects by allowing s and o to change in response to the create and 
  2591. delete operations, or one can use fixed sets of subjects and objects together with an indication of 
  2592. which subjects are active. Finally, if an access control model is to discuss information flow, it 
  2593. needs to discuss which objects are actually written as a result of a given operation. This can be done 
  2594. by adding functions that extract object content. A complete information-flow analysis would also 
  2595. need to address flows to and from non-object entities. Flows to and from the current-access matrix, 
  2596. for example, could be handled either by treating rows of the matrix as objects or by treating these 
  2597. flows in the covert channel analysis.
  2598.  
  2599. The assumption that subjects are objects is associated with several interesting observations 
  2600. that need to be modeled whether or not subjects are regarded as objects. Typically, every subject 
  2601. has read and write access to itself (that is, to its stack and local data area). This fact can be modeled 
  2602. as the invariant (read, write) ┐ A [s, s]. Consequently, if a subject outside the TCB is allowed to 
  2603. change its security level, the new level should dominate the old one. This is because information 
  2604. at the old level in its local memory can be transferred only to entities whose level dominates the 
  2605. subject's new and (hence) old security level. The assumption that subjects are objects also provides 
  2606. a means of modeling interprocess communication: a process P1 may send a message or signal to 
  2607. process P2 if and only if P1 has write access to P2.
  2608.  
  2609. Hierarchical file systems have a potential for introducing various covert storage channel 
  2610. problems. In many cases, these channels can be closed through the use of additional access control 
  2611. checks that depend on the structure of the directory hierarchy. It is acceptable to include such 
  2612. access control checks (and hence, directory structures) in the model. One problem is that if a 
  2613. directory contains a file at a lower security level, then it is difficult to delete the directory without 
  2614. users at the lower security level finding out, since they can no longer access the file after it is 
  2615. deleted. A widely imitated solution proposed by Walter is to require a compatibility property for 
  2616. directories, namely that the level of each file dominate that of its parent directory. [WALT74] 
  2617. Alternatively, the system could just remove access and leave actual deletion of files and directories 
  2618. to a trusted garbage collector. A similar problem that is not ruled out by compatibility arises when 
  2619. a lower-level process creates a directory at a higher level. If a higher-level process then adds a 
  2620. (higher-level) file to the directory, a UNIX-like operating system would refuse a later request by 
  2621. the lower-level process to delete the directory, thereby signaling the existence of the higher-level 
  2622. file. [GLIG86]
  2623.  
  2624. The compatibility principle was regarded by the TRUSIX working group as being a generally 
  2625. useful property of directories, independently of its use to discourage covert channels. They 
  2626. considered four possible approaches to modeling directories and, for sake of generality, decided 
  2627. that security labels would be assigned to individual directory entries as well as directories. 
  2628. [NCSC90b, Sec. 6.10, 6.11]
  2629.  
  2630. Kernel call based implementations of operating systems invariably rely on some form of 
  2631. exception mechanism. At higher assurance levels, it is likely to be a matter of policy that 
  2632. exceptions not return information about higher-level entities. In this case, kernel exceptions can be 
  2633. included in the security model in order to represent this policy, either directly or in summary form. 
  2634. One might, for example, use the three exception classes "access-denied," "user-error," and "system 
  2635. error". [BELL76]
  2636.  
  2637. For further information on access control models, the reader is referred to Cryptography and 
  2638. Data Security [DENN82, Ch.4] and "Models of Multilevel Security" [MILL89].
  2639.  
  2640. 4.1.2           THE MODELS OF BELL AND LA PADULA
  2641.  
  2642. As mentioned in Section 1.4, the work of Bell and La Padula identified the main steps in the 
  2643. security modeling process and provided the first real examples of security verification by proving 
  2644. that their rules of operation preserved necessary state invariants. The identified invariants codified 
  2645. important mandatory access control requirements and provided guidance for their implementation.
  2646.  
  2647. Not surprisingly, fifteen years of close scrutiny has produced an understanding of areas where 
  2648. refinement of the original approach is desirable in future efforts. The question of correspondence 
  2649. to externally imposed MAC security policy was handled quite informally. As indicated in Section 
  2650. 3.2 (and in the LOCK verification effort), a closer correspondence is possible with the use of 
  2651. external-interface models. In fact, the Bell and La Padula models contain some well-known 
  2652. weaknesses. A lack of attention to local process memory is related in part to the fact that subjects 
  2653. need not be objects. A subject may, in the absence of the tranquility principle [LAPA73, p. 19], 
  2654. lower its security level. As a result, the "change subject current security level" and "change object 
  2655. level" rules provide a variety of opportunities for untrusted downgrading of information. The 
  2656. significance of these and similar rules was not well understood until much later. [MILL84, 
  2657. MCLE85, MCLE87, BELL88, LAPA89]
  2658.  
  2659. The Bell and La Padula models have a relatively narrow focus. None of the models explicitly 
  2660. mentions multilevel devices, external interfaces, or user identities; and there is no modeling of 
  2661. integrity. With the exception of the *-property, exemptions from access control are not modeled, 
  2662. so that there is no basis for relating exemptions to use of privilege, subject integrity, or trusted user 
  2663. roles. The Multics model interpretation was necessarily incomplete because design work on Secure 
  2664. Multics was still in progress in 1976. Some of the notational conventions used in the models (e.g., 
  2665. overuse of subscripts and lack of mnemonic naming conventions) are avoided in many of the more 
  2666. recent security modeling efforts.
  2667.  
  2668. 4.2     NETWORKS AND OTHER DISTRIBUTED SYSTEMS
  2669.  
  2670. Which network decomposition techniques lend themselves to security analysis? How should 
  2671. this decomposition be reflected in the model? How should the overall network security policy be 
  2672. reflected in the model? What is the role of individual components in enforcing the overall policy? 
  2673. Should nondeterminacy and the distributed nature of a network be reflected in the model's 
  2674. underlying model of computation; that is, should the network be treated as a state machine or as 
  2675. something else? The following subsections discuss these questions as they relate to network 
  2676. security objectives and the requirements of the Trusted Network Interpretation (TNI). [NCSC87]
  2677.  
  2678. 4.2.1           SYSTEMS AND THEIR COMPONENTS
  2679.  
  2680. A network system is an automated information system that typically consists of a 
  2681. communications subnet and its clients. Clients are entities that the subnet interacts with (e.g., host 
  2682. computers, other networks, users, electronic censors), as in Figure 4.1. Some clients may play a 
  2683. distinguished role in the network, performing key distribution or network administration services. 
  2684. The communications subnet might consist of message switches and transmission lines.
  2685.  
  2686. Figure 4.1. A Physical Network Decomposition
  2687.  
  2688. In addition to a physical decomposition of a network, there is also the possibility of 
  2689. decomposing along protocol layers, so that a network handling a layer n protocol decomposes into 
  2690. abstract protocol machines and network(s) handling a more primitive layer n-1 protocol. [cf ISO84, 
  2691. TANE88] In this second approach, it is possible to reassemble the protocol machines at various 
  2692. layers into physical components, so that the second approach is compatible with the first. In Figure 
  2693. 4.2, abstract protocol machines are collected to form interface units that may either be part of or 
  2694. separate from corresponding hosts. Each interface unit includes protocol handlers for all layers.
  2695.  
  2696. Figure 4.2. A Network Protocol Decomposition
  2697.  
  2698. The partitioning of a network system results in optional subsystem components, such as a 
  2699. communications subnet, as well as individual components whose further subdivision is not useful 
  2700. for modeling purposes. [NCSC87, Sec. I.3] In the following paragraphs, network systems and 
  2701. subsystems are both referred to as networks. Individual and subsystem components are both 
  2702. referred to as components. Network partitioning has a variety of security-relevant ramifications. 
  2703. There is a need for both system security models and component models as well as the need to 
  2704. consider TCB interfaces both in components and in the entire network system. In contrast to 
  2705. operating systems, there is little point in assuming that a network is either "up" or "down." Rather, 
  2706. it is necessary to model the network across a range of partially functioning states. [FELL87] The 
  2707. principle of "mutual suspicion" can be applied to components in order to minimize security 
  2708. violations in case an individual component is subverted. [SCHA85] In this case, each component 
  2709. enforces a component policy that is strong enough not only to contribute to the overall system 
  2710. policy but also to detect suspicious behavior in other components.
  2711.  
  2712. Networks are usually extensible, and, as a result, analysis of their security cannot depend on 
  2713. configuration details that change as the network expands. A similar problem is posed by the need 
  2714. for fault tolerance. Component failures and subsequent restarts should not lead to violations of 
  2715. network security policy. [FELL87]
  2716.  
  2717. Some networks have covert channel problems related to indeterminate information in 
  2718. message headers. In some cases, these "header" channels are visible in the model itself. Other 
  2719. covert channels result from interconnection subtleties and from nondeterminacy caused by channel 
  2720. noise and by race conditions associated with distributed computation. Similar covert-channel 
  2721. problems can arise in other nondeterministic systems, and, as mentioned in Section 3.2, a 
  2722. probabilistic analysis may be needed in order to rule out certain kinds of covert channels. 
  2723. [WITT9O] However, nonprobabilistic analyses have also provided some useful insights. 
  2724. [MCCU88, MCCU88a, JOHN88]
  2725.  
  2726. 4.2.2           MODEL STRUCTURE AND CONTENT
  2727.  
  2728. A crucial modeling requirement for networks is that "the overall network policy must be 
  2729. decomposed into policy elements that are allocated to appropriate components and used as the 
  2730. basis for the security policy model for those components". [NCSC87, Sec. 3.1.3.2.2] One way of 
  2731. meeting this requirement is to provide a security policy model consisting of several submodels. A 
  2732. network security model can give an overall definition of security for the network in order to clarify 
  2733. how the network supports higher-level security objectives. A structural model can explain how the 
  2734. network is partitioned. This is particularly useful if the component structure is directly involved in 
  2735. the network's policy enforcement strategy. Finally, each component is given a security policy 
  2736. model. Correctness is shown by demonstrating that the component model properties together with 
  2737. the structural model properties imply the requirements in the network security model. The given 
  2738. demonstrations may rely either on external interface properties of the components [cf MOORE90, 
  2739. BRIT84, FREE88] or on modeled internal properties [cf GLAS87].
  2740.  
  2741. For a component that is part of a larger network, external-interface requirements will often be 
  2742. apparent from the network modeling effort. For a separately evaluated component, rated B2 or 
  2743. higher, external-interface requirements will usually be given in an accompanying network security 
  2744. architecture description. [NCSC87, Sec. 3.2.4.4, A.3] The NCSC Verification Working Group has 
  2745. concluded that access control requirements imposed by the network security architecture should 
  2746. be modeled. Consequently, the definition of security for the component model needs to contain or 
  2747. comply with such external-interface requirements. It is easier to demonstrate conformance if these 
  2748. requirements are directly included. This "external" portion of a component model is essentially 
  2749. new and is distinct from internal requirements or rules of operation. In the case of MAC 
  2750. requirements, this external interface portion may be regarded as a generalization of TCSEC device 
  2751. labeling requirements. [NCSC87; Sec. 3.1.1.3.2, 3.2.1.3.4] A model for a network system, in 
  2752. contrast to a component, may not need such external-interface requirements because the 
  2753. environment of the network system need not have a well-defined security architecture and is likely 
  2754. to contain only trusted entities such as users and other evaluated network systems.
  2755.  
  2756. Security-critical entities in the network or its containing network system are collectively 
  2757. referred to as the network TCB (NTCB). A second network modeling requirement is that a 
  2758. component model should cover all interfaces between security-critical network entities and other 
  2759. kinds of entities (see Figure 4.3). Collectively, these interfaces contain the reference monitor 
  2760. interface for the NTCB. Relevant non-NTCB entities for a network might belong either to the 
  2761. network or to its environment. Whole components of a network may lie outside of the NTCB. 
  2762. Individual components may also contain non-NTCB entities (as in the case of an ordinary host, for 
  2763. example).
  2764.  
  2765. When modeling a component, it may be desirable to model not only the interface between its 
  2766. TCB and non-TCB entities but also the interface between its TCB and other NTCB entities in order 
  2767. to give a better description of the security services provided by that component. For an A1system, 
  2768. this additional modeling information can provide correctness criteria for the FTLS, since each 
  2769. component FTLS must describe the interface between that component's TCB and the TCB 
  2770. portions of other components. [NCSC87, Sec. 4.1.3.2.2] These additional interfaces are indicated 
  2771. by dashed lines in Figure 4.3.
  2772.  
  2773. Figure 4.3. Modeled Interfaces to the TCB Portion of Component A
  2774.  
  2775. 4.2.3           NETWORK SECURITY MODELS
  2776.  
  2777. The security policy model for a network often contains a network security portion, although 
  2778. this is not required by the TNI. Overall network security modeling is especially useful for a network 
  2779. that is too large for effective system testing because, in this case, overall security assurance can be 
  2780. achieved only by some form of static analysis. A network security model can give a precise 
  2781. description of security services provided by the network and can help to identify the boundaries of 
  2782. the system being modeled. It can identify security-relevant aspects of communication among major 
  2783. components and can describe associated security requirements. The entities described in this model 
  2784. need not be local to individual physical components. This model partially determines and may 
  2785. share the external-interface requirements found in the various component models.
  2786.  
  2787. For network systems rated B1 and above, mandatory access control plays a major role in 
  2788. modeling user-related communication. [SCHN85] Other useful security requirements include 
  2789. correct delivery [GLASS87]; discretionary access control; label, header, or message integrity 
  2790. [GLAS87, FREE88]; and encryption [BRIT84]; among others. [ISO89; NCSC87, Sec.9]
  2791.  
  2792. In many networks, there is a significant amount of TCB software devoted to security-critical 
  2793. communications protocols. A clear understanding of the basis for these protocols is required in 
  2794. order to completely assess security assurance. A network security model can provide this 
  2795. understanding by providing requirements that serve as correctness criteria for security-critical 
  2796. protocols found in the NTCB portion of the network. Label association protocols and label 
  2797. integrity requirements are of particular relevance in the case of MAC policy modeling.
  2798.  
  2799. Access control modeling may be influenced by the network topology. For example, access 
  2800. enforcement may be carried out by a communications subnet, while access decisions are performed 
  2801. by a designated host that serves as an access decision facility. [BRIT84]
  2802.  
  2803. One approach to specifying mandatory access control is to regard hosts as subjects (partially 
  2804. trusted subjects, in the case of multilevel secure hosts) and host "liaisons" as "communication" 
  2805. objects. [BELL86, BELL88a] Host liaisons are temporary connections established between pairs 
  2806. of hosts for the purpose of exchanging messages at a given security level, such as transport layer 
  2807. connections. This approach is similar to that taken in several real systems. In the Boeing local area 
  2808. network (LAN) model the subjects are arbitrary LAN clients. [SCHN85] In the model described 
  2809. by Fellows subjects are hosts. [FELL87] In this latter modeling effort, the host liaison approach 
  2810. was found to be satisfactory for expressing system security requirements with the possible 
  2811. exception of what came to be known as the "entelechy" property. This property means that a host 
  2812. may send or receive messages over a connection if and only if it has current access to that 
  2813. connection. These models are internal-requirements models for network systems. Because these 
  2814. models treat hosts very simply, they also serve as external-interface specifications of their 
  2815. communication subnets.
  2816.  
  2817. A more explicit external-interface model was given for the Multinet Gateway System (MGS). 
  2818. The clients of the MGS are "external systems" that communicate with the MGS over message 
  2819. ports. [FREE88] Messages have security labels, message ports are multilevel devices, and the 
  2820. expected access constraints are enforced between messages and message ports. In addition, the 
  2821. model contains limited information about the structure of messages and declares that any delivered 
  2822. message must be legitimately "derived from" messages received by the system at the same security 
  2823. level. In other words, no spoofing or regrading is allowed. The MGS model and FTLS are, in part, 
  2824. partitioned along protocol layers.
  2825.  
  2826. In some cases lower-level component models involve system-only messages which are not 
  2827. visible at the system interface. [FELL87, FREE88] In these cases special security labels are used 
  2828. to separate system-only messages from normal client messages so that privileged information in 
  2829. system-only messages cannot accidentally leave the system. Lower level component specifications 
  2830. had to distinguish among several kinds of messages, such as acknowledgments and other 
  2831. "protocol" messages as well as between encrypted and plain text messages. Messages are split into 
  2832. header and data components. In networks, some understanding of object structure is essential to 
  2833. enforcing security, and this understanding necessarily turns up in derived security requirements for 
  2834. network components.
  2835.  
  2836. In some cases, the network model may be trivial and therefore unneeded. A network system 
  2837. consisting of single-level hosts connected by one-way links, for example, might have only the 
  2838. obvious requirement that the level of a destination host dominate that of a receiving host. Even this 
  2839. simple case may be worth modeling, if the cascading problem is considered. Considering the 
  2840. cascading problem may determine when network connections increase the risk of compromise. 
  2841. [see MILL88]
  2842.  
  2843. 4.2.4           INDIVIDUAL COMPONENT SECURITY MODELS
  2844.  
  2845. Like other component models, individual component security models should accommodate 
  2846. relevant external-interface requirements inherited from their containing networks. An individual 
  2847. component which contains entities that are not security critical must contain a reference monitor, 
  2848. and its model should constrain the reference monitor interface. In this case, the model will include 
  2849. a structure analogous to that presented in Section 3.2, including internal requirements and rules of 
  2850. operation. Correctness of the model can be proved by showing that the rules of operation imply 
  2851. both internal- and external-interface requirements. For some components, this proof may involve 
  2852. showing that the internal requirements already imply the external-interface requirements. For 
  2853. others, the internal requirements may apply only to the internal reference monitor interface, so that 
  2854. they are unrelated to the external-interface requirements and have properties that are enforced by 
  2855. different software.
  2856.  
  2857. As with other kinds of computing systems, an individual component may contain subjects that 
  2858. do not act on behalf of particular users; the TNI refers to these as internal subjects. In the case of 
  2859. networks, it is common for internal subjects to exist outside the TCB, as in the case of routing 
  2860. protocols which are not involved in security enforcement. In some components, all of the subjects 
  2861. are internal, and the isolation of untrusted processes is so simple and straight-forward that 
  2862. modeling of the reference monitor interface is unnecessary.
  2863.  
  2864. An individual component may lie entirely within the NTCB. In this case, its external-interface 
  2865. requirements may already be sufficient as a description of component policy enforcement because 
  2866. an internal-security model offers no essentially new insights. Alternatively, a simplified functional 
  2867. description, in the form of an FTLS or rules of operation, may be useful in showing how the 
  2868. component goes about meeting its external-interface requirements. In this case, the functional 
  2869. description should provably imply the external-interface requirements.
  2870.  
  2871. 4.2.5           UNDERLYING MODELS OF COMPUTATION
  2872.  
  2873. State machines have been successfully used as a basis for security modeling in several 
  2874. network evaluations. However, concerns about their convenience for partitioning a network TCB 
  2875. into components have been expressed by some researchers and system developers. State invariants 
  2876. may not be testable in practice because they can discuss widely separated state components that 
  2877. cannot be accessed in a timely fashion. Two elementary state transitions may be concurrent, 
  2878. leading to a partially ordered view of event histories in which two events can occur without either 
  2879. fully preceding the other. Parts of the secure state may be replicated in different locations, which 
  2880. imposes consistency requirements as well as forced discrepancies between the system state and the 
  2881. Cartesian product of the component states. [FELL87] Because of these perceived inconveniences, 
  2882. various history mechanisms have been used as an alternative to state machines, including I/O 
  2883. histories [GLASS87; FREE88], time-stamped buffer histories [BRIT84], and event histories 
  2884. [MCCU88]. Event histories are essentially the "trace" semantics for Hoare's communicating 
  2885. sequential processes. [HOARE85]
  2886.  
  2887. The differing approaches used in the above security modeling efforts underscore the fact that 
  2888. a formal security model depends on an underlying model of computation. Models of computation 
  2889. that could reasonably be used for networks include modal logic with communication based on 
  2890. shared variables [MANN82, PNUE81], axiomatically defined process algebras [MILN83, 
  2891. HOAR85], and Petri nets augmented with data flow primitives [AGER82, CHIS85]. Specification 
  2892. languages based on process algebras [EIJK89] and on communicating state machines [DIAZ89] 
  2893. have been developed for describing communications protocols and may be adaptable for use in 
  2894. writing network security models.
  2895.  
  2896. In general, the underlying model of computation for a security model should be chosen to 
  2897. facilitate the statement and proof of the key security properties that will be studied. In the case of 
  2898. networks, several different options have been tried and many more are plausible, but no preferred 
  2899. approach has yet been established.
  2900.  
  2901. 4.3     DATABASE MANAGEMENT SYSTEMS
  2902.  
  2903. The field of database security is relatively new and has provided a large variety of questions 
  2904. and issues, some of which are outlined in the following paragraphs. As a result, there are many 
  2905. unresolved issues, and significant effort may be needed to obtain a good security design. This 
  2906. section is based in part on observations drawn from works by Hubbard and Hinke [HUBB86, 
  2907. HINK90], from the Trusted Database Management System Interpretation of the Trusted Computer 
  2908. System Evaluation Criteria (TDI), [NCSC91] and from similar security modeling issues for other 
  2909. trusted applications.
  2910.  
  2911. Perhaps the most obvious modeling issue is how the DBMS security model should be related 
  2912. to the DBMS data model, that is, to the high-level user's model of how the DBMS manages data. 
  2913. Can the security model serve as a simplified data model? If so, is it consistent with the data model 
  2914. supplied to users of the system? Are all of the major entities in the data model covered in the 
  2915. security model? In the case of a relational DBMS, for example, does the model and/or 
  2916. accompanying documentation explain how relations, views, records, fields, and view definitions 
  2917. relate to the appropriate entities (e.g.,named objects) of the security model?
  2918.  
  2919. Commercial database systems are commonly designed to run on a variety of different 
  2920. operating systems. This suggests that a database system might be modeled separately from its 
  2921. underlying operating systems, if there is a common explanation of how its security features interact 
  2922. with those of the underlying operating systems. Database systems raise a variety of security policy 
  2923. issues that are not covered in the TCSEC. The large quantity of user-supplied information found in 
  2924. typical databases increases the potential for erroneous data (and data classifications) as well as the 
  2925. potential for the unauthorized release of information due to aggregation and inference. However, 
  2926. database systems can partially automate the labeling of data through the use of content-dependent 
  2927. classification rules, thereby eliminating some kinds of user errors.
  2928.  
  2929. 4.3.1           SYSTEM STRUCTURE
  2930.  
  2931. Many of the structural considerations regarding database systems apply to application 
  2932. systems in general. [cf PAYN90] A discussion of these considerations is followed by DBMS-
  2933. specific observations about the design of objects for mandatory and discretionary access control.
  2934.  
  2935. A DBMS (or similar application) can be built on an existing trusted system or can be built 
  2936. from scratch. A third alternative is to build on a modified system, but, in terms of modeling, this is 
  2937. similar to starting from scratch. Building on a trusted operating system offers a well-defined and 
  2938. well-documented basis that provides process isolation and user authentication. Depending on the 
  2939. DBMS design, the operating system may also provide mandatory or discretionary access control. 
  2940. However, it may be necessary to hide or "turn off" some of the original security mechanisms, if 
  2941. they are inconsistent with and impact the operation of the DBMS security policy. The DBMS may 
  2942. also need to hide the original TCB/user interface, if the DBMS provides a significantly different 
  2943. user interface than the underlying operating system. Starting from scratch can give a more unified 
  2944. design, may simplify the security modeling effort, and is particularly appropriate for database 
  2945. machines with simple, built-in operating systems.
  2946.  
  2947. The DBMS-supplied notion of security can be presented in an external-interface model that 
  2948. gives the intended user-view of security. If the DBMS is built on a trusted operating system, the 
  2949. external model can be followed with an internal requirements model that identifies the role of the 
  2950. underlying operating system and its security policy model. The external-interface model itself will 
  2951. be more relevant to users of the application if it emphasizes concepts associated with the DBMS. 
  2952. Terminology found in the OS security model, by way of contrast, may be inappropriate either 
  2953. because it refers to entities hidden by the application or is very abstract in order to apply to a wide 
  2954. range of product applications.
  2955.  
  2956. The security models associated with a trusted DBMS and its underlying operating system 
  2957. illustrate several issues that arise in other large applications. To ensure that the system design is 
  2958. consistent with the security policy, it is necessary to provide evidence that the model (or models) 
  2959. of underlying subsystems support the application policy. The decomposition of an overall security 
  2960. policy model into submodels for subsystems is particularly advantageous when subsystems are 
  2961. developed by different groups over a protracted period of time. Despite efforts to keep the system 
  2962. model abstract, there may be inconsistencies between it and off-the-shelf subsystems used in the 
  2963. development. As a result, the system security model will need to be maintained in an interactive 
  2964. process as the design and product selection proceed.
  2965.  
  2966. The granularity of storage objects for database systems is typically finer han that of the 
  2967. underlying operating system. The distinction between active and passive entities tends to be 
  2968. somewhat blurred in the case of object-oriented systems. Existing examples suggest that the data 
  2969. model has a strong influence on the mandatory security policy, as can be seen by comparing 
  2970. relational [e.g., DENN88], functional [THUR89], entity/relationship [GAJN88], and object-
  2971. oriented security models [e.g., JAJO90; KEEF89b; LUNT90; LARR90]. These observations 
  2972. suggest that the underlying OS MAC facility may well need to be supplanted. Database entities 
  2973. may be viewed as multilevel structures that are divided up and stored in single-level files. In this 
  2974. case, the DBMS might contain non-TCB subjects operating at all security levels used by the 
  2975. DBMS. This approach is illustrated by the LOCK Data Views [HAIG90] and SeaViews 
  2976. [LUNT88b] systems. Alternatively, the DBMS itself may take responsibility for the assignment of 
  2977. security labels so that entities which are single-level objects to the operating system are multilevel 
  2978. data structures to the DBMS, as in the ASD [GARV90] and MITRE prototypes [DAVI88]. In 
  2979. either case, it is important to understand the relationship between database entities and the storage 
  2980. objects of the underlying operating system, and it is appropriate to explain and perhaps formally 
  2981. model the protocol for passing objects between the DBMS and the underlying operating system.
  2982.  
  2983. The named objects in a DBMS may differ not only from those of the underlying operating 
  2984. system but also from the storage objects of the DBMS itself. User views are traditionally used as 
  2985. a means of controlling access in relational database systems [KORT86, Ch.13.2]; and it is 
  2986. reasonable to use views as named objects. In this case a user may have access to several 
  2987. overlapping views so that the ability to access a given piece of information would depend on the 
  2988. user's view of it. Consequently, the user's ability to access that information might not be 
  2989. immediately apparent. In degenerate cases, two named objects might coincide or, similarly, a given 
  2990. object might have several names.
  2991.  
  2992. 4.3.2           INTEGRITY MECHANISMS AND POLICIES
  2993.  
  2994. Since pragmatic approaches to data integrity are, in varying degrees, part of most database 
  2995. systems, [KORT86, Ch 13.3; FERN81, Ch.8] the modeling of DBMS integrity policies may lead 
  2996. to a better formal understanding of integrity that can be applied much more generally. Issues of 
  2997. interest include whether integrity constraints obscure other critical security concerns, whether 
  2998. there are built-in mechanisms for monitoring or controlling the propagation of inconsistencies, and 
  2999. whether users are able to learn which integrity checks succeed or fail for a given piece of 
  3000. information.
  3001.  
  3002. Simple data integrity checks such as "A record field of type `month' should be an integer 
  3003. between 1 and 12" guarantee structural integrity. If such checks are enforced on input, a 
  3004. corresponding integrity failure is unlikely, and therefore significant. Labeling constraints of the 
  3005. sort discussed in Section 4.3.5 can be modeled in much the same way as simple integrity checks; 
  3006. they enforce a form of label integrity.
  3007.  
  3008. A more complicated check such as "A record field of type `department' should only be 
  3009. populated by department names, of which there are currently 93," however, can be invalidated in 
  3010. at least two ways, by adding a misspelled department and by altering the set of official department 
  3011. names. In more complicated cases, it may not be possible to guarantee data integrity because 
  3012. inconsistencies do not uniquely identify an erroneous entry, so that inconsistencies in the database 
  3013. must be allowed for.
  3014.  
  3015. A model of a data integrity policy can show how information about integrity checks is 
  3016. associated with data and how it propagates during data processing. For example, indication of 
  3017. whether a given record satisfies a particular integrity check is a security attribute that might be 
  3018. modeled as a category in an integrity label. The model could explain how this attribute is handled 
  3019. during data processing.
  3020.  
  3021. Finally, some system integrity issues appear to be unique to secure database systems. The 
  3022. scheduling of single-level updates associated with a series of multilevel updates has to be both 
  3023. correct and efficient, and it must allow secure recovery after system failure. [KEEF90]
  3024.  
  3025. 4.3.3           AGGREGATlON
  3026.  
  3027. The aggregation of less classified information to form a more highly classified body of 
  3028. information is illustrated by the following example: locations of individuals are unclassified, but 
  3029. total troop strength in a given area is classified, suggesting that a comprehensive database of troop 
  3030. locations should itself be classified. In some cases, aggregation problems can be handled by 
  3031. separating individual pieces of information into several or many categories. Once this is done, 
  3032. aggregate levels are automatically represented by a set of categories and thus by a higher security 
  3033. level. With this approach, no explicit modeling of aggregation control is needed.
  3034.  
  3035. An alternate approach is to place objects in "containers" that are classified at a higher level 
  3036. and allow them to be read only by subjects that are at the higher level and by TCB subjects that are 
  3037. authorized to extract individual objects as a form of controlled downgrading, as in the SMMS 
  3038. model. [LANDS4] Methods for simulating containers in a relational database system have been 
  3039. shown by Meadows. [MEAD90]
  3040.  
  3041. Yet another approach to controlling aggregation is to keep track of user queries and provide 
  3042. context dependent classification of query results. In this case, the first N items from an aggregate 
  3043. might be automatically downgraded, but the remaining items could only be obtained by users 
  3044. acting at the level of the aggregate. [HAlG90; cf LUNT89] This approach can be formalized by 
  3045. modeling the access histories of containers.
  3046.  
  3047. A rather general approach to aggregation is to introduce an aggregate level function, g, that 
  3048. associates each set of data items with a security level. One expects that if H is a subset of K, then 
  3049. g (H) ú g(K). Additionally, one expects that, for any A, B, and C, if g(A) ú g (B), then g(A ╗ C) ú 
  3050. g(B ╗ C), since the information in A ╗  C is obtainable from information at levels dominated by 
  3051. g(B ╗  C), since g(A) ú g(B)  ú g(B ╗ C) and  g(C) úg(B ╗ C). Meadows provides further 
  3052. information regarding the construction of aggregate-level functions. [MEAD90b]
  3053.  
  3054. 4.3.4           INFERENCE
  3055.  
  3056. In contrast to aggregation, inference allows new information to combine with preexisting 
  3057. knowledge in a given environment, obtaining results that are not contained in the original 
  3058. aggregate. The inference of restricted information from authorized queries and database 
  3059. information is illustrated by the following examples:
  3060.  
  3061. 1. The total.quantity of an item is classified, but its total cost and cost per item are not; two 
  3062. unclassified queries suffice to retrieve a piece of classified information. [DENN82]
  3063.  
  3064. 2. An uncleared user query of the form, "Give me the contents of all containers which contain 
  3065. the fact that Flight 127 is carrying bombs to the front," might elicit a response of "access 
  3066. denied" because one or more of the requested records is classified, thereby indicating that 
  3067. Flight 127 is secretly carrying bombs to the front. [WISE90]
  3068.  
  3069. 3. A customer's bank balance is restricted information. A user of a statistical database obtains 
  3070. the total of all bank balances for bank customers in Smalltown, along with a corresponding 
  3071. list of all customer names (of which there is only one). [KORT86]
  3072.  
  3073. The first inference example can be addressed by classifying one of the facts which led to the 
  3074. inference, by enforcing separation of duty so that no uncleared user is authorized to get both facts, 
  3075. or by maintaining user access histories and providing context dependent classification of query 
  3076. results. [HAIG90] A possible objective for the modeling effort is to provide enough information 
  3077. to see which options are available in the modeled system.
  3078.  
  3079. The second example looks superficially like a covert channel associated with error returns but 
  3080. is potentially more dangerous because it is so easy to use. It can be avoided by redefining the query 
  3081. semantics so that the phrase "all containers" implicitly refers to all containers at or below the user's 
  3082. level. With this change, the appropriate query response is no such records exist." A strong model 
  3083. and model interpretation would simply rule out this example.
  3084.  
  3085. The third example underscores the fact that inference problems also arise in commercial 
  3086. systems. [cf KORT86, Ch. 13.5; FERN81, Ch. 13] The need to model inference control thus 
  3087. extends beyond traditional multilevel security.
  3088.  
  3089. An extensive quantitative analysis of the inference problem may be found in Crytography and 
  3090. Data Security [DENN82] In the LOCK Data Views effort, much of the inference problem is 
  3091. delegated to a database system security officer who can specify content- and context- dependent 
  3092. classification rules. The classification of a field in a record may depend on its value, on other fields 
  3093. in the record it is displayed with, or on previous queries made by the user. [HAIG90] An interesting 
  3094. consequence of inference problems is that there may be no lowest, safe security level for a given 
  3095. piece of information: an otherwise unclassified piece of information might allow users at level {a} 
  3096. to infer information at level {a, b} and users at level {p} to infer information at level {p, q}. Thus, 
  3097. {a, b}, {p, q}, and {a, b, p, q} would be admissible levels for this piece of information, whereas 
  3098. {a} and {p} would not. These and other considerations have led to an explicit axiomatization of 
  3099. inference in terms of an "infer" function [HAIG90] that could be included in a model's definition 
  3100. of security in order to explicitly capture an inference control policy.
  3101.  
  3102. Inference constraints may be enforced during database design, updating, and query 
  3103. processing. In principle, enforcement need only occur during query processing, but this approach 
  3104. may also be the least efficient. [cf KEEF89, HINK88, ROWE89, FORD90] Thus, locus of policy 
  3105. enforcement may be a significant factor in modeling inference control.
  3106.  
  3107. 4.3.5           PARTIALLY AUTOMATED LABELING
  3108.  
  3109. As discussed in Section 3.2, the usual labeling paradigm is that users know the sensitivities of 
  3110. their inputs and supply these sensitivities when the information is being entered. In the case of 
  3111. databases, however, information about object classifications may not be available when a database 
  3112. schema is defined. Including this classification information as part of the schema definition not 
  3113. only provides a uniform approach to classification, but also improves labeling accuracy by 
  3114. allowing specially authorized users to assign or constrain object sensitivity levels.
  3115.  
  3116. In actuality, information rather than data or containers for data is classified. Consequently, 
  3117. a rule for classifying storage objects in a database may depend not only on the particular object but 
  3118. also on the data it contains and on how the data is used, as is illustrated by the following examples:
  3119.  
  3120. 1. A ship's location might be unclassified when it was in a U.S. port but classified if it were 
  3121. fifty miles from Tripoli. [GRAU90]
  3122.  
  3123. 2. Names of manufacturing companies are unclassified but most information about a 
  3124. particular spy plane, including its manufacturer, is classified.
  3125.  
  3126. In the first example, classification is content-dependent. As noted by Graubart, content- 
  3127. dependent classification is antithetical to the tranquility principle. [GRAU90] In the second 
  3128. example, whether or not the name of the plane's manufacturer is classified depends on its use in a 
  3129. given context. Lunt has argued that context-sensitive classifications are easily confused with 
  3130. inference problems [LUNT89] and that object-oriented systems are especially appropriate for 
  3131. handling context dependencies. [LUNT90]
  3132.  
  3133. Lack of tranquility exposes what has been called the "multi party update conflict" problem. 
  3134. Two users working at different classifications attempt to store conflicting reports, leading to 
  3135. questions about which report and which classification is correct, and whether or not the mistaken 
  3136. user should be so informed. One possibility is that the less -classified user has been given a "cover 
  3137. story" to hide publicly observable aspects of a classified situation. In this case, a possible approach 
  3138. to the update conflict is to store both the cover story and the truth in the same spot in the database 
  3139. with the two entries being distinguished only by their classification. This approach, known as 
  3140. "polyinstantiation," is not the only approach to multiparty update conflicts [KEEF90b], and it may 
  3141. well be inappropriate in situations where cover stories are not involved. [SMIT90]
  3142.  
  3143. A fairly wide variety of content-and/or context-dependent classification mechanisms have 
  3144. been investigated, but a general approach to the problem has yet to be developed. [SMIT88] As 
  3145. indicated in Section 3.2.1, traditional approaches to MAC modeling begin with the assumption that 
  3146. data sensitivity is user-supplied. As a result, some aspects may need to be rethought when 
  3147. modeling policies for automated data labeling.
  3148.  
  3149. 4.4     SYSTEMS WITH EXTENDED SUPPORT FOR LABEL ACCURACY
  3150.  
  3151. As mentioned in Section 3.1.5, security labels are used both to control information flow and 
  3152. to provide accurate security markings for data. These goals may well conflict, and this conflict may 
  3153. be theoretically unavoidable in some situations. [JONE75; DENN82, º 5.2.1] Policies and coping 
  3154. strategies for maintaining label accuracy have turned up in security models, whereas label accuracy 
  3155. itself has not yet been explicitly modeled.
  3156.  
  3157. The following paragraphs discuss pragmatic factors that inhibit accuracy, some coping 
  3158. strategies suggested by these factors, and the realization of these strategies in Compartmented 
  3159. Mode Workstations (CMWs). As a final example, the "Chinese wall" policy for stock market 
  3160. analysts is introduced and shown to be a variant of the workstation security policy.
  3161.  
  3162. 4.4.1           FACTORS INHIBITING ACCURACY IN LABELING
  3163.  
  3164. In practice, several factors may interfere with accuracy in labeling, including the need to 
  3165. maintain labels across different working environments, the use of complex labeling schemes, and 
  3166. data fusion.
  3167.  
  3168. In many applications, the collection, processing, and distribution of information all take place 
  3169. in different environments. It can happen that labels are assigned during collection and used to 
  3170. control the ultimate distribution, but the majority of processing takes place in a system-high 
  3171. environment where automated access control is not supported or in a multilevel environment where 
  3172. not all security markings are used to control access by users. In these cases, it is necessary to 
  3173. accurately maintain security markings even when they are not needed to enforce access control in 
  3174. the information processing environment.
  3175.  
  3176. Some applications may involve the use of literally thousands of categories. Moreover, the 
  3177. required security markings may include not only a DoD classification but also code words, 
  3178. handling caveats, and/or release markings as well. Such markings usually form a lattice, but the 
  3179. rules for combining markings may be complex. [WOOD87]
  3180.  
  3181. The fusion of data at several security levels requires a convention for labeling fused data. 
  3182. Even if aggregation and inference issues are ignored, it is still necessary to find a level which 
  3183. dominates that of every data source. If the level of fused data can be predicted in advance, then 
  3184. aggregate data can be maintained in multilevel data structures, as in the SMMS. [LAND84] 
  3185. However, finding an appropriate aggregate level may be hindered by difficulty in combining labels 
  3186. or by the fact that the sources cannot be predicted in advance, either because they arrive in real time 
  3187. or because the avoidance of inappropriate sources is part of the fusion task itself.
  3188.  
  3189. 4.4.2           FLOATING SENSITIVITY LABELS
  3190.  
  3191. If the security levels form a semi-lattice, then some form of "high water mark" policy may be 
  3192. used to maintain an upper bound on fused data. In such a policy, the TCB maintains the least upper 
  3193. bound of all data levels associated with an entity in a "floating" label. While the TCSEC 
  3194. requirements do not rule out floating labels, the MAC requirements do imply that the level of a 
  3195. subject must never float above the clearance of its user. At B2 and above, the covert channel 
  3196. requirements suggest that label data should not be exploitable as a covert channel. Unfortunately, 
  3197. most high watermark policies not only allow, but actually force, the existence of covert channels 
  3198. based on the use of floating labels. [DENN82, Ch.5.3]
  3199.  
  3200. The level of a process can be kept from floating too high by going to a dual-label mechanism 
  3201. in which a fixed label contains the subject's maximum security level, which dominates that of the 
  3202. floating label. In this situation, the fixed label is used only for access control and need only include 
  3203. those security attributes that are actually used for access control. Factors which favor acceptability 
  3204. of a covert channel include low bandwidth and the absence of application software that can exploit 
  3205. covert channels.
  3206.  
  3207. 4.4.3           COMPARTMENTED MODE WORKSTATlONS (CMW)
  3208.  
  3209. The CMW design described by Woodward [WOOD87] is for a dual label system. The fixed 
  3210. label contains a "sensitivity" level and is the only label used for access control. The floating label 
  3211. contains an "information" level that consists of a second sensitivity level and additional security 
  3212. markings. The sensitivity levels are used to control nondisclosure and consist of DoD clearance 
  3213. and authorization components. The security markings form a lattice; hence, so do the information 
  3214. levels. The intended use of the two labels is that the fixed label enforces an upper bound on the 
  3215. sensitivity of information held by an entity, while the information level describes the current 
  3216. security level of information held. The covert channel problem resulting from the use of floating 
  3217. labels can lead to erroneous information labels but cannot be used to violate the access control 
  3218. policy enforced by the fixed labels.
  3219.  
  3220. A CMW security model has been developed by Bodeau and Millen. [MILL90] Its MAC 
  3221. policy may briefly be summarized as follows: when a user creates a new file or process, it receives 
  3222. a sensitivity level equal to that of the user's login level. By way of contrast, the information label 
  3223. for a newly created file contains the lowest possible information level. In particular, its sensitivity 
  3224. component is "unclassified." A sensitivity label never changes throughout the life of an entity, but 
  3225. the information label is allowed to float upwards in such a way that its sensitivity component is 
  3226. always dominated by the level of that entity's sensitivity label.
  3227.  
  3228. The rules of operation are such that, whenever an operation is invoked that involves an 
  3229. (intended) information flow from an entity E1 to an entity E2, the sensitivity labels are checked to 
  3230. be sure that the sensitivity of E2 dominates that of E1. The maximum of the information levels for 
  3231. E1 and E2 is then computed, and it becomes the new value of the information label for E2. In 
  3232. addition to the properties just described, the CMW model also discusses privilege and DAC. The 
  3233. model does not address direct process-to-process communication, but does treat pipes as objects. 
  3234. As is appropriate when modeling a policy that is subject to misuse, the existence of a channel based 
  3235. on information labels is derivable from the model itself.
  3236.  
  3237. 4.4.4           THE CHINESE WALL SECURITY POLICY
  3238.  
  3239. As presented by Brewer and Nash, the "Chinese Wall" Policy is a mandatory access control 
  3240. policy for stock market analysts. [BREW89] This organizational policy is legally binding in the 
  3241. United Kingdom stock exchange. According to the policy, a market analyst may do business with 
  3242. any company. However, every time the analyst receives sensitive "inside" information from a new 
  3243. company, the policy prevents him from doing business with any other company in the same 
  3244. industry because that would involve him in a conflict of interest. In other words, collaboration with 
  3245. one company places a "Chinese wall" between him and all other companies in the same industry. 
  3246. Same ness of industry might be judged according to business sector headings found in listings of 
  3247. the stock exchange, for example. Notice that this policy does not, by itself, prohibit conspiracies. 
  3248. For example, one market analyst can give information about a company in industry I to a company 
  3249. in industry J. Subsequently, another analyst can transfer this information from the company in 
  3250. industry J back to some other company in industry I. Analogous conspiracies between colliding 
  3251. processes, however, are explicitly ruled out in the corresponding system security policy and its 
  3252. model. [cf BREW89, Axiom 6]
  3253.  
  3254. Brewer and Nash argue that this policy cannot be modeled using models in the style of Bell 
  3255. and La Padula that obey tranquility. However, this policy can easily be modeled as a variant of the 
  3256. CMW model. Information and sensitivity levels are both sets of categories, where each category 
  3257. represents a different company. There is an accreditation range for information levels. A level 
  3258. belongs to the accreditation range if and only if it does not contain two or more companies from 
  3259. the same industry. The model must be extended slightly by adding information labels for users. 
  3260. Every user and every controlled entity has a system-high sensitivity level, reflecting the fact that 
  3261. an analyst may work with any particular company. Every user starts out with an empty (system-
  3262. low) information label. Each time an analyst attempts to read information in a new category (i.e., 
  3263. company), his information level floats up, unless it goes outside of the accreditation range, in 
  3264. which case his attempt is rejected. Notice that, as in the CMW example, there are thousands of 
  3265. categories. While the rule for combining categories is straightforward, the accreditation range is 
  3266. not. Additional thoughts on the use of accreditation ranges in controlling aggregation may be found 
  3267. in the paper "Extending the Brewer-Nash Model to a Multilevel Context." [MEAD90b]
  3268.  
  3269. 5.      MEETING THE REQUIREMENTS
  3270.  
  3271. At evaluation class C1 and above, a "description of the manufacturer's philosophy of 
  3272. protection and an explanation of how this philosophy is translated into the TCB" is required. For 
  3273. evaluation classes B1 and above, this requirement is supplanted with explicit security modeling 
  3274. requirements. This section contains a listing of these requirements, followed by a discussion of 
  3275. how a security policy model can meet these requirements, as well as satisfy related assurance and 
  3276. architectural requirements.
  3277.  
  3278. 5.1     STATED REQUIREMENTS ON THE SECURITY MODEL
  3279.  
  3280. Requirements that are new at a given evaluation level are presented in bold face.
  3281.  
  3282. 5.1.1 B1 REQUIREMENTS
  3283.  
  3284. 1. An informal or formal model of the security policy supported by the TCB shall be 
  3285. maintained over the life cycle of the ADP system. An informal or formal description 
  3286. of the security policy model enforced by the TCB shall be available.
  3287.  
  3288. 2. [The security model] shall be demonstrated to be consistent with its axioms.
  3289.  
  3290. 3. An explanation [shall be] provided to show that it is sufficient to enforce the security 
  3291. policy.
  3292.  
  3293. 4. The specific TCB protection mechanisms shall be identified and an explanation given 
  3294. to show that they satisfy the model.
  3295.  
  3296. 5.1.2 B2 REQUIREMENTS
  3297.  
  3298. 1. A  formal model of the security policy supported by the TCB shall be maintained over the 
  3299. life cycle of the ADP system. A formal description of the security policy model enforced 
  3300. by the TCB shall be available.
  3301.  
  3302. 2. [The model] shall be proven consistent with its axioms.
  3303.  
  3304. 3. [The model shall be] proven sufficient to enforce the security policy.
  3305.  
  3306. 4. The specific TCB protection mechanisms shall be identified and an explanation given to 
  3307. show that they satisfy the model.
  3308.  
  3309. 5.1.3 B3 REQUIREMENTS
  3310.  
  3311. 1. A  formal model of the security policy supported by the TCB shall be maintained over the 
  3312. life cycle of the ADP system. A formal description of the security policy model enforced 
  3313. by the TCB shall be available.
  3314.  
  3315. 2. [The model] shall be proven consistent with its axioms.
  3316.  
  3317. 3. [The model shall be] proven sufficient to enforce the security policy.
  3318.  
  3319. 4. The specific TCB protection mechanisms shall be identified and an explanation given to 
  3320. show that they satisfy the model.
  3321.  
  3322. 5. A convincing argument shall be given that the DTLS is consistent with the model.
  3323.  
  3324. 5.1.4 A1 REQUIREMENTS
  3325.  
  3326. 1. A formal model of the security policy supported by the TCB shall be maintained over the 
  3327. life cycle of the ADP system. A formal description of the security policy model enforced 
  3328. by the TCB shall be available.
  3329.  
  3330. 2. [The model] shall be proven consistent with its axioms.
  3331.  
  3332. 3. [The model shall be] proven sufficient to enforce the security policy.
  3333.  
  3334. 4. The specific TCB protection mechanisms shall be identified and an explanation given to 
  3335. show that they satisfy the model.
  3336.  
  3337. 5. A convincing argument shall be given that the DTLS is consistent with the model.
  3338.  
  3339. 6. A combination of formal and informal techniques shall be used to show that the 
  3340. FTLS is consistent with the model. This verification evidence shall be consistent with 
  3341. that provided within the state-of-the-art of the particular National Computer 
  3342. Security Center endorsed formal specification and verification system used.
  3343.  
  3344. 7. During the entire life cycle, i.e., during the design, development and maintenance of the 
  3345. TCB, a configuration management system shall be in place... that maintains control of 
  3346. changes to the formal model....
  3347.  
  3348. 5.2     DISCUSSION OF THE B1 REQUIREMENTS
  3349.  
  3350. 1. Provided Model of the Security Policy Enforced by the TCB. The decision of whether to 
  3351. use a formal or informal model is a matter of choice, as can be seen from the TCSEC Glossary. An 
  3352. informal security policy model should be presented with enough precision that a formal 
  3353. mathematical model could be constructed if needed. A formal security model must conform to 
  3354. accepted standards of mathematical rigor.
  3355.  
  3356. The security model must present a definition of security and an enforcement policy (i.e., rules 
  3357. of operation) for controlled system entities. The controlled entities may be correctly interpreted as 
  3358. storage objects, devices, processes, and other controlled system resources. The model must present 
  3359. the system's notion of access and explain how access checks (or constraints) succeed in preventing 
  3360. unauthorized access. Thus, the model must consist of more than just a high-level description of 
  3361. security requirements.
  3362.  
  3363. Since formal proof is not required, a firm distinction between abstract security requirements 
  3364. and concrete enforcement mechanisms may be unnecessary. It is absent from the [NCSC88] 
  3365. definition of a security policy model. A distinction between the reference monitor and other 
  3366. portions of the TCB is also not required, but the role of TCB subjects in the enforcement of the 
  3367. security policy must be taken into account. Moreover, in the case of a retrofitted system that did 
  3368. not originally support trusted user roles, the interface between TCB subjects and the basic system 
  3369. kernel may be too complicated for TCB-subject modeling to be valuable.
  3370.  
  3371. 2. Demonstration of Internal Consistency. The second modeling requirement covers two 
  3372. related concerns. The model must not contain inconsistencies. In other words, it must not 
  3373. contradict itself. Moreover, a formal or informal demonstration must show that the modeled 
  3374. enforcement policy is sufficient to achieve any modeled security requirements ("axioms"). In other 
  3375. words, the rules of operation must imply the definition of security.
  3376.  
  3377. 3. Explanation of Sufficiency to Enforce the Security Policy. An explanation must be 
  3378. provided to show that the model's description of the security policy is adequate-that the model 
  3379. leads to a system whose TCB enforces the advertised system security policy. For the model to be 
  3380. sufficient or adequate in this sense, it must include key ideas used in the design of the security 
  3381. enforcement mechanisms. The resulting rules of operation should provide a basis for 
  3382. understanding how the system's main security enforcement mechanisms enforce the security 
  3383. policy. In the case of networks and other complex systems, models of key subsystems are needed 
  3384. in addition to a model of the entire system. In particular, "the overall network policy must be 
  3385. decomposed into policy elements that are allocated to appropriate components and used as the 
  3386. basis for the security policy model for those components". [NCSC87, Sec. 3.1.3.2.2]
  3387.  
  3388. The system security policy itself must include the minimum requirements of Section 3.1.1 of 
  3389. the TCSEC, and the model should tailor Section 3.1.1 to the particular system at hand. The access 
  3390. control requirements in Section 3.1.1 must always be modeled, whereas the need to model the 
  3391. labeling and object reuse requirements will vary from one system to the next. [cf NCSC87, Sec. 
  3392. 3.1.4.4]
  3393.  
  3394. The security policy model must include a description of DAC. An explanation of how DAC 
  3395. interacts with MAC is encouraged but not explicitly required. In particular, there is no a priori 
  3396. requirement for DAC objects to coincide with MAC objects.
  3397.  
  3398. The security policy model must include a description of MAC. The decomposition of 
  3399. sensitivity levels into clearance, nondisclosure category, or other components need not be 
  3400. explicitly included unless such decomposition is essential to an understanding of the model. 
  3401. Flagrant examples of illegal information channels may be regarded as MAC policy violations, even 
  3402. though a covert channel analysis is not required. More specifically, a documented (or trivially 
  3403. inferred) use of a system function must not result in an illegal transfer of information.
  3404.  
  3405. Modeling of the following security policy requirements may be useful, but is traditionally not 
  3406. required:
  3407.  
  3408. ╖ A process acting on behalf of a user must have a label that is dominated by the clearance 
  3409. and authorization of that user.
  3410.  
  3411. ╖ Information flowing across a device must have an implicitly or explicitly associated 
  3412. sensitivity level, according to whether the device is classified as single-level or multi level.
  3413.  
  3414. ╖ Object reuse and process initialization do not happen in such a way as to allow unauthorized 
  3415. disclosure.
  3416.  
  3417. ╖ In a network, the overall network security policy is enforced by the NTCB.
  3418.  
  3419. ╖ Additional vendor supplied security requirements, whether derived from governing 
  3420. regulations or customer needs, may be enforced by the TCB.
  3421.  
  3422. 4. TCB Protection Mechanisms and Correspondence to Model. The TCSEC modeling 
  3423. requirements must be met in away that is consistent with the needs of the system development 
  3424. process and with actual TCB protection mechanisms. The vendor must supply a model 
  3425. interpretation showing how the rules of operation in the model relate to the actions of the TCB. The 
  3426. model interpretation must address the reference monitor interface and show how subject 
  3427. instructions are accounted for.
  3428.  
  3429. The following aspects of a system do not have to be modeled although their representation in 
  3430. the model may be useful:
  3431.  
  3432. ╖ Error diagnostics,
  3433.  
  3434. ╖ The contents of storage objects and other controlled entities,
  3435.  
  3436. ╖ The scheduling of subjects and their synchronization with external inputs,
  3437.  
  3438. ╖ Internal TCB structure,
  3439.  
  3440. ╖ Portions of the TCB that do not support user-requested computation (e.g., security-
  3441. administrator functions), and
  3442.  
  3443. ╖ An individual network component that has a very simple (or nonexistent) reference monitor 
  3444. and contains no subjects which act on behalf of users.
  3445.  
  3446. 5.3 DISCUSSION OF THE B2 REQUIREMENTS
  3447.  
  3448. 1. Provided Model of the Security Policy Enforced by the TCB. The model must be written 
  3449. in a formal mathematical notation; either mathematical English or a well-defined formal 
  3450. specification language is acceptable. From the TCSEC Glossary definition of a formal security 
  3451. policy model, it is clear that the model must describe both what security is and how it is enforced. 
  3452. As discussed in Section 3.2, the definition of security can be formalized using either external-
  3453. interface requirements or internal requirements on controlled entities. The explanation of how 
  3454. security is enforced typically takes the form of rules of operation.
  3455.  
  3456. 2. Demonstration of Internal Consistency. A mathematical proof must be given showing 
  3457. that the rules of operation ensure satisfaction of the modeled security requirements.
  3458.  
  3459. 3. Explanation of Sufficiency to Enforce the Security Policy. The proof referred to in this 
  3460. requirement is an informal, rather than a mathematical proof, because sufficiency depends on the 
  3461. typically informal security policy. The intent of this documentation requirement is that stronger 
  3462. evidence of sufficiency be provided at B2 than at B1. If the system has a novel approach to 
  3463. mandatory or discretionary access control, it may be necessary to model both what the system does 
  3464. and what Section 3.2.1 of the TCSEC requires and then to prove that the system does what is 
  3465. required. Stronger evidence of sufficiency is possible, if the model is compatible with other B2 
  3466. security, accountability, and assurance requirements. For this reason, explicit inclusion of the 
  3467. following requirements may be useful:
  3468.  
  3469. ╖ The TCB shall support the assignment of minimum and maximum security levels to all 
  3470. attached physical devices. These security levels shall be used by the TCB to enforce 
  3471. constraints imposed by the physical environments in which the devices are located.
  3472.  
  3473. ╖ [The TCB design shall] separate those elements [of the TCB] that are protection-critical 
  3474. from those that are not.
  3475.  
  3476. ╖ The TCB modules shall be designed such that the principle of least privilege is enforced.
  3477.  
  3478. ╖ The user interface to the TCB shall be completely defined and all elements of the TCB 
  3479. identified.
  3480.  
  3481. ╖ The TCB shall support separate operator and administrator functions.
  3482.  
  3483. ╖ The system developer shall conduct a thorough search for covert storage channels.
  3484.  
  3485. ╖ The TCB shall support a trusted communication path between itself and the user for initial 
  3486. login and authentication. Communications via this path shall be initiated exclusively by the 
  3487. user.
  3488.  
  3489. If separate security models are given for the security kernel and other components of the TCB, 
  3490. then the pieces must fit together correctly, and arguments should be given to the effect that overall 
  3491. system security is achieved and necessary checks are not inadvertently omitted. As indicated in 
  3492. Section 3.2, the notion of which storage channels are covert is partially reflected in the security 
  3493. model, and the inclusion of information flow requirements in the model's definition of security can 
  3494. reduce the effort needed to perform covert channel analysis.
  3495.  
  3496. 4. TCB Protection Mechanisms and Correspondence to Model. The B2 requirements for 
  3497. validation of TCB protection mechanisms are basically the same as those discussed at the end of 
  3498. Section 5.2, except for an implicit completeness requirement. This requirement is that "the TCB 
  3499. shall enforce a mandatory access control policy over all resources (i.e., subjects, objects, and   I/O 
  3500. devices) that are directly or indirectly accessible by subjects external to the TCB." This 
  3501. requirement should be reflected in the model interpretation, and its satisfaction may require 
  3502. extensions to the model in order to account for all accessible resources in the implementation. The 
  3503. model interpretation itself may be accomplished in two steps, by first mapping the model to the 
  3504. DTLS and then the DTLS to the TCB implementation.
  3505.  
  3506. 5.4 Discussion of the B3 Requirements
  3507.  
  3508. The B3 requirements include the B2 requirements as well as several new requirements.
  3509.  
  3510. 1, 2. Provided Model and Internal Consistency. The basic structure of the security model is 
  3511. the same at B3 as at B2.
  3512.  
  3513. 3. Explanation of Sufficiency to Enforce the Security Policy. There is one additional 
  3514. security policy requirement at B3, namely that access controls "shall be capable of specifying, for 
  3515. each named object, a list of named individuals and a list of groups of named individuals with their 
  3516. respective modes of access to that object. For each named object, it shall be possible to specify a 
  3517. list of named individuals and a List of groups of named individuals for which no access to the 
  3518. object is to be given."
  3519.  
  3520. In addition, the model may usefully reflect, and must be consistent with, the following B3 
  3521. architectural assurance requirement: "The TCB shall be designed and structured to use a complete, 
  3522. conceptually simple protection mechanism with precisely defined semantics. This mechanism 
  3523. shall play a central role in enforcing the internal structuring of the TCB and the system. Significant 
  3524. system engineering shall be directed toward minimizing the complexity of the TCB and excluding 
  3525. from the TCB modules that are not protection-critical."
  3526.  
  3527. 4, 5. TCB Protection Mechanisms and DTLS Correspondence to Model. The validation of 
  3528. TCB protection mechanisms is normally performed by showing that the model is an abstraction of 
  3529. the DTLS and then mapping the DTLS to the actual TCB implementation. (See Section 2.3.6.)
  3530.  
  3531. 5.5 DISCUSSION OF THE A1 REQUIREMENTS
  3532.  
  3533. 1-5. Previously Introduced Requirements. The first five requirements are the same at A1 as 
  3534. at B3 (except for the fact that the FTLS rather than the DTLS is mapped to the implementation). 
  3535. The requirements for a formal covert channel analysis invite, but do not require, the use of 
  3536. information flow or similar external-interface models.
  3537.  
  3538. 6. FTLS Correspondence to Model. The main new requirement at this level is that a "formal" 
  3539. mathematical proof be given showing that the security model is an abstraction of the FTLS. This 
  3540. proof may be carried out either by hand or with the use of an endorsed formal verification system. 
  3541. In either case, the vendor is responsible for providing an understandable, logically correct 
  3542. justification of correspondence. This justification normally begins with the formulation of a 
  3543. rigorous conjecture to the effect that the model is an abstraction of the FTLS. If part or all of the 
  3544. proof is presented to a verification system, then the vendor must demonstrate that the presented 
  3545. portion is correctly codified in the formal language of the verification system. This demonstration 
  3546. may require informal argument and an appeal to the semantics of the system's formal specification 
  3547. language.
  3548.  
  3549. There are two common ways of showing that the FTLS is consistent with the model: 
  3550. comparing the FTLS with the rules of operation and comparing the FTLS directly with the model's 
  3551. definition of security. In the latter case, the rules of operation and model interpretation are similar 
  3552. in purpose to the FTLS and its implementation correspondence, respectively. This parallelism of 
  3553. requirements does not necessarily imply duplication of effort, however, because there are no 
  3554. explicit requirements which force a distinction between the FTLS and the rules of operation.
  3555.  
  3556. 7. Configuration Management for the Model. The requirement that the model and related 
  3557. documentation be maintained under configuration management is not a modeling requirement, 
  3558. perse. However, because of this requirement, extra care is needed to ensure that the model is given 
  3559. in a form that contributes to its maintainability.
  3560.  
  3561. APPENDIX A. SECURITY LEVELS AND PARTIALLY ORDERED SETS
  3562.  
  3563. Policies that control information flow often rely on partially ordered sets of security attributes. 
  3564. This appendix introduces partial orderings as they relate to information flow and presents basic 
  3565. facts about partial orderings that are relevant to the modeling and implementation of label-based 
  3566. security policies. Many of these facts can also be found in the undergraduate text [ABBO69].
  3567.  
  3568. Most processes satisfy two basic information flow properties:
  3569.  
  3570. reflexivity: A process can access any information it possesses. That is, information can 
  3571. always flow from a process to itself.
  3572.  
  3573. transitivity: If information can flow from process P1 to process P2 and can flow from P2 to 
  3574. P3, then information can flow from P1 to P3.1
  3575.  
  3576. These two properties of information flow determine a preordering relation between processes. If 
  3577. processes are labeled in such a way as to make economical use of label values, then the following 
  3578. property may also hold as well:
  3579.  
  3580.  antisymmetry: If information can flow from a process with label L1 to a process with label 
  3581. L2, and conversely, then L1 = L2.
  3582.  
  3583. Thus, the intended relationship between labels and information flow leads to consideration of a 
  3584. reflexive, transitive, antisymmetric relation on label values, that is, a partial ordering. The intended 
  3585. relationship between information flow and this partial ordering can be expressed by saying that L1 
  3586. ú L2, if information is allowed to flow from controlled processes with label L1 to controlled 
  3587. processes with label L2. This relation is traditionally referred to as dominance: L1, is dominated by 
  3588. L2 if and only if L1, ú L2.
  3589.  
  3590. The following sections introduce basic terminology and show how partial orderings can be 
  3591. constructed and manipulated through the use of embeddings, Cartesian products, and dual 
  3592. orderings.
  3593.  
  3594. A.l TERMINOLOGY
  3595.  
  3596. Formally, ú is taken to be a partial ordering on a set  whose elements are referred to as 
  3597. levels. A pair of the form┼ (, ú) is a partially ordered set. For any levels L1 and L2, L1 
  3598.  
  3599.  
  3600.