Введение

Тип контроля доступа

В компьютерной безопасности обязательный контроль доступа (MAC) — это тип контроля доступа, при котором операционная система или база данных ограничивает возможность субъекта или инициатора получить доступ или выполнить ту или иную операцию над объектом или целью. В случае операционных систем, субъектом обычно является процесс или поток, а объектами — такие структуры, как файлы, каталоги, порты TCP/UDP, сегменты общей памяти, устройства ввода-вывода и т. д. Субъекты и объекты имеют набор атрибутов безопасности. Каждый раз, когда субъект пытается получить доступ к объекту, правило авторизации, применяемое ядром операционной системы, проверяет эти атрибуты безопасности и определяет, разрешен ли доступ. Любая операция, выполняемая любым субъектом над любым объектом, проверяется на соответствие набору правил авторизации (также известному как политика) для определения, разрешена ли эта операция. Система управления базами данных также может применять обязательный контроль доступа в своем механизме контроля доступа; в этом случае объектами являются таблицы, представления, процедуры и т. д. При обязательном контроле доступа эта политика безопасности централизованно управляется администратором политики безопасности, и пользователи не могут ее изменить или, например, предоставить доступ к файлам, который в противном случае был бы запрещен. В отличие от этого, дискреционный контроль доступа (DAC), который также регулирует возможность доступа субъектов к объектам, позволяет пользователям принимать решения о политике и/или назначать атрибуты безопасности. (Традиционная система Unix с пользователями, группами и разрешениями на чтение, запись и выполнение является примером DAC.) Системы с поддержкой MAC позволяют администраторам политики внедрять политику безопасности для всей организации. В рамках MAC (в отличие от DAC) пользователи не могут отменить или изменить эту политику, случайно или намеренно. Это позволяет администраторам безопасности определять центральную политику, которая гарантированно (в принципе) будет применяться ко всем пользователям. Исторически и традиционно MAC тесно связан с многоуровневой безопасностью (MLS) и специализированными военными системами. В этом контексте MAC подразумевает высокую степень строгости для соответствия ограничениям систем MLS. Однако в последнее время MAC отошел от ниши MLS и стал более распространенным. Более новые реализации MAC, такие как SELinux и AppArmor для Linux и Mandatory Integrity Control для Windows, позволяют администраторам сосредоточиться на таких проблемах, как сетевые атаки и вредоносное ПО, без строгих ограничений MLS.

Исторические предпосылки и последствия для многоуровневой безопасности

Исторически, MAC тесно ассоциировался с многоуровневой безопасностью (MLS) как средство защиты секретной информации США. В "Критериях оценки надежных компьютерных систем" (TCSEC), основополагающей работе по данной теме, часто называемой "Оранжевой книгой", было дано исходное определение MAC как "средства ограничения доступа к объектам на основе уровня конфиденциальности (представленного меткой) содержащейся в них информации и формального допуска (т.е. разрешения) субъектов к информации соответствующего уровня конфиденциальности". Ранние реализации MAC, такие как SCOMP от Honeywell, USAF SACDIN, NSA Blacker и MLS LAN от Boeing, были ориентированы на MLS для защиты военных уровней классификации информации с надежным обеспечением принудительного контроля доступа. Термин "обязательный" в MAC приобрел особое значение, обусловленное его использованием в военных системах. В этом контексте MAC подразумевает исключительно высокую степень надежности, гарантирующую, что механизмы контроля способны противостоять любым попыткам саботажа, что позволяет им обеспечивать контроль доступа, предписанный правительством, например, Исполнительным указом 12958 для секретной информации США. Обеспечение соблюдения требований должно быть более строгим, чем в коммерческих приложениях. Это исключает использование механизмов, основанных на принципе "лучших усилий"; для MAC допустимы только механизмы, способные обеспечить абсолютное или почти абсолютное исполнение предписаний. Это сложная задача, которую иногда считают нереалистичной для тех, кто не знаком со стратегиями высокой надежности, и чрезвычайно сложной для тех, кто с ними знаком.

Степень

