RU2807463C2 - Ransomware mitigation in integrated isolated applications - Google Patents

Ransomware mitigation in integrated isolated applications Download PDF

Info

Publication number
RU2807463C2
RU2807463C2 RU2021137245A RU2021137245A RU2807463C2 RU 2807463 C2 RU2807463 C2 RU 2807463C2 RU 2021137245 A RU2021137245 A RU 2021137245A RU 2021137245 A RU2021137245 A RU 2021137245A RU 2807463 C2 RU2807463 C2 RU 2807463C2
Authority
RU
Russia
Prior art keywords
token
resource
computing environment
authorization token
access
Prior art date
Application number
RU2021137245A
Other languages
Russian (ru)
Other versions
RU2021137245A (en
Inventor
Джонатан Дэвид ШВАРЦ
Анастасия ТАРНУСКАЯ
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2021137245A publication Critical patent/RU2021137245A/en
Application granted granted Critical
Publication of RU2807463C2 publication Critical patent/RU2807463C2/en

Links

Images

Abstract

FIELD: computer engineering.
SUBSTANCE: invention is aimed to increase the security of the network and/or resources associated with it. It is achieved due to the fact that a token request from an application running in the first computing environment can be received in the second computing environment. The second computing environment may assign a trust level to the received token request that indicates that the first computing environment may not be trusted. The token request along with the trust level may be provided to the authorization server to generate an authorization token that includes a trust indicator indicating the trust level of the second computing environment. When an application running on a second computing environment passes an authorization token to a resource manager to access a resource, the resource manager may be configured to take precautionary actions to protect the resource before granting access, such as creating a backup copy of the resource.
EFFECT: increase in the security of the network and/or resources associated with it.
15 cl, 7 dwg

Description

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

[0001] В изолированных вычислительных устройствах приложения могут исполняться в среде, которая частично или полностью изолирована от основной вычислительной среды вычислительного хоста. Такие изолированные устройства могут обеспечивать дополнительную безопасность среды хоста путем ограничения и/или предотвращения доступа приложений к ресурсам среды хоста. Во многих случаях приложению, исполняющемуся в изолированной среде, нельзя доверять, или оно может иметь более высокий риск быть восприимчивым к злонамеренным действиям, тем самым делая изоляционный барьер между приложением и средой хоста более важным с точки зрения безопасности. Другими словами, даже если вредоносный код исполнялся в изолированной среде приложения, риск для среды хоста может быть минимизирован за счет изоляционного барьера.[0001] In isolated computing devices, applications can be executed in an environment that is partially or completely isolated from the main computing environment of the computing host. Such isolated devices can provide additional security to the host environment by limiting and/or preventing applications from accessing host environment resources. In many cases, an application running in a sandboxed environment cannot be trusted or may have a higher risk of being susceptible to malicious activity, thereby making the isolation barrier between the application and the host environment more critical from a security perspective. In other words, even if the malicious code was executed in an application sandbox, the risk to the host environment could be minimized by an isolation barrier.

[0002] Однако, чтобы улучшить взаимодействие с пользователем, определенные дыры в изоляционном барьере могут быть присутствовать намеренно, например, при разрешении доступа к файлам среды хоста для приложения в изолированной среде. Хотя такие дыры в изоляционном барьере могут улучшить интеграцию между изолированной средой и средой хоста, эти, казалось бы, безобидные попытки улучшить взаимодействие с пользователем могут, тем не менее, создать уязвимости безопасности для среды хоста. Например, вредоносный код, называемый программой-вымогателем, который может проникать в изолированную среду, может быть включен для шифрования личных данных пользователя, хранящихся в среде хоста, с помощью ключа шифрования, известного только злоумышленнику. В таких ситуациях пользователь вынужден заплатить злоумышленнику выкуп, чтобы восстановить возможность доступа к своим данным. Таким образом, даже если приложение может быть изолировано, прорехи в изоляционном барьере все равно могут привести к этим и другим типам уязвимостей.[0002] However, to improve the user experience, certain holes in the isolation barrier may be present intentionally, for example, when allowing access to host environment files for an application in an isolated environment. While such holes in the isolation barrier may improve integration between the sandboxed environment and the host environment, these seemingly innocuous attempts to improve the user experience may nonetheless introduce security vulnerabilities to the host environment. For example, malicious code called ransomware, which can penetrate sandboxed environments, can be enabled to encrypt a user's private data stored in the host environment with an encryption key known only to the attacker. In such situations, the user is forced to pay a ransom to the attacker in order to regain access to their data. Thus, even though an application may be isolated, holes in the isolation barrier can still lead to these and other types of vulnerabilities.

Сущность изобретенияThe essence of the invention

[0003] Данное краткое изложение сущности изобретения приведено для того, чтобы в упрощенной форме представить подборку концепций, которые дополнительно описываются ниже в подробном описании. Это краткое изложение сущности изобретения не имеет намерением ни то, чтобы идентифицировать ключевые признаки или важнейшие признаки заявленного изобретения, ни то, чтобы использоваться для ограничения объема заявленного изобретения.[0003] This summary is provided to introduce in a simplified form a selection of concepts that are further described below in the detailed description. This summary of the invention is not intended either to identify key features or essential features of the claimed invention, nor to be used to limit the scope of the claimed invention.

[0004] Предусмотрены способы, системы, устройства и компьютерные программные продукты для обеспечения безопасного доступа к ресурсу. Запрос маркера от приложения, исполняющегося в первой вычислительной среде (например, виртуальной машине), может быть получен во второй вычислительной среде (например, в вычислительной среде хоста). Вычислительная среда хоста может назначать уровень доверия для принятого запроса маркера, например уровень доверия, который указывает, что первой вычислительной среде нельзя доверять. Запрос маркера вместе с уровнем доверия может быть предоставлен издателю маркера (например, на сервере авторизации), который может проверять информацию идентификации в маркере и генерировать маркер авторизации, который включает в себя индикатор доверия. Индикатор доверия может указывать, например, уровень доверия второй вычислительной среды. Вычислительная среда хоста может получить маркер авторизации и предоставить его приложению. Когда приложение, исполняющееся во второй вычислительной среде, передает маркер авторизации диспетчеру ресурсов для доступа к ресурсу, диспетчер ресурсов может быть сконфигурирован для выполнения предупредительных действий перед предоставлением доступа, таких как создание резервной копии ресурса.[0004] Methods, systems, devices, and computer program products are provided for providing secure access to a resource. A token request from an application running in a first computing environment (eg, a virtual machine) may be received in a second computing environment (eg, a host computing environment). The host computing environment may assign a trust level to the received token request, for example, a trust level that indicates that the first computing environment cannot be trusted. The token request along with the trust level may be provided to the token issuer (eg, an authorization server), which may validate the identification information in the token and generate an authorization token that includes a trust indicator. The trust indicator may indicate, for example, the level of trust of the second computing environment. The host computing environment can obtain the authorization token and provide it to the application. When an application running on a second computing environment passes an authorization token to a resource manager to access a resource, the resource manager may be configured to perform precautionary actions before granting access, such as creating a backup copy of the resource.

[0005] Дополнительные признаки и преимущества изобретения, а также структура и работа различных вариантов осуществления подробно описаны ниже со ссылкой на прилагаемые чертежи. Следует отметить, что изобретение не ограничивается конкретными вариантами осуществления, описанными в данном документе. Такие варианты осуществления представлены здесь только в иллюстративных целях. Дополнительные варианты осуществления будут очевидны специалистам в соответствующей области(ях) техники на основе идей, содержащихся в данном документе.[0005] Additional features and advantages of the invention, as well as the structure and operation of various embodiments, are described in detail below with reference to the accompanying drawings. It should be noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented here for illustrative purposes only. Additional embodiments will be apparent to those skilled in the relevant art(s) based on the teachings contained herein.

Краткое описание чертежей/фигурBrief description of drawings/figures

[0006] Сопровождающие чертежи, которые включены в данный документ и формируют часть спецификации, иллюстрируют варианты осуществления настоящей заявки и, вместе с описанием, дополнительно служат, чтобы объяснять принципы вариантов осуществления и предоставлять возможность специалисту в родственной области техники выполнять и использовать варианты осуществления.[0006] The accompanying drawings, which are included herein and form a part of the specification, illustrate embodiments of the present application and, together with the description, further serve to explain the principles of the embodiments and to enable one skilled in the related art to make and use the embodiments.

[0007] Фиг. 1 показывает блок-схему системы для предоставления доступа к ресурсу защищенным способом согласно примерному варианту осуществления.[0007] FIG. 1 shows a block diagram of a system for providing access to a resource in a secure manner according to an exemplary embodiment.

[0008] Фиг. 2 показывает блок-схему последовательности операций способа предоставления авторизации, которая включает в себя индикатор доверия для приложения, согласно примерному варианту осуществления.[0008] FIG. 2 shows a flowchart of a method for granting authorization that includes a trust indicator for an application, according to an exemplary embodiment.

[0009] Фиг. 3 показывает блок-схему системы для предоставления доступа к сетевому ресурсу защищенным способом согласно примерному варианту осуществления.[0009] FIG. 3 shows a block diagram of a system for providing access to a network resource in a secure manner according to an exemplary embodiment.

[0010] Фиг. 4 показывает блок-схему последовательности операций способа генерирования маркера авторизации, который включает в себя индикатор доверия, согласно примерному варианту осуществления.[0010] FIG. 4 shows a flowchart of a method for generating an authorization token that includes a trust indicator, according to an exemplary embodiment.

[0011] Фиг. 5 показывает блок-схему последовательности операций способа выполнения предупредительного действия для защиты ресурса согласно примерному варианту осуществления.[0011] FIG. 5 shows a flowchart of a method for performing a preventive action to protect a resource according to an exemplary embodiment.

[0012] Фиг. 6 показывает блок-схему системы для предоставления доступа к локальному ресурсу защищенным способом согласно примерному варианту осуществления.[0012] FIG. 6 shows a block diagram of a system for providing access to a local resource in a secure manner according to an exemplary embodiment.

[0013] Фиг. 7 показывает блок-схему примерного вычислительного устройства, которое может использоваться для реализации примерных вариантов осуществления.[0013] FIG. 7 shows a block diagram of an example computing device that may be used to implement example embodiments.

[0014] Признаки и преимущества настоящего изобретения станут более очевидными из подробного описания, изложенного ниже, при рассмотрении вместе с чертежами, на которых одинаковые ссылочные позиции обозначают соответствующие элементы по всему документу. На чертежах одинаковые номера ссылок обычно указывают на одинаковые, функционально аналогичные и/или структурно аналогичные элементы. Чертеж, на котором элемент появляется впервые, указан самой левой цифрой(ами) в соответствующем номере ссылки.[0014] Features and advantages of the present invention will become more apparent from the detailed description set forth below when taken in conjunction with the drawings, in which like reference numerals denote corresponding elements throughout the document. In the drawings, like reference numerals generally indicate the same, functionally similar and/or structurally similar elements. The drawing on which the element first appears is indicated by the leftmost number(s) in the corresponding reference number.

Подробное описание изобретенияDetailed Description of the Invention

I. ВведениеI. Introduction

[0015] Настоящее описание и прилагаемые чертежи раскрывают один или более вариантов осуществления, которые включают в себя признаки настоящего изобретения. Объем настоящего изобретения не ограничивается раскрытыми вариантами осуществления. Раскрытые варианты осуществления просто иллюстрируют настоящее изобретение, и модифицированные версии раскрытых вариантов осуществления также охватываются настоящим изобретением. Варианты осуществления настоящего изобретения определены прилагаемой формулой изобретения.[0015] The present description and the accompanying drawings disclose one or more embodiments that include features of the present invention. The scope of the present invention is not limited to the disclosed embodiments. The disclosed embodiments merely illustrate the present invention, and modified versions of the disclosed embodiments are also encompassed by the present invention. Embodiments of the present invention are defined by the accompanying claims.

[0016] Ссылки в спецификации на "один вариант осуществления", "вариант осуществления", "примерный вариант осуществления" и т.д. указывают, что описанный вариант осуществления может включать в себя конкретный признак, структуру или характеристику, но каждый вариант осуществления может необязательно включать в себя конкретный признак, структуру или характеристику. Более того, такие фразы не обязательно относятся к одному и тому же варианту осуществления. Дополнительно, когда конкретный признак, структура или характеристика описывается в соединении с примерным вариантом осуществления, представляется, что он находится в рамках знания специалиста в области техники, чтобы осуществлять такой признак, структуру или характеристику в соединении с другими вариантами осуществления, явно или неявно описанными.[0016] References in the specification to “one embodiment,” “an embodiment,” “an exemplary embodiment,” etc. indicate that the described embodiment may include a particular feature, structure or characteristic, but each embodiment may not necessarily include a particular feature, structure or characteristic. Moreover, such phrases do not necessarily refer to the same embodiment. Additionally, when a particular feature, structure or characteristic is described in connection with an exemplary embodiment, it is believed that it is within the knowledge of one skilled in the art to implement such feature, structure or characteristic in connection with other embodiments explicitly or implicitly described.

[0017] В обсуждении, пока не установлено иное, определения, такие как "практически" и "приблизительно", модифицирующие условие или характеристику соотношения признака или признаков примерного варианта осуществления изобретения, понимаются как означающие, что условие или характеристика определяется в пределах допусков, которые являются приемлемыми для действия варианта осуществления для прикладной задачи, для которой он предназначается.[0017] In the discussion, unless otherwise stated, terms such as “substantially” and “about” modifying a condition or characteristic of the relationship of a feature or features of an exemplary embodiment of the invention are understood to mean that the condition or characteristic is defined within tolerances that are acceptable for the operation of the embodiment for the application for which it is intended.

[0018] Многочисленные примерные варианты осуществления описываются следующим образом. Следует отметить, что любые заголовки разделов/подразделов, представленные в данном документе, не предназначены для ограничения. Варианты осуществления описаны в этом документе, и любой тип варианта осуществления может быть включен в любой раздел/подраздел. Кроме того, варианты осуществления, раскрытые в любом разделе/подразделе, могут быть объединены с любыми другими вариантами осуществления, описанными в том же разделе/подразделе и/или другом разделе/подразделе, любым способом.[0018] Numerous exemplary embodiments are described as follows. It should be noted that any section/subsection headings presented herein are not intended to be limiting. Embodiments are described in this document, and any type of embodiment may be included in any section/subsection. In addition, embodiments disclosed in any section/subsection may be combined with any other embodiments described in the same section/subsection and/or another section/subsection in any manner.

II. Примерные реализацииII. Example implementations

[0019] В изолированных вычислительных устройствах приложения могут выполняться в среде, которая частично или полностью изолирована от основной вычислительной среды вычислительного хоста. Такие изолированные устройства могут обеспечивать дополнительную безопасность среды хоста путем ограничения и/или предотвращения доступа приложений к ресурсам среды хоста. Во многих случаях приложению, исполняющемуся в изолированной среде, нельзя доверять, или оно может иметь более высокий риск быть восприимчивым к злонамеренным действиям, тем самым делая изоляционный барьер между приложением и средой хоста более важным с точки зрения безопасности. Другими словами, даже если вредоносный код исполнялся в изолированной среде приложения, риск для среды хоста может быть минимизирован за счет изоляционного барьера.[0019] In isolated computing devices, applications may run in an environment that is partially or completely isolated from the main computing environment of the computing host. Such isolated devices can provide additional security to the host environment by limiting and/or preventing applications from accessing host environment resources. In many cases, an application running in a sandboxed environment cannot be trusted or may have a higher risk of being susceptible to malicious activity, thereby making the isolation barrier between the application and the host environment more critical from a security perspective. In other words, even if the malicious code was executed in an application sandbox, the risk to the host environment could be minimized by an isolation barrier.

[0020] Однако, чтобы улучшить взаимодействие с пользователем, определенные дыры в изоляционном барьере могут быть присутствовать намеренно, например, при разрешении доступа к файлам среды хоста для приложения в изолированной среде. Хотя такие дыры в изоляционном барьере могут улучшить интеграцию между изолированной средой и средой хоста, эти, казалось бы, безобидные попытки улучшить взаимодействие с пользователем могут, тем не менее, создать уязвимости безопасности для среды хоста. Например, вредоносный код, называемый программой-вымогателем, который может проникать в изолированную среду, может быть включен для шифрования личных данных пользователя, хранящихся в среде хоста, с помощью ключа шифрования, известного только злоумышленнику. В таких ситуациях пользователь вынужден заплатить злоумышленнику выкуп, чтобы восстановить возможность доступа к своим данным. Таким образом, даже если приложение может быть изолировано, прорехи в изоляционном барьере все равно могут привести к этим и другим типам уязвимостей.[0020] However, to improve the user experience, certain holes in the isolation barrier may be present intentionally, for example, when allowing access to host environment files for an application in an isolated environment. While such holes in the isolation barrier may improve integration between the sandboxed environment and the host environment, these seemingly innocuous attempts to improve the user experience may nonetheless introduce security vulnerabilities to the host environment. For example, malicious code called ransomware, which can penetrate sandboxed environments, can be enabled to encrypt a user's private data stored in the host environment with an encryption key known only to the attacker. In such situations, the user is forced to pay a ransom to the attacker in order to regain access to their data. Thus, even though an application may be isolated, holes in the isolation barrier can still lead to these and other types of vulnerabilities.

[0021] Описанные здесь варианты осуществления решают эти и другие проблемы, предоставляя систему для предоставления доступа к ресурсу надежным способом. В примерной системе первая среда, которая принимает запрос маркера из другой среды, по меньшей мере, частично изолированной от нее (например, приложение, выполняющееся на виртуальной машине первой среды), может получить маркер авторизации, который включает в себя индикатор доверия. Индикатор доверия может указывать на уровень доверия среды, в которой был инициирован запрос маркера, которая может содержать ненадежную среду, которая может быть уязвима для злонамеренных действий. Когда приложение пытается получить доступ к доверенному ресурсу с помощью маркера авторизации, поставщик ресурсов может предпринять превентивные действия.[0021] The embodiments described herein solve these and other problems by providing a system for providing access to a resource in a reliable manner. In an exemplary system, a first environment that receives a token request from another environment at least partially isolated from it (eg, an application running on a virtual machine of the first environment) may receive an authorization token that includes a trust indicator. The trust indicator may indicate the trust level of the environment in which the token request was initiated, which may contain an untrusted environment that may be vulnerable to malicious activity. When an application attempts to access a trusted resource using an authorization token, the resource provider can take preventative action.

[0022] Таким образом, ресурсы могут быть защищены от злонамеренных действий или вредоносного кода, такого как программы-вымогатели или любые другие типы вредоносных программ, вредоносный код или нарушение, при котором неавторизованный объект пытается получить доступ к ресурсам пользователя (например, к данным или службам). Например, даже если злоумышленник попытался зашифровать данные пользователя в попытке получить выкуп, резервная копия ресурсов пользователя может быть автоматически создана, когда злоумышленник обращается к данным на основе индикатора доверия, включенного в маркер авторизации. Резервная копия ресурсов пользователя, которая может храниться в недоступном для злоумышленника месте и/или зашифрованном виде, может быть позже восстановлена пользователем, так что пользователю не нужно платить выкуп злоумышленнику. Таким образом, вред, причиненный злонамеренными действиями в менее надежной вычислительной среде, может быть уменьшен или полностью предотвращен.[0022] In this way, resources can be protected from malicious activity or malicious code, such as ransomware or any other type of malware, malicious code, or breach in which an unauthorized entity attempts to access the user's resources (e.g., data or services). For example, even if an attacker attempted to encrypt a user's data in an attempt to obtain ransom, a backup copy of the user's resources could be automatically created when the attacker accesses the data based on the trust indicator included in the authorization token. A backup copy of the user's resources, which may be stored in a location inaccessible to the attacker and/or encrypted, can later be restored by the user so that the user does not have to pay a ransom to the attacker. In this way, the harm caused by malicious actions in a less secure computing environment can be reduced or completely prevented.

[0023] Предоставление доступа к ресурсам защищенным образом, как описано в данном документе, имеет многочисленные преимущества, в том числе повышение безопасности сети и/или ресурсов (например, вычислительных устройств, запоминающих устройств и т.д.), связанных с ней. Например, предоставляя маркер авторизации, который включает в себя индикатор доверия, поставщики ресурсов, которые могут предоставлять доступ к ресурсам в ответ на получение маркера авторизации (которые могут быть локальными поставщиками ресурсов или серверами ресурсов, доступными по сети), могут принимать одно или более превентивных действий для защиты ресурса, такие как создание резервной копии ресурса, ограничение объема доступа (например, предоставление доступа только для чтения вместо доступа для чтения/записи), выполнение процедуры расширенной аутентификации (например, двухфакторная аутентификация) или другое превентивное действие. В результате ресурсы могут быть защищены от злонамеренных действий, инициированных из сред, которые считаются менее безопасными. Кроме того, поскольку поставщики ресурсов могут получать маркеры аутентификации, которые включают в себя встроенные в них индикаторы доверия, поставщики ресурсов могут быть настроены на обнаружение аномальной сетевой активности (например, когда конкретное приложение обращается к ненормальному количеству ресурсов с таким маркером авторизации). В результате злонамеренная активность, происходящая в сети и/или в связанных с ней ресурсах, может быть сдержана, уменьшена и/или предотвращена в соответствии с описанным здесь принципом.[0023] Providing access to resources in a secure manner, as described herein, has numerous benefits, including increasing the security of the network and/or resources (eg, computing devices, storage devices, etc.) associated with it. For example, by providing an authorization token that includes a trust indicator, resource providers that may grant access to resources in response to receipt of an authorization token (which may be local resource providers or network-accessible resource servers) may take one or more proactive actions to protect the resource, such as backing up the resource, limiting the scope of access (for example, providing read-only access instead of read/write access), performing an enhanced authentication procedure (for example, two-factor authentication), or other preventive action. As a result, resources can be protected from malicious activities initiated from environments considered less secure. Additionally, since resource providers can obtain authentication tokens that include trust indicators built into them, resource providers can be configured to detect anomalous network activity (for example, when a particular application accesses an abnormal amount of resources with that authorization token). As a result, malicious activity occurring on the network and/or its associated resources can be contained, reduced and/or prevented in accordance with the principle described herein.

[0024] Ниже описаны примерные варианты осуществления для систем и способов предоставления доступа к ресурсу защищенным способом. Например, фиг. 1 показывает блок-схему системы 100 согласно примерному варианту осуществления. Как показано на фиг. 1, система 100 включает в себя вычислительное устройство 102, сервер 108 авторизации и сервер 112 ресурсов, которые коммуникативно связаны сетью 110, и защищенные ресурсы 116, подключенные к серверу 112 ресурсов. Система 100 может содержать любое количество вычислительных устройств и/или серверов, в том числе те, которые показаны на фиг. 1, и, возможно, одно или более дополнительных устройств, не проиллюстрированных явным образом. Как показано на фиг. 1, вычислительное устройство 102 включает в себя размещенную на нем виртуальную машину 104 и диспетчер 106 маркеров авторизации. Как более подробно описано ниже, диспетчер 106 маркеров авторизации может быть сконфигурирован для приема запроса маркера от приложения, выполняемого на виртуальной машине 104, получения маркера авторизации с индикатором доверия и предоставления маркера авторизации, включающего в себя индикатор доверия, приложению в виртуальной машине 104. Сервер 108 авторизации включает в себя издатель 110 маркеров. Сервер 112 ресурсов включает в себя диспетчер 114 ресурсов. Хотя фиг. 1 описывается в отношении приложения, выполняемого на виртуальной машине 104, такая реализация не предназначена для ограничения. Также рассматриваются другие типы частично и/или полностью изолированных вычислительных сред, в которых могут возникать запросы маркеров, как описано ниже. Система 100 далее описывается следующим образом.[0024] Described below are exemplary embodiments of systems and methods for providing access to a resource in a secure manner. For example, FIG. 1 shows a block diagram of a system 100 according to an exemplary embodiment. As shown in FIG. 1, system 100 includes a computing device 102, an authorization server 108, and a resource server 112 that are communicatively connected by a network 110, and secure resources 116 connected to the resource server 112. System 100 may contain any number of computing devices and/or servers, including those shown in FIG. 1, and possibly one or more additional devices not explicitly illustrated. As shown in FIG. 1, computing device 102 includes a hosted virtual machine 104 and an authorization token manager 106. As described in more detail below, the authorization token manager 106 may be configured to receive a token request from an application running on the virtual machine 104, obtain an authorization token with a trust indicator, and provide an authorization token including a trust indicator to an application on the virtual machine 104. Server 108 authorization includes the publisher of 110 tokens. The resource server 112 includes a resource manager 114 . Although fig. 1 is described with respect to an application running on virtual machine 104, such implementation is not intended to be limiting. Other types of partially and/or fully isolated computing environments in which token requests may occur are also considered, as described below. The system 100 is further described as follows.

[0025] Сеть 110 может включать в себя одну или более из любой из локальной сети (LAN), глобальной сети (WAN), персональной сети (PAN), комбинации сетей связи, таких как Интернет, и/или виртуальной сети. В примерных реализациях вычислительное устройство 102, сервер 108 авторизации, сервер 112 ресурсов и/или защищенные ресурсы 116 могут быть коммуникативно связаны друг с другом через сеть 110. В реализации любое одно или более вычислительных устройств 102, сервер 108 авторизации, сервер 112 ресурсов и/или защищенные ресурсы 116 могут обмениваться данными через один или более интерфейсов прикладного программирования (API) и/или в соответствии с другими интерфейсами и/или технологиями. Вычислительное устройство 102, сервер 108 авторизации, сервер 112 ресурсов и/или защищенные ресурсы 116 могут включать в себя, по меньшей мере, один сетевой интерфейс, который обеспечивает связь друг с другом. Примеры такого сетевого интерфейса, проводного или беспроводного, включают в себя беспроводной интерфейс беспроводной локальной сети (WLAN) IEEE 802.11, интерфейс всемирной совместимости для микроволнового доступа (Wi-MAX), интерфейс Ethernet, интерфейс универсальной последовательной шины (USB), интерфейс сотовой сети, интерфейс Bluetooth™, интерфейс беспроводной связи ближнего радиуса действия (NFC) и т.д. Дополнительные примеры сетевых интерфейсов описаны в другом месте в данном документе.[0025] Network 110 may include one or more of any of a local area network (LAN), a wide area network (WAN), a personal area network (PAN), a combination of communications networks such as the Internet, and/or a virtual network. In exemplary implementations, computing device 102, authorization server 108, resource server 112, and/or secure resources 116 may be communicatively coupled to each other via network 110. In an implementation, any one or more computing devices 102, authorization server 108, resource server 112, and/or or the protected resources 116 may communicate through one or more application programming interfaces (APIs) and/or in accordance with other interfaces and/or technologies. The computing device 102, authorization server 108, resource server 112, and/or secure resources 116 may include at least one network interface that communicates with each other. Examples of such a network interface, wired or wireless, include an IEEE 802.11 wireless local area network (WLAN) interface, a Worldwide Compatibility Microwave Access (Wi-MAX) interface, an Ethernet interface, a Universal Serial Bus (USB) interface, a cellular network interface, Bluetooth™ interface, near field communication (NFC) interface, etc. Additional examples of network interfaces are described elsewhere in this document.

[0026] Вычислительное устройство 102 включает в себя любое вычислительное устройство одного или более пользователей (например, индивидуальных пользователей, семейных пользователей, корпоративных пользователей, государственных пользователей и т.д.), которое может содержать одно или более приложений, операционных систем, виртуальных машин, запоминающих устройств и т.д., которые могут выполняться, размещаться и/или храниться в нем или через одно или более других вычислительных устройств через сеть 110. В некоторых примерах вычислительное устройство 102 может осуществлять доступ к одному или более серверным устройствам, таким как сервер 108 аутентификации и/или сервер 112 ресурсов, для доступа к одному или более защищенным ресурсам 116, как описано в данном документе. Вычислительное устройство 102 может включать в себя любое количество вычислительных устройств, в том числе десятки, сотни, тысячи, миллионы или даже большее количество вычислительных устройств. Каждое вычислительное устройство вычислительного устройства 102 может быть стационарным или мобильным вычислительным устройством любого типа, в том числе мобильный компьютер или мобильное вычислительное устройство (например, устройство Microsoft® Surface®, персональный цифровой помощник (PDA), портативный компьютер, портативный компьютер, планшетный компьютер, такой как Apple iPad ™, нетбук и т.д.), мобильный телефон, носимое вычислительное устройство или другое мобильное устройство, или стационарное вычислительное устройство, такое как настольный компьютер или PC (персональный компьютер) или сервер. Вычислительное устройство 102 не ограничивается физической машиной, но может включать в себя другие типы машин или узлов, такие как виртуальная машина. Каждое вычислительное устройство 102 может взаимодействовать с сервером 108 авторизации и/или сервером 112 ресурсов через API и/или другие механизмы. Обратим внимание, что может присутствовать любое количество программных интерфейсов.[0026] Computing device 102 includes any computing device of one or more users (e.g., individual users, family users, enterprise users, government users, etc.), which may contain one or more applications, operating systems, virtual machines , storage devices, etc., which may be executed, hosted, and/or stored therein or through one or more other computing devices via network 110. In some examples, computing device 102 may access one or more server devices, such as an authentication server 108 and/or a resource server 112, for accessing one or more secure resources 116, as described herein. Computing device 102 may include any number of computing devices, including tens, hundreds, thousands, millions, or even more computing devices. Each computing device of computing device 102 may be any type of desktop or mobile computing device, including a mobile computer or a mobile computing device (e.g., a Microsoft® Surface® device, a personal digital assistant (PDA), a laptop computer, a notebook computer, a tablet computer, such as an Apple iPad™, netbook, etc.), a mobile phone, a wearable computing device or other mobile device, or a desktop computing device such as a desktop computer or PC (personal computer) or server. The computing device 102 is not limited to a physical machine, but may include other types of machines or nodes, such as a virtual machine. Each computing device 102 may interact with the authorization server 108 and/or resource server 112 through APIs and/or other mechanisms. Please note that any number of software interfaces may be present.

[0027] Сервер 108 авторизации может содержать любое вычислительное устройство, сервер и/или службу для выдачи одного или более маркеров авторизации вычислительным устройствам сети 110, запрашивающим такие маркеры. Как будет описано более подробно ниже, маркер авторизации может включать в себя любой объект (например, набор данных), который позволяет вычислительному устройству, вычислительной среде и/или приложениям получать доступ к ресурсу. Например, маркер авторизации может быть файлом или другим объектом, который включает в себя один или более из идентификатора для маркера, идентификатора для соответствующего сеанса входа в систему, идентификатора приложения, запрашивающего доступ, идентификатора пользователя для пользователя приложения, запрашивающего доступ и индикатора одной или более привилегий, предоставляемых маркером авторизации.[0027] Authorization server 108 may comprise any computing device, server, and/or service for issuing one or more authorization tokens to computing devices on network 110 requesting such tokens. As will be described in more detail below, an authorization token may include any object (eg, a set of data) that allows a computing device, computing environment, and/or applications to access a resource. For example, an authorization token may be a file or other object that includes one or more of an identifier for the token, an identifier for the corresponding login session, an identifier for the application requesting access, a user identifier for the user of the application requesting access, and an indicator of one or more privileges granted by the authorization token.

[0028] В некоторых примерах сервер 108 авторизации может содержать службу идентификации или поставщик идентификационных данных, сконфигурированный для проверки информации идентификации объекта, запрашивающего маркер авторизации, в том числе, помимо прочего, учетные данные пользователя (например, имя пользователя и/или пароль), псевдоним пользователя, номер учетной записи, биометрическую информацию или любую другую информацию или учетные данные, которые могут использоваться для безопасного доступа к ресурсу. В соответствии с реализациями, издатель 110 маркера сервера 108 авторизации может сгенерировать и выпустить маркер для передачи на вычислительное устройство 102, который дополнительно включает в себя индикатор доверия, который может указывать на уровень доверия среды, в которой был запрошен маркер, и/или предназначен для использования для доступа к ресурсу (например, защищенным ресурсам 116). В некоторых случаях сервер 108 авторизации может быть сконфигурирован для предоставления, на основе проверенной идентификационной информации, доступа к множеству ресурсов, не связанных и/или не уполномоченных с сервером 108 авторизации. В некоторых других случаях сервер 108 авторизации и/или сервер 112 ресурсов может содержать аффилированные объекты и/или может быть реализован на одном сервере или на совокупности серверов.[0028] In some examples, the authorization server 108 may include an identity service or identity provider configured to verify the identity information of an entity requesting an authorization token, including, but not limited to, user credentials (e.g., username and/or password), user alias, account number, biometric information, or any other information or credentials that can be used to securely access a resource. According to implementations, the token issuer 110 of the authorization server 108 may generate and issue a token for transmission to the computing device 102, which further includes a trust indicator that may indicate the trust level of the environment in which the token was requested and/or is intended to used to access a resource (eg, protected resources 116). In some cases, the authorization server 108 may be configured to provide, based on verified identity information, access to multiple resources not associated with and/or authorized by the authorization server 108. In some other cases, the authorization server 108 and/or the resource server 112 may contain affiliated entities and/or may be implemented on a single server or a collection of servers.

[0029] Сервер 112 ресурсов может содержать любое одно или более вычислительных устройств, серверов, служб, локальных процессов, удаленных машин, веб-служб и т.д. для размещения, управления и/или предоставления доступа к защищенным ресурсам 116 пользователями вычислительного устройства 102. Например, сервер 112 ресурсов может содержать сервер, расположенный в помещении организации и/или связанный с локальной сетью организации, удаленно расположенный сервер, облачный сервер (например, один или более серверов распределенным образом) или любое другое устройство или службу, которые могут размещать, управлять и/или предоставлять доступ к защищенным ресурсам 116. Защищенные ресурсы 116 могут включать в себя любой тип ресурса, подключенного к сети, в том числе, помимо прочего, вычислительные или обрабатывающие ресурсы, программные ресурсы (например, программное обеспечение как услуга (SaaS), платформа как услуга (PaaS) и т.д.), хранилище ресурсов (например, физические устройства хранения, локальные устройства хранения, облачные хранилища, жесткие диски, твердотельные накопители, устройства оперативной памяти (RAM) и т.д.), базы данных и т.д.[0029] Resource server 112 may contain any one or more computing devices, servers, services, local processes, remote machines, web services, etc. for hosting, managing, and/or providing access to protected resources 116 by users of the computing device 102. For example, the resource server 112 may include a server located on the organization's premises and/or connected to the organization's local network, a remotely located server, a cloud server (for example, one or more servers in a distributed manner) or any other device or service that can host, manage, and/or provide access to secure resources 116. Secured resources 116 may include any type of resource connected to a network, including, but not limited to, computing or processing resources, software resources (e.g. software as a service (SaaS), platform as a service (PaaS), etc.), storage resources (e.g. physical storage devices, local storage devices, cloud storage, hard drives, solid state drives, random access memory (RAM), etc.), databases, etc.

[0030] Например, защищенные ресурсы 116 могут включать в себя устройства хранения для хранения любых данных, которые являются конфиденциальными, критическими, частными, безопасными и/или иным образом не предназначены для публичного распространения, такие как личная информация, образовательная информация, медицинская информация, профессиональная информация, организационная информация или информация о компании, банковская или другая финансовая документация, юридические документы, биографические данные, такие как свидетельства о рождении, водительские права, паспорта и т.д. Эти примеры являются только иллюстративными, и защищенные ресурсы 116 могут включать в себя данные любого другого типа (в том числе как конфиденциальную, так и неконфиденциальную информацию), которые могут храниться на любом устройстве, как локально, так и/или в облачном хранилище. В некоторых примерах защищенные ресурсы 116 могут храниться безопасным способом, например, с помощью защиты паролем, шифрования (например, шифрование с открытым и закрытым ключами, симметричными ключами и т.д.), или любым другим безопасным способом, который оценят специалисты в данной области техники, так, что доступ для чтения/записи может быть предоставлен только владельцем данных.[0030] For example, secure resources 116 may include storage devices for storing any data that is confidential, critical, private, secure and/or otherwise not intended for public dissemination, such as personal information, educational information, medical information, professional information, organizational or company information, banking or other financial records, legal documents, biographical information such as birth certificates, driver's licenses, passports, etc. These examples are illustrative only, and protected resources 116 may include any other type of data (including both sensitive and non-sensitive information) that may be stored on any device, either locally and/or in the cloud. In some examples, protected resources 116 may be stored in a secure manner, such as through password protection, encryption (e.g., public/private key encryption, symmetric keys, etc.), or any other secure manner that would be appreciated by those skilled in the art. technology so that read/write access can only be granted by the owner of the data.

[0031] В примерных вариантах осуществления вычислительное устройство 102 может содержать множество вычислительных сред, в том числе, но не ограничиваясь этим, вычислительную среду хоста (например, среду, в которой выполняется основная операционная система вычислительного устройства 102), и одну или более других вычислительных среды, которые могут быть полностью или частично изолированы от вычислительной среды хоста. Например, такие изолированные среды могут содержать виртуальную машину 104 и/или приложения, выполняемые в ней. В примерах виртуальная машина 104 и/или выполняемые на ней приложения могут быть ограничены механизмом изоляции (например, контейнером, управляемым операционной системой хоста и т.д.) от доступа к ресурсам за пределами изолированной среды при отсутствии "дыры", предусмотренной в изоляционном барьере или маркере авторизации, разрешающем приложению, выполняющемуся в изолированной среде, обращаться к внешнему ресурсу (например, хранящемуся в вычислительной среде хоста и/или хранящемуся в другом устройстве, доступном через сеть 110).[0031] In exemplary embodiments, computing device 102 may comprise a plurality of computing environments, including, but not limited to, a host computing environment (e.g., the environment on which the host operating system of computing device 102 is running), and one or more other computing environments. environments that can be completely or partially isolated from the host computing environment. For example, such sandboxed environments may contain a virtual machine 104 and/or applications running within it. In examples, the virtual machine 104 and/or the applications running thereon may be restricted by an isolation mechanism (e.g., a container managed by the host operating system, etc.) from accessing resources outside the sandbox in the absence of a "hole" provided in the isolation barrier or an authorization token allowing an application running in a sandboxed environment to access an external resource (eg, stored in the host computing environment and/or stored in another device accessible through network 110).

[0032] В примерах, когда приложение виртуальной машины 104 желает получить доступ к ресурсу за пределами виртуальной машины 104, приложение может предоставить запрос маркера диспетчеру 106 маркеров авторизации для соответствующего маркера авторизации. В соответствии с реализациями маркер 106 авторизации может быть сконфигурирован для назначения уровня доверия запросу маркера. Уровень доверия может указывать, например, что виртуальная машина 104 и/или приложение, выполняемое в ней, не являются доверенными и/или подвержены компрометации или взлому. Диспетчер 106 маркеров авторизации может предоставить запрос маркера и назначить уровень доверия издателю 110 маркера, чтобы получить маркер авторизации. Издатель 110 маркера может проверить информацию идентификации (например, учетные данные для входа в систему) и сгенерировать маркер авторизации, который включает в себя встроенный в него индикатор доверия. Издатель 110 маркера может предоставить маркер авторизации, который включает в себя встроенный индикатор доверия, диспетчеру 106 маркеров авторизации, который может предоставить маркер авторизации запрашивающему приложению, выполняющемуся на виртуальной машине 104.[0032] In examples, when an application of the virtual machine 104 wishes to access a resource outside of the virtual machine 104, the application may provide a token request to the authorization token manager 106 for the corresponding authorization token. According to implementations, the authorization token 106 may be configured to assign a trust level to the token request. The trust level may indicate, for example, that the virtual machine 104 and/or the application running therein are not trusted and/or are susceptible to compromise or hacking. The authorization token manager 106 may provide a token request and assign a trust level to the token issuer 110 to obtain the authorization token. The token issuer 110 may verify identification information (eg, login credentials) and generate an authorization token that includes a trust indicator embedded therein. The token issuer 110 may provide an authorization token, which includes an embedded trust indicator, to the authorization token manager 106, which may provide the authorization token to the requesting application running on the virtual machine 104.

[0033] Когда приложение пытается получить доступ к внешнему ресурсу, такому как защищенные ресурсы 116, с использованием маркера авторизации, диспетчер 114 ресурсов может извлечь индикатор доверия в маркере авторизации. Таким образом, если индикатор доверия указывает, что маркер авторизации был инициирован в среде, которой не доверяют (например, может быть уязвимым для различных типов злонамеренного поведения, такого как атаки программ-вымогателей), диспетчер 114 ресурсов может выполнить предупредительное действие (например, создание резервной копии) для защиты защищенных ресурсов 116 перед предоставлением доступа приложению.[0033] When an application attempts to access an external resource, such as protected resources 116, using an authorization token, resource manager 114 may retrieve a trust indicator in the authorization token. Thus, if the trust indicator indicates that the authorization token was initiated in an environment that is not trusted (e.g., may be vulnerable to various types of malicious behavior such as ransomware attacks), resource manager 114 may take preventive action (e.g., creating backup) to protect protected resources 116 before granting access to the application.

[0034] Следует отметить и понять, что реализации не ограничиваются иллюстративной компоновкой, показанной на фиг. 1. Напротив, сеть 110 может содержать любое количество вычислительных устройств и/или серверов (в том числе, помимо прочего, машин и/или виртуальных машин), соединенных любым способом. Например, хотя вычислительное устройство 102 показано отдельно от сервера 108 авторизации, сервера 112 ресурсов и защищенных ресурсов 116, в варианте осуществления одно или более из вычислительного устройства 102, сервера 108 авторизации, сервера 112 ресурсов и/или защищенных ресурсов (или компоненты в них) могут быть совмещены, расположены удаленно друг от друга, могут быть реализованы на одном вычислительном устройстве или виртуальной машине или могут быть реализованы или распределены по одному или более дополнительным вычислительным устройствам или виртуальным машинам, не проиллюстрированным явным образом на фиг. 1. Пример компоновки, в которой диспетчер маркеров авторизации, издатель 110 маркера, диспетчер 114 ресурсов и защищенные ресурсы 116 могут быть реализованы в вычислительном устройстве, проиллюстрирован на фиг. 6 и более подробно описан ниже.[0034] It should be noted and understood that implementations are not limited to the illustrative arrangement shown in FIG. 1. In contrast, network 110 may contain any number of computing devices and/or servers (including, but not limited to, machines and/or virtual machines) connected in any manner. For example, although computing device 102 is shown separately from authorization server 108, resource server 112, and secure resources 116, in an embodiment, one or more of computing device 102, authorization server 108, resource server 112, and/or secure resources (or components thereof) may be co-located, remotely located, may be implemented on a single computing device or virtual machine, or may be implemented or distributed across one or more additional computing devices or virtual machines not explicitly illustrated in FIG. 1. An example arrangement in which the authorization token manager, token issuer 110, resource manager 114, and secure resources 116 may be implemented on a computing device is illustrated in FIG. 6 and is described in more detail below.

[0035] Диспетчер 106 маркеров авторизации может работать различными способами, чтобы обеспечить доступ к ресурсу безопасным способом. Например, диспетчер 106 маркеров авторизации может работать согласно фиг. 2. На фиг. 2 показана блок-схема 200 последовательности операций способа предоставления авторизации, который включает в себя индикатор доверия для приложения, согласно примерному варианту осуществления. В иллюстративных целях блок-схема 200 последовательности операций и диспетчер 106 маркеров авторизации описываются следующим образом со ссылкой на фиг. 3.[0035] The authorization token manager 106 may operate in various ways to provide access to a resource in a secure manner. For example, the authorization token manager 106 may operate as shown in FIG. 2. In FIG. 2 shows a flowchart 200 of a method for granting authorization that includes a trust indicator for an application, according to an exemplary embodiment. For illustrative purposes, flowchart 200 and authorization token manager 106 are described as follows with reference to FIG. 3.

[0036] Фиг. 3 показывает блок-схему системы 300 для предоставления доступа к сетевому ресурсу защищенным способом согласно примерному варианту осуществления. Как показано на фиг. 3, система 300 включает в себя пример реализации вычислительного устройства 102, сервера 108 авторизации и сервера 112 ресурсов. Вычислительное устройство 102 включает в себя виртуальную машину 104 и диспетчер 106 маркеров авторизации. Виртуальная машина 104 может содержать приложение 302, выполняемое в ней. Диспетчер 106 маркеров авторизации может включать в себя средство 304 назначения уровня доверия и средство 306 запроса маркеров. Сервер 108 авторизации включает в себя издатель 110 маркеров. Издатель 110 маркеров включает в себя средство 314 проверки подлинности идентификации и генератор 316 маркеров. Сервер ресурсов включает в себя диспетчер 114 ресурсов. Диспетчер 114 ресурсов включает в себя поставщика 318 доступа к ресурсам и средство 320 защиты ресурсов. Диспетчер 114 ресурсов может быть связан с защищенными ресурсами 116 и моментальным снимком 322 ресурсов. Как показано в системе 300 на фиг. 3, диспетчер 106 маркеров авторизации может передать запрос 308 маркера и связанный с ним уровень 310 доверия издателю 110 маркера. Издатель 110 маркера может сгенерировать маркер 312 авторизации, который включает в себя индикатор доверия, который может быть встроен в него. Диспетчер 106 маркеров авторизации может предоставить маркер авторизации приложению 302. Впоследствии, когда приложение 302 предоставляет маркер авторизации диспетчеру 114 ресурсов для доступа к защищенным ресурсам 116, диспетчер 114 ресурсов может быть сконфигурирован для выполнения предупредительных действий для защиты защищенных ресурсов 116 до предоставления доступа к таким ресурсам. Блок-схема 200 последовательности операций и система 300 более подробно описаны ниже.[0036] FIG. 3 shows a block diagram of a system 300 for providing access to a network resource in a secure manner according to an exemplary embodiment. As shown in FIG. 3, system 300 includes an example implementation of computing device 102, authorization server 108, and resource server 112. Computing device 102 includes a virtual machine 104 and an authorization token manager 106 . The virtual machine 104 may include an application 302 running therein. The authorization token manager 106 may include a trust level assignor 304 and a token requestor 306 . The authorization server 108 includes a token issuer 110 . The token issuer 110 includes an identity authenticator 314 and a token generator 316 . The resource server includes a resource manager 114 . The resource manager 114 includes a resource access provider 318 and a resource protector 320 . The resource manager 114 may be associated with the protected resources 116 and the resource snapshot 322 . As shown in system 300 in FIG. 3, the authorization token manager 106 may pass the token request 308 and the associated trust level 310 to the token issuer 110. The token issuer 110 may generate an authorization token 312, which includes a trust indicator that may be embedded therein. Authorization token manager 106 may provide an authorization token to application 302. Subsequently, when application 302 provides an authorization token to resource manager 114 to access protected resources 116, resource manager 114 may be configured to take proactive actions to protect protected resources 116 before granting access to such resources. . The flowchart 200 and system 300 are described in more detail below.

[0037] Блок-схема 200 последовательности операций на фиг. 2 начинается с этапа 202. На этапе 202 запрос маркера принимается от приложения, выполняющегося во второй вычислительной среде, по меньшей мере, частично изолированной от первой вычислительной среды для доступа к ресурсу. Например, со ссылкой на фиг. 3, средство 304 назначения уровня доверия может быть сконфигурировано для приема запроса 324 маркера от приложения 302. Виртуальная машина 104 может содержать вычислительную среду, которая частично или полностью изолирована от другой вычислительной среды (например, хост-среда, в которой может выполняться основная операционная система вычислительного устройства 102). Например, виртуальная машина 104 может содержать операционную систему (например, того же или другого типа, что и операционная система, выполняющаяся в среде хоста) и/или одно или более приложений, выполняемых в ней. Виртуальная машина 104 работает поверх основной операционной системы вычислительного устройства 102. Приложение 302 может содержать любой тип приложения, которое может выполняться на виртуальной машине 104, в том числе, помимо прочего, программные пакеты, установленные на виртуальной машине 104 или доступные с удаленного компьютера или сервера, веб-приложения, веб-службы или любой другой код или двоичный код, который может выполняться на виртуальной машине 104 или внутри нее. В примерных вариантах реализации виртуальной машине 104 и/или приложению 302 нельзя доверять (например, они могут быть незащищенными, восприимчивыми к выполнению вредоносного кода и т.д.) из-за любого количества факторов, в том числе, помимо прочего, типов приложений, выполняемых пользователем виртуальной машины 104, удаленных служб или веб-сайтов, к которым имеет доступ пользователь, который потенциально может использовать приложение 302 и/или виртуальную машину 104, и/или неотъемлемые аспекты виртуальной машины 104 или самого приложения 302 (например, операционная система, выполняющаяся на виртуальной машине 104, может вообще считаться ненадежной).[0037] Flowchart 200 in FIG. 2 begins at block 202. At block 202, a token request is received from an application running on a second computing environment at least partially isolated from the first computing environment to access a resource. For example, with reference to FIG. 3, trust level assignor 304 may be configured to receive a token request 324 from application 302. Virtual machine 104 may comprise a computing environment that is partially or completely isolated from another computing environment (e.g., a host environment in which a host operating system may be running). computing device 102). For example, virtual machine 104 may include an operating system (eg, the same or a different type as the operating system running in the host environment) and/or one or more applications running therein. The virtual machine 104 runs on top of the host operating system of the computing device 102. The application 302 may contain any type of application that can run on the virtual machine 104, including, but not limited to, software packages installed on the virtual machine 104 or accessible from a remote computer or server , web applications, web services, or any other code or binary that may run on or within the virtual machine 104. In exemplary implementations, virtual machine 104 and/or application 302 may not be trusted (e.g., may be insecure, susceptible to malicious code execution, etc.) due to any number of factors, including, but not limited to, application types, executed by a user of the virtual machine 104, remote services or websites accessed by a user who could potentially use the application 302 and/or the virtual machine 104, and/or integral aspects of the virtual machine 104 or the application 302 itself (e.g., the operating system, running on virtual machine 104 may generally be considered unreliable).

