Личный блог Suvan`a.

Работая и играя с Linux... И что из этого иногда получается.

Управление доступом.

Рубрика: Безопасность -> Управление доступом
Метки: | | | |
Четверг, 18 июня 2009 г.
Просмотров: 6774

Хотя многопользовательская природа Linux и оставшихся Unix-систем рассмат­ривается как изрядно сильная, она все еще далека от совершенства. Са­мая эффективная концепция в мире компьютерной безопасности заключа­ется в предоставлении пользователю минимальных привилегий.

     Unix же не соответствует этому правилу, потому что предоставляет макси­мальный контроль над системой одному пользователю (root) или процес­су с полномочиями root. Во многих случаях даже обычным пользователям часто предоставляются чрезмерные полномочия. Например, зачем поль­зователю, который зарегистрировался в системе только для чтения почты, возможность компиляции исходного кода или запуска фоновых демонов?

     В некоторой степени данная проблема решается употреблением групп и SUDO. В этом случае администратор может определить для каждого пользователя действия, которые он может реализовывать с полномо­чиями root.


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

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

     Дискретное управление доступом (Discretionary Access Control, DAC).

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

     Владелец может контролировать не только тех пользователей, которым по­ложен доступ к объекту, но и контролировать режимы доступа (например, чтение, запись, выполнение).

     Мандатное управление доступом (Mandatory Access Control, MAC).

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

     Модель тип-домен (Domain Type Enforcement, DTE).

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

     Таблица DDT (Domain Definition Table - таблица определения домена) описывает, как домены и типы могут взаимодействовать друг с другом.

     Списки управления доступом (Access Control Lists, ACL).

     Unix-системах права доступа файлов определены режимами файлов:

 8 битов задают, кто может получить доступ к этому файлу, и определяют режимы доступа. Так как для прав доступа применяется 9 битов, то это позволяет создать три класса пользователей (владелец, группа, остальные) и три класса доступа (чтение, запись, выполнение).

     Файловые системы ext2 и ext3 (обе в настоящее время используются в Linux-системах) поддерживают расширенные атрибуты файлов (Extended Attributes, EA), позволяющие задать дополнительные параметры в виде пары имя: значение для каждого файла.

     Расширенные атрибуты могут употребляться для обслуживания прав до­ступа для дополнительных групп пользователей, что дает возможность создавать списки управления доступом (ACL). ACL надо считать расширением тра­диционной модели прав доступа.

     Управление доступом на основе ролей (Role-based Access Control, RBAC).

     В RBAC-системе каждому пользователю назначены одна или несколько определенных ролей (роль и UID - это не одно и то же), которые он может реализовывать в системе, то есть некоторые действия, которые разрешены этому пользователю.

     Например, администратор может создать роль для администрирования DNS-сервером, позволяя пользователю, которому назначена эта роль, соз­давать и изменить файлы зон и запускать/перезапускать named. Привилегии, предоставленные роли, жестко контролируются в соответствии с моделью минимальных привилегий.