Неинтерференция (безопасность)
Неинтерференция (англ. noninterference) — строгая модель политики многоуровневой безопасности, впервые описанная Гогуэном и Месегером в 1982 году и доработанная в 1984 году.
Введение
В простейшем изложении компьютер моделируется как машина с входами и выходами. Входы и выходы классифицируются как «низкие» (низкая степень чувствительности, не соответственно секретные) или «высокие» (чувствительные, не предназначенные для лиц без допуска). Компьютер обладает свойством неинтерференции тогда и только тогда, когда любая последовательность низкоуровневых входных данных приводит к тем же самым низкоуровневым выходам независимо от того, какими были высокоуровневые входные данные.
То есть если низкоуровневый (не имеющий допуска) пользователь работает на машине, она будет отвечать на его действия идентично (по низкоуровневым выходам), присутствует ли на системе высокоуровневый (допущенный к секретной информации) пользователь или нет. Низкоуровневый пользователь не сможет получить никакой информации о действиях (если таковые имеются) высокоуровневого пользователя.
Формальное выражение
Пусть — конфигурация памяти, и — проекции памяти на низкоуровневую и высокоуровневую части соответственно. Пусть — функция, сравнивающая низкоуровневые части конфигураций памяти, то есть тогда и только тогда, когда . Пусть — выполнение программы с исходной конфигурацией памяти и получением конфигурации по завершении.
Определение неинтерференции для детерминированной программы таково:[1]
Ограничения
Это очень строгая политика: система с скрытыми каналами может соответствовать, например, модели Белла — Лападулы, но не будет удовлетворять принципу неинтерференции. Обратное также может быть верно (при разумных условиях, например, при наличии явных меток доступа к файлам и т. д.), за исключением оговорённых ниже случаев «секретная информация при запуске». При этом неинтерференция доказано является более строго определённой политикой, чем недедуцируемость.
Такая строгость имеет свою цену: крайне сложно создать компьютерную систему, удовлетворяющую этому свойству. Известно лишь о нескольких коммерчески доступных продуктах, верифицированных на соответствие этой политике, причём это, по сути, лишь коммутаторы и односторонние информационные фильтры (хотя их можно организовать для решения полезных задач).
Если в компьютере на момент времени = 0 уже присутствует какая-либо высокоуровневая (секретная) информация, либо низкоуровневые пользователи создают высокоуровневую информацию после запуска (так называемая «запись вверх», допустимая по многим политикам безопасности компьютерных систем), то такая система законно может утечь всю высокоуровневую информацию к низкоуровневому пользователю и при этом будет считаться соответствующей политике неинтерференции. Низкоуровневый пользователь не сможет узнать ничего о действиях высокоуровневых пользователей, но сможет получить любую другую высокоуровневую информацию, созданную не высокоуровневыми пользователями[2].
Системы, совместимые с моделью Белла — Лападулы, не страдают от этой проблемы, поскольку явно запрещают чтение «вверх». В результате система, удовлетворяющая неинтерференции, не обязана соответствовать модели Белла — Лападулы. Таким образом, модель Белла — Лападулы и модель неинтерференции несравнимы: модель Белла — Лападулы строже по критерию «чтение вверх», а модель неинтерференции строже по отношению к скрытым каналам.
Некоторые легитимные задачи многоуровневой безопасности допускают, что отдельные записи данных (например, сведения о физических лицах) считаются чувствительными, а статистические функции этих данных (среднее, общее число и пр.) могут быть раскрыты широкой аудитории. Для машины с неинтерференцией этого сделать нельзя.
Обобщения
Свойство неинтерференции требует, чтобы система не раскрывала никакой информации о высокоуровневых входных данных по наблюдаемым выходам для различных низкоуровневых входных данных. Однако можно утверждать, что достижение неинтерференции зачастую невозможно для широкого класса практических систем, да и не всегда желательно: программы вынуждены раскрывать некоторую информацию, зависящую от секретных данных (например, выводить разный результат при корректных и некорректных данных пользователя). Энтропия Шеннона, энтропия угадывания и мин-энтропия — распространённые количественные характеристики утечек информации, которые обобщают понятие неинтерференции[2].
Примечания
- ↑ Smith, Geoffrey (2007). «Principles of Secure Information Flow Analysis». Advances in Information Security. 27. Springer US. pp. 291—307.
- ↑ 1 2 Boris Köpf and David Basin. 2007. An Information-theoretic Model for Adaptive Side-channel Attacks. In Proceedings of the 14th ACM Conference on Computer and Communications Security (CCS '07). ACM, New York, NY, USA, 286—296.
Литература
- McLean, John (1994). “Security Models”. Encyclopedia of Software Engineering [англ.]. New York: John Wiley & Sons, Inc. 2: 1136—1145.
- David von Oheimb (2004). “Information Flow Control Revisited: Noninfluence = Noninterference + Nonleakage”. European Symposium on Research in Computer Security (ESORICS) [англ.]. Sophia Antipolis, France: LNCS, Springer-Verlag: 225—243.