Файл: Основные защитные механизмы ОС семейства Unix (Шифрование тома в Mac OS).pdf
Добавлен: 29.06.2023
Просмотров: 67
Скачиваний: 5
Введение
Защита операционных систем имеет несколько аспектов. Можно рассмотреть несколько из них. Понятие разграничения прав пользователей и возможности шифрования данных в ОС Unix.
Файловая система (ФС) - это часть операционной системы, включающая:
- совокупность всех файлов на диске;
- наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
- комплекс системных программных средств, реализующих различные операции над файлами, такие как создание, уничтожение, чтение, запись, именование и поиск файлов.
Таким образом, файловая система играет роль промежуточного слоя, экранирующего все сложности физической организации долговременного хранилища данных, и создающего для программ более простую логическую модель этого хранилища, а также предоставляя им набор удобных в использовании команд для манипулирования файлами.
Одной из задач данной работы является изучение реализации механизма разграничения доступа к файлам в файловой системе.
Процесс преобразования открытых данных в зашифрованные и наоборот принято называть шифрованием, причем две составляющие этого процесса называют соответственно зашифрованием и расшифрованием.
Процесс преобразования открытых данных в зашифрованные и наоборот принято называть шифрованием, причем две составляющие этого процесса называют соответственно зашифрованием и расшифрованием.
Шифрование всего тома очень действенно при атаках offline, которые подразумевают отключённое состояние компьютера. В такой ситуации возможно подключение винчестера атакуемой машины к другой в качестве дополнительного, при этом, если том не зашифрован, то злоумышленник получит полный доступ к хранящейся на атакуемом драйве информации.
Существует масса причин зашифровать данные на своем жестком диске, но расплатой за безопасность данных будет снижение скорости работы системы.
Ещё одна задача данной работы рассмотреть шифрование тома в операционной системе семейства Unix.
В качестве конкретного примера для изучения выступала MacOS.
Цель работы – изучить методы защиты в операционной системе семейства Unix.
Задачи работы:
- изучить файловые системы;
- изучить механизм разрешений;
- изучить список контроля доступа;
- изучить алгоритмы шифрования;
- изучить методы шифрования тома.
Реализация механизма разграничения доступа к файлам
Описание некоторых существующих файловых систем
Unix File System - это объединённое понятие. Классическая UFS отводит на файл 16 байт - 14-буквенное имя файла и двухбайтный номер inode.
Современные UFS позволяют создавать длинные имена (до 255 символов), а имена файлов хранят не подряд, а более разумно - в двоичном дереве или hash-таблице, а номер inode может быть любым - четырехбайтным или восьмибайтным.
Сам блок inode содержит:
- количество ссылок на файл, место освобождается, когда количество ссылок становится равным 0;
- размер файла;
- дату и время создания/доступа/изменения файла;
- тип файла: обычный, директория, файл блочного устройства, поименный пайп.
- идентификатор хозяина файла и идентификатор группы;
- атрибуты доступа: атрибуты 'Read', 'Write' и 'eXecute' для хозяина файла (owner), для одногрупника (group) и для остальных (other). Данные атрибуты для каталога распространяют права на все файлы в каталоге;
- расширение ACL (список управления доступом) или ссылку на ACL;
- несколько ссылок на кластеры файловой системы.
Во многих UFS если после создания файла в кластер ничего не писалось (например, после открытия файла переместили указатель далеко-далеко и что-то туда записали), то под этот кластер не отводится место, а ссылке, которая должна на него указывать, присваивается 0 (это особенно актуально в свете использования hash-таблиц, которые обычно имеют внутри себя пустое пространство). То же самое делается если кластер оказывается заполнен нулями (незаполненное место считается залитым нулями, хотя полагаться на это программисту я бы не советовал).
Часть систем UFS реализованы как отказоустойчивые с журналированием.
Каталог с точки зрения ОС — это обычный файл, в котором размещены данные о всех файлах, которые принадлежат каталогу.
Элемент каталога состоит из двух полей:
- номер i-узла (порядковый номер в массиве i-узлов);
- имя файла.
Каждый каталог содержит два специальных имени: ‘.’ - сам каталог; ‘..’ – родительский каталог.
В общем случае, в каталоге могут неоднократно встречаться записи, ссылающиеся на один и тот же i-узел, но в каталоге не могут встречаться записи с одинаковыми именами. То есть с содержимым файла может быть связано произвольное количество имен. Это называется связыванием. Элемент каталога, относящийся к одному файлу называется связью.
Файлы существуют независимо от элементов каталогов, а связи в каталогах указывают действительно на физические файлы. Файл «исчезает» когда удаляется последняя связь, указывающая на него.
Чтобы получить доступ к файлу по имени, операционная система следует следующему алгоритму:
- находит это имя в каталоге, содержащем файл;
- получает номер i-узла файла;
- по номеру находит i- узел в области i-узлов;
- из i-узла получает адреса блоков, в которых расположены данные файла;
- по адресам блоков считывает блоки из области данных.
Теперь рассмотрим конкретнее файловые системы MAC.
HFS или иерархическая файловая система. Появилась в 1985 году. Каждый файл в ней состоит из двух частей: ветвь ресурсов, ветвь данных. В ресурсах содержится служебная информация о файле: дата создания, иконка, исполняемый код.
Так как HFS имела много ограничений, то в 1998 году была выпущена обновленная версия HFS+. Количество символов в имени файла было также расширено до 255. А максимальный размер файла вырос до 8 эксабайт.
Далее будет более подробна рассмотрена файловая система HFS+, так как именно она является на данный момент основной для компьютеров Apple.
HFS+ используется в Mac OS, начиная с версии 8.1. Структура тома очень близка к HFS, но содержит отличия – таблица 1.
Таблица 1
Сравнение основных характеристик HFS и HFS+
Параметр |
HFS |
HFS+ |
Длина имени файла |
31 |
255 |
Кодировка имен файлов |
Mac Roman |
Unicod |
Нода каталога |
512 байт |
4 Кбайт |
Максимальный размер файла |
231 |
263 |
Все изменения в HFS+ были внесены для максимального использования дискового пространства для больших томов и фрагментированных файлов.
Дисковое пространство делится на блоки одинакового размера. Для идентификации блока используется 32 бита.
На диске помимо самих данных хранится служебная информация - метаданные. Например, такие:
- заголовок тома – общая информация: размер блока, расположение других метаданных на диске. Заголовок любого тома всегда находится по фиксированному смещению 1024 байта.;
- карта тома, в ней отмечен статус каждого блока на диске;
- файл каталог - хранит информацию о размещении файлов и папок на диске;
- extents overflow file - метаданные, которые не разместились в каталоге;
- файл атрибутов - используется для контроля доступа;
- журнал - данные о транзакциях операций, выполненных для тома.
Файл каталог, extents overflow file, файл атрибутов - представлены в виде B-деревьев.
Структура заголовки тома HFS+:
struct HFSPlusVolumeHeader
{
UInt16 signature;
UInt16 version;
UInt32 attributes;
UInt32 lastMountedVersion;
UInt32 journalInfoBlock;
UInt32 createDate;
UInt32 modifyDate;
UInt32 backupDate;
UInt32 checkedDate;
UInt32 fi leCount;
UInt32 folderCount;
UInt32 blockSize;
UInt32 totalBlocks;
UInt32 freeBlocks;
UInt32 nextAllocation;
UInt32 rsrcClumpSize;
UInt32 dataClumpSize;
HFSCatalogNodeID nextCatalogID;
UInt32 writeCount;
UInt64 encodingsBitmap;
UInt32 fi nderInfo[8];
HFSPlusForkData allocationFile;
HFSPlusForkData extentsFile;
HFSPlusForkData catalogFile;
HFSPlusForkData attributesFile;
HFSPlusForkData startupFile;
};
Файл каталог содержит в виде отдельных записей метаданные файлов и папок. В данном файле содержится информация о размещении файла. Это 8 записей из стартового блока и длины блоков непрерывной части фрагмента файла. Если места не хватает, то остальные данные о фрагментах файла размещаются в Extent overflow file.
Журнал HFS+ - хранит данные об операциях на диске. Именно поэтому, система является журналируемой. Это непрерывный набор блоков транзакций. Он никогда не перемещается и остаётся постоянного размера. На одну транзакцию выделяется один или несколько списков блоков. Список состоит из заголовка и данных.
Журналирование можно запретить или разрешить.
Начиная с Mac OS X 10.3 журналирование разрешено по умолчанию. Данный журнал был добавлен в HFS+ для поддержки целостности файловой системы в случае сбоя.
Таким образом, простое действие пользователя вызывает целый ряд изменений в файловой системе.
Например, создание файла:
- добавление Node ID нового файла – это уникальный номер;
- карта тома изменяется, отображая информацию о занятых блоках;
- если файл фрагментирован, то данные добавляются и в Extent overflow;
- обновляется файл атрибутов;
- обновляется заголовок тома.
Все эти изменения могут привести к тому, что файловая система будет повреждена, поскольку в процессе этих действий может произойти отключение питания или извлечение съемного носителя. Журналирование как раз и помогает решить эту проблему.
Транзакция в журналируемой HFS+ включает следующие шаги:
- копирование всех предполагаемых изменений в журнал;
- записать журнал из буфера на диск;
- записать факт транзакции в заголовок журнала;
- провести изменения;
- пометить транзакцию удачно завершённой.
HFS+ проверяет журнал на предмет незавершенных транзакций. Если таковые есть, то файловая система будет исправлена.
Mac OS X поддерживает несколько учётных записей и многопользовательскую работу. Для защиты файлов и каталогов доступа к файлу введена система разрешений, которая применяется практически во всех ОС.
В Mac OS X каждая учётная запись принадлежит какой-то группе. Владельцем файла считается его создатель. Владелец имеет право определить, какие пользователи и группы могут читать, изменять и выполнять файлы.
В Mac по умолчанию все пользователи без права администратора попадают в группу staff. Если пользователь получает права администратора, то они также попадают в группу admin, но при этом, из группы staff не выходят.
Пользователи группы staff имеют право на чтение, изменение только своих файлов. Члены группы admin имеют право изменять параметры системы, записывать файлы в папку Applications. Но также серьёзно ограничены в правах.
Пользователь root может читать, выполнить и записать в любой файл или каталог. По умолчанию, данная учётная запись скрыта. В современных системах для выполнения команд от имени суперпользователя используется команда «sudo», что позволяет оставлять эту учётную запись скрытой, а систему, соответственно, менее уязвимой. Но не все пользователи имеют право использовать эту команду. Чтобы пользователь имел право воспользоваться командой «sudo», он должен быть членом ещё одной группы, которая называется wheel. Все члены группы admin автоматически добавляются в состав wheel.
Для создания пользователей и групп требуется войти в настройки и выбрать пункт «пользователи и группы» (рисунок 1).
Рисунок 1. Панель настройки «пользователи и группы»
Для создания группы или пользователя нужно нажать на «+». Для зачисления пользователя в группу требуется её выбрать и появится окно выбора пользователей для группы – рисунок 2.
Рисунок 2. Настройка группы
Разрешения файловой системы HFS+ имеют две категории: традиционные разрешения для файлов и списков управления доступом.
Рассмотрим традиционные разрешения для файлов.
Итак, в Mac OS X используется трехуровневая иерархия пользователей:
- все пользователи;
- группы пользователей;
- конкретный пользователь.
В связи с этой трехуровневой организацией пользователей каждый файл обладает тремя атрибутами: