СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА Российский патент 2017 года по МПК G06F12/02 

Описание патента на изобретение RU2626350C1

Изобретение относится к вычислительной технике, а именно к операционным системам многопроцессорных электронно-вычислительных машин, являющихся частью программно-аппаратных комплексов и может быть использовано в таких областях техники как квантовая информатика, метеорология, геологическая разведка, а также при выполнении задач, связанных с интенсивным нерегулярным обращением к памяти вычислительного устройства (DIS-задачи), высокоскоростной обработкой сигналов и изображений и работой с хранилищами разнородной информации большого размера (RDF - базы данных).

Известны мультитредовые устройства процессоров электронно-вычислительных машин, выполняющих различные вычислительные задачи, имеющие в своем составе, в том числе, системы отказоустойчивости (см., RU, 133952 U1, кл. G06F 11/07, опублик. 27.10.2013; US, 2014351565 A1, кл. G06F 9/308, опублик. 27.11.2014; US, 9256496 B1, кл. G06F 11/00, опублик. 09.02.2016).

Недостатками известных технических решений являются отсутствие встроенной защиты данных, команд и тредовых устройств, отсутствие поддержки глобально-адресуемой памяти и эмуляции разных типов процессов-тредов (сверхлегких ядер графических процессоров, средних ядер RISC-микропроцессоров типа MIPS, легких ядер векторных процессоров с поддержкой SIMD-режима).

Известен способ организации виртуальной архитектуры неоднородной для виртуальных машин памяти в многопроцессорной ЭВМ на основе создания экземпляра виртуальной машины с присущими ей конкретными рабочими характеристиками, выбора топологии виртуальных узлов, регулирующих нагрузку на память, дополнительно многопроцессорная ЭВМ содержит вычислительную систему и считываемый компьютерный носитель, по способу функционирования и совокупности существенных признаков, принятый за ближайший аналог (прототип) изобретения (см. RU, 2569805 C2, кл. G06F 12/02, опублик. 27.11.2015).

Недостатками известного технического решения являются отсутствие реализованных механизмов для работы через единое адресное пространство с объемом памяти не менее нескольких десятков петабайт, отсутствие контроля контекстно-зависимых переходов при обработке запросов пользователей операционной системы (ОС) на выделение ресурсов, отсутствие процедуры верификации и блокирования выполнения недопустимых команд еще на этапе подготовки задачи, перед передачей опкода инструкции на выполнение аппаратным ядрам микропроцессора или контроллеру периферийного оборудования, а также классический FIFO стэк с ограничениями на размер передаваемых данных в несколько сотен байт.

Задачей, на решение которой направлено заявляемое изобретение, является повышение эффективности обнаружения вредоносного программного обеспечения (ПО) в компонентах гипервизоров, гостевых операционных систем (ОС) пользователей в реальном времени множества интенсивных потоков данных, а также повышение отказоустойчивости операционной системы, управляющей работой вычислительного устройства.

Достигаемый при этом технический результат, заключающийся в повышении эффективности обнаружения вредоносного программного обеспечения и уровня защищенности операционной системы вычислительного устройства, обеспечивается за счет того, что в способе функционирования операционной системы вычислительного устройства программно-аппаратного комплекса, согласно изобретению, последовательно один за другим осуществляют инициализацию компонентов гипервизора, имеющего 8-ми уровневую иерархическую структуру выполнения команд, загрузку на узлах многопроцессорной вычислительной системы управляющей микроядерной операционной системы с параллельной мультредовой архитектурой, каждый процесс-тред которой имеет два статуса - управляющий или подчиненный, снабженной компиллятором, микроассемблером и автономной подсистемой отказоустойчивости, загрузку проксирующего модуля клиентских запросов, формирующего набор таблиц безопасных операций и обменивающегося данными с модулем верификации команд, загрузку гостевых операционных систем и получение списков запросов на выделение ресурсов, затем осуществляют этап подготовки задачи к выполнению, во время которого модуль верификации команд с помощью конвейера обработки семантических запросов посредством маркерного сканирования осуществляет проверку набора кортежей логических переменных генеративных таблиц, а именно опкода команд Opcode, идентификатора домена Dom_id, признака системности S, признака иерархии Ord, метки доступа к памяти Context_type, идентификации транзакции пользователя на выделение ресурсов Context_id, метки поля для контроля результатов выполнения запроса tcu с оценкой допустимости выполнения операций в виде разрешенных и запрещенных значений функции состояния, параметры поступивших запросов анализируют с помощью цикла на основе значения функции оценки состояния, в случае, если значением функции состояния является параметр «Да», процесс добавляют в список разрешенных к выполнению, в случае, если значением функции состояния является параметр «Нет», процесс блокируют, формируют список запрещенных процессов и создают обновляемую базу данных вредоносного программного обеспечения с оповещением администратора безопасности, затем с помощью признака иерархии Ord определяют является ли запущенный процесс-поток базовым с максимальным уровнем полномочий, которому присваивают значение «0», либо порожденным, которому присваивают значение «1» с уровнем полномочий в виде приложения, информацию обо всех процессах-потоках обрабатываемых операционной системой получают путем анализа значений идентификаторов транзакции пользователя на выделение ресурсов Context_id, механизм обращения к функциям операционной системы осуществляют посредством модели взаимодействия «клиент-сервер», в которой роль транспортных средств выполняет микроядро операционной системы, контроль активности сетевых приложений и входящих/исходящих пакетов данных осуществляют на основе таблиц безопасных операций, создаваемых проксирующим модулем клиентских запросов.

Кроме того, генеративные таблицы представляют собой семантическую часть кодирования цепочек клиентских запросов, формирующихся на этапе подготовки задачи, при этом, проверку всего набора переменных генеративных таблиц осуществляют перед запуском каждого процесса-треда.

Кроме того, полное динамическое состояние запущенных процесс-потоков операционной системы характеризуют следующими параметрами, а именно, «Рабочее состояние» с режимами «Свободен», «Зарезервирован», «Пассивен», «Активен», «Задержан» и «Ожидание», «Состояние блокировки рабочего состояния» и «Состояние переходного процесса», переходящее либо в «Рабочее состояние», либо в «Состояние блокировки» в зависимости от наличия в операционной системе уже выданных на выполнение, но еще незавершенных команд.

Осуществление предложенного способа функционирования операционной системы вычислительного устройства в программно-аппаратных комплексах имеет следующий ряд преимуществ:

- во-первых, в заявляемом способе функционирования операционной системы реализована мультидоменная защита, то есть используется 4 кольца защиты, в то время как в традиционных операционных системах, например, класса Unix и Windows NT, используются только 2 кольца защиты;

- во-вторых, введена поддержка восьми уровней привилегий выполнения команд, что позволяет реализовать многоуровневую («усиленную») ролевую политику безопасности. При этом каждый процесс-тред может иметь два статуса - базовый (управляющий) или дочерний (подчиненный);

- в-третьих, вместо классического FIFO стэка реализован конвейер обработки семантических запросов;

- в-четвертых, нет ограничений на размер передаваемых данных, поскольку при обработке списков запросов вместо использования программных косвенных ссылок языка Си/Си++, как это сделано в классических операционных системах, контроль переходов осуществляется с помощью инициализированных модулем верификации команд маркеров, что позволяет операционной системе обрабатывать огромные потоки информации (блоки размером в несколько десятков Пбайт);

- в-пятых, введен контроль выполнения операций микропроцессором на уровне модуля аппаратной виртуализации (S8): перед запуском каждого процесса-треда сначала идет проверка всего набора переменных генеративных таблиц для каждого запускаемого процесса-треда вместо классического сигнатурного распознавания, используемого в традиционных операционных системах. Если операция нарушает требования политики безопасности, то опкод операции не передается на выполнение аппаратным ядрам микропроцессорного устройства;

- в-шестых, реализована эмуляция разных типов процессов-тредов (сверхлегких ядер графических процессоров, легких ядер векторных процессоров с поддержкой SIMD-режима, средних ядер RISC-микропроцессоров типа MIPS и тяжелых ядер суперскалярных микропроцессоров с архитектурой х86);

- в-седьмых, реализована поддержка всех типов гипервизоров (XEN, KVM, VMWare ESX, Microsoft Hyper-V и т.п.);

- в-восьмых, встроена поддержка глобально-адресуемой памяти размером в несколько десятков Пбайт (32 Пбайт);

- в-девятых, для работы операционной системы вычислительного устройства разработаны собственный компиллятор, выполняющий статический межпроцедурный анализ для оптимизации размещения тестов переполнения и микроассемблер, изготовленные с использованием отечественной элементной базы,

- в-десятых, для более эффективной работы операционной системы вычислительного устройства разработан прозрачный контроль контекстно-зависимых переходов при выполнении команд посредством набора специальных регистровых полей W - «рабочее состояние», В - «состояние блокировки рабочего состояния», Т - «признак переходного процесса либо в рабочее, либо заблокированное состояние»;

- в-одиннадцатых, в управляющей операционной системе реализованы механизмы корректной блокировки недопустимых операций на всех уровнях иерархии выполнения команд, встроена подсистема отказоустойчивости в виде «горячего» резервирования. Дополнительно, использование 4-х колец защиты позволяет изолировать наиболее критичный код операционной системы от клиентских приложений и диспетчера работы с оборудованием;

- в двенадцатых, в операционной системе вычислительного устройства реализована возможность получения информации обо всех запущенных процессах-потоках, что делает используемую операционную систему гибкой и «прозрачной» для программистов и вирусных аналитиков, а, следовательно, не остается тех состояний неопределенности, которые были бы не разрешимы во всем диапазоне состояний процесс-потоков, также отсутствуют неявные операций по изменению контекстно-зависимых переходов, которые не были формализованы и не контролировались.

Таким образом, отличия заявляемого способа функционирования операционной системы вычислительного устройства программно-аппаратного комплекса от функционирования классических операционных систем следующие:

- реализована мультидоменная защита;

- введена поддержка 8-ми уровней привилегий выполнения команд. Количество таких процессов с учетом 8 уровней иерархии выполнения команд равно 16. Число доменов защиты также равно 16. Таким образом, существует устойчивая связь запускаемых процессов-тредов с аппаратными доменами защиты;

- реализован конвейер обработки семантических запросов. Данные клиентских запросов и их опкоды команд представлены в виде набора кортежей переменных генеративных таблиц. Для формирования запросов используется непроцедурные языки типа AMBIT и Рефал. Работа осуществляется с виртуальным единым адресным пространством в несколько Петабайт;

- отсутствуют ограничения на размер передаваемых данных (например, в процессорах семейства х86 размер стэка 256 байт, формат данных не более 64347 байт, при превышении указанного резерва возникает отказ в обслуживании). Если, на этапе подготовки задачи, не инициализированы все поля записи генеративных таблиц (в результате попытки сформировать запрос в виде некорректной операции, нарушения сегментов адресации, переполнения буфера обрабатываемых данных и т.д.), то данный запрос блокируется и не отправляется на выполнение аппаратному устройству;

- реализована эмуляция разных типов процессов-тредов. При этом все запросы к аппаратным устройствам (контроллеру кэш-памяти и DMA-устройствам, сетевому сопроцессору и т.д.) представлены в виде семантических запросов с оценкой допустимости выполнения операций в виде разрешенных и запрещенный значений функции Fi;

