Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ГОСы - ответы (КБ-71).doc
Скачиваний:
1
Добавлен:
01.05.2025
Размер:
7.88 Mб
Скачать

33. Компоненты системы защиты, модель разграничения доступа и способности в операционных системах семейства Linux.

Защита ОС семейства UNIX в общем случае базируется на 3-х основных механизмах:

  • идентификация и аутентификация пользователя при входе в систему;

  • разграничение прав доступа к файловой системе, в основе которого лежит реализация дискреционной модели доступа;

  • аудит, то есть регистрация событий.

У каждого пользователя системы имеется:

  • ID пользователя – Имя пользователя;

  • Хеш-свертка в файле паролей;

  • UID.

При входе в систему на основании ID и AU процессу пользователя присваивается UID. У встроенного пользователя «root» UID = 0. Проверка прав доступа для процессов с UID=0 не осуществляется.

При этом отметим, что для различных клонов ОС семейства UNIX возможности механизмов защиты могут незначительно различаться, однако будем рассматривать ОС UNIX в общем случае, без учета некоторых незначительных особенностей отдельных ОС этого семейства.

В ОС Linux низкоуровневые методы аутентификации интегрируются в виде единого высокоуровневого API, представляющего собой набор разделяемых библиотек (PAM, подключаемые модули аутентификации). Данная технология позволяет предоставить единые механизмы для управления, встраивания прикладных программ в процессе аутентификации.

Для обеспечения поддержки различных моделей информационной безопасности, в ОС Linux реализуется технология LSM(Linux Security Modules). Данная технология является стандартной частью ядра Linux выше версии 2.6.LSM разрабатывалась для возможности реализации мандатной модели доступа в операционных системах Linux.

Построение файловой системы и разграничение доступа к файловым объектам имеет особенности, присущие данному семейству ОС. Рассмотрим кратко эти особенности. Все дисковые накопители (тома) объединяются в единую ВИРТУАЛЬНУЮ ФАЙЛОВУЮ СИСТЕМУ путем операции монтирования тома. При этом содержимое тома проецируется на выбранный каталог файловой системы. Элементами файловой системы являются также все устройства, подключаемые к защищаемому компьютеру (монтируемые к файловой системе). Поэтому разграничение доступа к ним осуществляется через файловою систему.

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

Пользователь имеет уникальные символьный идентификатор (имя) и числовой идентификатор (UID). Символьный идентификатор предъявляется пользователем при входе в систему, числовой используется операционной системой для определения прав пользователя в системе (доступ к файлам и т.д.).

В Linux для каждого файла (все ресурсы в ОС Linux представимы в виде файлов, в том числе устройства ввода-вывода) устанавливаются разрешения доступа для трех категорий субъектов: владелец файла, члены той же группы, что и владелец, и все остальные пользователи. Для каждой из этих категорий устанавливаются права на чтение (r), запись (w) и выполнение (x). Набор прав доступа объекта может быть представлен в виде символьной строки. Например, запись «rwxr-xr--» означает, что владелец файла может делать с ним все, что угодно; члены его группы могут читать и исполнять файл, но не могут записывать, а прочим пользователям доступно только чтение.

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

Для каждого объекта существует субъект-владелец, который сам определяет тех, кто имеет доступ к объекту, а также разрешенные операции доступа. Основными операциями доступа являются READ (чтение), WRITE (запись) и EXECUTE (выполнение, имеет смысл только для программ). Таким образом, в модели дискреционного доступа для каждой пары субъект-объект устанавливается набор разрешенных операций доступа. При запросе доступа к объекту, система ищет субъекта в списке прав доступа объекта и разрешает доступ если субъект присутствует в списке и разрешенный тип доступа включает требуемый тип. Иначе доступ не предоставляется. Классическая система дискреционного контроля доступа является «закрытой» в том смысле, что изначально объект не доступен никому, и в списке прав доступа описывается набор разрешений. Также существуют «открытые» системы, в которых по умолчанию все имеют полный доступ к объектам, а в списке доступа описывается набор ограничений.

Однако в Linux не в полном объеме реализуется дискреционная модель доступа, в частности не могут разграничиваться права доступа для пользователя «root» (UID = 0). Т.е. данный субъект доступа исключается из схемы управления доступом к ресурсам. Соответственно все запускаемые им процессы имеют неограниченный доступ к защищаемым ресурсам. Как мы увидим позднее, с этим недостатком системы защиты связано множество атак, в частности:

- несанкционированное получение прав root;

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

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

В основном, Linux-приложения записывают журнальную информацию в файлы, находящиеся в каталоге /var/log, а отдельные дистрибутивы используют для этого каталог /var/adm. Большинство журнальных файлов – это обычные текстовые файлы, в которые записываются сообщения о тех или иных событиях, происходящих в системе. Важно различать журнальную регистрацию на уровне ядра, на этапе начальной загрузки (журналы стартовых скриптов) и журналы демонов. Сообщения, генерируемые ядром, обрабатываются демоном klogd. Демон может или просто создать образ журнального буфера ядра и завершить работу, или динамически извлекать сообщения из буфера по мере их появления и записывать их в файл.

Регистрацией сообщений стартовых скриптов в отдельных системах занимается программа initlog.

Утилита, которая присутствует практически во всех дистрибутивах Linux и занимается журнальной ротаций, называется logrotate.