Разработка метода и алгоритма контроля информационных потоков в операционных системах с дискреционным разграничением доступа А. Е. Киреенко РАЗРАБОТКА МЕТОДА И АЛГОРИТМА КОНТРОЛЯ ИНФОРМАЦИОННЫХ ПОТОКОВ В ОПЕРАЦИОННЫХ СИСТЕМАХ С ДИСКРЕЦИОННЫМ РАЗГРАНИЧЕНИЕМ ДОСТУПА К ОБЪЕКТАМ Автоматизированные системы обработки информации в настоящее время применяются для решения важных для безопасности государства и общества задач (охрана государственных секретов, управление атомными станциями, электронные банковские расчеты). Для управления доступом пользователей и активизированных ими процессов к объектам (ресурсам) данных систем в большинстве случаев применяются дискреционная или мандатная модели разграничения доступа. Рассмотрим их особенности, а также достоинства и недостатки. Дискреционная модель – это модель управления доступом к объектам компьютерных систем (КС), реализуемая современными операционными системами (ОС) универсального назначения (UNIX и Microsoft Windows). Данная модель основана на дискреционной политике безопасности (дискреционном управлении доступом) и определяется следующими свойствами [2]: - все субъекты и объекты идентифицированы; - права доступа субъектов на объекты системы определяются на основании некоторого внешнего по отношению к системе правила; - для любого объекта КС определен «владелец»; - «владелец» объекта обладает правом определения прав доступа к объекту со стороны любых субъектов КС; - в КС существует привилегированный пользователь, обладающий правом полного доступа к любому объекту (или правом становиться «владельцем» любого объекта). Основным элементом систем дискреционного разграничения прав доступа является матрица доступа – матрица, строки которой соответствуют субъектам, а столбцы – объектам КС. При этом каждый элемент матрицы определяет права доступа субъекта к объекту. Матрица доступа может также задаваться в виде списков прав субъектов (для каждого субъекта определяется список всех объектов, к которым ему разрешен доступ) или в виде списков контроля доступа (для каждого объекта задается список субъектов, которым разрешен доступ к данному объекту). Субъект с определенным правом доступа может передать это право любому другому субъекту. Широкое применение дискреционной модели обусловлено простотой ее реализации (проверка прав доступа субъекта к объекту производится в момент открытия этого объекта в процессе субъекта), хорошей изученностью, а также низким потреблением вычислительных ресурсов. Основным недостатком дискреционных систем является отсутствие средств слежения за передачей информации из защищенного объекта в незащищенный в процессе работы даже в случае выполнения пользователем/процессом санкционированных действий. То есть при использовании дискреционной политики безопасности возникает вопрос определения правил распространения прав доступа и анализа их влияния на безопасность КС. В общем случае при использовании данной политики безопасности перед системой защиты стоит алгоритмически не разрешимая задача – проверить, не приведет ли разрешение доступа к объекту для этого субъекта к нарушению безопасности в КС (рис. 1) [1]. 47 А. Е. Киреенко ( ) Si ( ) Kj S– K– Рис. 1. Потенциальный канал утечки конфиденциальной информации Также утечка конфиденциальной информации возможна в другом распространенном случае [2]. Например, владелец устанавливает на объект (файл, группу файлов или папку) особые права, ограничивающие доступ. После этого на компьютере работает пользователь с администраторскими полномочиями, который намеренно или случайно изменяет права доступа (вплоть до изменения владельца файла или папки). Данные изменения также могут произойти в результате действия какихлибо запущенных от его имени приложений (в том числе специально разработанных для нарушения конфиденциальности информации). Ограничения на доступ к информации, установленные владельцем, в результате этих действий могут быть изменены либо полностью удалены, что, в свою очередь, делает конфиденциальную информацию доступной пользователям, не обладающим соответствующим уровнем допуска. При этом существует возможность переноса секретных данных в общедоступные объекты. В итоге безопасность информации может быть нарушена и возможна ее утечка. Стоит отметить, что подобная ситуация может возникнуть даже в результате непреднамеренных действий владельца или администратора: при копировании или перемещении файлов и папок в новый том они наследуют разрешения от новой родительской папки, а все предыдущие настройки, за исключением информации о владельце, теряются [3]. Мандатная модель разграничения доступа основана на принципах секретного документооборота, принятых в государственных и правительственных учреждениях многих стран. Основным положением данной политики является назначение всем участникам процесса обработки защищаемой информации и документам, в которых она содержится, специальной метки (например, «секретно», «совершенно секретно» и т. д.), получившей название «уровень безопасности». Все уровни безопасности упорядочиваются с помощью установленного отношения доминирования. Например, уровень «совершенно секретно» считается более высоким, чем уровень «секретно», или доминирует над ним. Контроль доступа осуществляется в зависимости от уровней безопасности взаимодействующих сторон на основании двух простых правил: уполномоченное лицо (субъект) имеет право читать только те документы, уровень безопасности которых не превышает его собственный уровень безопасности, а заносить информацию только в те документы, уровень безопасности которых не ниже его собственного уровня безопасности [4. С. 40]. Первое правило обеспечивает защиту информации, обрабатываемой более доверенными (высокоуровневыми) лицами, от доступа со стороны менее доверенных (низкоуровневых). 48 Разработка метода и алгоритма контроля информационных потоков в операционных системах с дискреционным разграничением доступа Второе правило предотвращает утечку информации (сознательную или случайную) со стороны высокоуровневых участников процесса обработки информации к низкоуровневым. Таким образом, если в дискреционных моделях управление доступом происходит путем наделения пользователей полномочиями осуществлять определенные операции над определенными объектами, то мандатные модели управляют доступом неявным образом – с помощью назначения всем сущностям системы уровней безопасности, которые определяют все допустимые взаимодействия между ними. Как уже было сказано, основная цель мандатной политики безопасности – предотвращение утечки информации от объектов с высокой меткой конфиденциальности к объектам с низкой меткой конфиденциальности. Для реализации этого принципа должны сопоставляться классификационные метки каждого субъекта и каждого объекта, отражающие их место в соответствующей иерархии. Посредством этих меток субъектам и объектам должны назначаться классификационные уровни (уровни уязвимости, категории секретности и т. п.), являющиеся комбинациями иерархических и неиерархических категорий. Данные метки должны служить основой мандатного принципа разграничения доступа [1]. Для систем мандатного разграничения доступа задача проверки безопасности является алгоритмически разрешимой. Кроме того, по сравнению с КС, построенными на основе дискреционной политики безопасности, для систем, реализующих мандатную политику, характерна более высокая степень надежности, так как при разграничении доступа к объектам контролируется и состояние самой системы, а не только соблюдение установленных правил. Использование мандатной модели разграничения доступа препятствует возможности утечки конфиденциальной информации, но существенно снижает производительность системы (так как проверка прав доступа субъекта к объекту выполняется не только при открытии объекта в процессе субъекта, но и перед выполнением любой операции чтения из объекта или записи в объект) и менее удобна для пользователей. При этом реализация систем с политикой безопасности данного типа довольно сложна, что увеличивает вероятность внесения ошибок и появления каналов утечки конфиденциальной информации. Проанализировав основные модели управления доступом, можно сделать вывод, что они либо не обеспечивают должного уровня конфиденциальности информации (дискреционная модель), либо сложны в реализации и снижают общую производительность системы за счет потребления большого количества ресурсов в процессе своей работы (мандатная модель). В данной статье предлагается метод, который позволит контролировать возможность утечки конфиденциальной информации при использовании дискреционной модели разграничения доступа (то есть исключит основной недостаток данной модели) без существенного влияния на ее производительность. Определим множество субъектов, имеющих доступ к конфиденциальной информации, S = {S1, S2, …, Sn}. Для контроля возможности утечки конфиденциальной информации из объектов, доступ к которым ограничен, обеспечим регулярную проверку выполнения следующих условий: 1.проверяемый субъект доступа Si входит в множество S; 2. существуют объекты доступа, характеризующиеся тем, что Si имеет право записи или является их владельцем; 3. субъекты доступа, не входящие в S, имеют право на чтение некоторых из объектов доступа, удовлетворяющих условию 2. Если все три условия выполняются, то в проверяемой системе существует канал потенциальной утечки конфиденциальной информации. Реакцией на обнаруженную уязвимость системы может быть оповещение администратора, а также автоматическое или ручное исправление ситуации. 49 А. Е. Киреенко Исправление ситуации может быть организовано по одному из следующих сценариев: 1. Ограничение субъектам Si права на запись в объекты, правом на чтение которых обладают субъекты доступа, не входящие в S. 2. Ограничение субъектам, не входящим в S, права на чтение и запись для объектов, в которые имеют право записи (или являются владельцами) субъекты Si. Предлагается алгоритм, основанный на данном методе, который может быть реализован в операционной системе с дискреционным разграничением доступа. Алгоритм включает в себя 6 этапов: 1. Просмотр общего списка групп (Обычные группы) и выявление таких групп, чьи имена или описания содержат указания на высокие привилегии или должностное положение членов. Включение таких групп в список привилегированных (Привилегированные группы). В свою очередь, все члены таких групп автоматически переходят в список Привилегированные пользователи. 2. Просмотр списка учетных записей пользователей, не вошедших в найденные на первом этапе группы (Обычные пользователи). Выявление пользователей, чьи имена или описания содержат указания на высокие привилегии или должностное положение. Добавление найденных пользователей также в список Привилегированные пользователи. С возможностью ручного редактирования полученного списка привилегированных пользователей. 3. Автоматическое построение списка объектов с конфиденциальной информацией (Конфиденциальная информация), в который входят все объекты, владельцами которых являются Привилегированные пользователи, а также объекты, в которые разрешена запись Привилегированным пользователям. С возможностью выбора области сканирования, исключения из построенного списка системных объектов, а также ручного редактирования полученного списка. 4. Формирование списка объектов (Общедоступные объекты), чтение и запись в которые разрешены непривилегированным пользователям (Обычные пользователи), то есть пользователям, имена или описания ученых записей которых указывают на обычные привилегии. С возможностью выбора области сканирования, исключения из построенного списка системных объектов и ручного редактирования полученного списка. 5. Выявление каналов потенциальной утечки конфиденциальной информации: - выявление пользователей-владельцев объектов из списка Привилегированные пользователи, имеющих одновременно право записи в объекты из списка Общедоступная информация; - построение списка таких общедоступных объектов; - выявление пользователей, имеющих одновременно право чтения объектов из списка Конфиденциальная информация и право записи в объекты из списка Общедоступная информация; - построение списка таких общедоступных объектов. 6. Ограничение доступа к объектам по одному из сценариев: - ограничение Привилегированным пользователям прав на запись в объекты, правом на чтение которых обладают Обычные пользователи; - ограничение Обычным пользователям прав на чтение и запись в объекты, правом на запись в которые обладают (или владельцами которых являются) Привилегированные пользователи. При необходимости (в случае, если владелец ограничил администратору права доступа к объекту) изменение владельца объектов на администратора. Условная схема алгоритма представлена на рис. 2. 50 - - - . ); , , , ); . ; , ( ; - - - - , , - - . 2 - - - - , ( ; ; 4 ; , 3 ; , 1, - 1 51 Рис. 2. Алгоритм контроля информационных потоков . - - ; - - ; , 5 , - ; ; - - ; 6 ; . ; ; Разработка метода и алгоритма контроля информационных потоков в операционных системах с дискреционным разграничением доступа А. Е. Киреенко Описанный алгоритм предполагается реализовать в виде программного комплекса, состоящего из управляющего приложения – сканера (назначение: настройка правил контроля информационных потоков, обеспечение начального безопасного состояния системы, сбор данных, отчетность) и механизма мониторинга событий (назначение: поддержание безопасного состояния системы за счет отслеживания обращений субъектов (пользователей/процессов) к объектам (ресурсам) файловой системы и своевременной реакции на события в зависимости от настроенных правил). Сканер предполагается реализовать в виде Windows-приложения на С++ с пользовательским интерфейсом, постоянно взаимодействующим с механизмом мониторинга. Механизм мониторинга предполагается реализовать с использованием архитектуры WMI (Windows Management Instrumentarium). Одними из первых решение задачи мониторинга событий доступа к системным объектам предложили Марк Руссинович (американский программист и писатель, специалист по внутреннему устройству операционной системы Microsoft Windows) и Брюс Когсвелл (известный американский программист) в виде технологии перехвата системных вызовов, названной ими System Call Hooking (SCH). Данная технология позволяет в режиме реального времени перехватывать обращения к системным объектам, но при этом стоит задача написания низкоуровневого драйвера режима ядра, осуществляющего мониторинг функций, через которые происходит взаимодействие с объектами системы [5. С. 30, 6. С. 31]. Следующей реализацией механизма перехвата вызовов режима ядра стала архитектура WMI, представляющая собой сложную многоуровневую архитектуру, стандартизирующую механизмы доступа и позволяющую предоставить информацию приложениям пользовательского режима. WMI разработан специалистами Microsoft на базе технологии управления предприятием через Web-Based Enterprise Management (WBEM). WBEM – это стандарт, определенный консорциумом Distributed Management Task Force (DMTF). WBEM определяет структуру расширяемого набора данных о предприятии и возможности администрирования, необходимые для управления локальными и удаленными системами, включающими произвольные компоненты. В отличие от описанной выше технологии SCH, разработчикам приложений режима ядра нет необходимости придумывать коды ввода/вывода или разрабатывать приложения, предоставляющие пользователю доступ к этой информации. Кроме того, поддержка WMI дает возможность настраивать модули ядра, используя стандартный интерфейс. Таким образом, доступ к драйверам оказывается скрыт от пользователя – разработчика приложений режима пользователя. Также предоставляется стандартный интерфейс, позволяющий получать уведомления о происходящих событиях, без необходимости низкоуровневого программирования [7. С. 22]. Подсистема WMI предоставляет унифицированный механизм доступа к информации от модулей режима ядра. Подсистема основывается на модели описания информации Common Information Model (CIM), которая является индустриальным стандартом, выработанным консорциумом DMTF. Подсистема WMI образует трехуровневую архитектуру для сбора и распространения информации. Эта архитектура включает: - стандартный механизм для сбора информации, реализованный как CIM-совместимое хранилище данных; - стандартный протокол для получения и распространения информации, который описывает как механизмы предоставления информации потребителю, например через COM/DCOM, так и механизмы взаимодействия между WMI и другими компонентами, в частности драйверами режима ядра; - стандартные модули предоставления информации – провайдеры WMI. Эти модули представляют собой библиотеки DLL, которые обеспечивают доступ к поддерживаемой ими информации CIM. 52 Разработка метода и алгоритма контроля информационных потоков в операционных системах с дискреционным разграничением доступа Провайдер WMI для WDM осуществляет интерфейс между модулями режима ядра и системой WMI режима пользователя. Кроме того, компонент WMI для WDM предоставляет другим модулям режима ядра службы, позволяющие им предлагать свою информацию. Для прямого взаимодействия Windows-приложения с WMI используется WMI COM API, основной API управления. Предложенный метод позволяет обнаружить потенциальный канал утечки конфиденциальной информации. Основанный на нем алгоритм в совокупности с механизмом мониторинга обращений предоставляет возможность контролировать информационные потоки в операционных системах с дискреционным разграничением прав доступа к объектам и своевременно предупреждать угрозу утечки информации без ущерба для производительности системы. СПИСОК ЛИТЕРАТУРЫ: 1. Гайдамакин Н. А. Разграничение доступа к информации в компьютерных системах. Екатеринбург: Издательство Урал. университета, 2003. – 328 с. 2. Девянин П. Н. Модели безопасности компьютерных систем. М.: Издательский центр «Академия», 2005. – 144 с. 3. Девянин П. Н., Михальский О. О., Правиков Д. И., Щербаков А. Ю. Теоретические основы компьютерной безопасности. М.: Радио и связь, 2000. – 192 с. 4. Смит. Р.Ф. Аудит доступа к объектам // Windows IT PRO/RE. 2001. № 5. С. 39–48. 5. Русинович М. Возможности NTFS. Часть 1 // Windows IT PRO/RE. 2001. № 8. С. 30–37. 6. Русинович М. Возможности NTFS. Часть 2 // Windows IT PRO/RE. 2001. № 9. С. 27–32. 7. Русинович М. Внутри Windows Management Interface // Windows IT PRO/RE. 2000. № 3. С.19–27. 53