ОИБ. основы информ. безопасности. Учебное пособие Томск
Скачать 1.99 Mb.
|
Основная теорема безопасности Белла-ЛаПадулы [3] Система Z(Vo,R,T) безопасна тогда и только тогда, когда: а) начальное состояние. v 0 безопасно и б) для любого состояния v, достижимого из v 0 путем применения конечной последовательности запросов из R таких, что T(v,r) = v*, v = (F,M) и v* = (F*,M*) для каждого s S и о О выполняются следующие условия: 1. если read M*[s,o] и read M[s,o], то F*(s)> F*(o); 2. если read M[s,o] и F*(s) M* [s,o]; 3. если write M*[s,o] и write M[s,o], то F*(o)> F*(s); 4. если write M[s,o] и F*(o) M* [s,o]. Таким образом, теорема утверждает, что система с безопасным начальным состоянием является безопасной тогда и только тогда, когда при любом переходе системы из одного состояния в другое не возникает никаких новых и не сохраняется никаких старых отношений доступа, которые будут небезопасны по отношению к функции уровня безопасности нового состояния. Формально эта теорема определяет все необходимые и достаточные условия, которые должны быть выполнены для того, чтобы система, начав свою работу в безопасном состоянии, никогда не достигла небезопасного состояния. 4.2.10. Безопасная функция перехода Недостаток основной теоремы безопасности Белла-ЛаПадулы состоит в том, что ограничения, накладываемые теоремой на функцию перехода, совпадают с критериями безопасности состояния, поэтому данная теорема является избыточной по отношению к определению безопасного состояния. Кроме того, из теоремы следует только то, что все состояния, достижимые из безопасного состояния при определенных ограничения, будут в некотором смысле безопасны, по при этом не гарантируется, что они будут достигнуты без потери свойства безопасности в процессе осуществления перехода. Поскольку у нас нет никаких определенных ограничений на вид функции перехода, кроме указанных в условиях теоремы, и допускается, что уровни безопасности субъектов и объектов могут изменяться, то можно представить такую гипотетическую систему (она получила название Z-системы), в которой при попытке низкоуровневого субъекта прочитать информацию из высокоуровневого объекта будет происходить понижение уровня объект до уровня субъекта и осуществляться чтение. Функция перехода Z-сиегемы удовлетворяет ограничениям основной теоремы безопасности, и все состояния такой системы также являются безопасными в смысле критерия Белла - ЛаПадулы, но вместе с тем в этой системе любой пользователь сможет прочитать любой файл, что, очевидно, несовместимо с безопасностью в обычном понимании. Следовательно, необходимо сформулировать теорему, которая бы не только констатировала безопасность всех достижимых состояний для системы, соответствующей определенным условиям, но и гарантировала бы безопасность в процессе осуществлении переходов между состояниями. Для этого необходимо регламентировать изменения уровней безопасности при переходе от состояния к состоянию с помощью дополнительных правил. Такую интерпретацию мандатной модели осуществил Мак-Лин, предложивший свою формулировку основной теоремы безопасности, основанную не на понятии безопасного состояния, а на понятии безопасного перехода. Функция перехода является безопасной тогда и только тогда, когда она одновременно безопасна и по чтению и по записи и когда она изменяет только один из компонентов состояния, и эти изменения не приводят к нарушению безопасности системы. 79 Теорема безопасности Мак-Лина. Система безопасна в любом состоянии и в процессе переходов между ними, если ее начальное состояние является безопасным, а ее функция перехода удовлетворяет критерию Мак- Лина. Обратное утверждение неверно. Система может быть безопасной по определению Белла-ЛаПадулы, но не иметь безопасной функции перехода. Такая формулировка основной теоремы безопасности предоставляет в распоряжение разработчиков защищенных систем базовый принцип их построения, в соответствии с которым для того, чтобы обеспечить безопасность системы как в любом состоянии, так и в процессе перехода между ними, необходимо реализовать для нее такую функцию перехода, которая соответствует указанным условиям. 4.2.11. Уполномоченные субъекты Формулировка основной теоремы безопасности в интерпретации Мак-Лина позволяет расширить область ее применения по сравнению с классической теоремой Белла-ЛаПадулы, однако, используемый критерий безопасности перехода не всегда соответствует требованиям контроля доступа, возникающим на практике. Поскольку в процессе осуществления переходов могут изменяться уровни безопасности сущностей системы, желательно контролировать этот процесс, явным образом разрешая или запрещая субъектам осуществлять подобные переходы. Для решения этой задачи Мак-Лин расширил базовую модель путем выделения подмножества уполномоченным субъектов, которым разрешается инициировать переходы, в результате которых у сущностей системы изменяются уровни безопасности. Система с уполномоченными субъектами также описывается множествами S, О, L, смысл которых совпадает с аналогичными понятиями модели Белла-ЛаПадулы, а ее состояние также описывается набором упорядоченных пар (F,M), причем функция перехода F и матрица отношений М доступа играют ту же роль. Новым элементом модели является функция управления уровнями C: SuO > P(S) (здесь и далее P(S) обозначает множество всех подмножеств S). Эта функция определяет подмножество субъектов, которым позволено изменять уровень безопасности, для заданного объекта или субъекта. Модель системы (vo,R, T a состоит из начального состояния vo, множества запросов R и функции перехода Т а , которая переводит систему из состояния в состояние по мере выполнения запросов. С точки зрения модели уполномоченных субъектов система (vo,R, T a ) считается безопасной в том случае, если: 1. Начальное состояние v 0 и все состояния, достижимые из него путем применения конечного числа запросов из R являются безопасными по критерию Белла - ЛаПадулы; 2. Функция перехода Т а является авторизованной функцией перехода согласно предложенному определению. 4.2.12. Модель совместного доступа Практическое применение всех представленных формулировок мандатной модели безопасности ограничено еще одним фактором — они не учитывают широко распространенные в государственных учреждениях правила, согласно которым доступ к определенной информации или модификация ее уровня безопасности могут осуществляться только в результате совместных действий нескольких пользователей (т. н. групповой доступ). Для того, чтобы мандатная модель предусматривала совместный доступ необходимо модифицировать се следующим образом. Вместо множества субъектов системы S будем рассматривать множество непустых подмножеств S, которое обозначим как S=Р(S)\{ }. Расширим матрицу прав доступа, отражающую текущее состояние доступа в системе, путем добавления в нее строк, содержащих права групповых субъектов, и обозначим ее как М Кроме функции уровня безопасности F:SuO L для групповых субъектов вводятся 80 дополнительные функции: F L :S L такая, что F L (s) есть наибольшая нижняя граница множества {F(s) / s S} и F H :S L, такая, что F H (s) есть наименьшая верхняя граница множества{F(s) / s S}. Критерии безопасности состояния для такой системы формулируются следующим образом: 1. Состояние системы является безопасным но чтению тогда и только тогда, когда для каждого индивидуального или группового субъекта, имеющего в этом состоянии доступ чтения к объекту, наибольшая нижняя граница множества уровней безопасности этого субъекта доминирует над уровнем безопасности этого объекта: s S, o O, read M[s , o] F L (s)>F(o). 2. Состояние системы является безопасным по записи тогда и только тогда, когда для каждого индивидуального или группового субъекта, имеющего в этом состоянии доступ записи к объекту, уровень безопасности этого объекта доминирует над наименьшей верхней границей множества уровней безопасности этого субъекта: s S, o O, write M[s,o]->F(o)> F H (s). Тогда теорема Белла-ЛаПадулы для совместного доступа формулируется следующим образом [3]: Система (vo,R, T) безопасна тогда и только тогда, когда: а) начальное состояние V 0 безопасно и б) функция перехода Т такоdа, чго для любого состояния v, достижимого из v 0 путем применения конечной последовательности запросов из R, таких, что T(v,r) = v*, v=((F,F H ,F L ),M) и v*=((F*,F* H , F* L )*,M*) для каждого s S, o O выполняются следующие условия: 1. если read M*[s,o] и read M[s,o], то F L *(s)> F*(o); 2. если read M[s,o] и F L *(s) M* [s,o]; 3. если write M*[s,o] и write M[s,o], то F*(o)> F H *(s); 4. если write M[s,o] и F*(o) *(s), то write M* [s,o]. 4.2.13 Применение мандатных моделей В завершении обзора мандатных моделей необходимо отметить трудности, которые связаны с их применением на практике. Все мандатные модели, как и модель Белла - ЛаПалулы, используют только два права доступа – чтение и запись. Па практике информационные системы поддерживают значительно более широкий спектр операций над информацией, например, создание, удаление, передачи и т. д. Следовательно, для того чтобы применить мандатную модель к реальной системе, необходимо установить подходящее соответствие между чтением и записью и операциями, реализованными в конкретной системе. Самым простым примером непрактичности мандатной модели является невозможность ее применения для сетевых взаимодействий — нельзя построить распределенную систему, в которой информация передавалась бы только в одном направлении, потому что всегда будет существовать обратный поток информации, содержащий ответы на запросы, подтверждения получения и т.д. Поэтому, когда и системе используется мандатная политика, все взаимодействия рассматриваются только на достаточно высоком уровне абстракции, на котором не учитываются детали реализации операций доступа. Такой подход позволяет отобразить любое множество разнообразных операций доступа в обобщенные операции чтения и записи. Для оценки возможности нарушений безопасности с использованием методов, основанных на несоответствии этих абстрактных операций и реальных механизмов доступа, применяется анализ т.н. скрытых каналов утечки информации. Целью этих исследований является 81 выявление тех способов, с помощью которых информация может передаваться в обход правил мандатной модели. Чем больше потоков информации мы поставим под контроль мандатной модели, тем менее гибкой будет наша система, но и тем меньше потоков информации придется исследовать в процессе анализа скрытых каналов. В заключение обзора мандатной модели управления доступом необходимо отметить, что хотя она является базовой моделью безопасности, составляющей основу теории зашиты информации, однако ее применение на практике связано с серьезными трудностями: Поэтому в реальной жизни она используется только в системах, обрабатывающих классифицированную информацию, и применяется только в отношении ограниченного подмножества субъектов и объектов. 4.2.14. Ролевая политика безопасности Ролевая политика безопасности представляет собой существенно усовершенствованную модель Харрисона–Руззo-Ульмана, однако ее нельзя отнести ни к дискреционным, ни к мандатным, потому что управление доступом в ней осуществляется как на основе матрицы прав доступа для ролей, так и с помощью правил, регламентирующих назначение ролей пользователям и их активацию во время сеансов. Поэтому ролевая модель представляет собой совершенно особый тип политики, основанной на компромиссе между гибкостью управления доступом, характерной для дискреционных моделей, и жесткостью правил контроля доступа, присущей мандатным моделям. В ролевой модели классическое понятие субъект замещается понятиями пользователь и роль. Пользователь -— это человек, работающий с системой и выполняющим определенные служебные обязанности. Роль — это активно действующая в системе абстрактная сущность, с которой связан ограниченный, логически связанный набор полномочий, необходимых для осуществления, определенной деятельности. Самым распространенным примером роли является присутствующий почти в каждой системе административный бюджет (например root для UNIX и Administrator для Windows NT), который обладает специальными полномочиями и может использоваться несколькими пользователями. Ролевая политика распространена очень широко, потому что она, в отличие от других более строгих и формальных политик, очень близка к «peальной жизни». Ведь на самом деле работающие в системе пользователи действуют не от своего личного имени они всегда осуществляют определенные служебные обязанности, т.е. выполняют некоторые роли, которые никак не связаны с их личностью. Поэтому вполне логично осуществлять управление доступом и назначать полномочия не реальным пользователям, а абстрактным (не персонифицированным) ролям, представляющим участников определенного процесса обработки информации. Такой подход к политике безопасности позволяет учесть разделение обязанностей и полномочий между участниками прикладного информационного процесса, т. к. с точки зрения ролевой политики имеет значение не личность пользователя, осуществляющего доступ к информации, а то, какие полномочия ему необходимы для выполнения его служебных обязанностей. Например, в реальной системе обработки информации могут работать системный администратор, менеджер баз данных и простые пользователи. В такой ситуации ролевая политика позволяет распределить полномочия между этими ролями и соответствии с их служебными обязанностями: роли администратора назначаются специальные полномочия, позволяющие ему контролировать работу системы и управлять ее конфигурацией, роль менеджера баз данных позволяет осуществлять 82 управление сервером БД, а права простых пользователей ограничиваются минимумом, необходимым для запуска прикладных программ. Кроме того, количество ролей в системе может не соответствовать количеству реальных пользователей — один пользователь, если на нем лежат различные обязанности, требующие различных полномочий, может выполнять (одновременно или последовательно) несколько ролей, а несколько пользователей могут пользоваться одной и тон же ролью, если они выполняют одинаковую работу . При использовании ролевой политики управление доступом осуществляется в две стадии:, во-первых, для каждой роли указывается набор полномочий, представляющий набор прав доступа к объектам, и, во-вторых, каждому пользователю назначается список доступных ему ролей. Полномочия назначаются ролям в соответствии с принципом наименьших привилегий, из которого следует, что каждый пользователь должен обладать только минимально необходимым для выполнения своей работы набором полномочий. Ролевая модель описывает систему в виде следующих множеств [3]: U - множество пользователей; R - множество ролей; Р - множество полномочий на доступ к объектам, представленное, например, и виде матрицы прав доступа; S - множество сеансов работ пользователей с системой. Для перечисленных множеств определяются следующие отношения (риc. 4.6.): РА PxR - отображает множество полномочии на множество ролей, устанавливая для каждой роли набор присвоенных ей полномочий; UA UxR - отображает множество пользователей на множество ролей, определяя для каждого пользователя набор доступных ему ролей. Правила управления доступом ролевой политики безопасности определяются следующими функциями: user: S U - для каждого сеанса S эта функция определяет пользователя, который осуществляет этот сеанс работы с системой: user(s) = u roles : S P(R) - lля каждого сеанса S эта функция определяет набор ролей из множества R которые могут быть одновременно доступны пользователю в этом сеансе: roles(s)={r i | (user(s), r i ) UA}; permissions : S P - для каждого сеанса S эта функция задает набор доступных в нем полномочии, который определяется как совокупность полномочий всех ролей, задействованных в этом сеансе: permissions(s) = U r roles(s) {Pi, (Pi, r) PA) 83 Рис.4.6. Ролевая модель управления доступом. В качестве критерия безопасности ролевой модели используется следующее правило: система считается безопасной, если любой пользователь системы, работающий в сеансе S, может осуществлять действия, требующие полномочия р только в том случае, если р permissions(s). Из формулировки критерия безопасности ролевой модели следует, что управление доступом осуществляется главным образом не с помощью назначения полномочий ролям, а путем задания отношения UA, назначающего роли пользователям, и функции roles, определяющей доступный в сеансе набор ролей. Поэтому многочисленные интерпретации ролевой модели различаются видом функции user, roles и permission, а также ограничениями, накладываемыми на отношения РА и UA. В качестве примеров рассмотрим ролевую политику управления доступом с иерархической организацией ролей, а также несколько наиболее часто встречающихся типовых ограничений на отношения РА и UA и функции user и roles. Иерархическая организация ролей представляет собой наиболее распространенный тип ролевой модели поскольку она очень точно отражает установившееся в реальном мире отношение подчиненности между участниками процессом обработки информации и разделение между ними сфер ответственности. Роли в иерархии упорядочиваются по уровню предоставляемых полномочий. Чем выше роль находится в иерархии, тем больше с ней связано полномочий, поскольку считается, что если пользователю присвоена некоторая роль, то ему автоматически назначаются и все подчиненные ей по иерархии роли. Иерархия ролей допускает множественное наследование. Каждому пользователю назначается некоторое подмножество иерархии ролей, а в каждом сеансе доступна совокупность полномочий ролей, составляющих фрагмент этой иерархии. Такой подход позволяет существенно упростить управление доступом за счет неявного назначения полномочий, поскольку в реальной жизни, как правило, пользователи жестко упорядочены по степени ответственности, соответствующей уровню полномочий, которыми они обладают. Причем, более доверенные пользователи, стоящие па служебной лестнице выше, всегда обладают всеми полномочиями менее доверенных, подчиненным им. Иерархия ролей в точности отражает эту ситуацию. |