From f9b917e3135b27caf54d4e595e30cbe7ece935ae Mon Sep 17 00:00:00 2001
From: Andrew Guschin <guschin@altlinux.org>
Date: Tue, 6 Aug 2024 23:54:54 +0400
Subject: =?UTF-8?q?=D0=9B=D0=B5=D0=BA=D1=86=D0=B8=D0=B8=20=D0=BF=D0=BE=20?=
 =?UTF-8?q?=D0=BC=D0=BE=D0=B4=D0=B5=D0=BB=D1=8F=D0=BC=20=D0=B1=D0=B5=D0=B7?=
 =?UTF-8?q?=D0=BE=D0=BF=D0=B0=D1=81=D0=BD=D0=BE=D1=81=D1=82=D0=B8=20=D0=B8?=
 =?UTF-8?q?=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=D0=B0=D0=BC=20=D0=B0=D0=BB?=
 =?UTF-8?q?=D0=B3=D0=B5=D0=B1=D1=80=D0=B0=D0=B8=D1=87=D0=B5=D1=81=D0=BA?=
 =?UTF-8?q?=D0=BE=D0=B9=20=D0=B3=D0=B5=D0=BE=D0=BC=D0=B5=D1=82=D1=80=D0=B8?=
 =?UTF-8?q?=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 security-models/lectures/lecture6.tex | 182 ++++++++++++++++++++++++++++++++++
 1 file changed, 182 insertions(+)
 create mode 100644 security-models/lectures/lecture6.tex

(limited to 'security-models/lectures/lecture6.tex')

