О проблеме б обоснования б адекватности формальных моделей безопасности логического управления доступом и их реализации в компьютерных системах д.т.н., доцент Девянин П.Н. УМО ИБ, г. Москва 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} и P1P то {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