|  | @@ -0,0 +1,287 @@
 | 
	
		
			
				|  |  | +# Управление грифами конфиденциальности. (*nix)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +В защищённой операционной системе Astra могут одновременно выполняться программы с разными метками конфиденциальности. Привычный для пользователя рабочего стола обмен данными через **буфер обмена** между такими программами по умолчанию невозможен из-за принятых мер МРД. В частности, при необходимости работать с меткой конфиденциальности, отличающейся от метки текущей сессии, надо открывать отдельную сессию с отдельным Х сервером. 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Так же можно разрешить использовать специальный механизм (**sumac**), позволяющий запустить графическую программу с более высокой меткой конфиденциальности из текущей сессии, но при этом программа будет работать со своим отдельным вложенным Х сервером Xephyr.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Команда **sumac** используется для запуска процесса с заданными мандатными уровнем и категорией в отдельной графической сессии с использованием виртуального графического сервера Xephyr.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**Буфер обмена** - промежуточное хранилище данных, предоставляемое программным обеспечением и предназначенное для переноса или копирования информации между приложениями или частями одного приложения через операции вырезать, копировать, вставить.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +КСЗ обеспечивает реализацию следующих функций ОС по защите информации от НСД:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* идентификацию и аутентификацию;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* дискреционное управление доступом;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* мандатное управление доступом;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* регистрацию событий безопасности;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* ограничение программной среды;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* изоляцию процессов;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* защиту памяти;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* контроль целостности;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* обеспечение надежного функционирования;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* фильтрацию сетевого потока;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* маркировку документов;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* защиту среды виртуализации;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* контроль подключения съемных машинных носителей информации.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Для организации контроля **буфера обмена** между сессиями используются 2 механизма:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* xfixes расширение X сервера для асинхронного мониторинга буфера обмена сессии;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* inotify механизм ядра для асинхронного мониторинга файловой системы.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Каждый менеджер окон (он же менеджер буферов обмена) в каждой сессии подписывается на получение уведомлений об изменении буфера обмена своей графической сессии. Затем, по мере изменений в буфере обмена, он получает уведомления и сохраняет содержимое буфера обмена в файле $HOME/.fly/clipboard. Таким образом, изменения буфера обмена постоянно отображаются в файле $HOME/.fly/clipboard.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Данные механизм позволяет без проблем копировать и вставлять текстовую информацию, такую как, например, текст или URL файлов и каталогов. Так, находясь в сессии с нулевым уровнем конфиденциальности, пользователь может скопировать информацию привычным образом: ctrl+c или ctrl+insert или через контекстное меню с пунктом «Копировать». Затем, переключившись в сессию с более высоким уровнем конфиденциальности (**Мандатный контекст**), сразу же вставить эту информацию: сtrl+v или shift+insert, а также через контекстное меню с пунктом «Вставить».
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**Мандатный контекст** – это разграничение доступа субъектов к объектам, основанное на назначении метки конфиденциальности для информации, содержащейся в объектах, и выдаче официальных разрешений субъектам на обращение к информации такого уровня конфиденциальности.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Мандатный контекст включает в себя:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Метку безопасности;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +классификационной метки, которая определяется:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Субъекты или сущности, которым явно не присвоен никакой мандатный контекст, считаются имеющими минимальный (нулевой) мандатный контекст, то есть мандатный контекст, в котором все мандатные атрибуты имеют минимальные допустимые значения.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* иерархическим уровнем конфиденциальности;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* неиерархической категорией конфиденциальности;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +## Основные способы разграничения доступа
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Дискреционное управление доступом
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Эта модель в том или ином виде реализована почти во всех современных *nix-системах. В англоязычных ресурсах можно встретить название DAC (Discretionary Access Control). Суть ее заключается в управлении доступом субъектов к объектам на основе списков управления доступом. Дискреционное управление доступом в ОС проекта GNU/Linux основано на понятии владения (использовании права доступа владения) файлом, процессом, каталогом (сущностями и субъект-сессиями). 
 | 
	
		
			
				|  |  | +Так, с каждым файлом или каталогом связана учётная запись пользователя — их владельца (owner). Процесс, который функционирует от имени такой учётной записи-владельца сущности, имеет право изменять дискреционные права доступа к ней, например назначать их учётным записям других пользователей ОС на основе стандарта POSIX ACL. 
 | 
	
		
			
				|  |  | +Однако зачастую настраивать права доступа для каждой учетной записи бывает затруднительно и поэтому пользователей объединяют в группы, которым тоже можно назначить права доступа.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* Дополнительные мандатные атрибуты управления доступом.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Существует 2 вида атрибутов minimal POSIX ACL и Extended POSIX ACL.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +### Minimal POSIX ACL. Список контроля на уровне inode файла
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +В метаданных каждого объекта (в inode файла/директории) содержится список разрешений на доступ к нему для разных категорий субъектов.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Атрибуты **Minimal ACL** поддерживают три базовых класса субъектов доступа к файлу (класс All объединяет все три класса):
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +1.**User access** (u) – доступ для владельца файла;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +2.**Group access** (g) – доступ для группы, владеющей файлом;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +3.**Other access** (o) – доступ для остальных пользователей (кроме пользователя root).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +4.**All access** (a) – доступ для всех субъектов доступа (u, g, o).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Для каждого из этих классов определены три типа разрешений:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +На *чтение* содержимого файла (read) – символ «r».
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +На *запись* внутри файла или изменения его содержимого (write) – символ «w».
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +На *исполнение* файла (если это бинарный исполняемый файл или  файл сценария интерпретатора (execute)) – символ «x».
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Список разрешений Minimal ACL представлен в inode файла (директории) девятью байтами (символами). Каждый байт определяет одно из разрешений (символы r, w, x) или их отсутствие (символ «-»). Байты разрешений сгруппированы в следующие классы:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Теперь рассмотрим способы смены прав доступа на практике:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Для того, чтобы посмотреть атрибуты отдельного файла или директории в символьном виде можно воспользоваться командой:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**ls –l <имя_файла>**
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Пример вывода команды:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Таким образом мы понимаем, что это файл обычного типа (–). Для владельца разрешены чтение, запись и исполнение (rwx), для владеющей группы – чтение и запись (rw-), для остальных пользователей – только чтение (r--).
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Для директорий трактовка типов разрешений иная:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**r** – разрешение на «**открытие**» директории, то есть на **чтение списка файлов**, которые содержит эта директория.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**w** – разрешение **на модификацию этого списка файлов** (создание/удаление/переименование/перемещение) файлов этой директории.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**x** – разрешение на «**исполнение**» директории, то есть на возможность **перейти в нее**.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Чтобы изменить расширения для определенного файла используется команда **chmod** с соответствующими аргументами:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Система полномочий в Linux имеет очень важное значение, поскольку благодаря ей можно разделять привилегии между пользователями, ограничить доступ к нежелательным файлам или возможностям, контролировать доступные действия для сервисов и многое другое.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Эта команда имеет типичный для команд linux синтаксис, сначала команда, затем опции, а в конце файл или папка, к которой ее нужно применить:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**$ chmod опции права /путь/к/файлу**
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Сначала рассмотрим какими бывают права доступа linux и как они устанавливаются. Пред этим рекомендую прочитать статью про права, ссылка на которую есть выше. Есть три основных вида прав:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **r** - чтение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **w** - запись;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **x** - выполнение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **s** - выполнение от имени суперпользователя (дополнительный);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Также есть три категории пользователей, для которых вы можете установить эти права на файл linux:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **u** - владелец файла;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **g** - группа файла;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **o** - все остальные пользователи;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Синтаксис настройки прав такой:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +группа_пользователей/действие/вид_прав
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +В качестве действий могут использоваться знаки "**+**" - включить или "**-**" - отключить. Рассмотрим несколько примеров:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **u+x** - разрешить выполнение для владельца;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **ugo+x** - разрешить выполнение для всех;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **ug+w** - разрешить запись для владельца и группы;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **o-x** - запретить выполнение для остальных пользователей;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **ugo+rwx** - разрешить все для всех;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Но права можно записывать не только таким способом. Есть еще восьмеричный формат записи, он более сложен для понимания, но пишется короче и проще. Я не буду рассказывать как считать эти цифры, просто запомните какая цифра за что отвечает, так проще:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **0** - никаких прав;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **1** - только выполнение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **2** - только запись;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **3** - выполнение и запись;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **4** - только чтение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **5** - чтение и выполнение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **6** - чтение и запись;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **7** - чтение запись и выполнение.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Права на папку linux такие же, как и для файла. Во время установки прав сначала укажите цифру прав для владельца, затем для группы, а потом для остальных. 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Например:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **744** - разрешить все для владельца, а остальным только чтение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **755** - все для владельца, остальным только чтение и выполнение;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **764** - все для владельца, чтение и запись для группы, и только чтение для остальных;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **777** - всем разрешено все.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Каждая из цифр не зависит от предыдущих, вы вбираете именно то, что вам нужно. Теперь давайте рассмотрим несколько опций команды, которые нам понадобятся во время работы:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **-c** - выводить информацию обо всех изменениях;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **-f** - не выводить сообщения об ошибках;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **-v** - выводить максимум информации;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **--preserve-root** - не выполнять рекурсивные операции для корня "/";
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **--reference** - взять маску прав из указанного файла;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **-R** - включить поддержку рекурсии;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +* **--version** - вывести версию утилиты;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Теперь, когда вы знаете опции и как настраиваются права доступа chmod, давайте рассмотрим несколько примеров как работает команда chmod linux.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Например:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**chmod o=r test.file**  – установка разрешения «чтение» для остальных пользователей (не владельцев объекта), вне зависимости какие разрешения были установлены ранее
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**chmod g+rw test.file** – добавление разрешений «чтение» и «запись»  для группы, владеющей файлом
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Также Minimal ACL имеют числовое представление (Numeric Notation) в виде трех восьмеричных чисел. Эти числа определяют разрешение на доступ к файлу или директории трех субъектов доступа (u,g,o). Каждое из них формируется путем суммирования восьмеричных значений необходимых разрешений: 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- чтение = 4;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- запись = 2;
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +- выполнение =1. 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Например, полный доступ (rwx) – это: 4+2+1=7
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Таким образом, можно задать разрешения для файла следующим образом:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**chmod 0740 test.file**, что будет соответствовать атрибутам -rwxr-----
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +В ряде случаев в ходе пользовательского сеанса возникает необходимость смены разрешений при доступе файлам и директориям
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Например для файла /etc/shadow любой пользователь может записать в него хеш своего пароля
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Такая смена разрешений называется изменение режима доступа.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Она реализуется установкой специальных флагов в зарезервированном десятом байте списка Minimal POSIX ACL или заменой ими байтов разрешений 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**Флаг -t (sticky bit)**. Устанавливается в разрешениях директорий и разрешает манипулирование файлами внутри этих директорий **только их владельцам**. 
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +**Флаг -s (флаг режимов SUID и SGID)**. Устанавливается вместо разрешения «**x**» у владельца (режим **SUID**) и/или владеющей группы (режим **SGID**) и разрешает исполнение этого файла с разрешениями его **владельца и/или владеющей группы**, а не с разрешениями пользователя, запустившего файл.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +### Extended POSIX ACL (EA). Расширенные списки контроля доступа
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Вполне естественно, что такая простая схема, как в Minimal POSIX ACL имеет ряд недостатков. Самый явный из них, это отсутствие гибкости при совместном доступе субъектов к объектам. К тому же, списки доступа Extended POSIX ACL создаются и хранятся в системных таблицах ядра ОС.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Основой Extended POSIX ACL является понятие «именованный пользователь (группа)» (named user (group), что позволяет нам выдавать отдельный набор разрешений для конкретных пользователей или групп.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Для работы с Extended POSIX ACL используются следующие команды:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Просмотр: системный вызов **getfacl <имя файла>**
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Вывод:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Установка: системный вызов setfacl
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Вывод:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Пример:
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +### Вывод
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +Для выделения секретного документа из общего информационного списка а так же на носителях информации ограниченного доступа необходимы грифы конфиденциальности использования которого необходимо для выполнения данных операций. Были рассмотрены 2 типа разграничения доступа, которые охватывают контекст безопасности.
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +#### <h1 align="center">Список литературы</h1>
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +http://rus-linux.net/MyLDP/BOOKS/Linux_Foundations/32/ch32.html
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +https://codeby.school/blog/informacionnaya-bezopasnost/razgranichenie-dostupa-v-linux-znakomstvo-s-astra-linux
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +https://tebestudent.ru/polezno-znat/kursovye-raboty/vyvod-v-kursovoy-rabote/#kak_pisat_vyvod_v_kursovoy_rabote
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +https://wiki.astralinux.ru/pages/viewpage.action?pageId=48763550
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +https://habr.com/ru/company/astralinux/blog/701596/
 |