10.12 Принудительный контроль доступа (MAC)

Спонсировали DARPA и Network Associates Laboratories. Предоставил Robert Watson.

FreeBSD 5.0 включает новую систему (framework) безопасности уровня ядра, TrustedBSD MAC Framework. Система MAC позволяет применять расширения безопасности при компилировании, загрузке и выполнении, она может быть использована для поддержки принудительного контроля доступа (Mandatory Access Control, MAC), а также специфических модулей безопасности. Система MAC на данный момент считается экспериментальной, и без внимательного изучения не должна использоваться в реальных задачах. Ожидается, что MAC будет лучше подходить для широкого использования начиная с FreeBSD 5.2.

При включении в ядро система MAC использует модули безопасности для усиления существующей модели безопасности ядра, ограничивая доступ к системным сервисам и объектам. Например, модуль mac_bsdextended(4) усиливает контроль доступа к файловой системе, позволяя администраторам задавать набор правил подобный тому, который используется для межсетевого экрана, ограничивая доступ к объектам файловой системы на основе id пользователя и его принадлежности к группам. Некоторые модули требуют мало или вообще не требуют настройки, например mac_seeotheruids(4), в то время как другие требуют тотальной маркировки объектов и большого объема настройки, например mac_biba(4) и mac_mls(4).

Для включения системы MAC Framework в ядро системы вы должны добавить в файл настройки ядра следующую строку:

options MAC

Модули политики безопасности, поставляемые с базовой системой, могут быть загружены с помощью kldload(8) или при загрузке через loader(8). Они также могут быть непосредственно встроены в ядро с помощью приведенных ниже параметров, если использование модулей нежелательно.

Различные политики MAC могут быть настроены разными способами; зачастую модули политики MAC экспортируют параметры настройки через sysctl(8) MIB, используя пространство имен security.mac. Политики безопасности, относящиеся к файловой системе или другим меткам могут требовать действий по присвоению начальных меток системным объектам или создания файла настройки политики безопасности. За информацией по настройке и использованию каждого модуля политики обращайтесь к его справочной странице.

Существует множество инструментов для настройки системы MAC и меток, поддерживаемых различными политиками безопасности. Были созданы расширения для входа в систему и управления доступом (setusercontext(3)), поддерживающие присвоение пользователям метки с помощью login.conf(5). Кроме того, были сделаны изменения в su(1), ps(1), ls(1), и ifconfig(8) для проверки и установки меток на процессы, файлы и интерфейсы. Были добавлены несколько новых инструментов для управления метками объектов, включая getfmac(8), setfmac(8) и setfsmac(8) для управления метками файлов, а также getpmac(8) и setpmac(8).

Ниже представлен список модулей политики безопасности, поставляемых с FreeBSD 5.0.

10.12.1 Политика целостности Biba (mac_biba)

Поставщик: TrustedBSD Project

Имя модуля: mac_biba.ko

Параметр ядра: MAC_BIBA

Политика целостности Biba (Biba Integrity Policy, mac_biba(4)) создана для иерархического и не иерархического присвоения всем системным объектам уровня доступа и применение политики контроля за потоками информации для предотвращения повреждения субъектов с высоким уровнем доступа и данных субъектами с низким уровнем доступа. Целостность достигается предотвращением чтения объектов с низким уровнем доступа (зачастую файлов) субъектами с высоким уровнем доступа (обычно процессами), и предотвращение записи в объекты с высоким уровнем доступа субъектами с низким уровнем доступа. Эта политика безопасности часто используется в коммерческих доверяемых системах для обеспечения высокого уровня защиты Trusted Code Base (TCB). Вследствие необходимости тотального маркирования, политика целостности Biba должна быть встроена в ядро или загружена при старте системы.

10.12.2 Брандмауэрная политика файловой системы (mac_bsdextended)

Поставщик: TrustedBSD Project

Имя модуля: mac_bsdextended.ko

Параметр ядра: MAC_BSDEXTENDED

File System Firewall Policy (брандмауэрная политика файловой системы, mac_bsdextended(4)) это расширение системы контроля доступа файловой системы BSD, позволяющая администратору определять набор брандмауэр-подобных правил для ограничения доступа к объектам файловой системы, принадлежащим пользователям и группам. Правила, управляемые ugidfw(8), могут ограничить доступ к файлам и каталогам на основе uid и gid процесса, пытающегося получить доступ, владельца и группы цели, на которую направлена попытка доступа. Все правила ограничивающие, так что они могут быть помещены в любом порядке. Эта политика не требует предварительной настройки или маркировки и может подходить для многопользовательской среды, где требуется принудительное ограничение на обмен данных между пользователями. Необходимо соблюдать осторожность при ограничения доступа к файлам, принадлежащим суперпользователю или другим системным пользователям, поскольку множество полезных программ и каталогов принадлежат этим пользователям. Как и сетевым брандмауэром, неправильное применение правил брандмауэра файловой системы может привести систему в неработоспособное состояние. Новые инструменты для управления набором правил легко могут быть написаны с использованием библиотеки libugidfw(3).