- операционная система имеет параллельную мультитредовую архитектуру и представляет собой распределенную микроядерную систему с встроенной подсистемой отказоустойчивости;

- в состав операционной системы введены два новых модуля: проксирующий модуль, перехватывающий обращения к обработчику прерываний и менеджеру памяти и осуществляющий контроль операций ввода-вывода при работе с эмуляторами устройств, а также модуль верификации, контролирующий выполнение команд на уровне исполнительного региона процессора;

- в операционной системе внедрена встроенная защита данных, команд и тредовых устройств посредством реализации маркерного сканирования, что позволяет создать изолированную программно-аппаратную среду для выполнения задач и обнаруживать вредоносное программное обеспечение на всех восьми уровнях иерархии выполнения команд.

Заявляемое изобретение иллюстрируется изображением блок-схемы, наиболее полно иллюстрирующей алгоритм функционирования операционной системы вычислительного устройства программно-аппаратного комплекса.

На блок-схеме наглядно иллюстрируется способ функционирования операционной системы программно-аппаратного комплекса, который позволяет обнаружить вредоносное программное обеспечение в компонентах гипервизора, гостевых операционных системах, когда в качестве входных параметров используются списки запросов от гостевых операционных систем, пользователей виртуальных машин, которые представляются определенным набором операций.

В заявляемом способе функционирования операционной системы вычислительного устройства программно-аппаратного комплекса заявителем предлагается процессы взаимодействия в гипервизоре декомпозировать на 8-уровневую иерархическую структуру, где: S1 - уровень приложений; S2 - уровень ядра гостевой операционной системы; S3 - уровень обработчиков прерываний; S4 - уровень менеджера памяти гипервизора; S5 - уровень подсистемы-ввода вывода гипервизора; S6 - уровень планировщика задач гипервизора; S7 - диспетчер работы с оборудованием гипервизора; S8 - уровень исполнительного процессора. При этом на уровнях S1-S5 функционируют традиционные средства защиты, которые используют наборы правил контроля доступа, отвечающих требованиям политики безопасности.

Предложенный способ учитывает особенности функционирования программных эмуляторов устройств, которые обрабатывают системные вызовы гостевых операционных систем, планировщика задач (уровень S6), диспетчера оборудования (уровень S7) и модуля аппаратной виртуализации (уровень S8).

Стрелкой 1 условно показана инициализация гипервизора, подготовка загрузки управляющей операционной системы на узлах многопроцессорной вычислительной системы, загрузка модуля верификации команд и проксирующего модуля клиентских запросов.

Стрелками 2 и 3 обозначен процесс загрузки гостевых операционных систем и получение списков запросов на выделение ресурсов.

Стрелкой 4 условно показана процедура инициализация и проверка набора кортежа переменных генеративных таблиц модулем верификации команд на этапе подготовки задачи к выполнению.

Требования правил безопасности, заданные в табличной форме, используются для контроля запросов от гостевых операционных систем. Проксирующий модуль формирует набор таблиц безопасных операций и обменивается данными с модулем верификации команд (стрелка 5).

Процедура поиска разных классов вредоносного программного обеспечения представляет собой цикл (стрелки 6, 7 и 10), в котором анализируются списки запросов, на основе значения функции оценки состояния Fi: если Fi = «Да», процесс добавляется в список разрешенных, если Fi = «Нет», формируется список запрещенных процессов.

Функция оценки состояния Fi (см. таблицу 1) описывается набором параметров

(x1 х2 х3 х4 х5 х6 х7), где: x1 = Opcode; х2 = Dom_id; х3 = s; х4 = Ord; х5 = Context_type; х6 = Context_id; х7 = tcu. Обозначение «X» означает, что логическая переменная может принимать значения «1» или «0».

В результате работы алгоритма создается база данных вредоносного программного обеспечения (стрелка 8), которая периодически обновляется. На основе таблиц безопасных операций контролируется активность сетевых приложений и отслеживаются входящие и исходящие пакеты данных.

В случае обнаружения подозрительных действий, происходит оповещение администратора безопасности (стрелка 9).

При разработке операционной системы использовался аппарат теории графов, теории алгоритмов, декомпозиции иерархических структур для формализации процессов информационного взаимодействия с учетом архитектуры гипервизоров и особенностей современных технологий виртуализации аппаратных ресурсов.

В качестве средств разработки операционной системы использовались GNU ассемблер, Refal и отладчик Total View.

При проведении экспериментальных исследований возможностей модификации гостевых операционных систем и гипервизора использовались различные вредоносные программы: Seven Pandora, Нох, HackerDefender, Storm, Croax, Legend, BluePill, VICE Toolkit, DRM, IceBrute, Rustock, Dragon и другие.

Эффективность разработанной системы защиты оценивалась на основе применения разных средств защиты и анализа числа успешных распознаваний и ошибок вредоносного программного обеспечения.

На основе проведенных заявителем-автором экспериментальных исследований, было обнаружено, что заявляемый способ функционирования операционной системы вычислительного устройства, позволяет повысить эффективность обнаружения разных классов вредоносного программного обеспечения на 87% по сравнению с известными аналогами.

Большая часть программного обеспечения является машинно-независимой и переносимой между различными аппаратными архитектурами.

Машинно-зависимые аспекты ядра отделены от основного кода. В частности, ни в одной части машинно-независимого кода не содержится кода, зависимого от конкретной архитектуры. Когда требуется произвести действия, зависимые от архитектуры, машинно-независимый код вызывает функцию, зависимую от архитектуры машины, которая находится в машинно-зависимой части кода (см. таблицу 2).

