Policies And Models¶
Multilevel security (MLS)¶
- Form of mandatory access control (1970s)
- Policy from the Department of Defense
- Protection system consists of multiple levels of security
- Later formalized by Bell-LaPadula
- Goal: Prevent information leakage
- Information flow can be vertical and horizontal
- Vertical: Across different security levels
- Horizontal: Across different objects/subjects inside a security level
- Policy
- Prevent subject from reading data that is more secret
- Prevent subject from writing data to less secret objects
- Implementations:
- Multics
- Scomp
Principle of Least Privilege¶
- Design principle for information security (less formal)
- Saltzer (1975)
- A Protection mechanism should force every process to operate with the minimum privileges needed to perform its task.
- See also:
- Principle of Psychological Acceptability
- Interface should be signed for ease of use. Users should automatically apply protection mechanisms correctly
- Principle of Fail Safe Defaults
- Unless a subject is given explicit access to an object, it should be denied access to that object.
- Principle of Psychological Acceptability
- Implementation
- Goal: Determine required permissions of a program
- Interactive policy generation
systrace: Monitor used syscalls (requires benign environment, see kRazor)audit2allow: SELinux command adding denied permissions to policy
- Advantages
- Functional definition of tasks (e.g., backup software should only perform backup-related tasks)
- Unnecessary permissions lead to problems (see Confused Deputy Attack)
- Disadvantage
- Task permissions can conflict with security (required permissions but insecure)
- Hard to determine whether a permission makes system insecure
- Verification
- No verifiable because it is based on functionality (undecidable)
Information flow models¶
- Focus: Authorize the flow of information between subjects and objects (read + write)
- Models:
- Secrecy:
- Denning’s Lattice
- Bell-LaPadula (MLS)
- Integrity:
- Biba
- LoMAC
- Clark-Wilson
- Secrecy/Integrity:
- Caernarvon
- Chinese Wall
- Secrecy:
- Advantage
- No false negatives (attack requires illegal information flow, which is prohibited)
- Defines data security requirements
- Defines functional security requirements
- Disadvantage
- Function may conflict with security (e.g., secrecy)
- Hard to find exceptions (required permissions for function but permission is currently denied)
- Verification:
- Policy is based of security
- => Verifiable
Integrity¶
- Definition (BSI):
- “Korrektheit (Unversehrtheit) von Daten und der korrekten Funktionsweise von Systemen”
- Software integrity
- Software behaves as specified (do not depend on low-integrity input)
- Static: Verified source code
- Dynamic: Software stays in allowed states
- Data integrity: Assurance of accuracy and consistency of data over its entire life-cycle
- Dependency data integrity and software integrity
- Accuracy
- Reliability
- Consistency
- What is necessary to enforce integrity?
- Types of integrity (bias):
- Functional: Principle of Least Privilege
- Security: Information flow
- Important: Design a mandatory protection system for integrity (covering function and security)
Information Flow for Integrity¶
Biba model¶
- Biba (1975)
- Information Flow Model
- Focus: Integrity (not confidentiality)
- Do not depend on data from lower integrity principles
- Information flow: Only from high integrity to low integrity
- Characteristic phrase: Read up, write down
- Application:
- Military
- Firewalls
- Read from higher integrity source
- Write to lower integrity source
- Practical use: Integrity not realized (too restrictive)
- Problem:
- Biba prohibits information flow from low to high
- e.g., read from network socket
- Solution 1: Use fully-assured guards (application-specific code validating the input)
- Solution 2: Change integrity level (see LoMAC)
Low-Watermark Mandatory Access Control¶
- Variation of Biba model
- Information Flow Model
- Idea:
- Subjects/objects get integrity label
- Label can be changed
- Allow reading from lower integrity objects
- Basis: Lattice of integrity labels
- Reading from lower integrity objects
- Set subject label to object label (transitions)
- Definition of subject label: Set of accessed objects (minimum integrity of accessed objects)
- Writing to higher integrity object
- Denied
- Self-revocation
- A process of high integrity reads a lower-integrity file
- Integrity level of reading process is reduced
- Problem: Process can’t write to its former created files/lots of programs running at low integrity
- Solution:
- Add minimal integrity level
- i.e., range of allowed integrity levels for a subject
- Realized in IX System
Clark-Wilson Integrity Model¶
- Clark/Wilson (1987)
- Application in finance sector
- Goal:
- Define integrity for commercial systems (instead of military)
- Define how data integrity is ensure in a system working with this data
- Adapt to double-bookkeeping in accounting
- Basics
- Basic unit is a transaction
- Transactions lead from one consistent state to another
- Integrity is based on the control of a transaction
- Principle of Separation of duty: Certifier and invoker of a transaction are different
- System
- User may modify as CDI iff he can access the TP and the CDI and the TP may change the CDI
Constructs¶
- Constrained Data Item (CDI):
- High integrity data inside the system
- Must be kept valid
- Unconstrained Data Item (UDI):
- Low integrity data which is not certificated (e.g., user input)
- Integrity Verification Procedure (IVP):
- Program that certifies that the CDIs are valid
- High integrity code
- Transformation Procedure (TP):
- Take CDI or UDI an create a new CDI
- High integrity code
Certification and enforcement rules¶
- Integrity constraints:
- CR1: IVP must ensure, that all CDIs are valid
- CR2: TP must transform a set of CDIs from one valid state to another
- Limit users/TPs that may access CDIs:
- ER1: Only certified TPs may change certain CDIs (system keeps list)
- ER2: Only authorized users may execute a certain TP on a certain CDI
- Authentication:
- CR3: List must be certified under the separation of duty
- ER3: System must authenticate every user attempting to run a TP
- Auditing:
- CR4: TPs must append information to log files for reconstruction
- Administration:
- ER4: The certifier of a TP may change the list of entities associated with that TP only
- CR5: TP taking a UDI as input must either upgrade the UDI to CDI or discard the UDI (self-guard)
Results¶
- Valid information flows are not that different from Biba/etc.
- Concepts of Clark-Wilson are closer to current best practice
- Problem with current OS:
- Not writing IVPs
- Not certifying TPs/CDIs
- Programmers do not ensure that UDI are transformed
Clark-Wilson Lite¶
- Philosophy: Assume we can distinguish CDIs/UDIs
- Idea: Ensure that programs only receive UDIs where the programmers are prepared to handle untrusted inputs
- Programmer partitions date into CDIs/UDIs
- Program defines entry points for UDIs (either discard or update)
- System calls with UDI data are only allowed in the entry points (no further call may contain UDI data)