Модель целостности Biba: No Read Down, No Write Up
Что такое модель Biba?
Модель Biba (1975) обеспечивает целостность: субъекты и объекты имеют уровни целостности. Правила: no read down (не читать данные с более низкой целостностью), no write up (не записывать в данные с более высокой целостностью). Таким образом, данные с высокой целостностью не могут быть повреждены источниками с более низкой целостностью.
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
Обычно нет правил p; матчер реализует Biba на основе уровней запроса:
- No Read Down (Simple Integrity Property): Субъекты не могут читать объекты с более низкими уровнями целостности
- No Write Up (Star Integrity Property): Субъекты не могут писать в объекты с более высокими уровнями целостности
Основные принципы
Подход Biba "read up, write down" инвертирует модель Bell-LaPadula "read down, write up". Это обеспечивает:
- Защита целостности данных: Предотвращает повреждение данных с высокой целостностью от источников с более низкой целостностью
- Контролируемый поток информации: Ограничивает запись только потоками от более высоких к более низким уровням целостности
- Сохранение доверия: Поддерживает достоверность данных на каждом уровне целостности
Примеры
Примеры запросов
alice, 3, data1, 1, read # alice (level 3) reads data1 (level 1) - DENIED (No Read Down)
bob, 2, data2, 2, read # bob (level 2) reads data2 (level 2) - ALLOWED
charlie, 1, data1, 1, read # charlie (level 1) reads data1 (level 1) - ALLOWED
bob, 2, data3, 3, read # bob (level 2) reads data3 (level 3) - ALLOWED
charlie, 1, data2, 2, read # charlie (level 1) reads data2 (level 2) - ALLOWED
alice, 3, data3, 3, write # alice (level 3) writes data3 (level 3) - ALLOWED
bob, 2, data3, 3, write # bob (level 2) writes data3 (level 3) - DENIED (No Write Up)
charlie, 1, data2, 2, write # charlie (level 1) writes data2 (level 2) - DENIED (No Write Up)
alice, 3, data1, 1, write # alice (level 3) writes data1 (level 1) - ALLOWED
bob, 2, data1, 1, write # bob (level 2) writes data1 (level 1) - ALLOWED
Уровни целостности
Biba представляет уровни целостности как целые числа, где более высокие значения указывают на большую целостность:
- Уровень 1: Низкая целостность (публичные данные, пользовательский контент)
- Уровень 2: Средняя целостность (проверенные данные, доверенные источники)
- Уровень 3: Высокая целостность (системные данные, административный контент)
- Уровень 4: Критическая целостность (политики безопасности, конфигурация системы)