Данная статья не является частью официальной документации и представлена как пояснительный материал.

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

  • Astra Linux Special Edition

 Комплекс средств защиты информации Astra Linux Special Edition (далее - КСЗ) оперирует следующими мандатными атрибутами:

  • метка конфиденциальности:
    • иерархический уровень конфиденциальности (далее по тексту — уровень конфиденциальности);
    • неиерархические категории конфиденциальности (далее по тексту — категории конфиденциальности);
  • метка целостности:
    • неиерархические категории целостности (далее по тексту - категории целостности);
    • иерархический (линейный) уровень целостности (доступен начиная с Astra Linux Special Edition очередное обновление 1.8);
  • мандатные атрибуты управления доступом (в данной статье не рассматриваются, см. статью Метка безопасности: структура и состав).

«Уровни» и «категории» конфиденциальности, «целостность» — в чем различия?

Атрибуты уровень конфиденциальности и категории конфиденциальности отвечают за то , чтобы информация не попадала к тому,  кто не уполномочен её получать.

Уровень конфиденциальности

Классический пример уровней конфиденциальности - это степени повышающейся секретности документов (сущностей): "Не секретно" - "ДСП" - "Секретно" - "Совершенно секретно", и соответствующие им уровни доступа к этим документам, назначенные персоналу (субъектам).

Очевидно, что в такой системе персоналу с уровнем доступа, например,  "ДСП", разрешено читать только  документы уровней "ДСП" и "Не секретно", и запрещено читать документы с более высокими уровнями конфиденциальности ("Секретно" и "Совершенно секретно").

Не столь очевидно, но персоналу с уровнем конфиденциальности, например "Секретно",  запрещено передавать (преднамеренно или случайно) персоналу с более низким уровнем доступа "ДСП" документы уровня "Секретно"  (теоретические подробности можно найти в многочисленных описаниях модели безопасности Белла-ЛаПадулы (англ. Bell-LaPadula).

Категории конфиденциальности

Для более точного управления доступом, в дополнение к разделению по уровням конфиденциальности, комплекс средств защиты информации КСЗ предоставляет возможность разделить сущности по категориям конфиденциальности.

Простой пример категорий конфиденциальности имеется в документе "Руководство по КСЗ. Часть 1 РУСБ.10015-01 97 01-1", где описано использование двух условных категорий "Танки" и "Самолёты". При этом персонал, работающий с "Танками", и имеющий соответствующую категорию конфиденциальности, не сможет ни получать сведения о "Самолётах", ни передавать сведения о "Танках" тем, кто работает с "Самолётами", но, в то же время, условному "Руководителю" могут быть предоставлены одновременно обе категории конфиденциальности, чтобы "Руководитель" мог получать полный объём информации.

Итак, с помощью параметров  уровень конфиденциальности и категории конфиденциальности КСЗ обеспечивает защиту от несанкционированной передачи информации:

  • невозможность прочитать информацию, к которой не предоставлен доступ:
    • "нижним" уровням запрещено читать информацию с "верхних" уровней;
    • всем запрещено читать информацию, на которую нет разрешенной категории конфиденциальности;
  • невозможность  передать информацию тому, кому не предоставлен доступ:
    • "верхним" уровням запрещено записывать свою информацию на "нижние" уровни;
    • всем запрещено передавать информацию тем, у кого нет соответствующей категории конфиденциальности.

Правила, по которым КСЗ определяет возможность  доступа к данным, описаны далее.

Целостность

Атрибут неиерархические категории целостности отвечает за то, чтобы информацию не могли изменять те, кому не положено её изменять. В первую очередь этот атрибут отвечает за безопасность самой информационной системы.

Модель контроля целостности с 2007 г. реализуется в механизме MIC (Mandatory Integrity Control) всех ОС семейства Microsoft Windows, где показала свою эффективность при противодействии компьютерным вирусам и атакам, направленным на несанкционированное повышение привилегий. 

Теоретические подробности модели контроля целостности можно найти в описаниях модели безопасности Биба (англ. Biba). В общем, требование защиты целостности выглядит так: субъект (процесс или пользователь) может записывать (изменять) только сущности (объекты) имеющие метки целостности меньшие или равные метке целостности субъекта (запись "вверх" запрещена).

  • в КСЗ Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.5) была реализована двухуровневая модель целостности;
  • начиная с Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.6) и Astra Linux Special Edition РУСБ.10265-01 (очередное обновление 8.1) модель целостности расширена до многоуровневой;
  • начиная с Astra Linux Special Edition РУСБ.10015-01 (очередное обновление 1.8) в модель целостности включен иерархический уровень целостности.

Правила по которым КСЗ определяет возможность  доступа к сущностям при работе с контролем целостности описаны далее. 

Сущности мандатного управления доступом

Система мандатного управления доступом работает со следующими понятиями:

  • субъекты мандатного доступа (пользователь, процесс) - те, кто выполняет операции, подлежащие мандатному контролю;

  • сущности (объекты) мандатного доступа (файл, каталог и т.д.) - то, с чем выполняются операции, подлежащие мандатному контролю.

и определяет условия, при которых субъектам разрешено выполнять операции с сущностями (создавать, получать доступ к содержимому (читать), изменять).

Каждому субъекту и каждой сущности назначаются определённые мандатные атрибуты (или не назначаются никакие, что приравнивается к минимальным (нулевым) мандатным атрибутам). 
Мандатные атрибуты субъекта/сущности объединяются в мандатный контекст этого субъекта/сущности. 

Решение о возможности или невозможности выполнения операций доступа автоматически принимается СЗИ на основании сравнения меток безопасности субъекта и сущности.

Мандатный контекст,  метка безопасности,  мандатные атрибуты управления доступом

См. Метка безопасности: структура и состав

Атрибуты мандатного управления доступом

  • Иерархический уровень конфиденциальности (уровень конфиденциальности) — единичное (скалярное) числовое значение (иногда называется  "уровень секретности" или просто "уровень").
    Каждой метке безопасности (классификационной метке в составе метки безопасности) в каждый момент времени может быть назначен один и только один уровень конфиденциальности.
    Числовые значения уровня конфиденциальности сущности:

    • все сравнимы между собой;

    • могут находится в диапазоне от 0 до 255, включая границы;

    • технически реализованы как 8-ми битная беззнаковая величина (uint8_t);

    • в пользовательских интерфейсах представляются десятичным значением или наименованием;

    • теоретически, множество возможных значений уровня конфиденциальности сущности представляет собой линейное упорядоченное множество относительно операции сравнения.


  • Неиерархические категории конфиденциальности (категории конфиденциальности)маска, состоящая из набора единичных значений категорий конфиденциальности (так же применяются название просто "категория") .
    В Astra Linux Special Edition 
    реализовано использование до 64-х единичных категорий конфиденциальности, таким образом, каждой метке безопасности  (классификационной метке в составе метки безопасности)
    в каждый момент времени могут быть назначены одновременно до 64-х категорий конфиденциальности. Единичные категории конфиденциальности несравнимы между собой.
    Числовые значения категории конфиденциальности сущности:

    • частично сравнимы между собой;

    • определяются как суммы значений назначенных единичных категорий конфиденциальности;

    • могут принимать значения от 0 до 0xFFFF FFFF FFFF FFFF, включая границы;

    • технически реализованы как 64-x битная маска,  беззнаковая величина (unsigned long long);

    • в пользовательских интерфейсах представляются шестнадцатеричным значением или списком наименований единичных категорий конфиденциальности;

    • теоретически, множество возможных значений категорий конфиденциальности сущности представляет собой полное частично упорядоченное множество относительно операции сравнения.


  • Неиерархические категории целостности (уровень целостности) - маска, состоящая из набора единичных значений уровней целостности (так же применяется  название "категория целостности", или просто "целостность").
    В Astra Linux Special Edition по умолчанию определены 7 ненулевых и несравнимых между собой единичных значений уровня целостности
    (при настройке Astra Linux Special Edition количество единичных значений может быть увеличено до 8):

    п/п

    Значение

    Битовая маска

    Комментарий


    000

    0000 0000

    Нулевой уровень. "Низкий", или "Low"

    1

    001

    0000 0001

    Уровень задействован как "Сетевые сервисы"

    2

    002

    0000 0010

    Уровень задействован как "Виртуализация"

    3

    004

    0000 0100

    Уровень задействован как "Специальное ПО"

    4

    008

    0000 1000

    Уровень задействован как "Графический сервер"

    5

    016

    0001 0000

    Свободен, может быть использован для СУБД

    6

    032

    0010 0000

    Свободен, может быть использован для сетевых сервисов

    7

    064

    0100 0000

    Зарезервирован, и может быть использован при поднятии max_ilev

    8

    128

    1000 0000

    Зарезервирован, и может быть использован при поднятии max_ilev

    Дополнительно зарезервировано специальное наименование набора категорий целостности "Высокий" ("High"), представляющего собой максимальную сумму единичных уровней, определённых в системе (имеет значение 63 при использовании 6-ти уровней, или значение 255 при использовании 8-ми уровней целостности).

    Таким образом, каждой метке безопасности (метке целостности в составе метки безопасности) в каждый момент времени могут быть назначены одновременно до 6-ти (8-ми) единичных уровней целостности.
    Числовые значения уровня целостности сущности:

    • частично сравнимы между собой;

    • определяются как суммы значений назначенных единичных уровней целостности;

    • могут принимать значения от 0 до 63 (255), включая границы;

    • технически реализованы как 8-ми битная маска,  беззнаковая величина (uint8_t);

    • в пользовательских интерфейсах представляются десятичным значением или наименованием единичного уровня целостности;

    • теоретически, множество возможных значений уровня целостности сущности представляет собой полное частично упорядоченное множество  относительно операции сравнения.

  • Иерархический уровень целостности (доступен начиная с Astra Linux Special Edition 1.8) — единичное (скалярное) числовое значение.
    Каждой метке метке целостности в каждый момент времени может быть назначен один и только один иерархический уровень целостности.
    Числовые значения иерархического уровня целостности сущности:
    • все сравнимы между собой;
    • могут находится в диапазоне от -128 до 127, включая границы;
    • технически реализованы как 8-ми битная величина со знаком;

    • в пользовательских интерфейсах представляются десятичным значением или наименованием;

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

