Научная статья на тему 'МЕТОДЫ РАЗГРАНИЧЕНИЯ ПРАВ ДОСТУПА В ВЕБ-СЕРВЕНЫХ ПРИЛОЖЕНИЯХ'

МЕТОДЫ РАЗГРАНИЧЕНИЯ ПРАВ ДОСТУПА В ВЕБ-СЕРВЕНЫХ ПРИЛОЖЕНИЯХ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
353
31
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
РОЛИ БЕЗОПАСНОСТИ / ПРАВА ДОСТУПА / БЕЗОПАСНОСТЬ ДАННЫХ / ПОДСИСТЕМА ЗАЩИТЫ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Мурчиков А.М., Воробьев В.В.

Статья посвящена ролям безопасности и правам доступа в веб-серверном приложении. В статье приведено подробное описание ролей безопасности и прав доступа. Приведено описание программной реализации данного модуля, а также приведено описание таблиц в базе данных для реализации поставленной задачи и написаны хранимые процедуры для работы с описанными таблицами.This article is devoted to security roles and access rights in a web server application. The article provides a detailed description of the security roles and access rights. The description of the software implementation of this module is given, as well as a description of the tables in the database for the implementation of the task, and stored procedures for working with the tables described.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «МЕТОДЫ РАЗГРАНИЧЕНИЯ ПРАВ ДОСТУПА В ВЕБ-СЕРВЕНЫХ ПРИЛОЖЕНИЯХ»

УДК 004.657

Мурчиков А.М. студент магистратуры 2 курса факультет «Информатика и системы управления»

Воробьев В.В. студент магистратуры 2 курса факультет «Информатика и системы управления»

МГТУ им. Н.Э. Баумана Россия, г. Москва

МЕТОДЫ РАЗГРАНИЧЕНИЯ ПРАВ ДОСТУПА В ВЕБ-СЕРВЕНЫХ

ПРИЛОЖЕНИЯХ

Аннотация: Статья посвящена ролям безопасности и правам доступа в веб-серверном приложении. В статье приведено подробное описание ролей безопасности и прав доступа. Приведено описание программной реализации данного модуля, а также приведено описание таблиц в базе данных для реализации поставленной задачи и написаны хранимые процедуры для работы с описанными таблицами.

Ключевые слова: роли безопасности, права доступа, разграничение доступа, безопасность данных, подсистема защиты.

Abstract: This article is devoted to security roles and access rights in a web server application. The article provides a detailed description of the security roles and access rights. The description of the software implementation of this module is given, as well as a description of the tables in the database for the implementation of the task, and stored procedures for working with the tables described.

Key words: security roles, access rights, access delineation, data security, protection subsystem.

Введение.

Принципиальным при формировании требований к реализации контроля доступа к защищаемым ресурсам является ответ на следующий вопрос: каким образом и в каком виде хранятся правила доступа субъектов к объектам? Именно способ хранения правил доступа во многом влияет на функциональные возможности контроля доступа, поскольку им определяется то, каким образом идентифицируется в разграничительной политике объект доступа.

Права доступа — это совокупность правил, регламентирующих порядок и условия доступа субъекта к объектам информационной системы (информации, её носителям, процессам и другим ресурсам) установленных правовыми документами или собственником, владельцем информации. [1]

Права доступа определяют набор действий (например, чтение, запись, выполнение), разрешённых для выполнения субъектам (например, пользователям системы) над объектами данных. Для этого требуется некая система для предоставления субъектам различных прав доступа к объектам.

Это система разграничения доступа субъектов к объектам, которая рассматривается в качестве главного средства защиты от несанкционированного доступа к информации или порче самой системы. [2]

Часть 1. Существующие методы разграничения прав доступа.

После выполнения идентификации и аутентификации подсистема защиты устанавливает полномочия (совокупность прав) субъекта для последующего контроля санкционированного использования объектов информационной системы.

Обычно полномочия субъекта представляются: списком ресурсов, доступным пользователю и правами по доступу к каждому ресурсу из списка.

Существуют следующие методы разграничения доступа:

1. Разграничение доступа по спискам.

2. Использование матрицы установления полномочий.

3. Разграничение доступа по уровням секретности и категориям.

4. Парольное разграничение доступа.

При разграничении доступа по спискам задаются соответствия: каждому пользователю - список ресурсов и прав доступа к ним или каждому ресурсу - список пользователей и их прав доступа к данному ресурсу.

