|
В операционной системе специального назначения Astra Linux Special Edition начиная с очередного обновления 1.4 и позднее возможна ситуация, когда при попытке изменения классификационной метки файлового объекта возникает "блокировка" внесения изменений:
Для устранения этой "блокировки" применяется флаг ccnr в метке безопасности каталога. Этот флаг определяет, что контейнер (каталог) может содержать сущности (файловые объекты) с различными классификационными метками, но не большими, чем его собственная классификационная метка. Чтение содержимого такого контейнера разрешается субъекту вне зависимости от значения его классификационной метки, при этом субъекту доступна информация только про находящиеся в этом контейнере сущности с классификационной меткой не большей, чем его собственная классификационная метка, либо про сущности-контейнеры, также имеющие мандатный атрибут управления доступом ccnr.
Корневому каталогу файловой системы по умолчанию присвоена максимальная метка безопасности (в т.ч. - максимальная классификационная метка) и специальный флаг . Проверить метку безопасности файлового объекта можно командой pdp-ls:
drwxr-xr-xm-- 22 root root Уровень_3:Высокий:Категория_1,Категория_2,0xfffffffffffffffc:ccnr / |
Для примера создадим в корневом каталоге файловой системы новый каталог:
| sudo mkdir /mydir0 |
Созданному каталогу по умолчанию будет присвоена нулевая классификационная метка:
| drwxr-xr-x 2 root root Уровень_0:Низкий:Нет:0x0 /mydir0 |
Изменим классификационную метку созданного каталога /mydir0 на 1:0:0:0 с помощью команды pdpl-file:
sudo pdpl-file 1:0:0:0 /mydir0 |
Теперь создадим ещё один каталог и запишем в него файл:
sudo mkdir /mydir1 |
Метка безопасности нового каталога:
drwxr-xr-x 2 root root Уровень_0:Низкий:Нет:0x0 /mydir1 |
Метка безопасности нового файла:
итого 0-rw-r--r-- 1 root root Уровень_0:Низкий:Нет:0x0 file |
Попробуем рекурсивно поменять метку безопасности на файле и директории:
|
Данное поведение обусловлено положениями ДП-модели контроля доступа, разработанной специалистами академии ФСБ России и реализованной в Astra Linux Special Edition, начиная с версии 1.4 (см. Метка безопасности: структура и состав и Уровень конфиденциальности, категории конфиденциальности и целостность: что есть что, и как с этим работать?)
Поскольку операция создания файла в каталоге является операцией записи, классификационные метки каталога и файла должны совпадать. Т.е. в каталогах с нулевой меткой безопасности (0:0:0:0) при отсутствии специальных флагов (см. ниже) могут содержаться только файлы с нулевой меткой безопасности (0:0:0:0). При изменении классификационной метки на поддереве файловой системы (как в примере выше) правомерность такого изменения проверяется для каждого объекта файловой системы в отдельности. В примере выше нельзя изменить классификационную метку каталога /mydir1 на 1:0:0:0 (повысить иерархический уровень конфиденциальности с 0 до 1), т.к. этот каталог содержит файл с нулевой классификационной меткой. В тоже время нельзя изменить классификационную метку файла /mydir1/file на 1:0:0:0, т.к. этот файл содержится в каталоге (т.е. объекте-контейнере) с нулевой классификационной меткой 0:0:0:0.
Как упоминалось выше, в Astra Linux Special Edition предусмотрены специальные флаги или "типы метки" для объектов-контейнеров, с помощью которых администратор безопасности может решить задачу рекурсивной смены метки безопасности на файловой системе. Их описание из руководства по КСЗ:
Дополнительные мандатные атрибуты управления доступом позволяют уточнять или изменять правила мандатного управления доступом для тех или иных субъектов или сущностей: В ОС предусмотрено существование объектов-контейнеров (например, каталогов), т.е. объектов, которые могут содержать другие объекты. Метка безопасности объекта-контейнера определяет максимальную метку безопасности вложенных объектов. Тип метки безопасности может использоваться для того, чтобы изменять ее эффективное действие: – тип метки ehole применяется к объектам-контейнерам и простым объектам для игнорирования мандатных правил разграничения доступа к ним; |
Для того чтобы установить (повысить) классификационную метку на поддереве файловой системы выполнить следующее:
Для созданного в предыдущем примере каталога /mydir1, имеющего нулевую классификационную метку и содержащего файл /mydir1/file, также имеющего нулевую классификационную метку:
Рекурсивно (флаг -R команды pdpl-file) изменить классификационные метки на каталогах и добавить флаг ccnr:
sudo pdpl-file -R 1:0:0:ccnr /mydir1 |
Рекурсивно изменить классификационные метки файлов, например:
sudo find /mydir1 -type f -exec pdpl-file 1:0:0:0 {} \; |
При возможности - рекурсивно убирать флаг ccnr с каталогов:
|
Для понижения значений атрибутов классификационной метки можно использовать ключ -r команды pdpl-file ("r-строчное" в отличие от ранее использованного ключа -R - рекурсивное выполнение). При использовании этого ключа рекурсивное изменение мандатных атрибутов выполняется в обратном порядке, начиная с вложенных файловых объектов. Такой порядок изменения позволяет сначала понизить классификационную метку файлов, а затем - классификационную метку содержащего их каталога. Реверсивный порядок внесения изменений при понижении значений меток необходим так как попытка понизить сначала классификационную метку каталога приведет к ошибке (каталог не может содержать файловые объекты с классификационной меткой большей чем метка самого каталога).
Порядок выполнения:
Рекурсивно (флаг -R команды pdpl-file) установить классификационные метки на каталогах, добавив флаг ccnr:
sudo pdpl-file -R 1:0:0:ccnr /mydir1 |
Рекурсивно изменить классификационные метки файловых объектов, например, обнулить классификационные метки в реверсивном порядке:
sudo pdpl-file -R -r 0:0:0:0 /mydir |