Опубликован: 04.07.2008 | Уровень: специалист | Доступ: платный | ВУЗ: Европейский Университет в Санкт-Петербурге
Лекция 9:

Ролевое управление доступом (RBAC). Вопросы безопасности

< Лекция 8 || Лекция 9: 123 || Лекция 10 >

Зачем нужно ролевое управление доступом

Слабым местом систем UNIX с давних пор была невозможность делегировать часть полномочий системного администратора другим пользователям. Мы хорошо знаем, как передаются полномочия в системах Windows: существуют предопределенные группы, которым дано право выполнять некоторые определенные администраторские действия (Printer Operator, Backup Operator и т.п.) В UNIX для делегирования части администраторских прав в свое время использовалась программа sudo. Второй выход был в том, чтобы установить в правах доступа к некоей административной программе типа useradd бит SUID и доверенный пользователь мог бы запустить ее от имени владельца, т.е. пользователя root.

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

В Solaris начиная с версии 8 была введена новая для UNIX система управления доступом – RBAC (role-based access control). Основанное на ролях управление доступом имеет такую же функциональность, как разнообразие групп с некоторыми административными правами в Windows. Смысл ролей в том, что любому пользователю может быть назначена роль. Ответственность и право выполнения части администраторских функций делегированы роли, и пользователь имеет право ее играть.

Что такое роль

Физически роль представляет собой учетную запись специального типа, пользователь не может зайти в систему, указав имя роли, но может "переключиться в роль", дав команду

su имя_роли

Можно сказать, что роль – это псевдопользователь, который обладает правами, большими, чем обычный пользователь, но меньшими, чем root. Каждой роли могут быть делегированы те или иные права путем назначения ей профилей прав или авторизаций (наборов прав).

Компоненты RBAC

Рассмотрим все компоненты RBAC последовательно, начиная с пользователей и ролей.

Всего существует пять компонент: пользователи, роли, профили, авторизации, команды.

Пользователи

Пользователи – это те самые обычные пользователи. Они имеют самые обычные учетные записи. Пользователям может быть дано право играть ту или иную роль, согласно записям в файле /etc/user_attr.

Роли

Роли могут быть назначены пользователям. Предопределенных ролей не существует, но можно легко создать новые роли, назначив им один из трех предопределенных профилей. Предполагается, что системный администратор будет самостоятельно создавать роли и назначать их, по мере необходимости, тем или иным пользователям. Соответствие ролей и пользователей (т.е. разрешение конкретному пользователю играть ту или иную роль) описывается файлом /etc/user_attr:

# Copyright (c) 1999-2001 by Sun Microsystems, Inc. All rights reserved.
#
# /etc/user_attr
#
# user attributes. see user_attr(4)
#
#pragma ident "@(#)user_attr 1.5 01/12/11 SMI"
#
root::::auths=solaris.*,solaris.grant;profiles=All
lp::::profiles=Printer Management
adm::::profiles=Log Management
printmgr::::type=role;profiles=All

Значащих полей в этом файле всего два: имя пользователя (или роли) и атрибуты. Среди атрибутов выделяется атрибут type: он имеет значение role для записи о роли и normal – о пользователе. По умолчанию подразумевается запись о пользователе.

Формат записей в /etc/user_attr следующий:

user:qualifier:res1:res2:attr

где:

  • user – имя пользователя, такое, как в /etc/passwd ;
  • qualifier – зарезервировано на будущее;
  • res1 – зарезервировано на будущее;
  • res2 – зарезервировано на будущее;
  • attr – атрибуты, разделенные точкой с запятой, вида имя=значение ; допустимые атрибуты – это auths, profiles, roles, type, and project.

Атрибут auths предназначен для перечисления предопределенных прав (authorizations), в том числе и групп прав, где значение "все возможные" представляется символом "звездочка" ( * ), например,

auths=solaris.printer.*

обозначает все возможные права набора прав solaris.printer.

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

roles=printmgrs, useradmin

Атрибут type служит для определения того, относится ли текущая запись к обычному пользователю или описывает роль. Для обычного пользователя следует указывать атрибут

type=normal

и для роли

type=role

Аналогичным образом может быть назначен проект ( project ) и профиль прав ( profiles ) для пользователя или роли.

Профили прав

Профиль в данном контексте – это набор свойств, который можно назначить той или иной роли. В англоязычной литературе профиль, используемый в RBAC, называется профилем прав (Rights Profile). Профиль прав объединяет различные авторизации, чтобы можно было назначить той или иной роли логически связанный набор авторизаций (например, профиль Operator может быть назначен роли, которая нужна для выполнения простых задач администрирования: выполнения резервных копий, управления доступом к принтеру и свойствами принтера). Информация о профилях хранится в файле /etc/security/prof_attr, поля в котором имеют следующие значения:

profname:res1:res2:desc:attr
  • profname – это имя профиля; регистр букв в имени имеет значение;
  • res1, res2 – зарезервированные поля;
  • desc – описание профиля, в котором указывается смысл данного профиля; это описание должно быть пригодно в качестве пояснения назначения профиля для пользователей приложений высокого уровня (типа Solaris Management Console);
  • attr – атрибуты в таком же виде, как и в других файлах RBAC, допустимые атрибуты – это auths и help. Атрибут auths предполагает указание в качестве его значения списка наборов прав (авторизаций) из числа определенных в файле /etc/security/auth_attr. Атрибут help требует указания страницы в формате HTML, содержащей справку по данному профилю.

В нижеследующем примере файла /etc/security/prof_attr опущены некоторые строки, каждый профиль прав описан отдельным абзацем, поскольку в реальном файле он описывается одной длинной строкой, которая не умещается на книжной странице:

#
# Copyright (c) 1999-2001 by Sun Microsystems, Inc. All rights reserved.
#
# /etc/security/prof_attr
#
# profiles attributes. see prof_attr(4)
#
#ident "@(#)prof_attr 1.1 01/10/23 SMI"
#
iPlanet Directory Management:::Manage the iPlanet directory
server:help=RtiDSMngmnt.html
Media Restore:::Restore files and file systems from backups:help=RtMediaRestore.
html
Name Service Security:::Security related name service scripts/commands:help=RtNameS
erviceSecure.html
Device Management:::Control Access to Removable Media:auths=solaris.
device.*,solaris.admin.serialmgr.*;help=RtDeviceMngmnt.html
Media Backup:::Backup files and file systems:help=RtMediaBkup.html
User Security:::Manage passwords, clearances:auths=solaris.role.*,solaris.
profmgr.*,solaris.admin.usermgr.*;help=RtUserSecurity.html
Audit Control:::Configure BSM auditing:auths=solaris.audit.config,solaris.jobs.
admin,solaris.admin.logsvc.purge,solaris.admin.logsvc.read;help=RtAuditCtrl.html
User Management:::Manage users, groups, home directory:auths=solaris.profmgr.
read,solaris.admin.usermgr.write,solaris.admin.usermgr.read;help=RtUserMngmnt.html
Mail Management:::Manage sendmail & queues:help=RtMailMngmnt.html
Printer Management:::Manage printers, daemons, spooling:help=RtPrntAdmin.
html;auths=solaris.admin.printer.read,solaris.admin.printer.modify,solaris.admin.
printer.delete
Log Management:::Manage log files:help=RtLogMngmnt.html
Audit Review:::Review BSM auditing logs:auths=solaris.audit.
read;help=RtAuditReview.html
Software Installation:::Add application software to the
system:help=RtSoftwareInstall.html;auths=solaris.admin.prodreg.read,solaris.admin.
prodreg.modify,solaris.admin.prodreg.delete,solaris.admin.dcmgr.admin,solaris.admin.
dcmgr.read,solaris.admin.patchmgr.*
Network Security:::Manage network and host security:help=RtNetSecure.
html;auths=solaris.network.*
Operator:::Can perform simple administrative tasks:profiles=Printer
Management,Media Backup,All;help=RtOperator.html
FTP Management:::Manage the FTP server:help=RtFTPMngmnt.html
Project Management:::Manage Solaris projects:auths=solaris.project.read,solaris.
project.write;help=RtProjManagement.html
DHCP Management:::Manage the DHCP service:auths=solaris.
dhcpmgr.*;help=RtDHCPMngmnt.html
System Administrator:::Can perform most non-security administrative
tasks:profiles=Audit Review,Printer Management,Cron Management,Device
Management,File System Management,Mail Management,Maintenance and Repair,Media
Backup,Media Restore,Name Service Management,Network Management,Object
Access Management,Process Management,Software Installation,User
Management,All;help=RtSysAdmin.html
Basic Solaris User:::Automatically assigned rights:auths=solaris.profmgr.
read,solaris.jobs.users,solaris.mail.mailq,solaris.admin.usermgr.read,solaris.admin.
logsvc.read,solaris.admin.fsmgr.read,solaris.admin.serialmgr.read,solaris.admin.
diskmgr.read,solaris.admin.procmgr.user,solaris.compsys.read,solaris.admin.printer.
read,solaris.admin.prodreg.read,solaris.admin.dcmgr.read,solaris.snmp.read,solaris.
project.read,solaris.admin.patchmgr.read,,solaris.network.hosts.read,solaris.admin.
volmgr.read;profiles=All;help=RtDefault.html
< Лекция 8 || Лекция 9: 123 || Лекция 10 >
Александр Тагильцев
Александр Тагильцев

Где проводится профессиональная переподготовка "Системное администрирование Windows"? Что-то я не совсем понял как проводится обучение.

Александр Гордеев
Александр Гордеев
Казахстан, Алматы, ТУРАН
Александр Даниленко
Александр Даниленко
Россия, Москва, 797, 1993