Описание
Паттерн Policy Decision Point предполагает инкапсуляцию вычисления решений на основе политик безопасности в отдельный компонент системы, который обеспечивает выполнение проверок политик безопасности в полном объеме и в правильной последовательности.
Альтернативные названия
Check Point, Access Decision Function.
Контекст
Система имеет функции с разным уровнем привилегий, а политика безопасности нетривиальна (содержит много правил).
Проблема
Если проверки соблюдения политик безопасности разнесены по разным компонентам системы, возникают следующие проблемы:
Решение
Все проверки соблюдения политик безопасности проводятся в отдельном компоненте Policy Decision Point (PDP). Этот компонент отвечает за обеспечение правильного порядка проверок и за их полноту. Происходит отделение проверки политик от кода, реализующего бизнес-логику.
Структура
Работа
PEP может представлять собой, например, ядро ОС. Подробнее см. Паттерн Defer to Kernel.
Рекомендации по реализации
При реализации необходимо учитывать проблему "Время проверки vs. Время использования". Например, если политика безопасности зависит от быстро меняющегося статуса какого-либо объекта системы, вычисленное решение так же быстро теряет актуальность. В системе, использующей паттерн Policy Decision Point, необходимо позаботиться о минимизации интервала между принятием решения о доступе и моментом выполнения запроса на основе этого решения.
Особенности реализации в KasperskyOS
Ядро KasperskyOS гарантирует изоляцию сущностей и представляет собой Policy Enforcement Point (PEP).
Контроль взаимодействия сущностей в KasperskyOS вынесен в модуль безопасности Kaspersky Security Module. Этот модуль анализирует каждый отправляемый запрос и ответ и на основе заданной политики безопасности выносит решение: разрешить или запретить его доставку. Таким образом, Kaspersky Security Module выполняет роль Policy Decision Point (PDP).
Следствия
Паттерн позволяет настраивать политики безопасности без внесения изменений в код, реализующий бизнес-логику, и делегировать сопровождение системы с точки зрения информационной безопасности.
Связанные паттерны
Использование паттерна Policy Decision Point предполагает использование паттернов Distrustful decomposition и Defer to Kernel.
Примеры реализации
Пример реализации паттерна Policy Decision Point: Пример Defer to Kernel.
Источники
Паттерн Policy Decision Point подробно рассмотрен в следующих работах: