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
томах. Т.
3.