Outline for February 9, 2003

Reading: text, §6.1-6.2

Discussion Problem

"Actually, Socrates was an organizer. The function of an organizer is to raise questions that agitate, that break trhrough the accepted pattern. Socrates, with his goal of 'know thyself,' was raising the internal questions within the individual that are so essential for the revolution which is external to the individual. So Socrates was carrying out the first stage of making revolutionaries. If he had been permitted to continue raising questions about the meaning of life, to examine life and refuse the conventional values, the internal revolution would soon have moved out into the political arena. Those who tried him and sentenced him to death knew what they were doing."1

How might you apply this philosophy to computer security?

Outline for the Day

  1. Integrity models
    1. Requirements
      1. Users won't write their own programs, but will use existing programs, databases, etc.
      2. Programmers develop and test programs on non-production systems
      3. Installing a program from the development system requires a special process
      4. This process must be controlled and auditable
      5. System managers must be able to access the system state and the system logs
    2. Separation of duty
    3. Separation of function
    4. Auditing
  2. Biba: mathematical dual of BLP
    1. P may read O if L(P) ≤ L(O) and C(P) ⊆ C(O), and P may write O if L(O) ≤ L(P) and C(O) ⊆ C(P)
    2. Combined with BLP: continue example
  3. Clark-Wilson
    1. a. Theme: military model does not provide enough controls for commercial fraud, etc. because it does not cover the right aspects of integrity
    2. "Constrained Data Items" (CDI) to which model applies, "Unconstrained Data Items (UDIs) to which no integrity checks applied, "Integrity Verification Procedures" (IVP) verify conformance to the integrity spec when IVP is run, "Transaction Procedures" (TP) take system from one well-formed state to another
    3. Certification and enforcement rules:
      C1. All IVPs must ensure that all CDIs are in a valid state when the IVP is run
      C2. All TPs must be certified as valid; each TP is assocated with a set of CDIs it is authorized to manipulate
      E1. The system must maintain these lists and must ensure only those TPs manipulate those CDIs
      E2: The system must maintain a list of User IDs, TP, and CDIs that that TP can manipulate on behalf of that user, and must ensure only those executions are performed.
      C3. The list of relations in E2 must be certified to meet the separation of duty requirement.
      E3. The sysem must authenticate the identity of each user attempting to execute a TP.
      C4. All TPs must be certified to write to an append-only CDI (the log) all information necessary to resonstruct the operation.
      C5. Any TP taking a UDI as an input must be certified to perform only valid transformations, else no transformations, for any possible value of the UDI. The transformation should take the input from a UDI to a CDI, or the UDI is rejected (typically, for edits as the keyboard is a UDI).
      E4. Only the agent permitted to certify entities may change the list of such entities associated with a TP. An agent that can certify an entity may not have any execute rights with respect to that entity

1 Saul Alinsky, Rules for Radicals, Random House, Inc., New York, NY (1972) pp. 72-73.


Here is a PDF version of this document.