home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / std_unix / volume.17 / text0011.txt < prev    next >
Encoding:
Text File  |  1990-01-06  |  12.2 KB  |  293 lines

  1.  
  2.  
  3.             An Update on UNIX* and C Standards Activities
  4.  
  5.                              August 1989
  6.  
  7.                    Jeffrey S. Haemer, Report Editor
  8.  
  9.                  USENIX Standards Watchdog Committee
  10.  
  11. IEEE 1003.6: Security Extensions Update
  12.  
  13. Ana Maria de Alvare (anamaria@lll-lcc.llnl.gov) reports of the April,
  14. 1989 meeting:
  15.  
  16. P1003.6 covered these global issues at the five-day Minneapolis
  17. meeting:
  18.  
  19.   1.  Supplements to 1003.1 will address portability, data interchange
  20.       format, and symbolic links. This means 1003.6 must also consider
  21.       those areas.
  22.  
  23.   2.  1003.6 would like to define a system variable that tells what
  24.       security policies are allowed on the system, and a function that
  25.       returns which security-related attributes (e.g., MAC, ACL) are
  26.       currently in operation.  Such changes would need to be made in
  27.       collaboration with 1003.1.
  28.  
  29.   3.  Other pieces of 1003.1 and its supplements may conflict with
  30.       security extensions.  A short-term subgroup was proposed to
  31.       review these documents and propose additions or changes.  1003.6
  32.       is looking for volunteers for this work.  [Ed.  -- If you have,
  33.       or can imagine, the orange book and the ugly green book side-
  34.       by-side on your bookshelf, now's the time you should work to
  35.       insure that only their colors clash.  The chair of 1003.6 is
  36.       Dennis Steinauer (steinauer@ecf.ncsl.nist.gov), who, we believe,
  37.       would be happy to hear from you if you're willing to help.]
  38.  
  39.   4.  Two members of the networking group (1003.8) joined 1003.6 for
  40.       half a day to list and explain their areas of concern:
  41.       transparent file access, authentication at mount time, setuid
  42.       programs, file format, local id contents, and who does the
  43.       audit.  These issues were scheduled to be re-visited at the San
  44.  
  45. __________
  46.  
  47.   * UNIX is a registered trademark of AT&T in the U.S. and other
  48.     countries.
  49.  
  50. Jeffrey S. Haemer, Editor          USENIX Standards Watchdog Committee
  51.  
  52.  
  53. August 1989 Standards Update    - 2 - IEEE 1003.6: Security Extensions
  54.  
  55.       Jose meeting in July in a joint meeting of the two groups.
  56.  
  57.   5.  Charlie Testa gave a status report on TRUSIX.  The TRUSIX
  58.       working group responded to Tom Parenty's paper, which summarized
  59.       the TRUSIX efforts.  The members felt compelled to clarify
  60.       certain sections that they believed misconstrued their real
  61.       objective: the creation of a trusted UNIX operating system.
  62.       This response is also published in the December, 1988, Data
  63.       Security Letter Journal.
  64.  
  65.       There are serious conflicts and points of contention between
  66.       POSIX and TRUSIX.  POSIX is worried that systems conforming to
  67.       TRUSIX recommendations will get preferential treatment during
  68.       product evaluation, that vendors who currently plan only Class
  69.       B2 systems or below are excluded from TRUSIX, and that
  70.       participants in TRUSIX share proprietary information.  TRUSIX
  71.       takes the position that the marketplace should be the final
  72.       judge.  TRUSIX will be POSIX compliant, and will make no attempt
  73.       to force vendors to be both POSIX and TRUSIX compliant.  If
  74.       customers force a de-facto standard of dual compliance for even
  75.       non-DOD applications, so be it.
  76.  
  77.       TRUSIX's ACL proposal will be delivered to the IEEE at the July
  78.       meeting.  The proposal is only a guide, and it will not be
  79.       written in a formal specification language as a favor to the
  80.       reader.
  81.  
  82.       TRUSIX's audit subgroup is trying to follow both POSIX and
  83.       X/Open efforts in this area.  Their subgroup is focusing on
  84.       pre-selection, in contrast to the 1003.6 focus on post-
  85.       selection, and they will review a token-based scheme at their
  86.       next meeting.
  87.  
  88.   6.  At the previous meeting, a common descriptive top-level
  89.       specification language (DTLS) was proposed.  For the moment,
  90.       this language will form an appendix to the draft, and will be
  91.       used as an internal tool to let the group define unambiguous
  92.       security interfaces.  Every subgroup of 1003.6 will provide
  93.       descriptions of interfaces in both English and DTLS.  Steve
  94.       Sutton will be the chair of the DTLS team, and will work in
  95.       conjunction with the technical editor of the draft.
  96.  
  97. The Security Working group is split onto separate groups for audit,
  98. discretionary access control (DAC), mandatory access control (MAC) and
  99. privileges.  Each subgroup gave a summary report at the end of the
  100. week and some were able to give a first-cut delivery schedule.  The
  101. following is a short summary of each group's efforts.
  102.  
  103. Jeffrey S. Haemer, Editor          USENIX Standards Watchdog Committee
  104.  
  105.  
  106. August 1989 Standards Update    - 3 - IEEE 1003.6: Security Extensions
  107.  
  108. AUDIT:
  109.  
  110. The scope of the audit group encompasses audit definition, auditable
  111. events, audit trail contents, and audit trail access and control.  The
  112. group will also define a portable audit-trail data representation and
  113. focus on post-processing event classes.
  114.  
  115. Audit records will include process identification, audit id, effective
  116. user id, effective group id, media addresses, MAC labels and privilege
  117. information.  In San Jose, the audit group will try to identify all
  118. token types, define the audit id, propose some changes to the 'seek'
  119. function, pursue event classes, and review and merge the DTLS
  120. interface descriptions with the English sections.
  121.  
  122. DAC
  123.  
  124. The DAC group is almost done with its rationale section.  One question
  125. this time around was how to pass access mechanisms based on DAC across
  126. the network.  Currently, file ownership is the first access check; on
  127. networked systems, this can lead to spoofing, particularly when root
  128. tries to access files on other systems.
  129.  
  130. Another hot issue was access functions.  The consensus is that an
  131. access function to an opaque DAC (i.e., one that prevents knowledge of
  132. the structure) should replace the use of stat(),chmod(),stat() or
  133. locking mechanisms for controlled file access.  The function will not
  134. replace chmod(), stat() or permission bits; however it will define
  135. operations that will allow applications to continue to work correctly
  136. in the face of ACLs.
  137.  
  138. MAC
  139.  
  140. Issues addressed here come from the MAC requirement that all system
  141. objects be labeled with security levels (e.g., CONFIDENTIAL, SECRET,
  142. TOP-SECRET).  Two proposals were on the table -- one from Addamax, the
  143. other from Olin Sibert -- but no strong consensus was reached.
  144. Miscellaneous comments on the issues discussed:
  145.  
  146.   1.
  147.  
  148.          o+ Downgrading (of security levels)
  149.  
  150.          o+ How should it be done?
  151.  
  152.          o+ Must the old label dominate the new one?
  153.  
  154.          o+ Does downgrading need to be strictly controlled?
  155.  
  156. Jeffrey S. Haemer, Editor          USENIX Standards Watchdog Committee
  157.  
  158.  
  159. August 1989 Standards Update    - 4 - IEEE 1003.6: Security Extensions
  160.  
  161.          o+ What about upgrading?
  162.  
  163.   2.  Directory labels.
  164.       mkdir should be allowed to label directories on creation, to
  165.       permit portable, level-hierarchy-dependent applications.
  166.  
  167.   3.  File locking.
  168.       The standard should address locks and may consider them as
  169.       objects.
  170.  
  171.   4.  "Write-up" appends.
  172.       Writing to a file at a level above you is known as "write-up".
  173.       Processes can write to files that they can't read.  At first
  174.       blush, this seems analogous to standard UNIX, which allows files
  175.       with permissions --w--w--w-.  What MAC adds is the prohibition
  176.       that the process even know if the write succeeds.  Because
  177.       appending to such a file provides no way to assure that the
  178.       write succeeded, requested file, the question of whether to
  179.       allow such write-ups was raised and discussed.
  180.  
  181.   5.  Change of file level with open file connections.
  182.       UNIX does not expect open connections to break.  (An exception
  183.       is /dev/tty* on 4.3BSD, which can be checked for open connection
  184.       breaks.) Since /dev/tty* are special files and 1003.1 doesn't
  185.       address special files it was argued that 1003.6 need not either,
  186.       but this issue will be discussed further in San Jose.
  187.  
  188.   6.  Open tranquillity.
  189.       The tranquillity property states that a resource should not be
  190.       in active use during changes to its attributes.  (See also issue
  191.       #5 above.) It was stressed that POSIX should be defining states
  192.       and mechanisms that are as safe as possible, obvious to
  193.       implement, deterministic, and clear.  Only privileged processes
  194.       should be able to change the MAC label of a file object.
  195.  
  196.   7.  Replication or Recalculation?
  197.       Replication means copying current properties across from one
  198.       label to another.  Recalculation means re-evaluating the
  199.       situation, then assigning properties or attributes needed for
  200.       each file to work as labeled.  The consensus was that
  201.       recalculation is needed in the standard, but there was no
  202.       consensus on how either recalculation replication should occur.
  203.  
  204. Jeffrey S. Haemer, Editor          USENIX Standards Watchdog Committee
  205.  
  206.  
  207. August 1989 Standards Update    - 5 - IEEE 1003.6: Security Extensions
  208.  
  209.   8.  Multilevel directories
  210.       A "multilevel directory" is a directory with files at different
  211.       levels (e.g., both TOP SECRET and CONFIDENTIAL).  Should a
  212.       multilevel directory feature be available for general use?
  213.       Should it be part of the standards?  If so, operations on
  214.       multilevel directories would be restricted and functions to be
  215.       able to create, check for existence, query for directory name
  216.       would be required.  These directories would inherit their DAC
  217.       from their parent.
  218.  
  219.       The directory that stores files the user can see at the current
  220.       time, as determined by the label at request time, is the "access
  221.       hidden directory".  An open question is whether access to such a
  222.       directory should be controlled by process privilege or the
  223.       pathname syntax.
  224.  
  225.   9.  Text Format
  226.       Two proposals were put forward on text format, but only one was
  227.       discussed because of time constraints.  Despite this, the group
  228.       resolved that naming should be site-specific, but names should
  229.       be unique and order-independent.  Furthermore, a label should be
  230.       interpretable and unique.  One major problem was that the
  231.       characters suggested for hidden directories were outside the
  232.       constrained character set provided by 1003.1 -- [a-z][A-Z][0-9]
  233.       and a very limited set of punctuation characters.
  234.  
  235.  10.  System High/Low?
  236.       This government concept is used a lot in discussions of secure
  237.       systems.  It was put on the agenda for the July, San Jose
  238.       meeting.
  239.  
  240.  11.  Other Issues
  241.       Should the standard assure a non-decreasing directory hierarchy?
  242.       In other words, should subdirectories always have at least as
  243.       high a level as the parent?  Should the standard define level
  244.       ranges such as system high?  Should the standard define a
  245.       process clearance range? (Clearance only defines how to specify
  246.       an error return that the system is allowed to give.)
  247.  
  248. PRIVILEGES
  249.  
  250. The group reviewed interface functions defined at the previous
  251. meeting, and agreed on all of them except 'exec()', which poses
  252. unresolved problems about inheritance of privileges.  The group
  253. expects to finish this in July.
  254.  
  255. Some of the functions defined so far are: is_effective(p),
  256.  
  257. Jeffrey S. Haemer, Editor          USENIX Standards Watchdog Committee
  258.  
  259.  
  260. August 1989 Standards Update    - 6 - IEEE 1003.6: Security Extensions
  261.  
  262. make_effective(p), make_ineffective(p), is_inheritable(p),
  263. make_inheritable(p), make_not_inheritable(p), is_permitted(p),
  264. relinquish(p), make_effective_if_inherited(p), and
  265. make_all_ineffective(p) -- all related to querying the process
  266. privilege state.
  267.  
  268. Old goals were revised and new goals added, including: support for old
  269. binaries, support for new binaries implementing true least privileges,
  270. acquisition of effective privilege following exec(), prevention of
  271. some programs from inheriting privileges, and unsetting of privileges
  272. on exit from signal handlers.
  273.  
  274. Other issues included:
  275.  
  276.   1.  Privilege inheritance
  277.       When is it needed?
  278.  
  279.   2.  Forbidden privilege
  280.       Should a flag be available to forbid a process to gain a
  281.       privilege?
  282.  
  283.   3.  Privilege System Variable
  284.       Should the standard define a system variable to set privileges
  285.       at installation time?
  286.  
  287. Jeffrey S. Haemer, Editor          USENIX Standards Watchdog Committee
  288.  
  289.  
  290. Volume-Number: Volume 17, Number 14
  291.  
  292.  
  293.