В некоторых системах пользователи обладают полномочиями решать, предоставлять ли доступ другим пользователям. Для этого все пользователи имеют уровни доступа ко всем данным. Это не обязательно применимо к MLS-системам. Если в системе существуют отдельные лица или процессы, которым может быть отказано в доступе к каким-либо данным, то системе необходимо доверять обеспечение принудительного контроля доступа (MAC). Поскольку уровни классификации данных и уровни доступа пользователей могут различаться, это подразумевает количественную шкалу устойчивости. Например, более высокая устойчивость требуется для системных сред, содержащих сведения с грифом "Совершенно секретно" и пользователей, не имеющих соответствующего допуска, чем для сред с информацией "Секретно" и пользователями, допущенными как минимум до "Конфиденциально". Для обеспечения согласованности и устранения субъективности в оценке устойчивости, был проведен обширный научный анализ и оценка рисков, что привело к разработке основополагающего стандарта, количественно определяющего возможности систем по обеспечению устойчивости и сопоставляющего их с уровнем доверия, необходимым для различных сред безопасности. Результаты были задокументированы в CSC STD 004 85. Были определены два относительно независимых компонента устойчивости: уровень гарантии и функциональность. Оба компонента были специфицированы с такой степенью точности, что позволяет с высокой степенью уверенности проводить сертификацию на основе этих критериев.

Оценка

Общие критерии основаны на этой науке и призваны сохранить уровень доверия в виде уровней EAL и спецификации функциональности в виде профилей защиты. Из этих двух основных компонентов объективных критериев надежности, только уровни EAL были сохранены в полной мере. В одном случае уровень TCSEC C2 (не поддерживающий MAC) был достаточно точно сохранен в Общих критериях в виде профиля защиты с контролируемым доступом (CAPP). Профили защиты многоуровневой безопасности (MLS) (например, MLSOSPP, аналогичный B2) более общие, чем B2. Они соответствуют принципам MLS, но лишены детальных требований к реализации, характерных для предшественников из «Оранжевой книги», и больше ориентированы на цели. Это предоставляет сертифицирующим органам большую субъективную свободу в оценке того, насколько технические характеристики оцениваемого продукта соответствуют поставленным целям, что потенциально может снизить согласованность результатов сертификации и упростить получение сертификата для менее надежных продуктов. По этим причинам, важность технических деталей профиля защиты критически важна для определения пригодности продукта. Такая архитектура не позволяет аутентифицированному пользователю или процессу с определенным уровнем классификации или доверия получать доступ к информации, процессам или устройствам с другим уровнем доступа. Это обеспечивает механизм изоляции пользователей и процессов, как известных, так и неизвестных (например, неизвестная программа может представлять собой ненадежное приложение, в отношении которого система должна осуществлять мониторинг и/или контроль доступа к устройствам и файлам).

Реализация

