RU2775157C1 - System and methods for verifying the integrity of software install image - Google Patents

System and methods for verifying the integrity of software install image Download PDF

Info

Publication number
RU2775157C1
RU2775157C1 RU2021113657A RU2021113657A RU2775157C1 RU 2775157 C1 RU2775157 C1 RU 2775157C1 RU 2021113657 A RU2021113657 A RU 2021113657A RU 2021113657 A RU2021113657 A RU 2021113657A RU 2775157 C1 RU2775157 C1 RU 2775157C1
Authority
RU
Russia
Prior art keywords
software image
software
access
integrity
image
Prior art date
Application number
RU2021113657A
Other languages
Russian (ru)
Inventor
Владимир Сергеевич Буренков
Дмитрий Александрович Кулагин
Original Assignee
Акционерное общество "Лаборатория Касперского"
Filing date
Publication date
Application filed by Акционерное общество "Лаборатория Касперского" filed Critical Акционерное общество "Лаборатория Касперского"
Priority to US17/453,463 priority Critical patent/US20220366087A1/en
Priority to EP21213952.1A priority patent/EP4089555B1/en
Application granted granted Critical
Publication of RU2775157C1 publication Critical patent/RU2775157C1/en

Links

Images

Abstract

FIELD: information technology.
SUBSTANCE: according to the implementation variant, a method for verifying the integrity of the software install image is used before installing the software, consisting of: setting the value of the state of the software image indicating the permission to access the software image only for the verification tool, wherein the state of the software image is used by the security policies to grant permission or deny access to the software image to the verification tool, the installation tool; granting access to the software image upon request of the verification tool, provided that the security policies are implemented; verifying the integrity of the software image according to the granted access; if it is established that the integrity of the software image is intact, renewing the value of the state of the software image so as to indicate that access to the software image is granted to the installation tool and denied to the verification tool; granting access to the software image upon request from the installation tool when implementing the security policies.
EFFECT: ensured security of the process of software installation due to the provided access to the software image by a security monitor using security policies.
17 cl, 6 dwg

Description

Область техникиTechnical field

Изобретение относится к области информационной безопасности.The invention relates to the field of information security.

Уровень техникиState of the art

На современных компьютерных устройствах пользователей установлено большое количество программного обеспечения (далее — ПО), предназначенного для выполнения разнообразного функционала. При этом разработчики ПО ведут постоянную работу над исправлением ошибок и улучшением функционала ПО. Поэтому на компьютерных устройствах пользователей достаточно часто происходит установка нового ПО или установка обновлений для существующего ПО. Одним из способов установки ПО является доставка на компьютер файла, содержащего установочный образ ПО, проверка подлинности образа ПО и последующая установка ПО из файла упомянутого образа ПО.On modern computer devices of users, a large amount of software (hereinafter referred to as software) is installed, designed to perform a variety of functions. At the same time, software developers are constantly working on fixing bugs and improving the functionality of the software. Therefore, on the computer devices of users, it is quite common to install new software or install updates for existing software. One way to install the software is to deliver a file containing the installation image of the software to the computer, authenticate the software image, and then install the software from the file of said software image.

Однако компоненты систем установки ПО, участвующие в процессе установки ПО, уязвимы к различного рода компьютерным атакам и ошибкам в ПО. Например, компонент проверки, отвечающий за проверку подлинности образа ПО, может пропустить упомянутую проверку, если он не был вызван компонентом, управляющим процессом обновления. А в случае, если упомянутая проверка была выполнена, её результат может быть проигнорирован компонентом, отвечающим за выполнение установки ПО из упомянутого образа ПО. Таким образом, если результат проверки показал, что образ ПО не является подлинным, ПО все равно будет установлено из образа ПО, не являющегося подлинным. То есть, даже если компонент проверки считать доверенным компонентом, уязвимости в других недоверенных компонентах могут повлиять на процесс установки.However, the components of the software installation systems involved in the software installation process are vulnerable to various types of computer attacks and errors in the software. For example, the verification component responsible for authenticating the software image may skip said verification if it was not called by the component that manages the update process. And if the mentioned check was performed, its result can be ignored by the component responsible for performing the software installation from the mentioned software image. Thus, if the verification result shows that the software image is not genuine, the software will still be installed from the non-genuine software image. That is, even if the verification component is considered a trusted component, vulnerabilities in other untrusted components can affect the installation process.

Еще одна проблема заключается в том, что содержимое образа ПО может быть изменено уже после проверки подлинности образа ПО, но до чтения образа ПО компонентом, отвечающим за установку ПО. Описанные ситуации могут возникнуть по различным причинам. Например, из-за наличия программной ошибки в одном или нескольких компонентах, реализующих процесс установки ПО, из-за эксплуатации уязвимостей упомянутых компонентов вредоносным ПО, из-за возникновения критической ошибки в операционной системе (ОС), из-за ошибочного чтения или записи в образ ПО сторонним приложением.Another problem is that the contents of the software image can be modified after the software image has been authenticated, but before the software image is read by the component responsible for installing the software. The described situations can arise for various reasons. For example, due to the presence of a software error in one or more components that implement the software installation process, due to the exploitation of vulnerabilities of the mentioned components by malware, due to the occurrence of a critical error in the operating system (OS), due to erroneous reading or writing to software image by a third-party application.

Таким образом, возникает техническая проблема, заключающаяся в уязвимости недоверенных компонентов, участвующих в процессе установки ПО.Thus, a technical problem arises, which consists in the vulnerability of untrusted components involved in the software installation process.

Из уровня техники известны различные системы, реализующие установку и обновление ПО на компьютере. Например, в патенте US10735184 описана система обновления ПО с использованием технологии блокчейн (англ. blockchain) для выполнения независимой проверки результата обновления ПО. В патенте US10225426 описаны способы обновления ПО путем верификации и обновления ПО верифицированной программой обновления.In the prior art, various systems are known that implement the installation and updating of software on a computer. For example, US10735184 describes a software update system using blockchain technology to independently verify the result of a software update. US10225426 describes how to update software by verifying and updating software with a verified updater.

Тем не менее, известные технологии не позволяют решить заявленную техническую проблему, так как в случае наличия уязвимостей в компонентах, участвующих в процессе установки ПО, установка ПО будет осуществлена некорректно и небезопасно. Поэтому возникает необходимость в техническом решении, способном решить заявленную проблему, а именно в настоящем изобретении.However, known technologies do not allow solving the claimed technical problem, since if there are vulnerabilities in the components involved in the software installation process, the software installation will be carried out incorrectly and unsafely. Therefore, there is a need for a technical solution capable of solving the claimed problem, namely the present invention.

Раскрытие сущности изобретенияDisclosure of the essence of the invention

Настоящее изобретение предназначено для проверки целостности установочного образа программного обеспечения перед выполнением установки ПО.The present invention is intended to verify the integrity of a software installation image before performing a software installation.

Технический результат заключается в обеспечении безопасности процесса установки программного обеспечения за счет предоставления доступа к образу ПО монитором безопасности с использованием политик безопасности.The technical result consists in ensuring the security of the software installation process by providing access to the software image by a security monitor using security policies.

Согласно варианту реализации, используется способ проверки целостности установочного образа программного обеспечения (далее — ПО) перед выполнением установки ПО, в котором: с помощью монитора безопасности устанавливают значение состояния установочного образа ПО (далее — образ ПО), указывающее на разрешение доступа к образу ПО только для средства проверки, при этом состояние образа ПО является параметром, используемым политиками безопасности для предоставления разрешения или запрета доступа к образу ПО компонентам, включающим: средство проверки, средство установки; с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства проверки при условии выполнения политик безопасности; с помощью средства проверки выполняют проверку целостности образа ПО согласно предоставленному доступу; при установлении, что целостность образа ПО не нарушена, с помощью монитора безопасности изменяют значение состояния образа ПО на новое, указывающее на разрешение доступа к образу ПО средству установки и запрет доступа к образу ПО средству проверки; с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства установки при выполнении политик безопасности.According to an implementation variant, a method is used to check the integrity of the software installation image (hereinafter referred to as the software) before performing the installation of the software, in which: using the security monitor, the state value of the software installation image (hereinafter referred to as the software image) is set, indicating that access to the software image is allowed only for the checker, while the state of the software image is a parameter used by security policies to allow or deny access to the software image to components, including: the checker, the installer; using the security monitor, provide access to the software image upon request from the scanner, subject to the implementation of security policies; using the verification tool, check the integrity of the software image according to the access granted; when it is determined that the integrity of the software image is not violated, using the security monitor, change the status value of the software image to a new one, indicating that access to the software image is allowed for the installer and that access to the software image is denied for the checker; using the security monitor, provide access to the software image upon request from the installer when executing security policies.

Согласно одному из частных вариантов реализации политики безопасности используют конечный автомат, где состоянием конечного автомата является состояние образа ПО, при этом политика безопасности определяет разрешение или запрет доступа к образу ПО в зависимости от состояния конечного автомата и в соответствии с таблицей переходов состояний конечного автомата.According to one of the private options for implementing the security policy, a state machine is used, where the state of the state machine is the state of the software image, while the security policy determines whether access to the software image is allowed or denied depending on the state of the state machine and in accordance with the state transition table of the state machine.

Согласно другому частному варианту реализации политики безопасности используют темпоральную логику.According to another particular implementation of the security policy, temporal logic is used.

Согласно еще одному частному варианту реализации упомянутый образ ПО содержит один или несколько объектов из следующих: ПО; обновление ПО; вложенный образ ПО.According to another particular implementation variant, said software image contains one or more of the following: software; Software Update; nested software image.

Согласно одному из частных вариантов реализации выполняют проверку целостности образа ПО путем проверки целостности объектов, содержащихся в упомянутом образе ПО, при этом целостность образа ПО считается не нарушенной, если целостность по меньшей мере одного объекта, содержащегося в образе ПО не нарушена.According to one of the particular implementation options, the integrity of the software image is checked by checking the integrity of the objects contained in the mentioned software image, while the integrity of the software image is considered intact if the integrity of at least one object contained in the software image is not violated.

Согласно другому частному варианту реализации с помощью средства установки выполняют установку ПО, содержащегося в упомянутом образе ПО.According to another particular implementation variant, the installer performs the installation of the software contained in said software image.

Согласно еще одному частному варианту реализации с помощью средства установки выполняют установку только того ПО, целостность которого не нарушена.According to another private implementation variant, using the installer, only the software is installed, the integrity of which is not violated.

Согласно одному из частных вариантов реализации выполняют проверку целостности образа ПО одним из способов: путем проверки электронно-цифровой подписи упомянутого образа ПО; путем получения подтверждения от пользователя; путем использования кодов аутентификации сообщений, в частности имитовставки; путем проверки соответствия роли пользователя заданным требованиям; путем проверки заданных атрибутов образа ПО.According to one of the private implementation options, the integrity of the software image is checked in one of the following ways: by checking the digital signature of the said software image; by receiving confirmation from the user; by using message authentication codes, in particular imitation insertion; by checking that the user's role meets the specified requirements; by checking the specified attributes of the software image.

Согласно другому частному варианту реализации с помощью загрузчика загружают установочный образ ПО с удаленного ресурса.According to another private implementation variant, a software installation image is loaded from a remote resource using a bootloader.

Согласно еще одному частному варианту реализации упомянутый доступ включает чтение данных.According to another particular implementation variant, said access includes reading data.

