Шаблон «Раздельное принятие и применение решений о безопасности» предназначен для реализации активного механизма контроля доступа и фильтрации потоков данных/потоков управления на основе заданных правил и политик безопасности. Шаблон предполагает разделение механизмов принятия решения о возможности доступа или разрешении потока и применения этого решения к потокам данных, потокам управления и выполняемым в системе операциям. Это в конечном счете позволяет улучшить гибкость работы механизма контроля доступа и/или фильтрации потоков данных/потоков управления в системе и оптимизировать доказательство корректности его работы.
Главная идея — разделить алгоритм предоставления доступа между двумя составляющими. «Обдумывание» решения выполняется независимо от применения. Такой подход распределяет привилегии и делегирует ответственность за решение на централизованный компонент. Теперь предоставление доступа зависит от него, а не от самих элементов. Следовательно, компрометация одного элемента не приводит к компрометации другого.
Гибкость решения заключается в настраивании политик и правил безопасности. Любые изменения в варианте с прямым доступом между элементами приводят к корректировке конфигурации для каждой пары элементов. В то же время, при применении шаблона настраиваются централизованные политики и правила. Они используются только модулем анализа и принятия решения. Это делает систему универсальной.
Типовые цели безопасности при применении шаблона включают:
Предположения безопасности включают:
Предположения и условия, при которых шаблон не может быть применен:
Элементы системы, реализующей шаблон:
Взаимодействие элементов монитора представлено на рисунке 1.

Модуль анализа и принятия решений должен реализовать анализ событий по факту их регистрации (runtime, проспективный анализ) или отложенный анализ на основе доступной информации о выполнении доступа к данным и активам, об обмене сообщениями, о выполняемых операциях в системе.
Модуль применения решений должен реализовать концепцию монитора безопасности пересылок, обеспечивая полное перекрытие потоков контролируемых данных, каналов выполнения операций и способов выполнения доступа к данным и активам. Невыполнение этого требования приводит к возникновению способов обхода контроля доступа к данным и контроля выполнения операций.
Технология применения решений, ограничивающая доступ, передачу команд управления для выполнения операций и передачу данных, должна быть реализована прозрачным для этих процессов образом так, чтобы минимизировать влияние на временные характеристики работы системы, показатели ее производительности, надежности и безопасности.
Применение шаблона может быть ограничено в системах с требованиями к выполнению в реальном времени, а также в системах с повышенными требованиями к функциональной безопасности и надежности вследствие необходимости перехвата потоков данных и/или потоков управления и возможной блокировки этих потоков, что потенциально может повлиять на выполнение упомянутых требований.
Допустимо использовать для реализации модуля принятия решений шаблон «Монитор», в котором:

Допустимо использовать модификации, описанные для шаблона «Монитор», при условии выполнения требований к модулю принятия решений и указанных выше ограничений для настоящего шаблона.
Допустимость модификаций, не входящих в указанный перечень, должна быть обоснована при проектировании архитектуры и формировании требований, предъявляемых к системе на основе целей и предположений безопасности для этой системы.
Большинство умных устройств устроено таким образом, что принятие решения не просто выделяется в отдельный элемент, а в принципе перекладывается за пределы устройства, на облако. В таком исполнении требуется дополнительно обеспечить безопасность связи между элементами принятия и выполнения решения. Зато решение тщательно анализируется на основе многочисленных данных и сложно вычислимых алгоритмов, что не способно сделать малоресурсное устройство.

Например, при использовании средства для управления Умным домом Xiaomi Home Integration команды для устройств передаются в облако или в центральный шлюз в зависимости от типа подключения. Команды проверяются и анализируются, после чего передаются устройству. Аутентификация и поддержка постоянного подключения происходят на облаке или шлюзе, а не на устройствах.

Подробнее смотри по ссылке