[0038] Хотя на фиг. 3 изображено, что вычислительное устройство 102 может содержать виртуальную машину и приложение, выполняемое в ней, реализации не ограничиваются этой конкретной компоновкой. Например, изолированная вычислительная среда на вычислительном устройстве 102 может вместо этого содержать приложение, выполняющееся на вычислительном устройстве 102 (например, в той же основной операционной системе, что и в среде хоста), такое как приложение, которое исполняется в гостевом режиме, частном режиме или режим инкогнито, компоновку, которая включает в себя один или полностью или частично изолированные контейнеры или изолированные процессы или приложения, вычислительную среду первого центрального процессора (CPU), которая отделена от вычислительной среды второго CPU (на той же или другой печатной плате или материнской плате), или другой режим или конфигурацию, в которых может быть реализована граница полной или частичной изоляции между исполняемым приложением и вычислительной средой хоста.[0038] Although in FIG. 3 illustrates that computing device 102 may include a virtual machine and an application running therein, implementations are not limited to this particular arrangement. For example, the isolated computing environment on computing device 102 may instead contain an application running on computing device 102 (e.g., on the same underlying operating system as the host environment), such as an application that runs in guest mode, private mode, or incognito mode, a layout that includes one or fully or partially isolated containers or isolated processes or applications, a first central processing unit (CPU) computing environment that is separate from the second CPU computing environment (on the same or a different circuit board or motherboard) , or other mode or configuration in which a full or partial isolation boundary can be implemented between the executing application and the host computing environment.

[0039] В примерах приложение 302 может, посредством взаимодействия с пользователем или в ответ на выполнение программного обеспечения на виртуальной машине 104, попытаться подключиться к ресурсам вне виртуальной машины 104, таким как защищенные ресурсы 116. Например, приложение 302 может попытаться подключиться к облачному файловому серверу, удаленному от виртуальной машины 104 и/или вычислительного устройства 102. Чтобы получить доступ к таким защищенным ресурсам 116, приложению 302 может потребоваться предоставить соответствующий маркер авторизации диспетчеру 114 ресурсов. В реализациях запрос маркера для такого маркера авторизации, сгенерированного приложением 302, может быть перенаправлен, так что запрос маркера предоставляется в вычислительную среду хоста. Например, со ссылкой на фиг. 3, запрос маркера авторизации, инициированный приложением 302, может быть перенаправлен на средство 304 назначения уровня доверия, указывающее, что приложение пытается получить доступ к определенным ресурсам. Средство 304 назначения уровня доверия может принимать такой запрос через одну или более дыр, предусмотренных в изоляционном барьере, реализованном между виртуальной машиной 104 и вычислительной средой хоста вычислительного устройства 102.[0039] In examples, application 302 may, through user interaction or in response to software execution on virtual machine 104, attempt to connect to resources outside of virtual machine 104, such as protected resources 116. For example, application 302 may attempt to connect to a cloud file a server remote from the virtual machine 104 and/or computing device 102. To access such protected resources 116, the application 302 may need to provide the appropriate authorization token to the resource manager 114. In implementations, the token request for such an authorization token generated by application 302 may be forwarded such that the token request is provided to the host computing environment. For example, with reference to FIG. 3, an authorization token request initiated by application 302 may be forwarded to trust level assigner 304 indicating that the application is attempting to access certain resources. The trust level assigner 304 may receive such a request through one or more holes provided in an isolation barrier implemented between the virtual machine 104 and the host computing environment of the computing device 102.

[0040] Запрос авторизации, полученный средством 304 назначения уровня доверия от приложения 302, может включать в себя, среди прочего, идентификацию ресурсов, для которых запрашивается доступ (например, идентификацию защищенных ресурсов 116), идентификацию запрашивающего приложения, учетные данные для входа в систему для соответствующего разрешающего объекта (например, поставщика идентификационных данных), тип запрошенного доступа (например, доступ только для чтения, доступ для чтения/записи и т.д.), продолжительность времени, в течение которого запрашивается маркер, и любая другая информация, которая может быть связана с запросом маркера авторизации, как это понимают специалисты в соответствующей области.[0040] The authorization request received by the trust assignor 304 from the application 302 may include, but is not limited to, identification of the resources for which access is being requested (e.g., identification of protected resources 116), identification of the requesting application, login credentials for the appropriate authorizing entity (eg, identity provider), the type of access requested (eg, read-only access, read/write access, etc.), the length of time for which the token is requested, and any other information that may be associated with an authorization token request as understood by those skilled in the art.

[0041] На этапе 204 запросу маркера присваивается уровень доверия. Например, со ссылкой на фиг. 3, средство 304 назначения уровня доверия может быть сконфигурировано для назначения уровня доверия запросу маркера, полученному приложением 302, выполняющимся на виртуальной машине 104. В некоторых примерах, как описано ранее, виртуальная машина 104 и/или одно или более приложений, выполняющихся на ней, могут считаться ненадежными. В таких примерах средство 304 назначения уровня доверия может назначить уровень доверия, который указывает, что объект, запрашивающий запрос маркера (например, путем идентификации приложения 302 и/или виртуальной машины 104), не является доверенным. В некоторых дополнительных реализациях средство 304 назначения уровня доверия может назначать уровень доверия, который включает в себя оценку, такую как буквенно-цифровое значение, которое может указывать уровень надежности запроса маркера на основе заранее определенной шкалы.[0041] At step 204, the token request is assigned a trust level. For example, with reference to FIG. 3, a trust level assigner 304 may be configured to assign a trust level to a token request received by an application 302 running on a virtual machine 104. In some examples, as described previously, the virtual machine 104 and/or one or more applications running on it may be considered unreliable. In such examples, trust level assigner 304 may assign a trust level that indicates that the entity requesting the token request (eg, by identifying application 302 and/or virtual machine 104) is not trusted. In some additional implementations, the trust level assigner 304 may assign a trust level that includes a score, such as an alphanumeric value, that may indicate the confidence level of the token request based on a predetermined scale.