Согласно варианту реализации, используется способ проверки целостности установочного образа программного обеспечения перед выполнением установки ПО, в котором: с помощью монитора безопасности устанавливают: значения уровней целостности средства проверки и средства установки (далее — компоненты) выше, чем значение уровня целостности образа ПО; значение уровня доступа средства проверки равным значению уровня целостности образа ПО, значение уровня доступа средства установки равным значению уровня целостности средства установки; политики безопасности, разрешающие доступ одного компонента к другому компоненту при условии, что значение уровня доступа одного компонента не выше значения уровня целостности другого компонента; с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства проверки при условии выполнения политик безопасности; с помощью средства проверки выполняют проверку целостности образа ПО согласно предоставленному доступу; при установлении, что целостность образа ПО не нарушена, с помощью монитора безопасности изменяют значение уровня целостности образа ПО на значение, равное значению уровня доступа средства установки; с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства установки при выполнении политик безопасности.According to an implementation variant, a method is used to check the integrity of a software installation image before performing the installation of the software, in which: using the security monitor, the following are set: the values of the integrity levels of the checker and the installer (hereinafter referred to as components) are higher than the value of the integrity level of the software image; the value of the access level of the verification tool is equal to the value of the integrity level of the software image, the value of the access level of the installer is equal to the value of the integrity level of the installer; security policies that allow access of one component to another component, provided that the value of the access level of one component is not higher than the value of the integrity level of another component; using the security monitor, provide access to the software image upon request from the scanner, subject to the implementation of security policies; using the verification tool, check the integrity of the software image according to the access granted; when establishing that the integrity of the software image is not violated, using the security monitor, change the value of the integrity level of the software image to a value equal to the value of the access level of the installer; using the security monitor, provide access to the software image upon request from the installer when executing security policies.

Согласно варианту реализации, используется система проверки целостности установочного образа ПО перед выполнением установки ПО, содержащая: монитор безопасности, предназначенный для предоставления согласно политикам безопасности разрешения или запрета доступа к образу ПО компонентам, включающим: средство проверки, средство установки; упомянутое средство проверки, предназначенное для выполнения проверки целостности образа ПО согласно предоставленному доступу; упомянутое средство установки, предназначенное для выполнения установки ПО, содержащегося в образе ПО.According to an implementation variant, a system is used to check the integrity of the software installation image before performing the software installation, comprising: a security monitor designed to provide, according to security policies, permission or prohibition of access to the software image to components, including: a checker, an installer; said verification tool for performing integrity checks on the software image according to the granted access; said installer for performing the installation of the software contained in the software image.

Согласно одному из частных вариантов реализации монитор безопасности дополнительно предназначен для: установления значения состояния образа ПО, указывающего на разрешение доступа к образу ПО только для средства проверки, при этом состояние образа ПО является параметром, используемым политиками безопасности для предоставления разрешения или запрета доступа к образу ПО упомянутым компонентам; изменения значения состояния образа ПО на новое, указывающее на разрешение доступа к образу ПО средству установки и запрет доступа к образу ПО средству проверки. According to one of the private implementation options, the security monitor is additionally designed to: set the value of the state of the software image, indicating the permission to access the software image only for the scanner, while the state of the software image is a parameter used by security policies to grant access to the software image mentioned components; changing the status value of the software image to a new one, indicating that the installer is allowed access to the software image and the verification tool is denied access to the software image.

Согласно другому частному варианту реализации политики безопасности используют конечный автомат, где состоянием конечного автомата является состояние образа ПО, при этом политика безопасности определяет разрешение или запрет доступа к образу ПО в зависимости от состояния конечного автомата и в соответствии с таблицей переходов состояний конечного автомата.According to another particular implementation of the security policy, a state machine is used, where the state of the state machine is the state of the software image, while the security policy determines whether access to the software image is allowed or denied depending on the state of the state machine and in accordance with the state transition table of the state machine.

Согласно еще одному частному варианту реализации политики безопасности используют темпоральную логику.According to another particular implementation of the security policy, temporal logic is used.

Согласно одному из частных вариантов реализации монитор безопасности дополнительно предназначен для: установки значений уровней целостности средства проверки и средства установки выше, чем значение уровня целостности образа ПО; установки значения уровня доступа средства проверки равным значению уровня целостности образа ПО, значение уровня доступа средства установки равным значению уровня целостности средства установки; установки политик безопасности, разрешающих доступ одного компонента к другому компоненту при условии, что значение уровня доступа одного компонента не выше значения уровня целостности другого компонента, где упомянутый доступ включает чтение данных; изменения значения уровня целостности образа ПО на значение, равное значению уровня доступа средства установки, при условии, что целостность образа ПО не нарушена.According to one of the private implementation options, the security monitor is further designed to: set the values of the integrity levels of the checker and installer higher than the value of the integrity level of the software image; setting the value of the access level of the checker equal to the value of the integrity level of the software image, the value of the access level of the installer equal to the value of the integrity level of the installer; setting security policies to allow access of one component to another component, provided that the value of the access level of one component is not higher than the value of the integrity level of the other component, where said access includes reading data; changing the value of the integrity level of the software image to a value equal to the value of the access level of the installer, provided that the integrity of the software image is not violated.

Согласно другому частному варианту реализации упомянутый доступ к образу ПО включает чтение образа ПО.According to another particular embodiment, said access to the software image includes reading the software image.

Краткое описание чертежей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 представлена схема межпроцессного взаимодействия на примере операционной системы с микроядерной архитектурой.On FIG. 1 shows a diagram of interprocess communication using the example of an operating system with a microkernel architecture.

На Фиг. 2 представлена схема системы проверки целостности установочного образа ПО.On FIG. 2 shows a diagram of the system for checking the integrity of the installation image of the software.

На Фиг. 3 представлен вариант способа проверки целостности установочного образа ПО перед выполнением установки ПО.On FIG. 3 shows a variant of the method for checking the integrity of the software installation image before performing the software installation.

На Фиг. 4 представлен другой вариант способа проверки целостности установочного образа ПО перед выполнением установки ПО.On FIG. 4 shows another way to check the integrity of a software installation image before performing a software installation.

На Фиг. 5 представлена диаграмма конечного автомата для варианта реализации политик безопасности с использованием конечного автомата.On FIG. 5 is a diagram of a state machine for an implementation of security policies using a state machine.

Фиг. 6 представляет пример компьютерной системы общего назначения. Fig. 6 represents an example of a general purpose computer system.

Осуществление изобретенияImplementation of the invention

Объекты и признаки настоящего изобретения, способы для достижения этих объектов и признаков станут очевидными посредством отсылки к примерным вариантам осуществления. Однако, настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, оно может воплощаться в различных видах. Сущность, приведенная в описании, является ничем иным, как конкретными деталями, обеспеченными для помощи специалисту в области техники в исчерпывающем понимании изобретения, и настоящее изобретение определяется в объеме приложенной формулы.The objects and features of the present invention, methods for achieving these objects and features will become apparent by reference to exemplary embodiments. However, the present invention is not limited to the exemplary embodiments disclosed below, but may be embodied in various forms. The gist of the description is nothing but specific details provided to assist the person skilled in the art in a thorough understanding of the invention, and the present invention is defined within the scope of the appended claims.

ГлоссарийGlossary

Процесс (англ. process) — последовательность операций при выполнении программы или ее части вместе с используемыми данными, включает один или более потоков (англ. thread) и ассоциированные с ними системные ресурсы.Process (English process) - a sequence of operations when executing a program or part of it, along with the data used, includes one or more threads (English thread) and system resources associated with them.

Межпроцессное взаимодействие (англ. inter-process communication, IPC) — набор способов обмена данными между множеством потоков в одном или более процессах. Процессы могут быть запущены на одном или более компьютерах, связанных между собой сетью. IPC-способы делятся на методы обмена сообщениями, синхронизации, разделяемой памяти и удаленных вызовов.Inter-process communication (IPC) is a set of methods for exchanging data between multiple threads in one or more processes. Processes can run on one or more computers connected by a network. IPC methods are divided into messaging, synchronization, shared memory, and remote call methods.

Асинхронный процесс — процесс, в котором операция не требует отклика для продолжения выполнения.An asynchronous process is a process in which an operation does not require a response to continue execution.

Синхронный процесс — процесс, в котором операция требует отклика для продолжения выполнения.A synchronous process is a process in which an operation requires a response in order to continue execution.

Операция — элементарное действие, выполняемое в рамках рассматриваемого процесса. В качестве операции может выступать, например, API-функция.An operation is an elementary action performed within the framework of the process under consideration. An operation can be, for example, an API function.

Современные операционные системы при обмене данными между двумя процессами методами межпроцессного взаимодействия используют как синхронные, так и асинхронные операции.Modern operating systems use both synchronous and asynchronous operations when exchanging data between two processes using interprocess communication methods.

Целостность данных (англ. data integrity) — непротиворечивость, полнота и сохранность данных. Например, целостность данных, хранящихся в базе данных, означает, что находящиеся в ней данные должны быть полностью согласованы между собой, содержать все сведения, необходимые для выполнения возложенных на базу данных функций, при этом должно быть исключено их случайное уничтожение (стирание) или искажение. Все это обеспечивается системой управления базой данных.Data integrity is the consistency, completeness and safety of data. For example, the integrity of the data stored in the database means that the data in it must be fully consistent with each other, contain all the information necessary to perform the functions assigned to the database, and their accidental destruction (erasure) or distortion must be excluded. . All this is provided by the database management system.

Конечный автомат (англ. Finite State Machine) — модель дискретного устройства, характеризующаяся состояниями и переходами от одного состояния к другому. Каждое состояние конечного автомата характеризует одну из возможных ситуаций, в которой может находиться конечный автомат.Finite State Machine is a model of a discrete device 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 представлена схема межпроцессного взаимодействия на примере операционной системы (далее — ОС) 100 с микроядерной архитектурой. ОС 100 включает изолированные процессы 131-132, которые взаимодействуют между собой, а также с ядром ОС 110 посредством программных интерфейсов путем обмена сообщениями. Монитор безопасности (также — монитор обращений) 120 — компонент ОС 100, предназначенный для осуществления контроля взаимодействий, также называемых событиями ОС, включающих: запуск 141 процесса 131, запрос 142 от процесса 131 или ответ 143 от другого процесса 132, обращение процесса 132 к монитору безопасности 120 (запрос безопасности 144). С использованием монитора безопасности 120 выполняют анализ каждого события ОС на предмет соответствия политикам безопасности 121, по результатам которого разрешают или запрещают выполнение данного события ОС. При этом монитор безопасности 120 может быть частью ядра ОС 110 или отдельным приложением. Монитор безопасности 120 исполняется в привилегированном режиме ядра ОС 110.On FIG. 1 shows a diagram of inter-process communication on the example of an operating system (hereinafter referred to as OS) 100 with a microkernel architecture. OS 100 includes isolated processes 131 - 132 that interact with each other, as well as with the OS kernel 110 , through programming interfaces by exchanging messages. Security monitor (also called call monitor) 120 is an OS component 100 designed to monitor interactions, also called OS events, including: process 141 start 131 , request 142 from process 131 or response 143 from another process 132 , process 132 call to the monitor security 120 (security request 144 ). Using the security monitor 120 , each OS event is analyzed for compliance with security policies 121 , as a result of which the execution of this OS event is allowed or prohibited. In this case, the security monitor 120 may be part of the OS kernel 110 or a separate application. The security monitor 120 runs in the privileged mode of the OS kernel 110 .

