Курс лекций «Проблемы безопасности в информационных технологиях»


Защита файловой системы в ОС Novell Netware



жүктеу 4.51 Mb.
бет19/44
Дата13.09.2017
өлшемі4.51 Mb.
түріКурс лекций
1   ...   15   16   17   18   19   20   21   22   ...   44

Защита файловой системы в ОС Novell Netware


Хотя Netware формально (и реально) относится к сетевым операционным системам, в этом разделе («безопасность автономных операционных систем») будет рассмотрена её безопасность, относящаяся к предоставляемым ею файловым ресурсам и к разграничению доступа к ним. С точки зрения пользовательской операционной системы (MS-DOS, Windows, Linux, MAC OS) Netware, по сути, имитирует локальный дисковый ресурс, но со своими механизмами защиты и разграничения доступа, иногда заметно отличающимися от таковых в пользовательской ОС, для которой предоставлен дисковый ресурс. Несмотря на то, что сегодня уже не существует фирмы Novell, а её ОС Netware давно объявлена EOL (“End-Of-Life”), в этой операционной системе существуют некоторые интересные и уникальные механизмы, заслуживающие отдельного изучения.

Файлы и каталоги (папки) в файловой системе Netware могут иметь атрибуты, с помощью которых может быть реализована т.н. «мягкая защита». Список атрибутов для файла:




  • Ro Read-only

  • Rw Read-write

  • H Hidden

  • Sy System

  • P Purge

  • A Archive-needed

  • Di Delete-inhibit

  • Ri Rename-inhibit

  • Sh Shareable

  • T Transactional

  • Ci Copy-inhibit

  • X eXecute-only

  • Dm Don't migrate

  • Ic Immediate compress

  • Dc Don't compress

  • Ds Don't suballocate

  • N Normal

Статусные флаги для файлов:




  • Co Compressed

  • Cc Can't compress

  • M Migrated

Некоторые атрибуты, например, Sy, Hi, A – напрямую один-в-один «транслируются» в клиентскую ОС в обычные для этой ОС атрибуты (речь о MS-DOS и Windwos). Некоторые другие – Di, Ri – будучи установлены поодиночке или вместе, «транслируются» в атрибут Ro (ReadOnly), более «понятный» клиентской системе. «Мягкая защита» с использованием атрибутов заключается в том, что если у файла установлен Di (Delete-inhibit), то его не сможет удалить даже пользователь, имеющий полные права на файл, включая администратора. То же самое касается атрибута Ri (Rename-inhibit) – файл с таким атрибутом не сможет переименовать даже пользователь с полными правами. Конечно, сбросив Di/Ri, пользователь в итоге сможет удалить/переименовать файл, но пока эти атрибуты установлены – у него это сделать не получится.



N (Normal) – это не реальный атрибут, при указании N в команде модификации атрибутов все атрибуты файла сбрасываются в умолчательное (нормальное) состояние.

Любопытная история связана с X (eXecute-only) – для Windows-систем этот атрибут не играет практически никакой роли, изначально он предназначался для клиентских систем с MAC OS, где разделялось выполнение и чтение, и можно было явно разрешить выполнение некоторого программного файла, не разрешая его чтения (копирования). Но, будучи установлен штатными средствами, утилитами Netware, этот бит предотвращает возможность копирования файла, в т.ч. и средствами Windows. Казалось бы, невелика беда, сбросить X – и нет проблемы. Но тут разработчики Netware устроили некоторую странность – установить eXecute-only можно, а вот сбросить – почему-то нельзя4. Единственной нештатной возможностью сбросить X оказалась сторонняя утилита командной строки, работающая вызовами MAC OS при работе с файлами.

Список атрибутов для директорий (папок) заметно меньше списка для файлов:


  • N Normal

  • Sy System

  • H Hidden

  • Di Delete-inhibit

  • Ri Rename-inhibit

  • P Purge

  • Dc Don't compress

  • Ic Immediate compress

  • Dm Don't migrate

Следует дополнительно отметить атрибут P (Purge) – если он установлен у файла и/или директории, то после удаления файла/файлов они сразу же уничтожаются необратимо5. Без этого бита Netware предоставляет возможность восстановить удалённые (например, по ошибке) файлы простым вызовом команды из контекстного меню. Функционал, к которому Windows «шла» почти два десятилетия.

