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

Вы просматриваете старую версию данной страницы. Смотрите текущую версию.

Сравнить с текущим просмотр истории страницы

Версия 1 Следующий »

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

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

Можно использовать псевдоним CCNRA (соответствует одновременно установленным флагам ccnr и ccnri).


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

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


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

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

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

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

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


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

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


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

1 0b00000001 (уровень задействован)
2 0b00000010 (уровень задействован)
4 0b00000100 (уровень задействован)
8 0b00001000 (уровень задействован для X-сервера)
16 0b00010000 (может быть использован для сетевых сервисов)
32 0b00100000 (может быть использован для сетевых сервисов)
64 0b01000000 (зарезервирован, и может быть использован при поднятии max_ilev)
128 0b10000000 (зарезервирован, и может быть использован при поднятии max_ilev)

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


  • Уровень МКЦ после установки контроля целостности на ФС по умолчанию будет равен 63 (0b00111111), и запись в объекты ФС возможна только для процессов с уровнями

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



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


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

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

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

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

systemctl daemon-reload; systemctl restart <name>.service

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

systemctl status <name>.service

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

pdpl-ps <pid>
  • Нет меток