Найти в Дзене
ИТ Проповедник

Практика №1: "Мандатное управление доступом в Astra Linux 1.7.x - работа с файлами на локальном компьютере", Архивирование и Восстановление.

Оглавление

+++++ Теория МРД доступна по ссылкам в статье и в видео +++++

+++++ Видео к этой статье смотрите по ссылке +++++

Настройка уровней и категорий конфиденциальности

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

  1. Войдите в систему локальным администратором с высоким уровнем целостности, который имеет право выполнять команды от имени root с использованием утилиты sudo.
  2. Откройте оснастку «Параметры системы > Безопасность > Политика безопасности».
  3. Откройте страницу «Мандатные атрибуты».
  4. На вкладке «Категории» настройте, например, следующие записи:
  • 0 – Мотострелковые_войска
  • 1 – Танковые_войска
  • 2 – Ракетные_войска_и_артиллерия
  • 3 – Войска_ПВО_Сухопутных_войск
  • 4 – Специальные_войска_и_службы
Настройка категорий конфиденциальности
Настройка категорий конфиденциальности

5. На вкладке «Уровни конфиденциальности» удалите созданные ранее уровни и создайте, например:

  • 0 – Документы_общего_пользования
  • 1 – Для_служебного_пользования
  • 2 – Секретно
  • 3 – Совершенно_секретно
  • 4 – Особой_важности
Настройка уровней конфиденциальности
Настройка уровней конфиденциальности

6. В файле /usr/sbin/pdp-init-fs поднимите значение максимального уровня конфиденциальности sysmaxlev до 4:

sudo nano /usr/sbin/pdp-init-fs
-4

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

8. Присвоить администратору МРД максимальный уровень конфиденциальности и все категории, если нужно, чтобы администратор мог работать с секретными документами. В общем случае, когда администратор занят только администрированием, а работой с документами - отдельные сотрудники, присваивать администратору уровни и категории конфиденциальности не нужно, у него и так есть все необходимые права (это показано в видео к этой статье, ссылка на видео - в начале статьи).

-5

Создание структуры каталогов для секретных документов

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

1. Войдите в систему локальным администратором с высоким уровнем целостности, который имеет право выполнять команды от имени root с использованием утилиты sudo.

2. Создайте в корне системного диска каталог «Документы», назначьте на него максимальный уровень конфиденциальности (4), все доступные в системе категории (-1) и атрибут ccnr, чтобы в этом каталоге можно было хранить объекты с любыми метками конфиденциальности:

sudo mkdir /Документы
sudo pdpl-file 4:0:-1:ccnr /Документы

3. В созданном каталоге «Документы» cоздайте каталог «Мотострелковые_войска» и назначьте на него максимальный уровень конфиденциальности (4), категорию «Мотострелковые_войска» (т.е. значение 0x1, что в двоичном виде соответствует числу 0b1) и атрибут ccnr, чтобы в этом каталоге можно было хранить секретные документы мотострелковых войск с разными уровнями конфиденциальности:

sudo mkdir /Документы/Мотострелковые_войска
sudo pdpl-file 4:0:0x1:ccnr /Документы/Мотострелковые_войска

Создайте остальные каталоги по названию категорий, например для категории "Танковые войска":

sudo mkdir /Документы/Танковые_войска
sudo pdpl-file 4:0:0x2:ccnr /Документы/Танковые_войска
-6

4. Создайте каталоги по уровням конфиденциальности и назначьте на них категорию «Мотострелковые_войска» 0x1 и соответствующий уровень конфиденциальности:

sudo mkdir /Документы/Мотострелковые_войска/Документы_общего_пользования
sudo pdpl-file 0:0:0x1:0 /Документы/Мотострелковые_войска/Документы_общего_пользования
sudo mkdir /Документы/Мотострелковые_войска/Для_служебного_пользования
sudo pdpl-file 1:0:0x1:0 /Документы/Мотострелковые_войска/Для_служебного_пользования
sudo mkdir /Документы/Мотострелковые_войска/Секретно
sudo pdpl-file 2:0:0x1:0 /Документы/Мотострелковые_войска/Секретно
sudo mkdir /Документы/Мотострелковые_войска/Совершенно_секретно
sudo pdpl-file 3:0:0x1:0 /Документы/Мотострелковые_войска/Совершенно_секретно
sudo mkdir /Документы/Мотострелковые_войска/Особой_важности
sudo pdpl-file 4:0:0x1:0 /Документы/Мотострелковые_войска/Особой_важности
-7