[0042] В примерах средство 304 назначения уровня доверия может назначать уровень доверия различными способами. Например, средство 304 назначения уровня доверия может назначить уровень доверия на основе заранее определенных знаний (например, хранящихся в базе данных или другой структуре данных) относительно характеристик изолированной вычислительной среды, таких как идентификатор виртуальной машины 104, операционной системой, выполняющейся на виртуальной машине 104 и/или любых других приложениях 302, которые могут выполняться в ней. В одном иллюстративном примере средство 304 назначения уровня доверия может автоматически считать, что определенные типы запросов маркеров (или все запросы маркеров), исходящие из изолированной среды, не являются доверенными, и, соответственно, назначать пониженный уровень доверия каждому такому запросу маркера. В других примерах средство 304 назначения уровня доверия может назначать пониженные уровни доверия запросам маркеров, связанным с определенными приложениями, операционными системами или виртуальными машинами, которые могут быть размещены как часть изолированной среды на вычислительном устройстве 102. В других примерах средство 304 назначения уровня доверия может назначать уровни доверия запросам маркеров, принятым от приложения 302, на основе определения "на лету". Уровень доверия может быть указан в любой форме, в том числе числовое значение (например, в диапазоне от 0 до 10, где "0" означает отсутствие доверия, а "10" означает максимальное доверие), текстовое значение (например, "высокий", "средний", "низкий", "нет" и т.д.), буквенно-цифровое значение, строка и т.д.[0042] In examples, the trust level assigner 304 may assign the trust level in various ways. For example, the trust level assigner 304 may assign a trust level based on predetermined knowledge (e.g., stored in a database or other data structure) regarding characteristics of the isolated computing environment, such as the identifier of the virtual machine 104, the operating system running on the virtual machine 104, and /or any other 302 applications that may be running on it. In one illustrative example, the trust level assigner 304 may automatically consider certain types of token requests (or all token requests) originating from the sandbox to be untrusted, and accordingly assign a reduced trust level to each such token request. In other examples, the trust level assignor 304 may assign reduced trust levels to token requests associated with certain applications, operating systems, or virtual machines that may be hosted as part of a sandbox on the computing device 102. In other examples, the trust level assignor 304 may assign levels of confidence in token requests received from application 302 based on on-the-fly determination. The level of trust can be specified in any form, including a numeric value (for example, ranging from 0 to 10, where "0" means no trust and "10" means maximum trust), a text value (for example, "high", "medium", "low", "none", etc.), alphanumeric value, string, etc.

[0043] На этапе 206 получается маркер авторизации, который включает в себя индикатор доверия, соответствующий уровню доверия запроса маркера. Например, со ссылкой на фиг. 3, средство 306 запроса маркеров может получить маркер 312 авторизации, который включает в себя индикатор доверия от издателя 110 маркера. Средство 306 запроса маркеров может получать маркер 312 авторизации различными способами. В иллюстративной компоновке, показанной на фиг. 3, например, блок 306 запроса маркеров может быть сконфигурирован для получения 328 уровня 310 доверия от средства 304 назначения уровня доверия. Средство 306 запроса маркеров может передавать 332 уровень 310 доверия, а также передавать 330 запрос 308 маркеров в средство 314 проверки подлинности идентификации издателя 110 маркеров в соответствии с одним или более API или сетевыми вызовами. Запрос 308 маркера может включать в себя информацию, связанную с запрошенным доступом, как описано ранее, такую как учетные данные для входа, идентификационные данные ресурса, к которому будет осуществляться доступ, объем запрашиваемого доступа и т.д. Запрос 308 маркера может соответствовать запросу маркера, полученному средством 304 назначения уровня доверия из приложения 302 (например, для доступа к ресурсу), и соответствующему уровню доверия. Например, если уровень доверия назначает уровень доверия, указывающий, что виртуальная машина 104 и/или приложение 302 не являются доверенными, средство 306 запроса маркеров может передать запрос 308 маркера и назначенный уровень 310 доверия в соответствующую службу выдачи маркера, чтобы получить маркер, который обеспечивает доступ к запрошенному ресурсу.[0043] At step 206, an authorization token is obtained that includes a trust indicator corresponding to the trust level of the token request. For example, with reference to FIG. 3, token requestor 306 may obtain an authorization token 312 that includes a trust indicator from the token issuer 110. The token requester 306 may obtain the authorization token 312 in various ways. In the exemplary arrangement shown in FIG. 3, for example, token requester 306 may be configured to obtain 328 trust level 310 from trust level assignor 304. The token requester 306 may communicate 332 a trust level 310 and also communicate 330 the token request 308 to the token issuer 110 identity authenticator 314 in accordance with one or more APIs or network calls. The token request 308 may include information associated with the requested access, as described previously, such as login credentials, the identity of the resource to be accessed, the amount of access requested, etc. The token request 308 may correspond to the token request received by the trust level assignor 304 from the application 302 (eg, to access a resource) and the corresponding trust level. For example, if the trust level assigns a trust level indicating that the virtual machine 104 and/or application 302 are not trusted, the token requester 306 may pass the token request 308 and the assigned trust level 310 to the appropriate token issuing service to obtain a token that provides access to the requested resource.

[0044] В реализациях запрос 308 маркера может передаваться отдельно от уровня 310 доверия (например, в разных пакетах данных, последовательно, не по порядку и т.д.). В некоторых других примерах запрос 308 маркера и уровень 310 доверия могут передаваться вместе (например, как часть одного и того же пакета данных или набора пакетов данных). Например, уровень 310 доверия может быть добавлен, включен или иным образом передан с запросом 308 маркера в качестве тега, идентификатора, маркировки, флага, утверждения, метаданных, новой или измененной области, связанной с запросом, и т.д. Реализации не ограничиваются этими иллюстративными примерами и могут включать в себя любой другой способ передачи уровня 310 доверия с запросом 308 маркера, который может указывать информацию о надежности запроса маркера (например, уровень доверия виртуальной машины 104 и/или приложения 302) издателю маркера (например, издателю 110 маркера).[0044] In implementations, the token request 308 may be transmitted separately from the trust layer 310 (eg, in different data packets, sequentially, out of order, etc.). In some other examples, the token request 308 and the trust level 310 may be sent together (eg, as part of the same data packet or set of data packets). For example, a trust level 310 may be added, included, or otherwise communicated with a token request 308 as a tag, identifier, marking, flag, claim, metadata, new or changed scope associated with the request, etc. Implementations are not limited to these illustrative examples and may include any other method of conveying a trust level 310 with a token request 308 that may indicate information about the trustworthiness of the token request (e.g., the trust level of the virtual machine 104 and/or application 302) to the token issuer (e.g., publisher 110 markers).

[0045] В примерах генератор 316 маркеров может генерировать маркер 312 авторизации, который включает в себя индикатор доверия, указывающий уровень доверия среды, в которой может использоваться маркер. Индикатор доверия может содержать любой подходящий формат (например, числовой, текстовый, строковый и т.д.) и может быть включен, добавлен, объединен или иным образом связан с маркером 312 авторизации. Например, индикатор доверия может аналогичным образом содержать тег, идентификатор, маркировку, флаг, утверждение, метаданные, новую или пересмотренную область действия и т.д., которые являются частью или неотъемлемой частью маркера 312 авторизации. В примере, где маркер 312 авторизации является файлом, индикатор доверия может быть записан в существующее поле или как новая запись в файл. При включении индикатора доверия, маркер 312 авторизации считается "помеченным". Соответственно, в реализациях маркер 312 авторизации может содержать помеченный маркер, который указывает, что запрашивающий объект может быть небезопасным. В примерах генератор 316 маркеров может передавать 334 маркер 312 авторизации, который включает в себя индикатор доверия, в средство 306 запроса маркеров (например, по сети).[0045] In examples, the token generator 316 may generate an authorization token 312 that includes a trust indicator indicating the trust level of the environment in which the token can be used. The trust indicator may contain any suitable format (eg, numeric, text, string, etc.) and may be included, appended, combined, or otherwise associated with the authorization token 312. For example, the trust indicator may similarly comprise a tag, identifier, marking, flag, claim, metadata, new or revised scope, etc. that are part of or integral to the authorization token 312. In the example where the authorization token 312 is a file, the trust indicator may be written to an existing field or as a new entry to the file. When the trust indicator is turned on, the authorization token 312 is considered "tagged". Accordingly, in implementations, the authorization token 312 may include a marked token that indicates that the requesting entity may be insecure. In examples, token generator 316 may transmit 334 an authorization token 312, which includes a trust indicator, to token requestor 306 (eg, over a network).

[0046] На этапе 208 маркер авторизации, который включает в себя индикатор доверия, предоставляется приложению, выполняющемуся во второй вычислительной среде. Например, со ссылкой на фиг. 3, средство 306 запроса маркеров может быть сконфигурировано для предоставления 326 маркера 312 авторизации, который включает в себя индикатор доверия приложению 302, выполняющемуся на виртуальной машине 104. В реализациях средство 306 запроса маркеров может передавать маркер 312 авторизации приложению 302 без изменения маркера авторизации. Приложение 302 может затем использовать маркер 312 авторизации для доступа к ресурсу, например защищенным ресурсам 116 (или ресурсу, который может храниться локально для вычислительного устройства 102). В примерах, поскольку индикатор доверия включен как часть маркера 312 авторизации, приложение 302 (или любой вредоносный код, который может выполняться на виртуальной машине 104) не может изменять полученный маркер авторизации. Другими словами, если маркер авторизации был изменен какой-либо деятельностью, происходящей в потенциально скомпрометированной среде (например, виртуальной машине 104), измененный маркер авторизации не разрешит доступ к ресурсам поставщика ресурсов, потому что измененный маркер авторизации не может быть проверен между поставщиком ресурсов и службой авторизации (например, издателем 110 маркера и диспетчером 114 ресурсов, как показано в примере на фиг. 3). В результате индикатор доверия может быть встроен в маркер авторизации способом, который не может быть изменен, тем самым повышая целостность маркера авторизации.[0046] At step 208, an authorization token, which includes a trust indicator, is provided to an application running on the second computing environment. For example, with reference to FIG. 3, token requestor 306 may be configured to provide 326 an authorization token 312 that includes a trust indicator to application 302 running on virtual machine 104. In implementations, token requestor 306 may provide authorization token 312 to application 302 without changing the authorization token. Application 302 may then use authorization token 312 to access a resource, such as protected resources 116 (or a resource that may be stored locally to computing device 102). In the examples, because the trust indicator is included as part of the authorization token 312, the application 302 (or any malicious code that may be running on the virtual machine 104) cannot modify the received authorization token. In other words, if the authorization token has been modified by any activity occurring in the potentially compromised environment (e.g., virtual machine 104), the modified authorization token will not allow access to the resource provider's resources because the modified authorization token cannot be verified between the resource provider and an authorization service (eg, token issuer 110 and resource manager 114, as shown in the example of FIG. 3). As a result, the trust indicator can be embedded in the authorization token in a manner that cannot be changed, thereby increasing the integrity of the authorization token.

