1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
|
% Лекция 12 (04/08.12.23)
%% NOTE: 3.1
% \subsection{Модель Белла-ЛаПадулы}
$M = \set{m_{|S| \times |O|}}$ --- множество возможных матриц доступов, где
$m_{|S| \times |O|}$ --- матрица доступов, $m[s, o] \subseteq R$ --- права
доступа субъекта $s$ к объекту $o$;
$(f_s, f_o, f_c) \in F = L^S \times L^O \times L^S$ --- тройка функций
%% TODO: дописать
\begin{itemize}
\item $V = B \times M \times F$ --- множество состояний системы;
\item $Q$ --- множество запросов системе;
\item
$D$ --- множество ответов по запросам, например, $D = \set{yes, no, error}$;
\item
$W \subseteq Q \times D \times V \times V$ --- множество действий системы,
где $(q, d, v^*, v) \in W$, означает, что системы по запросу $q$ с ответом
$d$ перешла из состояния $v$ в состояние $v^*$;
\item
$\NN_0 = \set{0, 1, 2, \dots}$ --- множество значений времени;
\item
$X$ --- множество функций $x : \NN_0 \to Q$, задающих все возможные
последовательности запросов к системе;
\item
$Y$ --- множество функций $y : \NN_0 \to D$, задающих все возможные
последовательности ответов системы по запросам;
\item
$Z$ --- множество функций $z : \NN_0 \to V$, задающих все возможные
последовательности состояний системы.
\end{itemize}
$\Sigma (Q, D, W, z_0) \subseteq X \times Y \times Z$ называется \emph{системой},
когда для каждого $(x, y, z) \in \Sigma (Q, D, W, z_0)$ выполняется условие:
для $t \in \NN_0 \; (x_t, y_t, z_{t + 1}, z_t) \in W$, где $z_0$ --- начальное
состояние системы.
При этом каждый набор $(x, y, z) \in \Sigma (Q, D, W, z_0)$ называется
\emph{реализацией} системы, а $(x_t, y_t, z_{t + 1}, z_t) \in W$ ---
\emph{действием} системы в момент времени $t \in \NN_0$.
В классической модели Белла-ЛаПадулы рассматриваются следующие запросы, входящие
в множество $Q$:
\begin{enumerate}
\item запросы изменения множества текущих доступов $b$;
\item запросы изменения функций $f$;
\item запросы изменения прав доступа в матрице $m$.
\end{enumerate}
Следующий список описывает изменения каждого элемента состояния системы.
Конкретное решение по запросу включает возможность производить следующие
изменения в состоянии системы.
\begin{enumerate}
\item
Изменение текущих доступов:
\begin{enumerate}
\item
получить доступ (добавить тройку (субъект, объект, вид доступа) в
текущее множество доступов $b$);
\item
отменить доступ (удалить аналогично).
\end{enumerate}
\item
Изменение значений функций уровней конфиденциальности и доступа:
\begin{enumerate}
\item изменить уровень конфиденциальности объекта;
\item изменить уровень доступа субъекта.
\end{enumerate}
\item
Изменение прав доступа:
\begin{enumerate}
\item
дать разрешение на доступ (добавить право доступа в соответствующий
элемент матрицы доступов $m$);
\item
отменить разрешение на доступ (удалить аналогично).
\end{enumerate}
\end{enumerate}
Безопасность системы определяется с помощью трёх свойств:
\begin{itemize}
\item
ss --- свойства простой безопасности (simple security, безопасность по
чтению);
\item
* --- свойства <<звезда>> (безопасность по записи);
\item
ds --- свойства дискреционной безопасности (discretionary security,
безопасность (разрешённость) по матрице доступа).
\end{itemize}
Доступ $(s, o, r) \in S \times O \times R$ обладает ss-свойством относительно
$f = (f_s, f_o, f_c) \in F$, когда выполняется одно из условий:
\begin{enumerate}
\item $r \in \set{execute, append}$;
\item $r \in {read, write} \land f_s(s) \geq f_o(o)$.
\end{enumerate}
Состояние системы $(b, m, f) \in V$ обладает ss-свойством, когда каждый элемент
$(s, o, r) \in b$ обладает ss-свойством относительно $f$.
Доступ $(s, o, r) \in S \times O \times R$ обладает *-свойством относительно
$f = (f_s, f_o, f_c) \in F$, когда выполняется одно из условий:
\begin{enumerate}
\item $r = execute$;
\item $r = append \land f_o(o) \geq f_c(s)$;
\item $r = read \land f_c(s) \geq f_o(o)$;
\item $r = write \land f_c(s) = f_o(o)$.
\end{enumerate}
Состояние системы $(b, m, f) \in V$ обладает *-свойством, когда каждый элемент
$(s, o, r) \in b$ обладает *-свойством относительно $f$.
Состояние системы $(b, m, f) \in V$ обладает *-свойством относительно
подмножества $S' \subseteq S$, когда каждый элемент $(s, o, r) \in b$, где
$s \in S'$, обладает *-свойством относительно $f$.
При этом $S \backslash S'$ называется \emph{множеством доверенных субъектов},
то есть субъектов, имеющих право нарушать требования *-свойства.
Состояние системы $(b, m, f) \in V$ обладает ds-свойством, когда для каждого
доступа $(s, o, r) \in b$ выполняется условие $r \in m[s, o]$.
Состояние системы $(b, m, f)$ называется \emph{безопасным}, когда оно обладает
*-свойством относительно $S'$, ss-свойством и ds-свойством.
Реализация системы $(x, y, z) \in \Sigma (Q, D, W, z_0)$ обладает ss-свойством
(*-свойством, ds-свойством), когда в последовательности $(z_0, z_1, \dots)$
каждое состояние обладает ss-свойством (*-свойством, ds-свойством).
Система $\Sigma (Q, D, W, z_0)$ обладает ss-свойством (*-свойством, ds-свойством),
когда каждая её реализация обладает ss-свойством (*-свойством, ds-свойством).
Система $\Sigma (Q, D, W, z_0)$ нащывается \emph{безопасной}, когда она обладает
ss-свойством, *-свойством, ds-свойством одновременно.
Описанные свойства можно пояснить следующим образом:
\begin{enumerate}
\item
из обладания доступом *-свойством относительно $f$ следует обладание этим
доступом ss-свойством относительно $f$;
\item
из обладания ss-свойством следует, что в модели Белла-ЛаПадулы выполняется
запрет на чтение вверх, требуемый мандатной политикой безопасности.
Кроме того, ss-свойство не допускает модификацию с использованием доступа
write, когда $f_s(s) < f_o(o)$.
Таким образом, функция $f_s(s)$ задаёт для субъекта $s$ верхний уровень
конфиденциальности объектов, к которым он потенциально может получить доступ
read или write;
\item
если субъект $s$ может понизить свой текущий уровень доступа до $f_c(s) =
f_o(o)$, то он может получить доступ write к объекту $o$, но не доступ
read к объектам $o'$, чей уровень $f_o(o') > f_c(s)$.
Хотя при этом, возможно, справедливо неравенство $f_s(s) \geq f_o(o')$, и
в каких-то других состояниях системы субъект $s$ может получить доступ
read к объекту $o'$.
Таким образом, *-свойство исключает появление в системе запрещённого
информационного потока <<сверху вниз>> и соответствует требованиям мандатной
политики безопасности (см. рис. 3.1).
%% TODO: рис 1 (3.1): Иллюстрация *-свойства
\end{enumerate}
%% NOTE: 3.1
\begin{theorem}
Система $\Sigma(Q, D, W, z_0)$ обладает ss-свойством для любого начального
состояния $z_0$, обладающего ss-свойством $\iff$ для каждого действия
$(q, d, (b^*, m^*, f^*), (b, m, f)) \in W$ выполняется два условия:
\begin{enumerate}
\item
каждый доступ $(s, o, r) \in b^* \backshash b$ обладает ss-свойством
относительно $f^*$;
\item
если $(s, o, r) \in b$ и не обладает ss-свойством относительно $f^*$,
то $(s, o, r) \not\in b^*$.
\end{enumerate}
\end{theorem}
\begin{theorem}
Система $\Sigma(Q, D, W, z_0)$ обладает *-свойством относительно $S' \subseteq S$
для любого начального состояния $z_0$, обладающего *-свойством относительно
$S'$ $\iff$ для каждого действия $(q, d, (b^*, m^*, f^*), (b, m, f)) \in W$
выполняются два условия:
\begin{enumerate}
\item
для $s \in S'$ доступ $(s, o, r) \in b^* \backslash b$ обладает *-свойством
относительно $f^*$;
\item
для $s \in S'$, если $(s, o, r) \in b$ и не обладает *-свойством
относительно $f^*$, то $(s, o, r) \not\in b^*$.
\end{enumerate}
\end{theorem}
\begin{theorem}
Система $\Sigma(Q, D, W, z_0)$ обладает ds-свойством для любого начального
состояния $z_0$, обладающего ds-свойством $\iff$ для каждого действия
$(q, d, (b^*, m^*, f^*), (b, m, f)) \in W$ выполняется два условия:
\begin{enumerate}
\item
для каждого $(s, o, r) \in b^* \backslash b$ выполняется условие
$r \in m^*[s, o]$;
\item
если доступ $(s, o, r) \in b \land r \not\in m^*[s, o] \implies (s, o, r)
\not\in b^*$.
\end{enumerate}
\end{theorem}
%% NOTE: 3.4
\begin{theorem}[Базовая теорема безопасности]
Система $\Sigma(Q, D, W, z_0)$ безопасна для безопасного $z_0$ $\iff$
множество действий системы $W$ удовлетворяет условиям теорем 3.1 -- 3.3.
\end{theorem}
|