О б б О б б О проблеме обоснования адекватности формальных

advertisement
О проблеме
б
обоснования
б
адекватности
формальных моделей безопасности
логического управления доступом и их
реализации в компьютерных системах
д.т.н., доцент Девянин П.Н.
УМО ИБ, г. Москва
peter_devyanin@hotmail.com
peter devyanin@hotmail.com
Модели безопасности управления
доступом и их применение
 Классическая модель Белла
Белла--ЛаПадулы (мандатное управление
доступом в ОС
ОС)) и ее интерпретации, модель мандатной политики
целостности информации Биба (механизм MIC в ОС Windows
Vista/7/2008
Vista
//7/2008)
/2008), модель систем военных сообщений
/2008)
б
(ЭПС);
Э С)
ЭПС
С);
)
 Модель Take
Take--Grant и ее основные расширения;
 Модель Харрисона
Харрисона--Руззо
Руззо--Ульмана и ее развитие  модель
типизированной матрицы доступов (пакет SELinux
SELinux);
);
 Субъектно
Субъектно--ориентированная модель ИПС (ИПС в защищенных ОС
ОС);
);
 Базовая модель ролевого управления доступом RBAC (управление
доступом в СУБД
СУБД)) и ее расширение для КС с мандатным управлением
доступом;
 Группоцентрические модели управления доступом (g
(g-SIS),
SIS), модели
делегирования доверия
доверия;;
 Модели безопасности логического управления доступом и
информационными потоками  ДП
ДП--модели (анализ безопасности
защищенных
щ щ
ОС)).
ОС).
2
Постановка проблемы
р
Применение классических методов теории моделирования ((статистических
статистических,,
экспериментальных)) для анализа адекватности моделей безопасности
экспериментальных
логического управления доступом и информационными потоками
реальным КС затруднено
затруднено..
Пример:
Реальная ОС
E












read
write
S




Формальная
р
модель
д

write


E
?


система небезопасна















S