На Фиг. 2 представлена схема системы проверки целостности установочного образа ПО 230 на компьютере с ОС 100, пример архитектуры которой был представлен на Фиг. 1. Процесс установки ПО из установочного образа ПО 230 осуществляется с использованием системы установки 200. Установочный образ ПО 230 (далее — образ ПО) является файлом, расположенным в постоянной или оперативной памяти компьютера и включающим по меньшей мере один из следующих объектов: ПО, обновление ПО, вложенный образ ПО. Кроме того, образ ПО 230 может содержать комбинацию перечисленных объектов, например одно ПО и один вложенный образ ПО, который в свою очередь может содержать, например, еще одно ПО. При этом образ ПО 230 может использовать любую известную из уровня техники реализацию хранения ПО. Образ ПО 230, например, может быть архивом или установочным пакетом. Установочный пакет представляет собой файл архива, в который входят файлы ПО, управляющие файлы и опционально файлы для настройки процесса установки ПО. Упомянутые файлы могут быть представлены в исходном коде, в промежуточном коде или в исполняемом коде.On FIG. 2 is a diagram of a system for verifying the integrity of a software installation image 230 on a computer with OS 100 , an example of the architecture of which was presented in FIG. 1 . The process of installing software from a software installation image 230 is carried out using the installation system 200 . The software installation image 230 (hereinafter referred to as the software image) is a file located in the permanent or random access memory of the computer and includes at least one of the following objects: software, software update, embedded software image. In addition, the software image 230 may contain a combination of the listed items, such as one software and one sub-image of the software, which in turn may contain, for example, another software. However, the software image 230 may use any implementation of software storage known in the art. The software image 230 , for example, may be an archive or an installation package. An installation package is an archive file that includes software files, control files, and optional files for customizing the software installation process. The mentioned files may be present in source code, in intermediate code, or in executable code.

Система 200 включает такие компоненты, как средство проверки 240 и средство установки 250. Образ ПО 230 может быть доставлен на компьютер различными способами. Образ ПО 230, например, может быть предварительно сохранен на компьютер при установке ОС 100. Кроме того, образ ПО 230 может быть загружен с использованием загрузчика 220 с удаленного ресурса 210 и сохранен на компьютер. Стоит отметить, что все взаимодействия между средствами системы 200 осуществляются с использованием системных вызовов ядра ОС 110 и под контролем монитора безопасности 120. В частном варианте реализации хранение образа ПО 230 осуществляется на файловом хранилище 260, которое также является компонентом системы установки 200. В этом случае взаимодействие загрузчика 220, средства проверки 240 и средства установки 250 с образом ПО 230 может осуществляться посредством взаимодействия с файловым хранилищем 260.System 200 includes components such as a checker 240 and an installer 250 . The software image 230 may be delivered to the computer in various ways. The software image 230 , for example, may be pre-stored to the computer when the OS 100 is installed. In addition, the software image 230 can be downloaded using the downloader 220 from the remote resource 210 and stored on the computer. It is worth noting that all interactions between the tools of the system 200 are performed using OS kernel system calls 110 and under the control of the security monitor 120 . In a particular implementation, the software image 230 is stored on file storage 260 , which is also a component of the installation system 200 . In this case, the interaction of the loader 220 , the checker 240 , and the installer 250 with the software image 230 may be through interaction with the file store 260 .

Так как техническая проблема заключается в уязвимости недоверенных компонентов, участвующих в процессе установки программного обеспечения, ниже рассматриваются возможные уязвимости в компонентах системы установки 200. Наиболее уязвимым и, следовательно, недоверенным является наиболее сложный в реализации компонент — система установки 200, в частности компонент системы 200 (на фигуре не показан), управляющий процессом установки ПО. Загрузчик 220 также является недоверенным и уязвимым компонентом, в частности из-за взаимодействия с внешней сетью. Доверенными компонентами являются средство проверки 240 и средство установки 250, которые являются специализированными компонентами, в которых возможно удостовериться в их корректной работе. Именно поэтому возникает необходимость в мониторе безопасности 120, который использует политики безопасности для проверки целостности установочного образа ПО 230 после его загрузки недоверенным компонентом (загрузчиком 220) и перед установкой ПО из образа ПО 230 доверенным компонентом (средством установки 250). Это позволяет достичь заявленного технического результата.Since the technical problem is the vulnerability of untrusted components involved in the software installation process, possible vulnerabilities in the components of the installation system 200 are discussed below. The most vulnerable and, therefore, untrusted component is the most difficult to implement component - the installation system 200 , in particular, the component of system 200 (not shown in the figure) that controls the software installation process. The downloader 220 is also an untrusted and vulnerable component, in particular due to interaction with the external network. The trusted components are the checker 240 and the installer 250 , which are specialized components that can be verified to work correctly. This is why there is a need for a security monitor 120 that uses security policies to verify the integrity of the software installation image 230 after it has been downloaded by an untrusted component (loader 220 ) and before the software from the software image 230 is installed by a trusted component (installer 250 ). This allows to achieve the claimed technical result.

Монитор безопасности 120 предназначен для предоставления согласно политикам безопасности 121 разрешения или запрета доступа к образу ПО 230 компонентам системы установки 200. При этом доступ к образу ПО 230 является межпроцессным взаимодействием и включает чтение образа ПО 230. Средство проверки 240 предназначено для выполнения проверки целостности образа ПО 230 согласно предоставленному доступу. Под целостностью образа ПО 230 понимается неизменность данных образа ПО 230 при осуществлении процесса установки ПО. Таким образом, если на одном из этапов процесса установки ПО файл образа ПО 230 был изменен или заменен, его целостность считается нарушенной. Средство установки 250 предназначено для выполнения установки ПО, содержащегося в образе ПО 230. Непосредственно установка ПО может происходить любым известным из уровня техники методом, в частности путем извлечения из образа ПО 230 всех файлов, относящихся к устанавливаемому ПО, последующего сохранения упомянутых файлов в файловую систему компьютера, последующего создания и изменения конфигурационных файлов для корректной работы устанавливаемого ПО.The security monitor 120 is configured to allow or deny access to the software image 230 to the components of the installation system 200 according to the security policies 121 . However, access to the software image 230 is an interprocess communication and includes reading the software image 230 . The checker 240 is designed to perform an integrity check on the software image 230 according to the granted access. The integrity of the software image 230 refers to the integrity of the data of the software image 230 during the software installation process. Thus, if at one stage of the software installation process the software image file 230 has been modified or replaced, its integrity is considered to be violated. The installer 250 is designed to install the software contained in the software image 230 '. Direct installation of the software can take place by any method known from the prior art, in particular, by extracting all files related to the installed software from the software image 230 , then saving the mentioned files to the computer file system, then creating and modifying configuration files for the correct operation of the installed software.

В одном частном варианте реализации целостность образа ПО 230 считается не нарушенной, если целостность по меньшей мере одного объекта, содержащегося в образе ПО 230, не нарушена. Например, если образ ПО 230 содержит два ПО, и данные файла образа ПО 230, относящиеся к первому из ПО, были изменены, в то время как данные, относящиеся ко второму из ПО, не были изменены, то целостность такого образа ПО 230 будет считаться не нарушенной. В этом варианте реализации с помощью средства установки 250 выполняют установку только того ПО, целостность которого не нарушена, то есть только второго ПО. Таким образом, упомянутый частный вариант реализации обеспечивает установку программного обеспечения из образа ПО 230, целостность которого не нарушена. В то же время система 200 блокирует установку программного обеспечения из образа ПО 230, целостность которого нарушена, таким образом обеспечивая безопасность ОС 100 и компьютера.In one particular implementation, the integrity of the software image 230 is considered intact if the integrity of at least one object contained in the software image 230 is intact. For example, if the software image 230 contains two software, and the file data of the software image 230 related to the first of the software has been changed, while the data related to the second of the software has not been changed, then the integrity of such a software image 230 will be considered not broken. In this embodiment, the installer 250 installs only the software that is intact, that is, only the second software. Thus, the said particular implementation option ensures that the software is installed from the software image 230 , the integrity of which is not compromised. At the same time, the system 200 blocks the installation of software from the corrupted software image 230 , thereby securing the OS 100 and the computer.

В одном из частных вариантов реализации с помощью средства проверки 240 выполняют проверку целостности образа ПО 230 одним из способов:In one of the private implementation options, using the checker 240 , the integrity of the software image 230 is checked in one of the following ways:

путем проверки электронно-цифровой подписи (далее — ЭЦП) образа ПО 230 или путем проверки ЭЦП объектов, содержащихся в образе ПО 230;by checking the digital signature (hereinafter referred to as the EDS) of the software image 230 or by checking the digital signature of objects contained in the software image 230 ;

путем получения подтверждения от пользователя;by receiving confirmation from the user;

путем использования кодов аутентификации сообщений, в частности имитовставки (англ. message authentication code — код аутентификации сообщения);by using message authentication codes, in particular imitations (eng. message authentication code - message authentication code);

путем проверки соответствия роли пользователя заданным требованиям (например, устройство, с которого выполняется авторизация пользователя, должно обладать заданными характеристиками, местоположением или данными для авторизации);by checking that the user's role meets the specified requirements (for example, the device from which the user is authorized must have the specified characteristics, location, or data for authorization);

путем проверки заданных атрибутов образа ПО 230.by checking the specified attributes of the software image 230 .

В другом частном варианте реализации с помощью средства проверки 240 выполняют проверку целостности образа ПО 230 с использованием комбинации из двух и более подходов, в частности описанных выше. В еще одном частном варианте реализации при указанной проверке задают различные схемы использования указанных подходов, например выборочное использование двух и более подходов, использование не менее заданного количества подходов, использование заданного количества подходов и т.д.In another particular implementation, the checker 240 performs a check on the integrity of the software image 230 using a combination of two or more of the approaches specifically described above. In another particular embodiment, during the specified check, various schemes for using the specified approaches are specified, for example, selective use of two or more approaches, use of at least a given number of approaches, use of a given number of approaches, etc.

Политики безопасности 121 — это заранее заданные правила, разрешающие или запрещающие доступ одного компонента (например, средства проверки 240) к другому компоненту (например, образу ПО 230 системы 200) при выполнении условия соответствующей политики безопасности 121.Security policies 121 are pre-defined rules that allow or deny access of one component (eg, checker 240 ) to another component (eg, software image 230 of system 200 ) when a condition of the corresponding security policy 121 is met.

В одном частном примере реализации монитор безопасности 120 дополнительно предназначен для установления значения состояния образа ПО 230, указывающего на разрешение доступа к образу ПО 230 только для средства проверки 240. Состояние образа ПО 230 — это параметр, используемый политиками безопасности 121 для предоставления разрешения или запрета доступа компонентам системы 200 к образу ПО 230. Кроме того, монитор безопасности 120 предназначен для изменения значения состояния образа ПО 230 на новое, указывающее на разрешение доступа к образу ПО 230 средству установки 250 и запрет доступа к образу ПО 230 средству проверки 240. Например, состояние образа ПО 230 «состояние 1» указывает на разрешение доступа к образу ПО 230 только для средства проверки 240, «состояние 2» указывает на разрешение доступа к образу ПО 230 средству установки 250 и запрет доступа к образу ПО 230 средству проверки 240 и т.д.In one particular implementation, the security monitor 120 is further configured to set a state value of the software image 230 indicating that access to the software image 230 is allowed only to the verifier 240 . The state of the software image 230 is a setting used by security policies 121 to grant or deny access to system 200 components to the software image 230 . In addition, the security monitor 120 is configured to change the state value of the software image 230 to a new value indicating that the installer 250 can access the software image 230 and that the checker 240 does not have access to the software image 230 . For example, the state of the software image 230 "state 1" indicates access to the software image 230 only for the checker 240 , "state 2" indicates the permission to access the software image 230 to the installer 250 and the prohibition of access to the software image 230 to the checker 240 and etc.

