BC/NW 2009; №2 (15):11.4

 

АНАЛИЗ СРЕДСТВ РАЗГРАНИЧЕНИЯ ДОСТУПА К ОБЪЕКТАМ В ОПЕРАЦИОННЫХ СИСТЕМАХ MICROSOFT WINDOWS И LINUX

Хорев П.Б.

(ГОУВПО «Московский энергетический институт (технический университет)», Россия)

Основу политики безопасности для компьютерной системы любой организации составляют правила разграничения доступа к объектам компьютерной системы. Разграничение доступа к компьютерным ресурсам базируется на различных моделях управления доступом. В данном докладе будут представлены результаты сравнительного анализа средств разграничения доступа к объектам операционных систем Microsoft Windows и Linux.

 

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

Мандатная модель разграничения доступа предполагает назначение объекту метки (грифа) секретности, а субъекту – уровня допуска. Доступ субъектов к объектам в мандатной модели определяется на основании правил «не читать выше» и «не записывать ниже». Использование мандатной модели, в отличие от дискреционного управления доступом,  предотвращает утечку конфиденциальной информации, но снижает производительность компьютерной системы.

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

В операционных системах Microsoft Windows и операционных системах клона Unix обычно применяется дискреционное управление доступом к объектам. Объекты разграничения доступа в Windows имеют дескриптор безопасности, содержащий информацию о владельце объекта (его идентификаторе безопасности SID, Security Identifier) и дискреционном списке управления доступом к объекту (Discretionary Access Control List, DACL), правом редактирования которого обладают владелец объекта и администратор. Владелец файла может лишить администратора права изменения разрешений на доступ к объекту. Администратор обладает специальной привилегией смены владельца на другого пользователя, обладающего такой же специальной привилегией (например, на самого себя).

Разграничение доступа к файлам и папкам возможно с помощью Проводника Windows (вкладки Безопасность функций Свойства контекстного меню выделенного объекта), принтеру – с помощью функции Принтеры и факсы Панели управления (вкладки Безопасность функции Свойства выделенного принтера), реестру Windows – с помощью Редактора реестра regedit.exe (функции Разрешения контекстного меню выделенного раздела).

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

- обзор папок (выполнение файлов);

- содержание папки (чтение данных из файла);

- чтение атрибутов;

- чтение дополнительных атрибутов;

- создание файлов (запись данных в файл);

- создание папок (дозапись данных в файл);

- запись атрибутов;

- запись дополнительных атрибутов;

- удаление подпапок и файлов (только для папок).

Стандартные права доступа к объектам операционной системы Windows не зависят от типа объекта. Определены следующие стандартные права доступа;

- удаление;

- чтение разрешений;

- смена разрешений (для реестра это право названо Запись DAC);

- смена владельца;

- синхронизация (для реестра это право названо Уведомление).

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

Существующий в Windows механизм наследования облегчает администраторам задачи назначения разрешений и управления ими. Благодаря этому механизму разрешения, установленные для контейнера, автоматически распространяются на все объекты этого контейнера. Например, файлы, создаваемые в папке, наследуют разрешения этой папки.

Если требуется предотвратить наследование разрешений, при настройке особых (отличающихся от родовых) разрешений на доступ к родительской папке (разделу реестра) можно выбрать режим «Применять эти разрешения к объектам и контейнерам только внутри этого контейнера». В случаях, когда необходимо отменить наследование разрешений только для некоторых файлов или подпапок (подразделов реестра), можно отменить режим «Наследовать от родительского объекта применимые к дочерним объектам разрешения, добавляя их к явно заданным в этом окне».

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

К вновь созданным в сеансе пользователя объектам права доступа в Windows назначаются одним из следующих способов:

1.     На основе явно заданного субъектом (управляемой пользователем программой) и корректного по форме дескриптора безопасности (например, при вызове системных функций CreateFile или CreateDirectory при создании файлов или папок);

2.     На основе механизма наследования (если при создании объекта дескриптор безопасности не задается);

3.     Из полученного при начале сеанса маркера доступа субъекта, создающего объект (если наследование невозможно).

 

Индекс файла в Linux содержит информацию о владельце файла (его идентификаторе, User Identifier, UID), его первичной группе (идентификаторе группы, Group Identifier, GID) и векторе доступа к файлу. В отличие от Windows вектор доступа в Linux состоит всегда из трех элементов, определяющих права доступа к объекту трех категорий субъектов (владельца, членов его группы и всех остальных). Суперпользователь в Linux имеет полные, никем не ограничиваемые права доступа к любому объекту.

