% Лекция 8 (10.11.23)

Похищение прав доступа является примером случая, когда передача прав доступа
к объекту осуществляется без содействия субъекта, изначально обладавшего
передаваемыми правами, таким образом, не все субъекты системы кооперируют друг с
другом.

Пусть $x, y \in O_0, \, x \neq y$ --- различные объекты графа доступов $G_0 =
(S_0, O_0, E_0),\, \alpha \subseteq R$. Определим предикат $\fn{can_steal}(
\alpha, x, y, G_0)$, который будет истинным $\iff (x, y, \alpha) \cap E_0 =
\varnothing$, существуют графы $G_1 = (S_1, O_1, E_1)$, $\dots$, $G_N = (S_N,
O_N, E_N)$ и правила $op_1, \dots, op_N$, где $N \geq 1$, такие, что $G_0
\vdash_{op_1} G_1 \vdash_{op_2} \dots \vdash_{op_N} G_N$ и $(x, y, \alpha)
\subset E_N$, при этом, если существует $(s, y, \gamma) \subset E_0$, где
$\gamma \subseteq \alpha$, то справедливо неравенство $op_k \neq \fn{grant}(
\gamma, s, z, y)$, где $z \in O_{K - 1}, K = 1, \dots, N$.

Говоря иначе, согласно определению похищением прав является процесс получения
прав доступа на какой-либо объект без представления прав третьим субъектам со
стороны субъекта, обладающего в начальном состоянии требуемыми правами на
объект <<интересе>>.

%% NOTE: 2.7
\begin{theorem}
  Пусть $G_0 = (S_0, O_0, E_0)$ --- произвольный граф доступов, $x, y \in O_0$,
  $x \neq y$. Предикат $\fn{can_steal}(\alpha, x, y, G_0)$ истинен $\iff$
  выполняются следующие четыре условия:
  \begin{enumerate}
    \item $(x, y, \alpha) \cap E_0 = \varnothing$;
    \item существуют объекты $s_1, \dots, s_m \in O_0$ такие, что $(s_i, y,
      \gamma_i) \subset E_0$ для $i = 1, \dots, m$ и $\alpha = \gamma_1 \cup
      \dots \cup \gamma_m$;
    \item являются истинными предикаты $\fn{can_share}(\set{t}, x, s_i, G_0)$,
      где $i = 1, \dots, m$;
    \item
      для $i = 1, \dots, m$ граф доступов $G_0$ не является графом вида,
      приведённого на рисунке 2.7
      %% TODO: рис 1 (2.7)
      %% TODO: Условие 4 теоремы 2.5
  \end{enumerate}
\end{theorem}

Данная теорема означает, что если политика разграничения доступа в компьютерной
системе запрещает субъектам, имеющим в исходном состоянии права доступа к
определённым объектам, непосредственно предоставлять эти права другим субъектам
(то есть такие потоки, для которых в графе доступов $G_0$ нет дуг <<$g$>> от
этих субъектов), которые изначально такими правами не обладают, то тем не менее,
такие первоначально <<обделённые>> субъекты могут получить данные права при
наличии в графе доступов возможностей получения доступа с правом $t$ к первым
субъектам.

Таким образом, модель \emph{take-grant} играет важную методологическую роль,
предоставляя теоретико-графовый инструмент анализа систем разграничения доступа
с точки зрения санкционированного и несанкционированного со стороны определённых
субъектов распространения прав доступа в рамках дискреционной политики.

Правила де-юре контролируют только передачу полномочий, они ничего не говорят о
передач информации, поэтому на основе классической модели \emph{Take-Grant}
были разработаны её расширения, которые предлагают новые механизмы анализа, в
большей степени применимые к современным системам защиты информации.

Рассмотрим некоторые расширения модели.

%% NOTE: 1
\paragraph{Де-факто правила, предназначенные для поиска и анализа информационных
потоков.}

Вместо прав доступа take и grant в расширенной модели в первую очередь
рассматриваются права read и write, наличие которых у субъектов системы является
причиной возникновения информационных потоков.

Основные элементы (дополнения):
\begin{itemize}
  \item
    $R = \set{r_1, r_2, \dots, r_m} \cup \set{t, g} \cup \set{r, w}$ ---
    множество видов прав доступа информационных потоков, где r (read) --- право
    на чтение или информационный поток на чтение, w (write) --- право на запись
    или информационный поток на запись;
  \item
    $G = (S, O, E \cup F)$ --- граф доступов и информационных потоков;
  \item
    Элементы множества $E \subseteq O \times O \times R$ являются <<реальными>>
    дугами графа, соответствующими правам доступа, и в графе доступов
    обозначается сплошными линиями;
  \item
    Элементы множества $F \subseteq O \times O \times \set{r, w}$ являются
    <<мнимыми>> дугами, соответствующими информационным потокам, и в графе
    доступов обозначаются пунктирными линиями.
  \item
    Каждая <<реальная>> дуга помечена непустым подмножеством множества всех видов
    прав доступа $R$, каждая <<мнимая>> дуга помечена непустым подмножеством
    множества $\set{r, w}$;
  \item
    Порядок перехода системы расширенной модели \emph{Take-Grant} из состояния
    в состояние определяется де-юре и де-факто правилами преобразования графов
    доступов и информационных потоков;
  \item
    Преобразование графа $G$ в граф $G'$ в результате выполнения правила $op$
    обозначается $G \vdash_{op} G'$.
\end{itemize}

Определение де-юре правил take, grant, create, remove совпадает с определением
этих правил в классической модели Take-Grant.

Де-юре правила применяются только к <<реальным>> дугам (элементам множества
$E$). Де-факто правила применяются к <<реальным>> или <<мнимым>> дугам
(элементам множества $E \cup F$), помеченным $r$ или $w$.

Результатом применения де-факто правил является добавление новых <<мнимых>> дуг
в множество $F$. Рассматриваются шесть де-факто правил: два вспомогательных и
четыре основных

\begin{itemize}
  \item
    См. рисунок 2.8: субъект $x$ получает возможность записи (в себя) информации,
    осуществляя доступ $r$ к объекту $y$.
    %% TODO: рис. 2 (2.8)
    %% TODO: Применение первого де-факто правила
  \item
    См. рисунок 2.8: субъект $x$ получает возможность чтения информации,
    осуществляя доступ $w$ к объекту $y$.
    %% TODO: рис. 3 (2.9)
    %% TODO: Применение второго де-факто правила
  \item
    \emph{Spy} (шпион) (см. рисунок 2.10): субъект $x$ получает возможность
    чтения информации из объекта $z$, осуществляя доступ $r$ к субъекту $y$,
    который, в свою очередь, осуществляет доступ $r$ к объекту $z$, при этом
    также у субъекта $x$ возникает возможность записи к себе информации из
    объекта $z$.

    Получается, $x$ шпионит за $z$, используя $y$, другими словами, $x$ <<смотрит
    через плечо>> $y$, чтобы следить за $z$.
    %% TODO: рис. 4 (2.10)
    %% TODO: Применение правила spy(x, y, z)
  \item
    \emph{Find} (находить) (см. рисунок 2.11): субъект $x$ получает возможность
    чтения информации из объекта $z$, осуществляя доступ $w$ к субъекту $y$,
    который, в свою очередь, осуществляет доступ $w$ к объекту $z$, при этом
    также у субъекта $x$ возникает возможность записи к себе информации из
    объекта $z$.
    %% TODO: рис. 5 (2.11)
    %% TODO: Применение правила spy(x, y, z)
  \item
    \emph{Post} (почта) (см. рисунок 2.12): субъект $x$ получает возможность чтения
    информации от (из) другого субъекта $z$, осуществляя доступ $r$ к объекту
    $y$, к которому субъект $z$ осуществляет доступ $w$, а субъект $z$, в
    свою очередь.
\end{itemize}