Несколько реализаций MAC, таких как проект Blacker от Unisys, были сертифицированы как достаточно надежные для разделения Top Secret и Unclassified в конце прошлого тысячелетия. Их базовая технология устарела и не обновлялась. На сегодняшний день не существует актуальных реализаций, сертифицированных TCSEC на таком уровне надежности. Однако существуют менее надежные продукты. RSBAC (Rule Set Based Access Control) от Amon Ott предоставляет основу для ядер Linux, позволяющую использовать несколько различных модулей политик/принятия решений по безопасности. Одной из реализованных моделей является модель обязательного контроля доступа. Общая цель разработки RSBAC заключалась в достижении уровня B1 (устаревшего) по Orange Book (TCSEC). Модель обязательного контроля доступа, используемая в RSBAC, в основном соответствует Unix System V/MLS, версия 1.2.1 (разработанная в 1989 году Национальным центром компьютерной безопасности США с классификацией B1/TCSEC). RSBAC требует набора патчей для стандартного ядра, которые достаточно хорошо поддерживаются разработчиком проекта. TOMOYO Linux – это легковесная реализация MAC для Linux и Embedded Linux, разработанная корпорацией NTT Data. Она была включена в основную версию ядра Linux 2.6.30 в июне 2009 года. В отличие от подхода, основанного на метках, используемого SELinux, TOMOYO Linux выполняет обязательный контроль доступа на основе имени пути, разделяя домены безопасности в соответствии с историей вызова процессов, которая описывает поведение системы. Политики описываются в терминах путей. Домен безопасности просто определяется цепочкой вызовов процесса и представляется строкой. Существует 4 режима: отключен, обучающий, разрешающий, принудительный. Администраторы могут назначать различные режимы для разных доменов. TOMOYO Linux представил "обучающий" режим, в котором доступ, происходящий в ядре, автоматически анализируется и сохраняется для генерации политики MAC: этот режим может быть первым шагом в написании политики, что упрощает ее последующую настройку. SUSE Linux и Ubuntu 7.10 добавили реализацию MAC под названием AppArmor. AppArmor использует функцию ядра Linux 2.6, называемую LSM (Linux Security Modules interface). LSM предоставляет API ядра, позволяющий модулям кода ядра управлять ACL (DAC ACL, списками контроля доступа). AppArmor не может ограничивать все программы и является необязательным компонентом ядра Linux, начиная с версии 2.6.36. Linux и многие другие дистрибутивы Unix имеют MAC для CPU (многоуровневый), диска и памяти; в то время как программное обеспечение ОС может плохо управлять привилегиями, Linux прославился в 1990-х годах как более безопасный и гораздо более стабильный, чем альтернативы Unix. Разработчики Linux отключают MAC, чтобы в лучшем случае использовать DAC для некоторых устройств, хотя это верно для любой современной потребительской электроники. Android, начиная с версии 5.0, использует SELinux для обеспечения модели безопасности MAC поверх исходного подхода DAC на основе UID. grsecurity – это патч для ядра Linux, обеспечивающий реализацию MAC (точнее, это реализация RBAC). grsecurity не реализуется через LSM API. Microsoft, начиная с Windows Vista и Server 2008, включает в себя обязательный контроль целостности, который добавляет уровни целостности (IL) к процессам, выполняемым в сеансе входа в систему. MIC ограничивает права доступа приложений, работающих под одной учетной записью пользователя и которые могут быть менее надежными. Определено пять уровней целостности: низкий, средний, высокий, системный и доверенный установщик. Процессы, запущенные обычным пользователем, получают средний IL; процессы с повышенными привилегиями имеют высокий IL. Хотя процессы наследуют уровень целостности процесса, который их породил, уровень целостности можно настроить для каждого процесса: например, IE7 и загруженные исполняемые файлы работают с низким IL. Windows контролирует доступ к объектам на основе IL, а также определяет границы для оконных сообщений с помощью изоляции привилегий пользовательского интерфейса. Именованные объекты, включая файлы, ключи реестра или другие процессы и потоки, имеют запись в ACL, регулирующей доступ к ним, которая определяет минимальный IL процесса, который может использовать объект. MIC обеспечивает, чтобы процесс мог записывать или удалять объект только в том случае, если его IL равен или выше, чем IL объекта. Кроме того, для предотвращения доступа к конфиденциальным данным в памяти процессы не могут открывать процессы с более высоким IL для чтения. FreeBSD поддерживает обязательный контроль доступа, реализованный в рамках проекта TrustedBSD. Он был представлен в FreeBSD 5.0. Начиная с FreeBSD 7.2, поддержка MAC включена по умолчанию. Структура расширяема; различные модули MAC реализуют политики, такие как Biba и многоуровневая безопасность. Trusted Solaris от Sun использует механизм обязательного и системного контроля доступа (MAC), где уровни доступа и метки используются для обеспечения политики безопасности. Однако следует отметить, что возможность управления метками не подразумевает надежность ядра для работы в режиме многоуровневой безопасности. Доступ к меткам и механизмам управления недостаточно надежно защищен от повреждений в защищенном домене, поддерживаемом ядром. Приложения, запускаемые пользователем, объединяются с уровнем безопасности, с которым пользователь работает в сеансе. Доступ к информации, программам и устройствам контролируется слабо. Mac OS X от Apple имеет структуру MAC, которая является реализацией структуры MAC TrustedBSD. Ограниченный интерфейс высокого уровня для песочницы предоставляется функцией командной строки sandbox_init. См. справочную страницу sandbox_init для документации. Astra Linux OS, разработанная для российской армии, имеет собственный обязательный контроль доступа. Smack (Simplified Mandatory Access Control Kernel) – это модуль безопасности ядра Linux, который защищает данные и взаимодействие процессов от злонамеренных манипуляций с помощью набора пользовательских правил обязательного контроля доступа, простота является основной целью разработки. Он был официально включен, начиная с выпуска Linux 2.6.25.