Шаблон предназначен для разделения потоков данных для ограничения доступа к ресурсам на уровне драйвера ресурсов с целью обеспечения конфиденциальности, целостности и взаимного невлияния потоков данных. Примером применения шаблона является уменьшение поверхности атаки на виртуальную файловую систему (ВФС), за счет разделения одной ВФС на несколько: например, отдельно для работы с внешней сетью и отдельно для работы с внутренней сетью и блочным устройством.
Типовые цели безопасности при применении шаблона включают:
Предположения безопасности включают:
Предположения и условия, при которых шаблон не может быть применен:
Элементы системы, реализующей шаблон:
Взаимодействие элементов шаблона представлено на рисунке 1.

В качестве поясняющего примера рассмотрим виртуальные файловые системы (ВФС), работающие с сетью и с блочными устройствами, которые должны быть разделены и помещены в разные домены безопасности.
Сущности (субъекты, процессы), обрабатывающие данные из сетей, приходящие на разные контроллеры или адаптеры, должны использовать разные ВФС.
Компрометация сетевой ВФС не должна приводить к компрометации сущностей, с которыми она взаимодействует.
Рассмотрим угрозы безопасности на примере приложения с одной ВФС, которая обеспечивает сразу несколько типов взаимодействия:
Для выполнения первого требования нужно реализовать подход разделения одной ВФС на несколько, а точнее на 4 (ВФС для работы с публичной сетью для обеих сущностей, ВФС для работы с локальной сетью для обеих сущностей).
Чтение и запись данных из хранилища данных осуществляют два компонента:
Для каждого из них требуется отдельная ВФС.
Второе требование достигается автоматически при выполнении первого требования, поскольку разделение сети на несколько подсетей в данном примере не рассматривается.
Далее, для выполнения третьего требования должны быть реализованы независимые хранилища информации.
Для этого:
Для выполнения последнего требования необходимо убедиться, что доверенные компоненты, взаимодействующие с файловым хранилищем, не обращаются напрямую к сетевому драйверу, взаимодействующему с публичной сетью.
Пример показан на рисунке 2.

Необходимо реализовать разделение на разных уровнях драйверов: драйвер ВФС или драйвер раздела, чем ниже уровень, на котором проводится разделение, тем проще осуществить доказательство невлияния потоков данных.
Необходимо реализовать разделение пула ресурсов для привязки к ним раздельных драйверов доступа, что должно быть обеспечено технической возможностью адресации ресурсов определенного типа и невозможностью драйвера адресовать ресурсы того же типа вне заданного для него пула адресов.
Необходимо реализовать подходы к обеспечению корректности работы драйверов ресурсов и драйверов ниже этого уровня (если они доступны для контроля), в первую очередь методические и кооперационные подходы, обеспечивающие безопасность и корректность работы драйверов.
Ограничения на применение шаблона определяются ограничениями на производительность и требованиями доступности ресурсов, доступ к которым реализуется с использованием шаблона.
Допустимые модификации шаблона определяются через количество типов ресурсов и политики разграничения доступа к этим ресурсам.
Допустимость модификаций, не входящих в указанный перечень, должна быть обоснована при проектировании архитектуры и формировании требований, предъявляемых к системе на основе целей и предположений безопасности для этой системы.