diff options
| author | Andrew Guschin <guschin@altlinux.org> | 2024-08-06 23:54:54 +0400 |
|---|---|---|
| committer | Andrew Guschin <guschin@altlinux.org> | 2024-08-06 23:54:54 +0400 |
| commit | f9b917e3135b27caf54d4e595e30cbe7ece935ae (patch) | |
| tree | 8dec46094b92e792e326e10a728abaec202f76a0 /security-models/lectures/lecture6.tex | |
| parent | cc5ac702b1f50b76103e8ba2d4fc1751c0d0238f (diff) | |
Лекции по моделям безопасности и методам алгебраической геометрии
Diffstat (limited to 'security-models/lectures/lecture6.tex')
| -rw-r--r-- | security-models/lectures/lecture6.tex | 182 |
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: дописать |