Лишь малая часть ядра отвечает за инициализацию системы. Этот код используется при начальной загрузке системы для перехода в рабочий режим и отвечает за настройку аппаратного и программного окружения ядра. Некоторые операционные системы (особенно те, что ограничены объемом физической памяти) выполняют действия по выгрузке или перекрытию программного кода, выполняющего эти функции, после окончания его работы. Ядро не работает повторно с памятью, использованной начальным кодом, потому что этот объем памяти составляет менее 0.5 процентов ресурсов ядра, используемых на типичной машине. Также начальный код не находится только в одном месте ядра - он рассредоточен везде, и обычно появляется там, где логически связан с объектом инициализации.

Термин «маркер» означает набор определенных признаков, представленных в виде кортежа трех параметров (s, Ord, Context_type).

Вместо классического сигнатурного распознавания используются генеративные таблицы.

Под понятием «генеративные таблицы» подразумевается массив данных, в котором каждая строка представляет собой следующее выражение:

Где:

1 - позволяет идентифицировать транзакцию пользователя на выделение ресурсов;

2- метка доступа к памяти;

3 - признак иерархии;

4 - признак системности;

5 - идентификатор домена.

Ядро любой операционной системы - это привилегированный компонент системы, управляющий доступом к аппаратным ресурсам, выделяющий и освобождающий память, создающий потоки и управляющий ими, осуществляющий внутрипроцессную синхронизацию потоков и управляющий вводом-выводом.

Операционная система использует связанные (составные) стеки для уменьшения количества памяти, используемой потоком.

В любой операционной системе при сопряжении кода ядра с оборудованием на физическом уровне возникают запрещенные состояния - нулевой кортеж данных, к которым процессор запрещает обращаться даже программам в нулевом кольце защиты.

Более того, переключение контекста активных задач в защищенном режиме может выполнять только процессорный модуль, поскольку при теневом копировании данных исполняемого кода программист не может получить прямой доступ к информации.

Выявленные проблемы могут быть разрешены с помощью используемого в заявленном способе функционирования операционной системы метода маркерного сканирования. В качестве параметров указываются параметры (s, Ord, Context_type). Вместо классического сигнатурного распознавания кода используются генеративные таблицы. Параметр Ord - это поле, которое инициализирует статус потока ядра.

Поле Ord определяет, будет ли запущенный процесс-поток базовым или порожденным (значение бита подчинения сегментов кода).

Если полю Ord присваивается значение «0», то конструктор объекта описывает базовый (родительский) поток, если значение «1», то в системе запускаются дочерние (порожденные) потоки. Бит s не просто идентифицирует специальные дескрипторы ОС, но и определяет контекст процессов-потоков операционных систем класса Windows NT и Unix, ОС семейства JX, Cedar, RMox, VINO на уровне процессорного модуля. Каждому процессу-потоку сопоставляется идентификатор Context_id.

Если бит s=«0», то процесс получает статус System («Система»), маркер описывает системный объект с делегированием максимального уровня полномочий (возможность выполнять привилегированные команды процессора и изменять контекст функциональных вызовов), если бит s=«1», то Context_id (идентификатору процесса) приписывается статус Application («Приложение»).

Помимо кодирования адресного разделения колец защиты памяти, в ОС разных классов реализован строго типизированный интерфейс сопряжения с аппаратным ядром процессора и управления контекстом исполнения бинарного кода с учетом профиля компиляции и сборки - использование маркеров системных объектов.

Массив данных кортежа {s, Ord} передается в исполнительный регион процессора загрузчиком бинарного кода и инкапсулируется в виде расширенного кортежа <s, Ord, Context_type>. Параметр Context_type однозначно определяет локальное пространство исполнительного слоя ядра (Context_type ≥0) или адреса верхнего регистра системной памяти, выделенной для критически важных устройств ОС (Context_type <0).

В «теневом» регистре содержатся «снимки» активных процессов-потоков ядра. Просматривая значения идентификаторов Context_id, можно получить информации обо всех процессах-потоках, что делает ОС гибкой и «прозрачной» для программистов и вирусных аналитиков.

Ключевым элементом архитектуры современных вычислительных комплексов является гипервизор. Получив контроль над гипервизором, злоумышленник имеет практически неограниченные возможности.

При описании принципа работы гипервизора, особенное внимание уделяют такому понятию как «кольца защиты», реализующие аппаратное разделение системного и пользовательского уровней.

Дополнительные режимы (4 уровня привилегий) появились благодаря разработке компаниями Intel и AMD технологии аппаратной виртуализации.

Режим IPL указывает на то, что у большинства гипервизоров больше привилегий, чем у ядра операционной системы, обычно работающего в нулевом кольце защиты.

Гипервизор осуществляет координацию использования имеющихся аппаратных ресурсов несколькими операционными системами аналогично тому, как сами операционные системы осуществляют распределение ресурсов между несколькими задачами.

System Management Mode (SMM) - это самый привилегированный режим выполнения. Данный код записывается в специально отведенную область памяти System Management Memory, недоступную для операционной системы и прикладных программ.

Для обслуживания событий, связанных с этим режимом, предусмотрено прерывание System Management Interrupt, которое не зависит от остальных прерываний и имеет наивысший приоритет.

Для хранения адреса процедуры этого прерывания не используется ни один из векторов стандартной таблицы, адрес хранится в специальных регистрах процессора.