Повторите действия для остальных категорий конфиденциальности, например для создания каталога у уровнем конфиденциальности "Секретно" и категорией "Танковые_войска":

sudo mkdir /Документы/Танковые_войска/Секретно
sudo pdpl-file 2:0:0x2:0 /Документы/Танковые_войска/Секретно
-8

5. Настройте дискреционные права для пользователя localadmin (настройка дискреционных прав для рядового пользователя показано в видео к этой статье по ссылке)

sudo chmod -R 700 /Документы/
-9
sudo setfacl --modify u:localadmin:rx /Документы/
-10
sudo setfacl --recursive --modify u:localadmin:rwx,d:u:localadmin:rwx /Документы/Мотострелковые_войска/
-11
sudo setfacl --modify u:localadmin:rx /Документы/Мотострелковые_войска/
-12

Повторите действия для остальных категорий конфиденциальности.

Настройка учетных записей для работы с конфиденциальными документами

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

1. Войдите в систему локальным администратором с высоким уровнем целостности, который имеет право выполнять команды от имени root с использованием утилиты sudo.

2. Откройте оснастку «Панель управления > Безопасность > Политика безопасности».

3. Откройте страницу «Пользователи > localadmin»

4. На вкладке «МРД» настройте:

  • Максимальный уровень конфиденциальности «4:Особой_важности»
  • Максимальные категории конфиденциальности 0-4
Настройка учетной записи localadmin
Настройка учетной записи localadmin

5. Попробуйте выполнить вход в систему с уровнем конфиденциальности «Особой_важности» и категорией «Мотострелковые_войска».

Ограничение доступа к документам через механизм мандатного управления доступом

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

1. Выполните вход в систему пользователем localadmin с уровнем конфиденциальности «Секретно» и категорией «Мотострелковые_войска».

2. Проверьте, что в документах вы можете видеть только каталог «Мотострелковые_войска», а внутри него папки не выше уровня «Секретно»:

ls -l /Документы/
-14
-15
ls -l /Документы/Мотострелковые_войска/
-16

3. Проверьте, что вы можете создать файл в каталоге с тем же уровнем конфиденциальности:

echo "Секретная информация" > /Документы/Мотострелковые_войска/Секретно/документ.txt
cat /Документы/Мотострелковые_войска/Секретно/документ.txt Секретная информация
-17

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

cp /Документы/Мотострелковые_войска/Секретно/документ.txt /Документы/Мотострелковые_войска/Для_служебного_пользования/
-18

Попробуйте еще раз, используя операции чтения/записи:

cat /Документы/Мотострелковые_войска/Секретно/документ.txt > /Документы/Мотострелковые_войска/Для_служебного_пользования/документ.txt
-19

Засекречивание документов

Изменять метки безопасности объектов файловой системы с помощью утилиты pdpl-file может только администратор МКЦ/МРД, но создать поток, приводящий к тому, что информация из файлов с низкой классификационной меткой попадет в файлы с высокой классификационной меткой может любой пользователь, т.к. это не приведет к разглашению секретной информации. Для этого достаточно будет просто скопировать файлы в соответствующий каталог.

sudo cp /usr/bin/ls /Документы/Мотострелковые_войска/Совершенно_секретно/
cp /Документы/Мотострелковые_войска/Секретно/документ.txt /Документы/Мотострелковые_войска/Совершенно_секретно/
-20
pdp-ls -M /Документы/Мотострелковые_войска/Совершенно_секретно/*
-21

Рассекречивание документов

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

1. Сотрудник должен войти в систему с категорией «Мотострелковые_войска» и уровнем «Секретно», чтобы подготовить каталог с документами, которые подлежат передаче в смежный департамент. Например:

mkdir /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска
cp /Документы/Мотострелковые_войска/Секретно/документ.txt /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска/
mkdir /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска/доп_каталог
echo "Дополнительный блок секретной информации" > /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска/доп_каталог/документ2.txt
-22

2. По заявке от сотрудников администратор на уровне дискреционных прав доступа блокирует возможность редактирования этого каталога:

sudo chmod -R 100 /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска
sudo setfacl --recursive --modify m::r,d:m:r /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска
-23

3. Сотрудники собирают комиссию и по итогам ее заседания направляют администратору заявку на передачу или рассекречивание документов.

4. Далее администратор МРД выполняет перемещение:

4.1. Сначала нужно перенести каталог в корень диска, т.к. на него назначены все категории, уровни конфиденциальности и атрибут CCNR (делается под root и МКЦ 63). Требуется именно перемещать, чтобы сохранились метки безопасности.

sudo mv /Документы/Мотострелковые_войска/Секретно/Передать_в_танковые_войска /
-24

4.2. Затем на каталоги нужно установить атрибут CCNR и расширить классификационную метку, чтобы она включала классификационные метки источника и приемника. Такие настройки нужны, чтобы можно было изменить классификационные метки файлов. Так как новая метка больше текущей метки каталогов, изменять метки нужно сверху вниз с прямой сортировкой:

sudo pdpl-file --recursive 2:0:0x3:ccnr /Передать_в_танковые_войска
-25

4.3. Затем нужно установить целевую метку, снимая атрибут CCNR с каталогов. Так как новая метка меньше текущей метки каталогов, изменять метки нужно снизу вверх с обратной сортировкой:

sudo pdpl-file --recursive --reverse 2:0:0x2:0 /Передать_в_танковые_войска
-26

5. В завершение остается переместить документы в каталог-приемник (под админом МРД):

sudo mv /Передать_в_танковые_войска /Документы/Танковые_войска/Секретно
sudo ls -l /Документы/Танковые_войска/Секретно
-27

Архивирование и восстановление

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

sudo tar --xattrs --acls -cvzf /opt/home.tgz /home/

где:

  • --xattrs — включает поддержку расширенных атрибутов;
  • --acls — включает поддержку POSIX ACL;
  • -c (create) — указывает, что нужно создать архив;
  • -v (verboze) — включает детальное отображение информации;
  • -z (gzip) — указывает, что нужно не только архивировать файлы, но и сжимать их с применением алгоритма gzip;
  • -f (file) — указывает, что далее будет передано имя файла архива;
  • /opt/home.tgz — задает имя и место расположения архива (при этом следует учитывать, что файл не будет защищен механизмом мандатного управления доступом);
  • /home/ — указывает архивируемый каталог.

Перед восстановлением файлов из архива необходимо разрешить процессам использовать привилегию PARSEC_CAP_UNSAFE_SETXATTR. Для этого нужно записать значение «1» в файл /parsecfs/unsecure_setxattr:

echo 1 | sudo tee /parsecfs/unsecure_setxattr

Теперь для восстановления файлов из архива с сохранением расширенных атрибутов нужно выполнить следующую команду:

sudo execaps -c 0x1000 -- tar --xattrs --acls --xattrs-include=security.{PDPL,AUDIT,DEF_AUDIT} -xvf /opt/home.tgz -C /

где

  • execaps — утилита позволяет запустить процесс с назначением привилегии PARSEC;
  • -с — параметр позволяет определить назначаемую привилегию;
  • 0x1000 — числовое значение привилегии PARSEC_CAP_UNSAFE_SETXATTR (вывести полный список привилегий с их кодами можно с помощью команды sudo usercaps -M);
  • tar — название запускаемой утилиты;
  • --xattrs — включает поддержку расширенных атрибутов;
  • --acls — включает поддержку POSIX ACL;
  • --xattrs-include=security.{PDPL,AUDIT,DEF_AUDIT} — определяет шаблон включения для ключей xattr (мандатные атрибуты, атрибуты аудита и атрибуты аудита по умолчанию);
  • -x (extract) — указывает, что нужно извлечь файлы из архива;
  • -v (verboze) — включает детальное отображение информации;
  • -f (file) — указывает, что далее будет передано имя файла архива;
  • /opt/home.tgz — задает имя и место расположения архива;
  • / — задает путь для извлечения файлов.

После восстановления файлов нужно вернуть значение переменной unsecure_setxattr в исходное состояние:

echo 0 | sudo tee /parsecfs/unsecure_setxattr