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

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

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Оглавление


Информация
titleДанная статья применима к:
  • Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6)
    с установленным обновлением безопасности БЮЛЛЕТЕНЬ № 20190222SE16;

  • Astra Linux Special Edition РУСБ.10015-16 исп. 1

  • Astra Linux Special Edition РУСБ.10015-16 исп. 2

  • Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1)



Подробно все изменения описаны в РУК КСЗ по Astra Linux Special Edition  РУСБ.10015-01 (очередное обновление 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;
    • для подсистем виртуализации (для гостевых систем, отличных от ОС Astra Linux Special Edition РУСБ.10015-01 и контейнеров 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.

  • В ОС реализована возможность назначения уровня целостности и конфиденциальности классификационной метки для служб под управлением systmedsystemd. Для этого в unit-файле службы (обычно имя файла формируется как <имя_службы>.service для служб или  <имя_службы>.socket для сокетов) нужно добавить параметр PDPLabel с нужной меткой безопасности в раздел [Service]. Для редактирования юнит-файлов следует использовать инструмент systemctl edit. Команда:

    Command

    sudo systemctl edit <имя_службы>.service --full

    В итоге содержимое unit-файла должно иметь вид:

    Блок кода
    [Service]
    ...
    PDPLabel=<иерархический_уровень_конфиденциальности>;<уровень_целостности>;<неиерархические_категории_конфиденциальности>
    ...

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

этом, при
  • задании уровней мандатных привилегий рекомендуется использовать числовые обозначения, так как при разрешении

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

вызовите
  • выполнить команды:

info
  • Command
    systemctl daemon-reload
;

  • systemctl restart
<name>
  • <имя_службы>.service

    Для проверки реально полученной метки

процесса определите pid процесса:
  • безопасности процесса:

    • определить числовой идентификатор (PID) процесса командой:

      Command
info
    • systemctl status
<name>
    • <имя_службы>.service
и

    • по определённому

pid
    • PID процесса

узнайте
    • получить метку безопасности:

info
    • Command
      pdpl-ps
<pid>
    • <PID>



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

  • С выходом оперативного обновления  БЮЛЛЕТЕНЬ № 20181229SE16 (оперативное обновление 1):
    • добавлена новая Parsec-привилегия PARSEC_CAP_IPC_OWNER (версия Parsec 2.5.265 и выше), отменяющая  мандатные ограничения при работе с объектами IPC, такими как shared memory, message queue и т.д.
      (Parsec-аналог Linux-привилегии CAP_IPC_OWNER);
    • добавлена новая Parsec-привилегия PARSEC_CAP_BYPASS_KIOSK (версия Parsec 2.5.257 и выше), позволяющая игнорировать ограничения киоска;
  • Добавлена Parsec-привилегия PARSEC_CAP_SUMAC  (версия Parsec 2.5.251 и выше), позволяющая запускать процессы с другим уровнем конфиденциальностидругой классификационной меткой.

Поддерживаются привилегии, добавленные в предыдущем очередном обновлении ОС Astra Linux Special Edition РУСБ.10015-01:

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