В еще одном частном варианте реализации политики безопасности 121 реализованы с использованием конечного автомата, где состоянием конечного автомата является состояние образа ПО 230, при этом политика безопасности 121 определяет разрешение или запрет доступа к образу ПО 230 в зависимости от состояния конечного автомата и в соответствии с таблицей переходов состояний конечного автомата. Возможный пример реализации политик безопасности 121 с использованием конечного автомата будет представлен далее при описании Фиг. 5.In another particular embodiment, security policies 121 are implemented using a state machine, where the state of the state machine is the state of the software image 230 , while the security policy 121 determines whether access to the software image 230 is allowed or denied depending on the state of the state machine and in accordance with the table state transitions of the finite automaton. An exemplary implementation of security policies 121 using a state machine will be presented later in the description of FIG. 5 .

В еще одном частном варианте реализации политики безопасности 121 реализованы с использованием модели мандатного контроля целостности (англ. Mandatory integrity control). Модель мандатного контроля целостности предоставляет механизм контроля доступа к защищаемым объектам, которыми в заявленном изобретении являются компоненты системы 200. Согласно модели мандатного контроля доступа с использованием монитора безопасности 120 компонентам системы 200 ставят в соответствие два числа, называемые уровнем целостности (англ. integrity level) и уровнем доступа (англ. access level). При этом для контроля доступа одного компонента (субъекта доступа) к другому компоненту (объекту доступа) используются политики безопасности 121 на основе мандатного контроля доступа, то есть использующие значения уровней целостности и уровней доступа компонентов. Например, может быть использована политика безопасности 121, согласно которой одному компоненту разрешен доступ на чтение к другому компоненту, если значение уровня целостности первого компонента не ниже значения уровня целостности другого компонента, или если это условие не выполняется, то в случае когда значение уровня доступа первого компонента не выше значения уровня целостности другого компонента. Следует различать понятие «целостность образа ПО 230», который означает неизменность данных образа ПО 230, а также понятия «уровень целостности» и «уровень доступа», где значения уровня целостности и уровня доступа используются политиками безопасности 121 и монитором безопасности 120 для определения разрешения или запрета доступа к образу ПО 230 в соответствии с упомянутыми политиками безопасности 121.In another particular embodiment, the security policy 121 is implemented using the Mandatory integrity control model. The Mandatory Integrity Control Model provides a mechanism for controlling access to securable objects, which in the claimed invention are the components of the system 200 . According to the security monitor mandated access control model, the 120 components of system 200 are assigned two numbers called an integrity level and an access level. At the same time, to control access of one component (access subject) to another component (access object), security policies 121 are used based on mandatory access control, that is, using the values of integrity levels and access levels of components. For example, security policy 121 can be used, according to which one component is allowed read access to another component if the value of the integrity level of the first component is not lower than the value of the integrity level of the other component, or if this condition is not met, then in the case when the value of the access level of the first component is not higher than the value of the integrity level of another component. A distinction should be made between "software image integrity 230" , which refers to the immutability of the software image data 230 , and "integrity level" and "access level", where integrity level and access level values are used by security policies 121 and security monitor 120 to determine permission or prohibition of access to the software image 230 in accordance with the mentioned security policies 121 .

В рассматриваемом варианте реализации монитор безопасности 120 дополнительно предназначен для установки значений уровней целостности средства проверки 240 и средства установки 250 выше, чем значение уровня целостности образа ПО 230. Монитор безопасности 120 также предназначен для установки значения уровня доступа средства проверки 240 равным значению уровня целостности образа ПО 230 и значения уровня доступа средства установки 250 равным значению уровня целостности средства установки 250. Стоит отметить, что образ ПО 230 является пассивным компонентом (объектом доступа), который сам не запрашивает доступ к другим компонентам, но к которому может быть получен доступ другими компонентами. Поэтому образ ПО 230 обладает только уровнем целостности, но не обладает уровнем доступа. Монитор безопасности 120 также предназначен для установки политик безопасности 121, разрешающих доступ одного компонента к другому компоненту при условии, что значение уровня доступа одного компонента не выше значения уровня целостности другого компонента. Кроме того, в данном варианте реализации монитор безопасности 120 служит для изменения значения уровня целостности образа ПО 230 на значение, равное значению уровня доступа средства установки 250, при условии, что целостность образа ПО 230 не нарушена.In the exemplary embodiment, the security monitor 120 is further configured to set the integrity levels of the verifier 240 and the installer 250 higher than the integrity level of the software image 230 . The security monitor 120 is also configured to set the verifier 240 access level to the software image integrity level 230 and the installer 250 access level to the installer 250 integrity level. It is worth noting that the software image 230 is a passive component (an access object) that does not itself request access to other components, but which can be accessed by other components. Therefore, the software image 230 has only an integrity level, but no access level. The security monitor 120 is also designed to set security policies 121 that allow one component to access another component, provided that the access level value of one component is not higher than the integrity level value of another component. In addition, in this implementation, the security monitor 120 is used to change the value of the integrity level of the software image 230 to a value equal to the value of the access level of the installer 250 , provided that the integrity of the software image 230 is not violated.

В еще одном частном варианте реализации политики безопасности 121 используют темпоральную логику. Подробнее об использовании темпоральной логики будет написано ниже.In yet another particular implementation of the security policy 121 , temporal logic is used. More details about the use of temporal logic will be written below.

На Фиг. 3 представлен вариант способа проверки целостности установочного образа ПО 230 перед выполнением установки ПО.On FIG. 3 shows an embodiment of a method for verifying the integrity of a software installation image 230 before performing a software installation.

На шаге 310 с помощью монитора безопасности 120 устанавливают значение состояния образа ПО 230, указывающее на разрешение доступа к образу ПО 230 только для средства проверки 240. Затем на шаге 320 с помощью монитора безопасности 120 предоставляют доступ к образу ПО 230 по запросу от средства проверки 240 при условии выполнения политик безопасности 121. На шаге 330 с помощью средства проверки 240 выполняют проверку целостности образа ПО 230 согласно предоставленному доступу. При установлении, что целостность образа ПО 230 не нарушена, на шаге 340 с помощью монитора безопасности 120 изменяют значение состояния образа ПО 230 на новое, указывающее на разрешение доступа к образу ПО 230 средству установки 250 и запрет доступа к образу ПО 230 средству проверки 240. В итоге на шаге 350 с помощью монитора безопасности 120 предоставляют доступ к образу ПО 230 по запросу от средства установки 250 при выполнении политик безопасности 121. После этого на шаге 360 с использованием средства установки 250 выполняют установку ПО, содержащегося в образе ПО 230.At step 310 , the security monitor 120 sets the status value of the software image 230 , indicating that access to the software image 230 is allowed only for the checker 240 . Then, in step 320 , the software image 230 is made available by the security monitor 120 upon request from the verifier 240 , provided that the security policies 121 are followed. At step 330 , the verification tool 240 performs an integrity check on the software image 230 according to the granted access. When it is determined that the integrity of the software image 230 has not been violated, at step 340 , using the security monitor 120 , change the state value of the software image 230 to a new one, indicating the permission to access the software image 230 to the installer 250 and deny access to the software image 230 to the scanner 240 . Finally, in step 350 , the security monitor 120 provides access to the software image 230 upon request from the installer 250 while executing the security policies 121 . Thereafter, in step 360 , the software contained in the software image 230 is installed using the installer 250 .

Таким образом, на каждом шаге монитором безопасности 120 с использованием политик безопасности 121 обеспечивается контроль процесса установки ПО из образа ПО 230. Поэтому даже в случае наличия уязвимостей отдельных компонентов системы 200 будет обеспечена безопасность процесса установки ПО. В частности, шаги 310-320 обеспечивают предоставление доступа к образу ПО 230 только средству проверки 240, которое на шаге 330 выполняет проверку целостности образа ПО 230. В итоге шаги 340-350 гарантируют, что только средство установки 250 получает доступ к образу ПО 230, целостность которого не нарушена по результатам проверки средством проверки 240. Соответственно, если результат проверки на шаге 330 показал, что целостность образа ПО 230 нарушена, то результат такой проверки не будет проигнорирован средством установки 250, а ПО, содержащееся в образе ПО 230, не будет установлено. Кроме того, образ ПО 230 не может быть подменен после подтверждения его целостности на шаге 330, но до чтения образа ПО 230 средством установки 250 на шаге 350. Это обеспечивается тем, что на шаге 340 с помощью монитора безопасности 120 изменяют значение состояния образа ПО 230 на новое, указывающее на разрешение доступа к образу ПО 230 средству установки 250 и запрет доступа к образу ПО 230 средству проверки 240. Следовательно, изобретение, представленное на Фиг. 1-3, решает заявленную техническую проблему и достигает заявленного технического результата.Thus, at each step, the security monitor 120 , using the security policies 121 , provides control over the software installation process from the software image 230 . Therefore, even if there are vulnerabilities in individual components of the system 200 , the software installation process will be secure. In particular, steps 310 - 320 ensure that the software image 230 is only accessible by the verifier 240 , which in step 330 performs an integrity check on the software image 230 . In summary, steps 340 - 350 ensure that only the installer 250 accesses the software image 230 that has not been compromised by the checker 240 . Accordingly, if the result of the check at step 330 shows that the integrity of the software image 230 is broken, then the result of such a check will not be ignored by the installer 250 , and the software contained in the software image 230 will not be installed. In addition, the software image 230 cannot be tampered with after its integrity has been verified in step 330 but before the software image 230 is read by the installer 250 in step 350 . This is ensured by changing the state value of the software image 230 to a new value in step 340 using the security monitor 120 , indicating that the installer 250 can access the software image 230 and that the checker 240 does not have access to the software image 230 . Therefore, the invention shown in FIG. 1-3 solves the claimed technical problem and achieves the claimed technical result.

Частные варианты реализации системы проверки целостности образа ПО 230, раскрытые при описании Фиг. 1-2, также применимы и к способу, описанному на Фиг. 3.Particular embodiments of the system for verifying the integrity of the software image 230 disclosed in the description of FIG. 1-2 are also applicable to the method described in FIG. 3 .

На Фиг. 4 представлен другой вариант способа проверки целостности установочного образа ПО 230 перед выполнением установки ПО.On FIG. 4 shows another method for verifying the integrity of a software installation image 230 before performing a software installation.

На шаге 410 с помощью монитора безопасности 120 устанавливают:At step 410 , the security monitor 120 sets:

значения уровней целостности средства проверки 240 и средства установки 250 выше, чем значение уровня целостности образа ПО 230 (далее — компоненты);the values of the integrity levels of the checker 240 and the installer 250 are higher than the value of the integrity level of the software image 230 (hereinafter referred to as components);

значение уровня доступа средства проверки 240 равным значению уровня целостности образа ПО 230, значение уровня доступа средства установки 250 равным значению уровня целостности средства установки 250;the value of the access level of the checker 240 is equal to the value of the integrity level of the software image 230 , the value of the access level of the installer 250 is equal to the value of the integrity level of the installer 250 ;

политики безопасности 121, разрешающие доступ одного компонента к другому компоненту при условии, что значение уровня доступа одного компонента не выше значения уровня целостности другого компонента, где упомянутый доступ включает чтение данных.security policies 121 allowing access of one component to another component, provided that the value of the access level of one component is not higher than the value of the integrity level of another component, where said access includes reading data.

