Содержание

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

В операционной системе специального назначения "Astra Linux Special Edition" релиз "Смоленск" (далее ОС СН) начиная с версии 1.4 и позднее невозможна рекурсивная смена метки безопасности на поддереве файловой системы. Например, ситуация возникает при попытке установить метку безопасности на файле или директории превышающую метку безопасности директории, содержащей данный файл или директорию.

Пример:

Корень файловой системы имеет максимальную метку
А безопасности, а также специальный флаг - ccnr, позволяющий записывать в корень файлы с меткой безопасности >= максимальный

Command
borderColor#c2e6ff
bgColor#e2f3ff
Title root@dcm14:~# pdp-ls -Md
title root@dcm14:~# pdp-ls -Md
drwxr-xr-xm 30 root root Уровень_3:Низкий:0xffffffffffffffff:CCNRALL

...



Данное поведение обусловлено положениями ДП-модели контроля доступа, разработанной специалистами академии ФСБ России и реализованной в ОС СН, начиная с версии 1.4.

Механизм мандатного контроля доступа реализован, как и механизм дискреционного контроля доступа, в ядре ОС. При этом, принятие решения о запрете или разрешении доступа субъекта к объекту принимается на основе типа операции (чтение/запись/исполнение), мандатного контекста безопасности субъекта и метки безопасности объекта.
Правила принятия решения могут быть записаны следующим образом. Пусть контекст безопасности субъекта содержит уровень L0, уровень целостности iL0 и категории C0, а метка безопасности объекта содержит уровень L1, уровень целостности iL1 и категории C1. Определим операции сравнения для уровней и категорий:
1) уровень L0 меньше уровня L1 (L0<L1), если численное значение L0 меньше численного значения L1;
2) уровень L0 равен уровню L1 (L0==L1), если численные значения L0 и L1 совпадают;
3) уровень целостности iL0 меньше уровня iL1 (iL0<iL1), если численное значение iL0 меньше численного значения iL1;
4) уровень целостности iL0 равен уровню целостности iL1 (iL0==iL1), если численные значения iL0 и iL1 совпадают;
5) категории C0 меньше категорий C1 (C0<C1), если все биты набора C0 являются подмножеством набора бит C1;
6) категории С0 равны категориям C1 (C0==C1), если значения C0 и C1 совпадают;
7) операция записи разрешена, если L0==L1, iL0>=iL1 и C0==C1;
8) операция чтения разрешена, если L0>=L1, C0>=C1, ∀iL0, ∀iL1;
9) операция исполнения разрешена, если L0>=L1 и C0>=C1, ∀iL0, ∀iL1.

Поскольку запись файла в директорию является операцией записи, метки безопасности директории и файла должны совпадать. Т.е. в директории с меткой безопасности 0:0:0:0 при отсутствии специальных флагов (см. ниже) могут быть записаны только файлы с меткой безопасности 0:0:0:0. При изменении метки безопасности на поддерево файловой системы (как в примере выше) правомерность такого изменения проверяется для каждого объекта файловой системы в отдельности. В примере выше нельзя сменить метку безопасности на директорию /mydir1 на 1:0:0:0, т.к. она содержит файл с меткой безопасности 0:0:0:0. В тоже время нельзя сменить метку безопасности файла /mydir1/file на 1:0:0:0, т.к. файл содержится в директории (т.е. объекте-контейнере) с меткой безопасности 0:0:0:0.

Порядок установки мандатных атрибутов


Как упоминалось выше, в ОС СН есть специальные флаги или "типы метки" для объектов-контейнеров, с помощью которых администратор безопасности может решить задачу рекурсивной смены метки безопасности на файловой системе. Их описание из руководства по КСЗ:

В ОС предусмотрено существование объектов-контейнеров (например, каталогов), т.е. объектов, которые могут содержать другие объекты. Метка безопасности объекта-контейнера определяет максимальную метку безопасности вложенных объектов. Тип метки безопасности может использоваться для того, чтобы изменять ее эффективное действие:

– тип метки ehole применяется к объектам-контейнерам и простым объектам для игнорирования мандатных правил разграничения доступа к ним;
– тип метки ccnr применяется к объектам-контейнерам и определяет, что объект 31 РУСБ.10015-01 97 01-1 контейнер может содержать объекты с различными мандатными метками безопасности, но не превышающими метку безопасности объекта-контейнера;
– тип метки ccnri применяется к объектам-контейнерам и определяет, что объект контейнер может содержать объекты с различными уровнями целостности, но не превышающими уровень целостности объекта-контейнера;
Ненулевой тип метки безопасности может быть установлен только привилегированным процессом. Перечисленные типы могут использоваться совместно. Таким образом, объект-контейнер может иметь тип: ccnr,ccnri,ehole.

Для того чтобы сменить метку безопасности на поддереве файловой системы в общем виде достаточно выполнить следующее:

1. Установить на все директории поддерева, начиная с верхней, мандатную метку безопасности с требуемым уровнем, набором категорий и флагом ccnr
2. Установить на все файлы поддерева мандатную метку безопасности с требуемым требуемыми уровнем конфиденциальности и набором категорий конфиденциальности
3. Снять (если не нужна) c директорий флаг ccnr

Пример:

...


Пример bash-сценария для рекурсивной смены мандатной метки безопасности.
ВНИМАНИЕ! Сценарий приведен именно для примера. Можете использовать его, но без гарантий.

...