Списки позволяют установить права с точностью до пользователя. Здесь нетрудно добавить права или явным образом запретить доступ. Списки используются в большинстве ОС и СУБД.

Использование матрицы установления полномочий подразумевает применение матрицы доступа (таблицы полномочий). В указанной матрице строками являются идентификаторы субъектов, имеющих доступ в информационную систему, а столбцами - объекты (ресурсы) информационной системы. Каждый элемент матрицы может содержать имя и размер предоставляемого ресурса, право доступа (чтение, запись и др.), ссылку на другую информационную структуру, уточняющую права доступа, ссылку на программу, управляющую правами доступа и др.

Данный метод предоставляет более унифицированный и удобный подход, т. к. вся информация о полномочиях хранится в виде единой таблицы, а не в виде разнотипных списков. Недостатками матрицы являются ее возможная громоздкость и неоптимальность (большинство клеток -пустые).

Разграничение доступа по уровням секретности и категориям заключается в разделении ресурсов информационной системы по уровням секретности и категориям.

В качестве примера, где используются категории пользователей, приведем операционную систему Windows 2000, подсистема безопасности которой по умолчанию поддерживает следующие категории (группы) пользователей: "администратор", "опытный пользователь", "пользователь" и "гость". Каждая из категорий имеет определенный набор прав. Применение

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

Парольное разграничение, очевидно, представляет использование методов доступа субъектов к объектам по паролю. При этом используются все методы парольной защиты. Очевидно, что постоянное использование паролей создает неудобства пользователям и временные задержки. Поэтому указанные методы используют в исключительных ситуациях.

На практике обычно сочетают различные методы разграничения доступа. [3]

Часть 2. Реализация разделения доступа.

Роли безопасности

Участок базы данных, отвечающий за права доступа, включает в себя таблицы: Module, Role, User, UserRole, Group,UserGroup, RoleGroup.

В соответствии с заданием для разграничения доступа к функционалу БУК вводятся роли безопасности. Эти роли создают как групповые роли базы данных на этапе развертывания комплекса и назначают им привилегии для доступа к объектам базы данных.

В репозитории БУК предполагается для каждого типа объекта (функционал работы с которым инкапсулирован в модуле) создать по четыре роли безопасности: чтение, удалаение, создание, изменение. Каждой из ролей назначают привилегии для доступа к представлениям и хранимым функциям базы данных. В силу особенностей структуры репозитория доступ к таблицам ролям не разрешается. Все действия с объектами выполняют либо через представления (чтение данных), либо через хранимые функции (добавление, удаление, изменение и выборка данных с параметрами).

Роли безопасности назначают пользователям и группам пользователей для работы с базой данных репозитория. Пользователи и группы пользователей имеют учетные записи в домене и роли входа в базу данных репозитория. В таблице пользователей и групп хранятся их идентификаторы в базе данных и имена в домене. Эти сведения извлекаются из системных переменных и в таблице хранятся только для удобства построения запросов на проверку их прав.

Управление пользователями и группами выполняет модуль администратора.

Роли безопасности являются постоянными и создаются при установке комплекса БУК.

Назначение ролей безопасности пользователям и группам выполняется средствами БУК.

Когда пользователь, имеющий роли, заходит в систему, сверяются его права.

Администратор - все права на все объекты, в т.ч. назначение прав, создание БД и КЗ

Редактор — CRUD всех рубрик и документов, своих и чужих; CRUD

шаблонов, атрибутов и дескрипторов (всех)

Сотрудник — CRUD своих рубрик и документов, работа с документами по ТОЛЬКО шаблонам; CRUD своих поисковых шаблонов, копирование всех шаблонов в свой список, переименование и удаление своих шаблонов

Читатель - только чтение; CRUD своих поисковых шаблонов Руководитель проекта - все права на КЗ, в т.ч. назначение прав Редактор (проекта) — CRUD всех рубрик и документов, своих и чужих; CRUD шаблонов, атрибутов и дескрипторов (всех)

Сотрудник (участник проекта) — CRUD своих рубрик и документов, работа с документами по ТОЛЬКО шаблонам; CRUD своих поисковых шаблонов; копирование всех шаблонов в свой список, переименование и удаление своих шаблонов; добавление сообщений

Читатель - только чтение; CRUD своих поисковых шаблонов Предоставляемые функции в системе:

Предоставить доступ к рубрике — извлекает из репозитория и отображает таблицу назначенных прав доступа к рубрике (роли доступа для рубрики и пользователи/группы, имеющие эти роли). Пользователь может изменить права доступа для пользователя/группы. Также пользователь может включить в список пользователей данной рубрики пользователя/группу из зарегистрированных в системе. Измененные права доступа будут сохранены в репозиторий. Перед сохранением проверяется соответствие новых прав доступа назначенным ролям безопасности для пользователей/групп.

Предоставить доступ к документу — извлекает из репозитория и отображает таблицу назначенных прав доступа к документу (роли доступа для документа и пользователи/группы, имеющие эти роли). Пользователь может изменить права доступа для пользователя/группы. Также пользователь может включить в список пользователей данного документа пользователя/группу из зарегистрированных в системе. Измененные права доступа будут сохранены в репозиторий. Перед сохранением проверяется соответствие новых прав доступа назначенным ролям безопасности для пользователей/групп.

Роли и права доступа

Кроме ролей безопасности, которые разрешают доступ к функционалу, используются роли доступа, которые выполняют разграничение прав доступа на уровне данных.

Роли доступа определены для каждого из типов объектов репозитория: 1. Роли доступа для карты знаний - создание, чтение, удаление своих карт знаний, удаление всех карт знаний, изменение своих карт знаний, изменение всех карт знаний, назначение прав. Под изменением подразумевается: удаление и создание рубрик, редактирование паспорта рубрики, создание документа, редактирование документа, удаление

документа, добавление комментариев, удаление комментариев, редактирование паспорта карты знаний.

2. Роли доступа для рубрики - создание, чтение, удаление своих, назначение прав, изменение своих, удаление всех, изменение всех. Изменение рубрики подразумевает: создание подрубрики, редактирование подрубрики, удаление подрубрики, создание документа, редактирование документа, удаление документа, редактирование паспорта рубрики.

3. Роли доступа для документа - создание, чтение, назначение прав, изменение, удаление.

4. Роли доступа для базы данных - создание, чтение, назначение прав, изменение своих элементов, изменение всех элементов. Под изменением подразумевается: удаление и создание рубрики, редактирование рубрики, создание документа, редактирование документа, удаление документа, редактирование паспорта.

Право доступа назначается для каждого конкретного объекта. При этом допускается назначение прав на уровне контейнера, а его дочерние элементы наследуют выданные права.

Таблицы

Назначенные данные о правах хранятся в системных таблицах.

Таблица Пользователи - User хранит информацию о пользователях, используется для авторизации. В таблице хранятся идентификаторы пользователей в базе данных и их имена в домене. Данная таблица используется для удобства проверки прав пользователй.

Таблица Роли безопасности - Role хранит информацию о ролях безопасности. Роль безопасности — это функционал, который может быть доступен оператору.

Таблица Группы - Group хранит информацию о группах пользователей. В таблице хранятся идентификаторы групп в базе данных и их имена в домене. Данная таблица используется для удобства проверки прав пользователй.

Таблица Роли пользователей - UserRole реализует связь «Многие-ко-многим» для пользователей и ролей, хранит информацию о определенном наборе ролей для определенного пользователя.

Таблица Группы пользователей - UserGroup реализует связь «Многие-ко-многим» для пользователей и групп, используется для формирования вхождения пользователями в определенный набор групп.

Таблица Роли групп - GroupRole реализует связь «Многие-ко-многим» для групп и ролей, хранит информацию об определенном наборе ролей для определенной группы пользователей.

Таблица Роли доступа - DataRole хранит информацию о ролях доступа и используется для разграничения доступа по данным.

Таблица Права доступа - Rigth хранит информацию о првах доступа субъектов (пользователей и групп) к объектам репозитория.

Описание работы модуля назначения ролей

Назначенные роли на объект пользователю не могут превышать роли доступа пользователя в систему. Таким образом, пользователь, имеющий роль «Читатель», не сможет добавлять рубрикаторы и т.д. ни при каких обстоятельствах.

Еще один момент, который стоит заметить: права доступа от родительского каталога наследуются дочерними рубрикаторами и документами.

Были разработаны классы для работы с правами доступа. Класс «QassRole» имеет перечень методов для назначения, удаления, редактирования прав доступа к объектам. Класс «QassUser» предназначен для работы с данными пользователя.

Назначение ролей реализуется функцией