система безопасна
3
Требования
р
критериев
р р
оценки
ц
защищенности КС
«Критерии оценки безопасности информационных технологий»
ГОСТ Р ИСО/МЭК 15408
15408--2002
2002::
Разработка
(класс ADV)
Моделирование
политики
безопасности
(семейство
ADV_SPM)
ADV SPM)
Формальная
модель
политики
безопасности
объекта оценки
( о о е а
(компонента
ADV_SPM.3)
ADV_SPM
.3)
Оценочный
уровень
доверия 5
Оценочный
(ОУД
5)
уровень
доверия 6
Оценочный
((ОУД
Д 6)
уровень
доверия 7
(ОУД 7)
«Как минимум, требуется моделировать политики управления
доступом и информационными потоками (если они являются
частью ПБО), так как в настоящее время это признается
возможным».
4
Поэтапное решение
р
1 В соответствии с заданными для защищенной КС целями
1.
безопасности (например, на основе ГОСТ Р ИСО/МЭК 15408154082002)) выбор
2002
р направления
р
ф
формального
р
моделирования
д
р
безопасности логического управления доступом и
информационными потоками (например, мандатное
управление доступом)
доступом).
2. Построение формальной модели.
модели. В соответствии с целями
безопасности формулирование и обоснование условий
безопасности КС.
3. Получение из формальной модели спецификаций
(предусловия и постусловия) функций
функций,, реализующих в КС
механизм управления доступом. Обоснование корректности
реализации функций непосредственно в программном коде
коде.
Верификация программного кода  устранение «обходных
путей»
у
предоставления доступов.
у
5
2 этап  построение формальной
модели. Пример  РОСЛ ДПДП-модель
E = O  C  множество сущностей (O
(O  множество объектов, C  множество контейнеров);
U  множество учетных записей пользователей; ( LU , NU  учетные записи доверенных/недоверенных пользователей);
]u[  E \ S  множество сущностей, параметрически ассоциированных с u  U, и UE = {e
{e  ]u[: u  U};
субъект-сессии);
S  E  субъект
субъект--сессии учетных записей пользователей (L
(LS , NS  доверенные/недоверенные субъектR, AR  множество ролей/административных ролей ((AR
AR  R = );
]r[  E \ S  множество сущностей, параметрически ассоциированных с r  R  AR
AR,, и RE = {e
{e  ]r[: r  R  AR
AR}};
Rr = {read
{readr, writer, executer, ownr}  множество видов прав доступа; Ra = {read
{reada, writea, owna}  множество видов доступа;
Rf = {write
{writem, writet}  множество видов информационных потоков;
P  E  Rr  множество прав доступа к сущностям; A  S  E  Ra  множество доступов субъектсубъект-сессий к сущностям;
F  E  E  Rf  множество информационных потоков;
UA:: U → 2R , AUA
UA
AUA::U → 2AR  функции авторизованных ролей/административных ролей учетных записей пользователей;
PA:: R → 2P \ {}  функция прав доступа ролей; user
PA
user:: S → U  функция принадлежности субъект
субъект--сессии учетной
субъект-сессий;
записи пользователя; roles
roles:: S → 2R  2AR  функция текущих ролей субъектcan_
can
_manage
manage_
_rights:
rights: AR  2R  функция администрирования прав доступа ролей;
[s]  E  U  сущности, функционально ассоциированных с субъект
субъект--сессией s, fa
fa:: U  E → 2E  2U - функция,
задающая множества сущностей, функционально ассоциированных с субъектсубъект-сессией при ее создании;
]s[  E \ S  множество сущностей, параметрически ассоциированных с субъектсубъект-сессией, fp
fp:: U  E → 2E - функция,
задающая множества сущностей, параметрически ассоциированных с субъектсубъект-сессией при ее создании;
HR: R  2R  фу
функция иерархии
р р
ролей;
р
HAR: AR  2AR  фу
функция иерархии
р р
административных
р
р
ролей.
6
Иерархия сущностей
HE: E  2E  функцию иерархии сущностей (сопоставляющую каждой сущности e  E множество
сущностей HE(e)  E, непосредственно в ней содержащихся), удовлетворяющую условиям:
Условие 1.
1 Если сущность e  HE(c), то e < c, при этом
этом, если e  C  S, то не существует сущности
сущности-контейнера d  C такой, что e < d, d < c.
Условие 2. Для любых сущностей e1, e2  E, e1  e2, по определению выполняются равенство
HE(e1)  HE(e2)  (C  S) =  и уусловия:
 если o  O, то справедливо равенство HE(o) = ;
 если e1 < e2, то или e1, e2  E \ S, или e1, e2  S;
 если e  E \ S, то HE(e)  E \ S;
 если s  S, то HE(s)  S.
execute_container
execute_
container:: S  E  {true
true,, false
false}}  функция доступа субъект
субъект--сессии к контейнеру такая, что
по определению для субъект
субъект--сессии s  S и сущности e  E справедливо равенство
execute_
execute
_container
container((s, e) = true тогда и только тогда, когда либо e  S, либо e  E \ S и существует
последовательность сущностей e1, …, en, где n ≥ 1, e = en, удовлетворяющих следующим
условиям:
 не существует сущности
сущности--контейнера e0  E \ S такой, что e1  HE(e0);
 ei  HE(ei – 1), где 1 < i  n;
 (ei, execute
t r)  PA
PA((roles
roles(
l (s))
)),, где 1  i < n.
shared_
shared
_container
container:: С  {true
true,, false
false}}  функцию разделяемых контейнеров такую
такую,, что сущностьсущностьконтейнер c  C \ S является разделяемой,
разделяемой, когда shared
shared_
_container
container((c) = true
true,, в противном случае
shared_
shared
_container
container((c) = false
false..
7
Мандатный контроль целостности
(LI
LI,, )  линейная шкала двух уровней целостности данных, где LI = {i
{i_low
low,, i_high
high}}, i_low < i_high
high;;
(iu, ie, ir, is)  I  четверка функций уровней целостности, при этом:
iu: U  LI  функция уровней целостности субъект
субъект--сессий;
ie: E \ S  LI  функция уровней целостности сущностей;
ir: R  AR  LI  функция уровней целостности ролей;
is: S  LI  функция текущих уровней целостности субъектсубъект-сессий;
I  множества всех четверок функций заданного вида;
Предположение.
 для ролей r, r’  R  AR
AR,, если r  r’, то ir(r)  ir(r’)
’);
);
 для сущностей e, e’  E \ S, если e  e’, то ie(e)  ie(e’)
’);;
’);;
 для субъект
субъект--сессий s, s’  S, если s  s’, то is(s)  is(s’)
 для каждой сущности e  u, где u  U, справедливо равенство ie(e) = iu(u);
 для субъект
субъект--сессии s  S верно неравенство is(s)  iu(user
user((s))
));;
 для учетной записи пользователя u  U и роли r  R, если r  UA
UA((u), то ir(r)  iu(u);
 для субъект
субъект--сессии s  S и роли r  R, если r  roles
roles((s), то ir(r)  is(s);
 для права доступа к сущности (e, )  P, где   {ownr, writer}, и роли r  R, если (e, )  PA
PA((r),
то ie(e)  ir(r);
 для учетной записи доверенного пользователя u  LU справедливо равенство iu(u) = i_high
high;;
 для учетной записи недоверенного пользователя u  NU справедливо равенство iu(u) = i_low
low;;
i_entity)) = i_high
i_high..
 верно равенство ie(i_entity
8
Фактическое владение. Фактические
роли, права доступа, доступы
de_facto_own: S → S - функция фактического владения субъектde_facto_own:
субъект-сессий субъектсубъект-сессиями такая,
что для s, s’  S.
Предположение. Если субъект
субъект--сессия s реализовала информационный поток по памяти от себя к
сущности, функционально ассоциированной с другой субъект
субъект--сессией s’, или субъектсубъект-сессия s
реализовала информационный поток по памяти к себе от всех сущностей,
сущностей параметрически
ассоциированных с другой субъектсубъект-сессией s’, то субъектсубъект-сессия s получает фактическое
владение субъект
субъект--сессией s’ (s’  de_facto_own
de_facto_own((s)).
Предположение.
р
Если субъектсубъект
у
-сессия s имеет доступ
у владения owna к субъект
субъекту
-сессии s’, то
субъект--сессия s получает возможности:
субъект
 использовать роли из множества текущих ролей субъект
субъект--сессии s’;
 изменять множество текущих ролей субъектсубъект-сессии s’;
 использовать текущий уровень целостности субъектсубъект-сессии s’;
 использовать доступы субъектсубъект-сессии s’ или удалить субъект
субъект--сессию s’;
 фактически владеть субъект
субъект--сессиями, которыми фактически владеет субъект
субъект--сессия s’;
 использовать административные роли субъектсубъект-сессии s’;
 использовать информационные потоки, которые реализует субъектсубъект-сессия s’.
Используем обозначения:
 de
de_
_facto
facto_
_roles
roles:: S → 2R  AR  фактические текущие роли субъект
субъект--сессий;
субъект--сессий;
 de
de_
_facto
facto_
_rights
rights:: S → 2P  фактические текущие права доступа субъект
субъект-сессий.
 de
de_
_facto
facto_
_accesses
accesses:: S → 2A  фактические доступы субъект9
Примеры
р
р де
де--юре
р правил
р
без
информационных потоков по времени
10
Де-ф
Дефакто правила
р
без
информационных потоков по времени
11
Зависимость условий и результатов правил
Учетные записи пользователей (U)
Уровни целостности (i
(iu, iie, iir, iis)
Ограничения Ограничения
(Constraint)
user
Субъект‐сессии (S)
UA, AUA
roles
Роли (R
(  AR))
Параметры доступа к разделяемым контейнерам
PA
Права доступа к сущностям
Фактическое владение
Доступы к сущностям (A)
Информационные потоки по памяти
Информационные потоки по времени
12
3 этап  обоснование корректности
программной реализации формальной
д
модели
Правила вывода  V {S} P (в том
числе):
)
 усиления предусловия и
ослабления постусловия;
р
р присваивания;
р
 оператора
 условного оператора if
if;;
 последовательности операторов;
 цикла с условием продолжения;
 подпрограмма или сегмент
Если
V  V1 и {V1} OP {P1} и
P1P
то
{V} OP {P}
Если
{V1 and B}
B} OP
OP1
1 {P
{P} и
{V2 and not B} OP
OP2
2 {P}
то
{V1 and V2}
if B
then OP
OP1
1
else
l OP
OP2
2
endif {P}
программы.
13
С
Спасибо
ас бо за внимание!
а е!
14
Download