Biba
Overview
The Biba model (1975) enforces integrity: subjects and objects have integrity levels. Rules: no read down (don’t read lower-integrity data), no write up (don’t write to higher-integrity data). So high-integrity data cannot be corrupted by lower-integrity sources.
Model
[request_definition]
r = sub, sub_level, obj, obj_level, act
[policy_definition]
p = sub, obj, act
[role_definition]
g = _, _
[policy_effect]
e = some(where (p.eft == allow))
[matchers]
m = (r.act == "read" && r.sub_level <= r.obj_level) || (r.act == "write" && r.sub_level >= r.obj_level)
Policy
Usually no p rules; the matcher implements Biba from request levels:
- No Read Down (Simple Integrity Property): Subjects cannot read objects with lower integrity levels
- No Write Up (Star Integrity Property): Subjects cannot write to objects with higher integrity levels
Core Principles
Biba's "read up, write down" approach inverts Bell-LaPadula's "read down, write up" model. This ensures:
- Data Integrity Protection: Prevents high-integrity data corruption from lower-integrity sources
- Controlled Information Flow: Limits writes to flow from higher to lower integrity levels only
- Trust Preservation: Maintains data trustworthiness at each integrity level