RU2777302C1 - System and method for controlling the delivery of messages transmitted between processes from different operating systems - Google Patents
System and method for controlling the delivery of messages transmitted between processes from different operating systems Download PDFInfo
- Publication number
- RU2777302C1 RU2777302C1 RU2021126158A RU2021126158A RU2777302C1 RU 2777302 C1 RU2777302 C1 RU 2777302C1 RU 2021126158 A RU2021126158 A RU 2021126158A RU 2021126158 A RU2021126158 A RU 2021126158A RU 2777302 C1 RU2777302 C1 RU 2777302C1
- Authority
- RU
- Russia
- Prior art keywords
- security
- messages
- processes
- delivery
- policy
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 453
- 230000001276 controlling effect Effects 0.000 title claims abstract description 13
- 238000004891 communication Methods 0.000 claims abstract description 47
- 230000000875 corresponding Effects 0.000 claims abstract description 27
- 230000002123 temporal effect Effects 0.000 claims description 16
- 230000004044 response Effects 0.000 claims description 15
- 230000014509 gene expression Effects 0.000 claims description 5
- 238000005516 engineering process Methods 0.000 abstract description 5
- 230000000694 effects Effects 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000003993 interaction Effects 0.000 description 25
- 238000004458 analytical method Methods 0.000 description 14
- 238000009434 installation Methods 0.000 description 8
- 230000003287 optical Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 5
- 238000010586 diagram Methods 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000002093 peripheral Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000001360 synchronised 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
- 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 (hereinafter referred to as OS) are complex information systems with a lot of installed software (hereinafter referred to as software) 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 features of the OS architecture, as well as the protection tools built into the OS, because it is the OS that provides the mechanisms for processing and controlling inter-process communication (IPC), which can be implemented, in particular, by exchanging 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 a number of advantages, such as performance, as well as ease of interaction between drivers. 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. Thus, if there is a vulnerability in the OS, the delivery of some unwanted or malicious messages between processes can be allowed 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, the kernel of KasperskyOS, Symbian, etc.), which provides a minimal set of elementary process control functions and abstractions for working with hardware. The microkernel (English 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 (English hybrid kernel, for example, 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.
Для операционных систем актуальна задача обеспечения надежности и безопасности межпроцессных взаимодействий, реализованных путем обмена сообщений между процессами. Еще более сложной задачей является обеспечение безопасности межпроцессных взаимодействий между первым и вторым процессами, где второй процесс исполняется в среде, аппаратно или программно изолированной от первой среды исполнения, в которой исполняется первый процесс. Например, второй процесс может исполняться на втором компьютере, связанном с первым компьютером по сети, на виртуальной машине или в других средах выполнения. В этом случае возникает техническая проблема, заключающаяся в сложности осуществления контроля доставки сообщений межпроцессного взаимодействия между процессами из разных ОС на предмет соответствия политике безопасности.For operating systems, the task of ensuring the reliability and security of interprocess communications implemented by exchanging messages between processes is relevant. An even more difficult task is to ensure the security of inter-process communications between the first and second processes, where the second process is executing in an environment that is hardware or software isolated from the first execution environment in which the first process is executing. For example, the second process may run on a second computer connected to the first computer over a network, in a virtual machine, or in other execution environments. In this case, a technical problem arises, which consists in the difficulty of monitoring the delivery of interprocess communication messages between processes from different operating systems for compliance with the security policy.
Из уровня техники известен патент US8336050B2, в котором описан способ межпроцессного взаимодействия между виртуальными машинами с использованием виртуальной синхронизации и общей памяти.From the prior art patent US8336050B2 is known, which describes a method for interprocess communication between virtual machines using virtual synchronization and shared memory.
Тем не менее, известные технологии не позволяют решить заявленную техническую проблему, так как они не позволяют осуществить контроль доставки сообщений межпроцессного взаимодействия между процессами из разных ОС на предмет соответствия политике безопасности. Поэтому возникает необходимость в технологии, способной решить заявленную техническую проблему.However, known technologies do not allow solving the claimed technical problem, since they do not allow controlling the delivery of interprocess communication messages between processes from different OS for compliance with the security policy. Therefore, there is a need for a technology capable of solving the stated technical problem.
Раскрытие сущности изобретенияDisclosure of the essence of the invention
Настоящее изобретение предназначено контроля доставки сообщений, передаваемых между первым и вторым процессами, исполняющимися в разных операционных системах.The present invention is intended to control the delivery of messages passed between the first and second processes running on different operating systems.
Первый технический результат заключается в повышении безопасности ОС при обмене сообщениями межпроцессного взаимодействия, передаваемыми между первым и вторым процессами из разных ОС за счет создания прокси-процесса для отправки и получения сообщений от второго процесса, обладающего программным интерфейсом для прокси-процесса, а также добавления политики безопасности для контроля доставки сообщений, связанных с упомянутым прокси-процессом.The first technical result consists in increasing the security of the OS when exchanging interprocess communication messages transmitted between the first and second processes from different OS by creating a proxy process for sending and receiving messages from the second process, which has a programming interface for the proxy process, as well as adding a policy security to control the delivery of messages associated with said proxy process.
Второй технический результат заключается в повышении контроля доставки сообщений межпроцессного взаимодействия, передаваемых между первым и вторым процессами.The second technical result consists in increasing the control of delivery of interprocess communication messages transmitted between the first and second processes.
В варианте реализации используется способ контроля доставки сообщений межпроцессного взаимодействия (далее - сообщений), передаваемых между процессами из разных операционных систем (ОС), в котором: с помощью средства создания процесса создают прокси-процесс в первой ОС, предназначенный для обмена сообщениями между по меньшей мере первым процессом из первой ОС и вторым процессом во второй ОС и обладающий программным интерфейсом, соответствующим программному интерфейсу второго процесса, при этом первая ОС и вторая ОС — это операционные системы, установленные в разных вычислительных средах; с помощью средства назначения политик назначают по меньшей мере одну политику безопасности созданному прокси-процессу для контроля доставки сообщений, связанных с прокси-процессом, где сообщения передают через заданный программный интерфейс; с помощью сформированного монитора безопасности осуществляют контроль доставки сообщений между по меньшей мере первым и вторым процессами путем контроля доставки сообщений, связанных с прокси-процессом, на основании политик безопасности.In an embodiment, a method is used to control the delivery of interprocess communication messages (hereinafter referred to as messages) transmitted between processes from different operating systems (OS), in which: using the process creation tool, a proxy process is created in the first OS, designed to exchange messages between at least as the first process from the first OS and the second process in the second OS and having a programming interface corresponding to the programming interface of the second process, while the first OS and the second OS are operating systems installed in different computing environments; using the policy assigner, assigning at least one security policy to the created proxy process to control the delivery of messages associated with the proxy process, where the messages are transmitted through a given programming interface; using the generated security monitor, control the delivery of messages between at least the first and second processes by controlling the delivery of messages associated with the proxy process based on security policies.
В одном из частных вариантов реализации контроль доставки сообщения включает по меньшей мере разрешение или запрет доставки сообщения.In one particular implementation, message delivery control includes at least allowing or denying delivery of the message.
В другом частном варианте реализации сообщения включают по меньшей мере одно из: запрос на запуск процесса, запрос и ответ на осуществление межпроцессного взаимодействия, запрос процесса к монитору безопасности.In another particular implementation, the messages include at least one of: a request to start a process, a request and response to interprocess communication, a process request to a security monitor.
В еще одном частном варианте реализации вторая ОС является одной из по меньшей мере следующих: гостевой ОС, работающей на виртуальной машине под управлением первой ОС на компьютере; гостевой ОС, работающей на виртуальной машине, при этом первая ОС является второй гостевой ОС, работающей на второй виртуальной машине и связанной с первой виртуальной машиной посредством гипервизора; второй ОС на втором компьютере, который связан с компьютером, на котором функционирует первая ОС, по сети.In another particular implementation, the second OS is one of at least the following: a guest OS running on a virtual machine running the first OS on the computer; a guest OS running on a virtual machine, wherein the first OS is a second guest OS running on a second virtual machine and associated with the first virtual machine via a hypervisor; a second OS on a second computer that is connected to the computer running the first OS via a network.
В одном из частных вариантов реализации монитор безопасности сформирован для первой ОС с использованием средства формирования.In one particular implementation, the security monitor is generated for the first OS using a generation tool.
В одном из частных вариантов реализации формируют монитор безопасности с учетом особенностей архитектуры первой ОС, в частности с учетом созданного прокси-процесса, а также с учетом назначенных прокси-процессу политик безопасности из базы политик.In one of the private implementation options, a security monitor is formed taking into account the architecture features of the first OS, in particular, taking into account the created proxy process, as well as taking into account the security policies assigned to the proxy process from the policy base.
В другом частном варианте реализации формируют монитор безопасности путем создания кода монитора безопасности, включающего один из: исходный код, промежуточный код, исполняемый код.In another particular implementation, a security monitor is formed by creating a security monitor code that includes one of: source code, intermediate code, executable code.
В одном из частных вариантов реализации при контроле доставки сообщений, монитор безопасности использует программный интерфейс прокси-процесса для определения разрешенных сообщений для прокси-процесса, при этом с помощью средства назначения политик дополнительно задают список разрешенных сообщений в соответствии с программным интерфейсом и назначают политику безопасности, запрещающую доставку сообщений от прокси-процесса в случае, если монитором безопасности была зафиксирована попытка доставки сообщений, отсутствующих в списке разрешенных.In one of the private implementation options when controlling message delivery, the security monitor uses the proxy process API to determine the allowed messages for the proxy process, while using the policy assigner, the list of allowed messages is additionally set in accordance with the API and the security policy is assigned, which prohibits the delivery of messages from the proxy process if the security monitor has detected an attempt to deliver messages that are not in the list of allowed messages.
В другом частном варианте реализации при контроле доставки сообщений, монитор безопасности использует программный интерфейс прокси-процесса для определения перечня процессов, с которыми разрешен обмен сообщениями прокси-процессу, при этом с помощью средства назначения политик дополнительно назначают политику безопасности, запрещающую обмен сообщениями между прокси-процессом и процессами, отсутствующими в перечне процессов, при этом перечень процессов включает по меньшей мере первый процесс.In another particular implementation, when controlling message delivery, the security monitor uses the proxy process API to determine the list of processes with which the proxy process is allowed to exchange messages, while using the policy assigner, an additional security policy is assigned that prohibits the exchange of messages between the proxy process. process and processes not in the process list, wherein the process list includes at least the first process.
В еще одном частном варианте реализации создают прокси-процесс для по меньшей мере двух процессов второй ОС, если между упомянутыми процессами второй ОС присутствует программный интерфейс для обмена сообщениями.In yet another particular implementation, a proxy process is created for at least two second OS processes if there is a messaging API between said second OS processes.
В одном из частных вариантов реализации политики безопасности используют по меньшей мере одну из следующих моделей: базовые операции; конечный автомат; временный автомат; ролевое управление доступом; мандатный контроль целостности; регулярные выражения; дискретные события; мандатные ссылки; темпоральная логика.In one of the private options for implementing security policies use at least one of the following models: basic operations; finite state machine; temporary machine; role-based access control; mandatory integrity control; regular expressions; discrete events; mandate links; temporal logic.
В варианте реализации используется система контроля доставки сообщений, передаваемых между процессами из разных ОС, реализуемая компьютером, включающим память и функционально связанный с памятью по меньшей мере один процессор, выполненный с возможностью осуществлять следующие средства: средство создания процесса, предназначенное для создания прокси-процесса в первой ОС, предназначенного для обмена сообщениями между по меньшей мере первым процессом в первой ОС и вторым процессом во второй ОС и обладающего программным интерфейсом, соответствующим программному интерфейсу второго процесса, при этом первая ОС и вторая ОС - это операционные системы, установленные в разных вычислительных средах; средство назначения политик, предназначенное для назначения по меньшей мере одной политики безопасности созданному прокси-процессу для контроля доставки сообщений, связанных с упомянутым прокси-процессом, где заданный программный интерфейс служит для передачи упомянутых сообщений, при этом упомянутые политики сохраняют в базу политик безопасности, которая хранится в памяти; сформированный монитор безопасности, предназначенный для осуществления контроля доставки сообщений между по меньшей мере первым и вторым процессами путем контроля доставки сообщений, связанных с упомянутым прокси-процессом, на основании политик безопасности из базы политик безопасности.In an embodiment, a system is used to control the delivery of messages transmitted between processes from different OS, implemented by a computer that includes memory and is functionally associated with memory at least one processor, configured to implement the following means: a process creation tool designed to create a proxy process in the first OS, designed for messaging between at least the first process in the first OS and the second process in the second OS and having a programming interface corresponding to the programming interface of the second process, while the first OS and the second OS are operating systems installed in different computing environments ; a policy assigner for assigning at least one security policy to the created proxy process to control the delivery of messages associated with said proxy process, where the given API is used to transmit said messages, said policies being stored in a security policy database, which stored in memory; a generated security monitor for monitoring the delivery of messages between at least the first and second processes by monitoring the delivery of messages associated with said proxy process based on security policies from the security policy database.
В одном из частных вариантов реализации контроль доставки сообщения включает по меньшей мере разрешение или запрет доставки сообщения.In one particular implementation, message delivery control includes at least allowing or denying delivery of the message.
В другом частном варианте реализации сообщения включают по меньшей мере одно из: запрос на запуск процесса, запрос и ответ на осуществление межпроцессного взаимодействия, запрос процесса к монитору безопасности.In another particular implementation, the messages include at least one of: a request to start a process, a request and response to interprocess communication, a process request to a security monitor.
В еще одном частном варианте реализации вторая ОС является одной из по меньшей мере следующих: гостевой ОС, работающей на виртуальной машине под управлением первой ОС на компьютере; гостевой ОС, работающей на виртуальной машине, при этом первая ОС является второй гостевой ОС, работающей на второй виртуальной машине и связанной с первой виртуальной машиной посредством гипервизора; второй ОС на втором компьютере, который связан с компьютером, на котором функционирует первая ОС, по сети.In another particular implementation, the second OS is one of at least the following: a guest OS running on a virtual machine running the first OS on the computer; a guest OS running on a virtual machine, wherein the first OS is a second guest OS running on a second virtual machine and associated with the first virtual machine via a hypervisor; a second OS on a second computer that is connected to the computer running the first OS via a network.
В одном из частных вариантов реализации система дополнительно содержит средство формирования, предназначенное для формирования монитора безопасности в первой ОС.In one of the private implementation options, the system further comprises a generating tool for generating a security monitor in the first OS.
В одном из частных вариантов реализации средство формирование предназначено для формирования монитора безопасности с учетом особенностей архитектуры первой ОС, в частности с учетом созданного прокси-процесса, а также с учетом назначенных прокси-процессу политик безопасности из базы политик.In one of the private implementation options, the generation tool is designed to generate a security monitor taking into account the architecture features of the first OS, in particular, taking into account the created proxy process, as well as taking into account the security policies assigned to the proxy process from the policy base.
В другом частном варианте реализации средство формирование предназначено для формирования монитора безопасности путем создания кода монитора безопасности, включающего один из: исходный код, промежуточный код, исполняемый код.In another particular implementation, the generation tool is designed to generate a security monitor by creating a security monitor code, including one of: source code, intermediate code, executable code.
В одном из частных вариантов реализации при контроле доставки сообщений, монитор безопасности предназначен для использования программного интерфейса прокси-процесса для определения разрешенных сообщений для прокси-процесса, при этом средство назначения политик дополнительно предназначено для задания списка разрешенных сообщений в соответствии с программным интерфейсом и назначения политики безопасности, запрещающей доставку сообщений от прокси-процесса в случае, если монитором безопасности была зафиксирована попытка доставки сообщений, отсутствующих в списке разрешенных.In one particular implementation in message delivery control, the security monitor is designed to use the proxy process API to determine the allowed messages for the proxy process, while the policy assigner is additionally designed to set the list of allowed messages according to the API and assign the policy security that prohibits the delivery of messages from a proxy process if the security monitor has detected an attempt to deliver messages that are not on the allowed list.
В другом частном варианте реализации при контроле доставки сообщений, монитор безопасности предназначен для использования программного интерфейса прокси-процесса для определения перечня процессов, с которыми разрешен обмен сообщениями прокси-процессу, при этом с помощью средства назначения политик дополнительно назначают политику безопасности, запрещающую обмен сообщениями между прокси-процессом и процессами, отсутствующими в перечне процессов, при этом перечень процессов включает по меньшей мере первый процесс.In another particular implementation, when controlling message delivery, the security monitor is designed to use the proxy process API to determine the list of processes with which the proxy process is allowed to exchange messages, while using the policy assigner, an additional security policy is assigned that prohibits the exchange of messages between a proxy process and processes not in the process list, wherein the process list includes at least the first process.
В еще одном частном варианте реализации средство создания процесса предназначено для создания прокси-процесс для по меньшей мере двух процессов второй ОС, если между упомянутыми процессами второй ОС присутствует программный интерфейс для обмена сообщениями.In yet another particular implementation, the process creator is designed to create a proxy process for at least two second OS processes if there is a messaging API between said second OS processes.
В одном из частных вариантов реализации политики безопасности используют по меньшей мере одну из следующих моделей: базовые операции; конечный автомат; временный автомат; ролевое управление доступом; мандатный контроль целостности; регулярные выражения; дискретные события; мандатные ссылки; темпоральная логика.In one of the private options for implementing security policies use at least one of the following models: basic operations; finite state machine; temporary machine; role-based access control; mandatory integrity control; regular expressions; discrete events; mandate links; temporal logic.
Краткое описание чертежей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-1e show diagrams of interprocess communication using a security monitor using an operating system with a microkernel architecture as an example.
На Фиг. 2а представлена система формирования монитора безопасности.On FIG. 2a shows the security monitor generation system.
На Фиг. 2б представлена система контроля доставки сообщений межпроцессного взаимодействия, передаваемых между первым и вторым процессами.On FIG. 2b shows a delivery control system for interprocess communication messages passed between the first and second processes.
На Фиг. 3а представлен вариант реализации настоящего изобретения на примере второй ОС, являющейся гостевой ОС, работающей на виртуальной машине под управлением первой ОС на компьютере.On FIG. 3a shows an embodiment of the present invention using a second OS as a guest OS running on a virtual machine running the first OS on the computer.
На Фиг. 3б представлен пример создания прокси-процессов для виртуальной машины и доменов безопасности гостевой ОС.On FIG. Figure 3b shows an example of creating proxy processes for a virtual machine and guest OS security domains.
На Фиг. 4 представлен способ контроля доставки сообщений, передаваемых между первым и вторым процессами.On FIG. 4 shows a method for controlling the delivery of messages passed between the first and second processes.
Фиг. 5 представляет пример компьютерной системы общего назначения. Fig. 5 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.
Операция - элементарное действие, выполняемое в рамках рассматриваемого процесса (в качестве операции может выступать, например, 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.
Домен безопасности (англ. security domain) — часть автоматизированной системы, которая реализует одни и те же политики безопасности.A security domain is a part of an automated system that implements the same security policies.
Конечный автомат (англ. 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, которые взаимодействуют между собой за счет межпроцессного взаимодействия, а также с ядром ОС 110 посредством программных интерфейсов путем обмена сообщений 140 (также сообщения межпроцессного взаимодействия, IPC-сообщения, на фигуре обозначены стрелкой, начинающейся с точки). Сообщения 140 включают следующие: запрос на запуск 141 процесса 131, запрос 142 от процесса 131 или ответ 143 от другого процесса 132 (например, вызов процессом 131 метода процесса 132), запрос процесса 132 к монитору безопасности 120 (запрос безопасности 144). Стоит отметить, что под сообщениями 140 в настоящем изобретении понимаются сообщения межпроцессного взаимодействия в общем случае, обеспечивающие возможность взаимодействия между различными процессами ОС 100, в том числе процессами 131-132. Монитор безопасности 120 — компонент ОС 100, предназначенный для осуществления контроля доставки упомянутых сообщений 140. Подробности реализации монитора безопасности 120 будут раскрыты далее по тексту. Также сообщения 140 могут включать уведомление об ошибке от ядра ОС 110 в ответ на сообщения 140 от процессов 131-132. При этом упомянутые интерфейсы, реализуемые процессами, представляют собой структуры данных с объявленными в них методами, реализующими функционал соответствующего процесса.On FIG. 1a-1c are diagrams of inter-process communication using
Упомянутые интерфейсы статически описаны, а разрешенные взаимодействия между процессами заданы заранее.The interfaces mentioned are statically defined, and the allowed interactions between processes are predetermined.
Отправка и получение сообщений 140 процессами 131-132 происходят посредством системных вызовов ядра ОС 110.The sending and receiving of messages 140 by processes 131 - 132 occur through OS kernel system calls 110 .
Системные вызовы могут включать следующие:System calls may include the following:
• call() — используется процессом 131 для отправки запроса 142 к процессу 132 и получения ответа 143 на осуществление межпроцессного взаимодействия;• call() is used by process 131 to send a request 142 to process 132 and receive a response 143 for interprocess communication;
• recv() — используется процессом 132 для получения запроса 142;• recv() - used by process 132 to receive request 142 ;
• reply() — используется процессом 132 для отправки ответа 143 процессу 131.• reply() is used by process 132 to send a reply 143 to process 131 .
В частном варианте реализации системный вызов reply() производится в том же потоке процесса, в котором происходил вызов recv().In a particular implementation, the reply() system call is made on the same process thread as the recv() call.
Монитор безопасности 120 реализован с возможностью исполнения на процессоре компьютера, на котором установлена ОС 100 (пример компьютера 20 общего назначения представлен на Фиг. 5). С использованием монитора безопасности 120 осуществляют контроль доставки сообщений 140 с учетом решений 150, принятых на основании политик безопасности из базы политик 121. База политик 121 хранится на машиночитаемом носителе компьютера (в памяти), на котором установлена ОС 100, например на диске 27 компьютера 20 (см. Фиг. 5). Контроль доставки сообщения 140 включает разрешение или запрет доставки сообщения 140 и, соответственно, разрешение или запрет выполнения взаимодействия, осуществляющегося с использованием указанного сообщения 140. Решение 150 о способе контроля доставки сообщения 140 указывает на разрешение или запрет передачи сообщения 140 при выполнении политики безопасности. Решение 150 используется монитором безопасности 120 или его компонентами для осуществления упомянутого контроля доставки сообщений 140 (см. Фиг. 2а). На основании политик безопасности из базы политик 121 могут выносить решение 150 с использованием данных сообщения 140 (например, имени запускаемого процесса или фактических аргументов вызываемого метода процесса).The
Также решение 150 о способе контроля доставки сообщения 140 может зависеть от корректности структуры упомянутого сообщения 140. Таким образом, если сообщение 140 имеет недопустимую структуру, передача указанного сообщения 140 может быть запрещена. В этом случае допустимые структуры сообщений 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 140 can be defined using the declarative description of the interface of the receiving process of message 140 . The referenced structure may contain a message size 140 , valid arguments and other valid message options 140 .
В одном частном варианте реализации монитор безопасности 120 может быть частью ядра ОС 110 или отдельным приложением, исполняющимся на процессоре компьютера. В другом частном варианте реализации монитор безопасности 120 исполняется на процессоре компьютера в привилегированном режиме ядра ОС 110.In one particular implementation, the
В частном варианте реализации ОС 100 дополнительно включает сервис аудита 133, предназначенный для записи в журнал результатов контроля доставки сообщений 140. При этом контроль доставки сообщения 140 дополнительно включает выполнение аудита с использованием сервиса аудита 133. В еще одном частном варианте реализации монитор безопасности 120 осуществляет контроль доставки сообщений 140 дополнительно с учетом текущего статуса сервиса аудита 133. При этом упомянутый статус указывает на готовность сервиса аудита 133 принимать и сохранять сообщения 140. Например, если процесс 131 выполняет запрос 142 к защищенному ресурсу (через процесс 132), где информация о доступе к защищенному ресурсу всегда должна быть записана в журнал, но при этом статус сервиса аудита 133 указывает на то, что сервис аудита 133 в данный момент не сохраняет сообщения 140, то такой запрос 142 будет запрещен монитором безопасности 120 согласно политике безопасности.In a particular implementation, the OS 100 further includes an audit service 133 for logging the results of message delivery control 140 . At the same time, the control of message delivery 140 additionally includes performing an audit using the audit service 133 . In yet another particular implementation, the
В еще одном частном варианте реализации ОС 100 содержит контекст монитора безопасности 122, при этом монитор безопасности 120 осуществляет контроль доставки сообщения 140 дополнительно с учетом упомянутого контекста 122, где контекст 122 содержит значения параметров политик безопасности. В другом частном варианте реализации монитор безопасности 120 дополнительно предназначен для изменения контекста 122 с учетом решений 150 на основании политик безопасности из базы политик 121. В частном варианте реализации политики безопасности используют модель конечного автомата, модель мандатного контроля целостности или другие модели для реализации политик безопасности. Подробнее об упомянутых моделях будет раскрыто далее в описании к Фиг. 2а. В зависимости от используемых политиками безопасности упомянутых моделей контекст 122 может содержать различные параметры политик безопасности. Например, для политик безопасности на основе модели мандатного контроля целостности контекст 122 будет содержать значения уровней целостности и уровней доступа к защищаемым объектам. Для политик безопасности на основе конечного автомата контекст 122 будет содержать текущее значение состояния конечного автомата и таблицу переходов конечного автомата. На Фиг. 1б представлен пример контроля доставки разрешенного запроса 142 от процесса 131 к процессу 132 с использованием монитора безопасности 120. Процесс 131 может вызвать метод интерфейса процесса 132, для этого процесс 131 отправляет запрос 142, содержащий входные аргументы вызываемого метода. Процесс 131 отправляет запрос 142 посредством ядра ОС 110, которое в свою очередь передает запрос 142 на проверку монитору безопасности 120. Монитор безопасности 120 выносит решение 150 «разрешено» на основании политик безопасности и передает указанное решение 150 ядру ОС 110. После этого ядро 110 на основании решения 150 передает запрос 142 далее процессу 132.In yet another particular implementation, OS 100 includes a security monitor context 122 , wherein security monitor 120 monitors the delivery of message 140 further based on said context 122 , where context 122 contains security policy parameter values. In another particular implementation, the
В рассматриваемом примере процесс 132 далее отправляет ответ 143 (обратный порядок следования сообщений 140 не указан) процессу 131, где ответ 143 содержит выходные аргументы вызываемого метода. Способ отправки ответа 143 аналогичен способу отправки запроса 142, но в обратном порядке, от процесса 132 к процессу 131. То есть процесс 132 отправляет ответ 143 посредством ядра ОС 110, которое в свою очередь передает ответ 143 на проверку монитору безопасности 120. Монитор безопасности 120 выносит новое решение 150 «разрешено» на основании политик безопасности и передает указанное новое решение 150 обратно ядру ОС 110. После этого ядро 110 на основании нового решения 150 передает ответ 143 далее процессу 131.In this example, process 132 then sends a response 143 (reverse order of messages 140 not specified) to process 131 , where response 143 contains the output arguments of the method being invoked. The method for sending response 143 is similar to the method for 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, в котором монитор безопасности 120 осуществляет контроль доставки запроса 142 путем запрета доставки запроса 142. Процесс 131 отправляет запрос 142 посредством ядра ОС 110, которое в свою очередь передает запрос 142 на проверку монитору безопасности 120. Монитор безопасности 120 выносит решение 150 «запрещено» на основании политик безопасности и передает указанное решение 150 ядру ОС 110. После этого ядро 110 на основании решения 150 направляет уведомление об ошибке процессу 131. При этом запрос 142 не будет передан процессу 132.On FIG. 1c shows an example of monitoring a denied request 142 from process 131 to process 132 in which security monitor 120 controls the delivery of request 142 by denying delivery of request 142 . The process 131 sends a request 142 through the OS kernel 110 , which in turn passes the request 142 to the
На Фиг. 1г представлен пример взаимодействия первого процесса 134, выполняемого в первой ОС 100, со вторым процессом 161, выполняемого во второй ОС 160, посредством канала связи 170, который не контролируется монитором безопасности 120. Для простоты изложения здесь и далее под первой ОС понимается ОС 100 (см. Фиг. 1а). Стоит отметить, что вторая ОС 160 может быть любой ОС, архитектура которой известна из уровня техники, в том числе и операционной системой 100, архитектура которой представлена на Фиг. 1а. Таким образом, первая ОС 100 и вторая ОС 160 могут быть как разными ОС (то есть не обладающими одинаковой архитектурой ОС), так и одинаковыми ОС, а ключевое отличие заключается в том, что первая ОС 100 и вторая ОС 160 установлены в разных вычислительных средах. Так в примерных вариантах реализации первая ОС 100 и вторая ОС 160 могут быть установлены на различных компьютерах, виртуальных машинах или в программно или аппаратно изолированных друг от друга вычислительных средах, которые в свою очередь реализованы с возможностью исполнения на компьютере 20 (см. Фиг. 5). Одним из примеров технологии для изолирования вычислительных сред является технология TrustZone.On theFig. 1g an example of the interaction of the first process is presented134running in the first OS100, with the second process161performed in the second OS160, through a communication channel170, which is not controlled by the security monitor120. For simplicity of presentation, hereinafter, the first OS is the OS100(cm.Fig. 1a). It should be noted that the second OS160 can be any OS whose architecture is known from the prior art, including the operating system100, the architecture of which is shown inFig. 1a. So the first OS100 and second OS160 can be both different OS (that is, not having the same OS architecture) or the same OS, and the key difference is that the first OS100 and second OS160 installed in different computing environments. So in exemplary implementations, the first OS100 and second OS160can be installed on different computers, virtual machines or in software or hardware isolated from each other computing environments, which in turn are implemented with the ability to execute on a computertwenty(cm.Fig. 5). One example of a technology for isolating computing environments is the TrustZone technology.
Таким образом, взаимодействие первого процесса 134 со вторым процессом 161 осуществляется с использованием канала связи 170, например компьютерной сети, транспортного механизма виртуальных машин (например, расширения паравиртуализации VirtIO) и другого канала связи в зависимости от вычислительных сред, на которых установлены первая ОС 100 и вторая ОС 160. Однако, такой способ взаимодействия первого процесса 134 со вторым процессом 161 обладает рядом недостатков, так как доставка сообщений 140, передаваемых между упомянутыми процессами по каналу связи 170, не может быть проконтролирована монитором безопасности 120 на предмет соответствия политике безопасности из базы политик 121. Это влечет за собой снижение безопасности первой ОС 100 при обмене сообщениями 140, передаваемыми между первым 134 и вторым 161 процессами. Таким образом, пример взаимодействия между первым 134 и вторым 161 процессами, представленный на Фиг. 1г не позволяет решить заявленную техническую проблему. В данной связи для решения указанной технической проблемы может быть использовано заявленное изобретение.Thus, the interaction of the first process 134 with the
На Фиг. 1д представлен пример безопасного взаимодействия первого процесса 134 в первой ОС 100 со вторым процессом 161 во второй ОС 160 согласно заявленному изобретению. Стоит отметить, что в общем случае второй процесс 161 может взаимодействовать с несколькими процессами в первой ОС 100, один из которых представлен на фигуре как первый процесс 134. Однако для простоты изложения далее будет рассмотрен только первый процесс 134, взаимодействующий со вторым процессом 161. Как и в предыдущем примере, представленном на Фиг. 1г, первая ОС 100 связана со второй ОС 160 посредством канала связи 170, который не контролируется монитором безопасности 120. Вторая ОС 160 может быть любой ОС, архитектура которой известна из уровня техники, в том числе и операционной системой 100, архитектура которой представлена на Фиг. 1а. Первая ОС 100 и вторая ОС 160 могут быть установлены на различных компьютерах, виртуальных машинах или в программно или аппаратно изолированных друг от друга вычислительных средах, которые в свою очередь реализованы с возможностью исполнения на компьютере 20 (см. Фиг. 5). Однако второй процесс 161 взаимодействует с первым процессом 134 не напрямую, а посредством заранее созданного прокси-процесса 135. При этом прокси-процесс 135 представлен в первой ОС 100 (но не представлен во второй ОС 160), предназначен для обмена сообщениями 140 со вторым процессом 161 по каналу связи 170 и обладает программным интерфейсом, соответствующим программному интерфейсу второго процесса 161. В частном варианте реализации при контроле доставки сообщений 140 монитор безопасности 120 использует программный интерфейс прокси-процесса 135 для определения разрешенных сообщений 140 для прокси-процесса 135. При этом в базе политик 121 заранее определена по меньшей мере одна политика безопасности, запрещающая доставку сообщений 140 от прокси-процесса 135 в случае, если монитором безопасности 120 была зафиксирована попытка доставки сообщений 140, отсутствующих в списке разрешенных. При этом список разрешенных сообщений 140 и соответствующие политики безопасности заранее задают с помощью средства назначения политик 290 при формировании монитора безопасности 120 (см. Фиг. 2а-2б). Таким образом, первый процесс 134 взаимодействует с прокси-процессом 135 посредством отправки сообщений 140 межпроцессного взаимодействия и под контролем монитора безопасности 120, в то время как прокси-процесс 135 связан со вторым процессом 161 по каналу связи 170, при этом монитор безопасности 120 не контролирует канал связи 170.On FIG. 1e shows an example of a secure interaction of the first process 134 in the first OS 100 with the
В предпочтительном варианте реализации во второй ОС 160 каждому второму процессу соответствует свой отдельный прокси процесс. Например, второму процессу 161 соответствует прокси-процесс 135, а третьему процессу 162 соответствует второй прокси-процесс (на фигуре не указан), отличный от прокси-процесса 135. Кроме того, в предпочтительном варианте реализации процессы 161 и 162 не связаны между собой.In the preferred embodiment, in the second OS 160 , each second process has its own separate proxy process. For example, the
При этом в частном варианте реализации во второй ОС 160 второй процесс 161 может быть связан с третьим процессом 162 посредством программного интерфейса для обмена сообщениями 140. В этом примере может использоваться один прокси-процесс 135, единый для обоих упомянутых процессов 161-162. Таким образом, процессы 161-162 образуют единый домен безопасности, взаимодействие с которым происходит посредством одного прокси-процесса 135, что также позволяет контролировать взаимодействие между вторым 161 и третьим 162 процессами второй ОС 160. Стоит отметить, что упомянутый домен безопасности, включающий процессы 161-162, может также включать и большее количество процессов второй ОС 160, не представленных на фигуре. В ином случае, когда во второй ОС 160 могут быть выделены несколько различных доменов безопасности, каждый из которых включает по меньшей мере один второй процесс, то для каждого упомянутого домена безопасности будет определен отдельный прокси-процесс в первой ОС 100.However, in a private implementation in the second OS 160 , the
Использование представленной системы взаимодействия первого 134 и второго 161 процессов позволяет решить указанную техническую проблему и достичь заявленных технических результатов, а именно повысить безопасность ОС при обмене сообщениями 140 межпроцессного взаимодействия, передаваемыми между первым 134 и вторым 161 процессами из разных ОС за счет создания прокси-процесса 135 для отправки и получения сообщений 140 от второго процесса 161, обладающего программным интерфейсом для прокси-процесса 135, а также добавления политики безопасности для контроля доставки сообщений 140, связанных с упомянутым прокси-процессом 135, а также повысить контроль доставки сообщений 140 межпроцессного взаимодействия, передаваемых между первым 134 и вторым 161 процессами. Подробнее о вариантах реализации настоящего изобретения, в частности о создании прокси-процесса 135 и назначении политик безопасности созданному прокси-процессу 135 будет описано далее.The use of the presented system of interaction between the first 134 and second 161 processes allows solving the specified technical problem and achieving the stated technical results, namely, increasing the security of the OS when exchanging interprocess communication messages 140 transmitted between the first 134 and second 161 processes from different OS by creating a proxy process 135 to send and receive messages 140 from a
На Фиг. 2а представлена система формирования монитора безопасности 200. Система формирования монитора безопасности 200 используется для повышения безопасности ОС 100 при обмене сообщениями 140, а также для обеспечения контроля доставки упомянутых сообщений 140 получателям. При этом монитор безопасности 120 может быть использован разработчиками ПО в различных операционных системах 100, а также в любых других компьютерных системах, в которых осуществляется обмен сообщениями 140, в частности в базах данных и в прикладном ПО. Пример такого использования был приведен ранее на Фиг. 1а-1в. Для каждой ОС 100 формируют монитор безопасности 120 с учетом особенностей архитектуры ОС 240, а также с учетом требований безопасности для данной ОС 100, которые выражаются в политиках безопасности. Стоит отметить, что для различных программных и программно-аппаратных систем разработчика на базе ОС 100 (далее — система разработчика) основные объекты архитектуры ОС 240 могут быть общими, например процессы, службы, приложения, драйверы, отвечающие за работу ядра ОС 110 и других компонентов ОС 260. В то же время другие объекты архитектуры ОС 240, отвечающие за функциональность системы разработчика, будут различными для каждой из упомянутых систем. Следовательно, будут различаться и политики безопасности, с использованием которых осуществляется контроль доставки сообщений 140. Системы разработчика могут включать программное обеспечение, а также программно-аппаратные комплексы.On FIG. 2a 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 policy base 121 for storing the security policies needed to control the delivery of messages 140 . System 200 also includes at least one configuration tool 220 , which is configured to configure its corresponding checker 221 based on the security policies received from generator 210 . The verification 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 the programming interface of said process, while 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 the processing process events);
• перечень программных интерфейсов для каждого процесса, при этом могут быть указаны соответствующие методы интерфейсов, реализующие функционал соответствующего процесса.• a list of programming interfaces for each process, while the corresponding methods of the interfaces 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. A resource is, in particular, a file, a port, or a process. For example, the file system is a resource driver, and the files themselves are resources that the file system 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, this analysis takes into account OS architecture objects 240 that include the processes and applications mentioned. 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 the respective customizer 220 . The builder 210 is also configured to build the
Архитектура ОС 240, база политик 121, а также средства настройки 220 могут быть настроены заранее с использованием средства разработки 250. Для этого средство разработки 250 может предоставлять набор API (англ. application programming interface — программный интерфейс приложения) или готовые модули для разработки ПО. При этом под интерфейсом далее понимается интерфейс процессов, описанный ранее, а для программного интерфейса приложения будет использовано сокращение API. В частном варианте реализации по меньшей мере часть архитектуры ОС 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 may 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
Описание политик безопасности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 from the policy base 121 can be defined using a specification language such as PSL (policy specification language). In the PSL example, the mandatory integrity control is defined 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 allows a request 142 from process 131 to process 132 , then the analysis of this security policy will determine the specified processes 131 - 132 and information about the allowed 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 policies will check the condition that the exchange of messages 140 between certain processes uses the specified process interfaces and specified methods of the interfaces.
На примере языка PSL, с использованием которого могут быть заданы политики безопасности в базе политик 121, указание на процесс 131, являющийся источником запроса 142, может содержаться в переменной scr. Указание на процесс 132, являющийся получателем запроса 142 может содержаться в переменной dst. Соответственно, именно упомянутый анализ политики безопасности, написанной на языке PSL, позволит определить указанные объекты архитектуры ОС, для которых будет применяться указанная политика безопасности.Using the example of PSL, which can be used to set security policies in the policy base 121 , the process 131 that is the source of the request 142 can be referenced 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 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.
В другом частном варианте реализации анализ политик безопасности также включает проверку типов объектов архитектуры ОС 240, а также анализ на ошибки в политиках безопасности.In another particular implementation, the analysis of security policies also includes checking the types of OS architecture objects 240 , as well as analyzing for errors in security policies.
Результаты упомянутого анализа учитываются при формировании монитора безопасности 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 code of the
Политики безопасности могут использовать базовые операции, разрешающие или запрещающие передачу сообщения 140 при условии совпадения параметров сообщения 140 (например, имя запускаемого процесса или фактические аргументы вызываемого метода) с данными, указанными в политике безопасности. Например, политика безопасности может определить, что процесс 131 может получать любые сообщения 140, но при этом процессу 131 запрещено отправлять сообщения 140.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 140 , but that process 131 is prohibited from sending messages 140 .
Политики безопасности также могут использовать конечный автомат, где политика безопасности определяет разрешение или запрет доставки сообщения 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), является частным случаем конечных автоматов. В данной модели дополнительно для каждого сообщения 140 задают параметр времени (таймер), равный времени с момента последнего получения этого сообщения 140. Например, переход из одного состояния конечного автомата в другое состояние может быть осуществлен, если сообщение 140 было получено спустя время, определенное таймером.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 140 , a time parameter (timer) is set equal to the time since the last receipt of this message 140 . For example, a transition from one state of the state machine to another state can be performed if the message 140 was received after the time specified by the timer.
Модель мандатного контроля целостности (англ. Mandatory integrity control) используется для разрешения или запрета доставки сообщения 140. Согласно модели мандатного контроля целостности с использованием монитора безопасности 120 объектам архитектуры ОС 240, участвующим в передаче сообщения 140, например процессам 131-132, ставят в соответствие два числа, называемые уровнем целостности (англ. Integrity level) и уровнем доступа. При этом для разрешения доставки сообщения 140 от одного объекта к другому используются политики безопасности на основе мандатного контроля целостности, то есть использующие значения уровней целостности и уровней доступа объектов. Например, может быть использована политика безопасности, согласно которой одному объекту разрешено обращаться к другому объекту, если значение уровня доступа первого объекта не ниже значения уровня целостности другого. На языке спецификаций PSL для модели мандатного контроля целостности задают уровни целостности и уровни доступа. Таким образом, для задания уровней целостности определяют объект политик integrity, являющийся экземпляром класса Mandatory_integrity_control:The Mandatory integrity control model is used to allow or deny message delivery 140 . According to the model of mandatory integrity control using a security monitor, 120 OS architecture objects 240 participating in message transmission 140 , for example, processes 131 - 132 , are assigned two numbers, called the Integrity level and the access level. At the same time, to allow the delivery of message 140 from one object to another, security policies are used based on mandatory integrity control, that is, using the values of integrity levels and access levels of objects. For example, a security policy may be used, according to which one object is allowed to access another object if the value of the access level of the first object is not lower than the value of the integrity level of the other. In the PSL specification language, integrity levels and access levels are specified for the mandatory integrity control model. Thus, to set integrity levels, an integrity policy object is defined, which is an instance of the Mandatory_integrity_control class:
В конфигурации объекта политик integrity будут заданы три уровня целостности: LOW (низкий), MEDIUM (средний) и HIGH (высокий) — в порядке возрастания. То есть LOW < MEDIUM < HIGH.In the integrity policy object configuration, three levels of integrity will be set: 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 view 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 a 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 can 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. Установка ПО из образа ПО возможна только в том случае, если подтверждена целостность образа ПО. Данное свойство можно записать в виде формулы: Property 2: Installing software from a software image is possible only if the integrity of the software image is confirmed. 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 said system, the discrete event model is the resulting finite state machine, which is specified by combining a set of finite state machines, each of which describes a separate component of the system. For each finite 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 using a state machine, and the second class of policies may consist of security policies using 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 осуществляет контроль доставки сообщения 140 дополнительно с учетом упомянутого контекста 122, где контекст монитора безопасности 122 содержит значения параметров политик безопасности. В другом частном варианте реализации монитор безопасности дополнительно предназначен для изменения контекста 122 с учетом решений 150 на основании политик безопасности. В зависимости от используемых политиками безопасности упомянутых моделей контекст 122 может содержать различные параметры политик безопасности. Например, для политик безопасности на основе модели мандатного контроля целостности контекст 122 будет содержать значения уровней целостности и уровней доступа к защищаемым объектам. Для политик безопасности на основе конечного автомата контекст 122 будет содержать текущее значение состояния конечного автомата и таблицу переходов конечного автомата.In another particular implementation, using the generator 210 , the context of the security monitor 122 is additionally included in 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 checker 221 includes generating code that makes a decision 150 upon request of the
В частном варианте реализации монитор безопасности 120 осуществляет контроль доставки сообщения 140 дополнительно с учетом решений 150 на основании политик безопасности, связанных с упомянутыми сообщениями 140.In a particular implementation, the
На Фиг. 2б представлена система контроля доставки сообщений межпроцессного взаимодействия, передаваемых между первым 134 и вторым 161 процессами. Для осуществления контроля доставки сообщений 140, передаваемых между первым 134 и вторым 161 процессами, может быть использована система формирования монитора безопасности 200 (Фиг. 2а) для формирования монитора безопасности 120 для первой ОС 100. Таким образом система контроля доставки сообщений 201 использует систему формирования монитора безопасности 200, при этом дополнительно включает средство создания процесса 280 и средство назначения политик 290.On FIG. 2b shows a delivery control system for interprocess communication messages passed between the first 134 and second 161 processes. To control the delivery of messages 140 passed between the first 134 and second 161 processes, the security monitor generation system 200 ( FIG. 2a ) can be used to generate the
Стоит отметить, что описанные средства и модули, в частности средства настройки 220, средство формирования 210, средство разработки 250, средство создания процесса 280, средство назначения политик 290, реализованы с возможностью исполнения на процессоре компьютера (см. Фиг. 5). При этом база политик 121, архитектура первой ОС 241, модули проверки 221 содержатся в памяти компьютера.It is worth noting that the described tools and modules, in particular the configuration tools 220 , the generation tool 210 , the
Средство создания процесса 280 предназначено для создания прокси-процесса 135 для второго процесса 161, где прокси-процесс 135 предназначен для обмена сообщениями 140 со вторым процессом 161 во второй ОС 160 и обладает программным интерфейсом, соответствующим программному интерфейсу второго процесса 161. При этом информацию о втором процессе 161, в частности о его программных интерфейсах, средство создания процесса 280 получает от средства разработки 250.The process creator 280 is designed to create a proxy process 135 for the
Таким образом, информация о созданном первом процессе 134, взаимодействующим со вторым процессом 161 во второй ОС 160, будет добавлена в архитектуру первой ОС 241 средством создания процесса 280. Средство назначения политик 290 предназначено для назначения политик безопасности созданному прокси-процессу 135 для контроля доставки сообщений 140, связанных с упомянутым прокси-процессом 135, где упомянутые сообщения 140 передают по заданному программному интерфейсу. При этом назначенные прокси-процессу 135 политики безопасности будут сохранены в базу политик 121. После формирования монитор безопасности 120 будет осуществлять контроль доставки сообщений 140 между первым 134 и вторым 161 процессами, при этом сообщения 140 связаны с упомянутым прокси-процессом 135, а упомянутый контроль осуществляется с учетом политики безопасности, назначенной средством назначения политик 290.Thus, information about the created first process 134 interacting with the
В частном варианте реализации монитор безопасности 120 при контроле доставки сообщений 140 использует программный интерфейс прокси-процесса 135 для определения разрешенных сообщений 140 для прокси-процесса 135. При этом с помощью средства назначения политик 290 определяют политику безопасности, запрещающую доставку сообщений 140 от прокси-процесса 135 в случае, если была зафиксирована попытка доставки сообщений 140, отсутствующих в списке разрешенных. Список разрешенных сообщений 140 и соответствующие политики безопасности заранее задают с помощью средства назначения политик 290 при формировании монитора безопасности 120. В еще одном частном варианте реализации при контроле доставки сообщений 140 монитор безопасности 120 использует программный интерфейс прокси-процесса 135 для определения перечня процессов, с которыми разрешен обмен сообщениями 140 прокси-процессу 135. При этом перечень процессов включает по меньшей мере первый процесс 134. При этом с помощью средства назначения политик 290 дополнительно назначают политику безопасности, запрещающую обмен сообщениями 140 между прокси-процессом 135 и процессами, отсутствующими в упомянутом перечне. Допустимые структуры разрешенных сообщений 140 могут быть определены с использованием декларативного описания интерфейса второго процесса 161. Такие структуры могут содержать размер сообщения 140, допустимые аргументы и другие допустимые параметры сообщения 140.In a particular implementation, the
Таким образом, с использованием настоящего изобретения для реализации межпроцессных взаимодействий второго процесса 161 с первым процессом 134 создают прокси-процесс 135, реализующий все программные интерфейсы второго процесса 161, и назначают политики безопасности для созданного прокси-процесса 135 для контроля доставки сообщений 140 между вторым 161 и первым 134 процессами по разрешенным интерфейсам. Настоящее изобретение позволяет монитору безопасности 120 осуществить контроль доставки сообщений 140 между вторым 161 и первым 134 процессами путем контроля доставки сообщений 140, связанных с упомянутым прокси-процессом 135, с учетом политики безопасности, даже несмотря на наличие небезопасного канала связи 170. За счет этого заявленное изобретение решает указанную техническую проблему и достигает заявленных технических результатов.Thus, using the present invention to implement inter-process communications of the
В еще одном частном варианте реализации для процессов 161-162 второй ОС 160, между которыми присутствует программный интерфейс для обмена сообщениями 140, с помощью средства создания процесса 280 создают один прокси-процесс 135, единый для обоих упомянутых процессов 161-162. Стоит отметить, что в случае, если процессы 161-162 не связаны между собой, то есть являются отдельными доменами безопасности, для каждого из них будет создан отдельный прокси-процесс. Например, для второго процесса 161 будет создан прокси-процесс 135 для взаимодействия с первым процессом 134. А для третьего процесса 162 будет создан другой прокси-процесс (на фигуре не указан) для взаимодействия с другим процессом (на фигуре не указан) в первой ОС 100.In another particular implementation, for processes 161 - 162 of the second OS 160 between which there is a programming interface for messaging 140 , using the process creation tool 280 , one proxy process 135 is created, which is the same for both mentioned processes 161 - 162 . It is worth noting that if processes 161 - 162 are not related to each other, that is, they are separate security domains, a separate proxy process will be created for each of them. For example, for the second process 161 a proxy process 135 will be created to interact with the first process 134 . And for the
В частном варианте реализации вторая ОС 160 является одной из:In a particular implementation, the second OS 160 is one of:
гостевой ОС, работающей на виртуальной машине под управлением первой ОС 100 на компьютере;a guest OS running on a virtual machine running the first OS 100 on the computer;
гостевой ОС, работающей на виртуальной машине, при этом первая ОС 100 является второй гостевой ОС, работающей на второй виртуальной машине и связанной с первой виртуальной машиной посредством гипервизора;a guest OS running on a virtual machine, wherein the first OS 100 is a second guest OS running on a second virtual machine and associated with the first virtual machine via a hypervisor;
второй ОС 160 на втором компьютере, который связан с компьютером, на котором функционирует первая ОС 100, по сети или посредством других каналов связи 170.the second OS 160 on a second computer that is connected to the computer running the first OS 100 via a network or other communication channels 170 .
В частном варианте реализации, когда второй процесс 161 содержит более одного потока выполнения, для каждого потока второго процесса 161 создают соответствующий поток в прокси-процессе 135. В этом случае поток второго процесса 161, который осуществляет обмен сообщениями межпроцессного взаимодействия, выполняет вызов метода драйвера канала связи 170 (путем системного вызова операций ввода-вывода, например, ioctl), который в свою очередь уведомляет прокси-процесс 135 о необходимости создания потока в прокси-процессе 135 для обмена сообщениями межпроцессного взаимодействия с соответствующим потоком второго процесса 161. После завершения обмена сообщениями 140 между потоками второго процесса 161 и прокси-процесса 135, второй процесс 161, путем вызова метода драйвера канала связи 170, уведомляет прокси-процесс 135 о завершении обмена сообщениями 140 с ним. После этого прокси-процесс 135 завершает выполнение соответствующего потока в прокси-процессе 135.In a particular implementation, when the
Драйвер канала связи 170 предназначен для установления канала связи 170 между вторым процессом 161 и прокси-процессом 135, управления потоками для прокси-процесса 135, для реализации вызовов call(), recv(), reply(), причем программный интерфейс прокси-процесса 135 соответствует интерфейсу второго процесса 161, а также для доставки сообщений 140 от второго процесса 161 соответствующему потоку прокси-процесса 135.The communication channel driver 170 is designed to establish a communication channel 170 between the
Стоит также отметить, что при создании прокси-процессов, например, прокси-процесса 135, для различных процессов второй ОС 160 может быть использован общий шаблон прокси-процесса, однако для различных процессов второй ОС 160 в соответствующем прокси-процессе будет реализован программный интерфейс, соответствующий интерфейсу второго процесса 161. Таким образом, использование общего шаблона прокси-процесса повышает безопасность заявленного изобретения за счет возможности более детальной проверки кода указанного шаблона, а также использования общих политик безопасности. При этом несмотря на то, что некоторые политики безопасности для различных процессов второй ОС 160 будут одинаковыми, часть политик безопасности будет отличаться.It is also worth noting that when creating proxy processes, for example, proxy process 135 , a common proxy process template can be used for different processes of the second OS 160 , however, for different processes of the second OS 160 , a programming interface will be implemented in the corresponding proxy process, corresponding to the interface of the
На Фиг. 3а представлен вариант реализации настоящего изобретения на примере второй ОС 160, являющейся гостевой ОС, работающей на виртуальной машине под управлением первой ОС 100 на компьютере (пример компьютера 20 общего назначения представлен на Фиг. 5). В рассматриваемом примере в первой ОС 100 установлен гипервизор 303, являющийся модулем (сервисом) ядра ОС 110 и управляющий виртуальными машинами 301-302. Упомянутые виртуальные машины 301-302 являются приложениями первой ОС 100, исполняющиеся в пространстве пользователя на процессоре компьютере. Гипервизор 303 может использовать любую известную из уровня техники систему виртуализации для обеспечения работы виртуальных машин. Примером гипервизора 303 является Kaspersky Secure Hypervisor (KSH) — безопасная система виртуализации на базе гипервизора второго типа, где первая ОС 100 (например, KasperskyOS) выступает в роли хост-машины. В данном случае гипервизор 303 экспортирует компонентный интерфейс, который используется виртуальными машинами 301-302 для управления сессиями, виртуальными процессорами, памятью и низкоуровневым пробросом устройств. Кроме виртуальных машин в первой ОС 100 могут функционировать другие приложения 331-332. В предпочтительном варианте реализации упомянутые приложения 331-332 и виртуальные машины 301-302 содержат по одному процессу, но также могут быть реализованы с использованием нескольких процессов и исполняются на процессоре компьютера.On FIG. 3a illustrates an embodiment of the present invention with a second OS 160 as a guest OS running on a virtual machine running the first OS 100 on a computer (an example of a general purpose computer 20 is shown in FIG. 5 ). In the example under consideration, the hypervisor 303 is installed in the first OS 100 , which is a module (service) of the kernel of the OS 110 and manages virtual machines 301 - 302 . Said virtual machines 301 - 302 are applications of the first OS 100 running in user space on the computer's processor. The hypervisor 303 may use any virtualization system known in the art to provide virtual machines. An example of a hypervisor 303 is Kaspersky Secure Hypervisor (KSH), a secure virtualization system based on a type 2 hypervisor, where the first OS 100 (eg, KasperskyOS) acts as the host machine. In this case, the hypervisor 303 exports a component interface that is used by virtual machines 301 - 302 to manage sessions, virtual processors, memory, and low-level device forwarding. In addition to the virtual machines, other applications 331-332 may be running on the first OS 100 . In the preferred embodiment, said applications 331-332 and virtual machines 301-302 each contain a single process, but can also be implemented using multiple processes and run on a computer processor.
В контексте приложения виртуальной машины 301 создают виртуальную машину с гостевой ОС 310, под управлением которой работают гостевые функциональные компоненты, реализованные с использованием гостевых процессов и приложений. В качестве примера в гостевой ОС 310 созданы приложения 311-314, разделенные на два домена безопасности 315-316. В общем случае функциональные компоненты гостевой ОС 310 могут работать в различных доменах безопасности, при этом гостевая ОС 310 обеспечивает изоляцию упомянутых доменов безопасности, а гипервизор 303 обеспечивает изоляцию гостевой ОС 310 от виртуальных машин, представленных приложениями 317-318. Аналогичным образом в контексте приложения виртуальной машины 302 создают виртуальную машину с гостевой ОС 320.In the application context of the virtual machine 301 , a virtual machine is created with a guest OS 310 running guest functional components implemented using guest processes and applications. As an example, guest OS 310 creates applications 311-314 divided into two security domains 315-316 . In general, the functional components of the guest OS 310 may operate in different security domains, with the guest OS 310 isolating said security domains and the hypervisor 303 isolating the guest OS 310 from the virtual machines represented by applications 317-318 . Similarly, in the application context of virtual machine 302 , a virtual machine with guest OS 320 is created.
Доставка сообщений 140 межпроцессного взаимодействия от различных доменов безопасности 315-316 гостевой ОС 310, а также от приложения виртуальной машины 301, являющегося отдельным доменом безопасности, контролируются монитором безопасности 120 первой ОС 100 независимо с использованием созданных прокси-процессов для каждого домена безопасности. Аналогичным образом монитор безопасности 120 контролирует доставку сообщений 140 от приложения виртуальной машины 302 и доменов безопасности 325-326 гостевой ОС 320. При этом виртуальная машина 301 осуществляет контроль взаимодействия между доменами безопасности 315-316 внутри гостевой ОС 310, контроль собственных политик безопасности внутри виртуальной машины 301, контроль доступа к оборудованию гостевой ОС 310, контроль управления потоками данных для эмулируемых устройств и другие взаимодействия внутри гостевой ОС 310.The delivery of IPC messages 140 from the various security domains 315-316 of the guest OS 310 as well as from the virtual machine application 301 that is a separate security domain are controlled by the
Взаимодействия, контролируемые модулем безопасности 120, обозначены на Фиг. 3а сплошной линией со стрелками. А взаимодействия, неконтролируемые монитором безопасности 120, обозначены штриховой линией — например, взаимодействия между гипервизором 303 и виртуальными машинами 301-302, требующие привилегированного режима ядра ОС 100, которые невозможно реализовать в пользовательском режиме в приложениях виртуальных машин 301-302. При этом взаимодействия между различными виртуальными машинами 301-302 также контролируются монитором безопасности 120.The interactions controlled by the
На Фиг. 3б представлен пример создания прокси-процессов для виртуальной машины 301 и доменов безопасности гостевой ОС 310. Так, будут созданы прокси-процесс 341 для домена безопасности 315 и прокси-процесс 342 для домена безопасности 316. Созданные прокси-процессы 341-342 взаимодействуют с другими процессами первой ОС 100 посредством сообщений межпроцессного взаимодействия 140, доставка которых контролируется монитором безопасности 120. При этом виртуальная машина 301, будучи отдельным доменом безопасности и процессом первой ОС 100, взаимодействует с другими процессами первой ОС 100 посредством сообщений 140, доставка которых также контролируется монитором безопасности 120. То есть для виртуальной машины 301 не требуется создание отдельного прокси-процесса. Также стоит отметить, что созданные прокси-процессы 341-342 будут обладать программными интерфейсами, которые соответствуют программным интерфейсам домена безопасности 315 и домена безопасности 316 соответственно.On FIG. 3b shows an example of creating proxy processes for virtual machine 301 and guest OS security domains 310 . Thus, a proxy process 341 for the security domain 315 and a proxy process 342 for the security domain 316 will be created. The created proxy processes 341 - 342 communicate with other processes of the first OS 100 via inter-process communication messages 140 , the delivery of which is controlled by the
Как упоминалось ранее, отправка и получение сообщений 140 процессами первой ОС 100 происходят посредством системных вызовов ядра ОС 110 и по заданным программным интерфейсам.As mentioned earlier, sending and receiving messages140 processes first OS100occur through system calls to the OS kernel110 and according to the given programming interfaces.
Системные вызовы могут включать следующие:System calls may include the following:
• call() — используется процессом 131 для отправки запроса 142 к процессу 132 и получения ответа 143 на осуществление межпроцессного взаимодействия;• call() is used by process 131 to send a request 142 to process 132 and receive a response 143 for interprocess communication;
• recv() — используется процессом 132 для получения запроса 142;• recv() - used by process 132 to receive request 142 ;
• reply() — используется процессом 132 для отправки ответа 143 процессу 131.• reply() is used by process 132 to send a reply 143 to process 131 .
В частном варианте реализации системный вызов reply() производится в том же потоке процесса, в котором происходил вызов recv().In a particular implementation, the reply() system call is made on the same process thread as the recv() call.
Для идентификации получателя и отправителя сообщений 140 в гостевой ОС 310 могут быть использованы уникальные идентификаторы, значения которых равны значениям дескрипторов процессов, используемых прокси-процессами 341-342 для обмена сообщениями 140 в первой ОС 100.To identify the recipient and sender of messages 140 in the guest OS 310 , unique identifiers can be used, the values of which are equal to the values of the process descriptors used by the proxy processes 341 - 342 to exchange messages 140 in the first OS 100 .
В предпочтительном варианте реализации сообщения 140, формируемые вторым, а также другими процессами гостевой ОС 310 (в данном примере — доменами безопасности 315-316 и приложением виртуальной машины 301), представлены в формате сообщений 140, передаваемых в первой ОС 100. В этом случае соответствующие прокси-процессы 341-342, получив сообщения 140 от процессов гостевой ОС 310, являющейся второй ОС 160 (домены безопасности 315-316), осуществят дальнейшую отправку сообщений 140 соответствующим процессам 351-352 первой ОС 100 без изменения. В другом варианте реализации, когда формат сообщений 140 от процессов второй ОС 160 отличен от формата сообщений 140, прокси-процесс осуществит преобразование сообщений 140 от процессов второй ОС 160 в формат сообщений 140.In the preferred embodiment, the messages 140 generated by the second, as well as other processes of the guest OS 310 (in this example, security domains 315 - 316 and the virtual machine application 301 ), are in the format of messages 140 transmitted in the first OS 100 . In this case, the corresponding proxy processes 341 - 342 , having received messages 140 from the processes of the guest OS 310 , which is the second OS 160 (security domains 315 - 316 ), will further send messages 140 to the corresponding processes 351 - 352 of the first OS 100 without change. In another embodiment, when the message format 140 from the processes of the second OS 160 is different from the message format 140 , the proxy process will convert the messages 140 from the processes of the second OS 160 to the message format 140 .
При обращении второго процесса, например домена безопасности 315 в гостевой ОС 310, к процессу 351 первой ОС 100, домен безопасности 315 получает дескриптор процесса 351 и отправляет сообщение 140 прокси-процессу 341 по каналу связи 170 (удаленный вызов call()). При этом домен безопасности 315 переходит в спящее состояние (англ. sleep) до момента получения сообщения reply() от прокси-процесса 341. Прокси-процесс 341, получив указанное сообщение, преобразовывает его в сообщение 140 и отправляет сообщение 140 процессу 351 с использованием системного вызова ядра ОС 100. При этом доставка сообщения 140 будет проконтролирована монитором безопасности 120 с использованием политик безопасности, назначенных для прокси-процесса 341 и процесса 351. Отправка сообщений 140 от процесса 351 домену безопасности 315 происходит аналогичным образом посредством прокси-процесса 341 и под контролем монитора безопасности 120. После получения сообщения 140 домен безопасности 315 выходит из спящего состояния и завершает вызов call().When a second process, such as security domain 315 in guest OS 310 , calls process 351 of first OS 100 , security domain 315 obtains a handle to process 351 and sends a message 140 to proxy process 341 over communication channel 170 (remote call()). In this case, the security domain 315 goes into a sleep state until the reply() message is received from the proxy process 341 . The proxy process 341 , upon receiving the specified message, transforms it into a message 140 and sends the message 140 to the process 351 using the OS kernel system call 100 . In this case, the delivery of the message 140 will be controlled by the
Стоит отметить, что упомянутое взаимодействие осуществляется посредством программных интерфейсов домена безопасности 315 и соответствующего программного интерфейса прокси-процесса 341. Программный интерфейс домена безопасности 315 получает набор дескрипторов, необходимых для обмена сообщениями 140, значения которых соответствуют дескрипторам прокси-процесса 341. Поток выполнения домена безопасности 315 производит вызов recv() по указанному интерфейсу к прокси-процессу 341, после чего указанный поток выполнения переходит в спящий режим. Вызов recv() потока выполнения домена безопасности 315 приводит к системному вызову recv() ядра первой ОС 110, который инициирует прокси-процесс 341. После этого прокси-процесс 341 также переходит в спящий режим. После того, как прокси-процесс 341 получает вызов call() от домена безопасности 315 (например, от другого потока выполнения), прокси-процесс 341 выходит из спящего состояния, а полученные ранее при вызове recv() данные отправляет домену безопасности 315 по соответствующему программному интерфейсу. Домен безопасности 315 также выходит из спящего состояния и получает данные, полученные в вызове recv() от прокси-процесса 341. Домен безопасности 315 в том же потоке, в котором производил вызов recv(), производит обработку вызова и отправляет данные, используя вызов reply(). Прокси-процесс 341, получив указанные данные, отправляет их домену безопасности 315. Для осуществления многопоточного обмена сообщениями 140 между вторым процессом (доменом безопасности 315) и прокси-процессом 341, для каждого потока второго процесса создается советующий поток прокси-процесса.It is worth noting that said interaction takes place via the security domain APIs 315 and the corresponding proxy process APIs 341 . The security domain API 315 receives a set of handles required for the exchange of messages 140 , whose values correspond to the handles of the proxy process 341 . The thread of execution of the security domain 315 makes a call to recv() on the specified interface to the proxy process 341 , after which the specified thread of execution enters sleep mode. The call to recv() of the thread of execution of the security domain 315 results in the system call recv() of the kernel of the first OS 110 , which initiates the proxy process 341 . After that, the proxy process 341 also goes to sleep. After the proxy process 341 receives a call() call from the security domain 315 (for example, from another thread of execution), the proxy process 341 wakes up, and sends the data received earlier when calling recv() to the security domain 315 on the appropriate software interface. The security domain 315 also wakes up and receives the data received in the recv() call from the proxy process 341 . The security domain 315 , on the same thread that made the recv() call, handles the call and sends the data using the reply() call. The proxy process 341 receives the specified data and sends it to the security domain 315 . For multi-threaded messaging 140 between the second process (security domain 315 ) and the proxy process 341 , an adviser thread of the proxy process is created for each thread of the second process.
В частном варианте реализации интерфейс прокси-процессов может включать следующие вызовы:In a particular implementation, the proxy process interface may include the following calls:
• method() — предназначен для получения идентификатора потока, дескриптора диапазона разделяемой памяти и смещения в пределах этого дескриптора, обработка указанного метода осуществляется отдельным потоком прокси-процесса;• method() is designed to get the thread ID, shared memory range descriptor and offset within this descriptor, processing of the specified method is performed by a separate thread of the proxy process;
• event() — предназначен для ожидания событий и возвращения описателей событий, обработка указанного метода осуществляется отдельным потоком прокси-процесса, при этом упомянутые события включают ответы на вызовы call() и получение запросов от процессов второй ОС 160 во время ожидания в спящем состоянии на вызов recv().• event() - designed to wait for events and return event handles, the processing of the specified method is carried out by a separate thread of the proxy process, while the mentioned events include responses to call() calls and receiving requests from processes of the second OS 160 while waiting in a sleep state on recv() call.
Упомянутые описатели событий содержат информацию о событии, включая тип события (call(), recv()), идентификатор потока прокси-процесса, в котором произошло событие, дескриптор диапазона разделяемой памяти, в котором были получены данные и др. В случае, когда в буфере событий отсутствуют элементы, в вызове event() происходит ожидание события. В случае, когда буфер событий содержит элементы, вызов event() возвращает описатель из указанного буфера.The mentioned event descriptors contain information about the event, including the type of the event (call(), recv()), the identifier of the proxy process thread in which the event occurred, the descriptor of the shared memory range in which the data was received, etc. In the case when there are no elements in the event buffer, the event() call waits for an event. In the case where the event buffer contains elements, the call to event() returns the handle from the specified buffer.
На Фиг. 4 представлен способ контроля доставки сообщений 140, передаваемых между по меньшей мере первым 134 и вторым 161 процессами, реализуемый компьютером. Так, на шаге 410 с помощью средства создания процесса 280 для второго процесса 161 создают прокси-процесс 135 в первой ОС 100, предназначенный для обмена сообщениями 140 со вторым процессом 161 во второй ОС 160 и обладающий программным интерфейсом, соответствующим программному интерфейсу второго процесса 161. Затем, на шаге 420 с помощью средства назначения политик 290 назначают по меньшей мере одну политику безопасности созданному прокси-процессу 135 для контроля доставки сообщений 140, связанных с упомянутым прокси-процессом 135, где упомянутые сообщения 140 передают через заданный программный интерфейс. На шаге 430 для первой ОС 100 формируют монитор безопасности 120 с учетом особенностей архитектуры ОС 240, в частности с учетом созданного прокси-процесса 135, а также с учетом требований безопасности для первой ОС 100, которые выражаются в назначенных политиках безопасности из базы политик 121. В итоге, на шаге 440 с помощью сформированного монитора безопасности 120 осуществляют контроль доставки сообщений 140 между по меньшей мере первым 134 и вторым 161 процессами путем контроля доставки сообщений 140, связанных с упомянутым прокси-процессом 135, на основании политик безопасности из базы политик 121. Стоит отметить, что частные варианты, раскрытые ранее, также применимы к способу на Фиг. 4.On FIG. 4 shows a method for controlling the delivery of messages 140 transmitted between at least the first 134 and the second 161 processes implemented by a computer. So, at
Фиг. 5 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Fig. 5 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. Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The personal computer 20 in turn comprises a
Компьютер 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, представленного на Фиг. 5. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment using a network connection to other
Сетевые соединения могут образовывать локальную вычислительную сеть (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 first 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 (52)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/835,034 US20230074455A1 (en) | 2021-09-06 | 2022-06-08 | System and method for monitoring delivery of messages passed between processes from different operating systems |
EP22189845.5A EP4145318A1 (en) | 2021-09-06 | 2022-08-11 | System and method for monitoring delivery of messages passed between processes from different operating systems |
Publications (1)
Publication Number | Publication Date |
---|---|
RU2777302C1 true RU2777302C1 (en) | 2022-08-02 |
Family
ID=
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150195A1 (en) * | 2003-06-30 | 2006-07-06 | Microsoft Corporation | System and method for interprocess communication |
US20060168331A1 (en) * | 2005-01-06 | 2006-07-27 | Terevela, Inc. | Intelligent messaging application programming interface |
US20070011687A1 (en) * | 2005-07-08 | 2007-01-11 | Microsoft Corporation | Inter-process message passing |
US20070266392A1 (en) * | 2004-04-02 | 2007-11-15 | Symbian Software Limited | Inter Process Communication in a Computing Device |
RU2714726C2 (en) * | 2015-06-30 | 2020-02-20 | Закрытое акционерное общество "Лаборатория Касперского" | Automation architecture of automated systems |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060150195A1 (en) * | 2003-06-30 | 2006-07-06 | Microsoft Corporation | System and method for interprocess communication |
US20070266392A1 (en) * | 2004-04-02 | 2007-11-15 | Symbian Software Limited | Inter Process Communication in a Computing Device |
US20060168331A1 (en) * | 2005-01-06 | 2006-07-27 | Terevela, Inc. | Intelligent messaging application programming interface |
US20070011687A1 (en) * | 2005-07-08 | 2007-01-11 | Microsoft Corporation | Inter-process message passing |
RU2714726C2 (en) * | 2015-06-30 | 2020-02-20 | Закрытое акционерное общество "Лаборатория Касперского" | Automation architecture of automated systems |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2714726C2 (en) | Automation architecture of automated systems | |
JP6588945B2 (en) | System and method for analyzing malicious files in a virtual machine | |
RU2618946C1 (en) | Method to lock access to data on mobile device with api for users with disabilities | |
US7784101B2 (en) | Identifying dependencies of an application upon a given security context | |
JP2005327239A (en) | Security-related programming interface | |
Armando et al. | Formal modeling and reasoning about the android security framework | |
KR101665894B1 (en) | Mandatory protection control in virtual machines | |
US20230074455A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
GB2403827A (en) | Kernel cryptographic module signature verification system and method | |
US7779480B2 (en) | Identifying dependencies of an application upon a given security context | |
US8095513B2 (en) | Safe buffer | |
US7620995B2 (en) | Identifying dependencies of an application upon a given security context | |
RU2777302C1 (en) | System and method for controlling the delivery of messages transmitted between processes from different operating systems | |
Zou et al. | Building Automated Trust Negotiation architecture in virtual computing environment | |
Cuppens et al. | Availability enforcement by obligations and aspects identification | |
RU2773108C1 (en) | System and method for forming a security monitor | |
EP4145318A1 (en) | System and method for monitoring delivery of messages passed between processes from different operating systems | |
RU2790338C1 (en) | Data access control system and method | |
RU2770458C1 (en) | Network gateway and method for transferring data from a first network to a second network | |
CN105701400A (en) | Virtual machine platform safety control method and device | |
RU2775157C1 (en) | System and methods for verifying the integrity of software install image | |
EP4095726A1 (en) | System and method for building a security monitor in a microkernel | |
EP3361406A1 (en) | System and method of analysis of files for maliciousness in a virtual machine | |
US20220382855A1 (en) | System and method for building a security monitor | |
Mellstrand | Informed system protection |