CN110870279B - 安全策略分析器服务和可满足性引擎 - Google Patents
安全策略分析器服务和可满足性引擎 Download PDFInfo
- Publication number
- CN110870279B CN110870279B CN201880043935.4A CN201880043935A CN110870279B CN 110870279 B CN110870279 B CN 110870279B CN 201880043935 A CN201880043935 A CN 201880043935A CN 110870279 B CN110870279 B CN 110870279B
- Authority
- CN
- China
- Prior art keywords
- policy
- security
- propositional logic
- propositional
- computer
- 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.)
- Active
Links
Images
Classifications
-
- 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
- H04L63/205—Network architectures or network communication protocols for network security for managing network security; network security policies in general involving negotiation or determination of the one or more network security mechanisms to be used, e.g. by negotiation between the client and the server or between peers or by selection according to the capabilities of the entities involved
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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/604—Tools and structures for managing or administering access control systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N5/00—Computing arrangements using knowledge-based models
- G06N5/01—Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
- G06N5/013—Automatic theorem proving
-
- 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/10—Network architectures or network communication protocols for network security for controlling access to devices or network resources
- H04L63/101—Access control lists [ACL]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Software Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- Automation & Control Theory (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
可以利用安全策略来同意或拒绝与计算资源的访问相关的许可。可以对两个或更多个安全策略进行比较,以确定所述策略是否为等效的,一个安全是否比另一个更宽松,等等。在一些情况下,可能可以识别是否存在足以确定两个安全策略缺乏等效性的安全许可。命题逻辑可以用于评估安全策略。
Description
相关申请的交叉引用
本申请要求2017年6月29日提交的标题为“SECURITY POLICY ANALYZER SERVICEAND SATISFIABILITY ENGINE”的美国专利申请No.15/637,227和2017年6月29日提交的标题为“SECURITY POLICY MONITORING SERVICE”的美国专利申请No.15/637,238的优先权,所述专利申请的公开内容以引用的方式整体并入本文中。
背景技术
在许多环境中,计算资源和相关联的数据的安全性非常重要。作为实例,计算装置的网络可以用于向其用户提供稳健的服务集合。在网络内,第一用户可以被授予某些访问权,并且第二用户可以具有第二访问权集合,所述第二访问权集合可能不同于第一用户的访问权。可以在计算资源服务提供商的环境中使用安全策略来定义用户访问权,安全策略可以被服务提供商利用以作为确定同意还是拒绝对计算资源的用户访问的一部分。
管理和维护计算机系统和计算机网络的安全性通常是复杂的且具有挑战性。在许多情况下,系统中的用户访问权可能会随时间变化,这在一些情况下可能需要改变应用于用户的安全策略。随着计算机系统或计算机网络中支持的用户数量和类型的扩展,可能变得难以确定与用户相关联的访问权实际上是否同意对用户应该可以访问的资源的访问并拒绝对用户不应访问的资源的访问。
附图说明
将参考附图来描述各种技术,在附图中:
图1示出了其中可以实施各种实施方案的环境;
图2示出了其中计算资源服务提供商可以用来实施各种实施方案的环境;
图3示出了其中客户端发出分析两个安全策略的等效性的请求并接收等效性结果的环境;
图4示出了其中分布式计算机系统可以利用本文中描述的各种技术的环境;
图5示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图6示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图7示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图8示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图9示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图10示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图11示出了使用命题逻辑以作为确定命题逻辑公式的可满足性的一部分的图;
图12示出了示出用于确定两个或更多个安全策略的等效性的过程的图;
图13示出了其中结合分析应用于系统的安全策略利用事件驱动平台的环境;
图14示出了示出用于监视应用于系统的策略的过程的图;
图15示出了示出其中可以实施各种实施方案的图形用户界面的图;以及
图16示出了其中可以实施各种实施方案的环境。
具体实施方式
在计算资源服务提供商的环境中,客户端可以提出访问计算资源服务提供商的资源的请求。客户端可以具有与客户端相关联的安全策略,使得可以利用该安全策略以作为确定是否同意对一个或多个计算资源(诸如客户端可以经由应用编程接口(API)调用而请求的计算资源)的客户端访问的一部分,所述API调用可以通过网络路由到服务提供商。在一些情况下,计算资源服务提供商可以向用户提供创建、改变或删除安全策略或安全策略的一部分的能力。安全策略分析器服务可以用于对安全策略进行比较并确定第一安全策略是否比第二安全策略更宽松。
在各种实例中,客户端可以请求策略分析器服务来分析安全策略以确定策略的相对宽松性—换句话说,策略分析器可以用于确定两个安全策略是否为等效的,第一安全策略是否比第二安全策略更宽松,等等。策略分析器服务可以是计算资源服务(诸如本公开中其他地方描述的计算资源服务)的服务,并且可以经由可以通过网络路由到服务提供商的API调用来访问。客户端计算装置可以是可操作的以访问计算资源服务提供商的服务、计算资源等。在各种实例中,客户端计算装置经由网络API调用与策略分析器服务进行通信。
代表客户端的客户端计算装置可以利用策略分析器服务来确定两个或更多个安全策略的等效性。客户端可以使用客户端计算装置向策略分析器服务提出包括两个或更多个安全策略的API请求。一般来说,安全策略可以是指定一个或多个安全许可的信息。安全许可可以是安全策略的元素,所述元素限定与系统的资源和/或主体相关联的访问权。例如,许可可以用于同意或拒绝对计算资源服务提供商的计算资源的访问。在一些情况下,许可可以指定主体、计算资源、动作、条件和效果。在一些实施方案中,许可还可以指定这些元素中的多个一个或多个,诸如用户集合或一类用户、资源的集合、几种不同的动作和/或多个条件。
安全策略可以包括一个或多个许可语句以及额外信息,诸如版本信息和策略范围的信息。安全策略可以包括条件集合,所述条件可以用于在各种环境中(诸如在不同用户,对计算资源执行不同动作,以及不同的访问条件的环境中)确定同意访问还是拒绝访问计算资源。授权模块或授权服务(诸如在本公开中其他地方描述的授权模块或授权服务)可以用于至少部分地基于结合请求评估安全策略来评估是同意还是拒绝访问资源的请求。在一些情况下,策略范围的信息包括在策略开头处的策略标头中,或甚至可以与策略文档分开地(并与策略文档相关联地)存储。策略可以包括多个策略语句,诸如在其他地方结合图2描述的策略语句。
如贯穿本公开所描述的,策略分析器服务可以是计算资源服务提供商的服务,并且可以支持客户端可以用来向策略分析器服务提交评估安全策略的请求的一个或多个API,诸如用于确定第一安全策略是否比第二安全策略更宽松,以及两个或更多个安全策略是否等效的API。在这种情况下,宽松性用于描述对资源的访问。例如,如果第一策略可以用于访问第一计算资源(例如,资源“A”)和第二资源(例如,资源“B”)并且第二策略仅同意访问计算资源“B”,则可以将第一策略描述为比第二策略更宽松,这是因为存在第一策略同意访问而第二策略不同意访问的计算资源,并且不存在第二策略同意访问而第一策略不同意访问的资源。如果两个策略都可以用来访问相同的资源,并拒绝(隐含地或明确地)访问相同的资源,则两个策略可以是等效的。一般来说,如果两个策略不是等效的,则可以说它们缺乏等效性。在一些情况下,如果第一策略同意对第一计算资源“A”和第二计算资源“B”的访问,并且第二策略同意对第二计算资源“B”和第三计算资源“C”的访问,则可以说所述策略不可比。
由策略分析器服务支持的API调用可以接受两个安全策略,并确定它们是否为等效的,一个策略是否比另一个策略更宽松,所述策略是否不可比等等。作为第二实例,API调用可以接受两个或更多个安全策略,并确定作为API请求的一部分提供的所有安全策略是否为等效的。作为第三实例,API调用可以接受单个安全策略,并且将该安全策略与一个或多个最佳实践策略进行比较。最佳实践策略可以是安全策略集合,所述安全策略被确定为不应被允许的许可集合。例如,第一最佳实践策略可以是特定数据容器不应是全域可写入的(例如,任何主体,甚至来宾用户或匿名用户都可以对容器进行写入)的策略。API可以通过确定接收到的策略不比最佳实践策略中的每一者更宽松来验证遵循最佳实践策略。最佳实践策略的实例可以包括全域可写入、全域可读取、全域可访问等的资源。在一些实施方案中,可以基于API调用、所请求的计算资源的类型以及其他上下文信息来确定最佳实践策略的集合。
策略分析器服务可以包括多个部件和/或模块,诸如策略解析器;命题逻辑转换器;以及可满足性引擎。策略解析器可以是接收安全策略并从该策略获得一个或多个许可语句的部件或模块。例如,如果客户端提供第一策略“A”和第二策略“B”,则策略解析器可以从策略“A”获得第一许可语句集合,并从策略“B”获得第二许可语句集合。许可语句可以各自与同意或拒绝对计算资源的访问相关联。命题逻辑转换器可以将许可语句转变为使用命题逻辑描述的一个或多个约束。可以用各种格式并根据各种标准(诸如SMT-LIB标准格式、CVC语言以及离散数学与理论计算机科学中心(DIMACS)格式)来描述约束。由命题逻辑转换器生成的命题逻辑表达式可以表示必须满足才能使对应的许可语句生效的约束集合。
可满足性引擎可以用于将第一命题逻辑表达式与第二命题逻辑表达式进行比较,以确定一个命题逻辑是否比另一个命题逻辑更宽松。可满足性引擎可以用于分析两个或更多个命题逻辑表达式的宽松性。可满足性引擎可以生成额外的命题逻辑约束以作为确定第一命题逻辑表达式是否比第二命题逻辑表达式更宽松的一部分。除了第一命题逻辑表达式和第二命题逻辑表达式的约束之外,还可以生成约束并对其进行评估束。可以至少部分地基于客户端请求的内容来生成约束。例如,可满足性引擎可以生成仅在以下情况下满足的约束:响应于来自调用者的确定第一命题逻辑表达式是否比第二命题逻辑表达式更宽松的请求,第一策略同意对资源的访问并且第二策略拒绝对资源的访问或者关于资源是中立的。可满足性引擎可以用于验证命题逻辑约束(例如,从第一和第二命题逻辑表达式获得的约束以及由可满足性引擎生成的约束是否。在一些实施方案中,可以使用命令来确定是否可满足约束集合。如果存在使所有断言的公式为真的解释,则公式可能是可满足的。换句话说,如果在一些条件下满足约束中的每一者,则该模型是可满足的。在一些实施方案中,可满足性引擎可以至少部分地使用诸如Z3的SMT求解器来实施,如在https://github.com/Z3Prover/z3中所描述的。
在前述和以下描述中,描述了各种技术。出于解释的目的,阐述了具体配置和细节,以便提供对实施技术的可能方式的透彻理解。然而,还将显而易见的是,下文所描述的技术可以在没有具体细节的情况下以不同的配置来实践。此外,可以省略或简化众所周知的特征,以避免模糊所描述的技术。
图1是其中可以实践本公开的各种实施方案的环境100的说明性实例。在实施方案中,环境100包括:客户端计算装置102;安全策略104;策略分析器服务106;策略解析器108;命题逻辑转换器110;以及可满足性引擎112。环境100示出了其中客户端可以请求策略分析器服务106分析安全策略104以确定策略的相对宽松性的实例—换句话说,策略分析器可以用于确定安全策略104是否为等效的,第一安全策略(例如,图1所示的安全策略A)是否比第二安全策略(例如,图1所示的安全策略B)更宽松,等等。
客户端计算装置102可以是提供对计算资源的访问的服务的客户端。在一些实施方案中,经由可以通过网络路由到服务提供商的应用编程接口(API)调用来访问计算资源。客户端计算装置102可以是可操作以访问计算环境的服务、计算资源等的实体。在一些实施方案中,客户端计算装置102可以经由网络API调用与策略分析器服务106进行通信。
在一些实施方案中,客户端计算装置102利用策略分析器服务106来确定两个或更多个安全策略104的等效性。客户端可以向策略分析器服务提出包括两个或更多个安全策略104的API请求。安全策略可以是指定一个或多个安全许可的信息(例如,编码在文件中)。安全许可可以是安全策略的元素,所述元素限定与系统的资源和/或主体相关联的访问权。例如,许可可以用于同意或拒绝对计算资源服务提供商的计算资源的访问。可以用独立于语言的格式,诸如JavaScript对象表示法(JSON)来表达策略。在本公开中讨论的实例可以是JSON格式或与JSON类似的格式,并且可以作为可以实施的各种实施方案的说明。当然,也预期可以用结合JSON和与JSON类似的格式描述的方式利用的各种其他格式并且所述各种其他格式在本公开的范围内。安全策略可以包括一个或多个许可语句以及额外信息,诸如版本信息和策略范围的信息。在一些情况下,策略范围的信息包括在策略开头处的策略标头中,或甚至可以与策略文档分开地(并与策略文档相关联地)存储。策略可以包括多个策略语句,诸如在其他地方结合图2描述的策略语句。
策略分析器服务106可以是计算资源服务提供商(例如,在其他地方结合图4描述的计算资源服务提供商)的服务。可以使用硬件、软件及其组合来实施策略分析器服务106。在一些情况下,策略分析器服务106支持客户端(例如,客户端计算装置102)可以用来向策略分析器服务106提供请求的一个或多个API。策略分析器服务106可以支持用于评估安全策略(例如,结合图1描述的安全策略104)的一个或多个API,诸如确定第一安全策略是否比第二安全策略更宽松以及两个或更多个安全策略是否等效的API。
在一些实施方案中,宽松性用于描述同意对资源的访问。例如,如果第一策略同意访问第一计算资源(例如,资源“A”)和第二资源(例如,资源“B”)并且第二策略仅同意访问计算资源“B”,则可以将第一策略描述为比第二策略更宽松,这是因为存在第一策略同意访问而第二策略不同意访问的计算资源,并且不存在第二策略同意访问而第一策略不同意访问的资源。如果两个策略都同意对相同的资源的访问,并拒绝(隐含地或明确地)对相同的资源的访问,则两个策略可以是等效的。在一些情况下,等效性可以指两个策略明确地同意对相同的资源的访问并明确地拒绝对相同的资源的访问—换句话说,在一些实施方案中,如果第一策略明确地拒绝对计算资源的访问,而第二策略隐含地拒绝对计算资源的访问(例如,通过在默认拒绝环境中没有肯定地同意访问),则可能缺乏等效性。一般来说,如果两个策略不是等效的,则可以说它们缺乏等效性。在一些情况下,如果第一策略同意对第一计算资源“A”和第二计算资源“B”的访问,并且第二策略同意对第二计算资源“B”和第三计算资源“C”的访问,则可以说所述策略不可比。应当注意,除非另有说明,否则本文中描述的实例可以实施默认拒绝安全模型,其中除非存在对计算资源的访问的明确同意,否则拒绝对计算资源的访问。还应注意,在这些讨论的上下文中,安全策略可以用于在计算资源服务提供商的环境中同意或拒绝对资源的访问,其中访问资源的请求可以由授权模块或授权服务通过利用适用于请求的安全策略来评估。适用的安全策略可以是与请求者相关联的安全策略,与请求者呈现的标记相关联的安全策略等等。可以根据在其他地方结合图4描述的计算资源服务提供商来执行这类技术。
策略分析器服务106可以用于确定一个或多个策略的宽松性。例如,由策略分析器服务106支持的API调用可以接受两个安全策略,并确定它们是否为等效的,一个策略是否比另一个策略更宽松,所述策略是否不可比等等。作为第二实例,API调用可以接受两个或更多个安全策略,并确定作为API请求的一部分提供的所有安全策略是否为等效的。作为第三实例,API调用可以接受单个安全策略,并且将该安全策略与一个或多个最佳实践策略进行比较。最佳实践策略可以是安全策略集合,所述安全策略被确定为不应被允许的许可集合。例如,第一最佳实践策略可以是特定数据容器不应是全域可写入的(例如,任何主体,甚至来宾用户或匿名用户都可以对容器进行写入)的策略。API可以通过确定接收到的策略不比最佳实践策略中的每一者更宽松来验证遵循最佳实践策略。最佳实践策略的实例可以包括全域可写入、全域可读取、全域可访问等的资源。在一些实施方案中,可以基于API调用、所请求的计算资源的类型以及其他上下文信息来确定最佳实践策略的集合。
策略分析器服务106可以包括多个部件和/或模块,诸如策略解析器108;命题逻辑转换器110;以及可满足性引擎112。在一些实施方案中,各种部件和/或模块的功能可以被委托给策略分析器服务106可以利用的其他服务。例如,在一些实施方案中,策略分析器服务106可以利用不同的服务来执行与解析策略相关的功能。
策略解析器108可以是接收安全策略(例如,从与API调用相关的客户端接收的或经由策略管理服务获得的安全策略)并从该策略获得一个或多个许可语句的部件或模块。例如,如果客户端向策略分析器服务106提供第一策略“A”和第二策略“B”,则策略分析器服务106可以使用策略解析器108来从策略“A”获得第一许可语句集合并从策略“B”获得第二许可语句集合。许可语句可以各自与同意或拒绝对计算资源的访问相关联。许可语句可以呈特定格式,诸如JSON、Aspen等等。
如本文中所描述,命题逻辑可以指与对命题的评估相关的符号逻辑,所述命题可以被评估为真或假。命题逻辑可以用于评估命题公式的逻辑等效性。命题公式。命题公式可以是符合语法的语句,所述语法包括命题变量和连接命题变量的逻辑连接词。逻辑连接词或逻辑运算符的实例可以包括:“AND”(连接)、“OR”(析取)、“NOT”(否定)和“IF AND ONLYIF”(双条件)连接词。命题逻辑在本文中还可以被描述为“命题表达式”或“命题逻辑表达式”。在一些实施方案中,可以利用一阶逻辑来代替命题逻辑。一阶逻辑可以指除了命题逻辑之外还利用量词的形式系统。量词的实例包括“FOR ALL”(通用量词)和“THERE EXISTS”(存在量词)。除非明确指出,否则结合命题逻辑描述的本公开的实施方案也可以使用一阶逻辑来实施—例如,在一些实施方案中,可以利用一阶逻辑转换器(图1中未示出)来代替命题逻辑转换器110以将许可语句转换为一阶逻辑表达式,并且可满足性引擎可以评估一个或多个一阶逻辑表达式以确定所述表达式是否为等效的。
可以将许可语句(例如,由策略解析器108获得的许可语句)提供给命题逻辑转换器110。命题逻辑转换器110可以接收许可语句(例如,以JSON格式),并将许可语句转变为使用命题逻辑描述的一个或多个约束。可以用各种格式并根据各种标准(诸如SMT-LIB标准格式、CVC语言以及离散数学与理论计算机科学中心(DIMACS)格式)来描述约束。
例如,可以将许可语句(例如,被包括作为安全策略的一部分的许可语句)描述为:
对应的命题逻辑约束可以从实例策略语句生成,可以描述如下:
(assert policy.statement.resource)
(assert policystatement.principal)
(assert(=policy.statement.action(or(and(=″storage″actionNamespace)(str.prefixof″put″actionName)))))
(assert(=policy.statement.effect.allows(and policy.statement.actionpolicy.statement.resource policy.statement.principal)))
(assert(not policy.statement.effect.denies))
(assert(=policy.allows(and(not policy.denies)policy.statement.effect.allows)))
(assert(=policy.denies policy.statement.effect.denies))
由命题逻辑转换器110生成的命题逻辑表达式可以表示必须满足才能使对应的许可语句生效的约束集合。上述约束对应于约束集合,如果将履行允许访问以“put”开头的API(例如,“put-object”)的先前许可语句,则必须满足所述约束集合。
在一些实施方案中,客户端计算装置102向策略分析器服务106传输(例如,代表客户端终端用户)网络API请求,以请求策略分析器服务106确定第一安全策略(例如,图1中示出的“安全策略A”)是否比第二安全策略(例如,“安全策略B”)更宽松。可以将安全策略104编码在网络API请求中,或者可以提供可用于获得安全策略的信息(例如,指示可以获得策略的位置的指针或URI)。策略分析器服务106可以(例如,直接从请求或者经由策略管理服务使用编码在请求中的URI)获得安全策略104,并利用策略解析器108来从第一策略获得第一许可语句集合并从第二策略获得第二许可语句集合。可以将策略语句提供给命题逻辑转换器110,以获得与必须满足才能使使对应的策略语句生效的约束相对应的命题逻辑表达式集合。可以从第一策略语句集合生成第一命题逻辑表达式,并且可以从第二策略语句集合生成第二命题逻辑表达式。命题逻辑表达式可以用符合SMT-LIB标准语言(诸如STM-LIB2.0标准)的语言来表达。可满足性引擎112可以用于将第一命题逻辑表达式与第二命题逻辑表达式进行比较,以确定一个命题逻辑是否比另一个命题逻辑更宽松。
可满足性引擎112可以用于分析两个或更多个命题逻辑表达式的宽松性。可满足性引擎112可以是硬件、软件或其组合。在一些实施方案中,可满足性引擎112允许客户端(例如,内部客户端,诸如命题逻辑转换器110、策略分析器服务106等)确定第一命题逻辑表达式是否比第二命题逻辑表达式更宽松。可满足性引擎112可以生成额外的命题逻辑约束以作为确定第一命题逻辑表达式是否比第二命题逻辑表达式更宽松的一部分。
在一些实施方案中,可满足性引擎112利用以下约束来确定第一策略(例如,policy A)是否比第二策略(例如,policy B)更宽松:
(assert(or policyB.neutral policyB.denies))
(assert policyA.allows)
除了第一命题逻辑表达式和第二命题逻辑表达式的约束之外,还可以生成约束并对其进行评估,可以按照上文结合图1的讨论描述的方式对所述约束进行编码。可以至少部分地基于客户端请求的内容来生成约束。例如,可满足性引擎112可以生成仅在以下情况下满足的约束:响应于来自调用者(例如,策略分析器服务106)的确定第一命题逻辑表达式是否比第二命题逻辑表达式更宽松的请求,第一策略同意对资源的访问并且第二策略拒绝对资源的访问或者关于资源是中立的。这类实施方案可以在中立环境(即,没有许可明确地同意或拒绝对特定资源的访问的环境)的默认拒绝环境中实施。在默认允许环境中,可满足性引擎112可以生成不同的约束,所述约束在第一策略同意对资源的访问或者关于资源是中立的并且第二策略不拒绝对资源的访问的情况下被满足。
可满足性引擎112可以用于验证命题逻辑约束(例如,从第一和第二命题逻辑表达式获得的约束以及由可满足性引擎生成的约束)是否为等效的。在一些实施方案中,可以使用命令来确定是否可满足约束集合。如果存在使所有断言的公式为真的解释,则可能可满足公式。换句话说,如果在一些条件下满足约束中的每一者,则可满足模型。在一些实施方案中,可满足性引擎可以至少部分地使用可满足性模理论(SMT)约束求解器来实施,以确定是否可满足公式。基于SMT的约束求解器的实例是Z3。根据本文中描述的技术,可以利用其他类型的求解器以作为实施可满足性引擎的一部分,包括但不限于可满足性(SAT)求解器和二元决策图(BDD)求解器。可满足性引擎112可以生成等效性结果,所述等效性结果指示是否可满足所述公式,以及通过扩展指示两个或更多个策略是否为等效的。在一些实施方案中,使等效性结果可用于另一计算实体,诸如发出请求的客户端计算装置102、系统管理员和其他计算实体。
图2示出了图200的说明性实例,其中示出了安全许可和对应的命题逻辑表达式。图2中示出的许可202可以是安全策略(诸如在其他地方结合图1描述的安全策略)中指定的多个安全许可中的一者。
图200示出了可以与计算资源策略相关联的许可202的实例。在一些实施方案中,许可202可以指定主体204、资源206、动作208、条件210和效果212。在一些实施方案中,许可202还可以指定这些元素中的多个一个或多个,诸如用户集合或一类用户、资源的集合、几种不同的动作和/或多个条件。在一些实施方案中,许可202可以指定一个或多个通配符或可以其他方式修改的字符,其可以用于表示许可202可以被修改以使得许可202适用于不同的用户及其相关联的资源。通配符可以用各种格式表示—例如,星号可以表示任意数量的字符,并且问号可以表示任意单个字符。在一些实施方案中,可以用独立于语言的格式,诸如JavaScript对象表示法(JSON)来表达策略。在本公开中讨论的实例可以是JSON格式或与JSON类似的格式,并且可以作为可以实施的各种实施方案的说明。当然,也预期可以用结合JSON和与JSON类似的格式描述的方式利用的各种其他格式并且所述各种其他格式在本公开的范围内。
主体204可以是用户、组、组织、角色或这些或其他这类实体的集合和/或组合。主体204可以是能够提交导致执行与资源相关联的动作的API调用的任何实体和/或可以被授予与资源相关联的许可的任何实体。作为实例,许可202可以具有用以下方式指定的主体204元素:
"Principal":"rn:ws:iam::ducksfan8"
在一些实施方案中,主体204由唯一地识别主体204的资源名称识别。主体204可以包括一个或多个命名空间,所述命名空间包括关于该主体的额外信息。例如,“rn”可以指资源名称前缀,并将随后的信息识别为资源名称的一部分;“ws”可以指资源所在的分区命名空间;“iam”可以指识别计算资源服务提供商的服务的服务命名空间(例如,计算资源服务提供商可以提供与身份和访问管理相关的服务);可以另外省略命名空间(请注意,在上文的实例中,在“iam”和“ducksfan8”之间有两个分号)—在某些格式中和/或对于某些资源,区域命名空间可以是选项;并且“ducksfan8”可以指帐户(诸如拥有在许可202中指定的资源206的帐户)的识别符。
资源206可以指计算资源服务提供商的计算资源。计算资源服务提供商的计算资源可以包括:计算资源(例如,虚拟机实例);存储资源(例如,可扩展存储、块存储和受管理的文件存储系统);数据库系统(例如,受管理的关系数据库系统);迁移服务(例如,用于简化从一个物理数据中心到另一个物理数据中心的数据传送的应用、服务和硬件);网络和内容递送;开发者工具;管理工具;安全性、身份和访问管理服务;分析服务;人工智能服务;等等。计算资源206可以按层次结构进行组织,并且可以使用诸如文件夹、目录、存储桶等的结构来将计算资源集合组织成组。在一些情况下,策略和/或许可可以直接应用于存储桶,并同意对环境的跨帐户访问。作为实例,许可202可以具有用以下方式指定的资源206元素:
″Resource″:″rn:ws:storage:::bucket/MM4_Heisman.png″
在一些实施方案中,资源206由唯一地识别资源206的资源名称识别。在一些情况下,资源206可以与主体204或许可的其他元素共享相同的命名约定。然而,情况不必如此,因为许可202的每个单独的元素可以使用独立于其他元素的命名约定、命名空间、格式等。在上文给出的实例资源中,“rn”可以指资源名称前缀,并将随后的信息识别为资源名称的一部分;“ws”可以指资源所在的分区命名空间;“storage”可以指识别计算资源服务提供商的服务的服务命名空间(例如,计算资源服务提供商可以提供与基于对象的存储相关的服务);如其他地方所讨论的,在一些情况下可以省略命名空间-例如,可以省略区域命名空间和/或帐户命名空间;以及还可以包括资源类型的指示符的资源。在以上实例中,资源可以指示可移植网络图形(PNG)格式的图像,并存储在存储桶中。
动作208可以是许可将允许或拒绝的一个或多个特定动作。不同类型的服务(例如,具有不同的服务命名空间)可以支持不同的动作。例如,身份和帐户管理服务可以支持用于改变密码的动作,而存储服务可以支持用于删除对象的动作。可以与资源相关联地执行动作,并且该动作可以例如由API调用的类型、库调用、程序、过程、一系列步骤、工作流程或某种其他这类动作识别。作为实例,许可202可以具有用以下方式指定的动作208元素:
″Action″:″storage:GetObject″
在该实例中,(基于许可中指定的效果212而确定的)允许或拒绝的动作对应于支持GetObject动作(例如,API调用)的存储服务,该存储服务可以结合获得存储服务的对象和/或对对象的访问来使用。如其他地方所讨论的,可以结合指定动作来使用各种命名空间。通配符可以用于指定多个动作。例如,描述为“Action”:“storage:*”的动作元素可以指由存储服务支持的所有API。作为第二实例,被描述为“Action”:“iam:*AccessKey*”的动作元素可以指由身份和访问管理服务支持的与服务的访问关键字相关的动作-说明性实例可以包括与创建访问关键字(例如,可能存在“CreateAccessKey”动作)、删除访问关键字(例如,“DeleteAccessKey”)、列出访问关键字(例如,“ListAccessKeys”)以及更新现有访问关键字(例如,“UpdateAccessKey”)相关的动作。
条件210元素可以是指定策略何时生效的一个或多个条件。在一些实施方案中,条件元素是可选的,并且在一些许可中可以省略。条件可以描述为布尔表达式,其可以用来确定策略是生效(即,表达式是否评估为TRUE)还是没有生效(即,表达式是否评估为FALSE)。没有生效的策略可能不会被授权模块(诸如本文中其他地方描述的授权模块)强制执行或被授权模块忽略。在一些实施方案中,可以对照作为与动作208元素中指定的一个或多个API相对应的网络API请求的一部分而提供的值来评估许可中的条件。作为实例,许可202可以具有用以下方式指定的条件210元素:
″Condition″:{″DateLessThan″:{″ws:CurrentTime″:″2014-12-13″}}
在该实例中,使用条件运算符“DateLessThan”将条件,即请求的“ws:CurrentTime”值与文字值“2104-12-13”进行比较,所述条件运算符可以用于评估条件是否得到满足。在该实例中,当当前时间(例如,服务提供商接收到请求的时间)小于供应日期2014年12月13日时,条件可以为真。应注意,可以将关键字值(在该实例中为当前时间)不仅与文字值进行比较,而且还与策略变量进行比较。可能存在各种其他类型的条件运算符,所述条件运算符可以用于对字符串条件、数字条件、布尔条件、二进制条件(例如,二进制格式的测试值)、IP地址条件(例如,测试值对照特定IP地址或IP地址范围)等等进行比较。此外,条件可以包括量词。例如,字符串条件可以包括运算符,诸如比较两个字符串是否相等的“StringEquals”,而类似的运算符可以包括量词,使得当在评估的上下文中存在关键字值时,可以使用“StringEqualsIfExists”来对两个字符串进行比较。量词可以与通配符结合使用,其中与通配符表达式匹配的多个资源可以支持不同的上下文关键字。下文结合图5-11讨论了这类实例。在一些实施方案中,诸如条件包括量词的实施方案,可以利用一阶逻辑而不是命题逻辑。
效果212可以指许可202是用于同意还是拒绝对在许可202中在资源206元素中指定的计算资源的访问。效果212可以是同意对资源的访问的ALLOW效果和拒绝对资源的访问的DENY效果。在一些实施方案中,默认拒绝对计算资源服务提供商的计算资源的访问,并且需要肯定地包括ALLOW效果的许可。作为实例,许可202可以具有用以下方式指定的效果212元素:
"Effect":"ALLOW"
因此,可以用以下方式指定许可语句,所述许可语句同意特定主体(例如,“rn:ws:iam::ducksfan8”)访问以调用存储服务API(例如,“storage:GetObject”)并且当特定条件为真(例如,在2016年12月13日之前提出API请求)时获得特定图像(例如,“rn:ws:storage:::bucket/MM4_Heisman.png”)
应注意,上述实例仅仅描述了可以表达许可的许多方式中的一种。当然,在其他实施方案中,上文结合图2描述的原理的变型可以用各种方式来应用。
在一些实施方案中,可以用反(例如,否定)项来描述元素。反元素可以应用于除元素中指定的匹配以外的所有匹配。例如,如果将许可语句描述为“NotPrincipal:ducksfan8”,则该许可语句适用于除许可语句中列出的一个或多个特定主体之外的所有主体—在这种情况下,所述许可语句将适用于除ducksfan8以外的所有主体。反元素可以结合主体元素使用(例如,“NotPrincipal”元素将适用于除列出的主体之外的所有主体),动作元素(例如,“NotAction”元素将适用于除列出的动作之外的所有动作),资源元素(例如,“NotResource”元素将适用于除列出的资源之外的所有资源),等等。
如图2所示,许可202可以用于生成命题逻辑表达式214。命题逻辑表达式214可以包括表示许可202的一组逻辑表达式。可以评估命题逻辑表达式以确定是否可满足公式。例如,命题逻辑可以用于确定是否可满足以下情况:在与包括第一许可集合的第一安全策略相对应的第一命题逻辑表达式下允许资源并且在与包括第二许可集合的第二安全策略相对应的第二命题逻辑表达式下不允许(例如,明确地拒绝和/或未明确地同意ALLOW效果)所述资源。在一些实施方案中,许可202语句可以用于生成命题逻辑表达式214。主体204元素可以映射到主体命题逻辑表达式216,所述主体命题逻辑表达式216可以包括命题逻辑中的语句以及用作关于是否可满足公式的约束的一个或多个断言。下文结合图5-11描述了该映射的实例。同样,资源206元素可以映射到资源命题逻辑表达式218,动作208元素可以映射到动作命题逻辑表达式220,条件210元素可以映射到条件命题逻辑表达式222,并且效果212元素可以映射到效果命题逻辑表达式224。下文结合图5-11描述了与这些映射相关的各种实例。
图3是其中可以实践本公开的各种实施方案的环境300的说明性实例。环境300示出了其中客户端可以发出分析两个安全策略的等效性的请求并接收指示策略是否等效的等效性结果的实例。环境300可以利用本公开中其他地方描述的部件,诸如结合图1、2和4描述的部件。
在一些实施方案中,客户端计算装置302(诸如在其他地方结合图1描述的客户端计算装置)可以代表客户端发出确定两个安全策略之间的等效性的请求。在一些实施方案中,请求是网络API请求,所述网络API请求对将被分析的安全策略进行编码以作为该请求的一部分。然而,情况无需如此—在一些实施方案中,安全客户端计算装置可以提供对一个或多个安全策略的引用,请求的接收者可以使用所述引用来获得一个或多个安全策略。在一些实施方案中,将网络API请求从客户端计算装置传输到根据结合图4描述的那些计算资源服务提供商。请求可以由策略分析器服务(诸如结合图1和图4描述的策略分析器服务)履行。可以解析第一安全策略304A以获得一个或多个许可语句306A,并且可以将许可语句转换为第一命题逻辑表达式集合,所述第一命题逻辑表达式集合可以充当对命题逻辑公式308的约束。同样,可以解析第二安全策略304B以获得一个或多个许可语句306B,并且可以将许可语句转换为第二命题逻辑表达式集合,所述第二命题逻辑表达式集合可以充当对命题逻辑公式308的约束。系统(例如,策略分析器服务或其中的部件)可以利用可满足性引擎310(诸如结合图1描述的策略分析器服务)来确定两个命题逻辑表达式是否为等效的,一个是否比另一个更宽松,等等。
可以根据本公开中其他地方描述的技术来进行确定。在一些实施方案中,等效性结果312可以指示两个策略是等效的。如果来自第一策略和第二策略的安全许可以相同的方式应用于所有动作、资源和主体—换句话说,对于任何给定的动作、资源和主体集合,第一策略和第二策略两者都将(基于拒绝语句明确地或基于缺乏同意访问的许可隐含地)拒绝访问,或者两者都将同意访问—情况将不会是一个策略同意访问而另一个策略拒绝访问,则可以说两个策略是等效的。在确定一个策略比另一个策略更宽松的情况下,情况将为一个策略在参数集合下同意访问,而在该参数集合下另一个策略拒绝访问。
在一些实施方案中,可以将等效性结果312作为对网络API请求的响应传输到客户端计算装置302。在一些实施方案中,等效性结果312可以对宽松性结果(例如,一个策略是否比第二策略更宽松)进行编码。在一些实施方案中,代替或除了宽松性结果之外,提供其他信息。例如,在第一策略比第二策略更宽松的情况下,等效性结果312可以对参数集合进行编码,该参数集合导致第一策略同意访问并且第二策略拒绝访问(例如,可以将主体、资源和操作编码在响应中,使得第一策略将同意对该主体的访问以对该资源执行该动作,而第二策略将拒绝对该主体的访问以不对该资源执行该动作)。
环境300可以用于实施各种实施方案。在一些实施方案中,计算装置可以提出确定策略(例如,编码在请求中的)是否符合最小安全标准集合的请求。计算资源服务提供商可以接收请求,路由,获得与安全标准相关联的安全策略,并确定所提供的策略和安全标准策略的相对宽松性。如果所提供的策略比安全标准更宽松,则响应可以指示策略不符合安全标准。例如,在一些实施方案中,客户端可以尝试使用策略管理服务(诸如在其他地方结合图4描述的策略管理服务)来设置安全策略。策略管理服务可以利用策略分析器服务422来确定客户端的安全策略是否符合一个或多个安全标准。如果策略不符合,则策略管理服务可以拒绝履行请求,并向客户端指示该请求未被履行,并且可以编码该安全策略比一个或多个安全标准策略更宽松。
图4是其中分布式计算机系统可以利用本文中描述的各种技术的环境400的说明性实例。在一个实施方案中,主体402可以使用计算装置来通过网络404与计算资源服务提供商406进行通信。计算资源服务提供商406与主体402之间的通信可以例如用于访问由计算资源服务提供商406操作的服务408的目的,服务408可以是由计算资源服务提供商406操作的许多服务中的一者。服务408可以包括服务前端410和服务后端414。主体402可以通过相关联的计算装置发出访问由计算资源服务提供商406提供的服务408的请求(和/或访问与服务408相关联的资源的请求)。所述请求可以是例如网络服务应用编程接口请求。主体可以是用户,或一组用户,或与一组用户相关联的角色,或可以在一个或多个(相对于计算资源服务提供商406)远程的计算机系统上运行的表示这些实体中的一个或多个的进程,或者可以是某一其他这类计算机系统实体、用户或进程。每个用户、组、角色或其他这类主体集合可以具有对应的用户定义、组定义、角色定义或定义该集合的属性和/或成员的其他定义。例如,组可以是具有相同地理位置的一组主体。该组主体的定义可以包括组的成员、位置以及与该组相关联的其他数据和/或元数据。如本文中所使用,主体是与由计算资源服务提供商管理的身份相对应的实体,其中计算资源服务提供商管理身份的许可并且其中实体可以包括本身可以具有身份的一个或多个子实体。
主体402可以经由一个或多个连接(例如,传输控制协议(TCP)连接)与计算资源服务提供商406进行通信。主体402可以使用计算机系统客户端装置来连接到计算资源服务提供商406。客户端装置可以包括能够经由网络与计算机系统连接的任何装置,诸如下文讨论的实例装置。网络404可以包括例如因特网或另一网络或下文讨论的网络的组合。
计算资源服务提供商406通过服务408可以提供对一个或多个计算资源的访问,所述一个或多个计算资源诸如虚拟机(VM)实例、自动伸缩组、基于文件的数据库存储系统、块存储服务、冗余数据存储服务、数据归档服务、数据仓储服务、用户访问管理服务、身份管理服务、内容管理服务和/或其他这类计算机系统服务。其他实例资源包括但不限于用户资源、策略资源、网络资源和/或存储资源。在一些实例中,与计算机服务相关联的资源可以是物理装置、虚拟装置、物理装置和/或虚拟装置的组合,或其他这类装置实施方案。
访问服务408的请求可以由服务前端410接收,服务前端410在一些示例中包括被配置为接收这类请求并根据与服务408相关联的一个或多个策略来处理所述请求的网络服务器。访问服务408的请求可以是数字签名的请求,并且因此可以具备数字签名。在一些实施方案中,网络服务器采用本文中与处理请求同步地描述的技术。服务前端410然后可以将请求和数字签名发送给认证服务416以进行验证。认证服务416可以是独立的服务或者可以是服务提供商或其他实体的一部分。在一个实施方案中,认证服务416是被配置为执行主体的认证所涉及的操作的计算机系统。
在成功认证请求后,认证服务416然后可以获得适用于请求的策略。策略可以借助与主体402、作为履行请求的一部分而被访问的资源、主体402是其中成员的组、主体402承担的角色和/或其他相关联来适用于请求。为了获得适用于请求的策略,认证服务416可以传输对由策略管理服务420管理的策略存储库418的查询。对策略存储库418的查询可以是包括足以确定适用于请求的策略集合的信息的请求。对策略存储库的查询可以例如包含请求的副本和/或包含至少部分地基于请求中的信息,诸如识别主体、资源和/或动作(将作为履行请求的一部分而执行的操作)的信息的参数。
策略管理服务420可以提供对适用于访问计算资源的请求(例如,网络服务应用编程接口请求)的策略的访问和管理。例如,策略管理服务可以接收足以选择适用于待决请求的策略的信息。在一些实施方案中,所述信息可以是请求的副本,或者可以是至少部分基于请求而生成的信息。例如,诸如服务前端410的服务可以接收访问资源的请求,并且可以至少部分地基于请求指定的信息来生成对策略管理服务的查询。
在已获得适用于请求的任何策略的情况下,认证服务416可以将认证响应以及所获得的策略(如果适用的话)提供回服务前端410。认证响应可以指示是否成功认证响应。然后,服务前端410可以使用授权模块412来检查访问服务408的请求的履行是否将符合所获得的策略。注意,在一些实施方案中,可以配置策略,使得请求的履行是否违反策略取决于违反唯一性约束是否已经发生。例如,一些数据可以被认为不如其他数据敏感,并且尽管检测到违反唯一性约束,但是可以履行对不太敏感的数据的请求,而访问较敏感的数据可能需要未发生唯一性约束违反结合指定用于认证请求的公共关键字。可以将类似的技术用于其他类型的计算资源,诸如计算装置、存储位置、数据的集合、身份、策略等。
授权模块412可以是在服务前端上执行的进程,所述进程可操作以对策略中的一个或多个许可的请求进行比较来确定服务是否可以满足请求(即,是否授权请求的履行)。例如,授权模块可以将与请求相关联的API调用与策略指定的准许的API调用进行比较,以确定是否允许所述请求。如果授权模块412不能与对由策略指定的许可的请求相匹配,则授权模块412可以执行一个或多个默认动作,诸如向服务前端提供致使服务前端拒绝请求的消息,以及致使在策略管理服务420中记录拒绝的请求。如果授权与对由策略指定的一个或多个许可的请求相匹配,则授权模块412可以通过选择限制最小的响应(如由策略定义)以及通过基于该所选择的响应来告知服务前端是否授权请求的履行(即,请求的履行是否符合适用策略)来解决这种情况。授权模块412还可以通过选择限制最大的响应,或者可以选择一些其他这类响应,并基于该所选择的响应来通知服务前端是否授权了请求的履行。应注意,尽管图4将授权模块412示出为服务前端410的部件,但是在一些实施方案中,授权模块412是由计算资源服务提供商406提供的单独服务并且服务前端可以通过网络与授权模块412进行通信。
最后,如果对访问服务408的请求的履行符合适用的获得的策略,则服务前端410可以使用服务后端414来履行该请求。服务后端414可以是服务的部件,所述部件被配置为从服务前端410接收授权的请求并且被配置为履行这类请求。服务前端410可以例如向服务后端提交致使服务后端414执行履行请求所涉及的一个或多个操作的请求。在一些实例中,服务后端414将服务前端响应于来自主体402的请求而提供的数据提供回到服务前端410。在一些实施方案中,可以从服务前端410提供对主体402的响应,所述响应指示请求是被允许还是被拒绝,以及如果被允许,则指示请求的一个或多个结果。
图5示出了图500的说明性实例,其中使用命题逻辑以作为至少部分地基于策略而确定命题逻辑公式的可满足性的一部分。图500示出了实例策略502,其可以与本公开中其他地方诸如结合图1-4所描述的策略一致。图500示出了其中命题逻辑(在虚线下方示出)用于确定是否可满足策略502的方面。策略502可以包括一个或多个策略语句,所述策略语句可以是对命题逻辑的约束。在本公开中其他地方结合图4描述了实例策略语句(例如,许可语句)。
图500示出了可以部分地用于确定是否可满足策略502的命题逻辑。在图500中,命题逻辑示出了部分地用于确定策略的可满足性的约束。具体地说,图500示出了以下约束:策略允许的内容必须等效于策略未明确拒绝的并且策略的一个或多个语句中的任一者允许的内容。在一些实施方案中,命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。其他格式也可以用来描述命题逻辑,诸如CVC语言和离散数学与理论计算机科学中心(DIMACS)格式。SMT-LIB标准:版本2.5、SMT-LIB标准版本2.0、SMT-LIB标准版本1.2和SMT-LIB标准版本1.0在此以引用的方式并入。
例如,根据STM-LIB标准v2.0的实现方式可以包括如上文描述的以下形式的约束:
(assert(=policyA.allows(and(not policyA.denies)(orpolicyA.statement0.allows policyA.statement1.allowspolicyA.statement2.allows...))))
应注意,在这里和其他地方,给出了实例以说明如何根据本公开的教导实施各种实施方案的概念。例如,在上文的实例中,省略号用于说明具有两个以上许可语句的策略将具有使用OR语句连接的更多约束。应注意,在各种实施方案(诸如根据各种STM-LIB标准的实施方案)中,命题逻辑可以使用波兰表示法(即,前缀表示法)来表达。
图6示出了图600的说明性实例,其中使用命题逻辑以作为至少部分地基于策略而确定命题逻辑公式的可满足性的一部分。图600示出了实例策略602,其可以与本公开中其他地方诸如结合图1-5描述的策略一致。图600示出了其中命题逻辑(在虚线下方示出)用于确定是否可满足策略602的方面。策略602可以包括一个或多个策略语句,所述策略语句可以是对命题逻辑的约束。在本公开中其他地方结合图2描述了实例策略语句(例如,许可语句)。
图600示出了可以部分地用于至少部分地基于策略来确定命题逻辑公式的可满足性的命题逻辑。在图600中,命题逻辑示出了部分地用于确定策略的可满足性的约束。具体地说,图600示出了以下约束:策略拒绝的内容必须等效于策略的一个或多个语句中的任一者拒绝的内容。在一些实施方案中,命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。其他格式也可以用来描述命题逻辑,诸如CVC语言和离散数学与理论计算机科学中心(DIMACS)格式。
例如,根据STM-LIB标准v2.0的实现方式可以包括如上文描述的以下形式的约束:
(assert(=policyA.denies(or policyA.statement0.deniespolicyA.statement1.denies policyA.statement2.denies...)))
换句话说,以上实例提供的约束使得策略(例如,policyA)拒绝的内容等效性任何个别语句(例如,statement1、statement2、statement3等)拒绝的内容。
图7示出了图700的说明性实例,其中使用命题逻辑以作为至少部分地基于策略而确定命题逻辑公式的可满足性的一部分。图700示出了实例策略702,其可以与本公开中其他地方诸如结合图1-6描述的策略一致。图700示出了其中命题逻辑(在虚线下方示出)用于确定是否可满足策略702的方面。策略702可以包括一个或多个策略语句,所述策略语句可以是对命题逻辑的约束。在本公开中其他地方结合图2描述了实例策略语句(例如,许可语句)。
图700示出了可以部分地用于至少部分地基于策略来确定命题逻辑公式的可满足性的命题逻辑。在图700中,命题逻辑示出了部分地用于确定策略的可满足性的约束。具体地说,图700示出了以下约束:策略对于其中立的内容必须等效于策略未允许的内容和策略未拒绝的内容。在一些实施方案中,命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。其他格式也可以用来描述命题逻辑,诸如CVC语言和离散数学与理论计算机科学中心(DIMACS)格式。
例如,根据STM-LIB标准v2.0的实现方式可以包括如上文描述的以下形式的约束:
(assert(=pO.neutral(and(not pO.allows)(not pO.denies))))
换句话说,以上实例提供的约束使得策略(例如,policyA)对于其中立的内容等效于策略未允许的内容和策略未拒绝的内容。
结合关于图5-7的讨论,所描述的约束可以组合地用来定义策略(例如,policyA)的约束,可以用以下形式来描述所述约束:
类似地,可以用以下形式来描述第二策略(即,policyB)的约束:
因此,除了这些约束之外,可以利用额外约束来确定一个策略是否比另一个策略更宽松。例如,给定两个策略(例如,以上实例中的policyA和policyB),可以使用以下约束来确定第一策略(即,policyA)是否比第二策略(即,policyB)更宽松:
(assert(or pB.neutral pB.denies))
(assert pA.allows)
在各种实施方案中,可以利用策略分析器服务来确定以上策略(上述policyA和policyB)是等效的。
在一些实施方案(诸如实施默认拒绝系统的实施方案)中,授权模块拒绝对计算资源服务提供商的任何资源的访问,请求者(例如,主体)未被明确同意对所述资源的访问(例如,经由肯定地允许对资源的访问的许可语句)。
例如,根据STM-LIB标准v2.0的实现方式可以包括如上文描述的以下形式的约束:
(assert(=pO.neutral(and(not pO.allows)(not pO.denies))))
换句话说,以上实例提供的约束使得策略(例如,policyA)对于其中立的内容等效于策略未允许的内容和策略未拒绝的内容。
图8示出了图800的说明性实例,其中将元素(例如,作为策略的一部分)转换为命题逻辑。可以通过任何合适的部件,诸如结合图1讨论的命题逻辑转换器来执行转换。图800示出了将JSON元素(在虚线上方示出)转换为命题逻辑(在虚线下方示出)的实例。命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。
作为实例,允许对(例如,在许可语句中其他地方指定的)某些资源的访问的许可语句的效果元素可以表达为具有以下约束的命题逻辑:
(assert(=policy.statement.allows(and policy.action policy.resourcepolicy.principal)))
(assert(not policy.statement.denies))
换句话说,允许效果生成命题逻辑两个约束-策略语句具有允许效果并且满足动作、资源和主体约束的第一约束;以及策略语句没有拒绝效果的第二约束。动作、资源和主体约束可以与结合图8-11描述的约束一致。约束也可能有所不同,这取决于许可语句中包括什么元素。例如,如果许可语句包括条件,则约束还可以包括针对要满足的约束满足条件。在一些实施方案中,动作、资源和主体元素中的至少一者是许可语句的必需元素,使得有效策略语句必须具有动作、资源和主体元素中的至少一者。
图9示出了图900的说明性实例,其中将元素(例如,作为策略的一部分)转换为命题逻辑。可以通过任何合适的部件,诸如结合图1讨论的命题逻辑转换器来执行转换。图900示出了将JSON元素(在虚线上方示出)转换为命题逻辑(在虚线下方示出)的实例。命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。
作为实例,同意或拒绝(取决于许可语句的效果元素)对(例如,在许可语句中其他地方指定的)某些资源的访问的许可语句的动作元素可以表达为具有以下约束的命题逻辑:
(assert(=policy.action(or(and(=″storage″actionNamespace)(str.prefixof″Delete″actionName)))))
换句话说,可以将在图900中的虚线上方的动作元素转换为命题逻辑,所述命题逻辑具有当动作具有“storage”命名空间和字符串前缀为“Delete”(诸如“DeleteObject”或“DeleteAllObjects”或“DeleteContainer”等)的动作名称时满足的约束。在一些实施方案中,可以使用各种字符串评估功能以作为约束的一部分,诸如评估字符串前缀、后缀、长度、子字符串(例如,是否将某个字符串包括为第二字符串的一部分)等等。对字符串的比较还可以包括额外的比较参数,诸如不区分大小写的比较、忽略符号和标点、忽略变音符号、忽略平假名和片假名字符之间的差异,等等。效果、动作、资源和主体约束可以与结合图8-11描述的约束一致。约束也可能有所不同,这取决于许可语句中包括什么元素。例如,如果许可语句包括条件,则约束还可以包括针对要满足的约束满足条件。在一些实施方案中,效果、动作、资源和主体元素中的至少一者是许可语句的必需元素,使得有效策略语句必须具有效果、动作、资源和主体元素中的至少一者。
图10示出了图1000的说明性实例,其中将元素(例如,作为策略的一部分)转换为命题逻辑。可以通过任何合适的部件,诸如结合图1讨论的命题逻辑转换器来执行转换。图1000示出了将JSON元素(在虚线上方示出)转换为命题逻辑(在虚线下方示出)的实例。命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。
作为实例,同意或拒绝(取决于许可语句的效果元素)对资源的访问的许可语句的资源元素可以表达为具有以下约束的命题逻辑:
(assert(=policy.resource(or(and(=″storage″resourceService)(=″″resourceAccount)(str.prefixof″foo/″resourceResource))(and(=″storage″resourceService)(=″user″resourceAccount)(str.prefixof″bar/″resourceResource)))))
换句话说,可以将在图900中的虚线上方的资源元素转换为命题逻辑,所述命题逻辑具有当资源具有“storage”服务命名空间、空白资源账户并且资源以“foo/”开始,或者在一些实施方案中资源具有“storage”服务命名空间、“user”帐户并且资源以“bar/”开始时满足的约束。效果、动作、资源和主体约束可以与结合图8-11描述的约束一致。约束也可能有所不同,这取决于许可语句中包括什么元素。例如,如果许可语句包括条件,则约束还可以包括针对要满足的约束满足条件。在一些实施方案中,效果、动作、资源和主体元素中的至少一者是许可语句的必需元素,使得有效策略语句必须具有效果、动作、资源和主体元素中的至少一者。
图11示出了图1100的说明性实例,其中将元素(例如,作为策略的一部分)转换为命题逻辑。可以通过任何合适的部件,诸如结合图11讨论的命题逻辑转换器来执行转换。图1100示出了将JSON元素(在虚线上方示出)转换为命题逻辑(在虚线下方示出)的实例。命题逻辑可以根据可以符合一个或多个SMT-LIB标准的SMT语言来表达。
作为实例,允许对(例如,在许可语句中其他地方指定的)某些资源的访问的许可语句的效果元素可以表达为具有以下约束的命题逻辑:
(assert(=policy.condition(=>SourceVpce_exists|(=″baz″SourceVpce))))
换句话说,可以将图1100中的虚线上方的资源元素转换为命题逻辑,所述命题逻辑具有当“sourceVpce”条件关键字(例如,指定源虚拟PC实例的名称的字段)存在于资源中并且在该资源上的值为“baz”时满足的约束。在一些实施方案中,蕴涵运算符可以用作约束的一部分。在一些实施方案中,蕴涵可以由诸如图1100中示出的“=>”的运算符来表示,并且可以包括当且仅当前提条件为真时才被评估的谓词。例如,考虑虚线上方示出的表达式,该表达式部分为:
StringEqualsIfExists”:{″sourceVpce″:″baz″}
可以将该表达式转换为命题逻辑约束,使得并且仅当前提条件为真时,才对谓词进行评估。在图1100中,前提条件可以是“sourceVpce”条件关键字存在,而谓词可以是“sourceVpce”条件关键字的值等于字符串“baz”,如在图1100中的虚线下方所描述。例如,考虑结合图11描述的条件包括在适用于结合图10描述的资源的许可语句中的情况。在这种情况下,在“foo/”和“bar/”中可能存在具有“sourceVpce”条件关键字的一些资源和/或资源类型,以及没有所述条件关键字的其他资源和/或资源类型。在资源或资源类型没有“sourceVpce”条件关键字的情况下,不对谓词进行评估(或可以在语义上将谓词视为满足谓词一样)。在一些实施方案中,如果资源不存在“sourceVpce”字段,则不为该资源评估条件。效果、动作、资源和主体约束可以与结合图8-11描述的约束一致。约束也可能有所不同,这取决于许可语句中包括什么元素。例如,如果许可语句包括条件,则约束还可以包括针对要满足的约束满足条件。在一些实施方案中,效果、动作、资源和主体元素中的至少一者是许可语句的必需元素,使得有效策略语句必须具有效果、动作、资源和主体元素中的至少一者。
图12示出了用于确定两个或更多个安全策略的等效性的过程1200的说明性实例。通常,过程1200可以由任何合适的系统,诸如本公开中其他地方描述的策略分析器服务,诸如结合图1描述的策略分析器服务来执行。可以使用硬件、软件或其组合来实施所述过程。在一个实施方案中,过程1200包括接收1202指定第一安全策略和第二安全策略的信息。在一些实施方案中,系统接收信息以作为接口(诸如网络API请求)的一部分。在一些实施方案中,安全策略分别对安全许可集合进行编码,所述安全许可集合可以用诸如JSON的独立于语言的格式来表达。安全许可可以与在其他地方诸如结合图2讨论的安全许可一致。在一些实施方案中,指定任一或两个策略的信息可以被直接指定(例如,编码为请求的数据有效载荷的一部分)或间接指定(例如,对策略的引用由系统接收,使得该引用可以用于诸如从策略管理服务获得策略)。
系统可以至少部分地基于第一安全策略来确定1204第一命题逻辑表达式。此外,可以基于与第一安全策略相关联的第一安全许可集合来进行确定。可以根据本公开中其他地方描述的各种实施方案来进行确定。例如,系统可以使用解析器以使用解析来从第一安全策略获得第一安全许可集合,并且可以诸如用上文结合图1-11描述的方式将第一安全许可集合转换为命题逻辑中的约束集合。在一些实施方案中,系统将用JSON表达的安全策略转换为根据SMT-LIB标准(诸如SMT-LIB 2.0标准)描述的命题逻辑表达式(例如,包括一个或多个约束)。
系统可以用与上文结合确定1204第一命题逻辑表达式所描述的相同或基本上相似的方式来确定1206第二命题逻辑表达式。然而,在一些实施方案中,步骤可以不同。例如,在一些情况下,系统可以直接在请求中接收第一安全策略(例如,对策略进行编码的数据可以包括在请求中),而第二安全策略间接在请求中引用(例如,请求是确定第一安全策略是否符合标准安全策略的请求)。在这类实施方案中,系统可以使用包括在请求中的指定第二安全策略的信息来获得第二安全策略,然后使用所获得的第二安全策略来获得第二命题逻辑表达式。可以利用诸如结合图1-11描述的那些技术。
系统可以确定1208第一命题逻辑表达式和第二命题逻辑表达式是否为等效的。如果来自第一策略和第二策略的安全许可以相同的方式应用于所有动作、资源和主体—换句话说,对于任何给定的动作、资源和主体集合,第一策略和第二策略两者都将(基于拒绝语句明确地或基于缺乏同意访问的许可隐含地)拒绝访问,或者两者都将同意访问—情况将不会是一个策略同意访问而另一个策略拒绝访问,则可以说两个策略是等效的。在确定一个策略比另一个策略更宽松的情况下,情况将为一个策略在参数集合下同意访问,而在该参数集合下另一个策略拒绝访问。
可满足性引擎可以用于分析两个或更多个命题逻辑表达式的宽松性,包括确定两个命题逻辑表达式是否为等效的。可满足性引擎可以用于验证命题逻辑约束(例如,从第一和第二命题逻辑表达式获得的约束以及由可满足性引擎生成的约束)是否为等效的。在一些实施方案中,可以至少部分地使用诸如Z3的SMT求解器来实施确定两个或更多个命题逻辑表达式是否为等效的。更一般地说,可以结合确定1208第一命题逻辑表达式和第二命题逻辑表达式是否为等效的来使用本文中描述的用于确定命题逻辑表达式的宽松性、相对宽松性和/或等效性以及命题逻辑约束的技术。
在一些实施方案中,过程1200可以包括执行一个或多个转换,使得将安全策略映射到呈SMT求解器辨识的特定格式的命题逻辑表达式。例如,如果结合确定等效性使用Z3求解器,则可以将安全策略映射到符合SMT-LIB标准语言(诸如STM-LIB 2.0标准)的格式。
如果系统确定第一命题逻辑表达式和第二命题逻辑表达式是等效的,则系统可以提供1214策略等效的指示。在一些实施方案中,可以响应于网络API请求来对指示进行编码。
然而,如果系统确定第一命题逻辑表达式和第二命题逻辑表达式不是等效的,则系统可以识别1210足以确定第一命题逻辑表达式和第二命题逻辑表达式缺乏等效性的参数集合。该参数集合可以对一个或多个资源、一个或多个主体、一个或多个动作或其某一组合进行编码。在一些实施方案中,该参数集合可以用于证明与第一命题逻辑相对应的第一安全策略和与第二命题逻辑相对应的第二安全策略不是等效的,这是因为使用参数集合评估第一安全策略的结果—换句话说,结果是同意访问还是拒绝访问—与使用同一参数集合评估第二安全策略的结果不同。换句话说,对于特定的参数集合,情况可能是第一安全策略基于那些参数同意访问,而第二安全策略基于那些相同的参数拒绝访问,或反过来也一样。在一些实施方案中,系统可以识别1210该参数集合以作为确定1208命题逻辑表达式是否等效的一部分。在一些情况下,系统可以提供1212该参数集合以作为网络API响应的一部分,作为安全策略不等效的指示。在一些实施方案中,可以不提供该参数集合,而是相反,指示(例如,返回代码)可以指示所述策略是否为等效的。例如,可以返回布尔值,使得如果安全策略是等效的则返回TRUE,并且如果不等效则返回FALSE。或者,可以返回整数值,使得如果安全策略是等效的,则返回0,如果第一安全策略比第二安全策略更宽松,则返回-1,并且如果第二安全策略比第一安全策略更宽松,则返回1。
过程1200中所示的各个步骤的顺序仅仅是说明性的,并且情况可能是第二命题逻辑表达式的确定1206可以在第一命题逻辑表达式的确定1204之前发生和/或与确定1204并行地发生。实际上,在一些实施方案中,排序甚至可以是不确定的。例如,可以将确定1204和1206移交给可以并行地运行并且可以具有不同的计算性能特性的计算实例池的单独的计算实例。
图13是其中可以实践本公开的各种实施方案的环境1300的说明性实例。在一个实施方案中,环境1300包括:客户端计算装置1302;策略管理服务1304;策略存储库1306;事件驱动平台1310;策略监视服务1312;以及策略分析器服务1314。环境1300示出了其中客户端可以应用生成对应事件1308的策略,并且事件1308又触发事件驱动平台1310以分析一个或多个策略的实例。在一些情况下,诸如在客户端计算机系统应用或试图应用不符合规则集合的安全策略的情况下,网络的管理员1316可能会被通知,也许除了其他动作(诸如拒绝履行应用不符合的策略的请求)外,还向客户端提供该策略不符合的警告,或执行额外的审核步骤。
在一些实施方案中,计算资源服务提供商(诸如结合图4描述的计算资源服务提供商)被配置为使得计算资源服务提供商的客户端可以在环境内应用安全策略。在一些实施方案中,客户端使用命令行界面以使用由策略管理服务1304支持的网络API来设置安全策略。策略管理服务1304接收应用安全策略的网络API请求,并且可以执行一个或多个授权和认证程序以作为履行请求的一部分。可以应用策略并将其存储在策略存储库1306中,在该存储库中可以检索所述策略以供以后使用。在一些实施方案中,应用策略和/或将所应用的策略存储到策略存储库1306经由日志系统生成对应的日志条目。日志系统可以用于记录整个网络上的一些或所有活动,诸如记录关于向计算资源服务提供商提出的网络API请求的信息。
可以响应于安全策略的应用或由于应用安全策略而导致的一个或多个下游动作来生成事件1308。例如,事件1308可以由网络API调用触发以应用安全策略,将策略存储在策略存储库中,记录安全策略的应用和/或将策略存储到策略存储库,或它们的某一组合。
事件驱动平台1310可以确定事件1308何时发生并且响应于事件被触发而执行自定义逻辑。可以例如在应用策略时检测到事件触发,或者可以在以后的时间点,诸如在异步进程(例如,每天运行)处理日志事件并检测到应用安全策略的情况下确定事件触发。可以使用软件、硬件或其某一组合来实施事件驱动平台1310。在一些实施方案中,分布式计算资源可以响应于事件而提供和加载自定义逻辑/代码,运行该代码,然后卸载该代码并取消提供该计算资源。事件驱动平台1310可以是计算资源服务提供商的部件,或者可以是单独的部件。
事件驱动平台1310可以使用事件驱动架构实施。当发生特定事件(诸如,应用安全策略的网络API请求)时,可以(例如,通过认证服务)通知事件驱动平台1310该事件,并且事件驱动平台可以进一步接收关于所述请求的额外信息,所述请求可以(例如,从请求所指向的策略管理服务)单独获得。事件驱动平台1310可以确定如何处置事件,所述事件可以部分地由基于关于所述请求获得的信息而选择的自定义代码或逻辑来处置—例如,自定义逻辑基于安全策略所应用的资源类型而对于安全策略可能有所不同。在一些实施方案中,事件驱动平台1310可以订阅来自认证服务的针对事件的通知消息,并且认证服务可以响应于事件驱动平台订阅以接收其通知的事件来调用回调函数(诸如λ表达式)。
事件驱动平台1310可以接收事件1308,并且在内部(例如,使用事件驱动的平台的部件)或在外部(例如,通过委托给另一服务)确定如何处置事件。作为实例,事件驱动平台可以包括关于以下的规则:应基于正在应用的特定类型的安全策略或与正在应用的安全策略相关联的其他元数据来调用自定义逻辑列表中的哪些自定义逻辑。可能存在安全策略类型到自定义逻辑的映射。例如,可以基于应用于具有第一服务命名空间的计算资源的安全策略来调用第一自定义逻辑,并且可以基于应用于具有第二服务命名空间的计算资源的安全策略来调用第二自定义逻辑。
策略监视服务1312可以由事件驱动平台1310调用。在一些实施方案中,事件驱动平台1310调用策略监视服务1312并提供关于触发事件1308的安全策略的上下文信息,从而允许策略监视服务1312例如基于所应用的策略的各种参数来执行各种自定义逻辑。例如,计算资源服务提供商可以为各种类型的计算资源支持几种服务,并且最佳实践规则集合基于安全策略所应用的计算资源的类型而可能有所不同。策略监视服务1312可以确定针对资源类型的参考策略,并且利用策略分析器服务1314来确定所应用的策略是否比参考策略更宽松。策略分析器服务1314可以与本公开中其他地方诸如结合图1-12描述的策略分析器服务一致。
如果策略分析器服务1314指示所应用的策略比适用的参考策略更宽松,则策略监视服务1312可以执行各种缓减程序。例如,可以通知策略管理服务1304将应用安全策略的网络API请求比参考策略更宽松并指示策略管理服务1304拒绝该请求(即,拒绝履行该请求)。在一些情况下,应用安全策略的请求的履行可以取决于策略管理服务1304从策略监视服务接收到应该准许该请求的指示。可以通知请求者(例如,客户端)请求的安全策略过于宽松。在一些情况下,请求者有机会修改安全策略或应用安全策略。应用过于宽松的安全策略可能导致通知系统管理员1316,将安全策略记录到单独的系统以便稍后进行审核,以及其他各种缓解措施。当然,可以告知组织内的其他实体,诸如网络安全团队等。
图14示出了用于监视应用于系统的策略的过程1400的说明性实例。通常,过程1400可以由任何合适的系统,诸如本公开中其他地方描述的事件驱动平台,诸如结合图13描述的事件驱动平台来执行。可以使用硬件、软件或其组合来实施所述过程。在一个实施方案中,过程1400包括监视例程。作为实例,系统可以监视1402计算资源服务提供商的传入请求。可以利用监视代理来解析请求(例如,网络API调用)的传入业务并确定1404请求是否应用策略。还应注意,在这种情况下,监视1402步骤可以是主动监视过程(诸如在监视代理主动轮询日志系统以确定是否已接收到请求的情况下)或被动监视过程(诸如在服务前端在确定传入请求应用策略后调用监视代理的情况下)。
更一般来说,可以利用监视代理来跟踪传入的请求本身或由请求引起的下游效果。例如,在一些情况下,在服务前端处解析对计算资源服务提供商的网络API请求,并将所述网络API请求分布在计算资源服务提供商的多个服务中。在一些情况下,监视代理可以检测何时将请求转发到策略管理服务,并解析那些请求以确定请求是否应用策略。作为另一实例,当接收到请求时,可以将一些或所有请求记录在日志系统中。日志系统可以记录关于请求的信息,诸如调用的特定网络API、API调用的参数等等。监视代理可以读取由请求生成的日志来确定请求何时应用策略。这类系统可以在记录请求的同时执行,或在以后的时间点执行—例如,监视代理可以每天审核一次日志,以检查是否存在任何可能违反对系统施加的规则的策略。
如果系统确定请求没有应用策略,则系统可以继续监视请求。替代地,如果系统确定请求应用安全策略,则系统可以至少部分地基于安全策略的一个或多个安全许可来选择1406策略验证例程。例如,可以基于安全许可的主体元素从策略验证例程的列表中选择策略验证例程—与来宾或匿名用户相关联的策略验证例程可以限制来宾或匿名用户可以接收的最宽松的权限集合。作为第二实例,可以基于编码在安全许可的资源元素中的服务命名空间来选择策略验证例程—如在服务命名空间中指定的特定资源类型的最宽松的权限集合可能因服务而异。
一旦已选择策略验证例程,便可以调用策略验证例程。事件驱动平台可以执行与选择策略验证例程并调用所选择的策略验证例程有关的步骤中的至少一些。可以结合所选择的策略验证例程来获得1408一个或多个基线策略。系统可能具有多个基线策略,并且对一个或多个基线策略的选择可以基于策略验证例程以及触发该策略验证例程被调用的安全策略附带的许可。
可以将通过策略验证例程获得的一个或多个基线策略与在请求中应用的安全策略进行比较1410。可以基于各种因素(诸如,应用策略的网络API请求的输入参数)来选择参考策略。基线策略可以是确定为不应被允许的许可集合的最佳实践策略。例如,基线实践策略可以是存储服务的资源不应是全域可写入(例如,任何主体,甚至来宾用户或匿名用户都可以对容器进行写入)的策略。
系统可以确定1412请求所应用的策略是否比参考策略更宽松。策略分析器服务(诸如结合图1-4描述的策略分析器服务)可以用于将请求中应用的安全策略与参考策略进行比较。更一般地说,诸如基于SMT的约束求解器(例如,Z3)的约束求解器可以用于确定在请求中应用的安全策略是比参考策略更宽松还是与参考策略一样宽松。
在一些实施方案中,可以使用模糊器来执行确定请求所应用的策略是否比参考策略更宽松。模糊器可以是包括可执行代码的软件模块,所述可执行代码可配置为通过确定对接口的输入集合并验证输出与期望值相匹配来测试软件部件。例如,模糊器可以用于通过从查找表中选择输入集合并执行运算(例如,除法)集合来测试处理器的算术运算,并基于输出查找表来验证结果是正确的。模糊器可以选择参数(例如,主体、动作和计算资源)集合,并确定在请求的安全策略和参考策略下是否将履行与该参数集合相对应的请求。如果一个策略将履行请求,而另一个将拒绝请求,则可以确定两个策略的相对宽松性(例如,一个策略比另一个策略更宽松,两个策略不可比,等等)。在一些实施方案中,模糊器可以具有其测试的参数的预定列表。在一些实施方案中,模糊器可以随机选择参数集合。
如果系统确定请求的安全策略不如参考策略宽松,则可以指示这类信息。在一些实施方案中,当策略管理服务接收到设置安全策略的请求时,可以用上述方式分析请求的安全策略,以确定安全策略是否符合适用的基线策略。在一些情况下,请求的履行(例如,将安全策略应用于策略数据库)取决于接收到正在请求中应用的安全策略符合任何和所有适用的策略验证例程的指示。因此,当接收到应用安全策略的请求时,策略管理服务可以在履行请求之前等待来自策略验证例程的响应,并且策略验证例程可以提供应该履行请求的指示1416。但是,情况无需如此—在一些情况下,策略管理服务设置安全策略,而无需等待来自策略验证例程的指示。
或者,如果系统确定请求的安全策略比参考策略更宽松,则可以指示1414这类信息。在一些实施方案中,客户端可以使用GUI来提交应用安全策略的请求。响应于检测到请求的安全策略比参考策略更宽松,可以将失败代码返回给客户端,该失败代码可以例如作为弹出窗口在GUI中呈现。如果客户端使用命令行界面,则失败代码可以作为文本按行呈现。
在一些实施方案中,系统还可以提供足以确定请求的安全策略和参考策略缺乏等效性的参数集合。策略分析器服务,诸如结合图1-4所描述的策略分析器服务并利用本公开中其他地方诸如结合图12描述的技术。
如果请求的安全策略和参考策略是等效的,则系统可以执行各种合适的动作。在一些实施方案中,其可以用与系统确定安全策略比参考策略更宽松的方式相同的方式来处理。替代地,其可以用与系统确定安全策略不如参考策略宽松的方式相同的方式来处理。当安全策略是等效的时,系统如何处置情况可以是可配置的设置。
在一些实施方案中,可能存在安全策略与之进行比较的多个基线策略。在这种情况下,可以将请求所应用的安全策略与每个参考策略单独地进行比较。这些比较可以按顺序进行,也可以彼此并行地进行。
图15示出了图1500,其示出了可以根据本公开的实施方案实施的图形用户界面(GUI)。在一些实例中,GUI可以经由客户端计算装置实施并呈现给用户,诸如客户端(例如,其他地方诸如结合图1-4描述的客户端)。GUI可以作为网页的一部分、应用等来呈现。
在图1500中示出了第一图形用户界面1502。第一图形用户界面1502可以包括:第一输入区域1504;第二输入区域1506;按钮1508;以及结果的视觉指示1510。第一输入区域1504可以是GUI的客户端可以输入策略的区域。例如,第一输入区域1504可以是文本框,客户端可以在其中输入策略,诸如本公开中其他地方描述的策略。客户端可以用几种方式输入策略,诸如通过(例如,使用触摸屏键盘或物理键盘)在文本框中键入策略,通过粘贴剪贴板中的策略等等。GUI还可以包括可以支持用于第二策略的输入机构的第二输入区域1506,所述第二策略可以与输入到第一输入区域1504中的策略不同。GUI还可以包括按钮1508,所述按钮在被按下后可以用于分析包括在输入区域1504和1506中的策略的宽松性。例如,按下呈现给客户端计算装置的GUI上的“提交”按钮1508可以将网络API请求提交给策略分析器服务(例如,结合图1-4描述的策略分析器服务)以将第一输入区域1504中包括的第一策略与第二输入区域1506中包括的第二策略的宽松性进行比较。计算资源服务提供商、策略分析器服务或本公开中其他地方描述的其他合适的系统可以用来履行请求。可以在GUI的视觉指示1510区域以及其他区域中呈现对网络API请求的响应。例如,图15中所示的GUI1502可以呈现两个策略通过两个等号“==”等效的视觉指示1510,并且还可以在GUI中的其他地方包括进一步解释策略等效的文本。在一些实施方案中,GUI可以呈现关于两个策略的等效性的额外信息。在一些情况下,当两个策略缺乏等效性时,GUI可以呈现可以提供两个策略缺乏等效性的实例的参数集合。例如,该参数集合可以包括主体、动作并且可以列出计算资源,使得将第一安全策略应用于该参数集合导致第一效果(例如,同意访问),而将第二安全策略应用于同一参数集合导致不同的效果(例如,拒绝访问)。
在图1500中示出了第二图形用户界面1512。第二图形用户界面1512可以包括:输入区域1514;下拉列表1516;可以用于扩展下拉列表的下拉箭头1518;按钮1520;以及结果的视觉指示1522。可以使用上文结合第一图形用户界面1502描述的技术来实施第二图形用户界面。在一些实施方案中,输入区域1514可以与本公开中其他地方描述的输入区域一致。下拉列表1516可以是描述一个或多个预定义策略(诸如上述参考策略)的项目的列表。下拉列表的项目可以包括对各种预定义策略(诸如参考策略)的描述,并且那些描述可以映射到相应的基础策略(诸如呈JSON格式的策略)。在一些实施方案中,可以通过按下下拉箭头1518来扩展下拉列表1516以显示列表的多个策略。如其他地方所描述的,按钮1520可以用于提交网络API请求以对两个策略进行比较。例如,当客户端按下第二图形用户界面1512中所示的“提交”按钮1520时,系统可以提交网络API请求以将输入区域1514中包括的策略与从将下拉列表项目映射到其对应策略的映射获得的第二策略进行比较。作为第二实例,当客户端按下按钮1520时,系统可以提交网络API请求,所述网络API请求包括输入1514和与诸如参考策略的预定义策略相对应的识别符,并且接收所述请求的服务可以执行识别符到对应策略的映射。计算资源服务提供商、策略分析器服务或本公开中其他地方描述的其他合适的系统可以用来履行请求。可以在GUI的视觉指示1522区域以及其他区域中呈现对网络API请求的响应。例如,图15中所示的GUI 1512可以呈现输入区域的策略与下拉列表的策略通过两个等号“==”等效的视觉指示1522,并且还可以在GUI中的其他地方包括进一步解释策略等效的文本。在一些实施方案中,GUI可以呈现关于两个策略的等效性的额外信息。在一些情况下,当输入区域的策略与下拉列表的策略缺乏等效性时,GUI可以呈现可以提供两个策略缺乏等效性的实例的参数集合。例如,该参数集合可以包括主体、动作并且可以列出计算资源,使得将输入区域1514的安全策略应用于该参数集合导致第一效果(例如,同意访问),而将对应于所选择的下拉项目的安全策略应用于同一参数集合导致不同的效果(例如,拒绝访问)。
图16示出了用于实施根据各种实施方案的方面的实例环境1600的方面。应了解,尽管出于解释的目的而使用了基于网络的环境,但是在适当的情况下可以使用不同的环境来实施各种实施方案。环境包括电子客户端装置1602,所述电子客户端装置可以包括可操作以通过适当的网络1604发送和/或接收请求、消息或信息并且在一些实施方案中将信息传送回装置的用户的任何适当的装置。这类客户端装置的实例包括个人计算机、手机、手持式消息传递装置、膝上型计算机、平板计算机、机顶盒、个人数据助理、嵌入式计算机系统、电子书阅读器以及类似者。网络可以包括任何适当的网络,包括内联网、因特网、蜂窝网络、局域网、卫星网络或任何其他这类网络和/或上述网络的组合。用于这类系统的部件可以至少部分地取决于所选择的网络和/或环境的类型。用于经由这类网络进行通信的许多协议和部件是众所周知的,并且本文中将不再进行详细讨论。通过网络的通信可以通过有线或无线连接以及其组合来实现。在该实例中,网络包括因特网和/或其他可公开寻址的通信网络,因为环境包括用于接收请求并响应于所述请求而提供内容的网络服务器1606,但对于其他网络,可以使用用于类似目的的替代装置,如对于本领域技术人员将显而易见的。
说明性环境包括至少一个应用服务器1608和数据存储装置1610。应理解,可以存在可以被链接或以其他方式配置的若干应用服务器、层或其他元件、进程或部件,其可以交互以执行诸如从适当的数据存储装置获得数据的任务。如本文中所使用的服务器可以用各种方式(诸如硬件装置或虚拟计算机系统)来实施。在一些情况下,服务器可以指正在计算机系统上执行的编程模块。如本文中所使用,除非另有说明或从上下文中清楚,否则术语“数据存储装置”是指能够存储、访问并检索数据的任何装置或装置的组合,所述装置或装置的组合可以包括在任何标准、分布式、虚拟或群集环境中的数据服务器、数据库、数据存储装置以及数据存储介质的任何组合和任何数量的所述数据服务器、数据库、数据存储装置以及数据存储介质。应用服务器可以包括任何适当的硬件、软件和固件,所述硬件、软件和固件用于按需要与数据存储装置集成以执行客户端装置的一个或多个应用的方面,处置应用的数据访问和业务逻辑中的一些或全部。应用服务器可以与数据存储装置协作地提供访问控制服务,并且能够生成包括但不限于以下各项的内容:文本、图形、音频、视频和/或可用于提供给用户的其他内容,所述内容可以由网络服务器以超文本标记语言(“HTML”)、可扩展标记语言(“XML”)、JavaScript、级联样式表(“CSS”)、JavaScript对象表示法(JSON)和/或另一适当的客户端侧结构化语言的形式提供给用户。传送到客户端装置的内容可以由客户端装置处理,以便以一种或多种形式提供内容,所述一种或多种形式包括但不限于用户可通过听觉、视觉和/或通过其他感觉感知到的形式。在该实例中,对所有请求和响应的处置以及在客户端装置1602与应用服务器1608之间的内容递送可以由网络服务器使用PHP:超文本预处理器(“PHP”)、Python、Ruby、Perl、Java、HTML、XML、JSON和/或另一种适当的服务器侧结构化语言来处置。此外,除非另外从上下文中清楚,否则在本文中被描述为由单个装置执行的操作可以由可能形成分布式和/或虚拟系统的多个装置共同执行。
数据存储装置1610可以包括用于存储与本公开的特定方面相关的数据的若干单独的数据表、数据库、数据文档、动态数据存储方案和/或其他数据存储机构和介质。例如,所示数据存储装置可以包括用于存储产生数据1612和用户信息1616的机构,产生数据1612和用户信息1616可以用于向产生侧提供内容。数据存储装置还被示出为包括用于存储日志数据1614的机构,日志数据1614可以用于报告、分析或其他这类目的。应理解,可能存在可能需要存储在数据存储装置中的许多其他方面,诸如页面图像信息和访问权信息,其可以在适当时存储在上文列出的机构中的任一者中或数据存储装置1610中的额外机构中。数据存储装置1610可通过与其相关联的逻辑操作,以从应用服务器1608接收指令,并响应于所述指令而获得、更新或以其他方式处理数据。应用服务器1608可以响应于接收到的指令而提供静态数据、动态数据或静态与动态数据的组合。动态数据,诸如在网络日志(博客)、购物应用、新闻服务以及其他这类应用中使用的数据可以由如本文中描述的服务器侧结构化语言生成或者可以由在应用服务器上操作或在应用服务器的控制下操作的内容管理系统(“CMS”)提供。在一个实例中,用户可以通过由用户操作的装置来提交针对某一类型的项目的搜索请求。在这种情况下,数据存储装置可以访问用户信息来验证用户的身份,并且可以访问目录详细信息以获得关于该类型的项目的信息。然后可以将信息返回给用户,诸如在用户能够经由用户装置1602上的浏览器查看的网页上列出的结果中。可以在专用浏览器页面或窗口中查看感兴趣的特定项目的信息。然而,应注意,本公开的实施方案不一定限于网页的环境,而是大体上可以更普遍地适用于处理请求,其中请求不一定是对内容的请求。
每个服务器通常将包括提供用于该服务器的一般管理和操作的可执行程序指令的操作系统,并且通常将包括存储指令的计算机可读存储介质(例如,硬盘、随机存取存储器、只读存储器等),所述指令在由服务器的处理器执行时(即,由于被服务器的处理器执行而)允许服务器执行其预期功能。
在一个实施方案中,环境是利用若干计算机系统和部件的分布式和/或虚拟计算环境,所述计算机系统和部件使用一个或多个计算机网络或直接连接经由通信链路进行互连。然而,本领域技术人员应了解,这类系统在具有比图16中所示的更少或更多数量的部件的系统中同样可以很好地操作。因此,对图16中的系统1600的描述应被认为本质上是说明性的而不限制本公开的范围。
可以鉴于以下条款来描述本公开的实施方案:
1.一种计算机实施的方法,所述计算机实施的方法包括:
经由接口接收指定以下各项的信息:
对第一安全许可集合进行编码的第一安全策略;以及
对第二安全许可集合进行编码的第二安全策略;
至少部分地基于所述第一安全许可集合而确定第一命题逻辑表达式;
至少部分地基于所述第二安全许可集合而确定第二命题逻辑表达式;
识别足以确定第一命题逻辑和第二命题逻辑缺乏等效性的参数集合,使得将所述第一安全策略应用于所述参数集合导致拒绝对与所述参数集合相关联的计算资源的访问,并且将所述第二安全策略应用于所述参数集合导致同意对所述计算资源的访问;以及
经由所述接口提供:
所述第一安全策略和所述第二安全策略缺乏等效性的指示;以及
所述参数集合。
2.条款1的计算机实施的方法,其中确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性包括利用可满足性模理论(SMT)求解器来确定是否可满足至少部分从所述第一命题逻辑和所述第二命题逻辑生成的约束。
3.条款2的计算机实施的方法,其中至少部分从所述第一命题逻辑和所述第二命题逻辑生成的所述约束符合SMT-LIB标准。
4.条款1-3中任一项的计算机实施的方法,其中所述第一安全策略和所述第二安全策略缺乏等效性的所述指示包括所述第一安全策略是否比所述第二安全策略更宽松的指示。
5.一种系统,所述系统包括:
一个或多个处理器;以及
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令如果被执行则致使所述系统:
至少部分地基于第一安全许可集合来确定第一命题逻辑;
至少部分地基于第二安全许可集合来确定第二命题逻辑;以及
使用所述第一命题逻辑和所述第二命题逻辑确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性;以及
提供所述第一安全许可集合和所述第二安全许可集合缺乏等效性的指示。
6.条款5的系统,其中确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性的所述计算机可执行指令还包括如果被执行则致使所述系统利用可满足性模理论(SMT)求解器来确定是否可满足至少部分从所述第一命题逻辑和所述第二命题逻辑生成的约束的计算机可执行指令。
7.条款5或6的系统,其中所述第一安全许可集合包括在第一策略中,并且所述第二安全许可集合包括在第二策略中。
8.条款6的系统,其中至少部分从所述第一命题逻辑和所述第二命题逻辑生成的所述约束符合CVC格式或DIMACS格式。
9.条款5-8中任一项的系统,其中确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性的所述计算机可执行指令还包括如果被执行则致使所述系统执行以下操作的计算机可执行指令:
生成对应于所述第一安全许可集合的访问同意的第一约束集合;以及
生成对应于所述第一安全许可集合的访问拒绝的第二约束集合。
10.条款9的系统,其中确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性的所述计算机可执行指令还包括如果被执行则致使所述系统生成第三约束集合的计算机可执行指令,所述第三约束集合对应于所述第一安全许可集合的访问中立约束。
11.条款5-10中任一项的系统,其中所述第二安全许可集合是由用户从预定的多个安全许可集合中选择所述第二安全许可集合而获得的。
12.条款5-11中任一项的系统,其中确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性的所述计算机可执行指令还包括如果被执行则致使所述系统确定所述第一命题逻辑和所述第二命题逻辑不可比的计算机可执行指令。
13.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令由于被计算机系统的一个或多个处理器执行而致使所述计算机系统至少:
识别是否存在与第一安全许可集合或第二安全许可集合相关联的足以确定从所述第一安全许可集合确定的第一命题逻辑和从所述第二安全许可集合确定的第二命题逻辑缺乏等效性的安全许可;以及
提供所述第一安全许可集合和所述第二安全许可集合缺乏等效性的指示。
14.条款13的非暂时性计算机可读存储介质,其中由于被执行而致使所述计算机系统识别是否存在所述安全许可的所述可执行指令还包括使用可满足性模理论(SMT)求解器的可执行指令。
15.条款13或14的非暂时性计算机可读存储介质,其中由于被执行而致使所述计算机系统识别是否存在足以确定所述第一命题逻辑和所述第二命题逻辑是否缺乏等效性的所述安全许可的所述可执行指令还包括使用可满足性(SAT)求解器的可执行指令。
16.条款15的非暂时性计算机可读存储介质,其中所述SAT求解器是(二元决策图)BDD SAT求解器。
17.条款13-16中任一项的非暂时性计算机可读存储介质,其中所述第一安全许可集合至少识别:
主体;
动作;
计算资源;以及
同意效果或拒绝效果。
18.条款17的非暂时性计算机可读存储介质,其中所述第一安全许可集合还识别至少一个条件谓词。
19.条款13-18中任一项的非暂时性计算机可读存储介质,其中所述第一安全许可集合和所述第二安全许可集合中的至少一者是从包括多个应用的安全策略的策略存储库中获得的,所述应用的安全策略包括安全许可集合。
20.条款13-19中任一项的非暂时性计算机可读存储介质,其中所述可执行指令由于被计算机系统的一个或多个处理器执行还致使所述计算机系统至少:
识别足以确定所述第一命题逻辑和所述第二命题逻辑缺乏等效性的所述安全许可;以及
作为对确定所述第一命题逻辑和所述第二命题逻辑的等效性的请求的响应的一部分,提供所述所识别的安全许可。
21.一种计算机实施的方法,所述计算机实施的方法包括:
访问来自应用编程接口调用的日志的记录,其中所述记录对应于所述应用编程接口调用中的应用编程接口调用;
至少部分地基于所述记录,确定所述应用编程接口调用应用第一策略,所述第一策略可用于同意或拒绝对一个或多个计算资源的访问;
调用策略验证例程,其中所述策略验证例程包括:
至少部分地基于所述第一策略而从多个安全策略中选择参考策略;
至少部分地基于与所述第一策略相关联的第一安全许可集合而确定第一命题逻辑表达式;
至少部分地基于与所述参考策略相关联的第二安全许可集合而确定第二命题逻辑表达式;以及
确定所述第一命题逻辑表达式是否比所述第二命题逻辑表达式更宽松;以及
响应于确定所述第一命题逻辑表达式比所述第二命题逻辑表达式更宽松,执行修改或撤消所述第一策略的缓解例程。
22.条款21的计算机实施的方法,其中利用可满足性模理论(SMT)求解器以作为确定所述第一命题逻辑表达式是否比所述第二命题逻辑表达式更宽松的一部分。
23.条款21或22的计算机实施的方法,其中所述缓解例程包括拒绝对所述第一策略使得能够访问的至少一个计算资源的访问。
24.条款21-23中任一项的计算机实施的方法,其中确定所述第一命题逻辑表达式比所述第二命题逻辑表达式更宽松包括识别参数集合,其中:
所述参数集合识别主体、动作和计算资源;
将所述第一策略应用于所述参数集合致使对所述计算资源的访问被同意;以及
将所述参考策略应用于所述参数集合致使对所述计算资源的访问被拒绝。
25.一种系统,所述系统包括:
一个或多个处理器;以及
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令如果被执行则致使所述系统:
至少部分地基于多个接收到的应用编程接口调用,确定所述多个应用编程接口调用中的应用编程接口调用应用第一策略,所述第一策略可用于同意或拒绝对一个或多个计算资源的访问;以及
调用策略验证例程,其中致使所述系统调用所述策略验证例程的所述指令如果被执行则致使所述系统:
从多个预定义安全策略中选择参考策略;
至少部分地基于所述第一策略到包括命题逻辑的第一表达式的第一映射以及所述参考策略到包括命题逻辑的第二表达式的第二映射而确定约束集合;
至少部分地基于是否可满足所述约束集合而确定所述第一策略是否比所述参考策略更宽松;以及
至少部分地基于已确定所述第一策略是否比所述参考策略更宽松而传输信息。
26.条款25的系统,其中所述第一表达式还包括一阶逻辑。
27.条款25或26的系统,其中致使所述系统确定所述第一策略是否比所述参考策略更宽松的所述指令如果被执行则致使所述系统使用可满足性模理论(SMT)求解器来评估是否可满足所述约束集合。
28.条款27的系统,其中Z3求解器是所述SMT求解器。
29.条款25-28中任一项的系统,其中所述计算机可执行指令如果被执行则还致使所述系统:
拒绝对所述第一策略使得能够访问的所有计算资源的访问;以及
向与应用所述第一策略的所述应用编程接口调用相关联的实体提供所述第一策略比第二策略更宽松的指示。
30.条款25-29中任一项的系统,其中所述策略验证例程还包括提供参数集合的指示,其中:
所述参数集合包括:
主体;
动作;
计算资源;以及
同意效果或拒绝效果;
将所述第一策略应用于所述参数集合同意对所述计算资源的访问;并且
将所述参考策略应用于所述参数集合拒绝对所述计算资源的访问。
31.条款30的系统,其中所述参数集合还包括定义对应策略是否生效的至少一个条件谓词。
32.条款25-31中任一项的系统,其中所述参考策略是至少部分基于服务命名空间而选择的,所述服务命名空间与编码在所述应用编程接口调用中的计算资源相关联。
33.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令由于被计算机系统的一个或多个处理器执行而致使所述计算机系统至少:
监视多个请求,所述多个请求中的至少一些请求应用同意或拒绝对计算资源服务提供商的计算资源的访问的安全策略;
识别所述多个请求中的应用第一策略的请求;以及
调用策略验证例程,其中所述策略验证例程致使所述计算机系统至少:
至少部分地基于所述第一策略到包括命题逻辑的第一表达式的第一映射以及参考策略到包括命题逻辑的第二表达式的第二映射而确定约束集合;
通过评估是否可满足所述约束集合来确定所述第一策略是否比所述参考策略更宽松;以及
响应于确定所述第一策略比所述参考策略更宽松,执行缓解例程。
34.条款33的非暂时性计算机可读存储介质,其中所述第二表达式包括一阶逻辑。
35.条款33或34的非暂时性计算机可读存储介质,其中确定所述第一策略是否比所述参考策略更宽松的所述可执行指令由于被执行而致使所述计算机系统使用可满足性模理论(SMT)求解器来评估是否可满足所述约束集合。
36.条款35的非暂时性计算机可读存储介质,其中所述约束以符合SMT-LIB标准的格式编码。
37.条款33-36中任一项的非暂时性计算机可读存储介质,其中所述第一策略以JavaScript对象表示法(JSON)格式编码。
38.条款33-37中任一项的非暂时性计算机可读存储介质,其中第二策略是从预定的多个安全策略中获得。
39.条款33-38中任一项的非暂时性计算机可读存储介质,其中所述可执行指令由于被所述计算机系统的所述一个或多个处理器执行还致使所述计算机系统响应于确定所述第一策略和所述参考策略是等效的而执行所述缓解例程。
40.条款33-39中任一项的非暂时性计算机可读存储介质,其中所述可执行指令由于被所述计算机系统的所述一个或多个处理器执行还致使所述计算机系统响应于确定所述第一策略和所述参考策略不可比而执行所述缓解例程。
各种实施方案还可以在广泛多种操作环境中实施,所述操作环境在一些情况下可以包括可以用于操作多个应用中的任一者的一个或多个用户计算机、计算装置或处理装置。用户或客户端装置可以包括多种计算机中的任一种,诸如运行标准操作系统的台式计算机、膝上型计算机或平板计算机,以及运行移动软件并且能够支持多种联网和消息传递协议的蜂窝式装置、无线装置和手持装置。这类系统还可以包括多个工作站,所述多个工作站运行各种市售的操作系统中的任一者以及用于诸如开发和数据库管理的目的的其他已知应用。这些装置还可以包括其他电子装置,诸如虚拟终端、瘦客户端、游戏系统以及能够经由网络进行通信的其他装置。这些装置还可以包括虚拟装置,诸如虚拟机、监管程序和能够经由网络进行通信的其他虚拟装置。
本公开的各种实施方案利用本领域技术人员将熟悉的至少一种网络来支持使用多种市售协议中的任一者进行的通信,所述协议诸如传输控制协议/因特网协议(“TCP/IP”)、用户数据报协议(“UDP”)、在开放系统互连(“OSI”)模型的各个层中操作的协议、文件传送协议(“FTP”)、通用即插即用(“UpnP”)、网络文件系统(“NFS”)、通用因特网文件系统(“CIFS”)以及AppleTalk。网络可以是例如局域网、广域网、虚拟专用网络、因特网、内联网、外联网、公共交换电话网络、红外网络、无线网络、卫星网络以及上述网络的任何组合。在一些实施方案中,面向连接的协议可以用于在网络端点之间进行通信。面向连接的协议(有时被称为基于连接的协议)能够以有序流传输数据。面向连接的协议可以是可靠的或不可靠的。例如,TCP协议是可靠的面向连接的协议。异步传送模式(“ATM”)和帧中继是不可靠的面向连接的协议。面向连接的协议与在没有保证排序的情况下传输数据包的面向数据包的协议(诸如UDP)形成对比。
在利用网络服务器的实施方案中,网络服务器可以运行各种服务器或中间层应用中的任一者,包括超文本传送协议(“HTTP”)服务器、FTP服务器、通用网关接口(“CGI”)服务器、数据服务器、Java服务器、Apache服务器以及业务应用服务器。服务器还可以能够响应于来自用户装置的请求而诸如通过执行一个或多个网络应用来执行程序或脚本,所述一个或多个网络应用可以实施为用任何编程语言(诸如,C、C#或C++)或任何脚本语言(诸如,Ruby、PHP、Perl、Python或TCL)以及其组合编写的一个或多个脚本或程序。服务器还可以包括数据库服务器,包括而不限于可从 以及购得的服务器以及开源服务器,诸如MySQL、Postgres、SQLite、MongoDB,以及能够存储、检索以及访问结构化或非结构化数据的任何其他服务器。数据库服务器可以包括基于表的服务器、基于文档的服务器、非结构化服务器、关系服务器、非关系服务器或这些和/或其他数据库服务器的组合。
环境可以包括如上所述的多种数据存储装置和其他存储器和存储介质。这些可以驻留在多种位置,诸如在计算机中的一个或多个的本地(和/或驻留在计算机中的一个或多个中)或在网络上远离任何或所有计算机的存储介质上。在特定的实施方案集合中,信息可以驻留在本领域技术人员熟悉的存储区域网络(“SAN”)中。类似地,用于执行归因于计算机、服务器或其他网络装置的功能的任何必要文件可以在适当的情况下在本地和/或远程地存储。在系统包括计算机化装置的情况下,每个这类装置可以包括可以经由总线电联接的硬件元件,所述元件包括例如至少一个中央处理单元(“CPU”或“处理器”)、至少一个输入装置(例如,鼠标、键盘、控制器、触摸屏或小键盘)和至少一个输出装置(例如,显示装置、打印机或扬声器)。这类系统还可以包括一个或多个存储装置,诸如磁盘驱动器、光学存储装置以及诸如随机存取存储器(“RAM”)或只读存储器(“ROM”)的固态存储装置,以及可移动介质装置、存储卡、闪存卡等。
这类装置还可以包括计算机可读存储介质读取器、通信装置(例如,调制解调器、网卡(无线或有线的)、红外通信装置等)以及如上文所描述的工作存储器。计算机可读存储介质读取器可以与计算机可读存储介质连接或被配置为接纳计算机可读存储介质,所述计算机可读存储介质表示远程的、本地的、固定的和/或可移动的存储装置,以及用于临时和/或更永久地容纳、存储、传输和检索计算器可读信息的存储介质。系统和各种装置通常还将包括位于至少一个工作存储器装置内的多个软件应用、模块、服务或其他元件,包括操作系统和应用程序,诸如客户端应用或网络浏览器。此外,也可以使用定制的硬件和/或可以用硬件、软件(包括可移植软件,诸如小程序)或两者来实施特定元件。此外,可以采用与诸如网络输入/输出装置的其他计算装置的连接。
用于容纳代码或代码的部分的存储介质和计算机可读介质可以包括本领域中已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于在用于存储和/或传输信息(诸如,计算机可读指令、数据结构、程序模块或其他数据)的任何方法或技术中实施的易失性和非易失性、可移动和不可移动介质,包括RAM、ROM、电可擦除可编程只读存储器(“EEPROM”)、快闪存储器或其他存储器技术、压缩光盘只读存储器(“CD-ROM”)、数字通用光盘(DVD)或其他光学存储装置、磁带盒、磁带、磁盘存储装置或其他磁性存储装置,或者可以用于存储所需信息且可以由系统装置访问的任何其他介质。基于本文中提供的公开内容和教导,本领域技术人员将了解用于实施各种实施方案的其他方式和/或方法。
因此,应以说明性意义而不是限制性意义来看待本说明书和附图。然而,将显而易见的是,在不脱离如权利要求中阐述的本发明的较宽的精神和范围的情况下,可以对其进行各种修改和改变。
其他变化在本公开的精神内。因此,尽管所公开的技术容易有各种修改和替代构造,但附图示出了其某些说明性的实施方案,并已在上文详细地进行了描述。然而应理解,无意将本发明限于所公开的具体形式,而是相反,本发明将涵盖落在如在随附权利要求中定义的本发明的精神和范围内的所有修改、替代构造和等效物。
除非本文另外指示或明确地与上下文矛盾,否则在描述所公开的实施方案的上下文中(特别是在所附权利要求书的上下文中)对术语“一个”和“一种”和“所述”以及类似指称对象的使用应被解释为涵盖单数和复数两者。除非另外指出,否则术语“包含”、“具有”、“包括”和“含有”将被解释为开放式术语(即,意味着“包括但不限于”)。在未经修改且指物理连接的情况下,术语“连接的”应被解释为部分或全部包含在内、附接到或接合在一起,即使存在某些介入物。除非本文中另外指出,否则本文中对值的范围的列举仅意图用作单独提及落在所述范围内的每个单独的值的便捷方法,并且每个单独的值并入本说明书中,如同在本文中单独列举一样。除非另外指出或与上下文矛盾,否则术语“集合”(例如,“项目集合”)或“子集”的使用应被解释为包括一个或多个成员的非空集合。此外,除非另外指出或与上下文矛盾,否则术语对应集合的“子集”不一定表示对应集合的真子集,而是子集和对应集合可以相等。
除非另有具体陈述或另外明确地与上下文矛盾,否则连接语言,诸如形式为“A、B,和C中的至少一者”或“A、B和C中的至少一者”的短语可以在通常使用的上下文中被另外理解为表示项目、项等可以是A或B或C,或者A和B和C的集合的任何非空子集。例如,在具有三个成员的集合的说明性实例中,连接短语“A、B,和C中的至少一者”和“A、B和C中的至少一者”是指以下集合中的任一者:{A}、{B}、{C}、{A,B}、{A,C}、{B,C}、{A,B,C}。因此,这类连接语言通常并不意图暗示某些实施方案需要A中的至少一者、B中的至少一者和C中的至少一者各自存在。另外,除非另外指出或与上下文矛盾,否则术语“多个”指示复数状态(例如,“多个项目”指示好几个项目)。多个项目的数量至少为两个,但当明确或通过上下文指示时可以更多。
除非本文中另外指示或另外明确地与上下文矛盾,否则本文中描述的过程的操作可以用任何合适的顺序执行。本文中描述的过程(或其变化和/或组合)可以在配置有可执行指令的一个或多个计算机系统的控制下执行,并且可以实施为通过硬件或其组合在一个或多个处理器上共同地执行的代码(例如,可执行指令、一个或多个计算机程序或者一个或多个应用)。代码可以例如以计算机程序的形式存储在计算机可读存储介质上,计算机程序包括可由一个或多个处理器执行的多个指令。计算机可读存储介质可以是非暂时性的。在一些实施方案中,代码存储在一个或多个非暂时性计算机可读存储介质的集合上,所述一个或多个非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令在由计算机系统的一个或多个处理器执行时(即,由于被计算机系统的一个或多个处理器执行而)致使计算机系统执行本文中描述的操作。非暂时性计算机可读存储介质的集合可以包括多个非暂时性计算机可读存储介质,并且多个非暂时性计算机可读存储介质中的个别非暂时性存储介质中的一个或多个可能缺乏所有代码,而多个非暂时性计算机可读存储介质共同存储所有代码。此外,在一些实例中,执行可执行指令,使得不同的指令由不同的处理器执行。作为说明性实例,非暂时性计算机可读存储介质可以存储指令。主CPU可以执行指令中的一些并且图形处理器单元可以执行指令中的其他指令。通常,计算机系统的不同部件可以具有单独的处理器,并且不同的处理器可以执行指令的不同子集。
因此,在一些实例中,计算机系统被配置为实施单独地或共同地执行本文中描述的过程的操作的一个或多个服务。这类计算机系统可以例如配置有使得能够执行操作的适用硬件和/或软件。此外,实施本公开的各种实施方案的计算机系统在一些实例中可以是单个装置,而在其他实例中可以是包括多个装置的分布式计算机系统,所述多个装置不同地操作,使得分布式计算机系统执行本文中描述的操作,并且使得单个装置不能执行所有操作。
除非另有要求,否则对本文中提供的任何和所有实例或示例性语言(例如,“诸如”)的使用仅意图更好地说明本发明的实施方案,而非对本发明的范围构成限制。本说明书中的语言不应被解释为表示任何未要求保护的元素是实践本发明所必需的。
在本文中描述了本公开的实施方案,包括发明人已知的用于实施本发明的最佳模式。在阅读前述描述后,那些实施方案的变化对于本领域技术人员可以变得明显。发明人期望技术人员在适当时采用这类变化,并且发明人意图以与本文中的具体描述不同的方式实践本公开的实施方案。因此,本公开的范围包括如适用法律所允许的对所附权利要求中叙述的主题的所有修改和等效物。此外,除非本文中另外指出或另外明确地与上下文矛盾,否则本公开的范围涵盖其所有可能变化中的上述元素的任何组合。
在本文中引用的所有参考文献,包括公开案、专利申请以及专利在此以引用的方式并入,其程度如同将每个参考文献个别地且具体地指示为以引用的方式并入并且其全文在本文中阐述一样。
Claims (20)
1.一种计算机实施的方法,所述计算机实施的方法包括:
经由接口获取指定以下各项的信息:
对第一安全许可集合进行编码的第一安全策略;以及
对第二安全许可集合进行编码的第二安全策略;
至少部分地基于所述第一安全许可集合来确定第一命题逻辑表达式,至少部分地基于所述第二安全许可集合来确定第二命题逻辑表达式,其中,所述第一命题逻辑表达式和/或所述第二命题逻辑表达式包括如下约束:所述约束在所述命题逻辑表达式中存在源虚拟私有云时能够应用,在不存在所述源虚拟私有云时不能够应用;
识别足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的参数集合,使得将所述第一安全策略应用于所述参数集合导致同意对与所述参数集合相关联的计算资源的访问,并且将所述第二安全策略应用于所述参数集合导致拒绝对所述计算资源的访问,其中,所述第一命题逻辑表达式和所述第二命题逻辑表达式一起足以识别所述参数集合;以及
经由所述接口提供结果,所述结果指示所述第一安全策略同意访问计算资源,而所述第二安全策略拒绝访问所述计算资源。
2.如权利要求1所述的计算机实施的方法,其中确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性包括利用可满足性模理论SMT求解器来确定是否可满足至少部分基于所述第一命题逻辑表达式和所述第二命题逻辑表达式而生成的约束。
3.如权利要求2所述的计算机实施的方法,其中至少部分基于所述第一命题逻辑表达式和所述第二命题逻辑表达式而生成的所述约束符合SMT-LIB标准。
4.如权利要求1所述的计算机实施的方法,其中所述结果包括所述参数集合。
5.一种系统,所述系统包括:
一个或多个处理器;
存储器,所述存储器存储计算机可执行指令,所述计算机可执行指令由于被执行致使所述系统:
至少部分地基于第一安全许可集合来确定第一命题逻辑表达式,至少部分地基于第二安全许可集合来确定第二命题逻辑表达式,其中,所述第一命题逻辑表达式和/或所述第二命题逻辑表达式包括如下约束:所述约束在所述命题逻辑表达式中存在源虚拟私有云时能够应用,在不存在所述源虚拟私有云时不能够应用;
识别参数集合,所述参数集合通过使用所述第一命题逻辑表达式和所述第二命题逻辑表达式足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性,其中,所述第一命题逻辑表达式和所述第二命题逻辑表达式形成足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的信息,此外其中,将所述第一安全许可集合应用于所述参数集合导致同意对与所述参数集合相关联的计算资源的访问,并且将所述第二安全许可集合应用于所述参数集合导致拒绝对所述计算资源的访问;以及
提供所述第一安全许可集合和所述第二安全许可集合缺乏等效性的指示。
6.如权利要求5所述的系统,其中确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的所述计算机可执行指令还包括由于被执行致使所述系统利用可满足性模理论SMT求解器来确定是否可满足至少部分从所述第一命题逻辑表达式和所述第二命题逻辑表达式生成的约束的计算机可执行指令。
7.如权利要求5所述的系统,其中所述第一安全许可集合包括在第一策略中,并且所述第二安全许可集合包括在第二策略中。
8.如权利要求6所述的系统,其中至少部分从所述第一命题逻辑表达式和所述第二命题逻辑表达式生成的所述约束符合CVC格式或DIMACS格式。
9.如权利要求5所述的系统,其中识别足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的参数集合的所述计算机可执行指令还包括由于被执行致使所述系统执行以下操作的计算机可执行指令:
生成对应于所述第一安全许可集合的访问同意的第一约束集合;以及
生成对应于所述第一安全许可集合的访问拒绝的第二约束集合。
10.如权利要求9所述的系统,其中识别足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的参数集合的所述计算机可执行指令还包括由于被执行致使所述系统生成第三约束集合的计算机可执行指令,所述第三约束集合对应于所述第一安全许可集合的访问中立约束。
11.如权利要求5所述的系统,其中所述第二安全许可集合是由用户从预定的多个安全许可集合中选择所述第二安全许可集合而获得的。
12.如权利要求5所述的系统,其中识别足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的参数集合的所述计算机可执行指令还包括由于被执行致使所述系统确定所述第一命题逻辑和所述第二命题逻辑不可比的计算机可执行指令。
13.一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质上存储有可执行指令,所述可执行指令由于被计算机系统的一个或多个处理器执行而致使所述计算机系统至少:
识别如下参数集合,所述参数集合足以确定存在与第一安全许可集合或第二安全许可集合相关联的、足以确定从所述第一安全许可集合确定的第一命题逻辑表达式和从所述第二安全许可集合确定的第二命题逻辑缺表达式乏等效性的安全许可,其中,所述第一命题逻辑表达式和所述第二命题逻辑表达式形成足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的信息,其中,所述第一命题逻辑表达式和/或所述第二命题逻辑表达式包括如下约束:所述约束在所述命题逻辑表达式中存在源虚拟私有云时能够应用,在不存在所述源虚拟私有云时不能够应用;此外其中,将所述第一安全许可集合应用于所述参数集合导致同意对与所述参数集合相关联的计算资源的访问,并且将所述第二安全许可集合应用于所述参数集合导致拒绝对所述计算资源的访问;以及
提供所述第一安全许可集合和所述第二安全许可集合缺乏等效性的指示。
14.如权利要求13所述的非暂时性计算机可读存储介质,其中由于被执行而致使所述计算机系统识别足以确定存在所述安全许可的参数集合的所述可执行指令还包括使用可满足性模理论SMT求解器的可执行指令。
15.如权利要求13所述的非暂时性计算机可读存储介质,其中由于被执行而致使所述计算机系统识别足以确定存在足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式是否缺乏等效性的所述安全许可的参数集合的所述可执行指令还包括:使用可满足性SAT求解器的可执行指令。
16.如权利要求15所述的非暂时性计算机可读存储介质,其中所述SAT求解器是二元决策图SAT求解器。
17.如权利要求13所述的非暂时性计算机可读存储介质,其中所述第一安全许可集合至少识别:
主体;
动作;
计算资源;以及
同意效果或拒绝效果。
18.如权利要求17所述的非暂时性计算机可读存储介质,其中所述第一安全许可集合还识别至少一个条件谓词。
19.如权利要求13所述的非暂时性计算机可读存储介质,其中所述第一安全许可集合和所述第二安全许可集合中的至少一者是从包括多个应用的安全策略的策略存储库中获得的,所述应用的安全策略包括安全许可集合。
20.如权利要求13所述的非暂时性计算机可读存储介质,其中所述可执行指令由于被计算机系统的一个或多个处理器执行还致使所述计算机系统至少:
识别足以确定所述第一命题逻辑表达式和所述第二命题逻辑表达式缺乏等效性的所述安全许可;以及
作为对确定所述第一命题逻辑表达式和所述第二命题逻辑表达式的等效性的请求的响应的一部分,提供所识别的安全许可。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111162818.XA CN114124444B (zh) | 2017-06-29 | 2018-06-15 | 用于安全策略监视服务的方法和系统以及存储介质 |
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/637,227 US10757128B2 (en) | 2017-06-29 | 2017-06-29 | Security policy analyzer service and satisfiability engine |
US15/637,238 US10630695B2 (en) | 2017-06-29 | 2017-06-29 | Security policy monitoring service |
US15/637,227 | 2017-06-29 | ||
US15/637,238 | 2017-06-29 | ||
PCT/US2018/037947 WO2019005511A1 (en) | 2017-06-29 | 2018-06-15 | SAFETY POLICY ANALYZER SERVICE AND SATISFACTION ENGINE |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111162818.XA Division CN114124444B (zh) | 2017-06-29 | 2018-06-15 | 用于安全策略监视服务的方法和系统以及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110870279A CN110870279A (zh) | 2020-03-06 |
CN110870279B true CN110870279B (zh) | 2021-10-26 |
Family
ID=62842301
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043730.6A Active CN110870278B (zh) | 2017-06-29 | 2018-06-15 | 用于安全策略监视服务的方法和系统以及存储介质 |
CN201880043935.4A Active CN110870279B (zh) | 2017-06-29 | 2018-06-15 | 安全策略分析器服务和可满足性引擎 |
CN202111162818.XA Active CN114124444B (zh) | 2017-06-29 | 2018-06-15 | 用于安全策略监视服务的方法和系统以及存储介质 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880043730.6A Active CN110870278B (zh) | 2017-06-29 | 2018-06-15 | 用于安全策略监视服务的方法和系统以及存储介质 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111162818.XA Active CN114124444B (zh) | 2017-06-29 | 2018-06-15 | 用于安全策略监视服务的方法和系统以及存储介质 |
Country Status (5)
Country | Link |
---|---|
EP (2) | EP4184364A1 (zh) |
JP (3) | JP6948749B2 (zh) |
KR (1) | KR102299171B1 (zh) |
CN (3) | CN110870278B (zh) |
WO (2) | WO2019005511A1 (zh) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019005511A1 (en) * | 2017-06-29 | 2019-01-03 | Amazon Technologies, Inc. | SAFETY POLICY ANALYZER SERVICE AND SATISFACTION ENGINE |
US11336527B2 (en) * | 2020-06-01 | 2022-05-17 | Hewlett Packard Enterprise Development Lp | Method and system for enhanced command management in a network |
CN112052448B (zh) * | 2020-09-14 | 2023-12-12 | 莫毓昌 | 基于关键词自动识别和决策图模型的Web攻击检测方法 |
CN112738114B (zh) * | 2020-12-31 | 2023-04-07 | 四川新网银行股份有限公司 | 一种网络安全策略的配置方法 |
AU2022221328A1 (en) * | 2021-02-09 | 2023-08-17 | Cayosoft, Inc. | Orchestration of administrative unit management |
US11861409B2 (en) * | 2021-03-31 | 2024-01-02 | Amazon Technologies, Inc. | Distributed decomposition of string-automated reasoning using predicates |
US20220385635A1 (en) * | 2021-05-27 | 2022-12-01 | Palo Alto Networks, Inc. | Combined machine learning and formal techniques for network traffic analysis |
CN113886818A (zh) * | 2021-10-28 | 2022-01-04 | 中国平安人寿保险股份有限公司 | 业务逻辑的异常处理方法、装置、计算机设备及存储介质 |
US11943261B1 (en) * | 2021-12-03 | 2024-03-26 | Amazon Technologies, Inc. | Cloud-based security service for improved compliance of mainframe workloads |
TWI795312B (zh) * | 2022-06-20 | 2023-03-01 | 英業達股份有限公司 | 適用於檢測系統的自動配置設定系統及其方法 |
WO2024118405A1 (en) * | 2022-11-28 | 2024-06-06 | Amazon Technologies, Inc. | Authorization policy validation |
CN116055170B (zh) * | 2023-01-10 | 2024-01-23 | 北京微步在线科技有限公司 | 一种流量数据检测方法及装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003186831A (ja) * | 2001-12-13 | 2003-07-04 | Sony Corp | ネットワークシステム、情報処理装置および方法、記録媒体、並びにプログラム |
US7552472B2 (en) * | 2002-12-19 | 2009-06-23 | International Business Machines Corporation | Developing and assuring policy documents through a process of refinement and classification |
US20090070853A1 (en) * | 2007-09-12 | 2009-03-12 | International Business Machines Corporation | Security Policy Validation For Web Services |
BRPI0722242B1 (pt) * | 2007-11-30 | 2019-12-24 | Telecom Italia Spa | método e sistema para prover serviços de telecomunicação |
JP4470997B2 (ja) | 2007-12-25 | 2010-06-02 | 富士ゼロックス株式会社 | セキュリティポリシー切替装置、セキュリティポリシー切替プログラム及びセキュリティポリシー管理システム |
US8826366B2 (en) * | 2010-07-15 | 2014-09-02 | Tt Government Solutions, Inc. | Verifying access-control policies with arithmetic quantifier-free form constraints |
US8756651B2 (en) * | 2011-09-27 | 2014-06-17 | Amazon Technologies, Inc. | Policy compliance-based secure data access |
US9043864B2 (en) * | 2011-09-30 | 2015-05-26 | Oracle International Corporation | Constraint definition for conditional policy attachments |
CN104106073B (zh) * | 2011-12-21 | 2017-06-27 | 阿卡麦科技公司 | 安全策略编辑器 |
US20130312058A1 (en) | 2012-01-06 | 2013-11-21 | Optio Labs, Inc. | Systems and methods for enhancing mobile security via aspect oriented programming |
JP5970292B2 (ja) * | 2012-08-21 | 2016-08-17 | 株式会社日立製作所 | ソフトウェア仕様開発支援方法及びソフトウェア仕様開発支援装置 |
US9519756B2 (en) | 2013-03-15 | 2016-12-13 | Microsoft Technology Licensing, Llc | Managing policy and permissions profiles |
US9325739B1 (en) * | 2013-04-29 | 2016-04-26 | Amazon Technologies, Inc. | Dynamic security policy generation |
US9246945B2 (en) | 2013-05-29 | 2016-01-26 | International Business Machines Corporation | Techniques for reconciling permission usage with security policy for policy optimization and monitoring continuous compliance |
JP6125367B2 (ja) * | 2013-08-02 | 2017-05-10 | 株式会社アメリカンネットサービス | 予約処理装置、予約受付端末、予約処理方法、及びコンピュータプログラム |
US9448859B2 (en) | 2013-09-17 | 2016-09-20 | Qualcomm Incorporated | Exploiting hot application programming interfaces (APIs) and action patterns for efficient storage of API logs on mobile devices for behavioral analysis |
JP6052452B2 (ja) | 2013-09-17 | 2016-12-27 | 株式会社リコー | 情報処理システム、情報蓄積装置及び方法 |
US9467473B2 (en) * | 2013-09-19 | 2016-10-11 | Microsoft Technology Licensing, Llc | System and method for compact form exhaustive analysis of security policies |
US10560441B2 (en) * | 2014-12-17 | 2020-02-11 | Amazon Technologies, Inc. | Data security operations with expectations |
US9401933B1 (en) | 2015-01-20 | 2016-07-26 | Cisco Technology, Inc. | Classification of security policies across multiple security products |
JP6205512B2 (ja) * | 2015-02-12 | 2017-09-27 | 株式会社日立製作所 | ルール管理支援装置、およびルール管理支援方法 |
JP2016218611A (ja) | 2015-05-18 | 2016-12-22 | 株式会社リコー | 情報処理装置、プログラムおよび情報処理システム |
CN105471618A (zh) * | 2015-08-03 | 2016-04-06 | 汉柏科技有限公司 | 一种基于防火墙的网络安全的管理方法和系统 |
WO2019005511A1 (en) | 2017-06-29 | 2019-01-03 | Amazon Technologies, Inc. | SAFETY POLICY ANALYZER SERVICE AND SATISFACTION ENGINE |
-
2018
- 2018-06-15 WO PCT/US2018/037947 patent/WO2019005511A1/en unknown
- 2018-06-15 KR KR1020207000122A patent/KR102299171B1/ko active IP Right Grant
- 2018-06-15 CN CN201880043730.6A patent/CN110870278B/zh active Active
- 2018-06-15 CN CN201880043935.4A patent/CN110870279B/zh active Active
- 2018-06-15 JP JP2019569760A patent/JP6948749B2/ja active Active
- 2018-06-15 EP EP23150888.8A patent/EP4184364A1/en active Pending
- 2018-06-15 WO PCT/US2018/037948 patent/WO2019005512A1/en active Application Filing
- 2018-06-15 CN CN202111162818.XA patent/CN114124444B/zh active Active
- 2018-06-15 EP EP18738146.2A patent/EP3646555B1/en active Active
-
2021
- 2021-09-14 JP JP2021149338A patent/JP7240785B2/ja active Active
-
2023
- 2023-02-28 JP JP2023029045A patent/JP7294739B2/ja active Active
Non-Patent Citations (2)
Title |
---|
Analyzing Web Access Control Policies;Vladimir Kolovski,James Hendler,Bijan Parsia;《16TH INTERNATIONAL WORLD WIDE WEB CONFERENCE》;20070508;第6.1节 * |
Automated verification of access control policies using a SAT solver;Graham hughes, Tevfik Bultan;《INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER》;20081021;第4.3节 * |
Also Published As
Publication number | Publication date |
---|---|
KR20200013040A (ko) | 2020-02-05 |
CN114124444A (zh) | 2022-03-01 |
KR102299171B1 (ko) | 2021-09-07 |
JP2023065535A (ja) | 2023-05-12 |
WO2019005511A1 (en) | 2019-01-03 |
CN110870279A (zh) | 2020-03-06 |
EP3646555A1 (en) | 2020-05-06 |
CN110870278A (zh) | 2020-03-06 |
JP6948749B2 (ja) | 2021-10-13 |
JP7294739B2 (ja) | 2023-06-20 |
JP7240785B2 (ja) | 2023-03-16 |
JP2020525898A (ja) | 2020-08-27 |
EP4184364A1 (en) | 2023-05-24 |
WO2019005512A1 (en) | 2019-01-03 |
JP2021193598A (ja) | 2021-12-23 |
CN110870278B (zh) | 2021-07-16 |
EP3646555B1 (en) | 2023-01-25 |
CN114124444B (zh) | 2024-10-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11616800B2 (en) | Security policy analyzer service and satisfiability engine | |
CN110870279B (zh) | 安全策略分析器服务和可满足性引擎 | |
US10630695B2 (en) | Security policy monitoring service | |
US11483317B1 (en) | Techniques for analyzing security in computing environments with privilege escalation | |
US10404757B1 (en) | Privacy enforcement in the storage and access of data in computer systems | |
US8893288B2 (en) | Prevention of information leakage from a document based on dynamic database label based access control (LBAC) policies | |
US11120154B2 (en) | Large-scale authorization data collection and aggregation | |
CN107005568A (zh) | 数据安全操作与预期 | |
Takahashi et al. | Web of cybersecurity: Linking, locating, and discovering structured cybersecurity information | |
Magklaras et al. | Towards an insider threat prediction specification language | |
US10467423B1 (en) | Static analysis-based tracking of data in access-controlled systems | |
Kratov | About leaks of confidential data in the process of indexing sites by search crawlers | |
De Meo et al. | A formal approach to exploiting multi-stage attacks based on file-system vulnerabilities of web applications | |
Li et al. | Data Privacy Enhancing in the IoT User/Device Behavior Analytics | |
Katarahweire et al. | A Multi-level Data Sensitivity Model for Mobile Health Data Collection Systems | |
Sacco | Trust-aware privacy preferences for information sharing on the web of data | |
Quirolgico et al. | Access control for SAR systems | |
WO2023200534A1 (en) | Rule-based data governance and privacy engine | |
Ekman | Handling Big Data using a Distributed Search Engine: Preparing Log Data for On-Demand Analysis | |
Yitbarek et al. | Health Support System for Elderly and Miners/Construction Workers (HSSEMW) | |
Ureche | Static Code Analysis of Data-driven Applications Through Common Lingua and the Semantic Web Technologies | |
Denoo | Enabling fine-grained access control in decentralized | |
Sacco | Trust-aware privacy preferences for information sharing on the |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |