Перейти к основному содержимому

Модель целостности 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". Это обеспечивает:

  1. Защита целостности данных: Предотвращает повреждение данных с высокой целостностью от источников с более низкой целостностью
  2. Контролируемый поток информации: Ограничивает запись только потоками от более высоких к более низким уровням целостности
  3. Сохранение доверия: Поддерживает достоверность данных на каждом уровне целостности

Примеры​

Примеры запросов​

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: Критическая целостность (политики безопасности, конфигурация системы)

Сценарии использования​

Типичные применения модели Biba:

  • Финансовые системы, требующие точности данных
  • Управление медицинскими записями
  • Системы баз данных, требующие целостности данных
  • Среды, где предотвращение повреждения данных важнее предотвращения раскрытия
  • Системы, где критичны точность и надёжность информации

Примечания по реализации​

  • Реализует принудительный контроль доступа (MAC) с акцентом на целостность данных
  • Системные администраторы назначают уровни целостности на основе доверия к данным
  • Решения о доступе зависят от уровней целостности, а не от идентичности пользователя
  • Предотвращает повреждение данных посредством контролируемых операций чтения/записи
  • В отличие от Bell-LaPadula, большинство реализаций Biba используют небольшое количество уровней целостности

Сравнение с Bell-LaPadula​

АспектBell-LaPadulaBiba
Основная цельКонфиденциальностьЦелостность
Правило чтенияЗапрет чтения вверхЗапрет чтения вниз
Правило записиЗапрет записи внизЗапрет записи вверх
Фраза"Read down, write up""Read up, write down"

FAQ​

Что означает «no read down, no write up»? Субъект не может читать данные с более низким уровнем целостности, чем его собственный (no read down), и не может записывать данные в объекты с более высоким уровнем целостности (no write up). Оба правила предотвращают загрязнение высокоинтегральных данных низкоинтегральными.

Какова разница между Biba и Bell-LaPadula? Модель Bell-LaPadula защищает конфиденциальность правилами «no read up, no write down»; модель Biba защищает целостность зеркальными правилами. Таблица выше сравнивает их.

Поставляет ли Casbin модель Biba? В Casbin нет встроенной модели с названием Biba. Вы реализуете её как matcher над уровнями целостности, как показано на этой странице; тот же подход работает в любой портированной версии Casbin.

Comments are powered by giscus and GitHub Discussions. They load from giscus.app and GitHub only after you click the button below.