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.