Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.
Комментарий: Automatic update to correct links

Оглавление


Информация

Данная статья применима к:

  • ОС СН Смоленск 1.6;
  • ОС СН Смоленск 1.6 с установленным обновлением безопасности БЮЛЛЕТЕНЬ № 20190222SE16;
  • ОС СН Ленинград 8.1.



Подробно все изменения описаны в РУК КСЗ по ОС СН Смоленск 1.6

Значения по умолчанию

  • По умолчанию, после установки ОС:
    • включен режим МКЦ ОС:
      • установлен параметр ядра `max_ilev = 63`
      • все процессы, начиная от init до менеджера входа fly-dm, имеют уровень целостности 63 (если в конфигурации юнита явно не указано иное).
      • Графический сервер Xorg по умолчанию работает не от имени суперпользователя root (uid 0), а от пользователя, и работает на выделенном уровне МКЦ 8.

    • МКЦ на ФС после установки по умолчанию не включен,
      и должен быть включен после настройки ОС администратором.

    • в системе МРД настроено 4 уровня конфиденциальности (0 - 3), количество которых можно увеличить до 255 (см. Администрирование системы)

  • По умолчанию, при входе через консоль или графический интерфейс:

    Информация
    • Администратор, созданный при установке ОС, получает 63-й «красный» уровень МКЦ (при входе предусмотрен диалог выбора значений мандатных атрибутов для сессии);
    • Пользователи получают нулевой «синий» уровень МКЦ.


  • По умолчанию, при входе через SSH:

    Информация
    • Администраторы из группы astra-admin автоматически получают 63-й «красный» уровень МКЦ (диалог выбора значений мандатных атрибутов при входе НЕ ПРЕДУСМОТРЕН);
    • Пользователи получают нулевой «синий» уровень МКЦ.


  • Для отдельных юнитов, в дальнейшем, возможно задать свой "выделенный уровень МКЦ" (например, apache можно запустить на первом уровне МКЦ), так же возможно задать для юнита systemd свой уровень конфиденциальности.
    После включения МКЦ на ФС юниты или процессы на выделенном уровне МКЦ (например, на уровнях 1 или 2) не смогут записывать в файлы и каталоги, на которые будет установлено максимальное значение МКЦ 63 (см. set-fs-ilev или fly-admin-smc). Рекомендуемые уровни МКЦ:
Информация

для сетевых сервисов: - 1

для подсистем виртуализации (для гостевых систем, отличных от ОС СН Смоленск и контейнеров LXC на нулевом уровне): 2,

для внешнего СПО: 4

  • X-сервер в общем случае (если есть поддержка KMS в ядре) по умолчанию работает от имени пользователя fly-dm под выделенным уровнем МКЦ 8.

  • При установке системы следующим устройствам автоматически присваивается уровень конфиденциальности 3:
Информация

/dev/sd* 
/dev/vd*
/dev/hd*



Мандатные атрибуты управления доступом (флаги)

Описание значений мандатных атрибутов управления флагов см. в статье Метка безопасности: структура и состав

  • На контейнеры (каталоги) больше нельзя устанавливать флаги ehole.
  • На контейнеры допускается только установка флагов
    • ccnr
    • ccnri


Информация
Для упрощения адаптации пользователей к особенностям реализации мандатного контроля целостности, при установке обновления безопасности БЮЛЛЕТЕНЬ № 20190222SE16 значение мандатного атрибута ccnri принудительно фиксируется во включенном состоянии для всех каталогов файловой системы. Мандатный атрибут ccnri определяет, что контейнер может содержать сущности с различными уровнями целостности, но не большими, чем его собственный уровень целостности и применяется только к контейнерам  (каталогам файловой системы). 



  • Флаг ehole доступен, как и ранее, для установки на файлах, и, дополнительно, введен новый флаг
Информация
whole

дающий разрешение записывать в файл «снизу вверх» (чтение по обычным правилам МРД).
Новый флаг whole также нельзя устанавливать на контейнерах.


  • Запись в каталог с высокой целостностью
    не может быть выполнена процессом с более низким уровнем целостности чем у контейнера (каталога).

  • Пользователь не может производить запись в контейнер (каталог) с установленным больше нуля уровнем МКЦ
    если он не вошел в систему на уровне МКЦ равном или большем уровню МКЦ контейнера,
    или не обладает привилегией parsec_cap_ignmacint.

  • Пользователь не может производить запись в контейнер (каталог)
    с установленной (ненулевой) меткой конфиденциальности и с установленным флагом ccnr
    информации, отличной от уровня конфиденциальности контейнера,
    если он не зашел под уровнем конфиденциальности равным уровню конфиденциальности контейнера (каталога),
    или не обладает привилегиями parsec_cap_ignmaccat и parsec_cap_ignmaclvl.

  • Eсли в загрузчике указать параметр ядра