В Linux существуют только три права доступа – чтение, запись и выполнение. Для каталогов право чтения означает разрешение на просмотр содержания каталога, право записи – разрешение создания, добавления и удаления файлов в каталоге, право выполнения – разрешение на поиск файла в каталоге по его имени.

Ограниченность прав доступа к объектам в ОС Linux вынуждает использовать так называемые дополнительные биты доступа в каждой из его частей:

- SUID (дополнительный бит доступа в подвекторе прав владельца). Обеспечивает выполнение файла с правами не пользователя, а владельца файла (необходимо, например, для предоставления права записи в файл учетных записей /etc/passwd непривилегированному пользователю при смене им своего пароля).

- SGID (дополнительный бит в подвекторе прав членов группы владельца файла). Обеспечивает выполнение файла с правами не пользователя, а членов группы владельца файла.

- Sticky (дополнительный бит в подвекторе прав всех остальных пользователей). Запрещает удаление и переименование в общем каталоге файлов, созданных другими пользователям.

 

Управлять значением вектора доступа к вновь созданным в сеансе пользователя файлам в ОС Linux администратор может с помощью системной переменной umask, значение которой может устанавливаться в файлах пользователей .login, .cshrc или .profile либо в системном файле / etc / profile. Значение umask определяет сбрасываемые биты в элементах вектора доступа к создаваемому объекту.

Сравнивая реализацию дискреционного разграничения доступа к объектам в операционных системах Microsoft Windows и Linux, можно отметить следующее:

- Использование привилегии администратора Windows «Овладение файлами или иными объектами» более безопасно, чем работа в Linux с правами суперпользователя, но менее удобна с точки зрения простоты администрирования.

- Большое количество разнообразных прав доступа к объектам в Windows увеличивает гибкость механизма управлении доступом, но повышает риск ошибочного наделения пользователя или группы избыточными правами доступа.

- В Linux администратору проще управлять правами доступа к объектам, создаваемым пользователем в ходе своей работы в системе.

- В Windows возможно назначение индивидуальных прав доступа к объекту для любого отдельно взятого пользователя или группы.

 

В расширении подсистемы разграничения доступа к файлам для операционной системы Linux Linux ACLs – реализована возможность настроить индивидуальные права доступа к файлам «с точностью» до отдельного пользователя.

В расширении базовой модели безопасности операционной системы Linux (Security-Enhanced Linux Linux с улучшенной безопасностью, SELinux) реализовано мандатное разграничение доступа к объектам в рамках модели домен-тип [1]. В этой модели каждый процесс запускается в определённом домене безопасности (с определенным уровнем допуска), а всем объектам ставится в соответствие определённый тип (метка секретности).

Список правил, ограничивающих возможности доступа доменов к типам, называется политикой и задаётся один раз в момент установки системы. Описание политики в SELinux − это набор текстовых файлов, которые могут быть скомпилированы и загружены в память ядра Linux при запуске системы.

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

Поддержка ролевого разграничения доступа включена в серверные операционные системы Windows и в серверную операционную систему ALT Linux Castle. Программисты и администраторы Windows-систем могут использовать преимущества ролевого разграничения доступа к объектам с помощью оснастки Диспетчер авторизации (Authorization Manager) [2].

В соответствии с реализованной в ОС ALT Linux Castle ролевой моделью управления доступом определяются роли и типы, а затем определяется, что может делать та или иная роль с тем или иным типом [3]. Таким образом, создается некоторая абстрактная модель, которая затем связывается к реальным пользователям, программам и файлам. Независимость модели от реальных субъектов и объектов позволяет производить мгновенную перенастройку политики безопасности быстрым изменением связей ролей и (или) типов. Кроме того, это очень удобно для создания готовых решений, например, распределения ролей и типов для защиты содержимого страниц Web-узла. Интересной особенностью является возможность запуска программ с ролью, отличной от роли пользователя, производящего запуск. В результате можно, например, произвести такие настройки, что прямой доступ к диску будут иметь только разрешенные программы, а все остальные пользователи системы (включая администратора) будут лишены такой возможности.

 

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


 

Литература

1.     SELinux: теория и практика безопасности. http://www.interface.ru/ home.asp?artId=2699.

2.     Хорев П.Б. Ролевое управление доступом к ресурсам в операционной системе Microsoft Windows Server 2003. Труды XVI международной научно-технической конференции «Информационные средства и технологии». В 3 томах. Т. 2. М.: Издательский дом МЭИ, 2008. С. 80-88.

3.     ALTLinux Castle. Общие сведения. http://www.linuxcenter.ru/ lib/articles/distrib/altlinux/castle.phtml.