О разработке механизма мандатного управления доступомв СУБД MySQL на основе SELinux | Прикладная дискретная математика. Приложение. 2012. № 5.

О разработке механизма мандатного управления доступомв СУБД MySQL на основе SELinux

The main steps for addition ofmandatory access control to relational database management system (RDBMS) MySQL areproposed on the base of SELinux. These steps are the following: to set security contexts forall entities of the RDBMS MySQL, to create the security policy module, to implement theinteraction of SELinux system and RDBMS MySQL hook functions, and to replace (fullyor partly) functions realizing discretionary access control in RDBMS with hook functions.

Based on SELinux mandatory access control in database management system MySQL.pdf Рассматривается подход к разработке механизма управления доступом в системеуправления базами данных (СУБД) MySQL на основе SELinux.В СУБД MySQL [1] используется дискреционный механизм управления доступом,реализованный следующим образом. Имеется база данных (БД) mysql, которая содер-жит таблицы, где хранится различная служебная информация. Записи, отражающиеправа доступа субъектов к сущностям, находятся в следующих таблицах:- user;- db;- host;- tables_priv;- columns_priv;- procs_priv.Таблица user хранит глобальные права доступа субъектов к сущностям. Глобаль-ные права распространяются на все сущности СУБД. Таблицы db и host определяютправа для БД. В остальных таблицах находятся права, определяющие доступ субъектак таким сущностям, как таблицы и столбцы.Процесс управления доступом начинается с проверки наличия глобальных прав.Если они присутствуют, то доступ разрешается. В случае отсутствия каких-либо праву субъекта в таблице user последовательно просматриваются оставшиеся таблицы.В СУБД MySQL отсутствуют механизмы мандатного управления доступом. В тоже время в известных СУБД (например, Oracle) имеется возможность реализацииполитики мандатного управления доступом. В СУБД MySQL это может быть реали-зовано с использованием механизма безопасности SELinux [2].В системе SELinux политика безопасности управления доступом компьютерной си-стемы (КС) задаётся набором правил, описывающих права доступа субъектов к сущ-ностям на основе их контекста безопасности, в виде единого конфигурационного файлаили набора модулей [3, 4]. Под контекстом безопасности понимается набор атрибутов,связанных с сущностью КС и имеющих вид user : ro/e : type[: /eve/], где- user - атрибут-пользователь в системе SELinux, ассоциированный с одним или бо-лее пользователем КС;- role - атрибут-роль в системе SELinux, ассоциированная с одним или более типом,к которым пользователь SELinux имеет доступ;- type - атрибут-тип в системе SELinux, определяющий возможные виды досту-па сущностей данного типа при использовании мандатного механизма TypeEnforcement;- level - атрибут-уровень безопасности в системе SELinux при использовании ман-датных механизмов Multy-Level Security или Multy-Category Security.Система SELinux состоит из следующих частей:1) Object Manager (OM) - служит посредником при принятии решения о разреше-нии/запрете доступа субъекта к объекту;2) Access Vector Cache (AVC)-необходим для оптимизации работы системыSELinux;3) сервер SELinux - применяется для создания ответа на основе запроса и поли-тики SELinux.При попытке субъекта получить доступ к сущности OM составляет запрос и от-правляет его к AVC. AVC принимает запрос от OM, и если ранее поступал такойзапрос, то AVC находит его в своей базе и отправляет ответ OM, иначе запрос пе-ренаправляется серверу SELinux. Сервер SELinux при поступлении запроса находитсоответствующее правило в политике безопасности и отправляет ответ AVC, который,в свою очередь, запоминает его и перенаправляет OM.OM реализован на уровне ядра ОС GNU/Linux, при этом SELinux предоставля-ет средства (библиотека libselinux), реализующие OM на уровне пользовательскогоприложения.С использованием данной возможности для СУБД MySQL (версия 5.5.16) разрабо-тан прототип модуля, задающий мандатную политику управления доступом на основемеханизма Type Enforcement, и элемент OM, реализующий её на пользовательскомуровне, а также определены контексты безопасности для основных сущностей СУБДMySQL.В СУБД MySQL для присвоения сущностям контекстов безопасности использова-ны следующие таблицы БД mysql:- SEDB;- SETable;- SEColumn.В этих таблицах сопоставляются контексты безопасности и объекты DB, Table, ColumnСУБД MySQL. В служебной таблице user БД mysql создан столбец sec_context, за-дающий контексты безопасности субъектам. Для задания контекста безопасности за-писям необходимо в пользовательской таблице создать столбец sec_context.Одним из типичных способов реализации элемента OM является добавление хук-функций в исходный код, содержащий функции управления доступом субъектовк сущностям КС. В СУБД MySQL такими функциями являются:- boo/ check_access() -функция, реализующая управление доступом на основе таб-личных данных user, db, host;- boo/ check_grant() -функция, реализующая управление доступом на основе таб-личных данных table_priv;- boo/ check_grant_co/umn() - функция, реализующая управление доступом на ос-нове табличных данных column_priv.В момент реализации субъектом доступа к сущности выполняется проверка гло-бальных прав доступа, при этом вызывается функция check_access(), передающаяуправление хук-функции. Последняя взаимодействует с сервером SELinux и, в зави-симости от ответа, выполняет действия по запрету или разрешению доступа.Таким образом, основными этапами реализации политики мандатного управлениядоступом в СУБД MySQL на основе механизма SELinux являются:1) задание контекста безопасности для каждой сущности СУБД MySQL;2) разработка модуля политики безопасности;3) создание функций, реализующих элемент OM для СУБД MySQL;4) замена функций, реализующих управление доступом в СУБД MySQL на функ-ции, вызывающие механизмы SELinux.

Ключевые слова

Авторы

ФИООрганизацияДополнительноE-mail
Ткаченко Николай ОлеговичНациональный исследовательский Томский государственный университетстудентn.o.tkachenko@gmail.com
Всего: 1

Ссылки

Hinz S., DuBois P., Stephens J., et al. MySQL 5.5 Reference Manual [Электронный ресурс]. Режим доступа: http://dev.mysql.com/doc/refman/5.5/en/index.html
Haines R. The SELinux Notebook - The Foundations. 2nd Edition [Электронный ресурс]. Режим доступа: http://www.freetechbooks.com/efiles/selinuxnotebook/The_SELinux_ Notebook_Volume_1_The_Foundations.pdf
Smalley S. Configuring the SELinux Policy [Электронный ресурс]. Режим доступа: http: //www.nsa.gov/research/_files/selinux/papers/policy2.pdf
Loscocco P. A., Smalley S. D. Meeting Critical Security Objectives with Security-Enhanced Linux [Электронный ресурс]. Режим доступа: http://www.nsa.gov/research/_files/ selinux/papers/ottawa01.pdf
 О разработке механизма мандатного управления доступомв СУБД MySQL на основе SELinux | Прикладная дискретная математика. Приложение. 2012. № 5.

О разработке механизма мандатного управления доступомв СУБД MySQL на основе SELinux | Прикладная дискретная математика. Приложение. 2012. № 5.