diff --git a/security-models/lectures/lecture6.tex b/security-models/lectures/lecture6.tex
new file mode 100644
index 0000000..856d7f7
--- /dev/null
+++ b/security-models/lectures/lecture6.tex
@@ -0,0 +1,182 @@
+% Лекция 6 (27.10.23)
+
+Третий шаг алгоритма всегда будет иметь конечную сложность. Так как множество
+объектов не изменяется, то необходимо перебрать все последовательности различных
+команд, а их конечное число.
+
+Наибольшую трудоёмкость в общем случае представляет разработка алгоритма
+построения <<развёрнутого>> состояния.
+
+Однако для АМТМД или АКФМТМД такой алгоритм существует.
+
+Пусть $\alpha$ и $\beta$ --- две различные команды системы МТМД, содержащие
+примитивные операторы <<создать>>, \dots. Будем считать, что $\alpha < \beta \iff$
+для некоторого дочернего типа команды $\alpha$ в графе создания найдётся путь
+в некоторый родительский тип команды $\beta$.
+
+В системе АМТМД отношение <<$<$>> на множестве команд, содержащих примитивные
+операторы <<создать>>, \dots, является отношением строгого порядка
+
+%% TODO
+\textbf{Алгоритм 2.2} \emph{Алгоритм построения <<развёрнутого>> состояния для
+системы АКФМТМД.}
+\begin{enumerate}
+  \item
+    Упорядочить в списке все команды, содержащие примитивные операторы вида
+    <<создать>>, \dots (команда $\alpha$ следует в списке перед командой $\beta
+    \iff \alpha < \beta \; \lor$ $\alpha$ и $\beta$ не сравнимы).
+  \item
+    Начиная с начального состояния, применять команды в соответствии с созданным
+    на шаге 1 списком, при этом каждая команда применяется со всеми возможными
+    для неё наборами родительских объектов.
+\end{enumerate}
+
+%% NOTE: 2.4
+\begin{theorem}
+  Существует алгоритм проверки безопасности систем АМТМД.
+\end{theorem}
+%% NOTE: 2.2
+\begin{corollary}
+  Алгоритм проверки безопасности систем АМТМД имеет экспоненциальную сложность.
+\end{corollary}
+
+Для АМТМД, в которых каждая команда имеет не более трёх параметров, доказано,
+что алгоритм проверки их безопасности имеет полиномиальную сложность.
+
+%% NOTE: 2.3
+\subsection{Модель распространения прав доступа Take-Grant}
+
+\subsubsection{}
+
+Классическая модель Take-Grant ориентирована на анализ путей распространения
+прав доступа в системе дискреционного управления доступом.
+
+Основными элементами модели Take-Grant являются:
+\begin{itemize}
+  \item $O$ --- множество объектов;
+  \item $S \subseteq O$ --- множество субъектов;
+  \item
+    $R = \set{r_1, r_2, \dots, r_m} \cup \set{t, g}$ --- множество видов прав
+    доступа, где $t$ (take) --- право брать права доступа, $g$ (grant) --- право
+    давать права доступа;
+  \item
+    $G = (S, O, E)$ --- конечный помеченный ориентированный без петель граф
+    доступов, описывающий состояние системы.
+\end{itemize}
+
+Элементы множеств $S$ и $O$ являются вершинами графа, которые обозначаются
+$\otimes$ --- объекты (элементы множества $O - S$) и $\cdot$ --- субъекты
+соответственно.
+
+Элементы множества $E \subseteq O \times O \times R$ являются дугами графа.
+Каждая дуга помечена непустым подмножеством множества видов прав доступа $R$.
+Состояние системы описывается соответствующим ему графом доступов.
+
+В отличие от подели ХРУ в модели Take-Grant возможно наличие прав доступов не
+только у субъектов к объектам, но и у объектов к объектам.
+
+Основная цель классической модели Take-Grant --- определение и обоснование
+алгоритмически проверяемых условий проверки возможности утечки права доступа по
+исходному графу доступов, соответствующего некоторому состоянию системы.
+
+Порядок перехода системы модели Take-Grant из состояния в состояние определяется
+правилами преобразования графа доступов, которые в классической модели носят
+название де-юре правил.
+
+Преобразование графа $G$ в граф $G'$ в результате выполнения правила $op$
+обозначается через $G \vdash_{op} G'$.
+
+В классической модели Take-Grant рассматриваются следующие четыре де-юре
+правила преобразования графа, выполнение каждого из которых может быть
+инициировано только субъектом, являющимся активной компонентой системы:
+\begin{enumerate}
+  \item
+    $take$ --- брать права доступа (см. рис 2.1): субъект $x$ берёт у объекта
+    $y$ права $\alpha$ на объект $z$;
+    %% TODO: рис. 1
+  \item
+    $grant$ --- давать права доступа (см. рис. 2.2): субъект $x$ даёт объекту
+    $y$ права $\alpha$ на объект $z$;
+    %% TODO: рис. 2
+  \item
+    $create$ --- создать новый объект или субъект, при этом субъект создатель
+    может взять на созданный субъект любые права доступа (по умолчанию
+    предполагается, что создаётся объект, создание субъекта оговаривается особо)
+    (см. рис. 2.3);
+    %% TODO: рис. 3
+  \item
+    $remove$ --- удалять права доступа (см. рис. 4): субъект $x$ удаляет из
+    своих прав доступа на объект $y$ набор прав $\alpha$.
+    %% TODO: рис. 4
+\end{enumerate}
+
+%% TODO: нумерация
+В таблице 2.3 приведены условия применения де-юре правил в исходном состоянии
+$G = (S, O, E)$ и результаты их применения в результирующем состоянии
+$G' = (S', O', E')$.
+
+%% TODO: таблица 2.3 --- Де-юре правила классической модели Take-Grant
+Правила | Исходное состояние $G = (S, O, E)$ | Результирующее состояние $G' = (S', O', E')$
+$take(\alpha, x, y, z)$ | $x \in S, \; y, z \in O, \; (x, y, \set{t}) \subset E, \; (y, z, \beta) \subset E, \; x \neq z, \; \alpha \subseteq \beta$ | $S' = S, O' = O, E'= E \cup \set{(x, z, \alpha)}$
+
+\begin{itemize}
+  \item $grant(\alpha, x, y, z)$
+  \item
+    $x \in S, \; y, z \in O, \; (x, y, \set{g}) \subset E, \; (x, z, \beta)
+    \subset E, \; y \neq z, \; \alpha \subseteq \beta$
+  \item $S' = S, O' = O, E'= E \cup \set{(y, z, \alpha)}$
+\end{itemize}
+\begin{itemize}
+  \item $create(\beta, x, y)$
+  \item $x \in S, \; y \not\in O, \beta \neq \varnothing$
+  \item $O' = O \cup \set{y}$, если $y$ субъект, то $S' = S \cup \set{y}$,
+    иначе $S' = S, \; E' = E \cup \set{(x, y, \beta)}$
+\end{itemize}
+\begin{itemize}
+  \item $remove(\alpha, x, y)$
+  \item $x \in S, \; y \in O, \; (x, y, \beta) \subset E, \; \alpha \subseteq \beta$
+  \item $S' = S, \; O' = O, \; E' = E - \set{(x, y, \alpha)}$
+\end{itemize}
+
+Рассмотрим условия, при которых в системе возможно распространение прав доступа.
+
+Пусть дан граф доступов $G_0 = (S_0, O_0, E_0), \; x, y \in O_0, \; x \neq y, \;
+\alpha \subseteq R$. Определим предикат $\fn{can_share}(\alpha, x, y, G_0)$,
+который будет истинным $\iff \exists G_1 = (S_1, O_1, E_1), \dots, G_N = (S_N,
+O_N, E_N)$ и правила $op_1, \dots, op_N, \; N \geq 0 : G_0 \vdash_{op_1} G_1
+\vdash_{op_2} \dots \vdash_{op_N} G_N \land (x, y, \alpha \subset E_N$.
+
+Определение истинности предиката $\fn{can_share}(\alpha, x, y, G_0)$
+непосредственно по определению является в общем случае алгоритмически
+неразрешимой задачей, так как требует проверки всех траекторий функционирования
+системы.
+
+По этой причине для проверки истинности предиката $\fn{can_share}(\alpha, x, y,
+G_0)$ следует определить необходимые и достаточные условия, проверка которых
+возможна. Решение этой задачи будет выполнено в два этапа:
+\begin{enumerate}
+  \item %% TODO: дописать
+  \item Определены и обоснованы условия истинности предиката для произвольных
+    графов.
+\end{enumerate}
+
+Пусть $G = (S, S, E)$ --- граф доступов, все вершины которого являются субъектами.
+Говорят, что вершины графа доступов являются $tg$-связными или что они соединены 
+$tg$-путём, когда, без учёта направления рёбер, в графе между ними существует
+путь такой, что каждое ребро этого пути помечено $t$ или $g$.
+
+\begin{theorem}
+  Пусть $G_0 = (S_0, O_0, E_0)$ --- граф доступов, содержащий только вершины
+  субъекты, $x, y \in S_0, \; x \neq y$.
+
+  Тогда предикат $\fn{can_share}(\alpha, x, y, G_0)$ истинен $\iff$ выполняются
+  следующие два условия:
+  \begin{enumerate}
+    \item
+      существуют субъекты $s_1, \dots, s_m \subset S_0 : (s_i, y, \gamma_i)
+      \subset E_0$, где $i = 1, \dots, m$ и $\alpha = \gamma_1 \cup \dots \cup
+      \gamma_m$;
+  \end{enumerate}
+\end{theorem}
+
+%% TODO: дописать
-- 
cgit v1.2.3