nir.setrightsofusertoobj($arr_rightss). На вход подается массив из структур вида: ид_объекта, ид, пользователя, битовая_маска. Таким образом в таблицу rights_of_access заносятся данные о правах пользователей.

Получить права можно с помощью функции nir.get_access_mask_2($id_obj, $id_subj). На вход подается ид_объекта и ид_пользователя. Тем самым мы можем получить права пользователей на этот объект и ограничить доступ.

Функция получения пользователя nir.getusers() необходима для получения пользователей. На вход не подается ничего, на выходе список пользователей системы. Выбирая из списка пользователя, мы может назначать ему права доступа.

Функция nir.getroles_access($id_obj) предназначена для получения ролей на объект. На вход подается ид_объекта, на выходе получаем список ролей, которые можно назначать на этот объект.

Функция nir.delete_right_of_access($id_obj, $delUser) необходима для удаления доступа пользователя к объекту. На вход подается ид_объекта, массив удаляемых пользователей.

Был разработан понятный пользовательский интерфейс для назначения, редактирования и удаления прав пользователям системы (см. рис. 1)

Рис. 1 - форма назначения прав доступа.

Заполняя чекбоксы, мы назначаем права пользователям при работе «БД для тестирования». Удобный интерфейс позволяет ставить/снимать одну галочку, остальные роли, которые наследуются, заполняются автоматически. Права пользователя, владеющего правами администратора, изменять нельзя. Имеется возможность назначить права новому пользователю, зарегистрированному в системе. При отправке формы, сверяется уровень назначенных прав на объект с правами доступа в систему. При не состыковке выводится сообщение об ошибке (см. рис. 2).

Рис. 2 - сообщение об ошибке. Использованные источники:

1. Права доступа. Режим доступа: https://ru.wikipedia.org/wiki (дата обращения 02.03.2017)

2. Средства защиты от несанкционированного доступа. Режим доступа: http://www.itsec.ru/articles2/Inf_security/realizatsiya-kontrolya-i-razgranicheniya-prav-dostupa-po-sozdaniyu-faylovyh-obektov-i-k-sistemnym-faylovym-obektam/ (дата обращения 02.03.2017)

3. Методы разграничения доступа. Режим доступа: http://studopedia.org/1-21924.html (дата обращения 04.03.2017)

4. Леки-Томпсон Э., Коув А., Новицки С., Айде-Гудман Х. PHP 5 для профессионалов;

5. Афанасьев Г.И., Тимофеев В.Б. Использование систем управления контентом для разработки и сопровождения web -приложений в целях учебного процесса.

УДК 347.4

Мусаелян Л.А. студент 2 курса, магистр программы «Юрист в частно-правовых спорах» Ростовский Филиал Российский государственный университет правосудия

Россия, г. Ростов-на-Дону НЕКОТОРЫЕ ПРОБЛЕМЫ НОРМАТИВНО-ПРАВОВОГО РЕГУЛИРОВАНИЯ ДОГОВОРА ВОЗМЕЗДЕНОГО ОКАЗАНИЯ

УСЛУГ

Аннотация: в статье рассматриваются отдельные пробелы законодательного регулирования договора возмездного оказания услуг, предлагаются меры по их устранению.

Ключевые слова: договор возмездного оказания услуг, договор услуг, оказание услуг, регулирования оказания услуг.

Abstract: The article examines some gaps in the legislative regulation of the contract on provision of paid services, suggests measures to eliminate them.

Key words: contract of paid provision of services, services agreement, provision of services, regulation of provision of services.

В настоящее время сфера услуг является одно из самых динамично развивающихся и перспективных. Необходимым условием развития сферы услуг является развитие соответствующей правовой базы.

Возмездное оказание услуг регулируется нормами Гражданского кодекса РФ. В указанном нормативном акте возмездному оказанию услуг посвящена глава 39.

Исходя из статьи 779 Гражданского кодекса РФ, по договору возмездного оказания услуг исполнитель обязуется по заданию заказчика оказать услуги, а заказчик обязуется оплатить эти услуги79.

Важное место среди нормативно-правовых актов, осуществляющих регулирование возмездного оказания услуг, принадлежит утвержденным в разное время Правительством РФ правилам оказания отдельных видов услуг, международным актам, к примеру, Генеральным соглашением о торговле

79 "Гражданский кодекс Российской Федерации (часть первая)" от 30.11.1994 N 51-ФЗ (ред. от 07.02.2017)//СПС «Консультант плюс»

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.