[0047] Как будет описано более подробно ниже, когда приложение 302 пытается осуществить доступ к ресурсу путем передачи 336 принятого маркера авторизации соответствующему поставщику ресурсов, поставщик ресурсов может быть сконфигурирован для извлечения (например, чтения или копирования) индикатора доверия из маркера авторизации и определения, следует ли выполнять предупредительное действие перед предоставлением доступа к ресурсу. Например, если средство 320 защиты ресурсов извлекает индикатор доверия, который указывает, что приложение 302 и/или виртуальная машина 104 могут быть небезопасными, средство 320 защиты ресурсов может быть настроено для защиты защищенных ресурсов 116 путем создания резервной копии запрошенных ресурсов (например, путем создания моментального снимка 322 ресурсов до предоставления доступа 338 к таким ресурсам. Примерная блок-схема, изображающая выполнение предупредительных действий для защиты ресурса, будет описана ниже более подробно со ссылкой на фиг. 6.[0047] As will be described in more detail below, when application 302 attempts to access a resource by passing 336 a received authorization token to the appropriate resource provider, the resource provider may be configured to retrieve (e.g., read or copy) a trust indicator from the authorization token and determine, whether a precautionary action should be taken before granting access to the resource. For example, if resource protector 320 retrieves a trust indicator that indicates that application 302 and/or virtual machine 104 may be insecure, resource protector 320 may be configured to protect protected resources 116 by creating a backup of the requested resources (e.g., by creating snapshot 322 of resources before granting access 338 to such resources. An exemplary flowchart depicting the implementation of preventive actions to protect a resource will be described below in more detail with reference to Fig. 6.

[0048] Как описано выше, издатель 110 маркера может быть сконфигурирован для генерирования маркера авторизации, который включает в себя индикатор доверия различными способами. Например, на фиг. 4 показана блок-схема 400 последовательности операций способа генерирования маркера авторизации, который включает в себя индикатор доверия, согласно примерному варианту осуществления. В реализации способ блок-схемы 400 последовательности операций может быть реализован с помощью средства 314 проверки подлинности идентификации и генератора 316 маркеров. Фиг. 4 описывается со ссылкой на фиг. 3. Другие структурные и функциональные реализации будут очевидны специалистам в соответствующей области техники на основе следующего обсуждения блок-схемы 400 последовательности операций и системы 300 на фиг. 3.[0048] As described above, token issuer 110 may be configured to generate an authorization token that includes a trust indicator in various ways. For example, in FIG. 4 shows a flowchart 400 of a method for generating an authorization token that includes a trust indicator, according to an exemplary embodiment. In an implementation, the flowchart method 400 may be implemented using an identity authenticator 314 and a token generator 316 . Fig. 4 is described with reference to FIG. 3. Other structural and functional implementations will be apparent to those skilled in the art based on the following discussion of flowchart 400 and system 300 in FIG. 3.

[0049] Блок-схема 400 последовательности операций начинается с этапа 402. На этапе 402 принимается запрос маркера, который включает в себя информацию идентификации и индикатор того, что запрос маркера был инициирован в приложении второй вычислительной среды, по меньшей мере, частично изолированной от первой вычислительной среды. Например, со ссылкой на фиг. 3, средство 314 проверки подлинности идентификации сервера 108 авторизации может быть сконфигурировано для приема запроса 308 маркера, который включает в себя информацию идентификации и уровень 310 доверия, который указывает связанный уровень доверия. В примерах идентификационная информация может включать в себя одну или более учетных данных пользователя (например, имя пользователя и/или пароль), псевдоним пользователя, номер учетной записи, биометрическую информацию или любую другую информацию или учетные данные, которые может проверять средство 314 проверки подлинности идентификации, чтобы определить, разрешать ли доступ к ресурсу (например, защищенным ресурсам 116). Как описано ранее, уровень 310 доверия может включать в себя информацию, соответствующую уровню доверия среды, в которой был инициирован запрос 308 маркера. Например, со ссылкой на фиг. 3, уровень 310 доверия может указывать уровень доверия, связанный с приложением 302, которое выполняется в виртуальной машине 104. В других примерах уровень 310 доверия может содержать флаг или другой индикатор, который указывает, что запрос был инициирован в среде, отличной от вычислительной среды хоста, или выполнялся в ней. Эти примеры являются только иллюстративными, и уровень 310 доверия может включать в себя информацию любого типа (например, флаг, маркировку, утверждение, метаданные и т.д.), которая указывает, что запрос 308 маркера мог быть инициирован из потенциально ненадежной среды.[0049] Flowchart 400 begins at block 402. At block 402, a token request is received that includes identification information and an indication that the token request was initiated in an application of a second computing environment at least partially isolated from the first. computing environment. For example, with reference to FIG. 3, the identity authenticator 314 of the authorization server 108 may be configured to receive a token request 308 that includes identification information and a trust level 310 that indicates the associated trust level. In examples, the identity information may include one or more user credentials (e.g., username and/or password), user alias, account number, biometric information, or any other information or credentials that the identity authenticator 314 can verify to determine whether to allow access to a resource (for example, protected resources 116). As described previously, the trust level 310 may include information corresponding to the trust level of the environment in which the token request 308 was initiated. For example, with reference to FIG. 3, trust level 310 may indicate the level of trust associated with application 302 that is running in virtual machine 104. In other examples, trust level 310 may include a flag or other indicator that indicates that the request was initiated in an environment other than the host computing environment. , or was executed in it. These examples are illustrative only, and the trust level 310 may include any type of information (eg, flag, marking, assertion, metadata, etc.) that indicates that the token request 308 may have been initiated from a potentially untrusted environment.

[0050] На этапе 404 проверяется достоверность идентификационной информации. Например, со ссылкой на фиг. 3, средство 314 проверки подлинности идентификации может быть сконфигурировано для проверки достоверности информации идентификации, полученной в запросе 308 маркера, чтобы определить, разрешать ли запрашивающему объекту получать маркер авторизации, разрешающий доступ к запрошенному ресурсу. Средство 314 проверки подлинности идентификации может проверять достоверность информации идентификации различными способами, как будет понятно специалистам в соответствующих областях, например, путем поиска информации идентификации в базе данных (например, в базе данных пользователей или учетных записей и т.п.) и создания сравнения, предоставления идентификационной информации другому серверу или службе для проверки и т.д. Например, если проверка не увенчалась успехом (например, получены неверные учетные данные пользователя), средство 314 проверки подлинности идентификации может определить, что доступ не должен быть разрешен, и, следовательно, маркер авторизации не будет предоставлен приложению 302. В случае успешной проверки подлинности средство 314 проверки подлинности идентификации может позволить генератору 316 маркеров сгенерировать соответствующий маркер авторизации, который может быть предоставлен приложению 302 для доступа к запрошенному ресурсу.[0050] At step 404, the validity of the identification information is verified. For example, with reference to FIG. 3, the identity authenticator 314 may be configured to validate the identity information received in the token request 308 to determine whether to allow the requesting entity to obtain an authorization token allowing access to the requested resource. The identification authenticator 314 may verify the validity of the identification information in various ways, as will be appreciated by those skilled in the art, such as by searching the identification information in a database (e.g., a user or account database, etc.) and making a comparison. providing identification information to another server or service for verification, etc. For example, if the verification is unsuccessful (eg, incorrect user credentials are received), the identity authenticator 314 may determine that access should not be allowed, and therefore the authorization token will not be provided to the application 302. If the authentication is successful, the authenticator Identity authentication 314 may allow token generator 316 to generate an appropriate authorization token that can be provided to application 302 to access the requested resource.

[0051] На этапе 406 генерируется маркер авторизации, который включает в себя индикатор доверия. Например, со ссылкой на фиг. 3, генератор 316 маркеров может быть сконфигурирован для генерирования маркера 312 авторизации, который включает в себя индикатор доверия, указывающий уровень доверия вычислительной среды, в которой был инициирован запрос 308 маркера. В примерах индикатор доверия может указывать на уровень доверия, связанный с виртуальной машиной 104 и/или приложением 302, выполняющимся в ней, например, указывая, что вычислительная среда не является доверенной. Как описано ранее, индикатор доверия может быть встроен в маркер 312 авторизации и может содержать любую подходящую форму, в том числе тег, маркировку, флаг, заявку и т.д., которые могут указывать поставщику ресурсов (например, серверу 112 ресурсов) что маркер авторизации может использоваться приложением в ненадежной вычислительной среде.[0051] At step 406, an authorization token is generated that includes a trust indicator. For example, with reference to FIG. 3, token generator 316 may be configured to generate an authorization token 312 that includes a trust indicator indicating the trust level of the computing environment in which the token request 308 was initiated. In examples, the trust indicator may indicate the level of trust associated with the virtual machine 104 and/or application 302 running therein, for example, indicating that the computing environment is not trusted. As described previously, a trust indicator may be embedded in the authorization token 312 and may comprise any suitable form, including a tag, marking, flag, claim, etc., that may indicate to the resource provider (e.g., resource server 112) that the token authorization may be used by an application in an untrusted computing environment.

[0052] В некоторых примерных реализациях индикатор доверия может быть разным для каждого принятого запроса маркера. Например, определенные типы изолированных сред (например, определенные приложения и/или выполняющиеся в них операционные системы, которые известны как небезопасные) могут считаться менее надежными, чем другие приложения или операционные системы, и, следовательно, индикатор доверия для таких менее надежных приложений или операционных систем может указывать на дополнительное снижение уровня доверия. В других примерах индикатор доверия может содержать другой тип индикатора, например, когда приложение может считаться только потенциально заслуживающим доверия (в отличие от того, что оно известно как небезопасное). Таким образом, генератор 316 маркеров может пометить маркер 312 авторизации соответствующим индикатором доверия, который указывает уровень доверия приложения в ненадежной среде, тем самым позволяя поставщику ресурсов выполнять различные превентивные меры на основе встроенного индикатора доверия.[0052] In some example implementations, the trust indicator may be different for each accepted token request. For example, certain types of sandboxed environments (for example, certain applications and/or operating systems running on them that are known to be insecure) may be considered less trusted than other applications or operating systems, and therefore the trust indicator for such less secure applications or operating systems systems may indicate an additional decrease in the level of trust. In other examples, the trust indicator may contain a different type of indicator, such as when an application may only be considered potentially trustworthy (as opposed to being known to be insecure). Thus, the token generator 316 can mark the authorization token 312 with an appropriate trust indicator that indicates the trust level of the application in an untrusted environment, thereby allowing the resource provider to perform various preventive measures based on the built-in trust indicator.

[0053] Маркер 312 авторизации может включать в себя любой тип маркера, который позволяет вычислительному объекту (например, приложениям, службам и т.д.) получать доступ к ресурсу. Примеры маркера 312 авторизации включают в себя, помимо прочего, веб-маркеры, которые обеспечивают доступ к Интернету или другим сетевым ресурсам, маркеры доступа, маркеры, созданные в соответствии со стандартом открытой авторизации (OAuth), маркеры Microsoft® Windows NT и т.д. Маркер 312 авторизации может быть сгенерирован для конкретного запрашивающего приложения или для конкретного ресурса или может содержать единственный маркер, связанный с множеством таких приложений.[0053] Authorization token 312 may include any type of token that allows a computing entity (eg, applications, services, etc.) to access a resource. Examples of authorization token 312 include, but are not limited to, web tokens that provide access to the Internet or other network resources, access tokens, tokens generated in accordance with the Open Authorization (OAuth) standard, Microsoft® Windows NT tokens, etc. . Authorization token 312 may be generated for a specific requesting application or resource, or may comprise a single token associated with multiple such applications.

[0054] В некоторых примерных вариантах осуществления генератор 316 маркеров также может быть сконфигурирован для хранения каждого сгенерированного маркера 312 авторизации в подходящем запоминающем устройстве (либо локально, либо в одном или более облачных хранилищах). Соответственно, когда приложение 302 пытается получить доступ к ресурсу путем предоставления маркера 312 авторизации диспетчеру 114 ресурсов, средство 320 защиты ресурсов может получить маркер авторизации, хранящийся на сервере 108 авторизации, для определения подлинности маркера, полученного от приложения 302, до предоставления доступа к запрашиваемому ресурсу. В других случаях генератор 316 маркеров также может быть сконфигурирован для повторной передачи ранее сгенерированного и еще не истекшего маркера (в том числе индикатор доверия) в средство 306 запроса маркеров, например, когда генератор 316 маркеров ранее сгенерировал маркер авторизации, соответствующий приложению 302 для доступа к тому же ресурсу.[0054] In some example embodiments, the token generator 316 may also be configured to store each generated authorization token 312 in a suitable storage device (either locally or in one or more cloud storage locations). Accordingly, when application 302 attempts to access a resource by providing an authorization token 312 to resource manager 114, resource protector 320 may obtain the authorization token stored on authorization server 108 to determine the authenticity of the token received from application 302 before granting access to the requested resource. . In other cases, token generator 316 may also be configured to retransmit a previously generated and not yet expired token (including a trust indicator) to token requestor 306, such as when token generator 316 has previously generated an authorization token corresponding to application 302 for accessing the same resource.

[0055] На этапе 408 маркер авторизации, который включает в себя индикатор доверия, предоставляется приложению, выполняющемуся во второй вычислительной среде. Например, со ссылкой на фиг. 3, генератор 316 маркеров может быть сконфигурирован для передачи маркера 312 авторизации средству 306 запроса маркеров для предоставления приложению 302 (например, путем прохождения маркера 312 авторизации через границу изоляции) и/или путем предоставления маркера 312 авторизации непосредственно в приложение 302 (например, без передачи маркера средству 306 запроса маркеров в качестве посредника). Как описано выше, приложение 302 может использовать маркер 312 авторизации для доступа к запрошенному ресурсу.[0055] At step 408, an authorization token that includes a trust indicator is provided to an application running on the second computing environment. For example, with reference to FIG. 3, token generator 316 may be configured to pass authorization token 312 to token requester 306 for provision to application 302 (e.g., by passing authorization token 312 across an isolation boundary) and/or by providing authorization token 312 directly to application 302 (e.g., without passing token to the token requester 306 as an intermediary). As described above, application 302 may use authorization token 312 to access the requested resource.

[0056] Как описано в данном документе, диспетчер 114 ресурсов может быть сконфигурирован для защиты защищенных ресурсов 116 в ответ на получение маркера авторизации. Например, на фиг. 5 показана блок-схема последовательности операций способа выполнения предупредительного действия для защиты ресурса согласно примерному варианту осуществления. В реализации способ блок-схемы 500 последовательности операций может быть реализован поставщиком 318 доступа к ресурсам и средством 320 защиты ресурсов. Фиг. 5 описывается со ссылкой на фиг. 3. Другие структурные и функциональные реализации будут очевидны специалистам в соответствующей области техники на основе следующего обсуждения блок-схемы 500 последовательности операций и системы 300 на фиг. 3.[0056] As described herein, resource manager 114 may be configured to protect protected resources 116 in response to receiving an authorization token. For example, in FIG. 5 is a flowchart of a method for performing a preventive action to protect a resource according to an exemplary embodiment. In an implementation, the method of flowchart 500 may be implemented by a resource access provider 318 and a resource protector 320. Fig. 5 is described with reference to FIG. 3. Other structural and functional implementations will be apparent to those skilled in the art based on the following discussion of flowchart 500 and system 300 in FIG. 3.

[0057] Блок-схема 500 последовательности операций начинается с этапа 502. На этапе 502 маркер авторизации принимается от приложения, выполняющегося в вычислительной среде. Например, со ссылкой на фиг. 3, средство 320 защиты ресурсов может быть сконфигурировано для приема маркера 312 авторизации от приложения 302, выполняющегося на виртуальной машине 104 через сеть 110. Как описано в данном документе, маркер 312 авторизации также может включать в себя индикатор доверия, который указывает уровень доверия среды, связанной с маркером 312 авторизации. Следовательно, в этом примере индикатор доверия может указывать на уровень доверия вычислительной среды в виртуальной машине 104 и/или приложение 302 может выполняться.[0057] Flowchart 500 begins at block 502. At block 502, an authorization token is received from an application running in the computing environment. For example, with reference to FIG. 3, resource protector 320 may be configured to receive an authorization token 312 from an application 302 running on a virtual machine 104 via a network 110. As described herein, the authorization token 312 may also include a trust indicator that indicates the trust level of the environment. associated with the authorization token 312. Therefore, in this example, the trust indicator may indicate the level of trust of the computing environment in the virtual machine 104 and/or the application 302 may be running.

[0058] Однако следует отметить, что в некоторых других примерных вариантах осуществления маркер 312 авторизации может не содержать индикатора доверия, например, откуда запрос маркера возник в доверенной среде (например, из приложения, выполняемого в основной операционной системе вычислительного устройства). Например, если доверенное приложение (или приложение, выполняющееся в доверенной среде) запрашивает маркер авторизации, сгенерированная авторизация может не содержать индикатора доверия для такого приложения. Таким образом, в некоторых примерах средство 320 защиты ресурсов также может быть сконфигурировано для определения, присутствует ли индикатор доверия в принятом маркере авторизации.[0058] However, it should be noted that in some other exemplary embodiments, the authorization token 312 may not include a trust indicator, such as where the token request originated in a trusted environment (eg, from an application running on the computing device's host operating system). For example, if a trusted application (or an application running in a trusted environment) requests an authorization token, the generated authorization may not contain a trust indicator for that application. Thus, in some examples, resource protector 320 may also be configured to determine whether a trust indicator is present in a received authorization token.

[0059] После того, как приложение 302 получает маркер 312 авторизации, как описано ранее, приложение 302 может попытаться получить доступ к ресурсам в соответствии с объемом предоставленного маркера авторизации, взаимодействуя с соответствующим поставщиком ресурсов, таким как сервер 112 ресурсов. В примерах приложение 302 также может предоставить маркер 312 авторизации в средство 320 защиты ресурсов вместе с попыткой доступа к ресурсу. Средство 320 защиты ресурсов может проверять подлинность маркера 312 авторизации аналогичным образом, как описано ранее, например, взаимодействуя с сервером 108 авторизации, чтобы определять, действителен ли маркер аутентификации, полученный от приложения 302, и/или срок его действия не истек.[0059] After application 302 receives an authorization token 312 as described previously, application 302 may attempt to access resources consistent with the scope of the provided authorization token by interacting with an appropriate resource provider, such as resource server 112 . In examples, application 302 may also provide an authorization token 312 to resource protector 320 along with an attempt to access the resource. The resource protector 320 may verify the authenticity of the authorization token 312 in a similar manner as described previously, for example, by interacting with the authorization server 108 to determine whether the authentication token received from the application 302 is valid and/or has not expired.

[0060] На этапе 504 индикатор доверия извлекается из маркера авторизации. Например, средство 320 защиты ресурсов может быть сконфигурировано для анализа маркера 312 авторизации, чтобы извлекать из него индикатор доверия. Например, если индикатор доверия встроен в маркер 312 авторизации в качестве идентификатора, маркировки, флага, утверждения, метаданных и т.д., средство 320 защиты ресурсов может извлечь такой индикатор. В некоторых реализациях средство 320 защиты ресурсов также может получать индикатор доверия от сервера 108 авторизации (например, когда подтверждается подлинность принятого маркера).[0060] At step 504, the trust indicator is retrieved from the authorization token. For example, resource protector 320 may be configured to parse authorization token 312 to extract a trust indicator from it. For example, if a trust indicator is embedded in the authorization token 312 as an identifier, token, flag, claim, metadata, etc., the resource protector 320 may extract such an indicator. In some implementations, resource protector 320 may also receive a trust indicator from authorization server 108 (eg, when a received token is verified to be authentic).

[0061] На этапе 506 определяется, что необходимо выполнить предупредительное действие для защиты ресурса. Например, со ссылкой на фиг. 3, средство 320 защиты ресурса может быть сконфигурировано для определения, в ответ на прием маркера авторизации и извлечение индикатора доверия, что должно быть выполнено предупредительное действие для защиты ресурса. Например, если индикатор доверия указывает, что среда, из которой был получен маркер 312 авторизации, не заслуживает доверия, средство 320 защиты ресурсов может определить, что одно или более предупредительных действий должны быть выполнены для защиты защищенных ресурсов 116. Предупредительные действия могут включать в себя действия любого типа, выполняемые для предотвращения (например, упреждающего) или смягчения потенциально злонамеренных изменений защищенных ресурсов 116.[0061] At step 506, it is determined that a preventative action needs to be taken to protect the resource. For example, with reference to FIG. 3, resource protector 320 may be configured to determine, in response to receiving the authorization token and retrieving the trust indicator, that a preventative action should be taken to protect the resource. For example, if the trust indicator indicates that the environment from which the authorization token 312 was received is not trustworthy, the resource protection engine 320 may determine that one or more preventive actions must be performed to protect the protected resources 116. The preventive actions may include actions of any type performed to prevent (e.g., proactively) or mitigate potentially malicious changes to protected resources 116.

[0062] Например, если извлеченный индикатор доверия указывает, что вычислительная среда, из которой был получен маркер 312 авторизации, не заслуживает доверия, средство 320 защиты ресурсов может быть сконфигурировано для выполнения определенных действий для предотвращения повреждения, компрометации и/или взлома данных пользователя. В некоторых примерах средство 320 защиты ресурсов может определять, что необходимо выполнить множество предупредительных действий. В некоторых других случаях средство 320 защиты ресурсов может определить, что предупредительное действие не требуется, например, когда маркер аутентификации был получен из вычислительной среды, о которой известно, что она является доверенной сервером 112 ресурсов. В некоторых других случаях средство 320 защиты ресурсов также может решить не выполнять предупредительные действия, например, когда средство 320 защиты ресурсов считает, что приложение 302 не является вредоносным, на основании предыдущего доступа, предоставленного приложению 302 в ответ на получение того же маркера авторизации.[0062] For example, if the retrieved trust indicator indicates that the computing environment from which the authorization token 312 was obtained is not trustworthy, the resource protector 320 may be configured to take certain actions to prevent corruption, compromise, and/or compromise of user data. In some examples, resource protector 320 may determine that multiple preventive actions need to be taken. In some other cases, resource protector 320 may determine that preventative action is not required, such as when an authentication token was received from a computing environment known to be trusted by resource server 112. In some other cases, resource protector 320 may also decide not to take preventive actions, such as when resource protector 320 believes that application 302 is not malicious based on previous access granted to application 302 in response to receiving the same authorization token.

[0063] На этапе 508 выполняется предупредительное действие для защиты ресурса в ответ на получение маркера авторизации. Например, со ссылкой на фиг. 3, средство 320 защиты ресурсов может быть сконфигурировано для выполнения одного или более предупредительных действий для защиты защищенных ресурсов 116 в ответ на прием маркера 312 авторизации от приложения 302. В примерах тип (или типы) предупредительных действий, выполняемых для защиты защищенных ресурсов 116, может быть основан на комбинации факторов, в том числе типе ресурса, к которому осуществляется доступ, объеме доступа (например, доступ только для чтения, изменение ресурса и т.д.), и/или уровне доверия, который может указываться индикатором доверия в маркере 312 авторизации. Например, если ресурс, к которому выполняется доступ, был идентифицирован как конфиденциальный и/или важный, средство 320 защиты ресурса может быть сконфигурировано для выполнения одной или более мер безопасности для защиты ресурса. В другом примере, если извлеченный индикатор доверия указывает, что вычислительная среда (например, приложение 302), из которой был получен маркер 312 авторизации, известна как ненадежная, средство 320 защиты ресурсов может выполнить одну или более повышенных мер безопасности для защиты защищенных ресурсов 116.[0063] At step 508, a proactive action is performed to protect the resource in response to receiving the authorization token. For example, with reference to FIG. 3, resource protector 320 may be configured to perform one or more proactive actions to protect protected resources 116 in response to receiving an authorization token 312 from application 302. In examples, the type (or types) of proactive actions performed to protect protected resources 116 may be based on a combination of factors, including the type of resource being accessed, the amount of access (e.g., read-only access, modification of the resource, etc.), and/or the level of trust, which may be indicated by a trust indicator in the token 312 authorization. For example, if the resource being accessed has been identified as confidential and/or sensitive, resource protector 320 may be configured to implement one or more security measures to protect the resource. In another example, if the retrieved trust indicator indicates that the computing environment (e.g., application 302) from which the authorization token 312 was obtained is known to be untrusted, the resource protector 320 may perform one or more enhanced security measures to protect the protected resources 116.

[0064] В одном примере средство 320 защиты ресурсов может быть сконфигурировано для автоматического создания моментального снимка 322 ресурсов в ответ на прием маркера 312 авторизации, который указывает, что приложению 302 нельзя доверять. Моментальный снимок 322 ресурсов может содержать, например, резервную копию защищенных ресурсов 116, которая недоступна для приложения 302, даже с маркером 312 авторизации. В некоторых реализациях средство 320 защиты ресурсов может генерировать моментальный снимок 322 защищенных ресурсов 116 различными способами, в том числе путем создания моментального снимка, согласованного со всей областью доступа маркера 312 авторизации (например, копируя все файлы пользователя, если маркер 312 авторизации является обширным), и/или копирования ресурсов на основе файла за файлом (например, копирование только отдельных файлов, к которым приложение 302 пытается получить доступ).[0064] In one example, resource protector 320 may be configured to automatically create a resource snapshot 322 in response to receiving an authorization token 312 that indicates that application 302 cannot be trusted. Resource snapshot 322 may contain, for example, a backup copy of protected resources 116 that are not accessible to application 302, even with authorization token 312. In some implementations, the resource protector 320 may generate a snapshot 322 of the protected resources 116 in various ways, including by creating a snapshot consistent with the entire scope of the authorization token 312 (for example, copying all of the user's files if the authorization token 312 is extensive), and/or copying resources on a file-by-file basis (eg, copying only the individual files that application 302 is attempting to access).

[0065] Хотя в некоторых примерах моментальный снимок 322 ресурса может храниться локально по отношению к защищенным ресурсам 116, предполагается, что моментальный снимок 322 ресурса также может храниться удаленно (например, на другом сервере) способом, который недоступен для приложения 302 и/или любого другого потенциально ненадежного приложения. В некоторых реализациях средство 320 защиты ресурсов может быть сконфигурировано для шифрования (или дальнейшего шифрования) моментального снимка 322 ресурса для дальнейшего повышения безопасности путем предотвращения неавторизованного доступа в случае потенциальной компрометации.[0065] Although in some examples the resource snapshot 322 may be stored locally with respect to the protected resources 116, it is contemplated that the resource snapshot 322 may also be stored remotely (e.g., on another server) in a manner that is not accessible to the application 302 and/or any another potentially unreliable application. In some implementations, resource protector 320 may be configured to encrypt (or further encrypt) resource snapshot 322 to further enhance security by preventing unauthorized access in the event of a potential compromise.

[0066] Создание резервной копии защищенных ресурсов 116 - это только один иллюстративный пример меры предосторожности, которую средство 320 защиты ресурсов может выполнить для защиты ресурса. Средство 320 защиты ресурсов может также выполнять одну или более других мер в дополнение к созданию моментального снимка 322 ресурса или в качестве альтернативы ему, в том числе, помимо прочего, авторизацию области доступа, которая более ограничена, чем область, указанная в маркере 312 авторизации (например, доступ только для чтения к файлам, к которым осуществляется доступ, на устройстве хранения, предотвращение вывода средств из финансового учреждения и т.д.), разрешение доступа только на определенный период времени (например, в днях, часах, минутах, секундах и т.д.), после которого доступ может быть прекращен с полным отказом в доступе (например, когда защищенные ресурсы могут быть сочтены слишком конфиденциальными или важными, например банковская или финансовая информация, чтобы разрешить любой потенциально ненадежный доступ), и/или требуется одно или более дополнительных или альтернативных разрешений процедуры.[0066] Creating a backup copy of protected resources 116 is just one illustrative example of a precaution that resource protector 320 can take to protect a resource. The resource protector 320 may also perform one or more other measures in addition to or as an alternative to creating a resource snapshot 322, including, but not limited to, authorizing an access scope that is more restricted than the scope specified in the authorization token 312 ( for example, read-only access to accessed files on a storage device, preventing withdrawal of funds from a financial institution, etc.), allowing access only for a certain period of time (for example, days, hours, minutes, seconds and etc.), after which access may be terminated with complete denial of access (for example, when protected resources may be deemed too sensitive or sensitive, such as banking or financial information, to allow any potentially untrusted access), and/or one or more additional or alternative procedure resolutions.

[0067] В некоторых других случаях средство 320 защиты ресурсов может выполнять расширенную аутентификацию идентификации в ответ на прием маркера авторизации, который включает в себя индикатор доверия. Например, средство 320 защиты ресурсов может потребовать перед предоставлением доступа к защищенным ресурсам 116, чтобы пользователь вычислительного устройства 102 выполнил дополнительную процедуру аутентификации или повторно выполнил ту же процедуру аутентификации из доверенной среды (например, из приложения, выполняющего в доверенной основной операционной системе), выполнил многофакторную процедуру (например, подтвердил сгенерированный случайным образом код, который передается на мобильное устройство, учетную запись электронной почты и т.д.), чтобы подтвердить, что маркер 312 авторизации был инициирован законным приложением до предоставления доступа к ресурсу.[0067] In some other cases, resource protector 320 may perform enhanced identity authentication in response to receiving an authorization token that includes a trust indicator. For example, the resource protector 320 may require, before granting access to the protected resources 116, that the user of the computing device 102 perform an additional authentication procedure, or repeat the same authentication procedure from a trusted environment (e.g., from an application running on a trusted host operating system), perform a multi-factor procedure (eg, verified a randomly generated code that is sent to a mobile device, email account, etc.) to confirm that the authorization token 312 was initiated by a legitimate application before granting access to the resource.

[0068] В некоторых дополнительных реализациях средство 320 защиты ресурсов также может быть сконфигурировано для обнаружения аномальной активности с помощью маркеров аутентификации, описанных в данном документе. Например, если средство 320 защиты ресурсов принимает ненормальное количество запросов доступа, связанных с конкретным маркером 312 авторизации (например, количество запросов доступа выше порогового значения или в определенный период времени) от приложения 302, средство 320 защиты ресурсов может сделать вывод, что приложение 302 участвует в потенциально вредоносной деятельности или иным образом может быть скомпрометировано. В таком случае средство 320 защиты ресурсов может решить в качестве дополнительной меры предосторожности прекратить обслуживание запросов доступа от приложения 302 в качестве дополнительной меры предосторожности.[0068] In some additional implementations, resource protector 320 may also be configured to detect anomalous activity using the authentication tokens described herein. For example, if resource protector 320 receives an abnormal number of access requests associated with a particular authorization token 312 (e.g., a number of access requests above a threshold or in a certain period of time) from application 302, resource protector 320 may conclude that application 302 is involved in potentially malicious activity or may otherwise be compromised. In such a case, resource protector 320 may decide to stop servicing access requests from application 302 as an additional precaution.

[0069] В некоторых других случаях средство 320 защиты ресурсов также может выполнять профилактическое действие в отношении одного или более ресурсов, не связанных с маркером 312 авторизации. Например, если средство 320 защиты ресурсов принимает запрос от потенциально ненадежной вычислительной среды, средство 320 защиты ресурсов может быть сконфигурировано для автоматической защиты (например, путем шифрования, блокировки, перемещения в более безопасное место и т.д.) несвязанных файлов, которые могут содержать повышенную чувствительность или важность для дальнейшего повышения безопасности. Таким образом, даже если определенный вредоносный код может поставить под угрозу защищенные ресурсы 116, перемещение вредоносного кода все еще может быть ограничено, поскольку средство 320 защиты ресурсов может препятствовать доступу кода не только к моментальному снимку 322 ресурсов, но и к другим данным, которые могут присутствовать на или доступны тому же серверу.[0069] In some other cases, resource protector 320 may also perform preventative action on one or more resources not associated with authorization token 312. For example, if resource protector 320 receives a request from a potentially untrusted computing environment, resource protector 320 may be configured to automatically protect (e.g., by encrypting, locking, moving to a more secure location, etc.) unrelated files that may contain increased sensitivity or importance to further improve safety. Thus, even if certain malicious code may compromise protected resources 116, the movement of malicious code may still be limited because resource protector 320 may prevent code from accessing not only the resource snapshot 322, but also other data that may be present on or accessible to the same server.

[0070] На этапе 510 доступ к ресурсу предоставляется приложением, выполняющимся в вычислительной среде. Например, со ссылкой на фиг. 3, поставщик 318 доступа к ресурсам может быть сконфигурирован для предоставления доступа к защищенным ресурсам 116 приложением 302, выполняющимся в вычислительной среде (т.е. потенциально ненадежной среде). В некоторых примерах тип доступа, предоставляемый поставщиком 318 доступа к ресурсам, может быть основан на предупредительных действиях, выполняемых для защиты защищенных ресурсов 116. Например, если средство 320 защиты ресурсов создало моментальный снимок 322 ресурсов, который недоступен для приложения 302, поставщику 318 доступа к ресурсам может быть разрешен полный доступ для чтения/записи к защищенным ресурсам 116.[0070] At step 510, access to the resource is granted by an application running in the computing environment. For example, with reference to FIG. 3, resource access provider 318 may be configured to provide access to protected resources 116 by application 302 running in a computing environment (ie, a potentially untrusted environment). In some examples, the type of access provided by resource access provider 318 may be based on proactive actions performed to protect protected resources 116. For example, if resource protector 320 has created a snapshot of resources 322 that is not accessible to application 302, access provider 318 resources may be allowed full read/write access to protected resources 116.

[0071] В других примерах, если резервная копия не создается, поставщик 318 доступа к ресурсам может предоставить приложению 302 более ограниченный доступ, такой как доступ только для чтения, для предотвращения воздействия потенциально вредоносных действий на защищенные ресурсы 116. Например, поставщик 318 доступа к ресурсам может быть сконфигурирован для предоставления доступа приложению 302 на основе индикатора доверия, включенного в маркер, для открытия существующего контента в файловом пространстве пользователя и/или генерирования нового контента для хранения в файловом пространстве пользователя, при этом предотвращая изменение или удаление существующего контента приложением 302. В некоторых других реализациях поставщик 318 доступа к ресурсам также может быть сконфигурирован для реализации маркировки или тегов для любого нового контента, сгенерированного приложением 302, так что приложение может не только генерировать новый контент (каждый элемент контента идентифицируется маркировкой или тегом), но изменить или удалить вновь созданный контент на основе отмеченных элементов контента. В дополнительной реализации такая маркировка или тег может быть автоматически очищена, например, после прохождения заранее определенного периода времени или когда маркер авторизации полного доступа (например, маркер, предоставленный приложению, выполняющемуся в доверенной среде) получает доступ к отмеченному содержимому.[0071] In other examples, if a backup is not taken, resource access provider 318 may grant application 302 more limited access, such as read-only access, to prevent potentially malicious activities from affecting protected resources 116. For example, resource access provider 318 resources may be configured to grant access to application 302, based on a trust indicator included in the token, to open existing content in the user's file space and/or generate new content for storage in the user's file space, while preventing application 302 from modifying or deleting existing content. In some other implementations, the resource access provider 318 may also be configured to implement markings or tags for any new content generated by the application 302, so that the application can not only generate new content (each content item is identified by the marking or tag), but modify or delete newly created content based on tagged content items. In an additional implementation, such marking or tag may be automatically cleared, for example, after a predetermined period of time has passed or when a full access authorization token (eg, a token granted to an application running in a trusted environment) gains access to the marked content.

[0072] Поставщик 318 доступа к ресурсам также может быть сконфигурирован для разрешения приложению 302 доступа к моментальному снимку 322 ресурсов (вместо защищенных ресурсов 116, которые могут быть защищены от приложения 302). В любом случае средство 320 защиты ресурсов может быть сконфигурировано для автоматического удаления резервной копии после определения того, что доступ со стороны приложения 302 не был злонамеренным, и/или по истечении заданного времени. В других случаях, например, когда средство 320 защиты ресурсов может быть уведомлено о том, что приложение 302 злонамеренно изменило защищенные ресурсы 116 (например, из-за программы-вымогателя или т.п.), средство 320 защиты ресурсов может быть сконфигурировано для восстановления защищенных ресурсов 116 из моментального снимка 322 ресурсов. В результате, даже если ненадежное приложение пытается внедрить программу-вымогатель, чтобы зашифровать или иным образом изменить файлы пользователя, резервную копию файлов можно легко восстановить, тем самым минимизируя вред от такого злонамеренного поведения.[0072] Resource access provider 318 may also be configured to allow application 302 access to resource snapshot 322 (instead of protected resources 116, which may be protected from application 302). In either case, resource protector 320 may be configured to automatically delete the backup upon determining that access by application 302 was not malicious and/or after a specified time has elapsed. In other cases, such as when resource protector 320 may be notified that application 302 has maliciously modified protected resources 116 (e.g., due to ransomware or the like), resource protector 320 may be configured to recover protected resources 116 from a snapshot of 322 resources. As a result, even if an untrusted application attempts to inject ransomware to encrypt or otherwise modify a user's files, the backed-up files can be easily restored, thereby minimizing the harm of such malicious behavior.

[0073] Следует отметить и понять, что схема, описанная на фиг. 3, является только иллюстративной, и реализации могут включать в себя различные другие типы схем, в том числе схемы, в которых один или более из диспетчера 106 маркеров авторизации, издателя 110 маркеров, диспетчера 114 ресурсов, защищенных ресурсов 116 и моментального снимка 322 ресурсов может быть реализован локально для вычислительного устройства 102. Например, фиг. 6 показывает блок-схему системы 600 для предоставления доступа к локальному ресурсу защищенным способом согласно примерному варианту осуществления. Система 600 содержит вычислительное устройство 602. Подобно вычислительному устройству 102, вычислительное устройство 602 может включать в себя множество вычислительных сред. Например, вычислительное устройство 602 может содержать вычислительную среду, в которой может выполняться основная операционная система, в том числе настольные и/или мобильные операционные системы (например, Microsoft® Windows, Apple® macOS, Apple® iOS, Google® Android). Вычислительное устройство 602 также может включать в себя одну или более других вычислительных сред, как описано в данном документе, например изолированную среду, которая может включать в себя виртуальную машину 104 и приложения, выполняющиеся в ней (например, приложение 302).[0073] It should be noted and understood that the circuit described in FIG. 3 is illustrative only, and implementations may include various other types of schemes, including schemes in which one or more of the authorization token manager 106, token issuer 110, resource manager 114, protected resources 116, and resource snapshot 322 may be implemented locally to computing device 102. For example, FIG. 6 shows a block diagram of a system 600 for providing access to a local resource in a secure manner according to an exemplary embodiment. System 600 includes a computing device 602. Like computing device 102, computing device 602 may include multiple computing environments. For example, computing device 602 may include a computing environment that can run a host operating system, including desktop and/or mobile operating systems (eg, Microsoft® Windows, Apple® macOS, Apple® iOS, Google® Android). Computing device 602 may also include one or more other computing environments as described herein, such as an isolated environment that may include virtual machine 104 and applications running therein (eg, application 302).

[0074] В примерной компоновке на фиг. 6 первая вычислительная среда (например, вычислительная среда, которая может размещать изолированную среду) может включать в себя одно или более из диспетчера 106 маркеров авторизации, издателя 110 маркеров, диспетчера 114 ресурсов, защищенных ресурсов 116 и моментального снимка 322 ресурса. Например, вместо того, чтобы один или более таких компонентов были реализованы на одном или более сетевых объектах, такие компоненты могут быть реализованы локально для вычислительного устройства 602. Например, модуль 306 запроса маркеров может предоставить запрос маркера (например, запрос маркера NT или т.п.) средству 314 проверки подлинности идентификации, которое сконфигурировано для управления маркерами авторизации для локальных действий на вычислительном устройстве 602. В некоторых примерных реализациях средство 314 проверки подлинности идентификации и/или генератор 316 маркеров могут быть реализованы как часть основной операционной системы вычислительного устройства 602, диспетчера файловой системы и/или как любое другое приложение, выполняющееся на нем, так что доступом к локально сохраненным данным (или удаленно сохраненным данным, которые могут быть доступны через локальное взаимодействие, например, с помощью ярлыка и т.п.) можно управлять с помощью локальных маркеров авторизации. Другими словами, генератор 316 маркеров может быть сконфигурирован для генерирования и предоставления маркеров авторизации, которые разрешают приложениям, выполняющимся на вычислительном устройстве 602 (в том числе любым приложениям, которые могут размещаться в изолированных средах), получать доступ к локальным ресурсам, таким как защищенные ресурсы 116.[0074] In the exemplary arrangement of FIG. 6, the first computing environment (eg, a computing environment that may host an isolated environment) may include one or more of an authorization token manager 106, a token issuer 110, a resource manager 114, a protected resource 116, and a resource snapshot 322. For example, rather than one or more such components being implemented on one or more network entities, such components may be implemented locally to computing device 602. For example, token request module 306 may provide a token request (e.g., an NT token request or the like). an identity authenticator 314 that is configured to manage authorization tokens for local activities on the computing device 602. In some example implementations, the identity authenticator 314 and/or token generator 316 may be implemented as part of the host operating system of the computing device 602. file system manager and/or like any other application running on it, so that access to locally stored data (or remotely stored data that can be accessed through local interaction, such as a shortcut, etc.) can be controlled from using local authorization tokens. In other words, token generator 316 may be configured to generate and provide authorization tokens that allow applications running on computing device 602 (including any applications that may be hosted in sandboxed environments) to access local resources, such as protected resources 116.

[0075] Соответственно, когда приложение 302 запрашивает маркер, а средство 306 запроса маркеров предоставляет запрос 308 маркера и назначает уровень 310 доверия издателю 110 маркера, генератор 316 маркеров может сгенерировать маркер авторизации, который включает в себя индикатор доверия, указывающий уровень 310 доверия, аналогичным образом, как описано ранее. Маркер авторизации может включать в себя, например, информацию, связанную с авторизованным доступом, такую как информация о пользователе (например, идентификация пользователя как администратора, гостя и т.д.), уровень разрешения (например, только чтение, чтение/доступ на запись и т.д.), идентификация запрошенных ресурсов и т.д. Средство 306 запроса маркеров может предоставить маркер авторизации, который включает в себя индикатор доверия (например, помеченный маркер авторизации), приложению 302, разрешая приложению доступ к локальным ресурсам, которые могут быть доступны за пределами виртуальной машины 104.[0075] Accordingly, when application 302 requests a token and token requester 306 provides a token request 308 and assigns a trust level 310 to the token issuer 110, the token generator 316 may generate an authorization token that includes a trust indicator indicating the trust level 310, similar in the manner as described previously. The authorization token may include, for example, information associated with authorized access, such as user information (e.g., user identification as administrator, guest, etc.), permission level (e.g., read-only, read/write access etc.), identification of requested resources, etc. The token requester 306 may provide an authorization token, which includes a trust indicator (e.g., a tagged authorization token), to the application 302, allowing the application to access local resources that may be accessible outside of the virtual machine 104.

[0076] Соответственно, когда приложение 302 пытается получить доступ или изменить ресурс вне изолированной вычислительной среды, такой как защищенные ресурсы 116, поставщик 318 доступа к ресурсам может извлечь индикатор доверия из маркера авторизации, предоставленного приложением 302, и определить, что приложение 302 не может быть доверенным. В ответ на получение такого помеченного запроса авторизации, указывающего, что приложению 302 нельзя доверять, средство 320 защиты ресурсов может выполнить одно или более предупредительных действий в вычислительной среде, содержащей основную операционную систему, для защиты защищенных ресурсов 116, например создание моментального снимка 322 ресурсов, который содержит резервную копию защищенных ресурсов 116, до предоставления доступа к защищенным ресурсам 116. Как описано ранее, средство 320 защиты ресурсов может также содержать любые другие типы предупредительных действий в дополнение или в качестве альтернативы созданию моментального снимка 322 ресурсов, в том числе, помимо прочего, разрешение ограниченного доступа (например, доступ только для чтения) к защищенным ресурсам 116, предотвращение шифрования (или дополнительного шифрования) защищенных ресурсов 116, требование расширенной авторизации или любые другие меры предосторожности, что будет понятно специалистам в данной области техники.[0076] Accordingly, when application 302 attempts to access or modify a resource outside of an isolated computing environment, such as protected resources 116, resource access provider 318 may extract a trust indicator from the authorization token provided by application 302 and determine that application 302 cannot to be trusted. In response to receiving such a flagged authorization request indicating that the application 302 cannot be trusted, the resource protector 320 may perform one or more proactive actions in the computing environment containing the host operating system to protect the protected resources 116, such as creating a resource snapshot 322. which contains a backup copy of the protected resources 116, prior to providing access to the protected resources 116. As described previously, the resource protector 320 may also contain any other types of preventive actions in addition to or as an alternative to creating a snapshot of the resources 322, including, but not limited to , allowing limited access (eg, read-only access) to protected resources 116, preventing encryption (or additional encryption) of protected resources 116, requiring enhanced authorization, or any other precautions that will be understood by those skilled in the art.

[0077] Следует отметить и понять, что изолированные среды не обязательно должны включать в себя виртуальную машину 104, как описано со ссылкой на фиг. 3 и 6. Например, приложение 302 может также содержать приложение любого типа (например, веб-браузер), выполняющееся в вычислительной среде хоста, которая может включать в себя частичную или полную границу изоляции. Таким образом, даже если изолированная среда содержит другое приложение, которое может обращаться к ресурсам, хранящимся либо локально, либо удаленно, реализации могут по-прежнему обеспечивать более безопасный доступ к таким ресурсам (например, путем создания резервной копии, ограничения доступа и т.д.) посредством маркировки маркеров авторизации, которые используются для такого доступа, с информацией доверия среды доступа, как описано в данном документе.[0077] It should be noted and understood that sandboxed environments do not necessarily have to include virtual machine 104 as described with reference to FIG. 3 and 6. For example, application 302 may also include any type of application (eg, a web browser) running in a host computing environment, which may include a partial or complete isolation boundary. Thus, even if the sandbox contains another application that can access resources stored either locally or remotely, implementations can still provide more secure access to such resources (for example, by creating a backup, restricting access, etc. .) by marking the authorization tokens that are used for such access with the access environment trust information as described in this document.

III. Примеры вариантов осуществления мобильных и стационарных устройствIII. Examples of Mobile and Desktop Device Embodiments

[0078] Вычислительное устройство 102, виртуальная машина 104, диспетчер 106 маркеров авторизации, сервер 108 авторизации, издатель 110 маркеров, сервер 112 ресурсов, диспетчер 114 ресурсов, защищенные ресурсы 116, средство 304 назначения уровня доверия, средство 306 запроса маркеров, средство 314 проверки подлинности идентификации, генератор 316 маркеров, поставщик 318 доступа к ресурсам, средство 320 защиты ресурсов, моментальный снимок 322 ресурсов, блок-схема 200 последовательности операций, блок-схема 400 последовательности операций и/или блок-схема 500 последовательности операций могут быть реализованы в аппаратном обеспечении или в аппаратном обеспечении в сочетании с программным обеспечением и/или микропрограммным обеспечением, например, в виде компьютерного программного кода/инструкций, сохраненных на физическом/аппаратном компьютерно-читаемом носителе данных и сконфигурированных для выполнения в одном или более процессорах, или могут быть реализованы как аппаратная логическая/электрическая схема (например, электрические схемы, состоящие из транзисторов, логических вентилей, операционных усилителей, одной или более специализированных интегральных схем (ASIC), одной или более программируемых вентильных матриц (FPGA)). Например, одно или более из вычислительного устройства 102, виртуальной машины 104, диспетчера 106 маркеров авторизации, сервера 108 авторизации, издателя 110 маркера, сервера 112 ресурсов, диспетчера 114 ресурсов, защищенных ресурсов 116, средства 304 назначения уровня доверия, средства 306 запроса маркеров, средства 314 проверки подлинности идентификации, генератора 316 маркеров, поставщика 318 доступа к ресурсам, средства 320 защиты ресурсов, моментального снимка 322 ресурсов, блок-схемы 200 последовательности операций, блок-схемы 400 последовательности операций и/или блок-схемы 500 последовательности операций может быть реализовано отдельно или вместе в SoC. SoC может включать в себя кристалл интегральной схемы, который включает в себя один или более из процессора (например, центрального процессора (CPU), микроконтроллера, микропроцессора, цифрового сигнального процессора (DSP) и т.д.), память, один или более интерфейсов связи и/или дополнительные схемы и может, в необязательном порядке, исполнять принятый программный код и/или включать в сея встроенное микропрограммное обеспечение, чтобы выполнять функции.[0078] Computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, protected resources 116, trust level assigner 304, token requester 306, checker 314 identity authentication, token generator 316, resource access provider 318, resource protector 320, resource snapshot 322, flowchart 200, flowchart 400, and/or flowchart 500 may be implemented in hardware software or in hardware in combination with software and/or firmware, for example, in the form of computer program code/instructions stored on a physical/hardware computer-readable storage medium and configured for execution on one or more processors, or may be implemented as hardware logic/electrical circuitry (e.g., electrical circuitry consisting of transistors, logic gates, operational amplifiers, one or more application specific integrated circuits (ASICs), one or more field programmable gate arrays (FPGAs)). For example, one or more of computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, secure resources 116, trust level assigner 304, token requester 306, Identity authenticator 314, token generator 316, resource access provider 318, resource protector 320, resource snapshot 322, flowchart 200, flowchart 400, and/or flowchart 500 may be implemented separately or together in an SoC. The SoC may include an integrated circuit chip that includes one or more of a processor (e.g., a central processing unit (CPU), a microcontroller, a microprocessor, a digital signal processor (DSP), etc.), a memory, and one or more interfaces communications and/or additional circuitry and may optionally execute received program code and/or incorporate firmware to perform functions.

[0079] Фиг. 7 изображает примерную реализацию вычислительного устройства 700, в которой могут быть реализованы примерные варианты осуществления. Например, любое из вычислительного устройства 102, виртуальной машины 104, диспетчера 106 маркеров авторизации, сервера 108 авторизации, издателя 110 маркеров, сервера 112 ресурсов, диспетчера 114 ресурсов, защищенных ресурсов 116, средства 304 назначения уровня доверия, средства 306 запроса маркеров, средства 314 проверки подлинности идентификации, генератора 316 маркеров, поставщика 318 доступа к ресурсам, средства 320 защиты и/или моментального снимка 322 ресурсов может быть реализовано в одном или более вычислительных устройствах, подобных вычислительному устройству 700 в вариантах стационарного или мобильного компьютера, включающем в себя один или более признаков вычислительного устройства 700 и/или альтернативные признаки. Описание вычислительного устройства 700, предоставленное в данном документе, предоставляется в целях иллюстрации и не предназначено быть ограничивающим. Примеры вариантов осуществления могут быть реализованы в компьютерных системах других типов, как известно специалистам в соответствующей области техники.[0079] FIG. 7 depicts an exemplary implementation of a computing device 700 in which exemplary embodiments may be implemented. For example, any of computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, secure resources 116, trust level assigner 304, token requester 306, token requester 314 identity authentication, token generator 316, resource access provider 318, security 320, and/or resource snapshot 322 may be implemented in one or more computing devices, similar to computing device 700 in desktop or mobile computer embodiments, including one or more features of the computing device 700 and/or alternative features. The description of computing device 700 provided herein is provided for purposes of illustration and is not intended to be limiting. Example embodiments may be implemented in other types of computer systems as is known to those skilled in the art.

[0080] Как показано на фиг. 7, вычислительное устройство 700 включает в себя один или более процессоров, называемых процессорной схемой 702, системную память 704 и шину 706, которая связывает различные компоненты системы, включающие в себя системную память 704 и процессорную схему 702. Процессорная схема 702 является электрической и/или оптической схемой, реализованной в одном или более физических аппаратных элементах устройства электрической схемы и/или устройствах на интегральных схемах (наборах микросхем из полупроводникового материала или кристаллах) как центральный процессор (CPU), микроконтроллер, микропроцессор и/или другая физическая аппаратная процессорная схема. Процессорная схема 702 может исполнять программный код, сохраненный на компьютерном читаемом носителе, такой как программный код операционной системы 730, прикладные программы 732, другие программы 734, и т.д. Шина 706 представляет один или более из каких-либо нескольких типов структур шин, включающих в себя шину памяти или контроллер памяти, периферийную шину, ускоренный графический порт и процессорную или локальную шину, использующую любую из множества шинных архитектур. Системная память 704 включает в себя постоянное запоминающее устройство (ROM) 708 и оперативное запоминающее устройство (RAM) 710. Базовая система 712 ввода/вывода (BIOS) хранится в ROM 708.[0080] As shown in FIG. 7, computing device 700 includes one or more processors, referred to as processor circuitry 702, system memory 704, and a bus 706 that communicates various system components, including system memory 704 and processor circuitry 702. Processor circuitry 702 is electrical and/or optical circuitry implemented in one or more physical hardware elements of an electrical circuit device and/or integrated circuit devices (chipsets of semiconductor material or chips) such as a central processing unit (CPU), microcontroller, microprocessor, and/or other physical hardware processing circuitry. Processor circuit 702 may execute program code stored on a computer-readable medium, such as operating system program code 730, application programs 732, other programs 734, etc. Bus 706 represents one or more of several types of bus structures, including a memory bus or memory controller, a peripheral bus, an accelerated graphics port, and a processor or local bus using any of a variety of bus architectures. System memory 704 includes read only memory (ROM) 708 and random access memory (RAM) 710. Basic input/output system (BIOS) 712 is stored in ROM 708.

[0081] Компьютерное устройство 700 также имеет один или более следующих накопителей: накопитель 714 на жестких дисках для считывания и записи на жесткий диск, накопитель 716 на магнитных дисках для считывания или записи на съемный магнитный диск 718 и накопитель 720 на оптических дисках для считывания или записи на съемный оптический диск 722, такой как CD-ROM, DVD-ROM или другие оптические носители. Накопитель 714 на жестких дисках, накопитель 716 на магнитных дисках и накопитель 720 на оптических дисках подключены к шине 706 посредством интерфейса 724 накопителя на жестких дисках, интерфейса 726 накопителя на магнитных дисках и интерфейса 728 накопителя на оптических дисках, соответственно. Накопители и их ассоциированные компьютерно-читаемые носители предоставляют энергонезависимое хранилище компьютерно-читаемых инструкций, структур данных, программных модулей и других данных для компьютера. Хотя жесткий диск, съемный магнитный диск и съемный оптический диск описываются, другие типы аппаратных компьютерно-читаемых носителей хранения могут быть использованы для хранения данных, такие как карты флэш-памяти, цифровые видеодиски, RAM, ROM и другие аппаратные носители хранения.[0081] Computer device 700 also has one or more of the following drives: a hard drive 714 for reading from or writing to a hard disk, a magnetic disk drive 716 for reading or writing to a removable magnetic disk 718, and an optical disk drive 720 for reading or writing recording onto a removable optical disk 722, such as a CD-ROM, DVD-ROM, or other optical media. Hard disk drive 714, magnetic disk drive 716, and optical disk drive 720 are connected to bus 706 via hard disk drive interface 724, magnetic disk drive interface 726, and optical disk drive interface 728, respectively. Drives and their associated computer-readable media provide nonvolatile storage of computer-readable instructions, data structures, program modules, and other data for a computer. Although a hard disk, a removable magnetic disk, and a removable optical disk are described, other types of hardware computer-readable storage media may be used to store data, such as flash memory cards, digital video disks, RAM, ROM, and other hardware storage media.

[0082] Множество программных модулей может быть сохранено на жестком диске, магнитном диске, оптическом диске, ROM или RAM. Эти программы включают в себя операционную систему 730, одну или более прикладных программ 732, другие программы 734 и программные данные 736. Прикладные программы 732 или другие программы 734 могут включать в себя, например, логику компьютерной программы (например, код компьютерной программы или инструкции) для реализации вычислительного устройства 102, виртуальной машины 104, диспетчера 106 маркеров авторизации, сервера 108 авторизации, издателя 110 маркеров, сервера 112 ресурсов, диспетчера 114 ресурсов, защищенных ресурсов 116, средства 304 назначения уровня доверия, средства 306 запроса маркеров, средства 314 проверки подлинности идентификации, генератора 316 маркеров, поставщика 318 доступа к ресурсам, средства 320 защиты ресурсов, моментального снимка 322 ресурсов, блок-схемы 200 последовательности операций, блок-схемы 400 последовательности операций и/или блок-схемы 500 последовательности операций (в том числе любого подходящего этапа блок-схем 200, 400 или 500 последовательности операций) и/или другие примерные варианты осуществления, описанные в данном документе.[0082] A plurality of program modules may be stored on a hard disk, magnetic disk, optical disk, ROM, or RAM. These programs include an operating system 730, one or more application programs 732, other programs 734, and program data 736. Application programs 732 or other programs 734 may include, for example, computer program logic (e.g., computer program code or instructions) to implement computing device 102, virtual machine 104, authorization token manager 106, authorization server 108, token issuer 110, resource server 112, resource manager 114, protected resources 116, trust level assigner 304, token requester 306, authenticator 314 identification, token generator 316, resource access provider 318, resource protector 320, resource snapshot 322, flowchart 200, flowchart 400, and/or flowchart 500 (including any suitable flowchart steps 200, 400, or 500) and/or other exemplary embodiments described herein.

[0083] Пользователь может вводить команды и информацию в вычислительное устройство 700 через устройства ввода, такие как клавиатура 738 и указательное устройство 740. Другие устройства ввода (не показаны) могут включать в себя микрофон, джойстик, игровой планшет, спутниковую тарелку, сканер, сенсорный экран и/или сенсорную панель, систему распознавания голоса, чтобы принимать голосовой ввод, систему распознавания жестов, чтобы принимать ввод жестом, или т.п. Эти и другие устройства ввода часто подключены к процессорной схеме 702 через интерфейс 742 последовательного порта, который присоединен к шине 706, но могут быть подключены посредством других интерфейсов, таких как параллельный порт, игровой порт или универсальная последовательная шина (USB).[0083] The user may enter commands and information into the computing device 700 through input devices such as a keyboard 738 and pointing device 740. Other input devices (not shown) may include a microphone, joystick, game pad, satellite dish, scanner, touch a screen and/or touchpad, a voice recognition system to accept voice input, a gesture recognition system to accept gesture input, or the like. These and other input devices are often connected to the processor circuit 702 via a serial port interface 742, which is coupled to bus 706, but may be connected via other interfaces, such as a parallel port, a game port, or a universal serial bus (USB).

[0084] Экран 744 отображения также присоединяется к шине 706 через интерфейс, такой как видеоадаптер 746. Экран 744 отображения может быть внешним по отношению или встроенным в вычислительное устройство 700. Экран 744 отображения может отображать информацию, также как является пользовательским интерфейсом для приема пользовательских команд и/или другой информации (например, посредством касания, жестов пальцами, виртуальной клавиатуры и т.д.). В дополнение к экрану 744 отображения, компьютерное устройство 700 может включать в себя другие периферийные устройства вывода (не показаны), такие как динамики и принтеры.[0084] Display screen 744 is also coupled to bus 706 through an interface, such as video adapter 746. Display screen 744 may be external to or embedded in computing device 700. Display screen 744 may display information as well as be a user interface for receiving user commands. and/or other information (for example, through touch, finger gestures, virtual keyboard, etc.). In addition to the display screen 744, the computing device 700 may include other peripheral output devices (not shown), such as speakers and printers.

[0085] Вычислительное устройство 700 соединяется с сетью 748 (например, Интернетом) через адаптер или сетевой интерфейс 750, модем 752 или другое средство для установления связи по сети. Модем 752, который может быть внутренним или внешним, может быть соединен с шиной 706 через интерфейс 742 последовательного порта, как показано на фиг. 7, или может быть соединен с шиной 706 с помощью другого типа интерфейса, включающего в себя параллельный интерфейс.[0085] The computing device 700 connects to a network 748 (eg, the Internet) through an adapter or network interface 750, a modem 752, or other network communication means. Modem 752, which may be internal or external, may be coupled to bus 706 via serial port interface 742, as shown in FIG. 7, or may be coupled to bus 706 using another type of interface, including a parallel interface.

[0086] Когда используются в данном документе, термины "компьютерный программный носитель", "компьютерно-читаемый носитель" и "компьютерно-читаемый носитель хранения" используются, чтобы ссылаться на физические аппаратные носители, такие как жесткий диск, ассоциированный с накопителем 714 на жестком диске, съемный магнитный диск 718, съемный оптический диск 722, другие физические аппаратные носители, такие как RAM, ROM, карты флэш-памяти, цифровые видеодиски, zip-диски, MEM, запоминающие устройства на основе нанотехнологий и дополнительные типы физических/материальных аппаратных носителей хранения. Такие компьютерно-читаемые носители хранения отличаются и не пересекаются со средой передачи данных (не включают в себя среду передачи данных). Среда передачи данных осуществляет компьютерно-читаемые инструкции, структуры данных, программные модули или другие данные в модулированном информационном сигнале, таком как несущая волна. Термин "модулированный сигнал данных" означает сигнал, который имеет одну или более своих характеристик, заданных или изменяемых таким образом, чтобы кодировать информацию в сигнале. В качестве примера, а не ограничения, среда передачи данных включает в себя беспроводную среду, такую как акустическая, RF, инфракрасная и другая беспроводная среда, также как и проводную среду. Примеры вариантов осуществления также направлены на такие среды передачи данных, которые являются отдельными и не перекрываются с вариантами осуществления, направленными на компьютерночитаемые носители данных.[0086] When used herein, the terms “computer program medium,” “computer readable medium,” and “computer readable storage medium” are used to refer to physical hardware media, such as a hard disk drive associated with hard drive 714. disk, removable magnetic disk 718, removable optical disk 722, other physical hardware media such as RAM, ROM, flash memory cards, digital video disks, zip disks, MEM, nanotechnology-based storage devices, and additional types of physical/tangible hardware media storage Such computer-readable storage media are distinct from and do not interfere with the communication media (do not include the communication media). The communication medium carries computer-readable instructions, data structures, program modules, or other data in a modulated information signal, such as a carrier wave. The term "modulated data signal" means a signal that has one or more of its characteristics set or changed in such a way as to encode information in the signal. By way of example, and not limitation, communication media include wireless media such as acoustic, RF, infrared and other wireless media, as well as wired media. Example embodiments are also directed to such media that are separate and do not overlap with embodiments directed to computer-readable storage media.

[0087] Как отмечено выше, компьютерные программы и модули (включающие в себя прикладные программы 732 и другие программы 734) могут быть сохранены на жестком диске, магнитном диске, оптическом диске, ROM, RAM или другом аппаратном носителе хранения. Такие компьютерные программы могут также быть приняты через сетевой интерфейс 750, интерфейс 742 последовательного порта или любой другой тип интерфейса. Такие компьютерные программы, когда они выполняются или загружаются приложением, позволяют вычислительному устройству 700 реализовывать признаки примерных вариантов осуществления, описанных в данном документе. Соответственно, такие компьютерные программы представляют собой контроллеры вычислительного устройства 700.[0087] As noted above, computer programs and modules (including application programs 732 and other programs 734) may be stored on a hard disk, magnetic disk, optical disk, ROM, RAM, or other hardware storage medium. Such computer programs may also be received through network interface 750, serial port interface 742, or any other type of interface. Such computer programs, when executed or loaded by an application, allow computing device 700 to implement features of the exemplary embodiments described herein. Accordingly, such computer programs are controllers of the computing device 700.

[0088] Примерные варианты осуществления также направлены на компьютерные программные продукты, содержащие компьютерный код или инструкции, сохраненные на любом компьютерно-читаемом носителе. Такие компьютерные программные продукты включают в себя накопители на жестких дисках, накопители на оптических дисках, модули запоминающих устройств, переносные флэш-карты, карты памяти и другие типы физических запоминающих аппаратных средств.[0088] Exemplary embodiments are also directed to computer program products comprising computer code or instructions stored on any computer-readable medium. Such computer software products include hard disk drives, optical disk drives, storage modules, portable flash cards, memory sticks, and other types of physical storage hardware.

IV. Примерные варианты осуществленияIV. Exemplary Embodiments

[0089] В данном документе описывается система в вычислительном устройстве для предоставления маркера авторизации с индикатором доверия. Система включает в себя: один или более процессоров; и одно или более запоминающих устройств, в которых хранится программный код, сконфигурированный для выполнения одним или более процессорами, программный код содержит: средство проверки подлинности идентификации, сконфигурированное для: приема запроса маркера от диспетчера маркеров авторизации первой вычислительной среды, который включает в себя: идентификационную информацию и индикатор того, что запрос маркера был инициирован в приложении, выполняющемся во второй вычислительной среде, по меньшей мере, частично изолированной от первой вычислительной среды; и проверку идентификационной информации; и генератор маркеров, сконфигурированный для: генерирования маркера авторизации, который включает в себя индикатор доверия, указывающее уровень доверия второй вычислительной среды; и передачи маркера авторизации, который включает в себя индикатор доверия, в первую вычислительную среду.[0089] This document describes a system on a computing device for providing an authorization token with a trust indicator. The system includes: one or more processors; and one or more storage devices storing program code configured for execution by one or more processors, the program code comprising: an identification authenticator configured to: receive a token request from an authorization token manager of a first computing environment, which includes: an identification information and an indicator that the token request was initiated in an application running in a second computing environment at least partially isolated from the first computing environment; and verification of identification information; and a token generator configured to: generate an authorization token that includes a trust indicator indicating a trust level of the second computing environment; and transmitting an authorization token that includes a trust indicator to the first computing environment.

[0090] В одной реализации вышеупомянутой системы индикатор доверия содержит индикатор того, что приложение, выполняющееся во второй вычислительной среде, не является доверенным.[0090] In one implementation of the above system, the trust indicator includes an indicator that an application running on the second computing environment is not trusted.

[0091] В другой реализации вышеупомянутой системы вторая вычислительная среда содержит виртуальную машину, размещенную в первой вычислительной среде.[0091] In another implementation of the above system, the second computing environment includes a virtual machine hosted on the first computing environment.

[0092] В другой реализации вышеупомянутой системы маркер авторизации сконфигурирован так, чтобы разрешать приложению, выполняющемуся во второй вычислительной среде, получать доступ к защищенному ресурсу в первой вычислительной среде.[0092] In another implementation of the above system, the authorization token is configured to allow an application running on a second computing environment to access a protected resource on a first computing environment.

[0093] В другой реализации вышеупомянутой системы маркер авторизации сконфигурирован так, чтобы разрешать приложению, выполняющемуся во второй вычислительной среде, получать доступ к защищенному ресурсу по сети.[0093] In another implementation of the above system, the authorization token is configured to allow an application running on a second computing environment to access a protected resource over a network.

[0094] В другой реализации вышеупомянутой системы доступ к защищенному ресурсу со стороны приложения, выполняющегося во второй вычислительной среде, включает в себя доступ только для чтения к защищенному ресурсу.[0094] In another implementation of the above system, access to a protected resource by an application running on a second computing environment includes read-only access to the protected resource.

[0095] В данном документе раскрывается способ предоставления доступа к ресурсу защищенным образом. Способ включает в себя: прием запроса маркера от приложения, выполняющегося во второй вычислительной среде, по меньшей мере, частично изолированной от первой вычислительной среды, для доступа к ресурсу; присвоение уровня доверия запросу маркера; получение маркера авторизации, который включает в себя индикатор доверия, причем индикатор доверия соответствует уровню доверия запроса маркера; и предоставление маркера авторизации, который включает в себя индикатор доверия, приложению, выполняющемуся во второй вычислительной среде.[0095] This document discloses a method for providing access to a resource in a secure manner. The method includes: receiving a token request from an application running on a second computing environment at least partially isolated from the first computing environment to access a resource; assigning a trust level to the token request; obtaining an authorization token that includes a trust indicator, wherein the trust indicator corresponds to the trust level of the token request; and providing an authorization token, which includes a trust indicator, to an application running on the second computing environment.

[0096] В одной реализации вышеупомянутого способа получение маркера авторизации включает в себя: передачу запроса маркера и назначенного уровня доверия издателю маркера; и получение маркера авторизации, который включает в себя индикатор доверия, соответствующий уровню доверия, от издателя маркера.[0096] In one implementation of the above method, obtaining an authorization token includes: transmitting a token request and an assigned trust level to the issuer of the token; and obtaining an authorization token that includes a trust indicator corresponding to the trust level from the issuer of the token.

[0097] В другой реализации вышеупомянутого способа индикатор доверия содержит индикатор того, что приложение, выполняющееся во второй вычислительной среде, не является доверенным.[0097] In another implementation of the above method, the trust indicator includes an indicator that an application running on the second computing environment is not trusted.

[0098] В другой реализации вышеупомянутого способа ресурс хранится в первой вычислительной среде; и способ дополнительно включает в себя: получение маркера авторизации от приложения, выполняющегося во второй вычислительной среде; и выполнение предупредительного действия в первой вычислительной среде для защиты ресурса в ответ на получение маркера авторизации.[0098] In another implementation of the above method, the resource is stored in a first computing environment; and the method further includes: obtaining an authorization token from an application running on the second computing environment; and performing a preventive action in the first computing environment to protect the resource in response to receiving the authorization token.

[0099] В другой реализации вышеупомянутого способа предупредительное действие включает в себя создание резервной копии ресурса в ответ на получение маркера авторизации.[0099] In another implementation of the above method, the preventive action includes creating a backup copy of the resource in response to receiving an authorization token.

[0100] В другой реализации вышеупомянутого способа способ дополнительно содержит: предоставление доступа только для чтения к ресурсу первой вычислительной средой в ответ на получение маркера авторизации.[0100] In another implementation of the above method, the method further comprises: providing read-only access to the resource by the first computing environment in response to receiving the authorization token.

[0101] В другой реализации вышеупомянутого способа ресурс хранится на сервере, который сконфигурирован для выполнения предупредительных действий в ответ на: получение маркера авторизации; извлечение индикатора доверия из маркера авторизации; и определение того, что предупредительные действия должны выполняться на основе извлеченного индикатора доверия.[0101] In another implementation of the above method, the resource is stored on a server that is configured to perform proactive actions in response to: receiving an authorization token; extracting the trust indicator from the authorization token; and determining that preventive actions should be performed based on the extracted trust indicator.

[0102] В другой реализации вышеупомянутого способа вторая вычислительная среда содержит виртуальную машину, размещенную в первой вычислительной среде.[0102] In another implementation of the above method, the second computing environment includes a virtual machine hosted on the first computing environment.

[0103] Здесь описана система предоставления доступа к ресурсу. Система включает в себя: один или более процессоров; и одно или более запоминающих устройств, в которых хранится программный код, сконфигурированный для выполнения одним или более процессорами, программный код содержит: средство защиты ресурсов, сконфигурированное для: приема от приложения, выполняющегося в вычислительной среде, маркера авторизации для доступа к ресурсу, маркер авторизации включает в себя индикатор доверия, указывающий уровень доверия приложения; выполнения предупредительного действия для защиты ресурса в ответ на получение маркера авторизации, в том числе индикатора доверия; и поставщика доступа к ресурсам, сконфигурированного для предоставления доступа к ресурсу приложением, выполняющимся в вычислительной среде.[0103] A system for providing access to a resource is described here. The system includes: one or more processors; and one or more storage devices storing program code configured for execution by one or more processors, the program code comprising: resource protection means configured to: receive from an application running in the computing environment an authorization token for access to the resource, an authorization token includes a trust indicator indicating the trust level of the application; performing a proactive action to protect the resource in response to receiving an authorization token, including a trust indicator; and a resource access provider configured to provide access to the resource by an application running in the computing environment.

[0104] В одной реализации вышеупомянутой системы индикатор доверия содержит индикатор того, что приложение, выполняющееся в вычислительной среде, не является доверенным.[0104] In one implementation of the above system, the trust indicator includes an indicator that an application running in the computing environment is not trusted.

[0105] В другой реализации вышеупомянутой системы вычислительная среда содержит виртуальную машину, размещенную в другой вычислительной среде.[0105] In another implementation of the above system, the computing environment includes a virtual machine hosted in another computing environment.

[0106] В другой реализации вышеупомянутой системы предупредительное действие, выполняемое средством защиты ресурсов, включает в себя: создание резервной копии ресурса в ответ на получение маркера авторизации.[0106] In another implementation of the above system, the preventive action performed by the resource protector includes: creating a backup copy of the resource in response to receiving an authorization token.

[0107] В другой реализации вышеупомянутой системы поставщик доступа к ресурсам сконфигурирован для предоставления ограниченного доступа к ресурсу приложением, выполняющимся в вычислительной среде, в ответ на получение маркера авторизации.[0107] In another implementation of the above system, a resource access provider is configured to provide limited access to a resource by an application running in a computing environment in response to receiving an authorization token.

[0108] В другой реализации вышеупомянутой системы средство защиты ресурсов сконфигурировано для выполнения расширенной аутентификации идентификации в ответ на получение маркера авторизации; и поставщик доступа к ресурсам сконфигурирован для предоставления доступа к ресурсу в ответ на выполнение расширенной аутентификации идентификации.[0108] In another implementation of the above system, the resource protector is configured to perform enhanced identity authentication in response to receiving an authorization token; and the resource access provider is configured to provide access to the resource in response to performing enhanced identity authentication.

V. ЗаключениеV. Conclusion

[0109] Хотя выше описаны различные варианты осуществления изобретения, следует понимать, что они представлены только в качестве примера, а не ограничения. Специалистам в соответствующей области(ях) техники будет понятно, что различные изменения в форме и деталях могут быть выполнены в нем без отступления от существа и объема изобретения, которые определяются прилагаемой формулой изобретения. Соответственно, широта и объем настоящего изобретения не должны ограничиваться каким-либо из вышеописанных примерных вариантов осуществления, но должны быть определены только в соответствии с последующей формулой изобретения и ее эквивалентами.[0109] Although various embodiments of the invention have been described above, it should be understood that they are presented by way of example only and not limitation. Those skilled in the relevant art(s) will appreciate that various changes in form and detail may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. Accordingly, the breadth and scope of the present invention should not be limited by any of the exemplary embodiments described above, but should be defined only in accordance with the following claims and their equivalents.

Claims (34)

1. Система в вычислительном устройстве для предоставления маркера авторизации с индикатором доверия, содержащая:1. A system in a computing device for providing an authorization token with a trust indicator, comprising: один или более процессоров; иone or more processors; And одно или более запоминающих устройств, в которых хранится программный код, приспособленный для исполнения одним или более процессорами, причем программный код содержит:one or more storage devices storing program code adapted for execution by one or more processors, the program code comprising: средство проверки подлинности идентификации, сконфигурированное:Identity authenticator configured: принимать от диспетчера маркеров авторизации первой вычислительной среды запрос маркера, который включает в себя информацию идентификации и указание того, что запрос маркера был инициирован в приложении, исполняющемся во второй вычислительной среде, по меньшей мере частично изолированной от первой вычислительной среды, иreceiving from the authorization token manager of the first computing environment a token request that includes identification information and an indication that the token request was initiated in an application executing on a second computing environment that is at least partially isolated from the first computing environment, and подтверждать подлинность информации идентификации; иconfirm the authenticity of identification information; And генератор маркеров, сконфигурированный:token generator configured: генерировать маркер авторизации, который включает в себя индикатор доверия, указывающий уровень доверия второй вычислительной среды, иgenerate an authorization token that includes a trust indicator indicating the level of trust of the second computing environment, and передавать маркер авторизации, который включает в себя индикатор доверия, в первую вычислительную среду.transmit the authorization token, which includes the trust indicator, to the first computing environment. 2. Система по п.1, при этом индикатор доверия содержит указание того, что приложение, исполняющееся во второй вычислительной среде, не является доверенным.2. The system according to claim 1, wherein the trust indicator contains an indication that the application running in the second computing environment is not trusted. 3. Система по п.1, при этом вторая вычислительная среда содержит виртуальную машину, размещенную в первой вычислительной среде.3. The system according to claim 1, wherein the second computing environment comprises a virtual machine hosted in the first computing environment. 4. Система по п.1, при этом маркер авторизации сконфигурирован разрешать приложению, исполняющемуся во второй вычислительной среде, осуществлять доступ к защищенному ресурсу в первой вычислительной среде.4. The system of claim 1, wherein the authorization token is configured to allow an application running in the second computing environment to access a protected resource in the first computing environment. 5. Система по п.1, при этом маркер авторизации сконфигурирован разрешать приложению, исполняющемуся во второй вычислительной среде, осуществлять доступ к защищенному ресурсу по сети.5. The system of claim 1, wherein the authorization token is configured to allow an application running in the second computing environment to access the protected resource over the network. 6. Система по п.4, при этом доступ к защищенному ресурсу со стороны приложения, исполняющегося во второй вычислительной среде, включает в себя доступ только для чтения к защищенному ресурсу.6. The system of claim 4, wherein access to the protected resource by an application executing in the second computing environment includes read-only access to the protected resource. 7. Способ предоставления доступа к ресурсу защищенным образом, содержащий этапы, на которых:7. A method of providing access to a resource in a secure manner, containing the steps of: принимают от приложения, исполняющегося во второй вычислительной среде, по меньшей мере частично изолированной от первой вычислительной среды, запрос маркера для доступа к ресурсу;receiving from an application running in a second computing environment, at least partially isolated from the first computing environment, a request for a token to access a resource; назначают уровень доверия запросу маркера;assigning a trust level to the token request; получают маркер авторизации, который включает в себя индикатор доверия, причем индикатор доверия соответствует уровню доверия запроса маркера; иobtaining an authorization token that includes a trust indicator, wherein the trust indicator corresponds to the trust level of the token request; And предоставляют маркер авторизации, который включает в себя индикатор доверия, приложению, исполняющемуся во второй вычислительной среде.providing an authorization token, which includes a trust indicator, to an application executing on the second computing environment. 8. Способ по п.7, в котором упомянутое получение маркера авторизации содержит этапы, на которых:8. The method of claim 7, wherein said obtaining an authorization token comprises the steps of: передают запрос маркера и назначенный уровень доверия издателю маркера; иtransmitting the token request and the assigned trust level to the token issuer; And принимают маркер авторизации, который включает в себя индикатор доверия, соответствующий уровню доверия, от издателя маркера.receiving an authorization token that includes a trust indicator corresponding to the trust level from the issuer of the token. 9. Способ по п.7, в котором индикатор доверия содержит указание того, что приложение, исполняющееся во второй вычислительной среде, не является доверенным.9. The method of claim 7, wherein the trust indicator comprises an indication that the application running on the second computing environment is not trusted. 10. Способ по п.7, в котором ресурс хранится в первой вычислительной среде; при этом способ дополнительно содержит этапы, на которых:10. The method of claim 7, wherein the resource is stored in the first computing environment; the method further comprises the steps of: принимают маркер авторизации от приложения, исполняющегося во второй вычислительной среде; иreceiving an authorization token from an application running on the second computing environment; And выполняют предупредительные действия в первой вычислительной среде для защиты ресурса в ответ на прием маркера авторизации.performing preventive actions in the first computing environment to protect the resource in response to receiving the authorization token. 11. Способ по п.10, в котором предупредительное действие включает в себя создание резервной копии ресурса в ответ на прием маркера авторизации.11. The method of claim 10, wherein the preventative action includes creating a backup copy of the resource in response to receiving the authorization token. 12. Способ по п.10, дополнительно содержащий этап, на котором предоставляют, посредством первой вычислительной среды, доступ только для чтения к ресурсу в ответ на прием маркера авторизации.12. The method of claim 10, further comprising providing, by the first computing environment, read-only access to the resource in response to receiving the authorization token. 13. Способ по п.7, в котором ресурс хранится на сервере, который сконфигурирован для выполнения предупредительных действий в ответ на:13. The method of claim 7, wherein the resource is stored on a server that is configured to perform preventative actions in response to: прием маркера авторизации;receiving an authorization token; извлечение индикатора доверия из маркера авторизации; иextracting the trust indicator from the authorization token; And определение предупредительного действия, которое должно быть выполнено, на основе извлеченного индикатора доверия.determining the preventive action to be performed based on the extracted trust indicator. 14. Способ по п.7, в котором вторая вычислительная среда содержит виртуальную машину, размещенную в первой вычислительной среде.14. The method of claim 7, wherein the second computing environment comprises a virtual machine hosted on the first computing environment. 15. Машиночитаемый носитель данных, на котором записаны программные инструкции, содержащие логические средства компьютерной программы для обеспечения выполнения процессором способа по любому из пп.7-14.15. A computer-readable storage medium on which are stored program instructions containing the logic of a computer program for causing the processor to execute the method according to any one of claims 7 to 14.
RU2021137245A 2019-05-17 2020-04-13 Ransomware mitigation in integrated isolated applications RU2807463C2 (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US16/415,690 2019-05-17

Publications (2)

Publication Number Publication Date
RU2021137245A RU2021137245A (en) 2023-06-19
RU2807463C2 true RU2807463C2 (en) 2023-11-15

Family

ID=

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070270212A1 (en) * 2000-10-19 2007-11-22 Igt Executing multiple applications and their variations in computing environments
US20130047259A1 (en) * 2011-08-15 2013-02-21 Bank Of America Corporation Method and apparatus for token-based virtual machine recycling
US20140282989A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Actively Federated Mobile Authentication
US20150106915A1 (en) * 2011-07-20 2015-04-16 Microsoft Corporation Trust level activation
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US20180352002A1 (en) * 2015-09-03 2018-12-06 Vmware, Inc. Access control policy management in a computing environment
RU2757651C1 (en) * 2021-03-15 2021-10-19 Акционерное общество "Лаборатория Касперского" Method for creating and applying an application interaction rule on an iot device

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070270212A1 (en) * 2000-10-19 2007-11-22 Igt Executing multiple applications and their variations in computing environments
US20150106915A1 (en) * 2011-07-20 2015-04-16 Microsoft Corporation Trust level activation
US20130047259A1 (en) * 2011-08-15 2013-02-21 Bank Of America Corporation Method and apparatus for token-based virtual machine recycling
US9672355B2 (en) * 2011-09-16 2017-06-06 Veracode, Inc. Automated behavioral and static analysis using an instrumented sandbox and machine learning classification for mobile security
US20140282989A1 (en) * 2013-03-15 2014-09-18 Microsoft Corporation Actively Federated Mobile Authentication
US20180352002A1 (en) * 2015-09-03 2018-12-06 Vmware, Inc. Access control policy management in a computing environment
RU2757651C1 (en) * 2021-03-15 2021-10-19 Акционерное общество "Лаборатория Касперского" Method for creating and applying an application interaction rule on an iot device

Similar Documents

Publication Publication Date Title
EP3970040B1 (en) Mitigation of ransomware in integrated, isolated applications
CN109923548B (en) Method, system and computer program product for implementing data protection by supervising process access to encrypted data
US11947688B2 (en) Secure computing system
CN109075976B (en) Certificate issuance dependent on key authentication
US10162975B2 (en) Secure computing system
US9876783B2 (en) Distributed password verification
US9514294B1 (en) Accessing a computing resource
US9984227B2 (en) Hypervisor and virtual machine protection
CN112513857A (en) Personalized cryptographic security access control in a trusted execution environment
CN112805708B (en) Protecting selected disks on a computer system
US20230283633A1 (en) Credential input detection and threat analysis
Chatterjee et al. A comprehensive study on security issues in android mobile phone—scope and challenges
RU2807463C2 (en) Ransomware mitigation in integrated isolated applications
Odirichukwu et al. Security concept in Web database development and administration—A review perspective
Kim et al. Security analysis and bypass user authentication bound to device of windows hello in the wild
Simeon et al. Smart phone security threats and risk Mitigation strategies
Basavala et al. Mobile applications-vulnerability assessment through the static and dynamic analysis
Nilsson Penetration testing of Android applications
JP2013092998A (en) Access determination device, access determination method and program
Ramasamy et al. Security in Windows 10
US20240314118A1 (en) Secure multi-factor authentication
Hughes Android mobile security: A comprehensive evaluation of its feats and flaws
Zhao Authentication and Data Protection under Strong Adversarial Model
Gautam Enhancing security and usability in password-based web systems through standardized authentication interactions
Abdumalikov WINDOWS SECURITY IN THE WORLD OF SPREAD VULNERABILITIES