На шаге 420 с помощью монитора безопасности 120 предоставляют доступ к образу ПО 230 по запросу от средства проверки 240 при условии выполнения политик безопасности 121. Далее на шаге 430 с помощью средства проверки 240 выполняют проверку целостности образа ПО 230 согласно предоставленному доступу. При установлении, что целостность образа ПО 230 не нарушена, на шаге 440 с помощью монитора безопасности 120 изменяют значение уровня целостности образа ПО 230 на значение, равное значению уровня доступа средства установки 250. В итоге на шаге 450 с помощью монитора безопасности 120 предоставляют доступ к образу ПО 230 по запросу от средства установки 250 при выполнении политик безопасности 121. После этого на шаге 460 с использованием средства установки 250 выполняют установку ПО, содержащегося в образе ПО 230.At step 420 , the software image 230 is made available by the security monitor 120 upon request from the verifier 240 , provided that the security policies 121 are followed. Next, at step 430 , the checker 240 performs an integrity check on the software image 230 according to the granted access. When it is determined that the integrity of the software image 230 has not been violated, at step 440 , using the security monitor 120 , change the value of the integrity level of the software image 230 to a value equal to the value of the access level of the installer 250 . Finally, at step 450 , the security monitor 120 provides access to the software image 230 upon request from the installer 250 while executing the security policies 121 . Thereafter, in step 460 , the software contained in the software image 230 is installed using the installer 250 .

Таким образом, на каждом шаге монитором безопасности 120 с использованием политик безопасности 121 обеспечивается контроль процесса установки ПО из образа ПО 230. Поэтому даже в случае наличия уязвимостей отдельных компонентов системы 200 будет обеспечена безопасность процесса установки ПО. В частности, шаги 410-420 обеспечивают предоставление доступа к образу ПО 230 только средству проверки 240, которое на шаге 430 выполнит проверку целостности образа ПО 230. В итоге шаги 440-450 гарантируют, что только средство установки 250 получит доступ к образу ПО 230, целостность которого не нарушена по результатам проверки средством проверки 240. Соответственно, если результат проверки на шаге 430 показал, что целостность образа ПО 230 нарушена, то результат такой проверки не будет проигнорирован средством установки 250, а ПО, содержащееся в образе ПО 230, не будет установлено. Кроме того, образ ПО 230 не может быть подменен после подтверждения его целостности на шаге 430, но до чтения образа ПО 230 средством установки 250 на шаге 450. Это обеспечивается тем, что на шаге 440 с помощью монитора безопасности 120 изменяют значение уровня целостности образа ПО 230 на значение, равное значению уровня доступа средства установки 250.Thus, at each step, the security monitor 120 , using the security policies 121 , provides control over the software installation process from the software image 230 . Therefore, even if there are vulnerabilities in individual components of the system 200 , the software installation process will be secure. In particular, steps 410 - 420 ensure that the software image 230 is only accessible by the verifier 240 , which in step 430 will perform an integrity check on the software image 230 . Finally, steps 440 - 450 ensure that only the installer 250 has access to the software image 230 that has not been compromised by the checker 240 . Accordingly, if the result of the check at step 430 shows that the integrity of the software image 230 is broken, then the result of such a check will not be ignored by the installer 250 , and the software contained in the software image 230 will not be installed. In addition, the software image 230 cannot be tampered with after its integrity has been confirmed in step 430 but before the software image 230 is read by the installer 250 in step 450 . This is ensured by the fact that at step 440 , using the security monitor 120 , change the value of the integrity level of the software image 230 to a value equal to the value of the access level of the installer 250 .

Следовательно, изобретение, представленное на Фиг. 1-4, решает заявленную техническую проблему и достигает заявленного технического результата.Therefore, the invention shown in FIG. 1-4 solves the claimed technical problem and achieves the claimed technical result.

Частные варианты реализации системы, представленные при описании Фиг. 1-2, применимы также и к способам, представленным при описании Фиг. 3-4.Particular embodiments of the system presented in the description of FIG. 1-2 apply also to the methods presented in the description of FIG. 3-4 .

Пример реализации политик безопасности 121 с использованием модели мандатного контроля целостности (по способу на Фиг. 4).An example of the implementation of security policies 121 using the mandatory integrity control model (according to the method in Fig. 4 ).

В данном примере уровень целостности и уровень доступа компонентов системы 200 могут принимать одно из трех значений: низкий, средний, высокий.In this example, the integrity level and access level of system 200 components can take one of three values: low, medium, high.

Политики безопасности 121 могут быть заданы с использованием языка спецификации, например PSL (англ. policy specification language). На примере PSL мандатный контроль целостности задан классом политик mandatory_integrity_control. Класс политик безопасности определяет множество правил, соответствующих правилам модели, используемой в политике безопасности. Упомянутая модель может быть одной из следующих: конечный автомат, мандатный контроль целостности, темпоральная логика. Спецификация политики безопасности определяет соответствие упомянутых правил и взаимодействий в системе. При каждой попытке взаимодействия монитор безопасности 120 исполняет правила для определения решения о допустимости указанного взаимодействия. Для использования класса политик на его основе создают объект политики, для которого указывают конфигурацию. Например, для модели мандатного контроля целостности задают уровни целостности и уровни доступа. Таким образом, для задания уровней целостности определяют объект политик integrity, являющийся экземпляром класса mandatory_integrity_control:Security policies 121 may be defined using a specification language such as PSL (policy specification language). In the PSL example, mandatory integrity control is defined by the mandatory_integrity_control policy class. The security policy class defines a set of rules that correspond to the rules of the model used in the security policy. The mentioned model can be one of the following: state machine, mandatory integrity check, temporal logic. The specification of the security policy defines the conformity of the mentioned rules and interactions in the system. With each interaction attempt, the security monitor 120 executes rules to determine if the interaction is acceptable. To use a policy class, a policy object is created based on it, for which the configuration is specified. For example, for a model of mandatory integrity control, integrity levels and access levels are specified. Thus, to set integrity levels, an integrity policy object is defined, which is an instance of the mandatory_integrity_control class:

Figure 00000001
Figure 00000001

В конфигурации объекта политик integrity заданы три уровня целостности LOW (низкий), MEDIUM (средний) и HIGH (высокий) в порядке возрастания. То есть LOW < MEDIUM < HIGH.The integrity policy object configuration defines three integrity levels LOW (low), MEDIUM (medium) and HIGH (high) in ascending order. That is, LOW < MEDIUM < HIGH.

Далее задается политика безопасности 121 для создания процессов, реализующих компоненты системы 200:Next, the security policy 121 is set to create processes that implement the components of the system 200 :

Figure 00000002
Figure 00000002

где level — уровень целостности.where level is the integrity level.

Директива execute указана для назначения правил, которые будут исполнены монитором безопасности 120 при создании соответствующих процессов, а также для предоставления монитору безопасности 120 необходимого контекста ядром ОС 110 (метод exec интерфейса execute). Message.image указывает образ файла, из которого создают компонент системы 200. Кроме того, передаются идентификатор процесса, обратившегося к ядру ОС 110 для создания нового процесса dst.The execute directive is specified to specify the rules that will be executed by the security monitor 120 when the corresponding processes are created, as well as to provide the security monitor 120 with the necessary context by the OS kernel 110 (exec method of the execute interface). Message.image specifies the file image from which the system component 200 is created. In addition, the identifier of the process that called the OS kernel 110 to create a new process dst is transmitted.

Согласно приведенной выше политике безопасности с использованием монитора безопасности 120 загрузчику 220 (downloader) устанавливают значение уровня целостности LOW. Так как значение уровня доступа загрузчика 220 не задано, считается, что оно равно заданному значению уровня целостности загрузчика 220 — LOW. Таким образом, после загрузки образа ПО 230 упомянутому образу ПО 230 также будет задано значение уровня целостности LOW, равное значению уровня целостности загрузившего его загрузчика 220.According to the security policy above, using the security monitor 120 , the downloader 220 is set to an integrity level of LOW. Since the value of the access level of the loader 220 is not set, it is considered that it is equal to the set value of the integrity level of the loader 220 - LOW. Thus, once the software image 230 is loaded, said software image 230 will also have its integrity level set to LOW, equal to the integrity level of the loader 220 that downloaded it.

Figure 00000003
Figure 00000003

где levelA — уровень доступа.where levelA is the access level.

Согласно данной политике безопасности с использованием монитора безопасности 120 средству проверки 240 (verifier) устанавливают значение уровня целостности HIGH и значение уровня доступа LOW.According to this security policy, using the security monitor 120 , the verifier 240 is set to an integrity level value of HIGH and an access level value of LOW.

Figure 00000004
Figure 00000004

Согласно данной политике безопасности с использованием монитора безопасности 120 средству установки 250 (installer) устанавливают значение уровня целостности HIGH. Т.к. значение уровня доступа средства установки 250 не задано, считается, что оно равно заданному значению уровня целостности — HIGH.According to this security policy, using the security monitor 120 , the installer 250 is set to an integrity level value of HIGH. Because the value of the installer access level 250 is not set, it is considered to be equal to the set value of the integrity level - HIGH.

Figure 00000005
Figure 00000005

Согласно данной политике безопасности с использованием монитора безопасности 120 файловому хранилищу 260 (FileSystem), если оно присутствует в системе установки 200, устанавливают значение уровня целостности HIGH. Т.к. значение уровня доступа файлового хранилища 260 не задано, считается, что оно равно заданному значению уровня целостности — HIGH.According to this security policy, using the security monitor 120 , the file store 260 (FileSystem), if present on the installation system 200 , is set to an integrity level value of HIGH. Because the value of the file storage access level 260 is not set, it is considered to be equal to the set value of the integrity level — HIGH.

Таким образом, согласно представленному примеру, на шаге 410 с помощью монитора безопасности 120 устанавливают значения уровней целостности и политик безопасности 121. Согласно описанным политикам безопасности 121, загруженный образ ПО 230 имеет уровень целостности LOW. На шаге 420 средству проверки 240 с помощью монитора безопасности 120 предоставляют доступ к образу ПО 230, т.к. значение уровня доступа средства проверки 240 равно LOW, что совпадает со значением уровня целостности образа ПО 230. Таким образом, на шаге 430 с помощью средства проверки 240 выполняют проверку целостности образа ПО 230 согласно предоставленному доступу. После этого, если целостность образа ПО 230 не нарушена, на шаге 440 с помощью монитора безопасности 120 изменяют значение уровня целостности образа ПО 230 на значение, равное значению уровня доступа средства установки 240, то есть на значение HIGH. Далее на шаге 450 с помощью монитора безопасности 120 предоставляют доступ к образу ПО 230 по запросу от средства установки 250 при выполнении политик безопасности 121, то есть если уровень доступа средства установки 250 не выше уровня целостности образа ПО 230. В данном случае они будут совпадать, принимая значение HIGH. Следовательно, на шаге 460 с помощью средства установки 250 будет произведена установка ПО, содержащегося в образе ПО 230.Thus, according to the presented example, at step 410 using the security monitor 120 set the values of integrity levels and security policies 121 . According to the security policies 121 described, the downloaded software image 230 has an integrity level of LOW. At step 420 , the checker 240 is given access to the software image 230 by means of the security monitor 120 , because the value of the access level of the verifier 240 is LOW, which is the same as the value of the integrity level of the software image 230 . Thus, in step 430 , the checker 240 performs an integrity check on the software image 230 according to the granted access. After that, if the integrity of the software image 230 is not violated, at step 440 , using the security monitor 120 , change the value of the integrity level of the software image 230 to a value equal to the value of the access level of the installer 240 , i.e. to the value HIGH. Next, at step 450 , the security monitor 120 provides access to the software image 230 upon request from the installer 250 while executing the security policies 121 , that is, if the access level of the installer 250 is not higher than the integrity level of the software image 230 . In this case, they will match, taking the value HIGH. Therefore, at step 460 , the installer 250 will install the software contained in the software image 230 .

