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

  1. A GUIDE to UNDERSTANDING OBJECT REUSE in
  2. TRUSTED SYSTEMS
  3.  
  4. Patrick R. G r, Jr. July 1992
  5. Director
  6. National Computer Security Center
  7.  
  8.  
  9. Table of Contents
  10.  
  11.      FOREWORD 
  12.      ACKNOWLEDGMENTS 
  13.      1 INTRODUCTION 
  14.           1.1 BACKGROUND 
  15.           1.2 PURPOSE 
  16.           1.3 SCOPE 
  17.           1.4 CONTROL OBJECTIVE 
  18.      2 OVERVIEW OF PRINCIPLES 
  19.           2.1 THE TCSEC OBJECT REUSE REQUIREMENT 
  20.           2.2 PURPOSE OF THE OBJECT REUSE REQUIREMENT 
  21.           2.3 APPLICABILITY OF THE OBJECT REUSE REQUIREMENT 
  22.           2.4 SUMMARY 
  23.      3 IMPLEMENTATION CONSIDERATIONS FOR OBJECT REUSE 
  24.           3.1 CONSIDERATIONS FOR PRIMARY STORAGE OBJECTS 
  25.           3.2 FIXED MEDIA METHODS 
  26.           3.3 REMOVABLE MEDIA METHODS 
  27.           3.4 MANAGEMENT OF REMOVABLE MEDIA 
  28.           3.5 SUMMARY 
  29.      GLOSSARY 
  30.      REFERENCES 
  31.  
  32.  
  33.  
  34. NCSC-TG-018 
  35. Library No. 5-223,170 
  36. Version 1 
  37.  
  38. FOREWORD
  39.  
  40. A Guide to Understanding Object Reuse in Trusted Systems provides a
  41. set of good practices related to object reuse. We have written this
  42. guideline to help the vendor and evaluator communities understand the
  43. requirements for object reuse as described in the Department of Defense
  44. Trusted Computer System Evaluation Criteria. In an effort to provide
  45. guidance, we make recommendations in this technical guideline that are not
  46. requirements in the Criteria.
  47.  
  48. The Object Reuse Guide is the latest in a series of technical guidelines
  49. published by the National Computer Security Center. These publications
  50. provide insight to the Trusted Computer System Evaluation Criteria
  51. requirements for the computer security vendor and technical evaluator. The
  52. goal of the Technical Guideline Program is to discuss each feature of the
  53. Criteria in detail and to provide the proper interpretations with specific
  54. guidance.
  55.  
  56. The National Computer Security Center has established an aggressive
  57. program to study and implement computer security technology. Our goal is
  58. to encourage the widespread availability of trusted computer products for
  59. use by any organization desiring better protection of its important data.
  60. One way we do this is by the Trusted Product Evaluation Program. This
  61. program focuses on the security features of commercially produced and
  62. supported computer systems. We evaluate the protection capabilities
  63. against the established criteria presented in the Trusted Computer System
  64. Evaluation Criteria. This program, and an open and cooperative business
  65. relationship with the computer and telecommunications industries, will
  66. result in the fulfillment of our country's information systems security
  67. requirements. We resolve to meet the challenge of identifying trusted
  68. computer products suitable for use in processing information that requires
  69. protection.
  70.  
  71. I invite your suggestions for revising this technical guideline. We will
  72. review this document as the need arises.
  73.  
  74. ACKNOWLEDGMENTS
  75.  
  76. The National Computer Security Center extends special recognition and
  77. acknowledgment to James Anderson, COL Rayford Vaughn (USA), and Rick
  78. Siebenaler as authors of this document. Patricia R. Toth is recognized for
  79. the development of this guideline, and Capt. James A. Muysenberg (USAF) is
  80. recognized for its editing and publication.
  81.  
  82. We wish to thank the many members of the computer security community who
  83. enthusiastically gave their time and technical expertise in reviewing this
  84. guideline and providing valuable comments and suggestions.
  85.  
  86. 1 INTRODUCTION
  87.  
  88. 1.1 BACKGROUND
  89.  
  90. The principal goal of the National Computer Security Center (NCSC) is to
  91. encourage the widespread availability of trusted computer systems. In
  92. support of this goal the NCSC created a metric, the DoD Trusted Computer
  93. System Evaluation Criteria (TCSEC) [2], against which computer systems
  94. could be evaluated.
  95.  
  96. The TCSEC was originally published on 15 August 1983 as CSC-STD-001 -83.
  97. In December 1985 the Department of Defense adopted it, with a few changes,
  98. as a Department of Defense Standard, DoD 5200.28-STD. DoD Directive
  99. 5200.28, Security Requirements for Automated Information Systems (A 155)
  100. [4], requires the TCSEC be used throughout the Department of Defense. The
  101. TCSEC is the standard used for evaluating the effectiveness of security
  102. controls built into DoD ASs.
  103.  
  104. The TCSEC is divided into four divisions: D, C, 19, and A. These divisions
  105. are ordered in a hierarchical manner, with the highest division (A) being
  106. reserved for systems providing the best available level of assurance and
  107. security. Within divisions C and 19 are subdivisions known as classes,
  108. which are also ordered in a hierarchical manner to represent different
  109. levels of security in these divisions.
  110.  
  111. 1.2 PURPOSE
  112.  
  113. This document is written to help vendors and evaluators understand the
  114. object reuse requirement. It also provides guidance to vendors on how to
  115. design and incorporate effective object reuse mechanisms into their
  116. systems. Some examples for accomplishing object reuse are provided in this
  117. document, but they are not the only way to meet the requirement. Nor are
  118. the recommendations supplementary requirements to the TCSEC. The only
  119. measure of TCSEC compliance is the TCSEC itself.
  120.  
  121. 1.3 SCOPE
  122.  
  123. This guideline discusses the object reuse requirement applicable to the
  124. trusted computing bases (TClBs) found in classes C2 through Al. Although
  125. it is directed toward object reuse, this guideline also addresses other
  126. TCSEC requirements that tend to strengthen the assurance for the correct
  127. performance of object reuse. 
  128.  
  129. 1.4 CONTROL OBJECTIVE
  130.  
  131. The general control objective for object reuse is specified in the TCSEC.
  132. It was originally obtained from DoD Directive 5200.28 (April `78 version)
  133. which has now been modified and reissued (March `88) but still embodies
  134. the spirit of the original requirement. It requires automated information
  135. systems (AISs) processing classified information to, "with reasonable
  136. dependability, prevent:
  137.  
  138.      a. Deliberate or inadvertent access to classified material by
  139.      unauthorized persons . . . ."[2, page 59]
  140.  
  141. The word "unauthorized" in the above objective is deserving of further
  142. explanation. Certainly one must assume that strong Identification and
  143. Authentication (I & A) mechanisms ensure that users are authorized to be
  144. on the system prior to the need for object reuse controls. However, the
  145. object reuse mechanisms are designed to ensure that the authorized user of
  146. the system does not obtain residual information from system resources.
  147.  
  148. In this guideline, "classified" means any information requiring protection
  149. or authorization to access. The disclosure arising from the absence of an
  150. object reuse mechanism is considered inadvertent (assuming all other TCSEC
  151. requirements are in place and working properly).
  152.  
  153. 2 OVERVIEW OF PRINCIPLES
  154.  
  155. Object reuse is defined by A Guide to Understanding Data Remanence in
  156. Automated Information Systems as:
  157.  
  158.      "The reassignment to some subject of a storage medium (e.g., page
  159.      frame, disk sector, magnetic tape) that contained one or more
  160.      objects. To be securely reassigned, no residual data can be available
  161.      to the new subject through standard system mechanisms." [1 ]
  162.  
  163. The object reuse requirement of the TC$EC is intended to assure that
  164. system resources, in particular storage media, are allocated and
  165. reassigned among system users in a manner which prevents the disclosure of
  166. sensitive information.
  167.  
  168. The requirement ultimately derives from observations made during the early
  169. penetration testing experiences (circa 1969-1973) that systems typically
  170. did not clear a user s working memory (often called "scratch space") when
  171. the user completed a session. Thus, when memory was reassigned to another
  172. user, the information placed in it by the previous user was now available
  173. to the new owner of the scratch space. Often, the disclosure was
  174. inadvertent: the second user had not intended to obtain the information
  175. suddenly made available. However, it also meant that a malicious (or just
  176. curious) user could browse (or "scavenge") through the system, obtaining
  177. scratch space and looking for items of interest (the equivalent of
  178. rummaging through the trash). Depending upon the details of the system
  179. architecture and operating system, a browser could more or less control
  180. whose work space was being accessed. Although the problem was first noted
  181. as one involving primary storage (or main memory), it clearly extends to
  182. secondary storage as well; removable media (such as tapes and removable
  183. disks) and disk space must be allocated such as to prevent one user s
  184. information from inadvertently becoming available to others as system
  185. storage resources are shared among system users.
  186.  
  187. In short, with effective object reuse mechanisms in place, a penetrator is
  188. prevented from obtaining information through browsing attacks (e.g.,
  189. logging onto the system as a user and browsing). Object reuse does not
  190. necessarily protect against physical attacks on the storage medium,
  191. especially using sophisticated equipment and methods (e.g., taking a
  192. degaussed disk pack and trying to read residual information from the
  193. platters). Protection against physical attacks are addressed by A Guide to
  194. Understanding Data Remanence in Automated Information Systems [1].
  195.  
  196. 2.1 THE TCSEC OBJECT REUSE REQUIREMENT
  197.  
  198. The object reuse requirement first appears at class C2 (controlled access
  199. protection) and remains unchanged through class Al (verified protection).
  200. Although the requirement remains unchanged, the assurance of proper
  201. implementation increases as the class increases.
  202.  
  203.      The requirement is:
  204.      "All authorizations to the information contained within a storage
  205.      object shall be revoked prior to initial assignment, allocation or
  206.      reallocation to a subject from the TCB's pool of unused storage
  207.      objects. No information, including encrypted representations of
  208.      information, produced by a prior subject's actions is to be available
  209.      to any subject that obtains access to an object that has been
  210.      released back to the system." [2, page 15]
  211.      The term "storage object" is defined as:
  212.      "An object that supports both read and write accesses." [2, page 116]
  213.  
  214. The intent of the object reuse requirement is stated in the second
  215. sentence of the requirement above ("No information . . . produced by a
  216. prior subject's actions is to be available to any subject that obtains
  217. access to an object that has been released back to the system.")
  218. Rephrased, the purpose is to prevent a user who is allocated storage from
  219. accessing information put there by a previous user (ignoring, for the
  220. moment, explicit sharing). It also has the side effect of preventing a
  221. user from accessing information he puts into a storage object which is
  222. released to the system and then reallocated to him.
  223.  
  224. The requirement does not specify how to perform object reuse. It allows
  225. the designer some leeway in implementation. An obvious approach is to
  226. clear the storage, either upon deallocation or at allocation. Either
  227. method is acceptable in meeting the requirement, although there are
  228. tradeoffs to consider when making this choice. These issues are discussed
  229. later in this guideline. However, the designer can use an approach which,
  230. in effect, guarantees that the current "owner' of the storage can only
  231. access what he has written (e.g., preventing the reading beyond the
  232. end-of-file mark on a tape or in a disk block). Thus, the wording of the
  233. requirement recognizes the existence of different implementation
  234. strategies which accomplish the same end.
  235.  
  236. The first sentence of the requirement ("All authorizations to the
  237. information contained within a storage object shall be revoked....") means
  238. that once a storage object is given to a user, no subject can have access
  239. to the information which had been (or may still be) in that object. "All
  240. authorizations to the information contained within a storage object shall
  241. be revoked...." does not equate to "no subject can have access to that
  242. object's contents."Nor does it equate to revoking the authorization
  243. attributes (e.g., read, write, execute or append) assigned to information
  244. within a storage object. Why? Because if the vendor chooses to clear the
  245. storage object "prior to initial assignment, allocation or reallocation,"
  246. he has revoked "all authorizations to the information contained within
  247. [the] storage object." The focus is on the information ---not the storage
  248. object, not the attributes.
  249.  
  250. Does object reuse require the revocation of authorization attributes
  251. (e.g., read, write, execute or append) assigned to information within a
  252. storage object before it is assigned or allocated? It depends upon the
  253. particular implementation. Suppose a system uses memory segments with
  254. read, write, execute, and append attributes encoded into descriptors. If
  255. the information in the segment has been overwritten, there is no need to
  256. clear the descriptor unless the descriptor is considered part of the
  257. storage object or is itself a storage object which is released to the
  258. system. If the descriptor is considered a storage object or part of one,
  259. the attributes are information subject to the object reuse requirement. In
  260. both cases, the system could overwrite the old attributes with the new
  261. user's attributes. Or it could remove all attributes at deallocation.
  262. Either way, clearing the attributes only assures that granting access to a
  263. pooled storage object (in this case, a segment) does not implicitly give
  264. access to any data previously contained in the object. The information
  265. within the storage object must still be protected from the new owner.
  266.  
  267. Consider the case when a parent process initiates one or more subordinate
  268. processes, each having access to a file owned by the parent. Suppose the
  269. parent process deletes the file, and the file space (disk space, for
  270. example) is returned to the system's resource pool. Does proper object
  271. reuse also require the removal of the subordinate processes' access
  272. permissions to the file space upon deallocation? No, the requirement
  273. allows the system to leave the access set to the parent and/or the
  274. offspring processes, but only tO those proCesses. This guarantees that no
  275. other processes can access the information in the workspace until the
  276. proper procedures are followed. The requirement does not say "revoke
  277. authorizations at deallocation of storage objects" ---the requirement does
  278. not care if access is continued to be allowed to the process that caused
  279. the information to appear in the storage object before the object is
  280. reassigned. In other words, a subject could retain effective access to an
  281. object that had been returned to the "free pool" until that object was
  282. reallocated. (Note: We can think of no reason for, nor an actual
  283. implementation of, the above approach. We mention it only to make a
  284. point.)
  285.  
  286. Strictly speaking, the TCSEC object reuse requirement only applies to
  287. storage objects accessible by untrusted users of an AIS. However, the
  288. system designer may choose to ensure that internal Security relevant data
  289. structures are also properly cleared when reusing the internal object.
  290. This internal data structure clearing may occur via explicit action of the
  291. Trusted Computing Base (TCB), or it may be implicit via a complete
  292. overwrite with new TCB data.
  293.  
  294. An example which illustrates these issues is shown using Table 1. In this
  295. example, a segmented memory system provides for virtual storage to system
  296. users, using a segment map table (SMT) to maintain segment control
  297. information. Control of access to the storage object (i.e., memory
  298. segment) is effected by setting the appropriate access attributes to 1
  299. (access permitted) or 0 (access not permitted). Thus, an SMT description
  300. pertaining to a segment allocated to subject 51 for read/write access
  301. would reflect an attribute coding of R = 1, W = 1, IE = 0, and A = 0 (or
  302. 1100).
  303.  
  304. To satisfy the TCSEC object rouse requirement, the TCB must perform
  305. several different actions with respect to the segment and the SMT. The TCB
  306. must ensure that the segment is accessible only through known, TCB
  307. controlled, mechanisms such as the SMT. This assures the invocation of the
  308. TCB whenever an access decision must be made. The TCB must not permit
  309. access (by a new subject) to the segment until the segment is specifically
  310. allocated to a subject. The TCB must ensure the segment is clear (i.e.,
  311. contains no residual data) either by explicitly clearing the segment at
  312. allocation, clearing the segment at deallocation, or completely over-
  313. writing the segment with new data which the subject assigned the segment
  314. is permitted to access in the assigned mode. The TCB must also ensure the
  315. clearing of any residual control information (i.e., internal TCB data
  316. structure) before reallocating
  317.  
  318. Table 1:  SEGMENT MAP TABLE DESCRIPTION
  319. -----------------------------------------------------------------------------------
  320. Resident     Secondary                  Attribute                   Real
  321. Bit               Storage       Length                                 Address
  322. Address                                       R    W    E    A
  323. -----------------------------------------------------------------------------------
  324.                                                                                      
  325. -----------------------------------------------------------------------------------
  326.  
  327. the segment (if the control information is contained within a storage
  328. object). For example, if SMTs are considered storage objects, the TCB must
  329. ensure the clearing of any secondary SMT entries for a segment.
  330.  
  331. 2.2 PURPOSE OF THE OBJECT REUSE REQUIREMENT
  332.  
  333. As stated in section 1.3, the object reuse requirement is primarily
  334. designed to satisfy DoD Directive 5200.28 which requires that "Classified
  335. information and sensitive unclassified information shall be safeguarded at
  336. all times while in AIS's. Safeguards shall be applied so that such
  337. information is accessed only by authorized persons . . . .,` [4, page 3]
  338. Without this requirement, storage objects could become an information
  339. transfer channel between disjoint users as the system reassigns the
  340. objects upon user request. Assurance must be provided that no data in any
  341. storage object is accessible upon allocation of that object---even if the
  342. object is reallocated to the subject having had the most recent access
  343. right to it.
  344.  
  345. 2.3 APPLICABILITY OF THE OBJECT REUSE REQUIREMENT
  346.  
  347. The TCSEC object reuse requirement applies to all storage objects defined
  348. by an AIS that are protected by its TCB. The set of storage objects often
  349. referred to by a user may be (and likely are) different from the set of
  350. physical objects that the system must apply the object reuse requirement
  351. to. Whereas the user tends to focus on files or memory space, for example,
  352. the system implements these abstract or user-visible objects through the
  353. use of real objects such as disk blocks, memory pages or segments,
  354. records, bytes, and bits. When a user deletes a file, the system must
  355. translate the deallocation of the virtualized file into the deallocation
  356. of the corresponding control and data blocks that actually implement the
  357. file. A consequence of clearing the physical structures of residual data
  358. must be the clearing of the abstract object. Some common physical objects
  359. include those items listed in Table 2.
  360.  
  361.                      CPU Registers
  362.                 Floating Point Co-processor
  363.                        Registers
  364.                       Cache Memory
  365.                      Physical Memory
  366.                     Disk Blocks/Sectors
  367.                 Magnetic Tape Blocks/Sectors
  368.                        Floppy Disk
  369.  
  370. Table 2:  Common Physical Objects
  371.  
  372.  
  373. Storage objects are virtualized into objects that are visible to system
  374. users. Some common user objects are discussed in the following section,
  375. along with a description of the storage objects used to implement the
  376. object.
  377.  
  378. User Object - Object Implementation
  379.  
  380. Virtual Memory - Virtual memory is implemented using structures similar to
  381. the SMT shown in Figure 1, and physical memory segments and pages. The TCB
  382. maintains the structures defining the allocation of physical memory to
  383. users. Virtual segments and pages correspond to the physical segments and
  384. pages when the virtual memory is mapped into physical memory. Otherwise,
  385. the virtual memory resides in a temporary storage area of a physical disk
  386. drive or other secondary media.
  387.  
  388. Files - Files are typically an abstraction of virtual memory and disk
  389. blocks or sectors. When a file is not being accessed, it is commonly
  390. stored on a physical disk drive. The file is defined by a control block
  391. which stores the security critical information of the file and identifies
  392. the data blocks corresponding to the file. The control and data blocks are
  393. physically resident on the disk drive and are maintained by the TCB. When
  394. the file is being accessed, all or part of the file is mapped into the
  395. virtual address space (virtual memory) of the process (subject) accessing
  396. the file.
  397.  
  398. Directories - Directories are a special type of file that contains
  399. information regarding files. Directories reflect the names of files, and
  400. upon referring to a specific filename, the directory provides information
  401. to the TCB regarding the physical disk location of the file control block.
  402.  
  403. Virtual Tape Drives - Tapes drives are generally available to users in one
  404. of two fashions: allocating the entire tape drive to a user, or providing
  405. access to the tape drive through files (as if the tape drive were a disk
  406. drive). When a tape drive is completely allocated to a user, the user can
  407. utilize the tape drive in whatever manner desired, so long as the system
  408. security policy is adhered to. When a tape drive is accessed through
  409. files, the TCB maintains the information relevant to properly protect the
  410. files from unauthorized access. This requires the TCB to maintain control
  411. and data block information, just as is maintained for files on disk
  412. drives.
  413.  
  414. The object reuse requirement applies to the storage objects defined on an
  415. AIS system. But, as is seen in the previous discussion regarding the
  416. implementati0ff of virtual objects, it is essential to consider completely
  417. what storage objects are used to define the system's objects. By carefully
  418. considering this visible object - storage object correspondence the system
  419. designer ensures the fulfillment of the object reuse requirement in the
  420. AIS system.
  421.  
  422. Reference [5] proposes a reasonable methodology in conducting an object
  423. reuse study. This process is paraphrased here as a representative guide of
  424. how one might approach the problem during system development.
  425.  
  426. Step 1: Identify system objects by focusing on the system documentation
  427. that completely describes the TCB interface. This will contain the vast
  428. majority of the needed information. If a model exists for the system's
  429. security policy, the objects should be contained within it. If not, the
  430. remaining system documentation and its architecture should be useful in
  431. developing a list of object types.
  432.  
  433. Step 2: Determine what system level objects are used to create the
  434. user-visible objects identified in step 1 above. This is the critical step
  435. in the methodology and may represent the greatest amount of analysis. Done
  436. correctly, this step determines the bounds of the study. The analysis
  437. requires an indepth understanding of the specific operating system
  438. involved and knowledge of exactly how user objects are represented.
  439.  
  440. Step 3: For each identified component, determine how the system initially
  441. creates, recognizes, allocates, and deallocates it and returns it for
  442. system use. Inherent in this procedure is the need to verify that the
  443. requirements originally stated for object reuse processing are met for
  444. initialization/allocation or allocation/deallocation, and that the two are
  445. equal. The remaining steps provide this assurance.
  446.  
  447. Step 4: Examine each system object's initialization routine to ensure that
  448. the requirements of object reuse are being met when an object is added to
  449. the system. That is, ensure it contains no residual information.
  450.  
  451. Step 5: Examine the allocation/deallocation routines to ensure that the
  452. requirement to remove residual information has been met.
  453.  
  454. Step 6: Identify all the system operations used to allocate/deallocate
  455. objects and ensure that each invokes the object reuse mechanisms necessary
  456. to provide the required protection listed in steps three through five
  457. above. (Note ---do not forget operations that "only" extend, shorten, or
  458. move objects, as these are also allocation/deallocation operations worthy
  459. of scrutiny.)
  460.  
  461. Step 7: Ensure that the free pool of objects itself is protected so that
  462. unpurged objects cannot be accessed and read prior to their reallocation.
  463. If the system chooses to implement object reuse upon reallocation, there
  464. may be a lengthy period of vulnerability where the object with residual
  465. information is stored in the free pool. The free pool must guarantee
  466. protection of the information so it remains secure until purged prior to
  467. reallocation.
  468.  
  469. Object reuse is essential for all storage objects available in an AS, but
  470. an examination of those objects listed in Table 2 reveals that not all
  471. such objects are always under TCB control. For example, the TCB can
  472. completely control the ability to access data stored in physical memory
  473. but cannot protect data stored on magnetic tapes and floppy disks which
  474. have been removed from the system. These removable media are subject to
  475. mistakes made by operators, and the media may be removed by system users
  476. and accessed using off-site equipment. In either of these cases, the TCB
  477. does not protect the data stored on the media and must rely to some extent
  478. upon physical, procedural, or other controls to ensure that data is not
  479. inappropriately accessed or altered. These controls must be discussed in
  480. the Trusted Facility Manual for the system. These classes of objects are
  481. depicted in Figure 2, where the cache and main memory is normally always
  482. under TCB control, the non- removable (fixed) media is usually under TCB
  483. control, and removable media is often not under TCB control.
  484.  
  485. 2.4 SUMMARY
  486.  
  487. Object reuse mechanisms ensure system resources are allocated and
  488. reassigned among authorized AIS users in a way which prevents the leak of
  489. sensitive information. Object reuse does not necessarily protect against
  490. physical attacks on the storage medium. Without specifying how to do it,
  491. the TCSEC object reuse requirement applies to classes C2 through A1, with
  492. increasing assurance of proper execution as the class increases. The
  493. requirement concerns storage objects accessible by untrusted users of an
  494. AS; it covers all TCB protected storage objects of an AIS. However, the
  495. system designer may clear internal security relevant data structures also.
  496. The system must translate the deallocation of virtualized files into the
  497. deallocaton of the corresponding control and data blocks actually
  498. implementing the files. A result of clearing the physical structures is
  499. the clearing of the abstract object. All storage objects require object
  500. reuse, but all objects are not always under TCB control. Storage objects
  501. may or may not correspond to the objects visible to users. Additionally,
  502. some storage objects may need administrative, procedural support to ensure
  503. the performance of object reuse.
  504.  
  505. Figure 2: STORAGE OBJECT CONTROL
  506.  
  507. Removable Media
  508. Fixed Media
  509. Main Memory - Real & Virtual
  510. Cache Memory
  511.  
  512. Fully Under TCB Control
  513. Usually Under TCB Control
  514. Often Not Under TCB Control
  515.  
  516. 3 IMPLEMENTATION CONSIDERATIONS FOR OBJECT
  517. REUSE
  518.  
  519. 3.1 CONSIDERATIONS FOR PRIMARY STORAGE OBJECTS
  520.  
  521. Automated Information Systems (ASS) rely upon a collection of primary
  522. memory to support the execution of programs. Object reuse on primary
  523. storage objects is under the control of the AIS's TCB. The TCB is directly
  524. responsible for allocating the primary storage objects, placing data into
  525. the objects, and determining when to perform object reuse. The physical
  526. memory provides virtual memory for user program execution. When the
  527. physical memory is allocated to a user, the TCB must ensure that the
  528. memory page contains no residual data. This can be done by purging the
  529. memory page with an overwriting technique. For efficiency purposes the
  530. designer may wish to use a procedure that overwrites and destroys residual
  531. data with the new data being swapped in on behalf of a new subject (in
  532. lieu of overwriting with a fixed or random pattern of bits). An important
  533. part of this technique is for the system designer to demonstrate that, in
  534. all circumstances, the residual data is overwritten prior to the
  535. allocation of memory to the incoming subject. Since page frames in main
  536. memory are of fixed size and data being swapped in or out is not likely to
  537. be an exact fit, it is incumbent upon the designer to ensure all physical
  538. page frame space is overwritten (e.g., using a fixed or random pattern of
  539. zeros and/or ones to purge the memory from the end of the data being
  540. swapped in to the end of the physical page frame).
  541.  
  542. One must not forget to handle registers. A common error made by system
  543. designers is to forget to clear registers that are new to the product or
  544. infrequently used by system programmers (e.g., floating point co-processor
  545. registers).
  546.  
  547. Cache memory may present a slightly different set of considerations. If a
  548. file is deleted by its owner and portions of the file are retained in
  549. cache memory, a later request for information contained in the cache may
  550. be honored even though the file no longer exists (unless proper design
  551. safeguards are established). This is especially true if the second request
  552. occurs very soon after file deletion.
  553.  
  554. When primary memory is removed from the system (e.g., for maintenance or
  555. repair), it is subject to the same considerations discussed later for
  556. removable media.
  557.  
  558. 3.2 FIXED MEDIA METHODS
  559.  
  560. In addition to primary storage objects, many AISs rely on fixed media to
  561. contain data for temporary (e.g., buffer or inactive page frame) or long
  562. term storage (e.g., file retention). This media may be a fixed disk, the
  563. memory in a terminal, and so on. The system designer must identify all
  564. physical objects (i.e., blocks, bytes, words) that reside on this media
  565. which are used to represent the more abstract objects the user considers
  566. (i.e., files, records, programs).
  567.  
  568. Data is typically stored and retrieved from these kinds of media through
  569. the use of several control mechanisms ---each of which might be a storage
  570. object in its own right. For example, if a fixed disk or drum is used to
  571. provide a backing store capability for a paging system, there are likely
  572. several objects associated with the fixed media that will have object
  573. reuse requirements. The physical data blocks themselves must be paged
  574. between usages, but in addition to this obvious requirement, one must also
  575. consider purging the associated entry for the page in the system's page
  576. management table and also purging directory information that resides on
  577. the media itself.
  578.  
  579. In all cases, the TCB's ability to fully assure object reuse processing
  580. must be demonstrated. This is normally accomplished as discussed earlier
  581. in this guideline, through the identification of all objects (and their
  582. components) and an examination of each of the routines that control
  583. initialization, allocation, and deallocation. As with primary memory,
  584. fixed media which is removed from the system is subject to the same
  585. considerations discussed later for removable media.
  586.  
  587. To ensure the system is started in an initially-secure state, the fixed
  588. reusable medium must be initialized to an appropriate condition. Clearly,
  589. the extent Of the initialization depends on the type of fixed storage
  590. objects involved: main memory storage units must be initialized each time
  591. a trusted system is started up, while longer-term storage (e.g., disks)
  592. would have to be initialized only on first startup or perhaps as part of a
  593. recovery process after a system failure.
  594.  
  595. One can design systems and their attached devices (printers, terminals,
  596. etc.) that have residual memory to be cleared with a command issued by the
  597. main processor's TCB. However, for open architectures, there is little
  598. that can be done from a TCB to (re)initialize the equipment for
  599. reallocation. One technique that works with some equipment is to power it
  600. off, then on. However, such practice is hard on the equipment and is
  601. sometimes not possible without modifying the equipment, or providing
  602. TCB-controlled power (outlets) for the equipment. The more likely approach
  603. for connected terminal equipment having its own processing capability is
  604. to ensure the terminal device itself enforces the object reuse
  605. requirement.
  606.  
  607. 3.3 REMOVABLE MEDIA METHODS
  608.  
  609. This section discusses some possible implementation approaches that could
  610. be the basis for an object reuse mechanism for removable (or removed)
  611. media. Removable media represents a special case because it can physically
  612. be removed from the system. This means that it no longer comes under TCB
  613. controls and thus the automated object reuse procedures must be augmented
  614. by physical and procedural controls described in the Trusted Facility
  615. Manual.
  616.  
  617. First, any of the methods used for fixed medium systems can be used. As in
  618. the fixed storage class, it is important to overwrite in complete physical
  619. allocation units (e.g., sectors, clusters, blocks, tracks, cylinders). The
  620. actual allocation units are operating system dependent.
  621.  
  622. As an example, one logical method may apply to tape storage. If the system
  623. being rated has no 1/0 commands accessible to users that can force the
  624. reading of a tape beyond an end-of-file (IEOF) mark, the TCB can write an
  625. EOF mark at the beginning of all `scratch' tapes. Of course, the question
  626. is what informs the TCB that a scratch tape is being introduced to the
  627. system. As will be seen below, this is a specific instance of a more
  628. general question of how to reintroduce removable media to the control of
  629. the TCB.
  630.  
  631. In general, overwriting storage is feasible if the amount of storage to be
  632. overwritten is relatively small, and the overwriting is relatively fast.
  633. Thus, for most `main memory' usage, overwriting is feasible. It is also
  634. feasible for diskettes and other small removable disk media, such as disk
  635. cartridges, especially if a multiprogrammed daemon owned by the TCB
  636. performs the overwriting.
  637.  
  638. If real-time overwriting is not feasible (a case for most large removable
  639. storage media), then some off-line method is indicated. Only two physical
  640. methods appear suitable: degaussing (demagnetizing) and independent
  641. off-line overwriting. This guideline cannot recommend any specific
  642. degausser, although Government- approved degaussers are available. One
  643. commercially available model can completely degauss up to 10 tapes, or a
  644. removable disk, in one operation (which takes less than 30 seconds).
  645. Degaussers that have been approved to degauss classified tapes or disks
  646. are listed on the NSA Degausser Products List [3]. The actual procedures
  647. used for degaussing are beyond the scope of this guideline because they
  648. again are not processes a TCB can control.
  649.  
  650. On-line overwriting is a method the TCB could control, possibly by not
  651. releasing a tape for removal or reallocation until its entire length is
  652. overwritten. However, the performance impact of using on-line overwrite
  653. alone is so onerous that it is not a practical solution. Perhaps an
  654. efficient method of handling off-line overwrite is to dedicate a small
  655. computer system to that function, with one or more tape or disk drives to
  656. hold the medium being prepared for reuse. If off-line overwriting is done,
  657. there is a lingering concern over whether the overwrite is complete. Even
  658. if off-line overwriting is an extension of the object reuse mechanism, one
  659. may have to verify the overwrite mechanism always overwrote the entire
  660. medium.
  661.  
  662. 3.4 MANAGEMENT OF REMOVABLE MEDIA
  663.  
  664. The problem with off-line object reuse preparation is not with the method
  665. used to eliminate the residue from previous use, but the management of the
  666. reintroduction to the TCB of media that was degaussed or overwritten. From
  667. the TCB's perspective, it must know it is allocating an object (storage
  668. medium) that has been properly processed for reuse. In the case of the
  669. fixed media, the TCB itself largely has total control of the process, and
  670. the design verification process assures that the TCB only allocates from
  671. properly processed reusable objects.
  672.  
  673. With removable media, the TCB must be informed in some manner that a new
  674. or reprocessed (degaussed or off-line overwritten) storage object is being
  675. introduced into the allocable storage object pool. Further, since there
  676. may be an arbitrary time lapse between a medium being accepted for reuse
  677. and its actual reuse, the TCB needs some way to identify removable storage
  678. objects that have been accepted for reuse. This is certainly a candidate
  679. for incorporation into the system's Trusted Facility Manual.
  680.  
  681. Clearly, something like the ". . . mechanism by which the TCB and an
  682. authorized user reliably communicate . . "to designate the single level of
  683. information being imported or exported via single-level communications or
  684. 1/0 devices could be adapted to allow an operator to reliably inform the
  685. TCB that a new or reprocessed removable medium is being reintroduced into
  686. the pool of allocable storage objects. At the lower classes the mechanism
  687. might be the operator's console. At higher level classes, it might be a
  688. variant on the Trusted Path mechanisms between users and the TCB.
  689.  
  690. How the TCB identifies the removable storage object as being accepted for
  691. reuse is again a detail that is very system-dependent. It could range from
  692. TCBreadable physical identification numbers recorded on the medium being
  693. entered into a TCB-managed and -controlled inventory file, to the TCB
  694. magnetically (or optically) recording on the medium an encrypted serial
  695. number which it also keeps in the inventory of available allocable storage
  696. objects.
  697.  
  698. If degaussing is used as the off-line process to prepare a removable
  699. storage object for reuse, it is likely the operating system must prepare
  700. it for use by writing timing tracks or sector addresses and by performing
  701. other low-level formatting of the medium without which the medium can not
  702. be used by the system. This may be sufficient assurance that the TCB has a
  703. chance to identify the storage object. However, the TCB must still
  704. maintain the inventory of allocable storage objects and assure that only
  705. previously accepted storage objects are allocated. As a consequence, it is
  706. recommended that formatting of degaussed media is done as a separate
  707. function not associated with reentering the medium into the pool of
  708. allocable storage objects, and the acceptance and identification process
  709. be completely separate from any media preparation required by the system.
  710.  
  711. While there is no requirement to apply such a technique to all removable
  712. media, the notion of economy of mechanism suggests it would be easier to
  713. understand if all removable reusable storage is handled in the same way.
  714.  
  715. 3.5 SUMMARY
  716.  
  717. An AIS's TCB controls object reuse on storage media (primary storage,
  718. fixed media, and removable media). Demonstrate the TCB's ability to assure
  719. proper object reuse by identifying all physical objects on this media
  720. which represent abstract user objects and by examining the routines
  721. controlling initialization, allocation, and deallocation. To ensure an
  722. initially-secure state for the system, initialize the media to an
  723. appropriate condition. Physical and procedural controls augment the
  724. automated object reuse procedures of storage media (even primary memory
  725. and fixed media) removed from the system and, thus, from TCB controls.
  726.  
  727. If real-time overwriting of removable storage is not practical, overwrite
  728. it off-line or degauss it. Dedicating a small computer system to overwrite
  729. storage off-line is an efficient method. When degaussing is used, do not
  730. connect media formatting with reentering the media into the pool of
  731. allocable storage objects. Separate the acceptance and identification
  732. process from media preparation. Handle all removable storage the same way.
  733. Incorporate this into the system's Trusted Facility Manual.
  734.  
  735. Managing the reintroduction of media to the TCB is a problem with off-line
  736. object reuse preparation. The TCB must know it is ailocating a properly
  737. processed object. For fixed media, the TCB largely controls the process,
  738. and design verification assures that the TCB allocates properly processed
  739. objects. With removable media, the TCB is told when new or reprocessed
  740. storage objects are put into the storage object pool. How this is done is
  741. very system-dependent.
  742.  
  743. GLOSSARY
  744.  
  745. ASSURANCE
  746.  
  747.      A measure of confidence that the security features and architecture
  748.      of an automated information system accurately mediate and enforce the
  749.      security policy.
  750.  
  751. AUTHORIZATION
  752.  
  753.      The granting of access rights to a user, program, or process.
  754.  
  755. BROWSING
  756.  
  757.      The act of searching through storage to locate or acquire information
  758.      without necessarily knowing of the existence or the format of the
  759.      information being sought.
  760.  
  761. OBJECT
  762.  
  763.      A passive entity that contains or receives information. Access to an
  764.      object potentially implies access to the information it contains.
  765.      Examples of objects are: records, blocks, pages, segments, files,
  766.      directories, directory trees, programs, bits, bytes, words, fields,
  767.      processors, video displays, keyboards, clocks, printers, and network
  768.      nodes.
  769.  
  770. SCAVENGING
  771.  
  772.      Searching through residue (i.e., objects and/or their components) to
  773.      acquire unauthorized data.
  774.  
  775. STORAGE ELEMENT
  776.  
  777.      The hardware (e.g., main memory, disk sectors, magnetic tape) used to
  778.      store data that is accessible to a user's programs.
  779.  
  780. STORAGE OBJECT
  781.  
  782.      An object that supports both read and write accesses.
  783.  
  784. SUBJECT
  785.  
  786.      An active entity, generally in the form of a person, process, or
  787.      device, that causes information to flow among objects or changes the
  788.      system state. Technically, a process/domain pair.
  789.  
  790. TRUSTED COMPUTING BASE (TCB)
  791.  
  792.      The totality of protection mechanisms within a computer system
  793.      ---including hardware, firmware, and software ---the combination of
  794.      which is responsible for enforcing a security policy. A TCB consists
  795.      of one or more components that together enforce a unified security
  796.      policy over a product or system. The ability of a TCB to correctly
  797.      enforce a security policy depends solely on the mechanisms within the
  798.      TCB and on the correct input by system administrative personnel of
  799.      parameters (e.g.1 a user's clearance level) related to the security
  800.      policy.
  801.  
  802. REFERENCES
  803.  
  804. 1. A Guide to Understanding Data Remanence in Automated
  805.      Information Systems, NCSC-TG-025, National Computer Security
  806.      Center, September 1991. 
  807. 2.Department of Defense Trusted Computer System Evaluation
  808.      Criteria, DoD 5200.28-STD, National Computer Security Center,
  809.      December 1985. 
  810. 3."NSA Degausser Products List," Information Systems Security
  811.      Products and Services Catalogue, National Security Agency,
  812.      published quarterly. 
  813. 4.Security Requirements for Automated Information Systems
  814.      (AISs), DoD Directive 5200.28, Department of Defense, 21 March 1988.
  815. 5.Wichers, David R., "Conducting an Object Reuse Study,"
  816.      Proceedings of the 13th National Computer Security Conference, VoI.
  817.      II, pp. 738-747. 
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.