CN117730322A - Generation of security policies for software programs - Google Patents
Generation of security policies for software programs Download PDFInfo
- Publication number
- CN117730322A CN117730322A CN202180100566.XA CN202180100566A CN117730322A CN 117730322 A CN117730322 A CN 117730322A CN 202180100566 A CN202180100566 A CN 202180100566A CN 117730322 A CN117730322 A CN 117730322A
- Authority
- CN
- China
- Prior art keywords
- access
- software program
- security policy
- blocked
- processing unit
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/20—Network architectures or network communication protocols for network security for managing network security; network security policies in general
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Databases & Information Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Storage Device Security (AREA)
Abstract
Description
背景技术Background technique
本公开中描述的一些实施例涉及控制对计算机资源的访问,更具体地,但非排他性地,涉及软件程序的安全策略的生成。Some embodiments described in this disclosure relate to controlling access to computer resources, and more specifically, but not exclusively, to the generation of security policies for software programs.
为简洁起见,除非另有明确说明,在下文中,术语“系统”用于指“计算机化系统”,并且这两个术语可互换使用。For the sake of brevity, in the following, the term "system" is used to refer to a "computerized system" unless explicitly stated otherwise, and the two terms are used interchangeably.
在执行软件程序的系统中,所述软件程序可能需要访问一个或多个计算机资源,以便正确运行。计算机资源可以是内存区域或文件。计算机资源的另一个示例是数字通信网络资源,例如识别的端口号,或网络套接字等软件网络端点。计算机资源的其它一些示例包括但不限于由操作系统提供的服务、进程间通信接入点和与执行软件程序的至少一部分的硬件处理器连接的设备。In a system on which a software program executes, the software program may require access to one or more computer resources in order to function correctly. Computer resources can be memory areas or files. Another example of a computer resource is a digital communications network resource, such as an identified port number, or a software network endpoint such as a network socket. Some other examples of computer resources include, but are not limited to, services provided by the operating system, inter-process communication access points, and devices coupled to a hardware processor that executes at least a portion of a software program.
在下文中,术语“资源”用于指“计算机资源”,并且这两个术语可互换使用。In the following, the term "resource" is used to refer to "computer resource" and the two terms are used interchangeably.
保护系统免遭恶意攻击的需求与日俱增。为此,一些系统在被系统执行的一个或多个程序访问时,管制对系统的一个或多个计算机资源的访问。一套管理访问系统的计算机资源的规则和做法也称为安全策略。The need to protect systems from malicious attacks is growing day by day. To this end, some systems regulate access to one or more computer resources of the system when accessed by one or more programs executing on the system. A set of rules and practices that govern access to a system's computer resources is also called a security policy.
存在各种类型的安全策略。在一个示例中,默认情况下,安全策略阻止所有软件程序对系统的所有计算机资源的访问,除非显式开启对一个或多个软件程序对一个或多个资源的访问。相反,在另一个示例中,安全策略使所有软件程序能够访问系统的所有资源,除非显式阻止一个或多个软件程序对一个或多个计算机资源的访问。在某些安全策略中,默认阻止系统的一些资源,默认解除对系统的其它一些资源的阻止,分别显式开启对一个或多个计算机资源的访问或显式阻止对一个或多个计算机资源的访问。Various types of security policies exist. In one example, a security policy blocks, by default, all software programs from accessing all computer resources of the system unless access to one or more resources by one or more software programs is explicitly turned on. In contrast, in another example, a security policy enables all software programs to access all resources of the system unless one or more software programs are explicitly blocked from access to one or more computer resources. In some security policies, some resources of the system are blocked by default, and some other resources of the system are unblocked by default. Access to one or more computer resources is explicitly enabled or access to one or more computer resources is explicitly blocked. access.
为了使执行软件程序的系统正确运行,需要将系统配置为执行安全策略,使得软件程序能够访问软件程序运行所需的所有计算机资源。然而,为了降低软件程序对系统造成损坏的可能性(例如由于注入到软件程序中的恶意代码而损坏系统),希望系统执行安全策略,以额外阻止软件程序访问软件程序运行不需要的计算机资源。In order for the system executing the software program to operate correctly, the system needs to be configured to enforce security policies so that the software program can access all computer resources required for the software program to run. However, in order to reduce the possibility of a software program causing damage to the system (for example, due to malicious code injected into the software program), it is desirable for the system to implement security policies that additionally prevent software programs from accessing computer resources that are not required for the software program to run.
发明内容Contents of the invention
本公开包括对根据本公开的系统和方法的描述,使得能够使用一系列策略构建迭代为软件程序生成安全策略。The present disclosure includes a description of systems and methods according to the present disclosure that enable the generation of security policies for software programs using a series of policy construction iterations.
在这样的系统的一些实现方式中,监控所述系统对软件程序的执行,以识别一次或多次被阻止的访问,其中所述软件程序对所述系统的多个计算机资源中的一个或多个被阻止的资源的访问被执行识别的安全策略的所述系统阻止。在这种实现方式中,当识别到被阻止的访问时,计算修改的安全策略以开启对所述一个或多个被阻止的资源的访问。在这种实现方式中,这些步骤在一系列策略构建迭代中的每一次迭代中重复,其中一次迭代的所述修改的安全策略用作多个策略构建迭代的下一次迭代的所述识别的安全策略。In some implementations of such systems, the system's execution of a software program to one or more of a plurality of computer resources of the system is monitored to identify one or more blocked accesses. Access to a blocked resource is blocked by the system enforcing the identified security policy. In this implementation, when blocked access is identified, a modified security policy is computed to enable access to the one or more blocked resources. In this implementation, these steps are repeated in each iteration of a series of policy building iterations, where the modified security policy of one iteration is used as the identified security of the next iteration of multiple policy building iterations. Strategy.
上述和其它目的通过独立权利要求的特征实现。其它实现方式在从属权利要求、说明书和附图中是显而易见的。The above and other objects are achieved by the features of the independent claims. Other implementations are apparent from the dependent claims, the description and the drawing.
根据第一方面,提供了一种用于为软件程序生成安全策略的系统,所述系统包括处理单元,所述处理单元用于在一系列策略构建迭代中的每一次迭代中:监控所述系统对软件程序的执行,其中所述系统用于执行识别的安全策略,从而阻止所述软件程序对多个被阻止的计算机资源的访问,生成描述所述软件程序对所述系统的多个计算机资源的多次访问的监控数据;在所述多次访问中识别所述软件程序对所述多个被阻止的计算机资源中的至少一个计算机资源的至少一次被阻止的访问;计算修改的安全策略以开启所述软件程序对所述至少一次被阻止的计算机资源的访问;指示所述系统的配置,以在一系列策略构建迭代中的下一次迭代中将所述修改的安全策略作为所述识别的安全策略执行。修改识别的安全策略,以根据用于执行所述识别的安全策略的系统在执行所述软件程序时识别的一次或多次被阻止的访问,开启所述软件程序对一个或多个被阻止的计算机资源的访问,从而提高了所述修改的安全策略的准确性,减少了所述软件程序不需要的解除阻止的资源的数量,额外或可替换地减少了所述软件程序所需的被阻止的资源的数量。According to a first aspect, there is provided a system for generating a security policy for a software program, said system comprising a processing unit for, in each iteration of a series of policy construction iterations: monitoring said system Execution of a software program, wherein the system is configured to enforce an identified security policy that prevents the software program from accessing a plurality of blocked computer resources, generating a description of the software program's access to a plurality of computer resources of the system monitoring data of multiple accesses; identifying at least one blocked access by the software program to at least one of the plurality of blocked computer resources among the multiple accesses; calculating a modified security policy to enabling said software program's access to said at least one blocked computer resource; instructing said system to be configured to include said modified security policy as said identified in a next iteration in a series of policy construction iterations Security policy enforcement. Modify the identified security policy to enable the software program to access one or more blocked accesses based on one or more blocked accesses identified by the system used to enforce the identified security policy while executing the software program. Access to computer resources, thereby increasing the accuracy of said modified security policy, reducing the number of unblocked resources required by said software program, additionally or alternatively reducing the number of blocked resources required by said software program The amount of resources.
根据第二方面,提供了一种用于为软件程序生成安全策略的方法,所述方法包括在一系列策略构建迭代中的每一次迭代中:监控系统对软件程序的执行,其中所述系统用于执行识别的安全策略,从而阻止所述软件程序对多个被阻止的计算机资源的访问,生成描述所述软件程序对所述系统的多个计算机资源的多次访问的监控数据;在所述多次访问中识别所述软件程序对所述多个被阻止的计算机资源中的至少一个计算机资源的至少一次被阻止的访问;计算修改的安全策略以开启所述软件程序对所述至少一次被阻止的计算机资源的访问;指示所述系统的配置,以在一系列策略构建迭代中的下一次迭代中将所述修改的安全策略作为所述识别的安全策略执行。According to a second aspect, there is provided a method for generating a security policy for a software program, the method comprising, in each iteration of a series of policy construction iterations: monitoring execution of the software program by a system, wherein the system uses for executing the identified security policy, thereby preventing the software program from accessing a plurality of blocked computer resources, generating monitoring data describing multiple accesses of the software program to a plurality of computer resources of the system; in said Identifying at least one blocked access by the software program to at least one of the plurality of blocked computer resources among multiple accesses; calculating a modified security policy to enable the software program to access the at least one blocked computer resource. Blocking access to computer resources; instructing the configuration of the system to execute the modified security policy as the identified security policy in a next iteration in a series of policy construction iterations.
根据第三方面,提供了一种用于为软件程序生成安全策略的软件程序产品,所述软件程序产品包括:非瞬时性计算机可读存储介质;第一程序指令,用于监控系统对软件程序的执行,其中所述系统用于执行识别的安全策略,从而阻止所述软件程序对多个被阻止的计算机资源的访问,生成描述所述软件程序对所述系统的多个计算机资源的多次访问的监控数据;第二程序指令,用于在所述多次访问中识别所述软件程序对所述多个被阻止的计算机资源中的至少一个计算机资源的至少一次被阻止的访问;第三程序指令,用于计算修改的安全策略以开启所述软件程序对所述至少一次被阻止的计算机资源的访问;第四程序指令,用于指示所述系统的配置,以在一系列策略构建迭代中的下一次迭代中将所述修改的安全策略作为所述识别的安全策略执行。所述第一程序指令、第二程序指令、第三程序指令和第四程序指令由来自所述非瞬时性计算机可读存储介质的至少一个计算机化处理器执行。According to a third aspect, a software program product for generating a security policy for a software program is provided. The software program product includes: a non-transitory computer-readable storage medium; a first program instruction for monitoring the system's response to the software program. Execution, wherein the system is configured to implement the identified security policy, thereby preventing the software program from accessing a plurality of blocked computer resources, generating multiple times describing the software program's access to a plurality of computer resources of the system. Monitoring data of accesses; second program instructions for identifying at least one blocked access by the software program to at least one of the plurality of blocked computer resources among the plurality of accesses; third Program instructions for calculating a modified security policy to enable the software program to access the at least one blocked computer resource; fourth program instructions for instructing the configuration of the system to build iterations in a series of policies The modified security policy is executed as the identified security policy in the next iteration. The first, second, third and fourth program instructions are executed by at least one computerized processor from the non-transitory computer-readable storage medium.
在根据第一方面所述的装置或根据第二方面所述的方法的一种可能的实现方式中,所述多个被阻止的计算机资源中的至少一个计算机资源是从所述计算机资源列表中选择的,所述计算机资源包括以下至少一项:内存的区域、文件、与所述处理单元连接的设备、进程间通信接入点、数字通信网络资源、以及由所述处理单元执行的操作系统提供的服务。可选地,从内存的区域、文件、与所述处理单元连接的设备、进程间通信接入点、数字通信网络资源和由所述处理单元执行的操作系统提供的服务组成的组中选择所述多个被阻止的计算机资源中的至少一个计算机资源。可选地,在所述一系列策略构建迭代中的第一策略构建迭代中,所述多个被阻止的计算机资源是所述系统的所述多个计算机资源。在所述第一策略构建迭代中阻止对所述系统的所述多个计算机资源的访问提高了优选安全策略的准确性,减少了所述软件程序不需要的解除阻止的资源的数量。In a possible implementation of the apparatus according to the first aspect or the method according to the second aspect, at least one computer resource among the plurality of blocked computer resources is selected from the computer resource list. Optionally, the computer resources include at least one of the following: memory areas, files, devices connected to the processing unit, inter-process communication access points, digital communication network resources, and operating systems executed by the processing unit service provided. Optionally, selected from the group consisting of areas of memory, files, devices connected to the processing unit, inter-process communication access points, digital communication network resources and services provided by the operating system executed by the processing unit. At least one computer resource among the plurality of blocked computer resources. Optionally, in a first policy building iteration in the series of policy building iterations, the plurality of blocked computer resources are the plurality of computer resources of the system. Blocking access to the plurality of computer resources of the system in the first policy construction iteration increases the accuracy of preferred security policies and reduces the number of unblocked resources that are not required by the software program.
在根据第一方面所述的装置或根据第二方面所述的方法的一种可能的实现方式中,所述处理单元还用于:确定所述识别的安全策略是未能识别所述至少一次被阻止的访问的优选安全策略;将所述优选安全策略提供给所述系统的至少一个用户。确定所述识别的安全策略是未能识别所述至少一次被阻止的访问的优选安全策略,提高了所述优选安全策略的准确性,减少了所述软件程序不需要的解除阻止的资源的数量。可选地,提供所述优选安全策略包括以下至少一项:将所述优选安全策略存储在与所述处理单元连接的非易失性数字存储器中;在日志文件、所述系统的日志中的一个或多个中添加日志条目;通过与所述处理单元连接的数字通信网络接口向至少一个其它处理单元发送消息;在连接到所述处理单元的显示设备上显示消息。In a possible implementation of the device according to the first aspect or the method according to the second aspect, the processing unit is further configured to: determine that the identified security policy fails to identify the at least one A preferred security policy for blocked access; providing said preferred security policy to at least one user of said system. Determining that the identified security policy is the preferred security policy that failed to identify the at least one blocked access increases the accuracy of the preferred security policy and reduces the number of unblocked resources that are not required by the software program . Optionally, providing the preferred security policy includes at least one of the following: storing the preferred security policy in a non-volatile digital memory connected to the processing unit; in a log file, a log of the system adding a log entry to one or more of the processing units; sending a message to at least one other processing unit through a digital communication network interface connected to the processing unit; displaying the message on a display device connected to the processing unit.
在根据第一方面所述的装置或根据第二方面所述的方法的一种可能的实现方式中,监控所述软件程序的执行包括监控所述系统的日志、执行命令、捕获数字通信网络流量中的至少一种。In a possible implementation of the device according to the first aspect or the method according to the second aspect, monitoring the execution of the software program includes monitoring logs of the system, executing commands, and capturing digital communication network traffic. at least one of them.
在根据第一方面所述的装置或根据第二方面所述的方法的一种可能的实现方式中,所述识别的安全策略包括多个访问条目。可选地,计算所述修改的安全策略包括:计算至少一个新访问条目以使得所述软件程序能够访问所述至少一个被阻止的计算机资源;将所述至少一个新访问条目添加到所述识别的安全策略中。可选地,计算所述修改的安全策略包括修改所述多个访问条目中的至少一个访问条目,使得所述软件程序能够访问所述至少一个被阻止的计算机资源。可选地,计算所述修改的安全策略包括从所述识别的安全策略中删除所述多个访问条目中的至少一个访问条目。可选地,识别所述至少一次被阻止的访问包括:从所述监控数据中提取多个访问违规条目;在所述多个访问违规条目中识别指示所述至少一次被阻止的访问的至少一个访问违规条目。可选地,计算所述修改的安全策略包括:从所述至少一个访问违规条目中提取至少一个访问值;使用所述至少一个访问值计算所述修改的安全策略。使用从所述监控数据中提取的至少一个访问值可以提高所述修改的安全策略的准确性。In a possible implementation of the device according to the first aspect or the method according to the second aspect, the identified security policy includes a plurality of access entries. Optionally, calculating the modified security policy includes: calculating at least one new access entry to enable the software program to access the at least one blocked computer resource; adding the at least one new access entry to the identified in the security policy. Optionally, calculating the modified security policy includes modifying at least one access entry among the plurality of access entries so that the software program can access the at least one blocked computer resource. Optionally, calculating the modified security policy includes deleting at least one of the plurality of access entries from the identified security policy. Optionally, identifying the at least one blocked access includes: extracting a plurality of access violation entries from the monitoring data; identifying at least one of the plurality of access violation entries indicating the at least one blocked access. Access violation entry. Optionally, calculating the modified security policy includes: extracting at least one access value from the at least one access violation entry; and using the at least one access value to calculate the modified security policy. Using at least one access value extracted from the monitoring data can improve the accuracy of the modified security policy.
在根据第一方面所述的装置或根据第二方面所述的方法的一种可能的实现方式中,所述软件程序的执行包括向所述软件程序提供识别的输入值的集合。可选地,所述软件程序的执行包括在软件测试环境中执行所述软件程序。可选地,所述处理单元还用于:在所述监控数据中识别执行所述软件程序的至少一个意外结果;向未能识别所述至少一次被阻止的访问,或未能识别所述至少一次被阻止的访问与所述至少一个意外结果之间的关联的所述系统的其它用户提供所述至少一个意外结果的通知。为所述软件程序提供识别的输入值的集合,在软件测试环境中额外或可替代地执行所述软件程序,使得在执行所述软件程序时能够识别一个或多个意外结果并将所述一个或多个意外结果通知所述软件程序的软件开发人员,有助于提高所述软件程序的准确性。In a possible implementation of the device according to the first aspect or the method according to the second aspect, execution of the software program includes providing a set of identified input values to the software program. Optionally, the execution of the software program includes executing the software program in a software testing environment. Optionally, the processing unit is further configured to: identify at least one unexpected result of executing the software program in the monitoring data; fail to identify the at least one blocked access, or fail to identify the at least one blocked access; Notification of the at least one unexpected result is provided to other users of the system in association between a blocked access and the at least one unexpected result. Providing the software program with an identified set of input values, and additionally or alternatively executing the software program in a software test environment, such that one or more unexpected results can be identified when executing the software program and the one Notifying the software developer of said software program of one or more unexpected results helps improve the accuracy of said software program.
在研究下文附图和详细描述之后,本发明的其它系统、方法、特征和优点对于本领域技术人员来说是或变得显而易见的。希望所有这些其它系统、方法、特征和优点包括在本说明书中,在本发明的范围内,并且受所附权利要求的保护。Other systems, methods, features and advantages of the present invention will be or become apparent to those skilled in the art upon study of the following drawings and detailed description. It is intended that all such other systems, methods, features and advantages be included within this description, be within the scope of the invention, and be protected by the appended claims.
除非另有定义,否则本文所用的所有技术和/或科学术语都具有与实施例所属领域内的普通技术人员公知的含义相同的含义。虽然与本文描述的方法和材料类似或等效的方法和材料可以用于实施例的实践或测试,但下文描述了示例性方法和/或材料。如有冲突,以本专利说明书(包括定义)为准。此外,这些材料、方法和示例仅是说明性的,并不一定具有限制性。Unless otherwise defined, all technical and/or scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which the embodiments belong. Although methods and materials similar or equivalent to those described herein can be used in the practice or testing of the embodiments, exemplary methods and/or materials are described below. In case of conflict, the patent specification, including definitions, will control. In addition, the materials, methods, and examples are illustrative only and not necessarily limiting.
附图说明Description of the drawings
现结合附图通过示例的方式对本发明进行描述。在附图中:The present invention will now be described by way of example with reference to the accompanying drawings. In the attached picture:
图1是示意性地表示可选操作流程的流程图;Figure 1 is a flow chart schematically representing an optional operational flow;
图2是示例性系统的示意性框图;Figure 2 is a schematic block diagram of an exemplary system;
图3是示意性地表示用于生成安全策略的可选操作流程的流程图;Figure 3 is a flowchart schematically representing an optional operational flow for generating a security policy;
图4是示意性地表示用于识别被阻止的访问的可选操作流程的流程图;Figure 4 is a flowchart schematically representing an optional operational flow for identifying blocked access;
图5是示意性地表示用于生成安全策略的额外可选操作流程的流程图。Figure 5 is a flowchart schematically representing an additional optional operational flow for generating a security policy.
具体实施方式Detailed ways
在以下描述中,参考构成本发明一部分的附图,这些附图通过说明的方式示出了本发明实施例的具体方面或可以使用本发明实施例的具体方面。应当理解,本发明的实施例可以用于其它方面,并且包括未在附图中描绘的结构上或逻辑上的变化。因此,以下具体实施方式不应以限制性的意义来理解,并且本发明的范围由所附权利要求书限定。In the following description, reference is made to the accompanying drawings, which form a part hereof, and which illustrate, by way of illustration, specific aspects of embodiments of the invention or in which embodiments of the invention may be used. It is to be understood that embodiments of the invention are capable of other aspects and involve structural or logical changes not depicted in the drawings. Accordingly, the following detailed description is not to be taken in a limiting sense, and the scope of the invention is defined by the appended claims.
例如,应当理解,与描述方法有关的公开内容可以对用于执行所述方法的对应装置或系统也同样适用,反之亦然。例如,如果描述一个或多个具体方法步骤,则对应的设备可以包括一个或多个单元(例如功能单元)来执行所描述的一个或多个方法步骤(例如,一个单元执行一个或多个步骤,或多个单元分别执行多个步骤中的一个或多个),即使附图中未明确描述或示出该一个或多个单元。另一方面,例如,如果基于一个或多个单元(例如,功能单元)来描述具体装置,则对应的方法可以包括一个步骤来执行一个或多个单元的功能(例如,一个步骤执行一个或多个单元的功能,或多个步骤分别执行多个单元中的一个或多个单元的功能),即使附图中未明确描述或示出该一个或多个单元。此外,应该理解,除非另外明确说明,本文中所描述的各个示例性实施例和/或方面的特征可以相互组合。For example, it should be understood that disclosure related to describing a method may also apply to a corresponding device or system for performing the method, and vice versa. For example, if one or more specific method steps are described, the corresponding device may include one or more units (e.g., functional units) to perform the described one or more method steps (e.g., one unit performs one or more steps , or multiple units respectively perform one or more of the multiple steps), even if the one or more units are not explicitly described or shown in the drawings. On the other hand, for example, if a specific device is described based on one or more units (e.g., functional units), the corresponding method may include one step to perform the functions of the one or more units (e.g., one step to perform one or more functions of one or more units, or multiple steps perform the functions of one or more units among multiple units respectively), even if the one or more units are not explicitly described or shown in the drawings. Furthermore, it should be understood that features of the various exemplary embodiments and/or aspects described herein may be combined with each other unless expressly stated otherwise.
如上所述,需要配置系统以执行安全策略,使得由系统执行的软件程序能够访问使软件程序运行所需的所有计算机资源,而软件程序对其它计算机资源的访问被阻止。As mentioned above, the system needs to be configured to enforce security policies such that software programs executed by the system have access to all computer resources required for the software programs to run, while software programs are blocked from access to other computer resources.
在软件开发中,建议将安全性设计融入到软件程序的开发过程中,但在实践中通常不这样做。在软件开发过程中,如果没有自动生成安全策略的过程,安全专家通常在开发完成后手动为软件程序指定安全策略。即使与软件开发人员协作,这种手动指定的安全策略也容易出错,而且往往过于宽松,使得软件程序能够访问比软件程序正确运行实际需要的更多的计算机资源。这种宽松通常是由于难以对软件程序所需的计算机资源进行细粒度识别而造成的。例如,软件程序需要访问识别数量的数字通信网络的端口。如果端口数量较少,手动生成的安全策略可以保证准确性,并且包括软件程序访问每个端口的显式权限。然而,这些端口在软件程序开发过程中可能会随时间发生变化,当端口数量超过某个阈值时,由于手动生成的安全策略仍然可以包括使软件程序能够访问一系列端口的权限,但其中一些端口对于软件程序的运行不是必需的,因此会增加用于执行手动生成的安全策略的系统中的安全风险。这是一个不准确的安全策略的示例。In software development, it is recommended that security design be integrated into the development process of software programs, but in practice this is often not done. In the software development process, if there is no process of automatically generating security policies, security experts usually manually specify security policies for software programs after development is completed. Even in collaboration with software developers, such manually specified security policies are prone to errors and are often too lenient, allowing software programs to access more computer resources than the software programs actually need to function correctly. This laxity is often caused by the difficulty of fine-grained identification of the computer resources required by a software program. For example, a software program needs to access an identified number of ports on a digital communications network. If the number of ports is small, a manually generated security policy can ensure accuracy and include explicit permissions for software programs to access each port. However, these ports may change over time during the development of the software program, when the number of ports exceeds a certain threshold, as manually generated security policies can still include permissions that enable the software program to access a range of ports, but some of them Not required for the operation of the software program and therefore increases security risks in systems used to enforce manually generated security policies. This is an example of an inaccurate security policy.
存在降低软件容器中的安全风险的方法,例如在Linux容器中的方法,但此类方法适用于容器,不适用于由处理电路作为本机程序执行的软件程序。此外,这些方法不阻止在容器内执行的软件程序;根据这些方法,在容器中执行的软件程序能够访问其所在容器边界内的任何计算机资源。这种访问的计算机资源范围比软件程序正确运行所需的计算机资源范围更广泛,从而产生潜在的安全风险。There are ways to reduce security risks in software containers, such as in Linux containers, but such methods apply to containers, not to software programs executed as native programs by processing circuits. Furthermore, these methods do not prevent a software program executing within a container; under these methods, a software program executing within a container is able to access any computer resources within the boundaries of the container in which it is located. This accesses a wider range of computer resources than are required for the software program to function correctly, creating a potential security risk.
需要提高软件程序的安全策略的准确性,从而减少软件程序未使用的解除阻止的计算机资源的数量,同时减少软件程序正确运行所需的被阻止的计算机资源的数量。There is a need to improve the accuracy of security policies for software programs, thereby reducing the amount of unblocked computer resources that are not used by software programs, while also reducing the amount of blocked computer resources that are required for software programs to function correctly.
为了提高软件程序的安全策略的准确性,本申请中描述的一些实施例提出了一种自动生成安全策略的迭代方法。在这些实施例中,系统用于执行识别的安全策略,阻止软件程序对多个被阻止的计算机资源的访问,并且系统对软件程序的执行被监控以生成描述软件程序对系统的多个计算机资源的多次访问的数据。监控系统对软件程序的执行包括监控系统的日志等,例如监控执行Linux操作系统的虚拟机的安全增强Linux(Security-Enhanced Linux,SELinux)审计日志。可选地,监控软件程序的执行包括执行命令,例如执行为了收集系统信息的命令。在一些实施例中,本公开提出在多次访问中识别软件程序对多个被阻止的资源中的一个或多个资源的至少一次被阻止的访问,并计算修改的安全策略以开启软件程序对一个或多个被阻止的资源的访问。计算修改的安全策略可选地包括修改识别的安全策略以开启软件程序对一个或多个被阻止的资源的访问。在用于执行安全策略以阻止软件程序对多个被阻止的计算机资源的访问的系统中执行软件程序,这能够识别软件程序所需的一个或多个被阻止的计算机资源,同时软件程序对多个被阻止的计算机资源中的其它被阻止的计算机资源的访问仍然被阻止。计算修改的安全策略以开启软件程序对一个或多个被阻止的计算机资源的访问,这能开启除对软件程序访问的一个或多个被阻止的资源的访问,同时仍然阻止软件程序对其它被阻止的计算机资源的访问。修改安全策略以阻止软件程序对其它被阻止的计算机资源的访问,同时允许软件程序对软件程序访问的一个或多个被阻止的资源的访问,这能够提高修改的安全策略的准确性,从而提高了执行修改的安全策略的系统的安全性。In order to improve the accuracy of security policies for software programs, some embodiments described in this application propose an iterative method for automatically generating security policies. In these embodiments, the system is configured to enforce identified security policies that block a software program's access to a plurality of blocked computer resources, and the system's execution of the software program is monitored to generate a description of the software program's access to a plurality of computer resources of the system. of data accessed multiple times. The monitoring system's execution of software programs includes monitoring system logs, etc., such as monitoring the Security-Enhanced Linux (SELinux) audit logs of virtual machines executing the Linux operating system. Optionally, execution of the monitoring software program includes executing commands, for example, executing commands for collecting system information. In some embodiments, the present disclosure proposes identifying, among multiple accesses, at least one blocked access by a software program to one or more of a plurality of blocked resources, and calculating a modified security policy to enable the software program to access Access to one or more resources is blocked. Computing the modified security policy optionally includes modifying the identified security policy to enable the software program to access the one or more blocked resources. Execution of a software program in a system for enforcing security policies to prevent a software program from accessing multiple blocked computer resources, which can identify one or more blocked computer resources required by the software program while the software program has access to multiple blocked computer resources. Access to other blocked computer resources within the blocked computer resources remains blocked. Compute a modified security policy to enable a software program to access one or more blocked computer resources, which enables access to one or more blocked resources in addition to the software program's access to it, while still preventing the software program from accessing other blocked resources. Block access to computer resources. Modifying a security policy to prevent a software program from accessing other blocked computer resources while allowing the software program to access one or more blocked resources that the software program accesses can improve the accuracy of the modified security policy and thereby improve Improve the security of the system that implements the modified security policy.
此外,在一些实施例中,本公开建议迭代地重复上述步骤,使得在一系列策略构建迭代中的每一次迭代中,系统用于在一系列策略构建迭代中的下一次迭代中执行作为识别的安全策略的修改的安全策略。配置系统,以在下一次迭代中执行作为识别的安全策略的修改的安全策略有助于软件程序的安全策略的增量生成,因为在下一次迭代中允许对一个或多个被阻止的资源的访问,因此对一个或多个被阻止的资源的访问将不被识别为被阻止的访问。安全策略的这种增量生成提高了安全策略的准确性,因为与手动检查代码或依靠软件开发人员和安全专家之间沟通交流来识别软件程序所需的被阻止的资源相比,增量生成能够对软件程序需要访问的被阻止的资源进行细粒度识别。对软件程序需要访问的被阻止的资源进行细粒度识别,提高了修改的安全策略的准确性,从而增加软件程序需要访问并在修改的安全策略中解除阻止的被阻止的资源的数量,同时减少软件程序未尝试访问并在修改的安全策略中解除阻止的其它被阻止的资源的数量。Furthermore, in some embodiments, the present disclosure proposes to iteratively repeat the above steps such that in each iteration in a series of policy building iterations, the system is configured to perform as identified in the next iteration in the series of policy building iterations. Security policy Modification of the security policy. Configuring the system to implement security policies as modifications to the identified security policies in the next iteration facilitates the incremental generation of security policies for software programs as access to one or more blocked resources is allowed in the next iteration, Therefore access to one or more blocked resources will not be recognized as blocked access. This incremental generation of security policies improves the accuracy of security policies because it is better than manually inspecting code or relying on communication between software developers and security experts to identify blocked resources required by software programs. Enables fine-grained identification of blocked resources that software programs need to access. Fine-grained identification of blocked resources that software programs need to access improves the accuracy of modified security policies, thereby increasing the number of blocked resources that software programs need to access and unblock in modified security policies while reducing The number of other blocked resources that the software program did not attempt to access and unblock in the modified security policy.
可选地,在一系列策略构建迭代中的第一迭代中,多个被阻止的资源是系统的多个计算机资源,使得识别的安全策略阻止对系统的多个计算机资源的访问。从阻止对系统的多个计算机资源的访问的安全策略开始,提高了修改的安全策略的准确性,因为这降低了修改的安全策略开启软件程序对不需要的被阻止的资源的访问的可能性。Optionally, in a first iteration of a series of policy construction iterations, the plurality of blocked resources are a plurality of computer resources of the system, such that the identified security policy blocks access to a plurality of computer resources of the system. Starting with a security policy that blocks access to multiple computer resources of the system improves the accuracy of the modified security policy because it reduces the likelihood that the modified security policy will enable software programs to access unwanted blocked resources. .
可选地,当迭代的多次访问中没有识别被阻止的访问时,将迭代中使用的识别的安全策略确定为优选安全策略,并可以将此安全策略提供给系统的一个或多个用户,例如系统的安全专家或软件程序的软件开发人员。为了向一个或多个用户提供优选安全策略,优选安全策略可以存储在系统的非易失性数字存储器中。此外,或可替换地,提供优选安全策略包括添加日志条目,例如添加到系统的日志或添加到日志文件中。提供优选安全策略的其它可选方法包括通过数字通信网络发送消息,以及在系统的显示设备上显示消息。消息的一些示例包括电子邮件(electronic-mail,email)消息和通过即时消息服务(例如Slack和Signal)发送的消息。优选安全策略可以添加到软件程序的软件产品中。Optionally, when no blocked access is identified in the multiple accesses of the iteration, the identified security policy used in the iteration is determined as the preferred security policy, and this security policy can be provided to one or more users of the system, For example, a security expert for a system or a software developer for a software program. In order to provide preferred security policies to one or more users, the preferred security policies may be stored in the system's non-volatile digital memory. Additionally, or alternatively, providing the preferred security policy includes adding a log entry, such as to a log of the system or to a log file. Other optional methods of providing preferred security policies include sending messages over a digital communications network and displaying messages on the system's display device. Some examples of messages include electronic-mail (email) messages and messages sent through instant messaging services such as Slack and Signal. Preferred security policies can be added to the software product of the software program.
此外,在一些实施例中,本公开提出在监控数据中识别执行软件程序的一个或多个意外结果。这样的意外结果与多次访问无关,即不能通过对被阻止的资源的被阻止的访问或没有被阻止的访问来解释意外结果。这样的意外结果表明软件程序的实现方式中出现了错误(通俗地称为bug)。可选地,在这些实施例中,将一个或多个意外结果的通知提供给系统的另一个用户,例如质量保证专业人员。Additionally, in some embodiments, the present disclosure provides identifying one or more unexpected results of executing a software program in monitoring data. Such unexpected results are not related to multiple accesses, i.e. the unexpected results cannot be explained by blocked access to a blocked resource or by no blocked access. Such unexpected results indicate that an error (colloquially known as a bug) has occurred in the way the software program is implemented. Optionally, in these embodiments, notification of one or more unexpected results is provided to another user of the system, such as a quality assurance professional.
在详细说明至少一个实施例之前,应当理解,实施例在应用时并不一定限于以下描述和/或附图和/或示例中阐述的组件和/或方法的构造和设置的详细内容。本文描述的实现方式支持其它实施例,或者支持以各种方式实践或执行。Before at least one embodiment is described in detail, it is to be understood that the embodiments are not necessarily limited in their application to the details of construction and arrangement of the components and/or methods set forth in the following description and/or drawings and/or examples. The implementations described herein enable other embodiments or may be practiced or carried out in various ways.
实施例可以是一种系统、方法和/或计算机程序产品。计算机程序产品可包括具有计算机可读程序指令的计算机可读存储介质,计算机可读程序指令使得处理器执行本实施例的各个方面。An embodiment may be a system, method and/or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions that cause a processor to perform aspects of the present embodiments.
计算机可读存储介质可以是能够保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是,但不限于,例如,电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或上述设备的任何合适组合。计算机可读存储介质的更具体示例的非详尽列表包括以下各项:便携式计算机软磁盘、硬盘、随机存取存储器(random access memory,RAM)、只读存储器(read-only memory,ROM)、可擦除可编程只读存储器(erasable programmable read-only memory,EPROM或闪存)、静态随机存取存储器(static random access memory,SRAM)、便携式光盘只读存储器(compact disc read-only memory,CD-ROM)、数字多功能光盘(digital versatiledisk,DVD)、记忆棒、软盘以及上述各项的任意合适组合。本文中使用的计算机可读存储介质不应解释为瞬时信号本身,例如,无线电波或其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲),或通过电线发送的电信号。A computer-readable storage medium may be a tangible device capable of retaining and storing instructions for use by an instruction execution device. The computer-readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of computer-readable storage media includes the following: portable computer floppy disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable Except erasable programmable read-only memory (EPROM or flash memory), static random access memory (static random access memory, SRAM), portable compact disc read-only memory (compact disc read-only memory, CD-ROM) , digital versatile disk (digital versatile disk, DVD), memory stick, floppy disk and any suitable combination of the above. Computer-readable storage media as used herein should not be construed as a reference to transient signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through waveguides or other transmission media (e.g., light pulses through fiber optic cables), or through Electrical signals sent by wires.
本文中描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者通过互联网、局域网、广域网和/或无线网络等网络下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令,以便存储在相应计算/处理设备内的计算机可读存储介质中。The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to a corresponding computing/processing device, or to an external computer or external storage device through a network such as the Internet, a local area network, a wide area network, and/or a wireless network. The network may include copper transmission cables, optical fiber transmission, wireless transmission, routers, firewalls, switches, gateway computers, and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer-readable program instructions from the network and forwards the computer-readable program instructions for storage on a computer-readable storage medium within the corresponding computing/processing device.
用于执行实施例的操作的计算机可读程序指令可以是汇编器指令、指令集架构(instruction-set-architecture,ISA)指令、机器指令、机器相关指令、微码、固件指令、状态设置数据,或源代码或目标代码,本地编译或即时(just-in-time,JIT)编译,以一种或多种编程语言的任何组合编写,包括面向对象的编程语言,如Smalltalk、C++、Java、面向对象的Fortran等,解释编程语言,如JavaScript、Python等,以及传统的过程化编程语言,如“C”编程语言、Fortran或类似编程语言。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行;作为独立的软件包部分在用户的计算机上执行且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种场景中,远程计算机可以通过任何类型的网络连接到用户的计算机,这些网络包括局域网(local areanetwork,LAN)或广域网(wide area network,WAN),还可以(例如,通过使用互联网服务提供商的互联网)连接到外部计算机。在一些实施例中,包括可编程逻辑电路、现场可编程门阵列(field-programmable gate array,FPGA)或可编程逻辑阵列(programmable logicarray,PLA)等的电子电路可以通过使用计算机可读程序指令的状态信息来执行计算机可读程序指令以定制电子电路,从而执行实施例的各个方面。Computer-readable program instructions for performing operations of embodiments may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code, natively compiled or just-in-time (JIT) compiled, written in any combination of one or more programming languages, including object-oriented programming languages such as Smalltalk, C++, Java, Object-based Fortran, etc., interpreted programming languages such as JavaScript, Python, etc., and traditional procedural programming languages such as the "C" programming language, Fortran or similar programming languages. The computer-readable program instructions may execute entirely on the user's computer and partly on the user's computer; as a stand-alone software package, partly on the user's computer and partly on a remote computer, or entirely on the remote computer or server implement. In the latter scenario, the remote computer can be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or (for example, by using an Internet service provider's Internet) to connect to an external computer. In some embodiments, electronic circuits including programmable logic circuits, field-programmable gate arrays (FPGAs), programmable logic arrays (PLAs), etc. can be configured using computer-readable program instructions. The state information is used to execute computer readable program instructions to customize the electronic circuit to perform various aspects of the embodiments.
本文结合实施例提供的方法、装置(系统)和计算机程序产品的流程图和/或框图来描述实施例的各个方面。应当理解,流程图说明和/或框图的每个方框以及流程图说明和/或框图中的方框的组合可以由计算机可读程序指令实现。Various aspects of the embodiments are described herein in conjunction with flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products provided by the embodiments. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer-readable program instructions.
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器以生成机器,使得经由计算机或其它可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图中指定的功能/动作的模块。这些计算机可读程序指令还可以存储在计算机可读存储介质中,计算机可读存储介质可以指示计算机、可编程数据处理装置和/或其它设备以特定方式工作,使得存储有指令的计算机可读存储介质包括含有指令的制品,这些指令用于实现流程图和/或框图中指定的功能/动作的各个方面。These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that execution via the instructions of the processor of the computer or other programmable data processing apparatus creates the flowchart for implementing and/or blocks of functions/actions specified in the block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium, which may instruct the computer, programmable data processing apparatus, and/or other equipment to operate in a particular manner, such that the computer-readable storage medium storing the instructions The media includes artifacts containing instructions for implementing various aspects of the functions/acts specified in the flowcharts and/or block diagrams.
计算机可读程序指令还可以加载到计算机、其它可编程数据处理装置或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,从而生成计算机实现过程,使得在计算机、其它可编程装置或其它设备上执行的指令实现流程图和/或框图中指定的功能/动作。Computer-readable program instructions can also be loaded onto a computer, other programmable data processing device, or other equipment, so that a series of operating steps are performed on the computer, other programmable device, or other equipment, thereby generating a computer-implemented process, such that on the computer, other programmable data processing device, or other equipment Instructions executing on other programmable devices or other equipment implement the functions/acts specified in the flowcharts and/or block diagrams.
图中的流程图和框图示出了根据各种实施例提供的系统、方法以及计算机程序产品的可能实现方式的架构、功能以及操作。就此而言,流程图或框图中的每个方框可以表示模块、区段或部分指令,其包括用于实现一个或多个指定逻辑功能的一个或多个可执行指令。在一些替代实现方式中,方框中说明的功能可以不按照图中说明的顺序实现。例如,事实上,连续示出的两个方框可以几乎同时执行,或者有时候可以按照相反的顺序执行,具体取决于所涉及的功能。还应注意,框图和/或流程图中的每个方框以及框图和/或流程图中的方框组合可以由基于专用硬件的系统实现,这些系统执行特定的功能或动作,或者执行专用硬件和计算机指令的组合。The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products provided in accordance with various embodiments. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of instructions, which includes one or more executable instructions for implementing the specified logical function or functions. In some alternative implementations, the functions noted in the blocks may be implemented out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed nearly concurrently or sometimes in the reverse order, depending upon the functionality involved. It should also be noted that each block in the block diagram and/or flowchart illustration, and combinations of blocks in the block diagram and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or actions, or that perform special purpose hardware and a combination of computer instructions.
现在参考图1,图1是示意性地示出了根据一些实施例的可选操作流程100的流程图。在这些实施例中,在101中,系统用于执行识别的安全策略,管理对系统的多个计算机资源的访问。可选地,识别的安全策略使软件程序能够访问系统的多个计算机资源中的多个被阻止的资源。可选地,识别的安全策略阻止软件程序对系统的多个计算机资源中的多个被阻止的资源的访问。当系统执行软件程序时,在102中,软件程序访问系统的多个计算机资源中的一些计算机资源。例如,在103中,软件程序可以访问允许访问(即,解除阻止的)的多个解除阻止的资源中的一个或多个资源。可选地,在104中,阻止软件程序对多个被阻止的资源中的一个或多个被阻止的资源的访问。Reference is now made to Figure 1, which is a flow diagram schematically illustrating an optional operational flow 100 in accordance with some embodiments. In these embodiments, at 101, the system is configured to enforce the identified security policy to manage access to a plurality of computer resources of the system. Optionally, the identified security policy enables the software program to access a plurality of blocked resources among a plurality of computer resources of the system. Optionally, the identified security policy prevents the software program from accessing a plurality of blocked resources of a plurality of computer resources of the system. When the system executes the software program, at 102, the software program accesses some of the system's plurality of computer resources. For example, at 103, the software program may access one or more of a plurality of unblocked resources that are allowed access (ie, unblocked). Optionally, at 104, the software program is blocked from accessing one or more of the blocked resources.
可选地,监控系统对软件程序的执行,以在111中生成描述软件程序对多个计算机资源的多次访问(例如在102、103和104中的访问)的监控数据。在112中,识别104的一次或多次访问,即对一个或多个被阻止的资源的一次或多次被阻止的访问。可选地,在113中,将一个或多个被阻止的资源中的至少一些资源添加到多个解除阻止的资源中,在114中,计算允许软件程序访问一个或多个被阻止的资源的修改的安全策略。可选地,修改的安全策略是最具限制性的安全策略,允许软件程序访问包括添加到其中的一个或多个被阻止的资源在内的多个解除阻止的资源。可选地,方法100在一系列策略构建迭代中的每一次迭代中执行。因此,在115中,修改的安全策略用作识别的安全策略,使得当101在一系列迭代中的下一次迭代中执行时,系统用于执行修改的安全策略。Optionally, the system's execution of the software program is monitored to generate, in 111, monitoring data describing multiple accesses of the software program to a plurality of computer resources (eg, accesses in 102, 103, and 104). At 112, one or more accesses 104 are identified, ie, one or more blocked accesses to one or more blocked resources. Optionally, at 113, at least some of the one or more blocked resources are added to the plurality of unblocked resources, and at 114, a value that allows the software program to access the one or more blocked resources is calculated. Modified security policy. Optionally, the modified security policy is the most restrictive security policy, allowing the software program to access multiple unblocked resources including one or more blocked resources added thereto. Optionally, method 100 is performed in each iteration of a series of policy building iterations. Therefore, in 115, the modified security policy is used as the identified security policy such that when 101 is executed in the next iteration in the series of iterations, the system is used to execute the modified security policy.
现在参考图2,图2是根据一些实施例的示例性系统200的示意性框图。在这些实施例中,系统200包括处理单元201。处理单元201可以是任何类型的可编程或不可编程电路,用于执行本公开中描述的操作。处理单元可以包括硬件和软件。例如,处理单元可以包括一个或多个处理器和包括程序的瞬时性或非瞬时性存储器,当程序由一个或多个处理器执行时,程序使处理单元执行相应操作。可选地,处理单元201包括内存206。可选地,处理单元201与内存206连接。可选地,内存206是承载处理单元201执行的程序的内存。可选地,内存206是远离处理单元201且与另一个处理单元连接的内存。Reference is now made to Figure 2, which is a schematic block diagram of an exemplary system 200 in accordance with some embodiments. In these embodiments, system 200 includes processing unit 201 . Processing unit 201 may be any type of programmable or non-programmable circuitry for performing the operations described in this disclosure. The processing unit may include hardware and software. For example, the processing unit may include one or more processors and a transient or non-transitory memory including a program that causes the processing unit to perform corresponding operations when the program is executed by the one or more processors. Optionally, the processing unit 201 includes a memory 206. Optionally, the processing unit 201 is connected to the memory 206 . Optionally, the memory 206 is a memory carrying programs executed by the processing unit 201 . Optionally, memory 206 is memory remote from processing unit 201 and connected to another processing unit.
可选地,处理单元201与一个或多个非易失性数字存储器203连接。非易失性数字存储器的一些示例包括硬盘驱动器、固态驱动器、网络连接存储器和网络存储器。可选地,处理单元201与一个或多个数字通信网络接口202连接。为简洁起见,在下文中,术语“网络接口”用于表示“一个或多个数字通信网络接口”。可选地,网络接口202连接到局域网(local area network,LAN),例如以太网网络或Wi-Fi网络。可选地,网络接口202连接到广域网(wide area network,WAN),例如蜂窝网络或互联网。可选地,数字存储器203通过网络接口202连接到处理单元201。Optionally, the processing unit 201 is connected to one or more non-volatile digital memories 203 . Some examples of non-volatile digital storage include hard drives, solid state drives, network attached storage, and network storage. Optionally, the processing unit 201 is connected to one or more digital communication network interfaces 202. For the sake of brevity, in the following the term "network interface" is used to mean "one or more digital communications network interfaces". Optionally, the network interface 202 is connected to a local area network (LAN), such as an Ethernet network or a Wi-Fi network. Optionally, the network interface 202 is connected to a wide area network (WAN), such as a cellular network or the Internet. Optionally, digital memory 203 is connected to processing unit 201 via network interface 202.
可选地,处理单元201连接到一个或多个显示设备204,例如显示器或平板显示器。可选地,处理单元201与一个或多个设备205连接。可选地,一个或多个设备205包括一个或多个显示设备204。可选地,一个或多个设备205包括网络接口202。可选地,一个或多个设备205包括一个或多个数字存储器203。设备的其它一些示例是相机、麦克风、扬声器、触摸屏和传感器。Optionally, the processing unit 201 is connected to one or more display devices 204, such as a monitor or flat panel display. Optionally, the processing unit 201 is connected to one or more devices 205. Optionally, one or more devices 205 include one or more display devices 204 . Optionally, one or more devices 205 include a network interface 202. Optionally, one or more devices 205 include one or more digital memories 203 . Some other examples of devices are cameras, microphones, speakers, touch screens, and sensors.
为了生成软件程序的安全策略,在一些实施例中,系统200执行以下可选方法。To generate a security policy for a software program, in some embodiments, system 200 performs the following optional methods.
现在参考图3,图3是示意性地示出了根据一些实施例的用于生成软件程序的安全策略的可选操作流程300的流程图。在这些实施例中,处理单元201执行一系列策略构建迭代。可选地,在一系列策略构建迭代中的每一次迭代中,在301中,处理单元201配置系统200,以执行识别的安全策略,从而阻止软件程序对多个被阻止的计算机资源的访问。可选地,多个被阻止的计算机资源是系统的多个计算机资源中的至少一些计算机资源。计算机资源可以是内存206区域,可选地由地址或地址范围标识。可选地,计算机资源是文件,例如存储在数字存储器203上的文件。可选地,计算机资源是一个或多个设备205中的一个内存。可选地,设备由句柄(例如文件描述符或标识符)标识。可选地,设备是网络接口202。可选地,设备是一个或多个数字存储器203。计算机资源的另一个示例是数字通信网络资源,例如端口号、另一个处理单元的网络地址或网络套接字。计算机资源的其它一些示例包括但不限于由处理单元201执行的进程间通信接入点和由处理单元201执行的操作系统提供的服务。服务可以是需要特权的服务,例如创建或删除由处理单元201执行的进程的服务。Reference is now made to FIG. 3, which is a flow diagram schematically illustrating an optional operational flow 300 for generating a security policy for a software program in accordance with some embodiments. In these embodiments, processing unit 201 performs a series of policy construction iterations. Optionally, in each of the series of policy construction iterations, at 301, the processing unit 201 configures the system 200 to execute the identified security policy to prevent the software program from accessing a plurality of blocked computer resources. Optionally, the plurality of blocked computer resources are at least some of the plurality of computer resources of the system. A computer resource may be an area of memory 206, optionally identified by an address or address range. Alternatively, the computer resource is a file, such as a file stored on digital storage 203. Optionally, the computer resource is a memory in one or more devices 205. Optionally, the device is identified by a handle (such as a file descriptor or identifier). Optionally, the device is a network interface 202. Optionally, the device is one or more digital memories 203. Another example of a computer resource is a digital communications network resource, such as a port number, the network address of another processing unit, or a network socket. Some other examples of computer resources include, but are not limited to, inter-process communication access points executed by processing unit 201 and services provided by the operating system executed by processing unit 201 . The service may be a service that requires privileges, such as a service that creates or deletes a process executed by the processing unit 201 .
可选地,识别的安全策略包括多个访问条目,例如多个访问规则,每个访问规则阻止对系统的多个资源中的至少一些资源的访问或开启对系统的多个资源中的至少一些资源的访问。访问条目的另一个示例是iptables链。可选地,在一系列策略构建迭代中的第一迭代中,多个被阻止的计算机资源是系统的多个计算机资源。例如,当配置系统包括执行iptables时,在第一迭代中,处理单元201可以执行命令“iptables–drop-all”。当配置系统包括根据一个或多个允许规则执行策略时,其中,每个允许规则显式允许访问一个或多个计算机资源(例如SELinux),在第一迭代中,策略可以是空策略,没有访问条目或访问规则。可选地,在310中,处理单元201还执行软件程序。可选地,在一个或多个已知场景中执行软件程序,使得执行软件程序包括向软件程序提供识别的输入值的集合。识别的输入值的集合可选地包括配置值、用户输入值、提供的文件、发送到软件程序的消息和图形用户界面交互中的一个或多个。可选地,软件程序的执行包括在软件测试环境中执行软件程序,例如在集成开发环境(integrated development environment,IDE)中或在测试平台中执行软件程序。Optionally, the identified security policy includes a plurality of access entries, such as a plurality of access rules, each access rule blocking access to at least some of the plurality of resources of the system or enabling access to at least some of the plurality of resources of the system. Access to resources. Another example of an access entry is an iptables chain. Optionally, in a first iteration of a series of policy construction iterations, the plurality of blocked computer resources are a plurality of computer resources of the system. For example, when configuring the system includes executing iptables, in the first iteration, the processing unit 201 may execute the command "iptables-drop-all". When configuring the system includes enforcing a policy based on one or more allow rules, where each allow rule explicitly allows access to one or more computer resources (such as SELinux), the policy can be an empty policy with no access in the first iteration Entries or access rules. Optionally, in 310, the processing unit 201 also executes a software program. Optionally, the software program is executed in one or more known scenarios, such that executing the software program includes providing the identified set of input values to the software program. The set of identified input values optionally includes one or more of configuration values, user input values, provided files, messages sent to the software program, and graphical user interface interactions. Optionally, the execution of the software program includes executing the software program in a software testing environment, such as in an integrated development environment (IDE) or in a test platform.
可选地,在320中,处理单元201通过处理单元201监控系统200对软件程序的执行,以生成描述软件程序对系统的多个计算机资源的多次访问的监控数据。可选地,在320中,处理单元201监控系统200的日志,例如SELinux审计日志。当系统200实现SELinux时,处理单元201可以配置SELinux,以将违规记录到由处理单元201在320中监控的识别的违规日志文件中。可选地,在320中,处理单元201执行命令,例如收集系统数据的命令。例如,当处理单元201执行Linux操作系统时,在320中,处理单元201可以执行命令dmesg。在另一个示例中,当执行301包括执行命令“iptables”时,处理单元201可以创建记录和丢弃所有流量的新iptables链,并配置iptables,以将与iptables中配置的与其它流不匹配的所有网络流量转发到新iptables链。可选地,新iptables链记录到识别的网络日志中。这种配置有助于识别所有未由iptables显式寻址的网络流量,并通过丢弃来阻止未由iptables显式寻址的网络流量。Optionally, in 320, the processing unit 201 monitors the execution of the software program by the system 200 through the processing unit 201 to generate monitoring data describing multiple accesses of the software program to multiple computer resources of the system. Optionally, in 320, the processing unit 201 monitors logs of the system 200, such as SELinux audit logs. When system 200 implements SELinux, processing unit 201 may configure SELinux to log violations to an identified violation log file monitored by processing unit 201 at 320. Optionally, in 320, the processing unit 201 executes a command, such as a command to collect system data. For example, when the processing unit 201 executes the Linux operating system, in 320, the processing unit 201 may execute the command dmesg. In another example, when execution 301 includes executing the command "iptables", the processing unit 201 may create a new iptables chain that records and discards all traffic, and configure iptables to remove all traffic that does not match other flows configured in iptables. Network traffic is forwarded to the new iptables chain. Optionally, new iptables chains are logged to the identified network logs. This configuration helps identify all network traffic that is not explicitly addressed by iptables and blocks network traffic that is not explicitly addressed by iptables by dropping it.
在330中,处理单元201可选地在多次访问中识别软件程序对多个被阻止的资源中的一个或多个资源的一次或多次被阻止的访问。At 330, processing unit 201 identifies one or more blocked accesses by the software program to one or more of the plurality of blocked resources, optionally among multiple accesses.
现在参考图4,根据一些实施例,示出了示意性地表示用于识别被阻止的访问的可选操作流程400的流程图。在这些实施例中,在401中,处理单元201从监控数据中提取多个访问违规条目。例如,当系统200实现SELinux时,处理单元201可以将识别的违规日志文件提供给audit2allow实用程序。可选地,执行audit2allow实用程序以响应识别的违规日志文件的输出是SELinux策略规则。可选地,访问违规条目是通过执行audit2allow生成的SELinux策略规则。在另一个示例中,当系统200执行iptables时,在401中,处理单元201可选地分析网络日志以识别一个或多个安全违规。可选地,在402中,处理单元201在多个访问违规中识别指示一次或多次被阻止的访问的一个或多个访问违规条目。Referring now to FIG. 4 , a flow diagram schematically representing an optional operational flow 400 for identifying blocked access is shown, in accordance with some embodiments. In these embodiments, in 401, the processing unit 201 extracts a plurality of access violation entries from the monitoring data. For example, when system 200 implements SELinux, processing unit 201 may provide identified violation log files to the audit2allow utility. Optionally, execute the audit2allow utility in response to identified violation log files whose output is a SELinux policy rule. Optionally, the access violation entry is a SELinux policy rule generated by executing audit2allow. In another example, when system 200 executes iptables, in 401 processing unit 201 optionally analyzes network logs to identify one or more security violations. Optionally, in 402, processing unit 201 identifies one or more access violation entries among the plurality of access violations that indicate one or more blocked accesses.
现在参考图3,在340中,处理单元201可选地确定在330中是否识别了一次或多次被阻止的访问。当识别出一次或多次被阻止的访问时,在341中,处理单元201可选地计算修改的安全策略。Referring now to FIG. 3 , at 340 , processing unit 201 optionally determines at 330 whether one or more blocked accesses were identified. When one or more blocked accesses are identified, in 341 the processing unit 201 optionally calculates a modified security policy.
现在参考图4,可选地,在410中,处理单元201从在402中识别的一个或多个违规条目中提取一个或多个访问值。访问值的一些示例包括端口号、网络地址、文件名和文件描述符名称。在412中,处理单元201可选地使用一个或多个访问值计算修改的安全策略。例如,处理单元201可以使用一个或多个访问值来标识识别的安全策略中的一个或多个阻止规则,阻止软件程序对一个或多个被阻止的资源的访问。可选地,处理单元201在计算修改的安全策略时,从识别的安全策略中删除多个访问条目中的一个或多个访问条目,例如阻止对一个或多个被阻止的资源的访问的访问条目。可选地,处理单元201根据一个或多个访问值识别一个或多个访问条目。在另一个示例中,处理单元201在计算修改的安全策略时,可以修改阻止对一个或多个被阻止的资源的访问的多个访问条目中的一个或多个访问条目。Referring now to FIG. 4 , optionally, in 410 , the processing unit 201 extracts one or more access values from the one or more violating entries identified in 402 . Some examples of access values include port numbers, network addresses, file names, and file descriptor names. In 412, processing unit 201 optionally calculates a modified security policy using one or more access values. For example, processing unit 201 may use one or more access values to identify one or more blocking rules in the identified security policy that prevent the software program from accessing one or more blocked resources. Optionally, the processing unit 201 deletes one or more of the plurality of access entries from the identified security policy when calculating the modified security policy, such as blocking access to one or more blocked resources. entry. Optionally, the processing unit 201 identifies one or more access entries according to one or more access values. In another example, the processing unit 201, when calculating the modified security policy, may modify one or more of the plurality of access entries that block access to one or more blocked resources.
可选地,处理单元201在计算修改的安全策略时,计算一个或多个新访问条目,以允许软件程序访问一个或多个被阻止的资源。可选地,处理单元201使用一个或多个访问值计算一个或多个新访问条目。例如,当系统200实现SELinux时,一个或多个新访问条目可以是一个或多个新的SELinux规则,例如由audit2allow生成的一个或多个规则。可选地,一个或多个新访问条目是表中的一行或多行,例如在iptables中。可选地,新访问条目是黑名单条目,阻止对一个或多个计算机资源的访问。可选地,新访问条目是白名单条目,允许访问一个或多个计算机资源。可选地,一个或多个新访问条目包括白名单条目和黑名单条目的组合,以允许软件程序访问一个或多个被阻止的资源。例如,当识别的安全策略包括阻止访问内存地址范围的黑名单规则,并且一个或多个被阻止的资源包括内存地址范围中的识别的内存地址时,处理单元201可以修改黑名单规则以阻止访问小于识别的内存地址的内存地址范围中的地址。此外,处理单元201可以添加新规则,以阻止对大于识别的内存地址的内存地址范围中的地址的访问。或者,在本示例中,处理单元201可以删除黑名单规则并添加两个新规则,一个规则阻止对小于识别的内存地址范围的内存地址范围中的地址的访问,另一个规则阻止对大于识别的内存地址范围的内存地址范围中的地址的访问。Optionally, when calculating the modified security policy, the processing unit 201 calculates one or more new access entries to allow the software program to access one or more blocked resources. Optionally, the processing unit 201 uses one or more access values to calculate one or more new access entries. For example, when system 200 implements SELinux, the one or more new access entries may be one or more new SELinux rules, such as the one or more rules generated by audit2allow. Optionally, the one or more new access entries are one or more rows in a table, such as in iptables. Optionally, the new access entry is a blacklist entry, blocking access to one or more computer resources. Optionally, the new access entry is a whitelist entry that allows access to one or more computer resources. Optionally, the one or more new access entries include a combination of whitelist entries and blacklist entries to allow the software program to access one or more blocked resources. For example, when the identified security policy includes a blacklist rule that blocks access to a memory address range, and one or more of the blocked resources includes the identified memory address in the memory address range, the processing unit 201 may modify the blacklist rule to block access. An address in a range of memory addresses that is less than the recognized memory address. Additionally, the processing unit 201 may add new rules to block access to addresses in a memory address range that is larger than the recognized memory address. Alternatively, in this example, the processing unit 201 may delete the blacklist rule and add two new rules, one that blocks access to addresses in a memory address range that is smaller than the identified memory address range, and another that blocks access to addresses that are larger than the identified memory address range. Access to an address within a memory address range.
可选地,处理单元201将一个或多个新访问条目添加到识别的安全策略中。Optionally, the processing unit 201 adds one or more new access entries to the identified security policy.
现在参考图3,在344中,处理单元201可选地指示系统200的配置,以在一系列策略构建迭代中的下一次迭代中执行作为识别的安全策略的修改的安全策略。Referring now to FIG. 3 , at 344 , the processing unit 201 optionally instructs the configuration of the system 200 to execute the modified security policy as a modification of the identified security policy in the next iteration in a series of policy construction iterations.
可选地,在340中,处理单元201确定在330中未能识别一次或多次被阻止的访问。现在参考图5,根据一些实施例,示出了示意性地表示用于生成安全策略的额外可选操作流500的流程图。在这些实施例中,由于出现了在一次或多次被阻止的访问中未能识别的情况下,因此在501中,处理单元201确定识别的安全策略是优选安全策略。可选地,处理单元201确定优选安全策略的迭代是一系列策略构建迭代中的最后一次迭代。可选地,在502中,处理单元201将优选安全策略提供给系统的一个或多个用户,例如安全专业人员或软件开发人员。可选地,处理单元201通过将优选安全策略保存到一个或多个数字存储器203来提供优选安全策略。可选地,处理单元201通过网络接口202向至少一个其它处理单元发送消息来提供优选安全策略。通过网络接口发送的消息的一些示例是电子邮件消息和通过即时消息服务发送的消息。可选地,处理单元201通过在一个或多个显示设备204上显示消息来提供优选安全策略。可选地,处理单元201通过在系统200的日志文件或日志中添加日志条目来提供优选安全策略。可选地,日志文件是实现方法100的策略生成进程的日志文件。Optionally, at 340, processing unit 201 determines that one or more blocked accesses at 330 failed to be identified. Referring now to Figure 5, a flow diagram schematically representing an additional optional operational flow 500 for generating a security policy is shown, in accordance with some embodiments. In these embodiments, since a failure to identify in one or more blocked accesses occurs, in 501 the processing unit 201 determines that the identified security policy is the preferred security policy. Optionally, the iteration in which the processing unit 201 determines the preferred security policy is the last iteration in a series of policy construction iterations. Optionally, in 502, the processing unit 201 provides the preferred security policy to one or more users of the system, such as security professionals or software developers. Optionally, the processing unit 201 provides the preferred security policy by saving the preferred security policy to one or more digital memories 203 . Optionally, the processing unit 201 sends a message to at least one other processing unit via the network interface 202 to provide the preferred security policy. Some examples of messages sent through network interfaces are email messages and messages sent through instant messaging services. Optionally, the processing unit 201 provides the preferred security policy by displaying messages on one or more display devices 204 . Optionally, the processing unit 201 provides the preferred security policy by adding log entries in a log file or log of the system 200 . Optionally, the log file is a log file of the policy generation process that implements method 100.
可选地,在510中,处理单元201识别执行软件程序的一个或多个意外结果,例如向软件程序提供识别的输入值的集合时。可选地,当软件程序在软件测试环境中执行时,识别一个或多个意外结果。可选地,处理单元201在330中未识别到被阻止的访问时,识别一个或多个意外结果。可选地,处理单元201未能识别一个或多个意外结果与在330中识别的一次或多次被阻止的访问之间的关联。在未能识别一次或多次被阻止的访问或未能识别关联的情况下,在511中,处理单元201可选地向系统的一个或多个其它用户,例如质量保证专业人员,提供在510中识别的一个或多个意外结果的通知。可选地,处理单元201确定识别的安全策略是在510中未能识别一个或多个意外结果的情况下的优选安全策略。Optionally, at 510, processing unit 201 identifies one or more unexpected results of execution of the software program, such as when providing the identified set of input values to the software program. Optionally, identify one or more unexpected results when the software program is executed in the software testing environment. Optionally, processing unit 201 identifies one or more unexpected results when no blocked access is identified in 330 . Optionally, processing unit 201 fails to identify an association between the one or more unexpected results and the one or more blocked accesses identified in 330 . In the event of failure to identify one or more blocked accesses or failure to identify an association, at 511 , processing unit 201 optionally provides, at 510 , one or more other users of the system, such as quality assurance professionals. Notification of one or more unexpected results identified in . Optionally, processing unit 201 determines that the identified security policy is the preferred security policy in the event one or more unexpected results fail to be identified in 510 .
对各种实施例的描述只是出于说明的目的,但这些描述并不是为了穷举或限于所公开的实施例。在不脱离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域技术人员而言是显而易见的。相比于市场上存在的技术,选择本文使用的术语可最好地解释本实施例的原理、实际应用或技术进步,或使本领域其它技术人员理解此处公开的实施例。Various embodiments are described for purposes of illustration only, but these descriptions are not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those skilled in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles, practical applications, or technological advances of the present embodiments compared to technologies existing on the market, or to enable others skilled in the art to understand the embodiments disclosed herein.
预计在本申请到期的专利的有效期内,将开发许多相关的监控数据和计算机资源,并且术语“监控数据”和“计算机资源”的范围旨在先验地包括所有此类新技术。It is expected that many related surveillance data and computer resources will be developed during the life of this patent's expiring patent, and the scope of the terms "monitoring data" and "computer resources" is intended to include a priori all such new technologies.
本文所使用的术语“约”是指±10%。As used herein, the term "about" means ±10%.
术语“包括”、“具有”以及其变化形式表示“包括但不限于”。这个术语包括了术语“由……组成”以及“基本上由……组成”。The terms "include," "have," and variations thereof mean "including, but not limited to." This term includes the terms "consisting of" as well as "consisting essentially of."
短语“基本上由……组成”表示组成物或方法可以包括附加成分和/或步骤,但前提是所述附加成分和/或步骤不会实质上改变所要求保护的组成物或方法的基本和新颖特性。The phrase "consisting essentially of" means that the composition or method may include additional ingredients and/or steps, provided that the additional ingredients and/or steps do not materially alter the basic and Novel features.
除非上下文另有明确说明,否则本文使用的单数形式“一个”和“所述”包括复数含义。例如,术语“一种复合物”或“至少一种复合物”可以包括多种复合物,包括其混合物。As used herein, the singular forms "a," "an" and "the" include plural referents unless the context clearly dictates otherwise. For example, the term "a complex" or "at least one complex" may include a plurality of complexes, including mixtures thereof.
本文中使用的词语“示例性的”表示“作为一个示例、实例或说明”。任何被描述为“示例性的”实施例不一定解释为比其它实施例更优选或更有利,和/或排除其它实施例的特征的结合。As used herein, the word "exemplary" means "serving as an example, instance, or illustration." Any embodiment described as "exemplary" is not necessarily to be construed as more preferred or advantageous than other embodiments, and/or to exclude the combination of features of other embodiments.
本文中使用的词语“可选地”表示“在一些实施例中提供且在其它实施例中没有提供”。任何特定实施例都可以包括多个“可选”特征,除非这些特征冲突。The word "optionally" as used herein means "provided in some embodiments and not provided in other embodiments." Any particular embodiment may include multiple "optional" features unless such features conflict.
在本申请中,各种实施例可以通过范围格式呈现。应当理解,范围格式的描述仅仅是为了方便和简洁,而不应当被解释为对实施例范围的固定限制。因此,对范围的描述应被认为是已经具体地公开所有可能的子范围以及所述范围内的单独数值。例如,对于例如从1到6的范围的描述应被视为已具体公开了从1到3、从1到4、从1到5、从2到4、从2到6、从3到6等的子范围以及该范围内的单独数字例如1、2、3、4、5和6。不论范围有多广,这都适用。Throughout this application, various embodiments may be presented in a range format. It should be understood that the description in range format is merely for convenience and brevity and should not be construed as a fixed limitation on the scope of the embodiments. Accordingly, descriptions of ranges should be considered to have specifically disclosed all possible subranges as well as individual values within said ranges. For example, a description of a range, such as from 1 to 6, should be deemed to have specifically disclosed that from 1 to 3, from 1 to 4, from 1 to 5, from 2 to 4, from 2 to 6, from 3 to 6, etc. subranges and individual numbers within that range such as 1, 2, 3, 4, 5 and 6. This applies no matter how broad the scope.
当本文指示一个数字范围时,表示包括所指示的范围内的任何所列举的数字(分数或整数)。短语“第一指示数字和第二指示数字之间的范围”以及“从第一指示数字到第二指示数字的范围”在本文中可互换使用,表示包括第一指示数字和第二指示数字以及二者之间的所有分数和整数。When a numerical range is indicated herein, this is intended to include any recited number (fractional or whole) within the indicated range. The phrases "a range between a first designated number and a second designated number" and "a range from a first designated number to a second designated number" are used interchangeably herein to mean that the first designated number and the second designated number are included. and all fractions and whole numbers in between.
应当理解,为了简洁起见在单独实施例的上下文中描述的实施例的某些特征还可以通过组合提供在单个实施例中。相反地,为了简洁起见在单个实施例的上下文中描述的实施例的各个特征也可以单独地或通过任意合适的子组合或适当地提供在任何其它描述的实施例中。在各个实施例的上下文中描述的某些特征不被认为是这些实施例的基本特征,除非在没有这些元件的情况下实施例是不可操作的。It will be understood that certain features of embodiments that are, for brevity, described in the context of separate embodiments, can also be provided in combination in a single embodiment. Conversely, various features of embodiments that are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable sub-combination or as appropriate in any other described embodiment. Certain features described in the context of various embodiments are not considered essential features of those embodiments, except to the extent that the embodiment is not operable without these elements.
虽然实施例已经结合其具体实施例进行了描述,但很明显许多替代方案、修改和变化对本领域技术人员来说是显而易见的。因此,旨在涵盖属于所附权利要求的精神和广泛范围内的所有此类替代、修改和变化。Although the embodiments have been described in conjunction with specific examples thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. It is therefore intended to cover all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.
本申请人的目的是,本说明书中提及的所有出版物、专利和专利申请书都通过全文引用结合在本说明书中,如同每个单独的出版物、专利或专利申请书在提及要通过引用结合在本文中时被具体和单独指出。此外,对本申请的任何参考的引用或标识不可当做是允许这样的参考在现有技术中优先于本发明。就使用节标题而言,不应该将节标题理解成必要的限定。另外,本申请的任何一个或多个优先权文件的全部内容通过引用结合在本申请中。It is the applicant's intention that all publications, patents, and patent applications mentioned in this specification are incorporated by reference in this specification in their entirety, as if each individual publication, patent, or patent application were so individually referred to. References are specifically and individually indicated when incorporated herein by reference. Furthermore, citation or identification of any reference in this application shall not be construed as permitting such reference to take precedence over the present invention in the prior art. Section headings should not be construed as necessary qualifications as far as their use is concerned. Furthermore, the entire contents of any priority document or documents of this application are incorporated by reference into this application.
Claims (15)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/EP2021/070667 WO2023001380A1 (en) | 2021-07-23 | 2021-07-23 | Generation of a security policy for a software program |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117730322A true CN117730322A (en) | 2024-03-19 |
Family
ID=77168234
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202180100566.XA Pending CN117730322A (en) | 2021-07-23 | 2021-07-23 | Generation of security policies for software programs |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN117730322A (en) |
WO (1) | WO2023001380A1 (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140032733A1 (en) * | 2011-10-11 | 2014-01-30 | Citrix Systems, Inc. | Policy-Based Application Management |
US11055417B2 (en) * | 2018-04-17 | 2021-07-06 | Oracle International Corporation | High granularity application and data security in cloud environments |
WO2020106973A1 (en) * | 2018-11-21 | 2020-05-28 | Araali Networks, Inc. | Systems and methods for securing a workload |
-
2021
- 2021-07-23 CN CN202180100566.XA patent/CN117730322A/en active Pending
- 2021-07-23 WO PCT/EP2021/070667 patent/WO2023001380A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023001380A1 (en) | 2023-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10924347B1 (en) | Networking device configuration value persistence | |
US10628600B2 (en) | Automatic audit logging of events in software applications performing regulatory workloads | |
US10516682B2 (en) | Forensic analysis of computing activity | |
US10708231B2 (en) | Using headerspace analysis to identify unneeded distributed firewall rules | |
US20230179573A1 (en) | Inferring cloud network connectivity as a minimal list of firewall rules | |
US10831900B2 (en) | Security scanning of application program interfaces that are affected by changes to source code | |
US20170223033A1 (en) | Multi-Node Affinity-Based Examination for Computer Network Security Remediation | |
CN113169975A (en) | Automatic generation of security rules for network microsegmentation and nanosegmentation | |
US10552616B2 (en) | Determining and managing application vulnerabilities | |
US20180077005A1 (en) | Tenant-Specific Log for Events Related to a Cloud-Based Service | |
US9584378B1 (en) | Computer-implemented command control in information technology service environment | |
US20160378987A1 (en) | Self-repair and distributed-repair of applications | |
US10057291B1 (en) | Comparing networking access control lists | |
US9436824B1 (en) | System and method for performing antivirus scans of files | |
US10162973B2 (en) | Dynamically provisioning virtual machines | |
WO2023006326A1 (en) | Reusable applications deployment plan | |
US20140208320A1 (en) | Creating a virtual resource package | |
JP7658690B2 (en) | Computer File Metadata Segmentation Security System | |
EP3981114A1 (en) | Adaptive network controls for iot and other applications | |
US20240106855A1 (en) | Security telemetry from non-enterprise providers to shutdown compromised software defined wide area network sites | |
US9781013B2 (en) | Homogenizing tooling for a heterogeneous cloud environment | |
US20160048685A1 (en) | Protected shell for risk validation | |
JP7687415B2 (en) | Secure system automatic design device, secure system automatic design method, and program | |
CN117730322A (en) | Generation of security policies for software programs | |
US10817600B2 (en) | Protecting stack memory in computer systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |