Модель Biba
Модель Biba — это формальная модель политики безопасности, основанная на целостности данных, которая применяется в компьютерных системах для предотвращения несанкционированной модификации информации. Относится к классу мандатных (принудительных) моделей управления доступом, где решения о доступе принимаются на основе меток безопасности субъектов (пользователей, процессов) и объектов (файлов, программ). Разработана Кеннетом Дж. Биба (Kenneth J. Biba) в 1977 году как симметричный аналог модели Белла — ЛаПадулы, ориентированной на конфиденциальность, но с обратным порядком правил. Основная цель модели Biba — обеспечение целостности данных на трёх уровнях: предотвращение модификации данных неавторизованными субъектами, предотвращение несанкционированной модификации данных авторизованными субъектами и поддержание внутренней и внешней согласованности данных.
История
Модель Biba была предложена в 1977 году в работе «Integrity Considerations for Secure Computer Systems» (Технический отчёт ESD-TR-76-372, Авиабаза Ханском, Массачусетс). Кеннет Биба, работавший в Лаборатории электронных систем ВВС США, стремился создать формальную основу для политик целостности, аналогичную тому, как модель Белла — ЛаПадулы формализовала политики конфиденциальности. В то время в компьютерных системах всё чаще возникали проблемы с несанкционированным изменением данных, вызванные ошибками программ, атаками типа «троянский конь» или действиями недобросовестных пользователей. Биба предложил мандатный контроль доступа, где каждому субъекту и объекту присваивается метка целостности, отражающая уровень доверия к источнику данных. Модель получила распространение в военных и правительственных системах, где целостность информации (например, команд управления, данных разведки) имеет критическое значение. Впоследствии модель Biba была адаптирована для коммерческих систем, особенно в сферах финансов, здравоохранения и промышленной автоматизации, где модификация данных без надлежащих полномочий может привести к серьёзным последствиям.
Основные принципы
Метки целостности
В модели Biba каждому субъекту (пользователю, процессу) и объекту (файлу, записи, программе) присваивается метка целостности — числовое или иерархическое значение, определяющее уровень доверия. Чем выше метка, тем более надёжным считается источник данных. Например, в системе может быть три уровня: низкий (low), средний (medium) и высокий (high). Субъект с высоким уровнем целостности считается более надёжным, чем субъект с низким уровнем.
Правила доступа
Модель Biba определяет три основных правила доступа, которые предотвращают «загрязнение» данных с высоким уровнем целостности данными с низким уровнем:
- Правило простой целостности (Simple Integrity Property): субъект может читать объект только в том случае, если его метка целостности не ниже метки объекта. Иными словами, субъект не может читать данные с более низким уровнем целостности, чем его собственный. Это правило предотвращает «загрязнение» субъекта низкокачественными данными.
- Правило звёздной целостности (Star Integrity Property): субъект может записывать (модифицировать) объект только в том случае, если его метка целостности не выше метки объекта. Субъект не может записывать данные в объект с более высоким уровнем целостности, чем его собственный. Это правило предотвращает «загрязнение» объектов с высоким уровнем целостности данными от менее надёжных субъектов.
- Правило вызова (Invocation Property): субъект может вызывать другой субъект (например, запускать процесс или отправлять сообщение) только в том случае, если его метка целостности не выше метки вызываемого субъекта. Это правило предотвращает выполнение действий от имени субъекта с более низким уровнем целостности.
Симметрия с моделью Белла — ЛаПадулы
Модель Biba является зеркальным отражением модели Белла — ЛаПадулы, где правила направлены на защиту конфиденциальности. В модели Белла — ЛаПадулы субъект может читать объект с более низким уровнем секретности (no read up) и записывать в объект с более высоким уровнем (no write down). В модели Biba, наоборот, субъект может читать объект с более высоким уровнем целостности (no read down) и записывать в объект с более низким уровнем (no write up). Такая симметрия позволяет комбинировать обе модели в одной системе для одновременной защиты конфиденциальности и целостности.
Классификация и варианты
Строгая модель (Strict Integrity Policy)
В строгой версии модели Biba все три правила применяются в полном объёме. Это обеспечивает максимальную защиту целостности, но может существенно ограничивать функциональность системы, так как субъекты с высоким уровнем целостности не могут читать данные с низким уровнем, а субъекты с низким уровнем не могут записывать данные в объекты с высоким уровнем.
Модель с низкой водяной меткой (Low-Water-Mark Policy)
Этот вариант ослабляет правило чтения: субъект может читать объект с любым уровнем целостности, но после чтения его собственная метка понижается до уровня прочитанного объекта. Таким образом, субъект «загрязняется» низкокачественными данными и теряет способность записывать в объекты с более высоким уровнем. Этот подход применяется в системах, где чтение данных с низким уровнем целостности необходимо, но последствия модификации контролируются.
Модель с высокой водяной меткой (High-Water-Mark Policy)
В этом варианте ослабляется правило записи: субъект может записывать в объект с любым уровнем целостности, но после записи метка объекта повышается до уровня субъекта. Это может привести к нежелательному повышению метки объекта, что делает его «более надёжным» в глазах системы, хотя данные могли быть изменены субъектом с более низким уровнем. Данный вариант редко применяется на практике из-за риска нарушения целостности.
Комбинированные модели
На практике модель Biba часто комбинируется с моделью Белла — ЛаПадулы в рамках многоуровневых систем безопасности (MLS). Например, в операционной системе SELinux (Security-Enhanced Linux) реализована поддержка обеих моделей, что позволяет администраторам настраивать политики доступа, учитывающие как конфиденциальность, так и целостность данных.
Применение
Военные и правительственные системы
Модель Biba широко применяется в военных и правительственных информационных системах, где целостность данных имеет критическое значение. Например, в системах управления войсками, системах связи и разведки, где несанкционированная модификация команд или отчётов может привести к катастрофическим последствиям. Метки целостности позволяют гарантировать, что данные, полученные от ненадёжных источников (например, от полевых агентов), не могут изменить данные, созданные вышестоящими командными пунктами.
Промышленные системы управления
В промышленных системах управления (SCADA, АСУ ТП) модель Biba используется для защиты технологических процессов от несанкционированных изменений. Например, контроллеры, управляющие работой электростанции, могут иметь высокий уровень целостности, а данные от датчиков — более низкий. Правила модели предотвращают запись данных от датчиков непосредственно в управляющие программы, что защищает систему от ошибок или вредоносных воздействий.
Финансовые системы
В банковских и финансовых системах модель Biba применяется для обеспечения целостности транзакций и учётных записей. Например, субъект с низким уровнем целостности (кассир) может читать данные о балансе счёта (высокий уровень), но не может напрямую изменять записи в главной бухгалтерской книге. Все изменения проходят через процессы с более высоким уровнем целостности, что снижает риск мошенничества.
Системы управления базами данных
Некоторые системы управления базами данных (СУБД) реализуют политики целостности на основе модели Biba. Например, в Oracle Database существует механизм меток безопасности (Oracle Label Security), который позволяет настраивать мандатный доступ на основе целостности. Это используется в государственных учреждениях и корпорациях для защиты критически важных данных.
Критика и ограничения
Сложность управления метками
Одним из основных недостатков модели Biba является сложность присвоения и поддержания меток целостности в крупных системах. Администраторы должны вручную или с помощью автоматизированных инструментов определять уровень целостности для каждого субъекта и объекта, что требует глубокого понимания бизнес-процессов и может приводить к ошибкам.
Ограничение функциональности
Строгое применение правил модели Biba может существенно ограничивать функциональность системы. Например, субъект с высоким уровнем целостности не может читать данные с низким уровнем, что может быть необходимо для выполнения некоторых задач (например, анализа отчётов). Это приводит к необходимости создания дополнительных механизмов, таких как временное понижение метки или использование доверенных процессов.
Отсутствие защиты от атак на целостность
Модель Biba не защищает от всех типов атак на целостность. Например, она не предотвращает атаки типа «человек посередине» (man-in-the-middle), если злоумышленник может перехватить и изменить данные на уровне сети, не изменяя метки. Также модель не учитывает временные аспекты целостности, такие как порядок транзакций или согласованность данных во времени.
Несовместимость с современными архитектурами
В современных распределённых системах, облачных средах и микросервисных архитектурах реализация модели Biba может быть затруднена из-за динамического характера субъектов и объектов. Метки целостности должны передаваться между компонентами системы, что требует дополнительных протоколов и может снижать производительность.
Пример реализации
В операционной системе SELinux модель Biba реализована через политики целостности (Integrity Policy). Администратор может определить типы субъектов и объектов с различными уровнями целостности, а затем настроить правила доступа. Например, для веб-сервера можно установить низкий уровень целостности, чтобы он мог читать только статические файлы, но не мог изменять конфигурационные файлы с высоким уровнем целостности. При попытке веб-сервера записать данные в защищённый файл система блокирует операцию и записывает событие в журнал аудита.
Интересные факты
- Модель Biba была разработана практически одновременно с моделью Белла — ЛаПадулы (1973–1976), но долгое время оставалась менее известной, так как основное внимание в области безопасности уделялось конфиденциальности.
- В некоторых источниках модель Biba называют «моделью целостности Биба» (Biba Integrity Model) или «мандатной политикой целостности».
- В 1987 году Дэвид Кларк и Дэвид Уилсон предложили альтернативную модель целостности (модель Кларка — Уилсона), которая учитывает коммерческие требования и транзакционные аспекты, но модель Biba остаётся основой для формального анализа политик целостности.
Источники
- Biba, K. J. (1977). «Integrity Considerations for Secure Computer Systems». Technical Report ESD-TR-76-372, USAF Electronic Systems Division.
- Bishop, M. (2003). «Computer Security: Art and Science». Addison-Wesley.
- Gollmann, D. (2011). «Computer Security». 3rd ed., Wiley.
- National Security Agency (NSA). «Security-Enhanced Linux (SELinux) Documentation».
- Oracle Corporation. «Oracle Label Security Administrator's Guide».
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →