Стандартные модели доступа Unix

Информация - Компьютеры, программирование

Другие материалы по предмету Компьютеры, программирование

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

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

 

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

 

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

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

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

 

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

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

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

 

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

 

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

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

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

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

 

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

 

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

 

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

 

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

 

Мандатная модель ОС МСВС 3.0

доступ домен файл мандатный

Система мандатного управления доступом доставляет много проблем начинающим разработчикам под МСВС. Типичная проблема - невозможность работы с файлами, доступ к которым закрыт мандатными метками. Обычно эту проблему объясняют глючностью МСВС. Хотя дело вовсе не в МСВС. Всё дело в неправильном применении мандатных меток. А неправильное использование меток связано с непониманием основных принципов мандатного управления доступом. В этой статье я изложу основные принципы мандатной модели - основы безопасного доступа к файлам в этой операционной системе. Я специально не стал описывать практическую сторону вопроса, чтобы сфокусировать внимание именно на основах модели.

Ни для кого не секрет, что МСВС на самом деле есть старый, добрый RedHat (больше старый, чем добрый). Эти две операционные системы отличаются не многим. Кроме измененных картинок рабочего стола, и флага РФ на диалоге входа пользователей в систему, есть несколько различий, связанных с ограничениями, накладываемыми допусками к закрытым сведениям. Одним из таких отличий является присутствие в МСВС кроме дискреционного, ещё и мандатного управления доступом. Кроме повышенного уровня безопасности это доставляет ещё и проблемы, при разработке программ.

Кроме описанных выше проблем, бывают и более интересные случаи. Есть база данных, хранящаяся на сервере. С этой базой невозможно работать с компьютера, на котором установлен не нулевой уровень доступа. А дело в том, что МСВС во все отправляемые пакеты добавляет информацию о текущем уровне секретности, что делает эти пакеты непригодными для чтения.

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

Есть ещё много проблем. Все эти проблемы не так сложны, если знать чем они вызваны и как их решить. Но на практике, не всегда ясно, чем вызван сбой. А как решить проблему тем более не ясно. Кроме того, в библиотеке Qt 4.2 (насколько мне известно, 4.2 - текущая сертифицированная для МСВС версия библиотек) по ясным причинам отсутствуют классы для работы с мандатными метками. Всё это вместе осло