Модуль может функционировать на уровне IPL в режиме хост-контроллер (SMM - один управляющий Bare Metal гипервизор на уровне IPL), «гнездовой» контроллер (nested virtualization host, запуск одного гипервизора под управлением другого, то есть несколько управляющих гипервизоров на уровне IPL), виртуальный вычислительный узел многосокетной платы в реальном режиме (Direct IO computing node, один экземпляр гипервизора на уровне 0 кольца защиты для группы виртуальных машин вычислительного кластера) или в режиме эмуляции с поддержкой запуска на одном сервере виртуализации нескольких экземпляров гипервизоров (VT computing node, несколько гипервизоров на уровне 0 кольца защиты). Таким образом, с учетом 4 колец защиты максимальное число возможных уровней привилегий возрастает до 8.

Таким образом, множество всех возможных состояний представляет собой конечное и замкнутое множество компонентов среды виртуализации. Каждому режиму функционирования однозначно соответствует набор переменных Dom_id, s.

При изменении контекста выполнения запроса (см. таблицу 3), происходит переключения между разными режимами, что отражается в наборе кортежа данных генеративных таблиц в виде семи переменных x1 х2 х3 х4 х5 х6 х7, которые задают функции оценки безопасности состояния современной вычислительной системы как не противоречащие требованиям политики безопасности.

F=(Opcode, Dom_id, s, Ord, Context_type, Context_id, tcu) (1), где:

tcu - поле для контроля результатов выполнения запроса;

Context_id - уникальный идентификатор запроса;

Поле tcu принимает следующие значения:

Х01Х10 - приостановка выполнения родительского приложения с блокировкой на неопределенный срок и перехват управления сторонним программным обеспечением с повышением уровня приоритета выполнения до максимума;

011X01 - ожидание завершения с запуском дочерних потоков (попытка снять блокировку доступа к ресурсам и запустить вредоносное программное обеспечение, пока штатный родительский процесс находится в режиме TIME_WAIT);

111X10 - принудительное завершение всех «спящих» процессов;

010101 - ресурс занят приложением - штатный режим запуска задачи - синхронный режим доступа к ресурсам;

010010 - ресурс занят приложением - штатный режим запуска задачи - асинхронный режим доступа к ресурсам;

0X1X10 - штатное завершение активной задачи.

Opcode либо равен пустой команде (NOP), либо содержит последовательность команд (!=NOP), L - базовое множество метаопераций, Opcode ∈L.

Context_id либо равен нулю (статус System Idle - «простой», нет активных задач в списке), либо нет (в системе зарегистрирован новый запрос пользователя на выделение ресурсов).

Разработанный подход основан на том, что набор меток {m} для «раскрашивания» мультиграфа транзакций представляется кортежем значений переменных формулы (1). Неоднозначность переходов между узлами мультиграфа транзакций объясняется существованием неконтролируемых состояний гипервизора. Алгоритм предикативной идентификации скрытых угроз информационной безопасности может быть представлен следующей последовательностью шагов:

Шаг 1. Построить мультиграф транзакций.

Шаг 2. Представить контекст выполнения запроса в виде набора меток {m}.

Шаг 3. Провести анализ корректности завершения команд с точки зрения требований информационной безопасности.

Требования политики безопасности формулируются в терминах, которые задают последовательность обработки операций и ограничений на их выполнение (см. таблицу 4). При этом на каждом уровне модели операций S1-S8 ведется протоколирование событий и результатов, включая параметры Т - время и Res - результат выполнения операций, а мультиграф транзакций «раскрашивается» с помощью набора меток (маркеров).

Ограничение на повышение привилегий и контроль переходов при изменении контекста операций задаются значениями логической функции оценки допустимости состояний F.

Внутренний цикл работы процессора на аппаратном уровне определяется временными интервалами (Т - периоды синхронизации). При выполнении одной инструкции, другие запросы блокируются на время выполнения задачи ядра. Мультиплексирование каналов связи с внешним оборудованием позволяет создавать очередь параллельной обработки (конвейер). На уровне декодирования идет преобразование в последовательную выборку разрядов, тогда время выполнения команды (Т0-Т5) занимает максимально 3-4 такта, 1 такт на контроль выполнения и 1 такт для подачи сигнала стробирования, чтобы открыть доступ к кристаллу памяти процессора.

Всего 7 тактов выборки команд для обработки команд на каждой уровне (S1-S7) иерархии запросов. Схематично механизм обращения к функциям операционной системы, оформленным в виде серверов, выглядит следующим образом. Клиент, которым может быть либо прикладная программа, либо другой компонент операционной системы, запрашивает выполнение некоторой функции у соответствующего сервера, посылая ему сообщение.

Непосредственная передача сообщений между приложениями невозможна, так как их адресные пространства изолированы друг от друга.

Микроядро, выполняющееся в привилегированном режиме, имеет доступ к адресным пространствам каждого из этих приложений и поэтому может работать в качестве посредника. Микроядро сначала передает сообщение, содержащее имя и параметры вызываемой процедуры нужному серверу, затем сервер выполняет запрошенную операцию, после чего ядро возвращает результаты клиенту с помощью другого сообщения.

Таким образом, работа микроядерной операционной системы соответствует известной модели клиент-сервер, в которой роль транспортных средств выполняет микроядро. Набором портов является минимальный набор файлов, который указывает вашей системе, как корректно откомпилировать и установить программу с учетом расширения специфической исполняемой среды с поддержкой среды.

Набор для интеграции с решении с промышленными гипервизорами включает:

- Файл smw-test.cfg

Подсистема отказоустойчивости является автономной функциональной структурой и имеет собственный контур управления (осуществляется системным оператором или сервисным инженером). Все параметры по разворачиванию и настройке сети сохраняются в конфигурационном файле smw-test.cfg;