Основным механизмом назначения прав на файловой системе Netware является назначение т.н. Trustees (Опекунов – не очень благозвучный перевод) на объект: файл или каталог. В Netware реализована дискреционная модель доступа к ресурсам, т.е. у каждого объекта есть сопутствующий список доступа (ACL), куда вписываются опекуны. Права наследуются вниз по файловой иерархии, причём модель наследования в данном случае динамическая. Это означает очень быструю процедуру собственно назначении (одна запись в один ACL, сравните со статическим «прорастанием» – записью во все ACL всех нижележащих объектов). Но, соответственно, для динамики присутствует замедление доступа к объекту, т.к. права на объект вычисляются именно в момент обращения. Надо отметить, что понимая основную проблему (скорость вычисления прав) динамической модели наследования, разработчики Netware сумели реализовать очень быструю и эффективную проверку прав при обращении к объекту, практически не замедляющую работу с файлами.

Проверка усложняется тем, что для вычисления эффективных прав доступа на файл требуется не только «пробежаться» вверх по файловой иерархии, находя явные назначения для пользователя, но необходимо проделать то же самое для объектов, с которыми пользователь эквивалентен по безопасности. В частности, пользователь всегда эквивалентен по безопасности группам, членом которых он является. При работе со службой каталога eDir объект эквивалентен по безопасности всем объектам, имена которых образуют правую часть его полного составного имени. Т.е., если у нас есть пользователь с именем .CN=User.OU=HR.OU=Dep.O=Firma, то этот пользователь эквивалентен по безопасности всей организации Firma, организационному подразделению Dep и отделу HR, в котором он работает. Это означает необходимость поиска назначений прав «вверх» по иерархии для всех объектов, входящих в полное составное имя.

Есть ещё одна эквивалентность по безопасности – явно назначенная. Т.е., пользователь (явно) получает все права того объекта, который администратор делает эквивалентным ему по безопасности. С удалением исходного объекта эти права у пользователя, естественно, исчезают.

Список возможных прав в Netware не различается для файла и каталога. Прав (биты) ровно восемь штук – это не удивительно, т.к. для их определения использовался 8-битовый байт.



Ещё один механизм, используемый при работе с правами в файловой системе Netware – фильтр наследуемых прав (IRF – Inherited Right Filter). Это свойство файла (каталога), определяющее, какие права данный файл (каталог) наследует от родительского каталога. По сути это битовая маска, в которой биты по позиции совпадают с соответствующими битами прав.

Наследуемые права – права, передаваемые (распространяемые) от родительского каталога. Вычисляются с использованием операции логического ‘И’ (AND, &) пришедших «сверху» прав и фильтра наследуемых прав (IRF). Эффективные права – права, которыми пользователь реально обладает по отношению к файлу или каталогу.


Право

Обозначение

Описание

Supervisor

S

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

Read

R

Чтение существующего файла (просмотр содержимого текстового файла, просмотр записей в файле базы данных и т.д.)

Write

W

Запись в существующий файл (добавление, удаление частей текста, редактирование записей базы данных)

Create

C

Создание в каталоге новых файлов (и запись в них) и подкаталогов. На уровне файла позволяет восстанавливать файл, если он был ошибочно удалён (восстановить файл == воссоздать).

Erase

E

Удаление существующих файлов и каталогов

Modify

M

Изменение имён и атрибутов (файлов и каталогов), но не содержимого файлов

File Scan

F

Просмотр в каталоге имен файлов и подкаталогов. По отношению к файлу – возможность видеть структуру каталогов от корневого уровня до этого файла (путь доступа)

Acces Control

A

Возможность предоставлять другим пользователям все права, кроме Supervisor. Возможность изменять фильтр наследуемых прав IRF (право «раздавать права»).

Механизм разграничения прав в Netware заметно превосходит базовый механизм в файловых системах ОС Unix и по некоторым параметрам превосходит механизмы NTFS. Например, в Windows NT, если у пользователя нет никаких прав на некоторый каталог, он тем не менее, будет видеть его при просмотре содержимого вышележащей папки. «Войти» в него он не сможет, но название видеть будет. Для «домашних» каталогов, имя которых обычно совпадает с именем пользователя-владельца, это даёт возможность простому пользователю узнать список всех зарегистрированных на данном компьютере пользователей. В серверных версиях Windows (не во всех) есть возможность, используя дополнительные средства, скрыть от пользователя имена недоступных каталогов. В Netware для этого ничего не надо предпринимать специально. В Netware интересна другая особенность – можно «зайти» в директорию, на которую у пользователя нет прав, просто командой CD name, зная имя этой директории. Увидеть/модифицировать ничего не удастся – прав действительно нет. Но перейти в «невидимую» директорию возможно.

Очень удобный механизм по сокращению (урезанию) доступных прав предоставляет IRF. С его помощью доступные права можно только уменьшить, т.к. IRF – это всего лишь битовая маска, «пропускающая» бит права при установленной «1», и не пропускающая при «0». Больше, чем прав есть, IRF по определению добавить не может.

Явно назначенные права имеют приоритет перед фильтром наследуемых прав (IRF). Т.е., если вы хотите полностью закрыть доступ в какой-либо каталог, оставив его только для определённого пользователя, то решением может быть IRF, состоящий из всех «0» плюс явное назначение опекуном данного каталога нужного пользователя. Здесь присутствует один тонкий момент: если пользователь, обладающий полными правами (кроме Supervisor), например, в своём домашнем каталоге, захочет «сократить» права на какой-то из своих подкаталогов, используя IRF, то сначала он должен явно назначить себе полные права на этот подкаталог, а уже потом – использовать «урезающий» IRF. Обратная последовательность приведёт к тому, что установив ограничивающий фильтр IRF, пользователь отберёт права и у себя, в том числе. После этого останется только обратиться к администратору.

Как и в случае с атрибутом eXecute Only, в назначении прав у Netware не обошлось без странностей: в частности, бит (право) Supervisor, назначенный на папку (каталог, директорию), не фильтруется IRF. Хуже того – он не может быть удален ниже по иерархии даже явным переназначением прав6.

Из-за механизма эквивалентности по безопасности и отсутствия возможности поставить Deny вместо Allow (как в NTFS), в Netware проблема, когда пользователь должен иметь меньшие права, чем группа, в которую он входит, решается единственно возможным способом – удалением пользователя из этой группы.

Штатными средствами в Netware проблема удаления содержимого директории с одновременным запретом удаления самой директории решается менее элегантно, по сравнению с тем, как это реализовано в NTFS (в NTFS «Удаление подпапок и файлов» различается от «Удаления» самой директории). Т.е., если вы в Netware назначили право Erase на какую-то папку, то пользователи получают возможность удаления и её содержимого, и самой папки. Но решение этой проблемы существует: в защищаемой папке создаётся любой (н-р, пустой) файл, на него ставятся права (или используется IRF), предотвращающее его удаление (и, возможно, даже показ имени). После этого содержащую этот файл директорию удалить будет невозможно, т.к. она непуста. А удалить «спрятанный» в ней файл – не даст отсутствие прав на эту операцию.

Нужно отметить, что так же, как и в NTFS, возможность удаления файла – это не свойство содержащего его каталога, а свойство самого файла.

Следует отметить несколько «перегруженное» Modify, с не очень удобным разделением полномочий: бит Modify разрешает переименование файла/каталога и модификацию его атрибутов. Было бы удобнее разделить эти возможности по модификации на две разных группы. Можно сказать, что часто оказывается так, что права в Netware несколько «грубоваты» и «крупноваты», тогда как механизм расширенных прав в NTFS позволяет выполнять более тонкую настройку разграничений, и имеет меньшую гранулярность.

Одним из механизмов, которого в файловой системе Netware определённо не хватает по сравнению с NTFS, можно назвать отсутствие чего-либо подобного механизму Creator-Owner (или, хотя бы, аналога sticky bit в Unix). Несмотря на то, что владельцы у файлов и каталогов в Netware существуют, назначать им права в некотором роде «обезличенно» (т.е., не зная заранее имя объекта-владельца) – невозможно.

По сравнению с Windows NT, включение/исключение пользователя в группу/из группы «на лету» (т.е., когда пользователь уже «вошёл» в сервер) срабатывает немедленно и не требует процедуры logoff-logon, как это требуется проделывать в Windows.

Ещё одним существенным достоинством файловой системы Netware можно назвать встроенную возможность установки файловых квот, причём квот двух видов: для пользователя и для каталога. Первый вариант означает, что пользователь с установленной для него квотой, не сможет создать (быть владельцем) файлов, чей суммарный объём превосходит квоту. Аналогичный механизм присутствует в Windows. А вот возможность квотировать каталог, объём содержимого которого не может превысить установленной на него квоты, Windows получила совсем недавно и только для некоторых серверных, но не всех, версий ОС. В Netware поставить квоту на каталог (папку) можно было с 1991 года.






Достарыңызбен бөлісу:
1   ...   15   16   17   18   19   20   21   22   ...   44


©kzref.org 2019
әкімшілігінің қараңыз

    Басты бет