10.12.3 Политика ``тишины'' интерфейса (mac_ifoff)

Поставщик: TrustedBSD Project

Имя модуля: mac_ifoff.ko

Параметр ядра: MAC_IFOFF

Политика ``тишины'' интерфейса (Interface silencing policy, mac_ifoff(4)) запрещает использование сетевых интерфейсов во время загрузки, пока они не будут явно включены, предотвращая ответ сетевого стека на входящие пакеты. Эта политика подходит, если требуется мониторинг пакетов, без генерации трафика.

10.12.4 Low-Watermark Mandatory Access Control (LOMAC) (mac_lomac)

Поставщик: Network Associates Laboratories

Имя модуля: mac_lomac.ko

Параметр ядра: MAC_LOMAC

Подобно политике целостности Biba, политика LOMAC (mac_lomac(4)) основывается на тотальной маркировке всех системных объектов метками уровня доступа. В отличие от Biba, LOMAC разрешает субъектам с высоким уровнем доступа читать из объектов с низким уровнем доступа, но уровень доступа субъекта понижается для предотвращения последующей записи в объекты с высоким уровнем доступа. Эта политика может применяться для обеспечения совместимости, поскольку требует меньшей начальной настройки, чем Biba. Однако, как и в случае Biba, она основана на тотальной маркировке объектов и следовательно должна быть встроена в ядро или загружена при старте системы.

10.12.5 Многоуровневая политика безопасности (MLS) (mac_mls)

Поставщик: TrustedBSD Project

Имя модуля: mac_mls.ko

Параметр ядра: MAC_MLS

Многоуровневая безопасность (Multi-Level Security, MLS, mac_mls(4)) предназначена для иерархической и не-иерархической метки всех системных объектов с важными данными и жесткого ограничения передачи информации для предотвращения утечки конфиденциальной информации. Логическое соединение политики целостности Biba и MLS зачастую поставляется в коммерческих доверяемых операционных системах для обеспечения безопасности данных в многопользовательской среде. Как и с Biba, происходит тотальное маркирование объектов, следовательно необходимо встраивание в ядро или загрузка модуля при старте системы. Как и с Biba, может потребоваться обширная начальная настройка.

10.12.6 Шаблон политики MAC (mac_none)

Поставщик: TrustedBSD Project

Имя модуля: mac_none.ko

Параметр ядра: MAC_NONE

Отсутствие политики безопасности (None policy, mac_none(4)) предоставляет пример политики безопасности для разработчиков, реализуя все необходимое, но не меняя политику контроля доступа системы. Запуск этой политики в реальных задачах не принесет существенных преимуществ.

10.12.7 Политика разделения процессов (mac_partition)

Поставщик: TrustedBSD Project

Имя модуля: mac_partition.ko

Параметр ядра: MAC_PARTITION

Политика разделения процессов, (Partition policy, mac_partition(4)) предназначена для простого разграничения видимости процессов, путем присвоения процессам меток, определяющих, в каком из разделов системы они находятся. При отсутствии меток все процессы могут просматриваться с помощью стандартных инструментов мониторинга; если идентификатор раздела существует, видны только процессы в том же разделе. Эта политика может быть встроена в ядро, загружена при старте системы или в любое другое время.

10.12.8 Просмотр других uid (mac_seeotheruids)

Поставщик: TrustedBSD Project

Имя модуля: mac_seeotheruids.ko

Параметр ядра: MAC_SEEOTHERUIDS

Просмотр других uid (See Other Uids policy, mac_seeotheruids(4)) реализует модель видимости процессов, похожую на mac_partition, но основывается на правах процессов, а не на метках разделов. Политика может быть настроена для исключения определенных пользователей и групп, включая разрешение просмотра всех процессов операторам системы без специальных привилегий. Политика может быть встроена в ядро, загружена при запуске системы или в любое другое время.

10.12.9 политика для тестирования системы MAC (mac_test)

Поставщик: TrustedBSD Project

Имя модуля: mac_test.ko

Параметр ядра: MAC_TEST

Политика для тестирования (Test policy, mac_test(4)) реализует регрессивное тестирование среды для системы MAC, и завершится с ошибкой, если внутренняя проверка правильности меток системы MAC не пройдет. Этот модуль может использоваться для обнаружения ошибок в маркировке системных объектов. Политика может быть встроена в ядро, загружена при старте системы или в любое другое время.

Этот, и другие документы, могут быть скачаны с ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/.

По вопросам связанными с FreeBSD, прочитайте документацию прежде чем писать в <questions@FreeBSD.org>.
По вопросам связанным с этой документацией, пишите <doc@FreeBSD.org>.
По вопросам связанным с русским переводом документации, пишите в рассылку <frdp@FreeBSD.org.ua>.
Информация по подписке на эту рассылку находится на сайте проекта перевода.



Наш баннер
Вы можете установить наш баннер на своем сайте или блоге, скопировав этот код:
RSS новости