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