summaryrefslogtreecommitdiff
path: root/security-models/lectures/lecture6.tex
diff options
context:
space:
mode:
Diffstat (limited to 'security-models/lectures/lecture6.tex')
-rw-r--r--security-models/lectures/lecture6.tex182
1 files changed, 182 insertions, 0 deletions
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: дописать