Стоит отметить, что если бы существовало поддельное файловое хранилище 280 с уровнем целостности MEDIUM, то с использованием методов (сервисов) поддельного файлового хранилища 280 загрузчик 220 записал бы поддельный образ ПО 270 в поддельное файловое хранилище 280 с уровнем целостности LOW. Такой поддельный образ ПО 270 пройдет проверку целостности средством проверки 240. Хотя уровень целостности поддельного образа ПО 270 и будет повышен до максимально допустимого значения, это значение не будет превышать значение уровня целостности поддельного файлового хранилища 280, то есть значения MEDIUM<HIGH. В результате средство установки 250 не получит доступ к поддельному образу ПО 270 и не установит ПО из поддельного образа ПО 270, т.к. значение уровня целостности поддельного образа ПО 270 будет равно MEDIUM<HIGH.It is worth noting that if there were a fake file storage 280 with a MEDIUM integrity level, then using the methods (services) of the fake file storage 280 , the loader 220 would write the fake software image 270 to the fake file storage 280 with the LOW integrity level. Such a fake software image 270 will pass an integrity check by the checker 240. Although the integrity level of the fake software image 270 will be increased to the maximum allowed value, this value will not exceed the value of the integrity level of the fake file store 280 , i.e. the value MEDIUM<HIGH. As a result, the installer 250 will not access the fake software image 270 and will not install the software from the fake software image 270 because the integrity level value of the fake software image 270 will be MEDIUM<HIGH.

На представленном примере политик безопасности 121 показано, как заявленное изобретение решает техническую проблему при наличии уязвимости недоверенных компонентов, участвующих в процессе установки программного обеспечения. Также следует, что заявленное изобретение достигает заявленного технического результата, обеспечивая безопасность процесса установки программного обеспечения за счет предоставления доступа к образу ПО монитором безопасности с использованием политик безопасности.The present example of security policies 121 shows how the claimed invention solves a technical problem in the presence of a vulnerability of untrusted components involved in the software installation process. It also follows that the claimed invention achieves the claimed technical result, ensuring the security of the software installation process by providing access to the software image by the security monitor using security policies.

Пример реализации политик безопасности 121 с использованием конечного автомата (Фиг. 5). An example of implementing security policies 121 using a state machine (FIG. 5).

На Фиг. 5 представлена диаграмма конечного автомата для варианта реализации политик безопасности 121 с использованием конечного автомата. Стоит отметить, что может быть использован как один (глобальный) конечный автомат, так и несколько конечных автоматов, различных для каждого конкретного образа ПО 230, в случае, когда в системе 200 присутствует более одного образа ПО 230. При этом при использовании нескольких конечных автоматов каждому из них дополнительно передают идентификатор соответствующего им образа ПО 230.On FIG. 5 is a diagram of a state machine for an implementation of security policies 121 using a state machine. It is worth noting that both one (global) state machine and several state machines, different for each specific software image 230 , can be used in the case when more than one software image 230 is present in the system 200 . At the same time, when using several state machines, each of them is additionally transferred with the identifier of the corresponding software image 230 .

Ниже представлено описание конечного автомата install_checker:The following is a description of the install_checker state machine:

Figure 00000006
Figure 00000006

Конечный автомат install_checker может находиться в одном из следующих состояний (states): initialized510 (начальное), sealed 520 (запечатанное) и verified 530 (проверенное). Таблица переходов конечного автомата install_checker представлена в структуре transitions. При инициализации конечного автомата install_checker, он находится в состоянии initialized 510. Из состояния initialized 510 конечный автомат может перейти только в состояние sealed 520, которое соответствует состоянию образа ПО 230, указывающему на разрешение доступа к образу ПО 230 только для средства проверки 240.The install_checker state machine can be in one of the following states: initialized 510 (initial), sealed 520 (sealed), and verified 530 (verified). The install_checker state machine transition table is represented in the transitions structure. When the install_checker state machine is initialized, it is in the initialized 510 state. From the initialized state 510 , the state machine can only transition to the sealed state 520 , which corresponds to the state of the software image 230 indicating that only the verifier 240 can access the software image 230 .

Из состояния sealed 520 конечный автомат может перейти только в состояние verified 530, которое соответствует состоянию образа ПО 230, указывающему на разрешение доступа к образу ПО 230 средству установки 250 и запрет доступа к образу ПО средству проверки 240. Из состояния verified 530 конечный автомат install_checker может перейти в то же состояние verified 530 или в состояние initialized 510.From the sealed 520 state, the state machine can only transition to the verified 530 state, which corresponds to the state of the software image 230 indicating that the installer 250 is allowed access to the software image 230 and that the verifier 240 is denied access to the software image. From the verified 530 state, the install_checker state machine can transition to the same verified 530 state or to the initialized 510 state.

Ниже представлены примеры политик безопасности 121, использующие конечный автомат install_checker.The following are examples of security policies 121 using the install_checker state machine.

Figure 00000007
Figure 00000007

Согласно данной политике безопасности, системе установки 200 (Manager) разрешен запрос 142 (request) к методу install средства установки 250 (installer) при условии, что конечный автомат install_checker находится в состоянии verified 530. При этом метод install выполняет установку ПО из образа ПО 230.According to this security policy, the installer 200 (Manager) is allowed to request 142 (request) to the install method of the installer 250 (installer) provided that the install_checker state machine is in the verified state 530 . The install method then installs the software from the software image 230 .

Figure 00000008
Figure 00000008

Согласно данной политике безопасности, средству проверки 240 (verifier) разрешено выполнить запрос безопасности 144 (security) на изменение состояния (метод confirm) конечного автомата install_checker на verified. При этом изменение состояния конечного автомата выполнит монитор безопасности 120 в случае, если указанное изменение состояния конечного автомата находится в соответствии с таблицей переходов конечного автомата.According to this security policy, the verifier 240 (verifier) is allowed to issue a security request 144 (security) to change the state (confirm method) of the install_checker state machine to verified. In this case, the state machine state change will be performed by the security monitor 120 if the specified state machine state change is in accordance with the state machine transition table.

Figure 00000009
Figure 00000009

Согласно данной политике безопасности, системе установки 200 (Manager) разрешен запрос 142 к методу write файлового хранилища storage на запись образа ПО 230 при условии, что конечный автомат install_checker находится в состоянии initialized. В этом случае загрузчик 220 начнет процесс записи образа ПО 230.According to this security policy, the installation system 200 (Manager) is allowed to request 142 to the write method of file storage to write the software image 230 , provided that the install_checker state machine is in the initialized state. In this case, the boot loader 220 will begin the process of burning the software image 230 .

Figure 00000010
Figure 00000010

Согласно данной политике безопасности, системе установки 200 (Manager) разрешен запрос 142 на вызов метода commit (подтверждение завершения записи образа ПО 230) файлового хранилища storage. При этом состояние конечного автомата install_checker будет изменено с initialized на sealed.According to this security policy, the installation system 200 (Manager) is allowed to request 142 to call the commit method (confirmation of the completion of writing the software image 230 ) of the storage file storage. This will change the state of the install_checker state machine from initialized to sealed.

Figure 00000011
Figure 00000011

Согласно данной политике безопасности, средству проверки 240 (Verifier) разрешен запрос 142 к файловому хранилищу (Storage) на чтение (метод read, то есть разрешен доступ на чтение) образа ПО 230 при условии, что конечный автомат install_checker находится в состоянии sealed 520.According to this security policy, the verification tool 240 (Verifier) is allowed to request 142 to the file storage (Storage) to read (read method, that is, read access is allowed) of the software image 230 , provided that the install_checker state machine is in the sealed state 520 .

Figure 00000012
Figure 00000012

Согласно данной политике безопасности, средству установки 250 (Installer) разрешен запрос 142 к файловому хранилищу на чтение (метод read, то есть разрешен доступ на чтение) образа ПО 230 при условии, что конечный автомат install_checker находится в состоянии verified 530.According to this security policy, the installer 250 (Installer) is allowed to request 142 to the file storage to read (the read method, that is, read access is allowed) of the software image 230 , provided that the install_checker state machine is in the verified state 530 .

На представленном примере политик безопасности 121 показано, как заявленное изобретение решает техническую проблему при наличии уязвимости недоверенных компонентов, участвующих в процессе установки программного обеспечения. Также следует, что заявленное изобретение достигает заявленный технический результат, обеспечивая безопасность процесса установки программного обеспечения за счет предоставления доступа к образу ПО монитором безопасности с использованием политик безопасности.The present example of security policies 121 shows how the claimed invention solves a technical problem in the presence of a vulnerability of untrusted components involved in the software installation process. It also follows that the claimed invention achieves the claimed technical result, ensuring the security of the software installation process by providing access to the software image by the security monitor using security policies.

Пример реализации политик безопасности 121 с использованием темпоральной логики.An example of implementing security policies 121 using temporal logic.

При этом подходе определенным взаимодействиям между процессами 131-132 в ОС 100 ставятся в соответствие события состояния образа ПО 230 из множества, которое определяют в соответствии с целями безопасности. В частном примере реализации такое множество включает события {seal, verify, apply}, где seal — событие «запечатывания» образа ПО 230, verify — событие проверки целостности образа ПО 230, apply — событие установки ПО из образа ПО 230. Свойства (требования) безопасности формулируют с помощью формулы темпоральной логики, например следующим образом:In this approach, certain interactions between processes 131-132 in OS 100 are mapped to state events of the software image 230 from a set that is defined in accordance with security goals. In a particular implementation example, such a set includes the events {seal, verify, apply}, where seal is the event of "sealing" the software image 230 , verify is the event of checking the integrity of the software image 230 , apply is the event of installing software from the software image 230 . Security properties (requirements) are formulated using a temporal logic formula, for example, as follows:

Свойство 1. Всегда, когда выполняется проверка целостности образа ПО 230, должно быть гарантировано, что после процесса проверки целостности образа ПО 230 упомянутый образ ПО 230 не будет изменен. При использовании той же схемы, что и в случае конечного автомата, данное свойство можно записать в виде формулы: Feature 1 : Whenever a software image integrity check 230 is performed, it must be guaranteed that after the software image integrity check 230 process, said software image 230 will not be modified. Using the same scheme as in the case of a state machine, this property can be written as a formula:

G (verify => P seal),G (verify => P seal),

где G — темпоральный оператор «всегда в будущем», P — темпоральный оператор «хотя бы один раз в прошлом».where G is the "always in the future" temporal operator, P is the "at least once in the past" temporal operator.

Свойство 1 означает, что всегда, когда осуществляется проверка целостности образа ПО 230, в прошлом должен быть вызван метод файлового хранилища 260, гарантирующий невозможность дальнейшей записи данных в образ ПО 230.Property 1 means that whenever the integrity of the software image 230 is checked, the file storage method 260 must be called in the past to ensure that no further data is written to the software image 230 .

Свойство 2. Установка ПО из образа ПО 230 возможна только в том случае, если подтверждена целостность образа ПО 230. Данное свойство можно записать в виде формулы: Property 2: Installing software from the software image 230 is possible only if the integrity of the software image 230 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:

Figure 00000013
Figure 00000013

Стоит отметить, что возможны и другие формулировки свойств. Например, свойство 2 может быть задано следующим образом: образ ПО 230 не применяется, пока не подтверждена целостность образа ПО 230:It should be noted that other formulations of properties are also possible. For example, property 2 could be set as follows: software image 230 is not applied until the integrity of software image 230 is verified:

!apply U verify,!apply U verify,

где U — темпоральный оператор «до тех пор, пока не наступит заданное событие».where U is the temporal operator "until the specified event occurs".