Сравнение мандатных атрибутов

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

  • Иерархический уровень конфиденциальности (целостности) cL0 больше или равен иерархическому уровню конфиденциальности (целостности) cL1 (cL0 >= cL1),
    если численное значение cL0 больше или равно численному значению cL1.

  • Набор неиерархических категорий конфиденциальности (целостности) C0 больше или равен набору неиерархических категорий конфиденциальности (целостности) C1 ( C0 >= C1),
    если все биты набора C1 являются подмножеством набора бит C0 или наборы совпадают.
    В терминах побитовых операций: (C& C1) == C1.

Разрешения на доступ

Пусть метка безопасности субъекта содержит следующие атрибуты:

  • классификационная метка: 

    • уровень конфиденциальности cLсуб;

    • категории конфиденциальности cCсуб;

  • метка целостности:
    • категории целостности iCсуб;
    • иерархический уровень целостности iLсуб;

а метка безопасности сущности содержит атрибуты:

  • метка конфиденциальности:

    • уровень конфиденциальности cLоб;

    • категории конфиденциальности cCоб;

  • метка целостности
    • категории целостности iСоб;

    • иерархический уровень целостности iLоб;

Тогда:

  • Операция записи разрешена, если
    cLсуб = cLоб, cCсуб = Cоб, iLсуб >= iLоб, iСсуб >= об.
    то есть:

    • уровни конфиденциальности и категории конфиденциальности субъекта и сущности совпадают (метки конфиденциальности совпадают),

    • категории целостности субъекта не ниже категорий целостности сущности (теоретически - значение iLсуб принадлежит верхнему множеству iLоб);

    • иерархический уровень целостности субъекта на ниже иерархического уровня целостности объекта (iCсуб >= iCоб).
  • Операции чтения и исполнения разрешены, если
    cLсуб >= cLоб и cCсуб >= cCоб,
    то есть:
    • уровень конфиденциальности субъекта не ниже уровня конфиденциальности сущности;
    • единичные категории конфиденциальности сущности входят в единичные категории конфиденциальности субъекта (теоретически - значения сLсуб и cCсуб принадлежат верхним множествам cLоб и  cCоб соответственно).
    • в обновлениях Astra Linux Special Edition, выпущенных до очередного обновления x.8 разрешение на чтение не зависит от значений меток целостности, начиная с Astra Linux Special Edition x.8 метка целостности может быть учтена с помощью атрибута ssi.

Правила наследования и изменения

  • Если субъект создает другого субъекта (например, процесс создает процесс),
    то созданный субъект полностью наследует метку безопасности родителя,
    т.е. наследует и уровень конфиденциальности, и категории конфиденциальности и целостности.

  • Если субъект создает сущность (например, процесс создает файл),
    то созданная сущность наследует только классификационную метку родителя,
    т.е. наследует только уровень конфиденциальности и категории конфиденциальности, 
    и, независимо от уровня целостности родителя, всегда получает нулевую категорию целостности.

  • Изменять метку конфиденциальности сущности (т.е. изменять уровень конфиденциальности и/или категории конфиденциальности) 
    могут только субъекты c наличием привилегии PARSEC_CAP_CHMAC.

  • Изменять метку целостности сущности (т.е. изменять уровень целостности сущности)
    могут только субъекты c наличием привилегии PARSEC_CAP_CHMAC и с максимальным ("Высоким") уровнем целостности.