summaryrefslogtreecommitdiff
path: root/security-models/lectures/lecture10.tex
diff options
context:
space:
mode:
authorAndrew Guschin <guschin@altlinux.org>2024-08-06 23:54:54 +0400
committerAndrew Guschin <guschin@altlinux.org>2024-08-06 23:54:54 +0400
commitf9b917e3135b27caf54d4e595e30cbe7ece935ae (patch)
tree8dec46094b92e792e326e10a728abaec202f76a0 /security-models/lectures/lecture10.tex
parentcc5ac702b1f50b76103e8ba2d4fc1751c0d0238f (diff)
Лекции по моделям безопасности и методам алгебраической геометрии
Diffstat (limited to 'security-models/lectures/lecture10.tex')
-rw-r--r--security-models/lectures/lecture10.tex131
1 files changed, 131 insertions, 0 deletions
diff --git a/security-models/lectures/lecture10.tex b/security-models/lectures/lecture10.tex
new file mode 100644
index 0000000..3a0a0d7
--- /dev/null
+++ b/security-models/lectures/lecture10.tex
@@ -0,0 +1,131 @@
+% Лекция 10 (24.11.23)
+
+%% NOTE: 2.3
+
+Устовия применения де-факто правил в исходном состоянии $G = (S, O, E \cup F)$
+и результаты их применения в результирующем состоянии $G' = (S, O, E \cup F')$
+приведены в таблице.
+
+%% TODO: таблица 1 - Де-факто правила расширенной модели Take-Grant
+
+\begin{table}[H]
+ \smallsize
+ \centering
+ \caption{}
+ \begin{tabular}{|c|p{6cm}|p{6cm}|}
+ \hline
+ Правило &
+ Исходное состояние $G = (S, O, E \cup F)$ &
+ Результирующее состояние $G' = (S, O, E \cup F')$ \\ \hline
+
+ Первое правило &
+ $x \in S; y \in O; (x, y, r) \in E \cup F$ &
+ $F' = F \cup \set{(y, x, w), (x, y, r)}$ \\ \hline
+
+ Второе правило &
+ $x \in S; y \in O; (x, y, w) \in E \cup F$ &
+ $F' = F \cup \set{(y, x, r), (x, y, w)}$ \\ \hline
+
+ $\fn{spy}(x, y, z)$ &
+ $x, y \in S; x \neq z; \set{(x, y, r), (y, z, r)} \subset E \cup F$ &
+ $F' = F \cup \set{(x, z, r), (z, x, w)}$ \\ \hline
+
+ $\fn{find}(x, y, z)$ &
+ $x, y \in S; z \in O; x \neq z; \set{(x, y, w), (y, z, w)} \subset E \cup F$ &
+ $F' = F \cup \set{(x, z, w), (z, x, r)}$ \\ \hline
+
+ $\fn{post}(x, y, z)$ &
+ $x, z \in S; y \in O; x \neq z; \set{(x, y, r), (z, y, w)} \subset E \cup F$ &
+ $F' = F \cup \set{(x, z, r), (z, x, w)}$ \\ \hline
+
+ $\fn{pass}(x, y, z)$ &
+ $y \in S; x, z \in O; x \neq z; \set{(y, x, w), (y, z, r)} \subset E \cup F$ &
+ $F' = F \cup \set{(x, z, r), (z, x, w)}$ \\ \hline
+ \end{tabular}
+\end{table}
+
+Из определения де-факто правил следует, что для анализа информационных потоков
+достаточно рассматривать потоки одного вида: либо на чтение, либо на запись.
+
+Будем рассматривать только информационные потоки на запись. Будем предполагать,
+что при возникновении информационного потока не накладывается ограничений на
+кооперацию субъектов системы, участвующих в этом процессе.
+
+Пусть $x, y \in O_0$, $x \neq y$, --- различные объекты графа доступов и
+информационных потоков $G_0 = (S_0, O_0, E_0 \cup F_0)$. Определим предикат
+$\fn{can_write}(x, y, G_0)$, который будет истинным $\iff$ $\exists$ графы $G_1
+= (S_1, O_1, E_1 \cup F_1), \dots, G_N = (S_N, O_N, E_N \cup F_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$ и $(x, y, w) \subset
+F_N$.
+
+%% NOTE: 2.8
+\begin{theorem}
+ Пусть $G_0 = (S_0, O_0, E_0 \cup F_0)$ --- граф доступов и информационных
+ потоков, $x, y \in O_0$, $x \neq y$. Тогда предикат $\fn{can_write}(x, y, G_0)$
+ истинен $\iff$ существуют объекты $o_1, \dots, o_m \in O_0$, где $o_1 = x,
+ o_m = y$, такие, что или $m = 2$ и $(x, y, w) \in F_0$, или для $i = 1, \dots,
+ m - 1$ выполняется одно из трёх условий:
+ \begin{enumerate}
+ \item
+ $o_i \in S_0$ и или истинен предикат $\fn{can_share}(\set{w}, o_i, o_{i +
+ 1}, G_0)$, или $(o_i, o_{i + 1}, w) \in E_0 \cup F_0$;
+ \item
+ $o_{i + 1} \in S_0$ и или истинен предикат $\fn{can_share}(\set{r}, o_{i +
+ 1}, o_i, G_0)$, или $(o_{i + 1}, o_i, r) \in E_0 \cup F_0$;
+ \item
+ $o_i, o_{i + 1} \in S_0$ и или истинен предикат $\fn{can_share}(\alpha,
+ o_i, o_{i + 1}, G_0)$, или истинен предикат $\fn{cna_share}(\alpha, o_{i
+ + 1}, o_i, G_0)$, где $\alpha \in \set{t, g}$, или существует объект
+ $o_i' \in O_0$ такой, что либо истинны предикаты $\fn{can_share}(\set{t},
+ o_i, o_i', G_0)$, $\fn{can_share}(\set{g}, o_{i + 1}, o_i', G_0)$,
+ либо истинны предикаты $\fn{can_share}(\set{g}, o_i, o_i', G_0)$,
+ $\fn{can_share}(\set{t}, o_{i + 1}, o_i', G_0)$.
+ \end{enumerate}
+
+ \label{thm:2.8}
+\end{theorem}
+
+\paragraph{Алгоритм построения замыкания графа доступов и информационных потоков.}
+
+Для проверки истинности предиката $\fn{can_share}(\alpha, x, y, G_0)$ или
+$\fn{can_write}(x, y, G_0)$ для многих пар вершин неэффективно использовать
+алгоритмы проверки условий теорем \ref{thm:2.6}, \ref{thm:2.8}.
+
+Эффективнее применять алгоритмы, позволяющие осуществлять проверку истинности
+данных предикатов сразу для всех пар вершин. Такие алгоритмы реализуют
+преобразование графа доступов и информационных потоков в его замыкание.
+
+Пусть $G = (S, O, E \cup F)$ --- граф доступов и информационных потоков такой,
+что для каждого субъекта $s \in S$ существует объект $o \in O$ такой, что
+выполняется условие $(s, o, \set{t, g, r, w}) \in E$.
+
+\emph{Замыканием} (или \emph{де-факто замыканием}) графа $G$ называется граф
+доступов и информационных потоков $G^* = (S, O, E^* \cup F^*)$, полученный из
+$G$ применением последовательности правил take, grant и де-факто правил. При
+этом применение к графу $G^*$ указанных правил не приводит к появлению в нём
+новых дуг.
+
+$tg$-замыканием графа $G$ называется граф доступов и информационных
+потоков $G^{tg} = (S, O, E^{tg} \cup F)$, полученный из $G$ применением
+последовательности правил take или grant.
+
+При этом каждое ребро $(o_1, o_2, \alpha) \in E^{tg} - E$ имеет вид $(o_1, o_2,
+t)$ или $(o_1, o_2, g)$, и применение к графу $G^{tg}$ правил take или grant не
+приводит к появлению в нём новых дуг указанного вида.
+
+\emph{Де-юре замыканием} графа $G$ называется граф доступов и информационных
+потоков $G^\text{де-юре} = (S, O, E^\text{де-юре} \cup F)$, полученный из $G$
+применением последовательности правил take или grant. При этом применение в
+графу $G^\text{де-юре}$ правил take или grant не приводит к появлению в нём
+новых дуг.
+
+Алгоритм построения замыкания графа доступов состоит из трёх этапов:
+\begin{enumerate}
+ \item построение $tg$-замыкания;
+ \item построение де-юре-замыкания;
+ \item построение замыкания.
+\end{enumerate}
+
+Алгоритм построения $tg$-замыкания графа доступов и информационных потоков
+$G = (S, O, E \cup F)$.