- Файл OS-param. Этот файл содержит информацию о файлах, которые должны существовать на вашей системе, и их контрольные суммы, для проверки того, что файлы в процессе загрузки не были повреждены, настройки операционной системы - режим загрузки, настройки параметров памяти на разных интерфейсных уровнях привилегий, путь к исполняемому образу операционной системы (Single Image Distributive). В файле существует 4 секции для настройки модулей на уровнях IPL_LEVEL, KERNEL_LEVEL, SUPERVISOR_LEVEL, USER_LEVEL, которые соответствуют Dom_id=00, Dom_id=01, Dom_id=10, Dom_id=11;

- Загружаемый образ ОС (Single Image Distributive) - серверная операционная система представляет собой Unix - подобную систему с поддержкой XEN или KVM, VMWare ESXi или Windows Server с поддержкой Hyper-V. Под управлением указанных гипервизоров запускаются гостевые ОС виртуальных машин пользователей;

- Каталог OS-files. Этот дополнительный каталог (базовый дистрибутив со всеми папками входит в состав загрузочного образа) содержит самые «свежие» патчи, использование которых необходимо для обновления версии операционной системы. Патчи - это программные модули обновлений, в которых содержатся изменения, которые нужно внести в операционную систему с целью корректного функционирования и разрешения предшествующих ошибок в программном коде;

- Файл OS-plist. Это список всех файлов, которые будут загружены. В нем также содержатся указания системе портов на удаление определенных файлов во время реконфигурирования операционной системы. Данный файл используется в целях протоколирования и аудита безопасности.

Программа загрузки выполняется в каждом ядре, выполнение осуществляет тредовое устройство с нулевым физическим адресом. При этом тредовое устройство работает в особом режиме привилегий - IPL_LEVEL. В этом режиме используется физическая адресация при доступе к памяти команд и памяти данных.

На данном уровне функционирует только модуль доверенной загрузки и защиты. Затем загружаются диспетчер работы с виртуальной инфраструктурой и хостовые операционные системы с поддержкой гипервизоров (уровни KERNEL_LEVEL, SUPERVISOR_LEVEL). На заключительном этапе осуществляется запуск гостевых ОС на уровне USER_LEVEL.

Систему можно разделить на несколько подсистем, каждая из которых выполняет управление определенным видом ресурсов (памятью, задачами, файлами, средствами коммуникаций).

Подсистема состоит из нескольких Менеджеров, каждый их которых обеспечивает более высокий уровень абстракции ресурсов. Менеджеры более высокого уровня используют средства Менеджеров низкого уровня своей подсистемы, а также и других подсистем. Микроядерная распределенная архитектура является альтернативой классическому способу построения операционной системы.

Уровень, позволяющий управлять защищенным режимом процессора, осуществлять загрузку и контролировать работу системы на уровне инструкций процессора называется IPL (Instruction Processor Level, IPL). Набор функций микроядра обычно соответствует функциям слоя базовых механизмов обычного ядра (KERNEL_LEVEL).

Такие функции операционной системы трудно, если не невозможно, выполнить в пространстве пользователя. Все остальные более высокоуровневые функции ядра оформляются в виде приложений, работающих в пользовательском режиме (USER_LEVEL).

Менеджеры ресурсов, являющиеся неотъемлемыми частями обычного ядра - файловая система, подсистемы управления виртуальной памятью и процессами, менеджер безопасности, - становятся «периферийными» модулями, работающими в режиме супервизора (SUPERVISOR_LEVEL).

Модуль доверенной загрузки и защиты загружается с уровнем привилегий IPL и осуществляет монопольный контроль выделения вычислительных ресурсов сервера, просматривая данные из t_reg. Используется 4 кольца защиты процессора: Dom_id=00, Dom_id=01, Dom_id=10, Dom_id=11. С учетом поддержки аппаратной виртуализации «склейка» параметров Dom_id и s (строки записываются в стек в обратном порядке) позволяет задать тот интерфейсный уровень, на котором обрабатывается транзакция по схеме «клиент-серверное взаимодействие».

Полное динамическое состояние процесса-потока определяется тройкой признаков его поведения <W, В, Т>, где:

- W - Work State, рабочее состояние TU, может иметь значения «Свободен», «Зарезервирован», «Пассивен», «Активен», «Задержан» и «Ожидание».

- В - Block State, состояние блокировки рабочего состояния

- Т - Transition State, признак переходного процесса в указанное рабочее состояние или состояние блокировки, связанное с наличием выполняемых в данный момент, но еще незавершенных команд процесса-потока.

Признаки состояния процесса-потока отображаются в одноименных полях регистра t_reg. При этом явно инициализированы все возможные состояния процесов-тредов с учетом динамического характера процесса выделения вычислительных ресурсов (см. таблицу 5).

Более подробно процесс-потоки характеризуются следующими состояниями:

- «Свободен» - тредовое устройство не зарезервирован для использования ни одном домене защиты.

- «Зарезервировано» для использования в некотором домене защиты, но это контролирует привязывание готовящегося к исполнению процесса-потока к некоторому домену защиты, когда инициализация еще не прошла (состояние ожидания формирования генеративных таблиц).

- «Пассивен» - процесс-поток содержит программу для выполнения, однако считывание команд этого процесса-потока блокировано до прихода команды активации этого процесса-потока. Такой процесс-поток не имеет запущенных, но еще незавершенных команд. Процесс-поток программы может быть снят с такого процесса-потока операционной системой и потом загружен.

- «Активен» - процесс-поток содержит программу и готов выдавать команды для выполнения, считывание команд для выполнения однако происходит в соответствии с алгоритмом работы TCU-блока соответствующего мультипроцесс-потокового ядра, а их прием на непосредственное выполнение в функциональных устройствах - от готовности по данным этих команд.