Информация
parsec.ccnr_relax=1

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


Уровни целостности

  • Сравнение уровней целостности проводится по битовой маске:
Информация

запись в объект (или остановка процесса или юнита) разрешена,
если набор бит уровня МКЦ субъекта
"включает" в себя (операция сравнения &) набор бит уровня МКЦ объекта.


  • В системе определен набор из восьми ненулевых изолированных уровней МКЦ:
Информация

000 0b00000000 - Нулевой уровень. "Низкий", или "Low"
001 0b00000001 - Уровень задействован как "Сетевые сервисы"
002 0b00000010 - Уровень задействован как "Виртуализация"
004 0b00000100 - Уровень задействован как "Специальное ПО"
008 0b00001000 - Уровень задействован как "Графический сервер"
016 0b00010000 - Свободен, может быть использован для СУБД.
032 0b00100000 - Свободен, может быть использован для сетевых сервисов.
064 0b01000000 - Зарезервирован, и может быть использован при поднятии max_ilev.
128 0b10000000 - Зарезервирован, и может быть использован при поднятии max_ilev.

При этом, изолированные уровни 1,2,4,8-задействованы,
уровни 16,32 также могут быть использованы для различных сетевых сервисов и СПО.
Уровни 64 и 128 зарезервированы, и могут быть использованы только при одновременном поднятии max_ilev.


  • После установки контроля целостности на ФС максимальный уровень целостности (по умолчанию 63 т.е. 0b00111111) будет установлен на следующие каталоги:

    Раскрыть
    /etc
    /lib
    /lib64
    /lib32
    /bin
    /sbin
    /boot
    /root
    /opt
    /srv
    /usr

    соответственно, запись в эти объекты ФС будет возможна только для процессов, имеющих уровни целостности

Информация

 63 0b00111111
127 0b01111111
191 0b10111111
255 0b11111111



Уровни целостности для systemd-служб

  • Механизм одновременной работы с разными уровнями sumac теперь доступен только для тех пользователей,
    которым задана привилегия parsec_cap_sumac.

  • В ОС реализована возможность назначения уровня целостности и конфиденциальности для systmed-служб.
    Для этого в unit-файле службы <name>.service нужно добавить параметр PDPLabel с нужной меткой безопасности в разделе [Service]:
Информация
[Service]
PDPLabel=<Уровень>:<Целостность>:<Категории>

Формат метки аналогичен принятому в системе Parsec (pdpl-file --help), за исключением поля типа метки: метка процесса не может иметь флагов ccnr/ehole/whole.

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

После редактирования unit-файла вызовите:

Информация
systemctl daemon-reload; systemctl restart <name>.service

Для проверки реально полученной метки процесса определите pid процесса:

Информация
systemctl status <name>.service

и по определённому pid процесса узнайте метку

Информация
pdpl-ps <pid>

Parsec-привилегии

  • С выходом обновления безопасности добавлена новая Parsec-привилегия PARSEC_CAP_IPC_OWNER, отменяющая  мандатные ограничения при работе с объектами IPC, такими как shared memory, message queue и т.д.
    (Parsec-аналог Linux-привилегии CAP_IPC_OWNER);

  • С выходом обновления безопасности добавлена новая Parsec-привилегия PARSEC_CAP_BYPASS_KIOSK, позволяющая игнорировать ограничения киоска;

  • Добавлена Parsec-привилегия PARSEC_CAP_SUMAC, позволяющая запускать процессы другим уровнем конфиденциальности.

Поддерживаются привилегии, добавленные в предыдущей версии ОС СН Смоленск:

  • Привилегия PARSEC_CAP_UNSAFE_SETXATTR, позволяющая устанавливать мандатные атрибуты объектов ФС без учета мандатных атрибутов родительского объекта-контейнера.
    Привилегия используется для восстановления объектов ФС из резервных копий, и действует только после установки значения 1  для параметра /parsecfs/unsecure_setxattr.

  • Привилегия PARSEC_CAP_IGNMACINT, разрешающая игнорировать мандатную политику по уровням целостности