Далее представлен пример реализации политики безопасности 121 с использованием темпоральной логики при установке программного обеспечения.The following is an example of implementing security policy 121 using temporal logic when installing software.

Политика control связывает с данным межпроцессным взаимодействием событие apply и проверяет истинность формулы, указанной в конфигурации объекта политик. Если формула истинна, политика разрешает взаимодействие, если ложна — запрещает.The control policy 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.

Figure 00000014
Figure 00000014

Средство проверки 240 сообщает монитору безопасности 120 об успешной проверке образа ПО 230 — событие verify:The verifier 240 notifies the security monitor 120 of the successful verification of the software image 230 - the verify event:

Figure 00000015
Figure 00000015

Метод restart удаляет всю историю событий объекта класса tl.The restart method deletes the entire event history of the tl class object.

Figure 00000016
Figure 00000016

При вызове метода commit происходит «запечатывание» образа ПО 230.When the commit method is called, the software image is "sealed" 230 .

Figure 00000017
Figure 00000017

Так как средство установки 250 (Installer) считается доверенным компонентом, то выполнение чтения образа ПО 230 будет осуществлено им только по команде от системы установки 200 (Manager), для которой была задана политика безопасности ранее.Since the installer 250 (Installer) is considered a trusted component, it will only read the software image 230 upon command from the installer 200 (Manager), for which the security policy was previously set.

Фиг. 6 представляет пример компьютерной системы общего назначения, персональный компьютер или сервер 20, содержащий центральный процессор 21, системную память 22 и системную шину 23, которая содержит разные системные компоненты, в том числе память, связанную с центральным процессором 21. Системная шина 23 реализована, как любая известная из уровня техники шинная структура, содержащая в свою очередь память шины или контроллер памяти шины, периферийную шину и локальную шину, которая способна взаимодействовать с любой другой шинной архитектурой. Системная память содержит постоянное запоминающее устройство (ПЗУ) 24, память с произвольным доступом (ОЗУ) 25. Основная система ввода/вывода (BIOS) 26, содержит основные процедуры, которые обеспечивают передачу информации между элементами персонального компьютера 20, например, в момент загрузки операционной системы с использованием ПЗУ 24. Fig. 6 shows an example of a general purpose computer system, a personal computer or a server 20 ', comprising a central processing unit 21 ', system memory 22 ', and a system bus 23 ', which contains various system components including memory associated with the central processing unit 21 '. The system bus 23 is implemented as any bus structure known in the art, in turn comprising a bus memory or bus memory controller, a peripheral bus, and a local bus capable of interfacing with any other bus architecture. The system memory contains read-only memory (ROM) 24 , random access memory (RAM) 25 . The main input/output system (BIOS) 26 contains the basic procedures that ensure the transfer of information between the elements of a personal computer 20 , for example, at the time of booting the operating system using ROM 24 .

Персональный компьютер 20 в свою очередь содержит жесткий диск 27 для чтения и записи данных, привод магнитных дисков 28 для чтения и записи на сменные магнитные диски 29 и оптический привод 30 для чтения и записи на сменные оптические диски 31, такие как CD-ROM, DVD-ROM и иные оптические носители информации. Жесткий диск 27, привод магнитных дисков 28, оптический привод 30 соединены с системной шиной 23 через интерфейс жесткого диска 32, интерфейс магнитных дисков 33 и интерфейс оптического привода 34 соответственно. Приводы и соответствующие компьютерные носители информации представляют собой энергонезависимые средства хранения компьютерных инструкций, структур данных, программных модулей и прочих данных персонального компьютера 20.The personal computer 20 in turn comprises a hard disk 27 for reading and writing data, a magnetic disk drive 28 for reading and writing to removable magnetic disks 29 and an optical drive 30 for reading and writing to removable optical disks 31 such as CD-ROM, DVD -ROM and other optical storage media. The hard disk 27 , the magnetic disk drive 28 , the optical drive 30 are connected to the system bus 23 via the hard disk interface 32 , the magnetic disk interface 33 , and the optical drive interface 34 , respectively. Drives and related computer storage media are non-volatile means of storing computer instructions, data structures, program modules, and other personal computer data 20 .

Настоящее описание раскрывает реализацию системы, которая использует жесткий диск 27, сменный магнитный диск 29 и сменный оптический диск 31, но следует понимать, что возможно применение иных типов компьютерных носителей информации 56, которые способны хранить данные в доступной для чтения компьютером форме (твердотельные накопители, флеш карты памяти, цифровые диски, память с произвольным доступом (ОЗУ) и т.п.), которые подключены к системной шине 23 через контроллер 55.The present description discloses an implementation of a system that utilizes a hard disk 27 ', a removable magnetic disk 29 ' and a removable optical disk 31 ', but it should be understood that other types of computer storage media 56 ' that are capable of storing data in a computer-readable form (solid state drives, flash memory cards, digital disks, random access memory (RAM), etc.), which are connected to the system bus 23 through the controller 55 .

Компьютер 20 имеет файловую систему 36, где хранится записанная операционная система 35, а также дополнительные программные приложения 37, другие программные модули 38 и данные программ 39. Пользователь имеет возможность вводить команды и информацию в персональный компьютер 20 посредством устройств ввода (клавиатуры 40, манипулятора «мышь» 42). Могут использоваться другие устройства ввода (не отображены): микрофон, джойстик, игровая консоль, сканер и т.п. Подобные устройства ввода по своему обычаю подключают к компьютерной системе 20 через последовательный порт 46, который в свою очередь подсоединен к системной шине, но могут быть подключены иным способом, например, при помощи параллельного порта, игрового порта или универсальной последовательной шины (USB). Монитор 47 или иной тип устройства отображения также подсоединен к системной шине 23 через интерфейс, такой как видеоадаптер 48. В дополнение к монитору 47, персональный компьютер может быть оснащен другими периферийными устройствами вывода (не отображены), например, колонками, принтером и т.п.The computer 20 has a file system 36 that stores the recorded operating system 35 as well as additional software applications 37 , other program modules 38 and program data 39 . The user has the ability to enter commands and information into the personal computer 20 through input devices (keyboard 40 , mouse 42 ). Other input devices (not shown) may be used: microphone, joystick, game console, scanner, etc. Such input devices are normally connected to the computer system 20 through a serial port 46 , which in turn is connected to the system bus, but may be connected in other ways, such as through a parallel port, game port, or universal serial bus (USB). A monitor 47 or other type of display device is also connected to the system bus 23 via an interface such as a video adapter 48 '. In addition to the monitor 47 , the personal computer may be equipped with other peripheral output devices (not shown), such as speakers, a printer, and the like.

Персональный компьютер 20 способен работать в сетевом окружении, при этом используется сетевое соединение с другим или несколькими удаленными компьютерами 49. Удаленный компьютер (или компьютеры) 49 являются такими же персональными компьютерами или серверами, которые имеют большинство или все упомянутые элементы, отмеченные ранее при описании существа персонального компьютера 20, представленного на Фиг. 6. В вычислительной сети могут присутствовать также и другие устройства, например, маршрутизаторы, сетевые станции, пиринговые устройства или иные сетевые узлы.The personal computer 20 is capable of operating in a networked environment using a network connection to another or more remote computers 49 . The remote computer (or computers) 49 are the same personal computers or servers that have most or all of the elements mentioned earlier in the description of the nature of the personal computer 20 shown in FIG. 6 . Other devices may also be present in the computer network, such as routers, network stations, peer-to-peer devices, or other network nodes.

Сетевые соединения могут образовывать локальную вычислительную сеть (LAN) 50 и глобальную вычислительную сеть (WAN). Такие сети применяются в корпоративных компьютерных сетях (также — информационных системах), внутренних сетях компаний и, как правило, имеют доступ к сети Интернет. В LAN- или WAN-сетях персональный компьютер 20 подключен к локальной сети 50 через сетевой адаптер или сетевой интерфейс 51. При использовании сетей персональный компьютер 20 может использовать модем 54 или иные средства обеспечения связи с глобальной вычислительной сетью, такой как Интернет. Модем 54, который является внутренним или внешним устройством, подключен к системной шине 23 посредством последовательного порта 46. Следует уточнить, что сетевые соединения являются лишь примерными и не обязаны отображать точную конфигурацию сети, т.е. в действительности существуют иные способы установления соединения техническими средствами связи одного компьютера с другим.The network connections may form a local area network (LAN) 50 and a wide area network (WAN). Such networks are used in corporate computer networks (also information systems), internal networks of companies and, as a rule, have access to the Internet. In LAN or WAN networks, the personal computer 20 is connected to the local network 50 via a network adapter or network interface 51 . When using networks, personal computer 20 may use a modem 54 or other means to communicate with a wide area network, such as the Internet. The modem 54 , which is an internal or external device, is connected to the system bus 23 via the serial port 46 . It should be clarified that the network connections are only indicative and are not required to represent the exact network configuration, i.e. in fact, there are other ways to establish a connection by technical means of communication from one computer to another.

В соответствии с описанием, компоненты, этапы исполнения, структура данных, описанные выше, могут быть выполнены, используя различные типы операционных систем, компьютерных платформ, программ.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 (47)