- «Задержан» - процесс-поток содержит выполняемую программу, но не готов выдавать команды для выполнения до тех пор, пока не станет равным нулю значение таймера этого процесса-потока. Ранее выданные команды этого процесса-потока могут еще выполняться. Если такие команды есть, то старший бит в регистре ненулевой.

- «Ожидание» - процесс-поток содержит программу, но не готов выдавать команды для выполнения, до тех пор, пока не произойдет некоторое событие, что связано с приходом в процесс-поток некоторого сигнала. Такой процесс-поток может содержать запущенные, но еще незавершенные команды.

- «Приостановлен» - процесс-поток содержит программу для выполнения, и находится в каком-либо из рабочих состояний «Пассивен», «Активен», «Задержан» или «Ожидание», но блокирован для выдачи команд и выполнения операций над этим процесс-потоком. Это особое статическое состояние процесса-потока, когда, в привилегированном режиме можно выполнять с ним действия, а потом - снять его блокировку по запросу пользователя (100), либо без снятия блокировки законсервировать на неопределенный срок (110), либо вообще уничтожить (111). Процесс-поток в таком состоянии не содержит запущенных, но еще незавершенных команд.

В результате проведенного патентно-информационного поиска, не было найдено ни одного источника информации, содержащего всю совокупность существенных признаков заявленного изобретения, что позволяет сделать вывод о его соответствии критериям патентоспособности «новизна», «изобретательский уровень» и «промышленная применимость».

Похожие патенты RU2626350C1

название год авторы номер документа
ВЫЧИСЛИТЕЛЬНОЕ УСТРОЙСТВО ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА 2016
  • Моляков Андрей Сергеевич
RU2618367C1
СИСТЕМЫ И СПОСОБЫ ОБЕСПЕЧЕНИЯ КОМПЬЮТЕРНОЙ БЕЗОПАСНОСТИ, ИСПОЛЬЗУЮЩИЕ ИСКЛЮЧЕНИЯ АСИНХРОННОЙ ИНТРОСПЕКЦИИ 2016
  • Лукакс Сандор
  • Сирб Кристьян-Богдан
  • Лутас Андрей-Влад
RU2703156C2
ДВУКРАТНАЯ САМОДИАГНОСТИКА ПАМЯТИ ДЛЯ ЗАЩИТЫ МНОЖЕСТВА СЕТЕВЫХ КОНЕЧНЫХ ТОЧЕК 2016
  • Лутас Дан-Хоря
  • Лукакс Сандор
  • Тикле Даньел-Йоан
  • Чокас Раду-Йоан
  • Аникитей Йонел-Кристинел
RU2714607C2
СИСТЕМЫ И СПОСОБЫ ПРЕДОСТАВЛЕНИЯ РЕЗУЛЬТАТА ТЕКУЩЕЙ КОМАНДЫ ПРОЦЕССОРА ПРИ ВЫХОДЕ ИЗ ВИРТУАЛЬНОЙ МАШИНЫ 2015
  • Лукакс Сандор
  • Лутас Андрей-Влад
RU2686552C2
ВНЕСЕНИЕ ОШИБКИ СТРАНИЦЫ В ВИРТУАЛЬНЫХ МАШИНАХ 2014
  • Луцас Андрей-Влад
RU2659472C2
ИЕРАРХИЧЕСКАЯ ВИРТУАЛИЗАЦИЯ ПОСРЕДСТВОМ МНОГОУРОВНЕВОГО МЕХАНИЗМА ВИРТУАЛИЗАЦИИ 2006
  • Трот Эрик П.
RU2398267C2
Оценка процесса для выявления вредоносных программ в виртуальных машинах 2014
  • Лукакс Сандор
  • Тоша Раул-Василе
  • Бока Паул-Даниэл
  • Хажмашан Георге-Флорин
  • Луцас Андрей-Влад
RU2634205C2
СИСТЕМА И СПОСОБЫ АУДИТА ВИРТУАЛЬНОЙ МАШИНЫ 2017
  • Лукакс Сандор
  • Лутас Андрей-Влад
  • Аникитей Йонел К.
RU2691187C1
ФИЛЬТРАЦИЯ СОБЫТИЙ ДЛЯ ПРИЛОЖЕНИЙ БЕЗОПАСНОСТИ ВИРТУАЛЬНЫХ МАШИН 2017
  • Лутас Андрей-Влад
RU2723668C1
ДВИЖОК ИНТРОСПЕКЦИИ ПАМЯТИ ДЛЯ ЗАЩИТЫ ЦЕЛОСТНОСТИ ВИРТУАЛЬНЫХ МАШИН 2014
  • Луцас Андрей-Влад
  • Лукакс Сандор
  • Луцас Дан-Хоря
RU2640300C2

Иллюстрации к изобретению RU 2 626 350 C1

Реферат патента 2017 года СПОСОБ ФУНКЦИОНИРОВАНИЯ ОПЕРАЦИОННОЙ СИСТЕМЫ ВЫЧИСЛИТЕЛЬНОГО УСТРОЙСТВА ПРОГРАММНО-АППАРАТНОГО КОМПЛЕКСА

Изобретение относится к вычислительной технике. Технический результата заключается в повышении эффективности обнаружения вредоносного программного обеспечения и уровня защищенности операционной системы вычислительного устройства. Указанный результат достигается за счет применения способа функционирования операционной системы вычислительного устройства программно-аппаратного комплекса, при этом последовательно один за другим осуществляют инициализацию компонентов гипервизора, имеющего 8-ми уровневую иерархическую структуру выполнения команд, загрузку на узлах многопроцессорной вычислительной системы управляющей микроядерной операционной системы с параллельной мультредовой архитектурой, каждый процесс-тред которой имеет два статуса - управляющий или подчиненный, снабженной компилятором, микроассемблером и автономной подсистемой отказоустойчивости. Загружают проксирующий модуль клиентских запросов, гостевых операционных систем, получают списки запросов на выделение ресурсов, затем осуществляют этап подготовки задачи к выполнению. 2 з.п. ф-лы, 1 ил., 5 табл.

