SELinux: Введение в Red Hat защиту SELinux

Введение в Red Hat защиту SELinux

Добро пожаловать в Red Hat руководство по SELinux. Это руководство обращается к сложному миру политики SELinux, и имеет цель обучить Вас, как понять, использовать, управлять и расследовать SELinux в среде Red Hat Linux. SELinux, позволяет выполнять принудительное управление доступом (MAC) в ядре Linux, добавляет возможность администратору назначить политику доступа ко всем процессам и объектам (устройствам, файлам, и сообщенным процессам).
Это руководство открывается коротким руководством по SELinux, некоторых предположений о читателе, и объяснения соглашений документа. Первая часть руководства описывает краткий обзор технической архитектуры и политики, определенно политика, которая идет с Red Hat Linux, которое Linux назвал предназначенной политикой. Вторая часть сосредотачивается на работе с SELinux, включая поддержку и управление Вашими системами, анализом политики, и компилированием Вашей таможенной политики.

1. Кратко о SELinux?

В этой секции представлен краткий обзор SELinux.
Увеличенная безопасность Linux (SELinux) является выполнением принудительного механизма управления доступом. Этот механизм встроен в ядро Linux, он осуществляет контроль доступа к ресурсам в соответствии с правилами.
Чтобы понять выгоду принудительного управления доступом (MAC) по традиционному контролируемому управлению доступом (ЦАП), Вы должны сначала понять ограничения ЦАП.
Под DAC подразумевается контроль прав файлов, который позволяет  избежать потенциальный вред или опасный контроль над объектом. Злоумышленник может выставить на файл или папку права, нарушающие безопасность или конфиденциальность с misconfigured chmod  и произвести распространение прав доступа. Такой процесс, может быть выполнен из файла CGI и повредить все файлы, принадлежащие пользователю. Скомпрометированный сервер HTTP может выполнить любую операцию на файлах в группе Сети. У взломанного таким образом программного обеспечения может появиться корневой доступ ко всей системе или к управлению setuid или setgid. 
Под DAC существует только две главных категории пользователей, администраторов и пользователей. В некоторых программах через уязвимости существует возможность поднятия уровня пользователя до администратора. Такие решения, как ACLs (списки управления доступом) могут обеспечить некоторую дополнительную безопасность для защиты от повышения уровня пользователя. 
MAC или неконтролируемая структура управления доступом позволяют определять разрешения для того, как все процессы (названный предметами) взаимодействуют с другими частями системы, такими как файлы, устройства, гнезда, порты, и другие процессы (названный объектами в SELinux). Это сделано через  политику администрирования безопасности по всем процессам и объектам. Эти процессы и объекты управляются через ядро, и решения безопасности приняты на всей доступной информации, а не только пользовательской идентичности. С этой моделью процесс можно предоставить только разрешения, что делает систему более функциональной.  При использовании защиты MAC пользователи защищены от повреждений или удалений их файлов через взлом другого пользователя. 
SELinux встроен в ядро Linux через расширения LSM (Модули Безопасности Linux). SELinux использует две технологии управления доступом – это Type Enforcement™  (TE) и role-based access control (RBAC). 
Выполнение процесса вовлекает определение прав для каждого предмета, то есть, процесса, и объекта на системе. Права определены политикой SELinux и содержатся в правилах безопасности, что сохранены в расширенных признаках (xattrs) файла. Когда право связано с процессами, его называют доменом, например: «httpd находится в домене httpd_t.»
Все взаимодействия между предметами и объектами запрещены по умолчанию в SELinux. Политика позволяет разрешить определенные операции. Чтобы знать, что разрешить, TE использует матрицу областей и типов объекта, полученных из политики. Основу можно получить из правил политики. Например, allow httpd_t net_conf_t:file { read getattr lock ioctl }; дает права на разрешение httpd прочитать данные из определенных файлов конфигурации сети, таких как/etc/resolv.conf. Матрица ясно определяет все взаимодействия процессов и цели их операций.
В связи с этим защита SELinux может осуществить очень точное управления доступом.