Содержание к диссертации
Введение
Глава 1. Принципы управления доступом в ОС 13
1.1. Основные модели безопасности 18
1.2. Модель Белла - ЛаПадулы 23
1.3. Существующие реализации мандатных моделей 32
1.4. Выводы 38
Глава 2. Способ интеграции мандатного управления доступом в ОС 39
2.1. Общие требования к модели управления доступом 40
2.2. Субъекты доступа 41
2.3. Объекты доступа 42
2.4. Методы доступа 44
2.5. Комплексные правила разграничения доступа 45
2.6. Улучшенная схема мандатных правил разграничения доступ . 46
2.7. Дополнения к модели и параметры атрибутов безопасности 58
2.8. Выводы 62
Глава 3. Реализация мандатного управления доступом в ОС "Solaris" 64
3.1. Общая структура подсистемы управления доступом 65
3.2. Диспетчер доступа, модуль ядра ОС 66
3.3. Административная утилита и пользовательская библиотека 71
3.4. Конфигурационные файлы 75
3.5. Точки вызова управления доступом в ядре ОС 77
3.6. Функционирование ряда системных пакетов и утилит 92
3.7. Администрирование мандатного управления доступом 100
3.8. Работа пользователя при мандатном управлении доступом 102
3.9. Выводы 104
Заключение 105
Библиографический список использованной литературы 109
Приложения 114
- Существующие реализации мандатных моделей
- Комплексные правила разграничения доступа
- Дополнения к модели и параметры атрибутов безопасности
- Административная утилита и пользовательская библиотека
Введение к работе
Массовое использование вычислительных систем для обработки информации выявило, кроме очевидных преимуществ, ряд новых проблем. Дело в том, что вычислительные мощности большинства современных компьютеров позволяют сразу нескольким пользователям одновременно обрабатывать в них разнообразную информацию, при этом вся вычислительная система используется наиболее рационально. Между тем необходимо обеспечить корректность этого процесса со стороны каждого из пользователей, а именно, нужно поддерживать в рамках системы защиту обрабатываемой информации:
Действительно, в общем случае не все пользователи должны и могут иметь в системе одинаковые права и возможности по обработке разнородной информации. Так, способность любого пользователя несанкционированно получить", права неограниченного доступа ко всей информации в системе может привести к тому, что какая-либо важная и конфиденциальная ее часть будет случайно либо намеренно разглашена, искажена или уничтожена.
Развитие технологий передачи и обработки информации повлекшее за собой как улучшение функциональности компьютеров, так и значительное удешевление аппаратного и программного обеспечения, позволило существенно расширить рамки применения вычислительных средств. При этом возможные риски от несанкционированного доступа к информации приобретают характер катастрофы, затрагивая все жизненно важные аспекты существования современного общества и государства.
Для формализации требования к безопасности информационных систем правительство РФ разрабатывает и утверждает различные стандарты в области защиты информации. Существуют аналогичные стандарты правительства США и международный стандарт. Стандарты разных стран строятся на основе похожих подходов к защите, появившихся в результате общепризнанных научных и инженерных разработок в этой области. В частности, они определяют необходимый уровень безопасности вычислительных систем специального назначения, применяемых при обработке информации; различной степени конфиденциальности в интересах государства, или для других критических приложений.
Защита от несанкционированного доступа к информации, естественно, возлагается в основном на сами системы, обрабатывающие и передающие информацию. Однако, развитие информационных систем, особенно в части программного обеспечения, происходило преимущественного эволюционно, что определялось необходимостью сохранения совместимости с их более ранними версиями. Таким образом, возникла ситуация, когда средства защиты информации в существующем программном обеспечении не могут в полной мере противостоять всем современным рискам. Более того, анализ
современных вычислительных систем со всей очевидностью демонстрирует, что скорость расширения областей их применения значительно опережает темпы развития в них механизмов защиты информации. Следовательно, становится актуальной необходимость разработки эффективных дополнительных средств защиты, улучшающих показатели защищенности от несанкционированного доступа к информации в существующем программном обеспечении, как наиболее критичном элементе современных информационных систем.
Разработку средств защиты принято начинать с построения формальной модели, описывающей их общие принципы и защитные свойства. Существуют два основных типа моделей: дискреционные и мандатные. Мандатные модели управления доступом применяются в вычислительных системах специального назначения, где требуется повышенная защита. Более подробно эти модели будут рассмотрены в первой главе.
Вычислительные системы специального назначения строятся на базе защищенных операционных систем, которые и определяют выбор той или иной модели управления доступом. Защищенные операционные системы являются по своей сути модифицированными версиями серийных, среди которых в настоящее время доминируют ОС "MS Windows NT/2000/XP" фирмы Microsoft Corporation и множество разновидностей ОС UNIX. ОС "MS Windows ", обладая удобным пользовательским интерфейсом, имеет репутацию менее надежной и масштабируемой системы, поэтому для защищенных применений различные версии UNIX, построенные на открытых стандартах, являются более приоритетными.
В наиболее развитые варианты защищенных операционных систем UNIX встраивается мандатная модель Белла-ЛаПадулы (Bell-LaPadula model), что обусловлено высокими функциональными характеристиками защиты модели и формальными требованиям государственных стандартов.
Модель Белла-ЛаПадулы подробно описывается в научных публикациях ее авторов [33, 34]. Однако эта модель обладает рядом недостатков, на которые указывается в более поздних работах критического характера [35, 45]. Для устранения некоторых из недостатков уже существуют общепринятые подходы, но часть вопросов остается открытыми до настоящего времени.
В практических реализациях модели Белла-ЛаПадулы преобладают прямые методы ее встраивания в существующие операционные системы. При этом в большинстве случаев никак не учитываются недостатки модели и особенности архитектуры самих операционных систем. Такие реализации, как правило, характеризуются повышенной сложностью, отсутствием совместимости со стандартными версиями ОС и малой эффективностью.
Исходя из приведенного выше, целью диссертационной работы являлся анализ существующих способов реализации мандатной модели управления доступом к информации Белла-ЛаПадулы в защищенных операционных системах и последующая разработка методов более простотой и эффективной
ее реализации в ОС. При этом представлялось важным не только добиться удовлетворения требований действующих стандартов по защите информации, но и с максимальной полнотой учесть как особенности и недостатки модели Белла-ЛаПадулы, так и существующую архитектуру управления доступом к информации в ОС класса UNIX, которые наиболее часто используются при построении защищенных операционных систем. В соответствии с этим, были определены следующие основные задачи диссертационного исследования:
Анализ мандатной модели управления доступом Белла-ЛаПадулы, включая варианты ее описания действующими нормативными документами в области информационной безопасности. Определение достоинств и недостатков модели по сравнению с другими мандатными моделями. Выявление существующих способов устранения этих недостатков.
Анализ известных реализаций мандатной модели Белла-ЛаПадулы в ОС класса UNIX, определение их особенностей, достоинств и недостатков.,
Теоретическая разработка улучшенного, по сравнению с известными аналогами, способа интеграции модели Белла-ЛаПадулы в ОС UNIX, основанная на полученных ранее результатах.
Практическая реализация разработанного способа интеграции мандатного управления доступом для одной из операционных систем класса UNIX.
Таким образом, объектом исследований являлось основанное на модели Белла-ЛаПадулы мандатное управление доступом к информации в операционных системах, а предметом исследований были способы интеграции этой модели в ОС класса UNIX.
Для достижения указанной выше цели, в диссертационной работе применялись следующие методы исследований:
Анализ обоснования классической модели Белла-ЛаПадулы, имеющегося в научных публикациях ее авторов, а также изучение критических работ по этой теме.
Анализ требований международных и отечественных стандартов в области защиты информации с целью конкретизации того представления модели Белла-ЛаПадулы, которое в них заложено.
Анализ архитектуры систем защиты в стандартных версиях ОС UNIX на основе изучения технической литературы, документации и доступных исходных текстов этой системы.
Анализ известных реализации модели Белла-ЛаПадулы в ОС класса UNIX иъ. основании доступной технической документации и, в ряде случаев, исходных текстов таких систем.
Синтез при помощи полученных ранее результатов улучшенной, по сравнению с известными аналогами, схемы интеграции модели Белла-ЛаПадулы в ОС UNIX.
6) Практическая реализация полученной схемы мандатного управления доступом в одной из ОС UNIX для доказательства ее эффективности и жизнеспособности.
К составляющим научную новизну диссертационной работы решениям можно отнести:
Схему организации мандатного управления доступом к файловым объектам в ОС UNIX на основе связывания классификационной метки объекта с его субъектом-владельцем.
Метод ограничения доступных для субъектов уровней секретности информации посредством введения дополнительных атрибутов безопасности для субъектов.
Схему организации «локально-ассиметричного» мандатного управления доступом в сетях TCP/IP на основе назначения: классификационных меток объектов IP адресам компьютеров и логическим сетевым портам.
Метод контроля и изменения разрешенных потоков информации в системе с мандатным управлением доступом посредством введения дополнительных атрибутов безопасности для объектов.
Теоретическая значимость работы заключается в следующем:
Разработан принцип назначения атрибутов безопасности объектов, не адресуемый в стандартной модели Белла-ЛаПадулы. В его основу положены базовые свойства архитектуры ОС UNIX.
Показана более высокая по сравнению с известными реализациями: логическая совместимость архитектурных элементов защиты информации в ОС UNIX и модели Белла-ЛаПадулы.
Выявлена логическая совместимость архитектуры сетевых протоколов TCP/IP и модели Белла-ЛаПадулы.
Прикладная ценность результатов исследований состоит в возможности реализации на их основе такой подсистемы мандатного управления доступом для любой ОС из семейства UNIX, которая не только полностью удовлетворяет требованиям действующих нормативных документов в области защиты информации, но и обладает высокой эффективностью и полной совместимостью на уровне форматов і данных и протоколов со стандартными версиями этих операционных систем. Кроме того, предложенные схемы мандатного управления доступом допускают простую реализацию, что одновременно повышает уровень надежности всей системы защиты.
Описанный в диссертационной работе улучшенный способ интеграции мандатной модели Белла-ЛаПадулы в ОС класса UNIX был практически реализован в виде подсистемы мандатного управления доступом для операционной системы "Solaris 2.5.1". Полученная в результате этого защищенная версия ОС "Solaris 2.5.1" успешно прошла сертификацию на соответствие требованиям РД [23] для СВТ 2-го класса защищенности от НСД
к информации и была внедрена в состав общего программного обеспечения вычислительного комплекса «Эльбрус-90 микро».
Апробация материалов работы, проходила на XXI научно-технической конференции войсковой части 03425 (г. Москва, 2003 г.) и на IX Санкт-Петербургской международной конференции «Региональная информатика -2004» («РИ-2004», г. Санкт-Петербург, 2004 г.), где докладывались основные положения настоящей диссертационной работы. Ключевые элементы работы обсуждалась на ряде научно-тематических семинаров ЗАО «МЦСТ» и; ИМВС РАН, а также с представителями заказчика и сертифицирующей организации-при утверждении технического проекта по увеличению степени защищенности вычислительного комплекса «Эльбрус-90 микро» от несанкционированного доступа к информации: Часть материалов работы была использована в июне 2004 года при чтении курса лекций «Вычислительный комплекс «Эльбрус-90 микро». Функционирование, диагностика и техническое обслуживание», которое проходило в ЗАО «МЦСТ» (г. Москва) с целью повышения квалификации инженерно-технических работников.
По теме диссертационной работы опубликованы шесть печатных работ, список которых приводится далее.
Хартиков ДМ. Реализация мандатной модели защиты информации в операционной системе UNIX //Информационные технологии и вычислительные системы. №2, 2004, с. 94-105.
Хартиков Д.М: Исследование дискреционного управления доступом в ОС класса UNIX II Высокопроизводительные вычислительные системы и микропроцессоры. Сборник научных трудов, вып. 6 - М.: ИМВС РАН, 2004. С. 65-76.
Хартиков Д.М. Простая схема мандатного управления доступом в ОС класса UNIXII Компьютеры в учебном процессе. № 7, 2004. С. 3-14.
Хартиков Д.М. Исследование общей структуры комплекса средств защиты в ОС класса UNIXII Компьютеры в учебном процессе. № 8, 2004. С. 3-Ю.
Хартиков Д.М. Способ мандатного управления доступом в ОС UNIX для сетей TCP/IP //Тезисы докладов IX Санкт-Петербургской международной конференции «Региональная информатика-2004» («РИ-2004»). - СПб.: СПИИ РАН, 2004.
Хартиков Д.М. Эффективный способ реализации средств мандатного управления доступом на основе меток секретности в операционных системах класса UNIX. //Тезисы докладов XXI научно-технической конференции войсковой части 03425: - М:: в/ч 03425, 2003.
Кроме того, многие материалы работы вошли в состав проектной, опытно-конструкторской и эксплуатационной документации общего программного обеспечения вычислительного комплекса «Эльбрус-90 микро».
Рассмотрим теперь структурные этапы дальнейшего изложения.
Работа состоит из настоящего введения, трех глав, заключения и шести приложений. Логика описания строится на переходе от анализа и развития теоретических вопросов мандатного управления доступом в операционных системах, затрагиваемых в первой и второй главах, к основным аспектам их практической реализации и применения, описываемым на конкретном примере в третьей главе. Дополнительные, но не менее важные материалы приводятся в приложениях.
Первая глава посвящена принципам управления доступом к информации в операционных системах. Сначала поясняется суть проблем управления доступом и базовые подходы к их решению, затрагиваются вопросы их стандартизации. Обосновывается приоритетность выбора систем класса UNIX, среди других операционных систем, для построения защищенных версий программного обеспечения вычислительных систем специального применения. Далее рассматриваются основные модели безопасности и область их применения. Подробно описывается мандатная модель Белла-ЛаПадулы, обеспечивающая высокие характеристики защиты. Приводится анализ недостатков этой модели и способов их устранения. Поскольку поддержка в защищенных операционных системах модели мандатного управления доступом Белла-ЛаПадулы является обязательным требованием стандартов, действующих в РФ, главу завершает подробный анализ доступных ее реализаций в различных версиях ОС UNIX. Делаются выводы о преимуществах и недостатках этих реализаций, а также о возможности их применения в нашей стране.
Во второй главе, с использованием результатов первой главы, предлагается новый способ интеграции мандатного управления доступом в UNIX, обладающий рядом преимуществ по сравнению с известными аналогами. Он учитывает как особенности архитектуры операционной системы UNIX, так и действующие нормативные документы по информационной безопасности. Для этого сначала описываются общие требования к модели управления доступом, затем определяются субъекты и объекты доступа, а также методы доступа, применительно к ОС UNIX. Далее подробно рассматривается и обосновывается собственно улучшенная схема интеграции мандатных правил разграничения доступа, которая просто и эффективно охватывает как объекты файлового типа, так и объекты сетевого взаимодействия. Приводятся способы устранения ограничений, имеющихся в предложенной схеме. Глава завершается описанием ряда дополнений к модели и параметров атрибутов безопасности субъектов и объектов ОС.
Третья глава посвящена вопросам практической реализации в ОС "Solaris 2.5.1" тех новых решений по интеграции мандатного управления доступом, которые описываются во второй главе. Таким образом, на практике обосновывается правильность и жизнеспособность предложенной модели для систем класса UNIX. Рассматривается общая структура мандатной подсистемы
и ее основные компоненты: диспетчер доступа в ядре ОС, административная утилита и пользовательская библиотека, конфигурационные файлы. Большое внимание уделяется точкам вызова і по управлению доступом, интегрированным в ядро операционной системы. Исследуются особенности функционирования ряда стандартных системных пакетов и утилит ОС UNIX при мандатном управлении доступом. Рассматривается администрирование мандатной подсистемы, и работа пользователей при мандатном управлении, доступом.
Основные выводы, сделанные по результатам всей работы, содержатся в заключении. Кроме того, приводятся наиболее перспективные направления дальнейших исследований в области средств управления доступом и защиты информации:
Определения ключевых терминов и понятий приводятся в тексте, по мере их использования. Стандартизованное определение терминов и понятий дано в приложении 1.
Любые исследования в области информационной безопасности должны учитывать требования соответствующих стандартов, поэтому приложение 2 содержит историю развития и обзор стандартов разных стран; в том числе и международных соглашений. Особое внимание уделяется вопросам практического применения при разработке средств защиты информации нормативных документов, действующих В РФ;
Первой задачей, возникающей при интеграции новых средств защиты информации от несанкционированного доступа для уже существующей вычислительной системы, является необходимость тщательного изучения принципов функционирования этой системы, поддерживаемых в ней информационных потоков, общей структуры комплекса средств защиты (КСЗ) и уже реализованных в нем моделей безопасности: Приложение 3 содержит такой анализ для ОС класса UNIX.
Серийные версии UNIX реализуют, как правило, только дискреционное управление доступом. Приложение 4 содержит краткое изложение данных, полученных в результате исследования дискреционных механизмов защиты, реализованных в стандартной версии ОС "Solaris 2.5.1". Таким образом, на конкретном примере рассматриваются базовые принципы организации управления доступом в UNIX. Описываются основные свойства дискреционной политики безопасности в системе, и степень ее соответствия действующим в РФ нормативным документам.
Приложение 5 содержит справочную информацию о конфигурации мандатной политики безопасности в доработанной версии ОС "Solaris 2.5.1". Также приводится ряд особенностей функционирования подсистемы мандатного управления доступом в операционной системе.
В приложении 6 приводятся исходные тексты некоторых важных модулей и функций подсистемы мандатного управления доступом для ОС "Solaris 2.5.1" на языке программирования С.
Следует отметить, что достаточно большой объем как самой работы, так и приложений к ней, объясняется, во-первых, спецификой рассматриваемых вопросов. Действительно, в области исследований и разработок средств защиты информации принято избегать голословных утверждений и выводов, напротив, необходимо стараться подробно объяснять, обосновывать и даже, в ряде случаев, формально доказывать предлагаемые методы и решения по информационной безопасности. Во-вторых, в настоящий момент наблюдается явный недостаток литературы по тематике работы, многие вопросы слабо освещены в открытых источниках, а по вопросам проектирования и реализации мандатных средств защиты не имеется доступной информации не только на русском, но и на иностранных языках. Поэтому, множество теоретических и практических данных, собранных и проанализированных в настоящей работе, могут быть полезными в качестве справочного пособия для разработчиков средств защиты.
В процессе исследований использовались только материалы, опубликованные в открытых и общедоступных информационных источниках, не содержащие конфиденциальных или секретных данных. Результаты работы также не являются конфиденциальными или секретными. Доступ к исходным текстам программ осуществлялся только с разрешения правообладателей.
Следует отметить, что вне зависимости от наличия каких-либо отдельных средств защиты информации в вычислительной системе, только полное удовлетворение всех требований действующих стандартов может гарантировать требуемый уровень защиты при обработке информации в ней. Иными словами, реализация только идей, приведенных в данной работе, не решает полностью задачу защиты, а является одним из шагов на пути ее успешного решения.
Существующие реализации мандатных моделей
Как уже указывалось ранее, большинство ОС семейства UNIX реализуют в полном объеме только дискреционную модель управления доступом, которая даже описана в соответствующих индустриальных стандартах для этой ОС [3, 27], см. также приложение 4.
Теперь посмотрим, какие же мандатные модели управления доступом поддерживаются в современных версиях ОС UNIX? Особое внимание мы будем уделять модели Белла-ЛаПадулы, так как ее реализация в ОС закреплена в государственных стандартах по безопасности, см. приложение 2.
Представляется вполне очевидным, что в подобном обзоре следует затрагивать и практические аспекты безопасности. В частности, кроме технических характеристик, следует учитывать доступность той или иной защищенной ОС на территории РФ, возможность ее сертификации в уполномоченных государственных учреждениях, соответствие реализованных средств защиты действующим в РФ стандартам и т.д.
Сначала кратко обрисуем весь спектр ОС класса UNIX.
В настоящее время существуют и развиваются как коммерческие, так и свободные версии ОС UNIX. Наиболее распространенные коммерческие версии - это ОС "Solaris " [56] фирмы Sun Microsystems, Inc.; ОС "AIX" фирмы IBM Corporation; ОС "IRIX" [49] фирмы Silicon Graphics, Inc.; и т.д. Эти коммерческие ОС основаны на открытых системных интерфейсах, но их исходные тексты закрыты и являются собственностью фирм-производителей.
Свободные версии ОС UNIX имеют открытые исходные тексты, и развиваются на добровольной основе сообществом программистов по всему миру. В таких проектах участвуют как одиночные программисты-энтузиасты, которые не получают материальное вознаграждение за свой труд, так и группы штатных программистов коммерческих корпораций, чей бизнес как-либо связан со свободными версиями ОС UNIX. Наиболее известные свободные операционные системы такого класса - это ОС "Linux" и ОС "FreeBSD". Особенностью этих ОС является поддержка множества аппаратных платформ.
Модель разработки и использования ОС "Linux" и ОС "FreeBSD" защищается специальными лицензиями, которые предполагают, что все желающие могут бесплатно использовать, модифицировать и распространять эти системы. Единственное ограничение - при этом всегда должна сохраняться оригинальная модель развития ОС, т.е. все исходные тексты остаются открытыми, и права собственности на систему принадлежат сообществу программистов и пользователей. Иными словами, сама операционная система не может являться объектом коммерческой собственности и источником прибыли.
Существование свободных операционных систем способствует широкому распространению ОС класса UNIX на множестве компьютерных систем по всему миру. Это также ускоряет исследования в области вычислительных технологий, выводя их на принципиально новый уровень. Однако следует отметить, что в настоящий момент надежность, технологический совершенство и качество реализации коммерческих разновидностей ОС UNIX все же выше чем, например, у ОС "Linux". Пока также преобладает заимствование технологических концепций из коммерческих ОС в свободные. Все это сдерживает применение таких систем при обработке важной информации, где требуется повышенная надежность. Вместе с тем, свободные системы стремительно развиваются и вскоре можно ожидать обратных процессов, либо даже отказа в развитии собственных коммерческих ОС со стороны ряда корпораций. Популярности открытых ОС способствует такой экономический показатель, как низкая общая стоимость их владения.
Теперь обратимся собственно к системам защиты и защищенным версиям ОС UNIX.
Сразу отметим, что стандартные версии ОС UNIX - как коммерческие, так и свободные - как правило, не обладают дополнительными встроенными средствами защиты на основе каких-либо мандатных моделей управления доступом. Более того, попытка создания единого индустриального стандарта для этой ОС - IEEE (POSIX) РІОООЗ.Іе: Capabilities and MAC for UNIX -закончилась провалом; [42]. Этот документ, который доступен в виде чернового варианта (draft), был призван ввести в ОС UNIX и стандартизовать интерфейсы реализации мандатного управления доступом, описанного в государственных нормативных актах, см. [38] и приложение 2.
Впрочем, среди стандартных версий ОС UNIX особо выделяется ОС "Solaris" [56] фирмы Sun Microsystems, Inc. Эта ОС содержит очень мощную подсистему аудита, а в ее восьмой версии реализована модель управления доступом, основанная: на пользовательских ролях [55]. По доступной информации, в ОС "Solaris 10" будет реализована и модель минимальных привилегий, что позволить полностью избавиться от суперпользователя. Таким образом, можно будет говорить о полной поддержке модели Кларка-Вилсона в этой системе: Фирма: Sun Microsystems, Inc. пока не имеет планов реализации модели Белла-ЛаПадулы в стандартных версиях ОС "Solaris ".
Справедливо заметить, что последние версии ОС "Linux" с ядром 2.6. также содержат в себе некоторые основы реализации модели наименьших привилегий.
В основном же, мандатные модели управления доступом встраиваются в специальные защищенные версии ОС UNIX- Trusted Operating Systems.
Одной из первых ОС с мандатным управлением доступом была ОС UNIX System V/MLS, созданная в 1989 году Национальным Центром Компьютерной Безопасности США (National Computer Security Center, NCSC). Эта система положила основу реализациям модели Белла-ЛаПадулы в ОС класса UNIX. В ней, как и в большинстве современных систем, свойство защиты ds-property и матрица доступа заменены стандартной схемой дискреционного управления доступом ОС UNIX. К настоящему времени, ОС утратила свою актуальность и не поддерживается.
Сначала рассмотрим свободные варианты защищенных систем, поскольку они распространяются на бесплатной основе вместе с их исходными текстами. Они строятся на базе стандартных версий? ОС "Linux" и ОС "FreeBSD".
К сожалению, приходится признать, что существующие решения в области мандатного управления доступом для свободно распространяемых ОС в настоящее время не могут быть отнесены к разряду законченных продуктов. Кроме того, они базируются на установках таких политик безопасности, которые не могут удовлетворить существующим в РФ стандартам (см. приложение 2). Однако ситуация может измениться со временем, так как эти системы достаточно быстро развиваются.
Для ОС "Linux" мандатное управление доступом реализуется в рамках проектов "Security-EnhancedLinux" (SELinux) [48] и "RSBACfor Linux" [47].
Проект "SE Linux" [48] поддерживается Агенством Национальной Безопасности США (National Security Agency, NSA). Эта работа носит исследовательский характер, и является самой первой попыткой построить защищенную и открытую ОС на базе стандартной свободной системы. Проект не претендует на полный охват всех вопросов безопасности ОС. Основные реализованные в нем модели управления доступом - это модель типизированных доменов (type enforcement) и модель управления доступом, основанная на пользовательских ролях. Модель типизированных доменов аналогична схеме управления доступом на основе категорий (классов) информации из модели Белла-ЛаПадулы, описанной ранее. Каждому объекту приписывается некоторый тип информации, которую он содержит, а субъекту - набор типов информации, к которым он может иметь доступ - т.е. определяется домен.
Комплексные правила разграничения доступа
Перейдем теперь к описанию ключевых свойств мандатной модели -правил разграничения доступа. При этом будем стараться получить характеристики модели, превосходящие по одному или нескольким параметрам известные ее реализации в ОС класса UNIX [47, 49, 67]. Также будут определены способы компенсации возможных ограничений обсуждаемой модели.
В основу предлагаемых правил разграничения доступа положен естественный подход к управлению доступом в ОС UNIX. Действительно, кроме прямого выполнения всех требований стандартов в области мандатной политики безопасности, следует также учитывать уже имеющиеся в ОС механизмы КСЗ и базовые принципы управления доступом в них. Это обстоятельство выгодно отличает приведенную далее модель от большинства известных аналогов.
Мандатное управление доступом распространяется на все указанные ранее объекты и всех определенных субъектов в ОС UNIX. Оно обеспечивает контроль доступа субъектов к объектам по чтению и записи на основе мандатного принципа контроля доступа.
Доступ, по поиску и исполнению, который также контролируется отдельно при дискреционном управлении доступом, либо считается эквивалентным доступу по чтению, либо КСЗ игнорирует контроль при таком доступе. Конкретное поведение КСЗ обусловлено реализуемой в рамках политикой безопасности, которая определяется текущей конфигурацией подсистемы мандатного управления доступом в ней.
Решение о предоставлении доступа субъекта к объекту определяется подсистемой мандатного управления доступом на; основании сравнения их специальных атрибутов — классификационных меток, описанных в первой главе.
Стандартная реализация мандатного управления доступом предусматривает поддержку в КСЗ только одного вида разрешенных потоков информации в системе. Рассмотрим наиболее частые примеры. Разрешена запись только в объект с большим уровнем секретности и чтение только из объекта с меньшим уровнем секретности (write up - read down) - это классический вариант правил из модели Белла-ЛаПадулы. Разрешена запись только при равенстве уровней секретности и чтение только при равенстве уровней секретности (write equal - read equal) - более строгий и редкий вариант правил.
Для получения большей эффективности и универсальности при реализации требуемой политики мандатного управления доступом в АС, было решено добавить в КСЗ возможность модификации режима мандатного доступа к объекту. Режим мандатного доступа поддерживает нескольких возможных схем обеспечения доступа, которые, тем не менее, лежат в рамках модели мандатного управления доступом. В общем случае, они только усиливают контроль доступа по сравнению с классической моделью.
В объекты был введен еще один атрибут безопасности, связанный с мандатным управлением доступом. Он определяет режим мандатного доступа к объекту, т.е. разрешенные для него информационные потоки: Поддерживается девять возможных режимов доступа к объекту: 1) «запись в объект с большим уровнем секретности - чтение из объекта с меньшим уровнем секретности» (write up - read down) - этот режим определяет доступ субъекта по записи к объекту, только если уровень секретности объекта больше или равен І уровню секретности субъекта, а также доступ субъекта по чтению к объекту, только если уровень секретности объекта меньше или равен уровню секретности субъекта; 2) «запись при равенстве уровней секретности - чтение при равенстве уровней секретности» (write equal — read equal) - этот режим определяет доступ субъекта по записи к объекту, только если уровень секретности объекта строго равен уровню секретности субъекта, а также доступ субъекта по чтению к объекту, только если уровень секретности объекта строго равен уровню секретности субъекта; 3) «запись при равенстве уровней секретности - чтение из объекта с меньшим уровнем секретности» (write equal - read down) - этот режим определяет доступ субъекта по записи к объекту, только если уровень секретности объекта строго равен уровню секретности субъекта, а также доступ субъекта по чтению к объекту, только если уровень секретности объекта меньше или равен уровню секретности субъекта; 4) «запись запрещена - чтение из объекта с меньшим уровнем секретности» (no write - read down) — этот режим запрещает доступ субъектов по записи к объекту, и определяет доступ субъекта по чтению к объекту, только если уровень секретности объекта меньше или равен уровню секретности субъекта; 5) «запись в объект с большим уровнем секретности - чтение при равенстве уровней секретности» (write up - read equal) - этот режим определяет доступ субъекта по записи к объекту, только если уровень секретности объекта больше или равен уровню секретности субъекта, а также доступ субъекта по чтению к объекту, только если уровень секретности объекта строго равен уровню секретности субъекта; 6) «запись в объект с большим уровнем секретности - чтение запрещено» (write up - no read) - этот режим определяет доступ субъекта по записи к объекту, только если уровень секретности объекта больше или равен уровню секретности субъекта, и запрещает доступ субъектов по чтению к объекту; 7) «запись запрещена - чтение при равенстве уровней секретности» (по write - read equal) - этот режим запрещает доступ субъектов по записи к объекту, и определяет доступ субъекта по чтению к объекту, только если уровень секретности объекта строго равен уровню секретности субъекта; 8) «запись при равенстве уровней секретности; - чтение запрещено» (write equal - no read) - этот режим определяет доступ субъекта по записи к объекту, только если уровень секретности объекта строго равен уровню секретности субъекта, и запрещает доступ субъектов по чтению к объекту; 9) «запись запрещена - чтение запрещено» (no write - по read) - этот последний режим запрещает доступ субъектов по записи и чтению к объекту.
Весьма вероятно, что в большинстве случаев будут использоваться только режимы доступа 1 и 2. Остальные семь режимов могут быть использованы, например, для обеспечения целостности информации в объектах одновременно с ее защитой от несанкционированного доступа, т.к. позволяют гибко регулировать разрешенные потоки информации в системе.
Согласно модели, каждый объект в системе имеет одну, и только одну классификационную метку. Однако можно предложить несколько способов такой организации.
Применяемая в рассмотренных ранее коммерческих системах [49, 67] и распространенная схема мандатного управления доступом предполагает, что для каждого объекта в ОС хранится своя отдельная классификационная метка, которая размещается, как правило, в метаданных этого объекта, см. рис. 3. Такой подход требует модификации служебных структур данных для объектов, введение в ОС новых интерфейсов их управления, а в случае файловых объектов, это приводит к потере совместимости со стандартными файловыми системами.
Значительную сложность в этой схеме представляют процедуры экспортирования и импортирования меток объектов, при экспортировании и импортировании этих объектов из (в) системы. Это часто означает потерю совместимости и в коммуникационных протоколах.
Можно хранить вместе с объектом не саму метку, а только ее идентификатор. Использование идентификатора полезно, когда количество уникальных меток гораздо меньше, чем количество объектов в ОС, что верно для большинства систем. Сами метки при этом располагаются в отдельных административных базах данных. Дополнительная косвенность, задаваемая идентификатором при управлении доступом, позволяет администратору гибко модифицировать описание метки. Однако все это также не решает перечисленных выше проблем.
Отметим, что преимуществом идентификатора метки является также то, что его размер всегда меньше размера самой метки. Действительно, если вместе с объектом хранится описание метки, а не ее идентификатор, это ухудшает производительность системы из-за необходимости подкачки метки при управлении доступом.
Дополнения к модели и параметры атрибутов безопасности
Рассмотрим параметры атрибутов безопасности, применимые для реализации предложенной модели: Также опишем специальные значения атрибутов, которые дополняют общую модель и придают ей большую гибкость при наложении требуемой политики безопасности в рамках АС на базе ОС UNIX.
Уровень секретности - иерархическая компонента - при мандатном управлении доступом полностью определяется своим уникальным числовым значением. Большему числовому значению уровня секретности соответствует больший уровень секретности. Уровень секретности имеет максимальную разрядность в 8 бит, что позволяет получить 256 уникальных уровней. Каждому уровню секретности, для удобства администрирования, может быть назначено символьное имя.
Класс (категория) - неиерархическая компонента - информации при мандатном І управлении доступом полностью определяется своим уникальным числовым идентификатором. Числовой идентификатор класса информации имеет максимальную разрядность в 8 бит, что позволяет получить 256 уникальных классов. Значение идентификатора класса информации 255 является зарезервированным в ОС. Класс информации с этим идентификатором не может быть (пере-)определен администратором, и используется системой в качестве ограничителя списка классов информации в структуре описания классификационной метки. Идентификатору 255 можно условно приписать логическое значение - «никакой» класс информации. Каждому классу информации, за исключением класса с идентификатором 255, для удобства администрирования; может быть назначено символьное имя;
Режим мандатного доступа полностью определяется зарезервированным в системе уникальным числовым значением (от 0 до 8). ОС жестко определяет следующие девять возможных числовых значений для режима мандатного доступа: 1) значение 0 для режима «запись в объект с большим уровнем секретности — чтение из объектах меньшим уровнем секретности» (write up -read down); 2) значение 1 для режима «запись при равенстве уровней секретности-чтение при равенстве уровней секретности» (write equal - read equal); 3) значение 2 для режима «запись при равенстве уровней секретности -чтение из объекта с меньшим уровнем секретности» (write equal - read down); 4) значение 3 для режима «запись запрещена - чтение из объекта с меньшим уровнем секретности» (по write - read down); 5) значение 4 для режима «запись в объект с большим уровнем секретности - чтение при равенстве уровней секретности» (write up - read equal); 6) значение 5 для режима «запись в объект с большим уровнем секретности - чтение запрещено» (write up — по read); 7) значение 6 для режима «запись запрещена - чтение при равенстве уровней секретности» (по write- read equal); 8) значение 7 для режима «запись при равенстве уровней секретности -чтение запрещено» (write equal- по read); 9) значение 8 для режима «запись запрещена - чтение запрещено» (по write - по read). Указанные числовые значения режимов в системе не могут быть (пере-) определены. Каждому из девяти режимов мандатного доступа, для удобства администрирования, может быть назначено символьное имя. Для хранения= режима мандатного доступа в служебных структурах данных системы используются поля разрядностью 8 бит, из которых реально используются только 4 младших бита.
Классификационная метка при мандатном управлении доступом полностью определяется своим уникальным числовым идентификатором. Числовой идентификатор классификационной метки имеет максимальную разрядность в 8 бит, что позволяет получить 256 уникальных классификационных меток.
Значения числовых идентификаторов классификационных меток 0, 1 и 255 являются зарезервированными в ОС. Они служат для организации «доверенных» субъектов в системе, см. главу 1. Классификационные метки с этими идентификаторами не могут быть (пере-)определены администратором. Никакая метка (структура метки) в системе не может быть описана идентификатором 0,.1 или 255.
Идентификатор классификационной метки 0 имеет в системе следующий смысл: 1) субъект с идентификатором метки 0 может получить доступ (по чтению и/или записи) только к объектам с идентификатором метки 0 или 1; 2) к объектам с идентификатором метки 0 (иначе - «любая» метка) доступ по чтению, и только по чтению, может получить субъект с любым идентификатором классификационной метки, а субъекты с идентификатором метки 255 получают также доступ по записи. Таким образом, данная метка в системе характеризует субъектов и объектов с наименьшим возможным уровнем секретности и любым классом (категорией) информации. Она служит для описания субъектов и объектов, находящихся «логически вне» основной политики безопасности системы, если таковые требуются для ее реализации. Идентификатор классификационной метки 1 имеет в системе следующий смысл: 1) субъект с идентификатором метки 1 может получить доступ (по чтению и/или записи) только к объектам с идентификатором метки 1, и только по чтению к объектам с идентификатором метки 0; 2) к объектам с идентификатором метки 1 (иначе - «установочная» метка) доступ по чтению и/или записи может получить субъект с любым идентификатором метки. Легко заметить, что существование подобной специальной метки для произвольного объекта в системе нарушает в общем случае мандатные правила разграничения доступа. Поэтому, применять ее следует особенно осторожно. G другой стороны, исследования показали, что нормальное функционирование ОС класса UNIX с включенным мандатным управлением доступом, но без установки такой метки для некоторых специальных объектов, становится невозможным, см. главу 3. Данная метка служит для описания объектов, допускающих только монопольный доступ для любого субъекта в системе. Идентификатор классификационной метки 255 имеет в системе следующий смысл: 1) субъект с идентификатором метки 255 может получить доступ (по чтению и/или записи) к объекту с любым идентификатором метки; 2) к объектам с идентификатором метки 255 (иначе - «никакая» метка) доступ (по чтению и/или записи) может получить только субъект с идентификатором метки 255. Таким образом, данная метка в системе характеризует субъектов и объектов наибольшего возможного уровня секретности и любого класса (категории) информации. Она служит в основном для описания административных субъектов, которые могут «обоснованно нарушать» общие правила разграничения доступа, если таковые требуются при реализации политики безопасности в АС.
Административная утилита и пользовательская библиотека
Поддержка подсистемы мандатного управления доступом на уровне пользовательских приложений реализована в библиотеке /usr/lib/libmac.so, и ее статической версии /usr/lib/libmac.a:
Программный интерфейс библиотеки на языке С описан в заголовочных файлах /usr/include/mac/mac_user.hu. lusr/include/mac/mac.h. Файл /usr/include/mac/macjiser.h определяет ключевые типы и структуры библиотеки. Файл /usr/include/mac/mac.h содержит прототипы всех интерфейсных функций. Получение отладочной версии библиотеки происходит, по аналогии с модулем ядра macctl, при включении макро-переменной MA C_DEBUG. Исходные тексты библиотеки /usr/lib/libmac.so составляют около 28900 строк на языке С, а заголовочных файлов - около 1050 строк. Логически, интерфейс библиотеки разделен на две части: первая; -группа функций для работы с системным вызовом macctlO; вторая — для работы с базой конфигурационных данных мандатного управления доступом. Библиотека поддерживает управление источником конфигурационных данных мандатного управления доступом через файл /etc/nsswitch.conf, как это принято для других административных баз данных в ОС "Solaris". В текущей версии библиотеки реализована только работа с локальными файлами, однако может быть легко добавлена поддержка сетевых информационных служб типа NIS, NIS+, LDAP и т.д. Административная утилита /usr/sbin/macadm обеспечивает настройку и конфигурирование для модуля мандатного управления доступом в ядре ОС. Утилита полностью базируется на библиотеке /usr/lib/libmac.so. Получение отладочной версии утилиты также происходит при включении макро-переменной MAC_DEBUG. Исходные тексты утилиты /usr/sbin/macadm составляют около 3650 строк на языке С. Возможны три варианта работы утилиты macadm, которым соответствуют аргументы start, stop и test. Аргумент start служит для включения и инициализации подсистемы мандатного управления доступом в ОС. Программа macadm с этим аргументом считывает конфигурационные данные из административных баз данных, проверяет их согласованность и корректность, и передает данные в модуль macctl. Затем macadm включает мандатное управление доступом в системе. Только если все указанные действия прошли без ошибок, генерируется успешный код завершения, в противном случае - работа программы прерывается, выдается сообщение об ошибке и генерируется ее код.
Аргумент stop служит для де-инициализации и выключения подсистемы мандатного управления доступом в ОС. Программа macadm с этим аргументом полностью выгружает конфигурационные данные из модуля ядра macctl. Затем macadm выключает мандатное управление доступом в системе. Только если все указанные действия прошли без ошибок, генерируется успешный код завершения, в противном случае - работа программы прерывается, выдается; сообщение об ошибке и генерируется ее код.
Аргумент test служит для проверки согласованности и корректности конфигурационных данных мандатного управления доступом. Основное назначение аргумента test - предоставить администратору политики безопасности системы возможность убедиться в корректном состоянии административных баз данных после их модификации, но без загрузки этих данных в модуль macctl, т.е. без их актуализации. Программа macadm с этим аргументом считывает конфигурационные данные из административных баз данных и выполняет все необходимые проверки. Только если все указанные действия прошли без ошибок, генерируется успешный код завершения, в противном случае - работа программы прерывается, выдается сообщение об ошибке и генерируется ее код.
Запуск утилиты с неправильной комбинацией перечисленных выше аргументов, или иными аргументами, приводит к выдаче краткой справочной информации об использовании программы, и генерации кода ошибки.
При работе macadm предусмотрено использование опции -v, которая включает выдачу дополнительной диагностической информации о работе программы.
Только администратор политики безопасности системы может успешно выполнить утилиту macadm с аргументами start и stop, в остальных случаях генерируется код ошибки и выводится соответствующее сообщение. Следует особо отметить, что состояние ошибки полномочий доступа субъекта при этом детектируется только на уровне модуля ядра macctl; ни библиотека, ни утилита не содержат никакого привилегированного кода; На работу с программой macadm полностью распространяется требования мандатной и дискреционной политики безопасности ОС.
Модуль ядра macctl и библиотека /usr/lib/libmac.sо предусматривают возможность динамической конфигурации (т.е. изменения параметров во время работы подсистемы) мандатного управления доступом в ОС, однако утилита macadm позволяет проводить указанную переконфигурацию только путем последовательного выключения и включения мандатного управления доступом. Естественно, на базе библиотеки /usr/lib/libmac.sо могут быть написаны любые другие приложения, с требуемой функциональностью.
Основное назначение программы macadm - использование в файле сценария автоматического запуска мандатного управления доступом при старте ОС, и его останова - при останове всей ОС. Это файл /etc/init.d/mac. Он написан на языке командного интерпретатора ОС UNIX. Его расположение в справочнике /etc/init.d не случайно, там же находятся все подобные сценарии запуска и останова различных компонент ОС [7, 52]. Файл сценария имеет два аргумента start и stop, которые непосредственно приводят к запуску утилиты macadm с этими же аргументами для включения и выключения мандатного управления доступом соответственно. Другие (ошибочные) аргументы вызывают только выдачу краткой справки об использовании сценария. В случае ошибочного завершения работы утилитой macadm с аргументом start, скрипт прерывает процедуру загрузки ОС и вызывает ее перезагрузку в однопользовательском режиме, чтобы администратор устранил обнаруженную проблему в подсистеме мандатного управления доступом. Результат работы macadm с аргументом stop при останове ОС игнорируется.
Как известно, процедуры запуска и останова ОС UNIX контролируются системным процессом init(lM) [3, 8, 9, 17, 50]. Он имеет несколько уровней работы, характеризующих состояние ОС. Эти уровни обозначаются цифрами и буквами. Так, уровень 3 соответствует многопользовательскому режиму работы ОС, а уровень S — однопользовательскому административному режиму.
Приближенно, рассмотренная функциональность ОС UNIX может быть описана следующим образом. При старте системы процесс init(lM) последовательно проходит через уровни работы вплоть до 3-го, и исполняет на каждом необходимые сценарии запуска компонент ОС с параметром start. При останове системы процесс init(lM) проходит через уровни работы в обратном порядке, и запускает на каждом необходимые сценарии останова компонент ОС с параметром stop.
Все сценарии располагаются в справочниках letc/rcX.d, где X - это обозначение уровня работы init(lM) 1, 2, 3, S, и т.д. Сценарии запускаются в алфавитном порядке по именам соответствующих им файлов, и на каждом уровне работы init(lM) - из соответствующего справочника. При старте системы запускаются сценарии, имена файлов которых начинаются с символа S, а при останове - с символа К.
В действительности, справочники /etc/rcX.d содержат не сами файлы сценариев, а только символические ссылки на основные сценарии из справочника /etc/init.d.
Таким образом, как того требуют определения защищенного и незащищенного режима исполнения ОС, для инициализации и включения мандатного управления доступом при переходе системы в многопользовательский режим, и для ее выключения при выходе системы из многопользовательского режима, имеются символические ссылки /etc/rc2.d/S97mac, /etc/rc0.d/K97mac, /etc/rcl.d/K97mac и /etc/rcS.d/K97mac на основной скрипт /etc/init.d/mac.