UNIX обладает собственной файловой системой, которая поддерживает логическую организацию файла в виде последовательности байтов. По функциональному назначению различаются обычные файлы, каталоги и специальные файлы, содержащие соответственно системную и пользовательскую информацию, служебную информацию файловой системы, и специальную информацию. В каталог могут входить обычные, специальные файлы и каталоги более низкого уровня, специальный файл используется для унификации механизма доступа к файлам и внешним устройствам.
В UNIX для файла существует три типа имени: краткое, полное и относительное. Файловая система имеет иерархическую структуру, в которой уровни создаются за счет каталогов, содержащих информацию о файлах более низкого уровня. Каталог самого верхнего уровня называется корневым, имеет имя root и располагается на системном диске, остальные файлы могут содержаться на разных дисках, но все они иерархически связаны. Иерархическая структура удобна для безопасной многопользовательской работы: каждый пользователь локализуется в своем каталоге или поддереве каталогов, и вместе с тем все файлы в системе логически связаны. Элементами файловой системы являются также все устройства, подключаемые к защищаемому компьютеру (монтируемые к файловой системе). Поэтому разграничение доступа к ним осуществляется через файловою систему.
Вся необходимая операционной системе информация о файле, кроме его символьного имени, хранится в специальной системной таблице, называемой индексным дескриптором файла. Она содержит данные о типе файла, расположении на диске, размере в байтах, дате создания, последней модификации, обращению к файлу, привилегиях доступа и некоторую другую информацию. Индексные дескрипторы пронумерованы, хранятся в специальной области файловой системы и их номера является уникальными именами файлов.
А все дисковое пространство файловой системы UNIX делится на четыре области: (рис.3)
загрузочный блок, в котором хранится загрузчик операционной системы;
суперблок - содержит самую общую информацию о файловой системе: размер файловой системы, размер области индексных дескрипторов, число индексных дескрипторов, список свободных блоков и список свободных индексных дескрипторов, и другую административную информацию;
область индексных дескрипторов, порядок расположения индексных дескрипторов в которой соответствует их номерам;
область данных, в которой расположены обычные файлы и файлы-каталоги
Рис.3. Расположение файловой системы на диске
Доступ к файлу осуществляется путем последовательного просмотра всей цепочки каталогов, входящих в полное имя файла, и соответствующих им индексных дескрипторов. Отсюда и значительный минус файловой системы. Получив права на доступ к одному файлу, злоумышленник автоматически получает права прочитать все по пути всей цепочки каталогов. Однако доступ к любому файлу производится через его дескриптор (положительное целое число).
В UNIX для каждого процесса существует таблица всех портов, к которым он имеет доступ. Эта таблица хранится в ядре и пользователь не может получить к ней доступ. Процесс ссылается на порты, указывая номер их позиции в этой таблице, например, 1, 2 и так далее. Входы же таблицы содержат указатели на порты, определяют разрешенные над ними действия, и называются мандатами. Каждый процесс имеет только один список прав доступа. Права определяются по отношению к трем возможным операциям: получить, послать и послать один раз.
Право получить дает возможность прочитать сообщение из порта. В любой момент только один процесс может иметь право получить порт. Таким образом, для каждого порта имеется только один потенциальный получатель.
Мандат с правом послать позволяет отсылать сообщения определенному порту. Таким правом могут обладать многие процессы.
Право послать один раз также позволяет отослать сообщение, но только однократно. Этот механизм используется для протоколов типа запрос-ответ.
Имена прав доступа имеют действие только внутри процесса. Два процесса могут иметь доступ к одному и тому же порту, но использовать для этого разные имена. Список прав доступа привязан к определенному процессу. Когда этот процесс завершается или уничтожается, его список удаляется;
Требование-4. Криптографическая защита применяется во всех современных ОС В UNIX информация о пароле пользователей храниться в файле passwd в зашифрованном виде. При первоначальном задании или изменении пользовательского пароля операционная система UNIX генерирует два случайных байта, к которым добавляются байты пароля. Полученная в результате байтовая строка шифруется при помощи специальной криптографической процедуры Crypt2 (в качестве ключа которой используется пароль пользователя) и в зашифрованном виде вместе с двумя случайными байтами записывается в файл /etc/passwd. Однако это не гарантирует полной защиты пароля. Если злоумышленник имеет доступ к парольному файлу операционной системы, то он может скопировать этот файл на свой компьютер и затем воспользоваться одной из программ для взлома парольной защиты UNIX. Для защиты хранимых данных в составе ОС Unix имеется специальная утилита crypt, которая читает данные со стандартного ввода, шифрует их и направляет на стандартный вывод. Шифрование применяется при необходимости предоставления абсолютного права владения файлом. Зашифрованный файл можно прочитать лишь по предъявлении пароля;
Требование-5. Примечательно, что в ОС семейства UNIX, вследствие реализуемой ею концепции администрирования (не централизованной), невозможно обеспечить замкнутость (или целостность) программной среды, т.к невозможно установить атрибут "исполнение" на каталог (для каталога данный атрибут ограничивает возможность "обзора" содержимого). Поэтому при разграничении администратором доступа пользователей к каталогам, "владелец" создаваемого файла, может занести в свой каталог исполняемый файл и, как его "владелец", установить на файл атрибут "исполнение". Эта проблема непосредственно связана с реализуемой в ОС концепцией защиты информации.
Необходимо также отметить, что большинство ОС данного семейства не обладают возможностью контроля целостности файловой системы, то есть не содержат соответствующих встроенных средств. В лучшем случае дополнительными утилитами может быть реализован контроль конфигурационных файлов ОС по расписанию, в то время, как важнейшей возможностью данного механизма надо считать контроль целостности программ (приложений) перед их запуском, контроль файлов данных пользователя и др.;
Требование-6. Защита ОС семейства UNIX в общем случае базируется на трех основных механизмах: идентификации и аутентификация пользователя при входе в систему, разграничении прав доступа кфайловой системе, регистрации событий (т.е. аудит). Поддерживается единообразный механизм контроля доступа к файлам и справочникам файловой системы. Любой процесс может получить доступ к некоторому файлу только в том случае, если права доступа, описанные при файле, соответствуют возможностям данного процесса. Защита файлов от несанкционированного доступа в ОС UNIX основывается на трех фактах.
Во-первых, с любым процессом, создающим файл, ассоциирован некоторый уникальный в системе идентификатор пользователя (UID), который является идентификатором владельца вновь созданного файла.
Во-вторых, с каждым процессом, пытающимся получить некоторый доступ к файлу, связана пара идентификаторов - текущие идентификаторы пользователя и его группы.
В-третьих, каждому файлу однозначно соответствует его описатель - i-узел. Примечательно, что имена файлов и файлы как таковые - это не одно и то же. При наличии нескольких жестких связей с одним файлом несколько имен файла реально представляют один и тот же файл и ассоциированы с одним и тем же i-узлом. Любому используемому в файловой системе i-узлу всегда однозначно соответствует только один файл.
I-узел содержит достаточно много разнообразной информации позволяющей файловой системе оценить правомочность доступа данного процесса к данному файлу в требуемом режиме. Информация i-узла включает UID и GID текущего владельца файла. Кроме того, в i-узле файла хранится шкала, в которой отмечено, что может делать с файлом его владелец, пользователи, входящие в ту же группу, что и владелец, и что могут делать с файлом остальные пользователи.
Для пользователей можно устанавливать различные ограничения, такие как максимальный размер файла, максимальное число сегментов разделяемой памяти, максимально допустимое пространство на диске и т.д. Общие принципы защиты одинаковы для всех существующих вариантов системы;
Требование-7. Возможность учета, регистрации, отображения и документирования фактов атак реализована посредствам аудита. Но не обеспечивается регистрация выдачи документов на "твердую копию", а также некоторые другие требования к регистрации событий;
Требование-8. Возможность блокировки процесса, устройства или пользователя совершающего НСД так же не реализована.
ДОПОЛНИТЕЛЬНЫЕ ТРЕБОВАНИЯ:
Требование-9. В ОС семейства UNIX невозможно встроенными средствами гарантированно удалять остаточную информацию. Для этого в системе абсолютно отсутствуют соответствующие механизмы;
Требование-10. Возможность ограничения числа попыток входа в систему отсутствует.
Требование-11. В ОС UNIX реализована только дискреционная модель доступа, на основе которой производится разграничение прав доступа к информации. Однако реализуется она не в полном объёме, в частности не могут разграничиваться права доступа для суперпользователя (UID=0).Т. е. данный субъект доступа исключается из схемы управления доступом к ресурсам. Соответственно все запускаемые им процессы имеют неограниченный доступ к защищаемым ресурсам. Поэтому с этим недостатком системы защиты связано множество атак (большинство из которых основано на несанкционированном получение прав суперпользователя, запуске от его имени исполняемого файла);