Примеры конфигурирования RSBAC

Rule Set Based Access Control (RSBAC) для Linux. Переводы документации, описаний и статьи по данной теме.

[ALT Linux Team]

Перевод: Александр Блохин  ]

Пример Privacy Model

Этот пример описан в отдельном документе.

Защита от подделки исполняемых файлов

Административная цель

Защита всех исполняемых файлов, например в /sbin, от подмены

Действия, выполняемые для всех моделей

  • Определите все каталоги содержащие исполняемые файлы, как минимум это /sbin, /bin, /usr/sbin, /usr/bin. Остальные каталоги вы сможете найти опытным путем. Например закрывайте по очереди каталоги на исполнение в <<мягком>> режиме и следите за сообщениями об ошибках.

Решение с помощью модуля FF

  1. Установите ff_flags для всех идентифицированных каталогов в значение search_only и read_only. Флаг search_only означает, что вы получите доступ к любому объекту в каталоге только при условии, что вы знаете его полное название, и что вам не позволено что-либо модифицировать в этом каталоге.

  2. Установите read_only для всех идентифицированных исполняемых файлов в отдельности. Флаг read_only обозначает, что каталог со всеми его подобъектами доступен в режиме <<только для чтения>>.

  3. Если вам необходим доступ к каталогу на чтение, то удалите флаг search_only. Флаг read_only при этом остается.

  4. Если каталог содержит только исполняемые файлы и не содержит сценариев оболочки, то вы можете использовать для него флаг execute_only. Это означает, что все файлы, находящиеся в этом каталоге, могут быть выполнены, но не могут быть прочитаны или скопированы. (В ALT Linux Сastle - при настройке замкнутой программной среды для сценариев используется read_only для всех остальных -execute_only)

Решение с помощью модуля RC

  1. Создайте новый FD-тип 'Executables'.

  2. Назначте всем ролям для этого типа права SEARCH и EXECUTE.

  3. Если вам необходимо использование READ_OPEN файлов, например для сценариев оболочки, то добавьте права READ_OPEN и CLOSE.

  4. Для возможности дополнения оболочкой имен файлов вам необходимы права READ и, возможно, GET_STATUS_DATA или GET_PERMISSIONS_DATA.

  5. Установите для всех идентифицированных каталогов и файлов новый FD-тип 'Executables'.

  6. Если вы хотите разрешить какой-то роли, например 'Installer', изменение или установку исполняемых файлов, вы можете это сделать простым добавлением необходимых прав к типу 'Executables' этой роли.

Решение с помощью модуля ACL

  1. Установите шаблон наследования для SEARCH и EXECUTE только для идентифицированных файлов и каталогов.

  2. Если вам необходимо использование READ_OPEN файлов, например для сценариев оболочки, то добавьте права READ_OPEN и CLOSE.

  3. Для возможности дополнения оболочкой имен файлов вам необходимы права READ и, возможно, GET_STATUS_DATA или GET_PERMISSIONS_DATA.

  4. Так как права SUPERVISOR включают в себя все прочие права и (обычно) могут не маскироваться, все субъекты с SUPERVISOR на верхние уровни все-равно имеют полный доступ. При стандартной настройке только пользователь 400 (Security Officer) имеет доступ к FD для ACL по умолчанию (и следовательно ко всем файлам и каталогам).

  5. Если вы хатите разрешить субъектам, например группе 'Installers', изменение или установку исполняемых файлов, вы можете это сделать простым добавлением необходимых прав каталогу или ACL файла.

  6. Если позднее вы захотите убедиться, что не забыли такие вхождения, то вы можете найти все ACL-вхождения при помощи acl_tlist -r.

Защита от нежелательного Выполнения

Административные цели

  1. Защита неподконтрольных файлов или библиотек от выполнения.

Действия, выполняемые для всех моделей

  • Определите все каталоги, содержащие исполняемые файлы. Также найдите все каталоги, содержащие динамически линкуемые подгружаемые библиотеки. Если учтены основные важные каталоги, как минимум это /bin /sbin /usr/bin /usr/sbin /lib /usr/lib, то остальные вы можете найти закрывая по по очереди каталоги на чтение/исполнение в <<мягком>> режиме и наблюдая за сообщениями об ошибках.

  • Предупреждение: Если в процессе идентификации или установки атрибутов вы забудете о каком-то важном каталоге или файле, то система может перестать реагировать на ваши попытки обращения к ней, так как необходимые программы не смогут быть выполнены или не смогут быть определены важные библиотеки! (для подобных экспериментов используйте <<мягкий режим>>)

Решение с помощью модуля FF

  1. Удалите все add_inherited-флаги для всех идентифицированных каталогов.

  2. Удалите все add_inherited-флаги для всех идентифицированных файлов и библиотек в отдельности.

  3. Установите флаг no_execute на каталог верхнего уровня

  4. Флаг no_execute без add_inherited не будет наследоваться и не будет назначен идентифицированным каталогам и исполняемым файлам в отдельности.

Решение с помощью модуля RC

  1. Выполните действия 1-5 из способа для RC (смотри выше) в той же последовательности. Произведите похожую настройку для каталогов и файлов библиотек для типа 'Libraries'.

  2. Удалите права EXECUTE для всех ролей на все типы, отличные от 'Executables' и 'Libraries'. Для проверки настроек удалите эти права для вашей роли Role Admin и попробуйте другие роли.

Решение с помощью модуля ACL

  1. Предоставьте для группы 0 ('Everyone') права SEARCH и EXECUTE на все идентифицированные файлы и каталоги.

  2. Если вам необходимо использование READ_OPEN файлов, например для библиотек или сценариев оболочки, то добавьте права READ_OPEN и CLOSE.

  3. Для возможности дополнения оболочкой имен файлов вам необходимы права READ и, возможно, GET_STATUS_DATA или GET_PERMISSIONS_DATA.

  4. Удалите права EXECUTE из шаблона наследования для корневого каталога / или из всех вхождений в acl по умолчанию для FD.

  5. Если вы имеете индивидуальные ACL-вхождения на любых каталогах или файлах, отличных от тех, которые уже были идентифицированы, то вы должны отобрать от них права EXECUTE. Вы можете найти все ACL-вхождения при помощи acl_tlist -r.

  6. Так как права SUPERVISOR включают в себя все прочие права и (обычно) могут не маскироваться, все субъекты с SUPERVISOR на верхние уровни все-равно имеют полный доступ. При стандартной настройке только пользователь 400 (Security Officer) имеет доступ к FD для ACL по умолчанию (и следовательно ко всем файлам и каталогам).



[Источник ALT Linux Team]

[ опубликовано 22/10/2001 ]

ALT Linux Team - Примеры конфигурирования RSBAC   Версия для печати