1. Способ проверки целостности установочного образа программного обеспечения (далее — ПО) перед выполнением установки ПО, в котором:1. A method for checking the integrity of the software installation image (hereinafter referred to as the software) before installing the software, in which: а) с помощью монитора безопасности устанавливают значение состояния установочного образа ПО (далее — образ ПО), указывающее на разрешение доступа к образу ПО только для средства проверки, при этом состояние образа ПО является параметром, используемым политиками безопасности для предоставления разрешения или запрета доступа к образу ПО компонентам, включающим: средство проверки, средство установки;a) using the security monitor, set the value of the state of the software installation image (hereinafter referred to as the software image), indicating that access to the software image is allowed only for the scan tool, while the state of the software image is a parameter used by security policies to allow or deny access to the image Software components, including: verification tool, installer; б) с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства проверки при условии выполнения политик безопасности;b) using the security monitor, provide access to the software image upon request from the scanner, subject to the implementation of security policies; в) с помощью средства проверки выполняют проверку целостности образа ПО согласно предоставленному доступу;c) using the verification tool, check the integrity of the software image according to the access granted; г) при установлении, что целостность образа ПО не нарушена, с помощью монитора безопасности изменяют значение состояния образа ПО на новое, указывающее на разрешение доступа к образу ПО средству установки и запрет доступа к образу ПО средству проверки;d) when it is determined that the integrity of the software image has not been violated, using the security monitor, change the value of the state of the software image to a new one, indicating that access to the software image is allowed for the installer and that access to the software image is denied for the checker; д) с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства установки при выполнении политик безопасности.e) using the security monitor, provide access to the software image upon request from the installer when executing security policies. 2. Способ по п. 1, в котором политики безопасности используют конечный автомат, где состоянием конечного автомата является состояние образа ПО, при этом политика безопасности определяет разрешение или запрет доступа к образу ПО в зависимости от состояния конечного автомата и в соответствии с таблицей переходов состояний конечного автомата.2. The method according to claim 1, wherein the security policies use a state machine, where the state of the state machine is the state of the software image, while the security policy determines whether access to the software image is allowed or denied depending on the state of the state machine and in accordance with the state transition table finite automaton. 3. Способ по п. 1, в котором политики безопасности используют темпоральную логику.3. The method of claim 1, wherein the security policies use temporal logic. 4. Способ по п. 1, в котором упомянутый образ ПО содержит один или несколько объектов из следующих:4. The method of claim 1, wherein said software image contains one or more of the following: • ПО;• ON; • обновление ПО;• Software Update; • вложенный образ ПО.• nested software image. 5. Способ по п. 4, в котором выполняют проверку целостности образа ПО путем проверки целостности объектов, содержащихся в упомянутом образе ПО, при этом целостность образа ПО считается не нарушенной, если целостность по меньшей мере одного объекта, содержащегося в образе ПО, не нарушена.5. The method according to claim 4, in which the software image integrity is checked by checking the integrity of the objects contained in the mentioned software image, while the integrity of the software image is considered intact if the integrity of at least one object contained in the software image is not violated . 6. Способ по п. 1, в котором с помощью средства установки выполняют установку ПО, содержащегося в упомянутом образе ПО.6. The method of claim 1, wherein the installer performs installation of the software contained in said software image. 7. Способ по п. 5, в котором с помощью средства установки выполняют установку только того ПО, содержащегося в упомянутом образе ПО, целостность которого не нарушена.7. The method of claim 5, wherein the installer installs only the software contained in said software image that is intact. 8. Способ по п. 1, в котором выполняют проверку целостности образа ПО одним из способов:8. The method according to claim 1, in which the integrity of the software image is checked in one of the following ways: • путем проверки электронно-цифровой подписи упомянутого образа ПО;• by checking the digital signature of the said software image; • путем получения подтверждения от пользователя;• by receiving confirmation from the user; • путем использования кодов аутентификации сообщений, в частности имитовставки;• by using message authentication codes, in particular imitation insertion; • путем проверки соответствия роли пользователя заданным требованиям;• by checking whether the user's role meets the specified requirements; • путем проверки заданных атрибутов образа ПО.• by checking the specified attributes of the software image. 9. Способ по п. 1, в котором с помощью загрузчика загружают установочный образ ПО с удаленного ресурса.9. The method according to claim 1, in which, using the bootloader, the software installation image is loaded from a remote resource. 10. Способ по п. 1, в котором упомянутый доступ включает чтение данных.10. The method of claim 1, wherein said access includes reading data. 11. Способ проверки целостности установочного образа программного обеспечения перед выполнением установки ПО, в котором:11. A method for checking the integrity of the software installation image before performing the software installation, in which: а) с помощью монитора безопасности устанавливают:a) using the security monitor set: • значения уровней целостности средства проверки и средства установки (далее — компоненты) выше, чем значение уровня целостности образа ПО;• the values of the integrity levels of the scan tool and the installer (hereinafter referred to as components) are higher than the value of the integrity level of the software image; • значение уровня доступа средства проверки равным значению уровня целостности образа ПО, значение уровня доступа средства установки равным значению уровня целостности средства установки;• the value of the access level of the checker equal to the value of the integrity level of the software image, the value of the access level of the installer is equal to the value of the integrity level of the installer; • политики безопасности, разрешающие доступ одного компонента к другому компоненту при условии, что значение уровня доступа одного компонента не выше значения уровня целостности другого компонента;• security policies that allow access of one component to another component, provided that the value of the access level of one component is not higher than the value of the integrity level of another component; б) с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства проверки при условии выполнения политик безопасности;b) using the security monitor, provide access to the software image upon request from the scanner, subject to the implementation of security policies; в) с помощью средства проверки выполняют проверку целостности образа ПО согласно предоставленному доступу;c) using the verification tool, check the integrity of the software image according to the access granted; г) при установлении, что целостность образа ПО не нарушена, с помощью монитора безопасности изменяют значение уровня целостности образа ПО на значение, равное значению уровня доступа средства установки;d) when it is determined that the integrity of the software image is not violated, using the security monitor, change the value of the integrity level of the software image to a value equal to the value of the access level of the installer; д) с помощью монитора безопасности предоставляют доступ к образу ПО по запросу от средства установки при выполнении политик безопасности.e) using the security monitor, provide access to the software image upon request from the installer when executing security policies. 12. Система проверки целостности установочного образа ПО перед выполнением установки ПО, содержащая:12. The system for checking the integrity of the software installation image before performing the software installation, containing: а) монитор безопасности, предназначенный для предоставления согласно политикам безопасности разрешения или запрета доступа к образу ПО компонентам, включающим: средство проверки, средство установки, при этом монитор безопасности выполнен с возможностью разрешения доступа к образу ПО сначала только средству проверки, и после установления средством проверки, что целостность образа ПО не нарушена, разрешения доступа к образу ПО средству установки и запрета доступа к образу ПО средству проверки;a) a security monitor designed to provide, according to security policies, permission or prohibition of access to the software image to components, including: a checker, an installer, while the security monitor is configured to allow access to the software image first only to the checker, and after being established by the checker that the integrity of the software image has not been violated, allowing access to the software image to the installer and denying access to the software image to the verification tool; б) упомянутое средство проверки, предназначенное для выполнения проверки целостности образа ПО согласно предоставленному доступу;b) said verification tool for performing integrity checks on the software image according to the granted access; в) упомянутое средство установки, предназначенное для выполнения установки ПО, содержащегося в образе ПО.c) said installation tool, designed to install the software contained in the software image. 13. Система по п. 12, в которой монитор безопасности дополнительно предназначен для:13. The system according to claim 12, in which the security monitor is additionally designed to: • установления значения состояния образа ПО, указывающего на разрешение доступа к образу ПО только для средства проверки, при этом состояние образа ПО является параметром, используемым политиками безопасности для предоставления разрешения или запрета доступа к образу ПО упомянутым компонентам;• setting the value of the state of the software image, indicating that access to the software image is allowed only for the scanner, while the state of the software image is a parameter used by security policies to allow or deny access to the software image to the mentioned components; • изменения значения состояния образа ПО на новое, указывающее на разрешение доступа к образу ПО средству установки и запрет доступа к образу ПО средству проверки.• changing the value of the software image state to a new one, which indicates that the installer can access the software image and that the verification tool does not have access to the software image. 14. Система по п. 13, в которой политики безопасности используют конечный автомат, где состоянием конечного автомата является состояние образа ПО, при этом политика безопасности определяет разрешение или запрет доступа к образу ПО в зависимости от состояния конечного автомата и в соответствии с таблицей переходов состояний конечного автомата.14. The system of claim 13, wherein the security policies use a state machine, where the state of the state machine is the state of the software image, wherein the security policy determines whether access to the software image is allowed or denied depending on the state of the state machine and in accordance with the state transition table finite automaton. 15. Система по п. 12, в которой политики безопасности используют темпоральную логику.15. The system of claim 12, wherein the security policies use temporal logic. 16. Система по п. 12, в которой монитор безопасности дополнительно предназначен для:16. The system according to claim 12, in which the security monitor is additionally designed to: • установки значений уровней целостности средства проверки и средства установки выше, чем значение уровня целостности образа ПО;• setting the values of the integrity levels of the checker and the installer higher than the value of the integrity level of the software image; • установки значения уровня доступа средства проверки равным значению уровня целостности образа ПО, значение уровня доступа средства установки равным значению уровня целостности средства установки;• setting the value of the access level of the checker equal to the value of the integrity level of the software image, the value of the access level of the installer equal to the value of the integrity level of the installer; • установки политик безопасности, разрешающих доступ одного компонента к другому компоненту при условии, что значение уровня доступа одного компонента не выше значения уровня целостности другого компонента, где упомянутый доступ включает чтение данных;• setting security policies that allow access of one component to another component, provided that the value of the access level of one component is not higher than the value of the integrity level of another component, where said access includes reading data; • изменения значения уровня целостности образа ПО на значение, равное значению уровня доступа средства установки, при условии, что целостность образа ПО не нарушена.• changing the value of the integrity level of the software image to a value equal to the value of the access level of the installer, provided that the integrity of the software image is not violated. 17. Система по п. 12, в которой упомянутый доступ к образу ПО включает чтение образа ПО.17. The system of claim 12, wherein said access to the software image includes reading the software image.
RU2021113657A 2021-05-13 2021-05-13 System and methods for verifying the integrity of software install image RU2775157C1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/453,463 US20220366087A1 (en) 2021-05-13 2021-11-03 Systems and methods for verifying the integrity of a software installation image
EP21213952.1A EP4089555B1 (en) 2021-05-13 2021-12-13 Systems and methods for verifying the integrity of a software installation image

Publications (1)

Publication Number Publication Date
RU2775157C1 true RU2775157C1 (en) 2022-06-28

Family

ID=

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2375739C2 (en) * 2004-04-30 2009-12-10 Майкрософт Корпорейшн Method and system for limiting software update
RU2495487C1 (en) * 2012-08-10 2013-10-10 Закрытое акционерное общество "Лаборатория Касперского" System and method of determining trust when updating licensed software
US10225426B2 (en) * 2013-11-15 2019-03-05 Canon Kabushiki Kaisha Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
RU2696951C1 (en) * 2018-04-19 2019-08-07 Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации Method of protecting software from undeclared capabilities contained in obtained updates
US20200004966A1 (en) * 2014-12-26 2020-01-02 Mcafee, Llc Trusted updates

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2375739C2 (en) * 2004-04-30 2009-12-10 Майкрософт Корпорейшн Method and system for limiting software update
RU2495487C1 (en) * 2012-08-10 2013-10-10 Закрытое акционерное общество "Лаборатория Касперского" System and method of determining trust when updating licensed software
US10225426B2 (en) * 2013-11-15 2019-03-05 Canon Kabushiki Kaisha Image forming apparatus having firmware update function, method of controlling the same, program for executing the method, and storage medium
US20200004966A1 (en) * 2014-12-26 2020-01-02 Mcafee, Llc Trusted updates
RU2696951C1 (en) * 2018-04-19 2019-08-07 Федеральное государственное казенное военное образовательное учреждение высшего образования Академия Федеральной службы охраны Российской Федерации Method of protecting software from undeclared capabilities contained in obtained updates

Similar Documents

Publication Publication Date Title
US8001596B2 (en) Software protection injection at load time
JP4796340B2 (en) System and method for protected operating system boot using state verification
US7424610B2 (en) Remote provisioning of secure systems for mandatory control
US8909940B2 (en) Extensible pre-boot authentication
US8429741B2 (en) Altered token sandboxing
US8375458B2 (en) System and method for authenticating code executing on computer system
JP4975127B2 (en) Apparatus for providing tamper evidence to executable code stored on removable media
Long et al. Java coding guidelines: 75 recommendations for reliable and secure programs
US10936722B2 (en) Binding of TPM and root device
US11797664B2 (en) Computer device and method for controlling process components
JP7228751B2 (en) Method and apparatus for authority management, computer equipment and storage medium
US20070294530A1 (en) Verification System and Method for Accessing Resources in a Computing Environment
US20030014661A1 (en) Information processing apparatus and method of processing information for safely executing software input from outside
US7721281B1 (en) Methods and apparatus for securing local application execution
WO2017016231A1 (en) Policy management method, system and computer storage medium
US20040250086A1 (en) Method and system for protecting against software misuse and malicious code
Yao et al. Building Secure Firmware
RU2775157C1 (en) System and methods for verifying the integrity of software install image
Janjua et al. Towards a standards-compliant pure-software trusted execution environment for resource-constrained embedded devices
US20230074455A1 (en) System and method for monitoring delivery of messages passed between processes from different operating systems
Haldar et al. Symmetric behavior-based trust: A new paradigm for Internet computing
EP4089555B1 (en) Systems and methods for verifying the integrity of a software installation image
US20220366087A1 (en) Systems and methods for verifying the integrity of a software installation image
CN112307481B (en) System trusted starting method, electronic equipment and computer readable storage medium
RU2773108C1 (en) System and method for forming a security monitor