RU2773108C1 - System and method for forming a security monitor - Google Patents
System and method for forming a security monitor Download PDFInfo
- Publication number
- RU2773108C1 RU2773108C1 RU2021115238A RU2021115238A RU2773108C1 RU 2773108 C1 RU2773108 C1 RU 2773108C1 RU 2021115238 A RU2021115238 A RU 2021115238A RU 2021115238 A RU2021115238 A RU 2021115238A RU 2773108 C1 RU2773108 C1 RU 2773108C1
- Authority
- RU
- Russia
- Prior art keywords
- security
- policy
- security monitor
- monitor
- message
- Prior art date
Links
- 238000000034 method Methods 0.000 claims abstract description 138
- 238000004458 analytical method Methods 0.000 claims abstract description 38
- 238000004891 communication Methods 0.000 claims abstract description 25
- 230000000875 corresponding Effects 0.000 claims abstract description 19
- 230000002123 temporal effect Effects 0.000 claims description 14
- 230000004044 response Effects 0.000 claims description 13
- 230000003993 interaction Effects 0.000 claims description 12
- 230000001276 controlling effect Effects 0.000 claims description 8
- 230000014509 gene expression Effects 0.000 claims description 3
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 238000009434 installation Methods 0.000 description 8
- 230000003287 optical Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 230000001360 synchronised Effects 0.000 description 3
- 239000008186 active pharmaceutical agent Substances 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral Effects 0.000 description 2
- 230000001174 ascending Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000001010 compromised Effects 0.000 description 1
- 238000005755 formation reaction Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000007789 sealing Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000004450 types of analysis Methods 0.000 description 1
Images
Abstract
Description
Область техникиTechnical field
Изобретение относится к области информационной безопасности.The invention relates to the field of information security.
Уровень техникиState of the art
Современные операционные системы (ОС) представляют собой сложные информационные системы (ИС) с множеством установленного программного обеспечения (ПО) для выполнения самого разнообразного функционала. При этом разработчики ПО ведут постоянную работу над исправлением ошибок и расширением функционала ПО. Тем не менее, такое количество и разнообразие ПО влечет за собой существенные риски информационной безопасности из-за наличия уязвимостей в ПО, а также из-за возможности несанкционированной установки вредоносного ПО. Первым уровнем защиты против упомянутых угроз являются встроенные в ОС средства защиты, а также особенности архитектуры ОС, потому что именно ОС предоставляет механизмы обработки и контроля межпроцессных взаимодействий (англ. inter-process communication, IPC), которые могут быть реализованы, в частности, путем обмена сообщений между процессами.Modern operating systems (OS) are complex information systems (IS) with a lot of installed software (SW) to perform a wide variety of functions. At the same time, software developers are constantly working on fixing bugs and expanding the functionality of the software. However, such a quantity and variety of software entails significant information security risks due to the presence of vulnerabilities in the software, as well as the possibility of unauthorized installation of malware. The first level of protection against the mentioned threats are the security tools built into the OS, as well as the features of the OS architecture, because it is the OS that provides the mechanisms for processing and controlling inter-process communication (IPC), which can be implemented, in particular, by exchange of messages between processes.
Во многих популярных ОС (например, Windows 9x, Linux, Android и др.) используют монолитное ядро (англ. monolithic kernel), которое обладает рядом преимуществ, например простотой взаимодействия между драйверами и производительностью. Но из-за большого количества программных модулей ядра и, как следствия, высокой вероятности ошибок в коде обеспечение надежности и безопасности ОС с монолитным ядром затруднительно. Как следствие, при наличии уязвимости в ОС или в ПО некоторые нежелательные или вредоносные сообщения между процессами могут быть разрешены средствами обработки и контроля межпроцессных взаимодействий. Примером такого вредоносного сообщения между процессами может служить сообщение, содержащее запрос на доступ к защищенному участку памяти. Другим типом ядра ОС является микроядро (например, KasperskyOS, Symbian и др.), предоставляющее минимальный набор элементарных функций управления процессами и абстракций для работы с оборудованием. Для микроядерной (англ. microkernel) архитектуры ОС характерен небольшой размер микроядра и доверенной вычислительной базы. Это способствует более высокому уровню надежности и безопасности микроядерной архитектуры ОС, так как небольшой объем кода микроядра проще проверить на корректность. Но при этом такая архитектура ОС обладает, как правило, более низкой производительностью. Также существуют ОС с гибридными ядрами (англ. hybrid kernel, например MacOS X, Windows NT и др.), которые позволяют операционной системе использовать преимущества хорошо структурированной микроядерной архитектуры ОС, сохраняя при этом производительность монолитного ядра.Many popular operating systems (for example, Windows 9x, Linux, Android, etc.) use a monolithic kernel, which has several advantages, such as ease of interaction between drivers and performance. But due to the large number of kernel software modules and, as a result, the high probability of errors in the code, it is difficult to ensure the reliability and security of an OS with a monolithic kernel. As a result, if there is a vulnerability in the OS or software, some unwanted or malicious messages between processes can be resolved by means of processing and controlling interprocess communications. An example of such a malicious message between processes is a message containing a request to access a protected area of memory. Another type of OS kernel is a microkernel (for example, KasperskyOS, Symbian, etc.), which provides a minimal set of elementary process control functions and abstractions for working with hardware. The microkernel architecture of the OS is characterized by a small size of the microkernel and a trusted computing base. This contributes to a higher level of reliability and security of the microkernel architecture of the OS, since a small amount of microkernel code is easier to check for correctness. But at the same time, such an OS architecture has, as a rule, lower performance. There are also operating systems with hybrid kernels (eng. hybrid kernel, such as MacOS X, Windows NT, etc.), which allow the operating system to take advantage of the well-structured microkernel architecture of the OS, while maintaining the performance of a monolithic kernel.
Таким образом, для операционных систем существует актуальная задача обеспечения надежности и безопасности межпроцессных взаимодействий, реализованных путем обмена сообщений между процессами. Поэтому возникает техническая проблема, которая заключается в сложности осуществления контроля доставки сообщений межпроцессного взаимодействия, передаваемых процессами приложений ОС, на предмет соответствия политике безопасности.Thus, for operating systems, there is an urgent task of ensuring the reliability and security of interprocess communications implemented by exchanging messages between processes. Therefore, a technical problem arises, which lies in the difficulty of monitoring the delivery of interprocess communication messages transmitted by OS application processes for compliance with the security policy.
Из уровня техники известен патент US8234686B2, в котором описывают технологию создания политики безопасности криптографического модуля, после этого проверяют упомянутые политики на предмет их возможной подмены. Также известен патент US8650620B2, в котором описаны система и способ контроля запуска приложений на мобильном устройстве путем проверки сертификатов ЭЦП и с использованием мандатного контроля доступа.The patent US8234686B2 is known from the prior art, which describes the technology for creating a security policy for a cryptographic module, after which the mentioned policies are checked for their possible substitution. Also known is the patent US8650620B2, which describes a system and method for controlling the launch of applications on a mobile device by checking EDS certificates and using mandatory access control.
Тем не менее, известные технологии не позволяют решить заявленную техническую проблему, так как они не позволяют осуществить контроль доставки сообщений межпроцессного взаимодействия, передаваемых процессами приложений ОС, на предмет соответствия политике безопасности. Поэтому возникает необходимость в технологии, способной решить заявленную проблему.However, known technologies do not allow solving the claimed technical problem, since they do not allow controlling the delivery of interprocess communication messages transmitted by OS application processes for compliance with the security policy. Therefore, there is a need for a technology that can solve the stated problem.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Первый технический результат заключается в повышении безопасности ОС при обмене сообщениями межпроцессного взаимодействия, передаваемыми процессами приложений ОС за счет формирования монитора безопасности, предназначенного для контроля доставки сообщений с использованием политик безопасности.The first technical result is to improve OS security when exchanging interprocess communication messages transmitted by OS application processes by forming a security monitor designed to control message delivery using security policies.
Второй технический результат заключается в обеспечении контроля доставки сообщений межпроцессного взаимодействия, передаваемых процессами приложений ОС, в соответствии с политиками безопасности путем формирования монитора безопасности, обеспечивающего упомянутый контроль.The second technical result consists in providing control over the delivery of interprocess communication messages transmitted by OS application processes in accordance with security policies by forming a security monitor that provides the above control.
Согласно варианту реализации используется система формирования монитора безопасности, предназначенного для контроля доставки сообщений межпроцессного взаимодействия (далее - сообщений), передаваемых процессами приложений операционной системы (далее - ОС), при этом указанная система содержит: базу политик, предназначенную для хранения политик безопасности для контроля доставки сообщений; по меньшей мере одно средство настройки, предназначенное для настройки модуля проверки политик на основании полученных от средства формирования политик безопасности, где модуль проверки политик предназначен для вынесения решения о способе контроля доставки сообщения (далее - решение) по запросу монитора безопасности при выполнении политики безопасности; средство формирования, предназначенное для: анализа политик безопасности из базы политик, где анализ заключается, в частности, в определении процессов, для которых используется соответствующая политика безопасности; выбора политик безопасности из базы политик для соответствующих средств настройки; передачи по меньшей мере одной политики безопасности соответствующему средству настройки; формирования монитора безопасности с использованием настроенных модулей проверки политик, полученных от каждого средства настройки, на основании результатов анализа, при этом монитор безопасности осуществляет контроль доставки сообщения с учетом упомянутого решения.According to an implementation variant, a system for generating a security monitor is used to control the delivery of interprocess communication messages (hereinafter - messages) transmitted by application processes of the operating system (hereinafter - OS), while this system contains: a policy base designed to store security policies for delivery control messages; at least one configuration tool for configuring the policy checker based on the policy checker received from the security policy generator, where the policy checker is for making a decision on the message delivery control method (hereinafter referred to as the decision) upon request of the security monitor when executing the security policy; a generation tool for: analysis of security policies from the policy base, where the analysis consists, in particular, in determining the processes for which the corresponding security policy is used; selecting security policies from the policy base for the appropriate configuration tools; transmitting at least one security policy to a corresponding configuration tool; generating a security monitor using the customized policy checkers received from each configuration tool based on the results of the analysis, while the security monitor controls the delivery of the message, taking into account the mentioned solution.
Согласно одному из частных вариантов реализации контроль доставки сообщения включает разрешение или запрет доставки сообщения.In one particular implementation, message delivery control includes allowing or denying message delivery.
Согласно другому частному варианту реализации при упомянутом анализе учитывают объекты архитектуры ОС, включающие упомянутые процессы и приложения.According to another particular implementation variant, said analysis takes into account the objects of the OS architecture, including the mentioned processes and applications.
Согласно еще одному частному варианту реализации сообщения включают: запрос на запуск процесса, запрос и ответ на осуществление межпроцессного взаимодействия, запрос процесса к монитору безопасности.According to another particular embodiment, the messages include: a request to start a process, a request and response to interprocess communication, a process request to a security monitor.
Согласно одному из частных вариантов реализации объекты архитектуры ОС дополнительно включают: предоставляющий сервис процесс, который включает по меньшей мере один программный компонент, предназначенный для реализации программного интерфейса упомянутого процесса, при этом взаимодействие с упомянутым процессом происходит посредством упомянутого интерфейса; перечень программных интерфейсов для каждого процесса; при этом межпроцессное взаимодействие осуществляется с использованием упомянутых интерфейсов процессов.According to one particular implementation, the OS architecture objects further include: a service-providing process that includes at least one software component designed to implement a programming interface of said process, wherein interaction with said process occurs through said interface; a list of software interfaces for each process; wherein the inter-process communication is carried out using the mentioned process interfaces.
Согласно другому частному варианту реализации формируют монитор безопасности путем создания кода монитора безопасности, включающего один из: исходный код, промежуточный код, исполняемый код.According to another particular implementation variant, a security monitor is formed by creating a security monitor code, including one of: source code, intermediate code, executable code.
Согласно еще одному частному варианту реализации упомянутый анализ включает по меньшей мере один из: лексический анализ, синтаксический анализ, семантический анализ.According to another particular implementation variant, said analysis includes at least one of: lexical analysis, syntactic analysis, semantic analysis.
Согласно одному из частных вариантов реализации выполняют синтаксический анализ путем построения синтаксического дерева для кода монитора безопасности, при этом включают в синтаксическое дерево код модулей проверки политик, сформированных по меньшей мере одним средством настройки.According to one of the particular implementation options, parsing is performed by building a syntax tree for the security monitor code, while including in the syntax tree the code of policy checkers generated by at least one configuration tool.
Согласно другому частному варианту реализации политики безопасности используют по меньшей мере одну из следующих моделей: базовые операции; конечный автомат; временной автомат; ролевое управление доступом; мандатный контроль целостности; регулярные выражения; дискретные события; мандатные ссылки; темпоральная логика.According to another particular embodiment of the security policy, at least one of the following models is used: basic operations; finite state machine; temporary machine; role-based access control; mandatory integrity control; regular expressions; discrete events; mandate links; temporal logic.
Согласно еще одному частному варианту реализации для политик безопасности, использующих различные модели, выбирают различные средства настройки.According to another particular implementation, different configuration tools are selected for security policies using different models.
Согласно одному из частных вариантов реализации с использованием средства формирования дополнительно включают в монитор безопасности контекст монитора безопасности, при этом монитор безопасности осуществляет контроль доставки сообщения дополнительно с учетом упомянутого контекста, где контекст монитора безопасности содержит значения параметров политик безопасности.According to one of the private implementation options, using the generation tool, the context of the security monitor is additionally included in the security monitor, while the security monitor controls the delivery of the message additionally taking into account the mentioned context, where the security monitor context contains the values of security policy settings.
Согласно другому частному варианту реализации монитор безопасности дополнительно предназначен для изменения упомянутого контекста с учетом упомянутых решений.According to another particular implementation variant, the security monitor is further designed to change the said context, taking into account the mentioned decisions.
Согласно еще одному частному варианту реализации в случае, если сообщению соответствуют по меньшей мере две политики безопасности, дополнительно с использованием монитора безопасности выносят общее решение для упомянутых политик безопасности путем конъюнкции решений для каждой из упомянутых политик безопасности, при этом монитор безопасности осуществляет контроль доставки сообщения дополнительно с учетом упомянутого общего решения.According to another particular implementation variant, if the message corresponds to at least two security policies, additionally using the security monitor, a general decision is made for the mentioned security policies by conjuncting decisions for each of the mentioned security policies, while the security monitor monitors the delivery of the message additionally taking into account the mentioned general solution.
Согласно одному из частных вариантов реализации настройка модуля проверки политик включает создание кода, обеспечивающего вычисление решения по запросу монитора безопасности для политики безопасности при выполнении упомянутой политики безопасности.In one particular implementation, customizing the policy checker includes creating code that computes a security monitor decision for a security policy when said security policy is executed.
Согласно другому частному варианту реализации монитор безопасности осуществляет контроль доставки сообщения дополнительно с учетом упомянутых решений.According to another particular implementation variant, the security monitor controls the delivery of the message in addition, taking into account the mentioned solutions.
Согласно еще одному частному варианту реализации система дополнительно включает сервис аудита, предназначенный для записи в журнал результатов контроля доставки сообщений, при этом контроль доставки сообщения дополнительно включает выполнение аудита с использованием сервиса аудита.In another particular embodiment, the system further includes an audit service for logging the results of message delivery control, wherein the message delivery control further includes performing an audit using the audit service.
Согласно одному из частных вариантов реализации монитор безопасности осуществляет контроль доставки сообщения дополнительно с учетом статуса и текущего состояния аудита.According to one of the private implementation options, the security monitor controls the delivery of the message in addition, taking into account the status and current state of the audit.
Согласно варианту реализации используется способ формирования монитора безопасности, предназначенного для контроля доставки сообщений межпроцессного взаимодействия (далее - сообщений), передаваемых процессами приложений операционной системы (далее - ОС), в котором: с помощью средства формирования анализируют политики безопасности из базы политик, где база политик предназначена для хранения политик безопасности для контроля доставки сообщений, при этом анализ заключается, в частности, в определении процессов, для которых используется соответствующая политика безопасности; с помощью средства формирования выбирают политики безопасности из базы политик для соответствующих средств настройки; с помощью средства формирования передают по меньшей мере одну выбранную политику безопасности соответствующему средству настройки; с использованием упомянутых средств настройки выполняют настройку модулей проверки политик, где модуль проверки политик предназначен для вынесения решения о способе контроля доставки сообщения (далее - решение) по запросу монитора безопасности при выполнении политики безопасности; с помощью средства формирования формируют монитор безопасности с использованием настроенных модулей проверки политик, полученных от каждого средства настройки, на основании результатов анализа, при этом монитор безопасности осуществляет контроль доставки сообщения с учетом упомянутого решения.According to an implementation variant, a method for generating a security monitor is used to control the delivery of interprocess communication messages (hereinafter referred to as messages) transmitted by application processes of the operating system (hereinafter referred to as OS), in which: using the generating tool, security policies are analyzed from the policy base, where the policy base designed to store security policies to control the delivery of messages, while the analysis consists, in particular, in determining the processes for which the corresponding security policy is used; using the generating tool, selecting security policies from the policy base for the corresponding configuration tools; using the generation tool, transmit at least one selected security policy to the corresponding configuration tool; using the above configuration tools, setting up policy check modules, where the policy check module is designed to make a decision on the method for controlling the delivery of a message (hereinafter referred to as the decision) at the request of the security monitor when executing the security policy; using the generation tool, a security monitor is formed using customized policy check modules received from each configuration tool, based on the results of the analysis, while the security monitor controls the delivery of the message, taking into account the mentioned solution.
Согласно одному из частных вариантов реализации контроль доставки сообщения включает разрешение или запрет доставки сообщения.In one particular implementation, message delivery control includes allowing or denying message delivery.
Согласно другому частному варианту реализации при упомянутом анализе учитывают объекты архитектуры ОС, включающие упомянутые процессы и приложения.According to another particular implementation variant, said analysis takes into account the objects of the OS architecture, including the mentioned processes and applications.
Краткое описание чертежейBrief description of the drawings
Дополнительные цели, признаки и преимущества настоящего изобретения будут очевидными из прочтения последующего описания осуществления изобретения со ссылкой на прилагаемые чертежи, на которых:Additional objects, features and advantages of the present invention will become apparent from reading the following description of an embodiment of the invention with reference to the accompanying drawings, in which:
На Фиг. 1а-1в представлены схемы межпроцессного взаимодействия с использованием монитора безопасности на примере операционной системы с микроядерной архитектурой.On FIG. Figures 1a-1c show diagrams of inter-process communication using a security monitor using an operating system with a microkernel architecture as an example.
На Фиг. 2 представлена система формирования монитора безопасности.On FIG. 2 shows the security monitor generation system.
На Фиг. 3 представлен способ формирования монитора безопасности.On FIG. 3 shows a method for generating a security monitor.
Фиг. 4 представляет пример компьютерной системы общего назначения. Fig. 4 represents an example of a general purpose computer system.
Осуществление изобретенияImplementation of the invention
Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако, настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, but may be embodied in various forms. The gist of the description is nothing but specific details provided to assist the person skilled in the art in a thorough understanding of the invention, and the present invention is defined within the scope of the appended claims.
ГлоссарийGlossary
Процесс (англ. process) - последовательность операций при выполнении программы или ее части вместе с используемыми данными, включает один или более потоков (англ. thread) и ассоциированные с ними системные ресурсы.Process (English process) - a sequence of operations when executing a program or part of it, along with the data used, includes one or more threads (English thread) and system resources associated with them.
Межпроцессное взаимодействие (англ. inter-process communication, IPC) - набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и удаленных вызовов.Inter-process communication (IPC) is a set of methods for exchanging data between multiple threads in one or more processes. Processes can run on one or more computers connected by a network. IPC methods are divided into messaging, synchronization, shared memory, and remote call methods.
Асинхронный процесс - процесс, в котором операция не требует отклика для продолжения выполнения.An asynchronous process is a process in which an operation does not require a response to continue execution.
Синхронный процесс - процесс, в котором операция требует отклика для продолжения выполнения.A synchronous process is a process in which an operation requires a response in order to continue execution.
Операция - элементарное действие, выполняемое в рамках рассматриваемого процесса (в качестве операции может выступать, например, API-функция).An operation is an elementary action performed within the framework of the process under consideration (for example, an API function can act as an operation).
Современные операционные системы при обмене данными между двумя процессами методами межпроцессного взаимодействия используют как синхронные, так и асинхронные операции.Modern operating systems use both synchronous and asynchronous operations when exchanging data between two processes using interprocess communication methods.
Конечный автомат (англ. Finite State Machine, FSM) - модель дискретного устройства, характеризующаяся состояниями и переходами от одного состояния к другому. Каждое состояние конечного автомата характеризует одну из возможных ситуаций, в которой может находиться конечный автомат.Finite State Machine (FSM) is a discrete device model characterized by states and transitions from one state to another. Each state of the finite automaton characterizes one of the possible situations in which the finite automaton can be.
На Фиг. 1а-1в представлены схемы межпроцессного взаимодействия с использованием монитора безопасности 120 на примере операционной системы (ОС) 100 с микроядерной архитектурой. Представленная на Фиг. 1а ОС 100 включает изолированные процессы 131-132 приложений ОС 100, которые взаимодействуют между собой (IPC), а также с ядром ОС 110 посредством программных интерфейсов путем обмена сообщений 140 (также сообщения межпроцессного взаимодействия, IPC-сообщения, на фигуре обозначены стрелкой, начинающейся с точки). При этом упомянутые интерфейсы, реализуемые процессами, статически описаны, а разрешенные взаимодействия между процессами заданы заранее.On FIG. 1a-1c are diagrams of inter-process communication using
Отправка и получение сообщений процессами 131-132 происходят посредством системных вызовов ядра ОС 110.The sending and receiving of messages by processes 131 - 132 occur through OS kernel system calls 110 .
Системные вызовы могут включать следующие:System calls may include the following:
call() - используется процессом 131 для отправки запроса 142 к процессу 132 и получения ответа 143 на осуществление межпроцессного взаимодействия;call() - used by process 131 to send a request 142 to process 132 and receive a response 143 for inter-process communication;
recv() - используется процессом 132 для получения запроса 142;recv() - used by process 132 to receive request 142 ;
reply() - используется процессом 132 для отправки ответа 143 процессу 131.reply() - used by process 132 to send a reply 143 to process 131 .
Монитор безопасности 120 - компонент ОС 100, предназначенный для осуществления контроля доставки упомянутых сообщений 140. Сообщения 140 включают следующие: запрос на запуск 141 процесса 131, запрос 142 от процесса 131 или ответ 143 от другого процесса 132 (например, вызов процессом 131 метода процесса 132), запрос процесса 132 к монитору безопасности 120 (запрос безопасности 144). Также сообщения 140 могут включать уведомление об ошибке от ядра ОС 110 в ответ на сообщения от процессов 131-132. С использованием монитора безопасности 120 осуществляют контроль доставки сообщений 140 с учетом решений 150, принятых на основании политик безопасности из базы политик 121. Контроль доставки сообщения 140 включает разрешение или запрет доставки сообщения 140 и, соответственно, разрешение или запрет выполнения взаимодействия, осуществляющегося с использованием указанного сообщения 140. Решение 150 о способе контроля доставки сообщения 140 указывает на разрешение или запрет на передачу сообщения 140 при выполнении политики безопасности. Решение 150 используется монитором безопасности 120 или его компонентами для осуществления упомянутого контроля доставки сообщений 140 (см. Фиг. 2). На основании политик безопасности могут выносить решение 150 с использованием данных сообщения 140 (например, имя запускаемого процесса или фактические аргументы вызываемого метода процесса).The
Также решение 150 о способе контроля доставки сообщения 140 может зависеть от корректности структуры упомянутого сообщения 140. Таким образом, если сообщение 140 имеет недопустимую структуру, передача указанного сообщения 140 может быть запрещена. В этом случае допустимые структуры сообщений могут быть определены с использованием декларативного описания интерфейса процесса-получателя сообщения. Упомянутая структура может содержать размер сообщения, допустимые аргументы и другие допустимые параметры сообщения.Also, the decision 150 on how to control the delivery of the message 140 may depend on the correctness of the structure of said message 140 . Thus, if message 140 has an invalid structure, transmission of said message 140 may be prohibited. In this case, valid message structures can be defined using the declarative description of the interface of the receiving process of the message. The referenced structure may contain the size of the message, valid arguments, and other valid message parameters.
В одном частном варианте реализации монитор безопасности 120 может быть частью ядра ОС 110 или отдельным приложением. В другом частном варианте реализации монитор безопасности 120 исполняется в привилегированном режиме ядра ОС 110.In one particular implementation, the
В частном варианте реализации ОС 100 дополнительно включает сервис аудита 133, предназначенный для записи в журнал результатов контроля доставки сообщений 140. При этом контроль доставки сообщения дополнительно включает выполнение аудита с использованием сервиса аудита 133. В еще одном частном варианте реализации монитор безопасности 120 осуществляет контроль доставки сообщений 140 дополнительно с учетом текущего статуса сервиса аудита 133. При этом упомянутый статус указывает на готовность сервиса аудита 133 принимать сообщения 140. Например, если процесс 131 выполняет запрос 142 к защищенному ресурсу (через процесс 132), где информация о доступе к защищенному ресурсу всегда должна быть записана в журнал, но при этом статус сервиса аудита 133 указывает на то, что сервис аудита 133 в данный момент не сохраняет сообщения, то такой запрос 142 будет запрещен монитором безопасности 120 согласно политике безопасности.In a particular implementation, OS 100 further includes an audit service 133 for logging the results of message delivery control 140 . At the same time, message delivery control additionally includes performing an audit using the audit service 133 . In yet another particular implementation, the
В еще одном частном варианте реализации ОС 100 содержит контекст 122 монитора безопасности 120, при этом монитор безопасности 120 осуществляет контроль доставки сообщения 140 дополнительно с учетом упомянутого контекста 122, где контекст 122 содержит значения параметров политик безопасности. В другом частном варианте реализации монитор безопасности дополнительно предназначен для изменения контекста 122 с учетом решений 150 на основании политик безопасности. В частном варианте реализации политики безопасности используют модель конечного автомата, модель мандатного контроля целостности или другие модели для реализации политик безопасности. Подробнее об упомянутых моделях будет раскрыто далее. В зависимости от используемых политиками безопасности упомянутых моделей контекст 122 может содержать различные параметры политик безопасности. Например, для политик безопасности на основе модели мандатного контроля целостности контекст 122 будет содержать значения уровней целостности и уровней доступа к защищаемым объектам. Для политик безопасности на основе конечного автомата контекст 122 будет содержать текущее значение состояния конечного автомата и таблицу переходов конечного автомата.In another particular implementation, the OS 100 contains a context 122 of the
На Фиг. 1б представлен пример доставки разрешенного запроса 142 от процесса 131 к процессу 132. Процесс 131 может вызвать метод интерфейса процесса 132, для этого процесс 131 отправляет запрос 142, содержащий входные аргументы вызываемого метода. Процесс 131 отправляет запрос 142 посредством ядра ОС 110, которое в свою очередь передает запрос 142 на проверку монитору безопасности 120. Монитор безопасности 120 выносит решение 150 «разрешено» на основании политик безопасности и передает указанное решение 150 ядру ОС 110. После этого ядро 110 на основании решения 150 передает запрос 142 далее процессу 132.On FIG. 1b shows an example of delivery of a resolved request 142 from process 131 to process 132 . Process 131 can call a process interface method 132 , for which process 131 sends a request 142 containing the input arguments of the called method. The process 131 sends a request 142 through the OS kernel 110 , which in turn passes the request 142 to the
В рассматриваемом примере процесс 132 далее отправляет ответ 143 процессу 131, где ответ 143 содержит выходные аргументы вызываемого метода. Способ отправки ответа 143 аналогичен способу отправки запроса 142, но в обратном порядке, от процесса 132 к процессу 131. То есть, процесс 132 отправляет ответ 143 посредством ядра ОС 110, которое в свою очередь передает ответ 143 на проверку монитору безопасности 120. Монитор безопасности 120 выносит новое решение «разрешено» на основании политик безопасности и передает указанное новое решение обратно ядру ОС 110. После этого ядро 110 на основании нового решения передает ответ 143 далее процессу 131.In this example, process 132 then sends a response 143 to process 131 , where response 143 contains the output arguments of the method being called. The method of sending response 143 is similar to the method of sending request 142 , but in reverse order, from process 132 to process 131 . That is, the process 132 sends a response 143 via the OS kernel 110 , which in turn passes the response 143 to the
На Фиг. 1в представлен пример запрещенного запроса 142 от процесса 131 к процессу 132. Процесс 131 отправляет запрос 142 посредством ядра ОС 110, которое в свою очередь передает запрос 142 на проверку монитору безопасности 120. Монитор безопасности 120 выносит решение 150 «запрещено» на основании политик безопасности и передает указанное решение 150 ядру ОС 110. После этого ядро 110 на основании решения 150 направляет уведомление об ошибке процессу 131. При этом запрос 142 не будет передан процессу 132.On FIG. 1c shows an example of a forbidden request 142 from process 131 to process 132 . The process 131 sends a request 142 through the OS kernel 110 , which in turn passes the request 142 to the
На Фиг. 2 представлена система формирования монитора безопасности 200. Система формирования монитора безопасности 200 используется для повышения безопасности ОС 100 при обмене сообщениями 140, а также для обеспечения контроля доставки упомянутых сообщений 140 получателям. При этом монитор безопасности 120 может быть использован разработчиками ПО в различных операционных системах 100, а также в любых других компьютерных системах, в которых осуществляется обмен сообщениями, в частности в базах данных и в прикладном ПО. Пример такого использования был приведен ранее на Фиг. 1а-1в. Для каждой ОС 100 формируют монитор безопасности 120 с учетом особенностей архитектуры ОС 240, а также с учетом требований безопасности для данной ОС 100, которые выражаются в политиках безопасности. Стоит отметить, что для различных программных и программно-аппаратных систем разработчика на базе ОС 100 (далее - система разработчика) основные объекты архитектуры ОС 240 могут быть общими, например процессы, службы, приложения, драйверы, отвечающие за работу ядра ОС 110 и других компонентов ОС 260. В то же время, другие объекты архитектуры ОС 240, отвечающие за функциональность системы разработчика, будут различными для каждой из упомянутых систем. Следовательно, будут различаться и политики безопасности, с использованием которых осуществляется контроль доставки сообщений 140. Системы разработчика могут включать программное обеспечение, а также программно-аппаратные комплексы.On FIG. 2 shows the security monitor generation system 200 . The security monitor generation system 200 is used to improve the security of the OS 100 when exchanging messages 140 , as well as to control the delivery of said messages 140 to recipients. Thus, the
Система 200 содержит базу политик безопасности 121, предназначенную для хранения политик безопасности, необходимых для контроля доставки сообщений 140. Система 200 также содержит по меньшей мере одно средство настройки 220, которое предназначено для настройки соответствующего ему модуля проверки политик 221 на основании полученных от средства формирования 210 политик безопасности. Модуль проверки политик 221 предназначен для вынесения решения 150 о способе контроля доставки сообщения 140 (далее - решение) по запросу монитора безопасности 120 при выполнении политики безопасности. Система 200 также содержит описание архитектуры ОС 240, включающее такие объекты архитектуры ОС, как процессы и приложения ОС 100. В частном варианте реализации упомянутые объекты архитектуры ОС дополнительно включают объекты системы разработчика на базе ОС 100. В еще одном частном варианте реализации объекты архитектуры ОС дополнительно включают:The system 200 includes a security policy database 121 for storing the security policies needed to control the delivery of messages 140 . The system 200 also includes at least one configuration tool 220 which is configured to configure its corresponding policy checker 221 based on the security policy generator 210 received. The policy checking module 221 is designed to make a decision 150 on how to control the delivery of the message 140 (hereinafter referred to as the decision) at the request of the
предоставляющий сервис процесс, который включает по меньшей мере один программный компонент, предназначенный для реализации программного интерфейса упомянутого процесса, при этом взаимодействие с упомянутым процессом происходит посредством упомянутого интерфейса (например, таким сервисом может быть приложение, транслирующее поток внешних событий и запросы для процесса обработки событий);a service-providing process that includes at least one software component designed to implement a programming interface of said process, wherein interaction with said process occurs through said interface (for example, such a service can be an application that broadcasts a stream of external events and requests for an event processing process );
перечень программных интерфейсов для каждого процесса. Также, могут быть указаны соответствующие методы интерфейсов, реализующие функционал соответствующего процесса.a list of programming interfaces for each process. Also, the corresponding interface methods that implement the functionality of the corresponding process can be specified.
В еще одном частном варианте реализации объектом архитектуры ОС дополнительно является драйвер ресурсов — процесс, управляющий ресурсами и доступом к ним. Где ресурсом является, в частности, файл, порт или процесс. Например, файловая система является драйвером ресурсов, а сами файлы - ресурсами, к которым она может предоставить доступ другим процессам.In another particular implementation, the object of the OS architecture is additionally a resource driver - a process that manages resources and access to them. Where the resource is, specifically, a file, port, or process. For example, the file system is a resource driver, and the files themselves are resources that it can provide access to other processes.
Кроме того, система 200 содержит средство формирования 210, предназначенное для анализа политик безопасности, где анализ заключается, в частности, в определении процессов, для которых используется упомянутая политика безопасности. В частном варианте реализации при упомянутом анализе учитывают объекты архитектуры ОС 240, включающие упомянутые процессы и приложения. Средство формирования 210 также предназначено для выбора политик безопасности из базы политик 121 для соответствующих средств настройки 220 и для передачи по меньшей мере одной выбранной политики безопасности соответствующему средству настройки 220. Средство формирования 210 также предназначено для формирования монитора безопасности 120 с использованием настроенных модулей проверки политик 221, полученных от каждого средства настройки 220 на основании результатов анализа. В частном варианте реализации средство формирования 210 формирует монитор безопасности 120 путем создания кода монитора безопасности 120. При этом упомянутый код может быть исходным кодом, промежуточным кодом или исполняемым кодом. Кроме того, формирование кода монитора безопасности 120 также может включать оптимизацию кода, анализ кода на наличие ошибок. Таким образом, средство формирования 210 может быть компилятором, формирующим упомянутый код.In addition, the system 200 includes a generator 210 intended for the analysis of security policies, where the analysis consists, in particular, in determining the processes for which said security policy is used. In a particular implementation, said analysis takes into account OS architecture objects 240 that include said processes and applications. Creator 210 is also operative to select security policies from policy base 121 for respective customizers 220 and to pass at least one selected security policy to respective customizer 220 . The builder 210 is also configured to build the
Архитектура ОС 240, база политик 121, а также средства настройки 220 могут быть настроены заранее с использованием средства разработки 250. Для этого средство разработки 250 может предоставлять набор API (англ. application programming interface - программный интерфейс приложения) или готовые модули для разработки ПО. В частном варианте реализации по меньшей мере часть объектов архитектуры ОС 240, часть политик безопасности из базы политик 121, а также часть средств настройки 220 могут быть общими (шаблонными) для различных ОС 100. В этом случае разработчик с использованием средств разработки 250 может настроить средства настройки 220, объекты архитектуры ОС 240 и политики безопасности из базы политик безопасности 121 путем добавления в упомянутый шаблон отсутствующих в шаблоне политик безопасности, объектов архитектуры ОС 240, а также средств настройки 220, необходимых для отражения особенностей ОС 100 или системы разработчика на базе ОС 100 и требований безопасности к ОС 100 или соответственно к системе разработчика на базе ОС 100, для которой упомянутый разработчик формирует монитор безопасности 120. Кроме того, часть данных из упомянутого шаблона может быть удалена, если она будет не нужна в ОС 100 или соответственно в системе разработчика на базе ОС 100. Например, могут быть удалены некоторые политики безопасности и приложения.The OS architecture 240 , the policy base 121 , as well as the configuration tools 220 can be configured in advance using the
Сформированный монитор безопасности 120 вместе с другими компонентами ОС 260 далее включают в операционную систему 100. При этом упомянутое включение монитора безопасности 120 и компонентов ОС 260 может быть осуществлено известными из уровня техники способами, например на этапе компиляции ОС 100 с использованием компилятора ОС 100 или путем установки монитора безопасности 120 в ОС 100. Как упоминалось ранее, монитор безопасности 120 может быть частью ядра ОС 110 или отдельным приложением ОС 100. Монитор безопасности 120 исполняется в привилегированном режиме ядра ОС 110. Для ОС 100 также может быть создан установочный образ ОС 270, необходимый для установки ОС 100 на компьютерные устройства конечных пользователей. Установочный образ ОС 270 может быть, например, архивом, исполняемым файлом или установочным пакетом. Установочный пакет представляет собой файл архива, в который входят файлы ОС 100, управляющие файлы и опционально файлы для настройки процесса установки ОС 110. Кроме того, в установочный пакет могут входить файлы системы разработчика на базе ОС 100. Упомянутые файлы могут быть представлены в исходном коде, в промежуточном коде или в исполняемом коде.The generated
На Фиг. 3 представлен способ формирования монитора безопасности 200. На шаге 310 с использованием средства формирования 210 анализируют политики безопасности из базы политик 121. Упомянутый анализ заключается, в частности, в сопоставлении политик безопасности 121 и объектов архитектуры ОС 240. Например, будут определены процессы, для которых используется упомянутая политика безопасности. Кроме того, могут быть выбраны лишь те политики безопасности 121, которые соответствуют существующим процессам в рамках архитектуры ОС 240 или системы разработчика на базе ОС 100. Далее на шаге 320 с использованием средства формирования 210 выполняют выбор политик безопасности из базы политик 121 для соответствующих средств настройки 220 и, на шаге 330, осуществляют передачу по меньшей мере одной выбранной политики безопасности соответствующему средству настройки 220. После этого на шаге 340 с использованием средств настройки 220 выполняют настройку модулей проверки политик 221. Упомянутая настройка заключается, в частности, в добавлении выбранных политик безопасности в модули проверки политик 221. В итоге на шаге 350 с использованием средства формирования 210 формируют монитор безопасности 120 с использованием настроенных модулей проверки политик 221 на основании результатов анализа.On FIG. 3 shows a method for generating a security monitor 200 . At
Таким образом, заявленное изобретение позволяет решить заявленную техническую проблему и достичь заявленные технические результаты, а именно повысить безопасность ОС при обмене сообщениями межпроцессного взаимодействия, передаваемыми процессами приложений ОС за счет формирования монитора безопасности, предназначенного для контроля доставки сообщений с использованием политик безопасности, а также обеспечить контроль доставки сообщений межпроцессного взаимодействия, передаваемых процессами приложений ОС, в соответствии с политиками безопасности путем формирования монитора безопасности, обеспечивающего упомянутый контроль.Thus, the claimed invention allows solving the claimed technical problem and achieving the claimed technical results, namely, to increase the security of the OS when exchanging interprocess communication messages transmitted by the OS application processes by forming a security monitor designed to control the delivery of messages using security policies, and also to provide control of delivery of interprocess communication messages transmitted by OS application processes in accordance with security policies by forming a security monitor that provides said control.
В частном варианте реализации монитор безопасности 120 формируют путем создания кода монитора безопасности 120, где код может быть исходным кодом, промежуточным кодом или исполняемым кодом. В этом варианте реализации модули проверки политик 221 также являются участками кода, включаемыми в код монитора безопасности 120.In a particular implementation, the
Описание политик безопасностиDescription of security policies
В частном варианте реализации политики безопасности используют по меньшей мере одну из следующих моделей:In a particular implementation of the security policy, at least one of the following models is used:
базовые операции;basic operations;
конечный автомат;finite state machine;
временной автомат;temporary machine;
ролевое управление доступом;role-based access control;
мандатный контроль целостности;mandatory integrity control;
регулярные выражения;regular expressions;
дискретные события (англ. Discrete Event Systems, DES);discrete events (English Discrete Event Systems, DES);
мандатные ссылки;mandate links;
темпоральная логика (временнáя логика; англ. temporal logic).temporal logic (temporal logic; English temporal logic).
Политики безопасности 121 могут быть заданы с использованием языка спецификации, например PSL (англ. policy specification language). На примере PSL мандатный контроль целостности задан классом политик Mandatory_integrity_control. Класс (семейство) политик безопасности определяет множество правил, соответствующих правилам модели, используемой в политике безопасности. Спецификация политики безопасности определяет соответствие упомянутых правил и взаимодействий в системе, которые могут быть реализованы путем обмена сообщений 140 между процессами. При каждой попытке взаимодействия, то есть при проверке монитором безопасности 120 сообщений 140, монитор безопасности 120 исполняет правила для определения решения о допустимости указанного взаимодействия (доставки сообщения 140). Для использования класса политик на его основе создают объект политики, для которого указывают конфигурацию.Security policies 121 may be defined using a specification language such as PSL (policy specification language). In the PSL example, the mandatory integrity control is specified by the policy class Mandatory_integrity_control. A class (family) of security policies defines a set of rules that correspond to the rules of the model used in the security policy. The specification of the security policy defines the correspondence of these rules and interactions in the system, which can be implemented by the exchange of messages 140 between processes. On each interaction attempt, that is, when the
В частном варианте реализации анализ политик безопасности и объектов архитектуры ОС 240 включает по меньшей мере один из следующих видов анализа: лексический анализ, синтаксический анализ, семантический анализ. В результате указанного анализа политик безопасности определяют объекты архитектуры ОС 240, в частности, процессы, участвующие в обмене сообщений 140, для которых применяется упомянутая политика безопасности. То есть будет определено соответствие между определенными объектами архитектуры ОС 240 и политикой безопасности, применяемой для указанных объектов. Например, если политика безопасности разрешает запрос 142 от процесса 131 к процессу 132, то в результате анализа этой политики безопасности будут определены указанные процессы 131-132 и информация о разрешенном запросе 142. Стоит отметить, что в результате указанного анализа политик безопасности могут дополнительно определить и другие объекты архитектуры ОС 240, которые проверяют в указанной политике безопасности, например, методы интерфейсов процесса, когда сообщение 140 адресовано указанному методу и будет передано по указанному интерфейсу процесса. В этом случае, политики безопасности будет проверять условие, что при обмене сообщениями 140 между определенными процессами используются заданные интерфейсы процессов и заданные методы интерфейсов.In a particular implementation, the analysis of security policies and architecture objects of OS 240 includes at least one of the following types of analysis: lexical analysis, parsing, semantic analysis. As a result of this analysis of security policies, objects of the OS architecture 240 are determined, in particular, the processes involved in the exchange of messages 140 for which the said security policy is applied. That is, a correspondence will be determined between certain objects of the OS 240 architecture and the security policy applied to said objects. For example, if a security policy permits a request 142 from process 131 to process 132 , then parsing that security policy will identify the specified processes 131 - 132 and information about the permitted request 142 . It is worth noting that as a result of this analysis of security policies, other objects of the OS architecture 240 can additionally be determined, which check in the specified security policy, for example, methods of the process interfaces, when the message 140 is addressed to the specified method and will be transmitted over the specified process interface. In this case, the security policy will check the condition that when messages 140 are exchanged between certain processes, the specified process interfaces and specified interface methods are used.
На примере языка PSL, с использованием которого могут быть заданы политики безопасности 121, указание на процесс 131, являющийся источником запроса 142, может содержаться в переменной scr. Указание на процесс 132, являющийся получателем запроса 142 может содержаться в переменной dst. Соответственно, именно упомянутый анализ политики безопасности 121, написанной на языке PSL, позволит определить указанные объекты архитектуры ОС, для которых будет применяться указанная политика безопасности.In the example of PSL, which can be used to set security policies 121 , an indication of the process 131 that is the source of the request 142 can be contained in the scr variable. An indication of the process 132 that is the recipient of the request 142 may be contained in the variable dst. Accordingly, it is the mentioned analysis of the security policy 121 written in the PSL language that will make it possible to determine the specified objects of the OS architecture for which the specified security policy will be applied.
В другом частном варианте реализации анализ политик безопасности 121 также включает проверку типов объектов архитектуры ОС 240, а также анализ на ошибки в политиках безопасности 121.In another particular implementation, the analysis of security policies 121 also includes checking the types of OS architecture objects 240 as well as analyzing for errors in security policies 121 .
Результаты упомянутого анализа учитываются при формировании монитора безопасности 120. Например, в мониторе безопасности 120 могут быть записаны условия применения политик безопасности - перечень объектов архитектуры ОС 240, в частности, процессов, и соответствующие указанному перечню политики безопасности, а также модули проверки политик 221. Поэтому, при получении от ядра ОС 110 сообщения 140, сформированный монитор безопасности 120 определяет объекты архитектуры ОС 240, участвующие в обмене сообщением 140, после чего определяет политики безопасности, применимые к указанным объектам архитектуры ОС 240. После чего монитор безопасности 120 передает сообщения 140 модулям проверки политик 221, соответствующим указанным политикам безопасности, для вынесения решения о способе контроля доставки сообщения 140.The results of said analysis are taken into account in the formation of the
В еще одном частном варианте реализации выполняют синтаксический анализ путем построения синтаксического дерева для кода монитора безопасности 120, при этом включают в синтаксическое дерево код модулей проверки политик 221, сформированных по меньшей мере одним средством настройки 220.In yet another particular implementation, parsing is performed by constructing a parse tree for the
Политики безопасности могут использовать базовые операции, разрешающие или запрещающие передачу сообщения 140 при условии совпадения параметров сообщения 140 (например, имя запускаемого процесса или фактические аргументы вызываемого метода) с данными, указанными в политике безопасности. Например, политика безопасности может определить, что процесс 131 может получать любые сообщения, но при этом процессу 131 запрещено отправлять сообщения.Security policies can use basic operations that allow or deny transmission of message 140 , provided that the parameters of message 140 (for example, the name of the process to be started or the actual arguments of the method being called) match the data specified in the security policy. For example, a security policy may specify that process 131 may receive any messages, but that process 131 is prohibited from sending messages.
Политики безопасности также могут использовать конечный автомат, где политика безопасности определяет разрешение или запрет доставки сообщения 140 в зависимости от состояния конечного автомата и в соответствии с таблицей переходов состояний конечного автомата.Security policies may also use a state machine, where the security policy determines whether message 140 is allowed or denied delivery depending on the state of the state machine and according to the state machine's state transition table.
Модель временных автоматов (англ. Timed automata), и в частности временной автомат типа ERA (англ. Event-recording automata), является частным случаем конечных автоматов. В данной модели дополнительно для каждого сообщения задают параметр времени (таймер), равный времени с момента последнего получения этого сообщения. Например, переход из одного состояния конечного автомата в другое состояние может быть осуществлен, если сообщение было получено спустя время, определенное таймером.The Timed automata model, and in particular the ERA (Event-recording automata) type time machine, is a special case of finite automata. In this model, in addition, for each message, a time parameter (timer) is set equal to the time since the last receipt of this message. For example, the transition from one state of the state machine to another state can be performed if the message was received after the time specified by the timer.
Модель мандатного контроля целостности (англ. Mandatory integrity control) используется для разрешения или запрета доставки сообщения 140. Согласно модели мандатного контроля доступа, с использованием монитора безопасности 120 объектам архитектуры ОС 240, участвующим в передаче сообщения 140, например процессам 131-132, ставят в соответствие два числа, называемые уровнем целостности (англ. Integrity level) и уровнем доступа. При этом для разрешения доставки сообщения от одного объекта к другому используются политики безопасности на основе мандатного контроля целостности, то есть использующие значения уровней целостности и уровней доступа объектов. Например, может быть использована политика безопасности, согласно которой одному объекту разрешено обращаться к другому объекту, если значение уровня доступа первого объекта не ниже значения уровня целостности другого. На языке спецификаций PSL для модели мандатного контроля целостности задают уровни целостности и уровни доступа. Таким образом, для задания уровней целостности определяют объект политик integrity, являющийся экземпляром класса Mandatory_integrity_control:The Mandatory integrity control model is used to allow or deny message delivery 140 . According to the mandatory access control model, using the
В конфигурации объекта политик integrity будут заданы три уровня целостности: LOW (низкий), MEDIUM (средний) и HIGH (высокий) - в порядке возрастания. То есть LOW < MEDIUM < HIGH.In the integrity policy object configuration, three integrity levels will be specified: LOW (low), MEDIUM (medium) and HIGH (high) - in ascending order. That is, LOW < MEDIUM < HIGH.
В основе политик на основе мандатных ссылок (англ. object capability model) лежит принцип минимальных привилегий. Этот принцип организации доступа к ресурсам подразумевает предоставление субъекту (процессу или пользователю) только тех привилегий, которые являются абсолютно необходимыми для успешного выполнения задачи. Например, пользователю, который хочет ознакомиться с содержимым файла, должны быть выданы только права на чтение этого файла и только на период использования этого файла.The object capability model is based on the principle of least privilege. This principle of organizing access to resources implies granting to the subject (process or user) only those privileges that are absolutely necessary for the successful completion of the task. For example, a user who wants to see the contents of a file should only be granted read access to the file, and only for the duration of the file's use.
Для задания политик безопасности на основе темпоральной логики формулируют свойства (требования) безопасности с помощью формулы темпоральной логики и с использованием темпоральных операторов. С использованием монитора безопасности 120 объектам архитектуры ОС 240, участвующим в передаче сообщения 140, например процессам 131-132, ставят в соответствие события их состояния из заранее определенного множества событий.To set security policies based on temporal logic, security properties (requirements) are formulated using the temporal logic formula and using temporal operators. Using the
В качестве примера рассматривается применение политик безопасности на основе темпоральной логики для процесса установки ПО из образа ПО. В процессе установки могут участвовать несколько компонентов (являющихся процессами 131-132), например средство проверки и средство установки. Процесс установки ПО может включать проверку целостности образа ПО средством проверки и последующую установку ПО из образа ПО средством установки в случае, если целостность образа ПО не нарушена. Целостность образа ПО определяет непротиворечивость, полнота и сохранность данных образа ПО. Проверка целостности образа ПО может быть осуществлена путем проверки электронно-цифровой подписи. Для упомянутого образа ПО множество событий может включать следующие: {seal, verify, apply}, где seal - событие «запечатывания» образа ПО, verify - событие проверки целостности образа ПО, apply - событие установки ПО из образа ПО. Свойства безопасности формулируют, например, следующим образом:As an example, the application of security policies based on temporal logic for the process of installing software from a software image is considered. Several components (which are processes 131 - 132 ) may be involved in the installation process, such as a checker and an installer. The software installation process may include verifying the integrity of the software image with a checker and then installing the software from the software image with the installer if the integrity of the software image is not compromised. The integrity of the software image determines the consistency, completeness, and integrity of the data in the software image. Checking the integrity of the software image can be carried out by checking the digital signature. For the mentioned software image, the set of events may include the following: {seal, verify, apply}, where seal is the event of "sealing" the software image, verify is the event of checking the integrity of the software image, apply is the event of installing software from the software image. The security properties are formulated, for example, as follows:
Свойство 1. Всегда, когда выполняется проверка целостности образа ПО, должно быть гарантировано, что после процесса проверки целостности образа ПО упомянутый образ ПО не будет изменен. Данное свойство можно записать в виде формулы: Feature 1 : Whenever a software image integrity check is performed, it must be guaranteed that after the software image integrity check process, said software image will not be modified. This property can be written as a formula:
G (verify => P seal),G (verify => P seal),
где G - темпоральный оператор «всегда в будущем», P - темпоральный оператор «хотя бы один раз в прошлом». Свойство 1 означает, что всегда, когда осуществляется проверка целостности образа ПО в прошлом, должна быть гарантирована невозможность дальнейшей записи данных в образ ПО.where G is the "always in the future" temporal operator, P is the "at least once in the past" temporal operator. Property 1 means that whenever a past integrity check is performed on a software image, it must be guaranteed that no further data can be written to the software image.
Свойство 2. Установка ПО из образа ПО возможна только в том случае, если подтверждена целостность образа ПО. Данное свойство можно записать в виде формулы: Feature 2: Installing software from a software image is possible only if the integrity of the software image is verified. This property can be written as a formula:
G (apply => P verify).G (apply => P verify).
Создание объекта класса политик, реализующего управление доступом на основе темпоральной логики, может быть реализовано на языке PSL в виде следующей конструкции:Creating a policy class object that implements access control based on temporal logic can be implemented in PSL as the following construct:
Стоит отметить, что возможны и другие формулировки свойств. Например, свойство 2 может быть задано следующим образом: образ ПО не применяется, пока не подтверждена целостность образа ПО:It should be noted that other formulations of properties are also possible. For example, property 2 could be set as follows: the software image is not applied until the integrity of the software image is verified:
!apply U verify,!apply U verify,
где U - темпоральный оператор «до тех пор, пока не наступит заданное событие».where U is the temporal operator "until the given event occurs".
Политика на основе модели темпоральной логики при установке ПО связывает с данным межпроцессным взаимодействием событие apply и проверяет истинность формулы, указанной в конфигурации объекта политик. Если формула истинна, политика разрешает взаимодействие, если ложна - запрещает.A policy based on the temporal logic model, when installing software, associates an apply event with this interprocess communication and checks the validity of the formula specified in the policy object configuration. If the formula is true, the policy allows the interaction, if it is false, it denies it.
Политики на основе модели с дискретными событиями задают с использованием соответствующего политикам модуля проверки 221. Упомянутые политики безопасности также могут быть описаны на языке спецификаций PSL. Упомянутые политики безопасности могут быть применены для систем разработчика, состоящих из большого количества компонентов. Для упомянутой системы модель с дискретными событиями представляет собой результирующий конечный автомат, который задан путем комбинации множества конечных автоматов, каждый из которых описывает отдельный компонент системы. Для каждого конечного автомата указывают множество их состояний и переходов между ними при возникновении определенных событий. Состояние результирующего конечного автомата определяют путем комбинации состояний конечных автоматов компонентов системы. При этом указанная комбинация осуществляется, например, путем синхронного или асинхронного произведения конечных автоматов. Для результирующего конечного автомата также задают список разрешенных переходов, список разрешенных состояний и список запрещенных состояний результирующего конечного автомата. Соответственно, с использованием политик безопасности проверяют переход упомянутых конечных автоматов компонентов системы и результирующего конечного автомата в начальное состояние, заданное в конфигурации соответствующего конечного автомата, переход между состояниями при возникновении определенного события, нахождение соответствующего конечного автомата в одном из заданных состояний.The discrete event model-based policies are set using the policy-corresponding checker 221 . The mentioned security policies can also be described in the PSL specification language. The mentioned security policies can be applied to developer systems that consist of a large number of components. For the mentioned system, the discrete event model is the resulting finite state machine, which is defined by combining a set of finite state machines, each of which describes a separate component of the system. For each state machine, a set of their states and transitions between them when certain events occur. The state of the resulting finite state machine is determined by combining the states of the state machines of the system components. This combination is carried out, for example, by synchronous or asynchronous product of finite automata. For the resulting state machine, a list of allowed transitions, a list of allowed states, and a list of forbidden states of the resulting state machine are also specified. Accordingly, using security policies, they check the transition of the said finite automata of the system components and the resulting finite automaton to the initial state specified in the configuration of the corresponding finite automaton, the transition between states when a certain event occurs, the presence of the corresponding finite automaton in one of the specified states.
В еще одном частном варианте реализации для политик безопасности, использующих различные модели, выбирают различные средства настройки 220. Например, политики безопасности могут быть объедены в классы политик. Класс политик безопасности - это набор семантически связанных политик, реализующих определенную модель политик безопасности. Первый класс политик может состоять из политик безопасности, использующих конечный автомат, а второй класс политик может состоять из политик безопасности, использующих мандатный контроль целостности. В этом примере для политик безопасности из первого класса будет выбрано средство настройки 1, в то время как для политик безопасности из второго класса будет выбрано средство настройки 2. Описанный вариант реализации позволит разрабатывать средства настройки 220, предназначенные для настройки модулей проверки 221 для политик безопасности из одного класса. Кроме того, при добавлении новой политики безопасности в базу политик 121 будет использовано существующее средство настройки 220 без необходимости его доработки или добавления нового средства настройки 220.In yet another particular implementation, different settings 220 are selected for security policies using different models. For example, security policies can be grouped into policy classes. A security policy class is a set of semantically related policies that implement a particular security policy model. The first class of policies may consist of security policies that use a state machine, and the second class of policies may consist of security policies that use mandatory integrity control. In this example, for security policies from the first class, configuration tool 1 will be selected , while for security policies from the second class, configuration tool 2 will be selected. one class. In addition, adding a new security policy to the policy base 121 will use the existing configuration tool 220 without the need to modify it or add a new configuration tool 220 .
В еще одном частном варианте реализации с использованием средства формирования 210 дополнительно включают в монитор безопасности 120 контекст 122 монитора безопасности 120, при этом монитор безопасности 120 осуществляет контроль доставки сообщения 140 дополнительно с учетом упомянутого контекста 122, где контекст 122 монитора безопасности 120 содержит значения параметров политик безопасности. В другом частном варианте реализации монитор безопасности дополнительно предназначен для изменения контекста 122 с учетом решений 150 на основании политик безопасности. В зависимости от используемых политиками безопасности упомянутых моделей контекст 122 может содержать различные параметры политик безопасности. Например, для политик безопасности на основе модели мандатного контроля целостности контекст 122 будет содержать значения уровней целостности и уровней доступа к защищаемым объектам. Для политик безопасности на основе конечного автомата контекст 122 будет содержать текущее значение состояния конечного автомата и таблицу переходов конечного автомата.In another particular implementation, using the generation tool 210 , the context 122 of the
В частном варианте реализации в случае, если сообщению 140 соответствуют по меньшей мере две политики безопасности, дополнительно вычисляют общее решение для упомянутых политик безопасности путем конъюнкции решений для каждой из упомянутых политик безопасности, при этом монитор безопасности 120 осуществляет контроль доставки сообщения 140 дополнительно с учетом упомянутого общего решения. Когда процесс 131 или процесс 132 инициирует взаимодействие путем отправки сообщения 140, монитор безопасности 120 вызывает все политики безопасности из базы политик 121, связанные с этим конкретным взаимодействием. Если все политики безопасности вынесли решение «разрешено», то с использованием монитора безопасности 120 выносят общее решение «разрешено». Если хотя бы одна политика вынесла решение «запрещено», с использованием монитора безопасности 120 выносят общее решение «запрещено».In a particular implementation, if at least two security policies correspond to the message 140 , the overall solution for the mentioned security policies is additionally calculated by conjuncting the solutions for each of the mentioned security policies, while the
В еще одном частном варианте реализации настройка модуля проверки политик 221 включает создание кода, обеспечивающего вынесение решения 150 по запросу монитора безопасности 120 для политики безопасности при выполнении упомянутой политики безопасности.In yet another particular implementation, customizing the policy checker 221 includes generating code that makes a decision 150 upon request of the
В частном варианте реализации монитор безопасности 120 осуществляет контроль доставки сообщения 140 дополнительно с учетом решений 150 на основании политик безопасности, связанных с упомянутыми сообщениями 140.In a particular implementation, the
Фиг. 4 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Fig. 4 shows an example of a general purpose computer system, a personal computer or a server 20 ', comprising a central processing unit 21 ', system memory 22 ', and a system bus 23 ', which contains various system components including memory associated with the central processing unit 21 '. The system bus 23 is implemented as any bus structure known in the art, in turn comprising a bus memory or bus memory controller, a peripheral bus, and a local bus capable of interfacing with any other bus architecture. The system memory contains read-only memory (ROM) 24 , random access memory (RAM) 25 . The main input/output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between the elements of a personal computer 20 , for example, at the time of booting the operating system using ROM 24 .
Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn comprises a
Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that uses a hard disk 27 ', a removable magnetic disk 29 ' and a removable optical disk 31 ', but it should be understood that other types of
Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.The computer 20 has a
Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 4. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment using a network connection to another or more
Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях (также — информационных системах), внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.The network connections may form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks (also information systems), internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local network 50 via a network adapter or
В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.As described, the components, execution steps, data structure described above can be executed using various types of operating systems, computer platforms, programs.
В заключение следует отметить, что приведенные в описании сведения являются примерами, которые не ограничивают объем настоящего изобретения, определенного формулой.In conclusion, it should be noted that the information given in the description are examples that do not limit the scope of the present invention defined by the formula.
Claims (44)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/711,399 US20220382855A1 (en) | 2021-05-27 | 2022-04-01 | System and method for building a security monitor |
EP22173098.9A EP4095726A1 (en) | 2021-05-27 | 2022-05-12 | System and method for building a security monitor in a microkernel |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2773108C1 true RU2773108C1 (en) | 2022-05-30 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8234686B2 (en) * | 2004-08-25 | 2012-07-31 | Harris Corporation | System and method for creating a security application for programmable cryptography module |
RU2514137C1 (en) * | 2012-09-28 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Method for automatic adjustment of security means |
RU2573782C1 (en) * | 2014-07-25 | 2016-01-27 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of setting up computer system according to security policy |
US10432669B1 (en) * | 2016-11-28 | 2019-10-01 | Palo Alto Networks, Inc. | Security appliance to monitor networked computing environment |
RU2714726C2 (en) * | 2015-06-30 | 2020-02-20 | Закрытое акционерное общество "Лаборатория Касперского" | Automation architecture of automated systems |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8234686B2 (en) * | 2004-08-25 | 2012-07-31 | Harris Corporation | System and method for creating a security application for programmable cryptography module |
RU2514137C1 (en) * | 2012-09-28 | 2014-04-27 | Закрытое акционерное общество "Лаборатория Касперского" | Method for automatic adjustment of security means |
RU2573782C1 (en) * | 2014-07-25 | 2016-01-27 | Закрытое акционерное общество "Лаборатория Касперского" | System and method of setting up computer system according to security policy |
RU2714726C2 (en) * | 2015-06-30 | 2020-02-20 | Закрытое акционерное общество "Лаборатория Касперского" | Automation architecture of automated systems |
US10432669B1 (en) * | 2016-11-28 | 2019-10-01 | Palo Alto Networks, Inc. | Security appliance to monitor networked computing environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2714726C2 (en) | Automation architecture of automated systems | |
CN110310205B (en) | Block chain data monitoring method, device, equipment and medium | |
Provos et al. | Preventing privilege escalation | |
RU2618946C1 (en) | Method to lock access to data on mobile device with api for users with disabilities | |
Mai et al. | Verifying security invariants in ExpressOS | |
Sekar et al. | Model-Carrying Code (MCC) a new paradigm for mobile-code security | |
JP7228751B2 (en) | Method and apparatus for authority management, computer equipment and storage medium | |
Armando et al. | Formal modeling and reasoning about the android security framework | |
Bratus et al. | Implementing a vertically hardened DNP3 control stack for power applications | |
Martinelli et al. | A framework for automatic generation of security controller | |
US20230074455A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
RU2773108C1 (en) | System and method for forming a security monitor | |
RU2777302C1 (en) | System and method for controlling the delivery of messages transmitted between processes from different operating systems | |
Cuppens et al. | Availability enforcement by obligations and aspects identification | |
WO2011001304A1 (en) | A method and an apparatus for tracing software | |
RU2770458C1 (en) | Network gateway and method for transferring data from a first network to a second network | |
RU2790338C1 (en) | Data access control system and method | |
RU2775157C1 (en) | System and methods for verifying the integrity of software install image | |
Ooms | The rapparmor package: Enforcing security policies in r using dynamic sandboxing on linux | |
RU2697951C2 (en) | System and method of terminating functionally restricted application, interconnected with website, launched without installation | |
EP4145318A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
EP4095726A1 (en) | System and method for building a security monitor in a microkernel | |
US20220382855A1 (en) | System and method for building a security monitor | |
Seehusen et al. | Maintaining information flow security under refinement and transformation | |
Aljuraidan et al. | Run-time enforcement of information-flow properties on Android |