Формула изобретения RU 2 626 350 C1

1. Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса, отличающийся тем, что последовательно один за другим осуществляют инициализацию компонентов гипервизора, имеющего 8-ми уровневую иерархическую структуру выполнения команд, загрузку на узлах многопроцессорной вычислительной системы управляющей микроядерной операционной системы с параллельной мультредовой архитектурой, каждый процесс-тред которой имеет два статуса - управляющий или подчиненный, снабженной компилятором, микроассемблером и автономной подсистемой отказоустойчивости, загрузку проксирующего модуля клиентских запросов, формирующего набор таблиц безопасных операций и обменивающегося данными с модулем верификации команд, загрузку гостевых операционных систем и получение списков запросов на выделение ресурсов, затем осуществляют этап подготовки задачи к выполнению, во время которого модуль верификации команд с помощью конвейера обработки семантических запросов посредством маркерного сканирования осуществляет проверку набора кортежей логических переменных генеративных таблиц, а именно опкода команд Opcode, идентификатора домена Dom_id, признака системности S, признака иерархии Ord, метки доступа к памяти Context_type, идентификации транзакции пользователя на выделение ресурсов Context_id, метки поля для контроля результатов выполнения запроса tcu с оценкой допустимости выполнения операций в виде разрешенных и запрещенных значений функции состояния, параметры поступивших запросов анализируют с помощью цикла на основе значения функции оценки состояния, в случае если значением функции состояния является параметр «Да», процесс добавляют в список разрешенных к выполнению, в случае если значением функции состояния является параметр «Нет», процесс блокируют, формируют список запрещенных процессов и создают обновляемую базу данных вредоносного программного обеспечения с оповещением администратора безопасности, затем с помощью признака иерархии Ord определяют, является ли запущенный процесс-поток базовым с максимальным уровнем полномочий, которому присваивают значение «0», либо порожденным, которому присваивают значение «1» с уровнем полномочий в виде приложения, информацию обо всех процессах-потоках обрабатываемых операционной системой получают путем анализа значений идентификаторов транзакции пользователя на выделение ресурсов Context_id, механизм обращения к функциям операционной системы осуществляют посредством модели взаимодействия «клиент - сервер», в которой роль транспортных средств выполняет микроядро операционной системы, контроль активности сетевых приложений и входящих/исходящих пакетов данных осуществляют на основе таблиц безопасных операций, создаваемых проксирующим модулем клиентских запросов.

2. Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса по п. 1, отличающийся тем, что генеративные таблицы представляют собой семантическую часть кодирования цепочек клиентских запросов, формирующихся на этапе подготовки задачи, при этом проверку всего набора переменных генеративных таблиц осуществляют перед запуском каждого процесса-треда.

3. Способ функционирования операционной системы вычислительного устройства программно-аппаратного комплекса по п. 1, отличающийся тем, что полное динамическое состояние запущенных процессов-потоков операционной системы характеризуют следующими параметрами, а именно «Рабочее состояние» с режимами: «Свободен», «Зарезервирован», «Пассивен», «Активен», «Задержан» и «Ожидание», «Состояние блокировки рабочего состояния» и «Состояние переходного процесса», переходящее либо в «Рабочее состояние», либо в «Состояние блокировки» в зависимости от наличия в операционной системе уже выданных на выполнение, но еще незавершенных команд.

Документы, цитированные в отчете о поиске Патент 2017 года RU2626350C1

US 2012096271 A1, 19.04.2012
СИСТЕМА И СПОСОБ ОБЕСПЕЧЕНИЯ ОТКАЗОУСТОЙЧИВОСТИ АНТИВИРУСНОЙ ЗАЩИТЫ, РЕАЛИЗУЕМОЙ В ВИРТУАЛЬНОЙ СРЕДЕ 2014
  • Гриднев Сергей Николаевич
  • Ярыкин Павел Николаевич
RU2568282C2
УПРАВЛЕНИЕ БЕЗОПАСНОСТЬЮ КОМПЬЮТЕРА, НАПРИМЕР, В ВИРТУАЛЬНОЙ МАШИНЕ ИЛИ РЕАЛЬНОЙ ОПЕРАЦИОННОЙ СИСТЕМЕ 2005
  • Армстронг Бенджамин
  • Гармз Джейсон
  • Рэй Кеннет Д.
  • Крамер Майкл
  • Инглэнд Пол
  • Филд Скотт А.
RU2397537C2
ТРАНЗАКЦИОННАЯ ИЗОЛИРОВАННАЯ СИСТЕМА ХРАНЕНИЯ ДАННЫХ 2006
  • Фергюсон Нильс Т.
  • Стонич Стейси Н.
RU2458385C2
US 2013254829 A1, 26.09.2013
АГЕНТЫ ЗАЩИТЫ И ПРИВИЛЕГИРОВАННЫЕ РЕЖИМЫ 2007
  • Трот Эрик
  • Фолц Форрест
  • Торнтон Эндрю
  • Синха Суяш
RU2468418C2
EP 2955634 A1, 16.12.2015
US 2012084570 A1, 05.04.2012
US 2008015808 A1, 17.01.2008
WO 2009120272 A1, 01.10.2009.

RU 2 626 350 C1

Авторы

Моляков Андрей Сергеевич

Даты

2017-07-26Публикация

2016-04-11Подача