CN112334901A - 自动化无分组网络可达性分析 - Google Patents
自动化无分组网络可达性分析 Download PDFInfo
- Publication number
- CN112334901A CN112334901A CN201980043063.6A CN201980043063A CN112334901A CN 112334901 A CN112334901 A CN 112334901A CN 201980043063 A CN201980043063 A CN 201980043063A CN 112334901 A CN112334901 A CN 112334901A
- Authority
- CN
- China
- Prior art keywords
- network
- ports
- virtual
- virtual network
- 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.)
- Pending
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 79
- 238000000034 method Methods 0.000 claims abstract description 96
- 230000008569 process Effects 0.000 claims description 47
- 230000009471 action Effects 0.000 claims description 33
- 238000003860 storage Methods 0.000 claims description 25
- 230000006855 networking Effects 0.000 description 86
- 239000003795 chemical substances by application Substances 0.000 description 40
- 238000012795 verification Methods 0.000 description 14
- 238000010200 validation analysis Methods 0.000 description 13
- 230000002776 aggregation Effects 0.000 description 11
- 238000004220 aggregation Methods 0.000 description 11
- 230000004044 response Effects 0.000 description 11
- 239000008186 active pharmaceutical agent Substances 0.000 description 10
- 238000007726 management method Methods 0.000 description 10
- 238000010586 diagram Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 238000004891 communication Methods 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- TVZRAEYQIKYCPH-UHFFFAOYSA-N 3-(trimethylsilyl)propane-1-sulfonic acid Chemical compound C[Si](C)(C)CCCS(O)(=O)=O TVZRAEYQIKYCPH-UHFFFAOYSA-N 0.000 description 4
- 238000013475 authorization Methods 0.000 description 4
- 238000003339 best practice Methods 0.000 description 4
- 230000036541 health Effects 0.000 description 4
- 230000002093 peripheral effect Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008520 organization Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 235000008694 Humulus lupulus Nutrition 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012544 monitoring process Methods 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000014616 translation Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 238000012800 visualization Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- 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/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
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0866—Checking the configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/12—Discovery or management of network topologies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/22—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks comprising specially adapted graphical user interfaces [GUI]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/06—Generation of reports
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0272—Virtual private networks
-
- 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/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
Abstract
公开了用于自动无分组网络可达性分析的方法、系统和计算机可读介质。对包括主机计算机的网络的网络配置数据进行分析。至少部分地基于所述分析,确定主机计算机上可从另一计算机可达的一个或多个端口。至少部分地基于所述分析,确定到所述一个或多个端口的一条或多条路由。生成描述一个或多个端口以及一个或多个路由的报告。
Description
背景技术
许多公司和其它组织操作互连许多计算系统以支持它们操作的计算机网络,诸如计算系统共处一地(例如,作为本地网络的一部分)或替代地位于多个不同的地理位置(例如,经由一个或多个私有或公共中间网络连接)。例如,容纳大量互连计算系统的数据中心已经变得司空见惯,如由单个组织和代表单个组织运营的专用数据中心,以及由作为企业的实体运营以向客户提供计算资源的公共数据中心。一些公共数据中心运营商为各种客户拥有的硬件提供网络接入、电力和安全安装设施,而其它公共数据中心运营商提供“全方位服务(full service)”设施,所述全方位服务设施还包含可供所述运营商的客户使用的硬件资源。
附图说明
图1示出了根据一些实施例的用于自动无分组网络可达性分析的示例系统环境。
图2示出了根据一些实施例的用于自动无分组网络可达性分析的示例性系统环境的进一步方面,其包括与虚拟网络验证服务的交互以辅助分析。
图3示出了根据一些实施例的用于自动无分组网络可达性分析的示例系统环境的进一步方面,其包括对经历分析的计算机上的代理的使用。
图4示出了根据一些实施例的用于自动无分组网络可达性分析的示例性系统环境的进一步方面,其包括纠正措施的建议和/或执行。
图5示出了根据一些实施例的使用自动无分组网络可达性分析生成的报告的示例。
图6示出了根据一些实施例的使用自动无分组网络可达性分析以及使用经历分析的计算机上的代理生成的报告的示例。
图7是示出根据一些实施例的用于自动无分组网络可达性分析的方法的流程图。
图8示出根据一些实施例的在提供商网络环境中的虚拟网络验证服务。
图9示出根据一些实施例的示例虚拟网络验证服务的组件和操作。
图10是根据一些实施例的用于将关于虚拟网络的信息提供到提供商网络的客户端的方法的流程图。
图11是根据一些实施例的用于将关于虚拟网络的信息提供到提供商网络的客户端的方法的流程图,其中客户端将描述性信息和查询提供到虚拟网络验证服务。
图12是根据一些实施例的用于将关于虚拟网络的信息提供到提供商网络的客户端的方法的流程图,其中客户端将描述性信息和接入虚拟网络的许可提供到虚拟网络验证服务。
图13示出根据一些实施例的包含两个或更多个对等虚拟网络的提供商网络环境中的客户端的虚拟网络实施方案。
图14示出根据一些实施例的在提供商网络上的实例性虚拟网络中的子网和安全群组。
图15示出了可以在一些实施例中使用的实例计算设备。
尽管本文通过举例的方式针对若干实施例和说明性附图描述了实施例,但是本领域技术人员将认识到,实施例不限于所描述的实施例或附图。应当理解的是,附图和对其的详细描述并不旨在将实施例限制于所公开的特定形式,而是相反,旨在覆盖落入由所附权利要求书限定的精神和范围内的所有修改、等同物和替换物。本文所用的标题仅用于组织目的,并不意味着用于限制说明书或权利要求书的范围。如贯穿本申请所使用的,词语“可以”以允许的意义(即,意味着“有可能”)而不是强制的意义(即,意味着“必须”)来使用。类似地,词语“包括”、“包括的”、以及“包括有”意味着“包括,但不限于此”。
具体实施方式
描述了用于自动无分组网络可达性分析的方法、系统和计算机可读介质的各种实施例。在一些实施例中,执行网络可达性分析而不必执行常规的端口扫描。在端口扫描的现有方法中,分组将被从外部实体(例如,通过公共网络)发送到一台或多台计算机上的各种端口,并且将等待响应;例如,这样的端口扫描可能需要几天,并且使用过多的网络带宽。在不将分组发送到端口的情况下,本文描述的网络可达性分析可以确定计算机上的哪些端口(如果有)可到达例如公共互联网或同一网络上的另一台计算机。网络可达性分析还可以确定从外部实体到这些端口的一条或多条路由。网络可达性分析可以结合来自不同来源的数据来得出结论。在一个实施例中,网络可达性分析可以查询计算机所属的网络的一组网络配置数据。在一个实施例中,网络可达性分析可以从安装在计算机上的代理软件获取数据,例如以确定哪些进程正在监听开放端口。网络可达性分析可生成报告,描述其发现的各个方面,例如,任何开放和可访问的端口、到这些端口的路由、监听那些端口的进程、与这些开放和可访问的端口相关的配置设置、与开放和可访问端口相关的任何安全问题、将补救安全问题的任何纠正措施(例如,更改配置设置)和/或任何其他合适的信息。网络可达性分析可以以自动化的方式执行,例如,根据时间表或由事件触发,并且不一定由最终用户直接发起。与常规端口扫描的费时且资源密集的性质相比,使用本文所述的技术,可以快速且有效地分析网络的安全性。
如本领域的技术人员根据本公开将理解,实施例可以能够实现某些技术优点,包括以下一些或全部:(1)通过消除将分组发送到许多计算机上的大量端口并等待响应的需要提高了网络可达性分析的速度;(2)通过消除将分组发送到许多计算机上的大量端口的需要,降低了网络可达性分析的网络带宽要求;(3)通过洞察可到达端口的路由提高了网络的安全性;(4)通过洞察在开放且可到达的端口上正在侦听的过程提高了网络的安全性;(5)通过报告导致端口可到达的配置设置以及报告对会补救安全问题的那些设置的更改,提高了网络的安全性;(6)通过提供比仅从扫描器的位置检查可达性的常规端口扫描更完整的视图提高了网络的安全性;等等。
图1示出了根据一些实施例的用于自动无分组网络可达性分析的示例系统环境。在一些实施例中,网络安全评估器100可以分析网络上的一个或多个计算设备的安全性,例如以确定那些计算机上的哪些端口(如果有)是开放的和可到达的。经历分析的设备也可以称为计算机、主机计算机、主机、服务器、实例(instance)或计算资源。如图1所示,可以在专用网络180内配置一组计算设备,例如主机170A至170N。尽管出于说明和示例的目的示出了两个主机170A和170N,但是网络安全评估器100可以分析任何合适数量和配置的主机。主机170A-170N在其硬件资源、软件资源、网络配置等方面可以相同或可以不同。
主机170A-170N可以被配置为使用专用网络180的网络资源彼此通信。主机170A-170N中的每个可以提供网络端口,例如用于主机170A的端口171A和用于主机170N的端口171N。端口171A-171N可以表示网络通信的端点,并且可以由端口号标识。网络协议或传输层协议(如传输控制协议(TCP)和用户数据报协议(UDP))可以使用端口。按照惯例,某些端口号可保留给某些服务。实现通用服务的应用程序可以使用保留的端口号,以通过“侦听”端口并响应请求建立一对一的服务器-客户端对话框,接收来自客户端的服务请求。例如,实现简单邮件传输协议(SMTP)的应用程序通常在TCP端口25上侦听传入的请求,而实现邮局协议(POP)的应用程序通常在TCP端口110上侦听传入的请求。
专用网络180可以包括由特定商业实体或其他组织拥有和/或操作的计算机。在一个实施例中,专用网络180的所有者或运营商可以期望主机170A-170N相对于外部实体(例如,经由一个或多个公共网络190诸如公共互联网连接的计算机)通常应该是不可访问的或具有某种程度的隔离。然而,主机170A-170N上的一个或多个端口确实可以以可能引起安全性问题的方式到达公共网络190。例如,侦听特定开放端口的特定进程可能易受来自外部实体的恶意攻击,例如,以从主机170A-170N收集敏感数据或控制主机。使用本文所述的技术,可以找到主机170A-170N上的任何可达端口,并可能对其进行补救以解决安全问题。
不必向端口171A-171N发送分组,网络安全评估器100可以确定哪些端口(如果有的话)是可到达的。在一个实施例中,可达性分析可以确定端口是否可以经由公共网络190可达。在一个实施例中,可达性分析可以确定端口是否可以经由(一个或多个)专用网络190到达例如主机170A-170N中的另一个。在一实施例中,可达性分析可确认主机上没有端口可到达。对于特定的一个或多个主机,分析可以由网络安全评估器100以自动化方式执行,例如,根据时间表或由事件触发,而不必由最终用户直接发起。例如,可以由与主机的网络配置的改变相关联的事件来触发分析。该事件可以由监视这样的改变的专用网络180的服务或系统来发布。
在一个实施例中,网络安全评估器100可以使用一组网络配置数据110来为一个或多个主机170A-170N执行网络可达性分析。网络配置数据110可以与被分析的主机所属的网络(例如,专用网络180)相关联。网络配置数据可以代表主机170A-170N以及网络设备(路由器、交换机等)的网络配置或其他属性的快照。例如,数据110可以包括关于虚拟私有云(VPC)、子网、实例、安全组、访问控制列表(ACL)、负载均衡器等的信息。数据110可以用于例如根据一组虚拟联网规则来对联网在网络180中如何工作进行建模。在一实施例中,网络配置数据110的元素可以由专用网络180的服务提供。例如,网络180可以包括提供(例如,经由API)关于虚拟计算实例的网络配置数据的计算虚拟化服务,并且网络可以包括提供(例如,经由API)有关虚拟存储实例的网络配置数据的各种类型的存储虚拟化服务。数据110可以例如识别在网络180中实施的联网原语的实例,包含所述实例的描述(例如,指派给计算实例的角色、对资源实例授予或拒绝的许可、指派给实例的IP地址等),描述实例之间的关系(例如,网络上在实例之间的路径),以及描述到外部实体的接口或接入点(例如,可由网络外部的实体接入的计算实例)。网络配置数据110及其获取的其他方面在下面关于图8至图15讨论。
回到图1,在一个实施例中,网络安全评估器100可以包括查询处理组件120,其可以查询网络配置数据110。网络安全评估器100还可以包括查询聚合和分析组件130,其可以生成查询125、将查询提供给查询处理组件120、接收查询结果126以及对结果进行分析以确定哪些端口(如果有)是可以到达的。可以根据查询语言表达查询125。在一个实施例中,查询语言可以代表声明性逻辑编程语言,其允许网络安全评估器100表达关于网络作为约束问题的查询,包括递归查询,并通过使用约束求解器(例如,满足性模理论(SMT)求解器)引擎解析查询来为查询提供结果。查询的示例可以是“VNVS查询-i列表:can-ssh(A,B)”,其请求虚拟网络验证服务(VNVS)提供所有实例对的列表,以便实例A可以SSH到实例B。网络安全评估器100可以根据分析的需要动态地建立查询125或选择预先建立的查询。在一个实施例中,查询不必由分析器100的最终用户编写,最终用户例如是试图分析在他或她管理下的一个或多个主机的网络安全性的网络管理员。查询125的进一步方面在下面关于图8至图15讨论。
回到图1,在一个实施例中,网络安全评估器100可以根据与网络可达性相关的一组规则135进行操作。在一实施例中,可以根据规则135生成查询125。例如,规则135可以定义用于要检查可达性的公共服务的一组端口号,并且分析器100可以生成查询以评估那些端口号对于被分析的主机是否可到达。可以生成查询125以获取影响分析中的一个或多个主机的网络访问的配置数据。规则包135可以分析联网组件,例如安全组、虚拟私有云(VPC)、子网、访问控制列表、弹性负载均衡器、互联网网关、仅出口互联网网关、网络地址转换、路由表、对等VPC、虚拟专用网络(VPN)、直接连接(DX)等。在一个实施例中,可以根据规则135分析查询结果126,例如,以通过使用对各种类型的联网组件如何操作的了解来确定哪些端口是可到达的。
如果任何端口被认为是可到达的,则网络安全评估器100还可以确定从外部实体到那些端口的一条或多条路由。在一个实施例中,可以根据规则135和/或使用查询语言确定路由。例如,使用一个或多个查询,分析器100可以确定主机之间或主机与外部实体之间存在网络上的路径或路由(即,存在网络连通性)(例如,从资源到HTTPS网关的路径,外部实体可以经由所述路径接入虚拟网络上的资源)。路径可以是网络上的提供端点之间的网络连接性的直接路径,或替代地可以是通过路由上的一个或多个跳点且提供端点之间的网络连接性的传递性路径。通过应用一组预定义规则135来评估主机的网络可达性,查询聚合和分析组件130可以代表自动化解决方案,该自动化解决方案消除了手动分析(例如,由网络管理员)的猜测和复杂性。
在一个实施例中,例如,查询聚合和分析组件130可以使用规则135来检查实例是否允许从互联网或从任何受信任位置外部(如果如此配置)的互联网控制消息协议(ICMP)访问。在一个实施例中,作为另一实例,查询聚合和分析组件130可以使用规则135来检查实例是否具有从互联网或从任何受信任位置外部(如果如此配置)打开且可到达的任何TCP/UDP端口。规则135可以具体地检查不安全端口、管理端口、数据库端口、内联网端口和其他类型的端口。在一个实施例中,查询聚合和分析组件130可以使用规则135来检查实例是否不能从任何端口上的任何地方访问。在一个实施例中,查询聚合和分析组件130可以使用规则135来针对每个安全组检查子网是否允许来自外部受信任位置的ICMP或TCP/UDP端口访问。在一个实施例中,查询聚合和分析组件130可以使用规则135来检查子网是否具有从任何地方都不可访问的实例,或者是否阻止了所有入站流量,或者没有弹性网络接口(ENI)。
在一个实施例中,评估器100可以在不执行常规端口扫描的情况下找到任何可到达的端口。在一个实施例中,评估器100可以通过例如仅在受影响的端口上执行有限范围的端口扫描来确认无分组发现。例如,如果发现主机170A上的TCP端口22是可达到的,则网络安全评估器100可以使外部实体(例如,经由公共网络190连接到主机170A的另一服务器)向主机170A上的TCP端口22发送一个或多个分组,等待主机的响应,然后报告回分析器。如果没有接收到这样的响应,则网络安全评估器100可以确定该端口实际上是不可到达的。例如,端口可能被防火墙屏蔽。如果接收到响应,则网络安全评估器100可以确认端口是开放的和可到达的。通过将这样的端口扫描限制为已经被估计为可到达的端口,网络安全评估器100可以显著减少全端口扫描所需的时间和网络带宽。
网络安全评估器100可以针对被分析的一个或多个主机170A-170N生成关于网络可达性和/或网络安全性的发现。如将在下文中相对于图3讨论的,网络安全评估器100可以组合来自不同源的数据(可能包括由代理收集的主机上的数据)以生成这样的发现。回到图1,使用报告组件140,网络安全评估器100可以产生描述其发现的方面的报告。在一实施例中,报告组件140可指示或描述特定主机可到达的一个或多个端口141。在一实施例中,报告组件140可指示或描述特定主机不可到达的一个或多个端口141。在一实施例中,报告组件140可以指示或描述到可到达的端口的一条或多条路由142。在一个实施例中,报告组件140可以替代地公开特定主机没有端口可到达。关于图5讨论了这种报告的实例。
在一个实施例中,白名单可以指示可信位置,并且如果发现特定端口或端口范围可以从可信位置到达,则可以将其从报告140中排除。在各种实施例中,可以使用各种数据源来生成白名单,例如行业标准知识、客户输入、基于多个客户的机器学习和/或其他合适的源。白名单的内容可能因客户而异。白名单的内容可能随时间变化。
回到图1,报告组件140可以以任何合适的方式呈现发现。在一个实施例中,报告组件140可以以例如图形用户界面(GUI)的形式将发现呈现给网络管理员。在一个实施例中,GUI可以包括交互式部分,使得它可以接收与发现相关联的用户输入,例如,如下面关于图4所讨论的。回到图1,在一个实施例中,报告组件140可以将发现持久地存储在文件或其他数据对象中,并且该文件或数据对象可以由网络管理员或其他合适的实体读取。在一个实施例中,报告组件140可以使用电子邮件或另一消息系统将发现结果发送到例如网络管理员可访问的帐户。
网络安全评估器100和主机170A-170N可以使用任何合适数量和配置的计算设备来实施,其中任何一个都可以由图15中所示的实例计算设备1500来实施。计算设备可以被定位在任何适当数量的数据中心或地理位置中。在各种实施例中,网络安全评估器100的至少一些功能可以由相同的计算设备或由不同的计算设备提供。如果使用不同的计算设备来实施网络安全评估器100的任何组件,那么然后这些组件及它们相应的计算设备可以通信地耦合(例如经由一个或多个网络)。网络安全评估器100的每个组件可以表示可用于执行它们相应的功能的软件和硬件的任何组合,如下所述。由网络安全评估器100实施的操作可以被自动地执行(例如,在初始配置阶段之后不需要用户启动或用户干预,以及以编程方式(例如通过在至少一个计算设备上执行程序指令))。可设想的是,威胁建模平台网络安全评估器100和网络180可以包含未示出的附加部件、比所示部件更少的部件或所示部件的不同组合、配置或数量。
网络安全评估器100可以在面向服务的系统中实施,其中多个服务根据面向服务的系统结构进行协作。在这样的环境中,网络安全评估器100可以将其功能作为服务提供给多个客户端。可以使用分布在一个或多个网络中的多个不同实例来实施服务,并且每个实例可以向各个客户端提供对相对应的服务的功能的访问。可以设想,任何适当数量和配置的客户端都可以与网络安全评估器100进行交互。为了使客户端能够调用其功能,网络安全评估器100可以展示(多个)任何合适的接口(例如一个或多个API或其它编程接口和/或图形用户界面(GUI))。在一个实施例中,可以将网络安全评估器100的功能提供给客户端以换取费用。
网络安全评估器100可以经由一个或多个网络耦合到主机170A-170N、服务客户端、其他服务或其他实体。在各种实施例中,网络可以包含在网络安全评估器100和主机170A-170N之间建立基于网络的通信所必需的联网硬件和协议的任何合适的组合。例如,(多个)网络通常可以包含共同实施因特网的各种电信网络和服务供应商。(多个)网络还可以包括专用网络,例如局域网(LAN)或广域网(WAN)以及公共或专用无线网络。例如,网络安全评估器100和主机170A-170N两者可以分别设置在具有自己内部网络的企业内。在这种实施例中,网络可以包含在网络安全评估器100与互联网之间以及在互联网与主机170A-170N之间建立联网链路所必需的硬件(例如,调制解调器、路由器、交换机、负载均衡器、代理服务器等)和软件(例如,协议栈、会计软件、防火墙/安全软件等)。注意,在一些实施例中,网络安全评估器100可以使用专用网络而非公共互联网与主机170A-170N通信。
在一些实施例中,可以使用提供商网络的计算资源来实现网络安全评估器100和/或主机170A-170N的方面。供应商网络可以表示由实体(诸如商业或公共部门组织)设立的网络,以向一组分布式客户端提供可经由因特网和/或其它网络访问的一个或多个服务(诸如各种类型的网络可以访问计算或存储)。供应商网络可以包括托管各种资源池(诸如物理和/或虚拟化计算机服务器、存储设备、联网装置等的集合)的众多数据中心,这些资源池用于实施和分布由供应商所提供的基础设施和服务。在一些实施例中,计算资源可以在等被称为“实例”的单元(诸如虚拟或物理计算实例)中被提供给客户端。例如,虚拟计算实例可以包含具有指定的计算能力(可以通过指示CPU的类型和数量、主存储器大小等来指定)的一个或多个服务器以及指定的软件栈(例如,可以在管理程序之上运行的操作系统的特定版本)。许多不同类型的计算设备可以被单独地或以组合方式使用以实施不同实施例中的供应商网络的资源(包括通用或专用计算机服务器、存储设备、网络设备等)。因为供应商网络的资源可以同时在多个客户端(或承租人)的控制下,所以可以说供应商网络提供了多租户并且可以被称为多承租人供应商网络。
在一些实施例中,提供商网络的运营商可以为其客户端实施一组灵活的资源预留、控制和访问界面。例如,资源管理器可以实施程序资源预留界面(例如,经由网站或一组网页),所述程序资源预留界面允许(可能包括提供商网络内的其它组件)了解、选择、购买访问和/或预留提供商网络供应的计算实例。这种界面可以包含允许浏览资源目录并且提供所支持的不同类型或大小的资源、所支持的不同预留类型或模式、定价模型等的细节和规范的能力。
图2示出了根据一些实施例的用于自动无分组网络可达性分析的示例性系统环境的进一步方面,其包括与虚拟网络验证服务的交互以辅助分析。在一实施例中,网络配置数据110可以由虚拟网络验证服务230获取和维护。虚拟网络验证服务230还可包括查询处理组件120,该查询处理组件能够接收查询125,使用网络配置数据110回答查询以及以查询结果126进行响应。虚拟网络验证服务230可以将其服务提供给一个或多个客户端,包括网络安全评估器100。虚拟网络验证服务的其他方面将在下面关于图8至14进行讨论。
图3示出了根据一些实施例的用于自动无分组网络可达性分析的示例系统环境的进一步方面,其包括对经历分析的计算机上的代理的使用。在一个实施例中,网络安全评估器100可以组合来自不同来源的数据以得出结论。在一个实施例中,网络安全评估器100可以从安装在计算机上的代理软件获取数据,例如以确定哪些进程正在监听开放端口。如果进程正在侦听端口,则该端口可被视为“开放”端口。进程可以包括服务、应用程序、服务守护程序和其他形式的可执行程序代码。如在图3的实例中所示,代理175A可以安装在主机170A上,代理175N可以安装在主机170N上,依此类推。同样如图3的实例所示,进程176A可以驻留在主机170A上(并且潜在地侦听端口171A),并且进程176N可以驻留在主机170N上(并且潜在地侦听端口171N)。在一些实施例中,例如,如果主机170A-170N表示硬件和操作系统软件的相同或不同配置,则代理175A-175N可以表示相同的二进制文件或不同的二进制文件。
代理175A-175N可能能够收集对主机170A-170N的配置的见解。在一个实施例中,代理175A-175N可以监视相应主机的操作,例如以确定何时开放端口以及哪个进程与该端口相关联。在一个实施例中,代理175A-175N可以与相应主机的操作系统交互,例如,以询问哪些端口是开放的和/或哪个进程176A-176N正在侦听这些端口。在一个实施例中,代理175A-175N可以在网络安全评估器100的控制下,使得网络可达性分析器可以指示代理找到侦听分析器已被认为可达的特定端口的进程。代理175A-175N可以被配置为将其发现报告给查询聚合和分析组件130。
在一个实施例中,基于从代理175A-175N中继的信息,查询聚合和分析组件130可以使用规则135来检查进程是否在非典型端口号上打开了端口。在一个实施例中,基于从代理175A-175N中继的信息,查询聚合和分析组件130可以使用规则135来检查实例是否具有从任何地方都无法到达的开放端口。使用对代理175A-175N收集的数据的分析,例如关于哪些进程正在哪个端口上侦听的了解,报告组件140可以生成报告,该报告指示或描述正在侦听开放和可到达端口141的进程143。在一个实施例中,报告组件140可以指示或描述正在使用异常端口或意外端口并且因此可能构成安全威胁的进程。
图4示出了根据一些实施例的用于自动无分组网络可达性分析的示例性系统环境的进一步方面,其包括纠正措施的建议和/或执行。在一实施例中,查询聚合和分析130可以确定端口可到达的原因。例如,一个或多个配置设置可能是端口可访问的原因。通过将规则135应用于从一个或多个源收集的数据(例如,网络配置数据110和代理175A-175N),网络配置分析器可以确定负责可达端口的一个或多个配置设置。报告组件140然后可以报告这种发现。
在一个实施例中,网络安全评估器100还可以建议纠正措施144,如果采取该纠正措施,则将预期其解决或补救与可达端口有关的安全问题。例如,如果由于主机在特定安全组中的成员身份而可达到端口,则建议可包括更改该安全组的配置设置,以使外部计算机无法访问该端口。在一个实施例中,这种纠正措施144可以由报告组件140指示或描述。在一个实施例中,可以在具有界面元素的GUI中呈现纠正措施,如果用户选择,则该界面元素可以自动纠正问题。例如,报告组件140可以在用户界面中生成屏幕,该屏幕描述建议的修复,并且包括按钮(或其他GUI元素),如果用户将其按下,则该按钮实现对适当配置设置的改变。
图5示出了根据一些实施例的使用自动无分组网络可达性分析生成的报告的示例。网络安全评估器100可生成报告,描述其发现的各个方面,例如,任何可达的端口、到这些端口的路由、监听那些端口的进程、与这些可达的端口相关的配置设置、与可达的端口相关的任何安全问题、将补救安全问题的任何纠正措施(例如,更改配置设置)和/或任何其他合适的信息。图5示出了针对特定主机(称为实例ID)和该主机上的特定端口的网络可达性报告500的实例。报告500可以包括高层发现510,该高层发现例如指示正在分析的实例的实例ID、受影响的TCP端口号以及通常与该端口相关联的服务。在此实例中,TCP端口号为22,通常用于Secure Shell(SSH)用途。报告500还可以包括问题的严重性520的指示(例如,高、中或低)。报告500可以包括对发现的更详细的描述530。如在图5的实例中所示,描述530可以指示从公共互联网可到达端口的路由:在这种情况下,经由特定的互联网网关。在一个实施例中,描述530可以指示例如由于安全组、访问控制列表、路由表、互联网网关等等的配置而允许访问的原因。描述530还可以指示实例所属的特定虚拟私有云(VPC)、该实例的网络接口的ID、该实例的安全组的ID,等等。另外,描述530可以描述由可到达端口引起的潜在安全问题。最后,报告500可以包括针对补救安全性问题的纠正措施的建议540。在此实例中,建议是编辑安全组以删除通过公用互联网对该特定端口的访问。如以上关于图4所讨论的,在一个实施例中,报告500可以包括用户界面元素,如果被用户输入激活,则该用户界面元素自动实现建议540。在一个实施例中,报告500可以包括显示分析目标的网络拓扑的可视化。可视化可包括突出显示的发现、威胁严重性的颜色编码以及用户交互。
图6示出了根据一些实施例的使用自动无分组网络可达性分析以及使用经历分析的计算机上的代理生成的报告的示例。在一个实施例中,可以在不使用被分析主机上的代理的情况下生成以上讨论的报告500。如在图6的实例中所示,使用这种代理可以允许更详细的可达性报告600。如上所述,报告600可以包括高级发现610、严重性的指示620、详细描述630以及纠正问题的建议640。通过依赖于代理收集的数据,报告600可以指示正在打开和可达端口上侦听的特定进程。在此实例中,该进程是SSH守护程序“sshd”。报告600还可指示对应于sshd进程的特定二进制文件的路径。将这样的进程信息添加到网络可达性报告中可以帮助诊断和纠正安全问题。
图7是示出根据一些实施例的用于自动无分组网络可达性分析的方法的流程图。如710所示,可以执行网络配置数据的自动分析。网络配置数据可以涉及具有主机计算机和潜在地其他设备(包括其他计算机以及联网设备(路由器、交换机等))的网络(例如专用网络)。在一实施例中,分析可包括使用一个或多个查询来查询网络配置数据。可以根据查询语言来表达查询。网络可达性分析可以根据分析的需要动态建立查询或选择预先建立的查询。在一个实施例中,查询不必由分析器100的最终用户编写,最终用户例如是试图分析在他或她管理下的一个或多个主机的网络安全性的网络管理员。
如720中所示,基于分析,该方法可以确定可以从另一台计算机访问的在主机计算机上的一个或多个端口。可达性可以是通过公共互联网或主机所属的专用网络。基于该分析,该方法还可以确定端口可到达的一个或多个路由。例如,路由可以指示组件可以通过互联网网关从互联网到达,通过互联网网关从虚拟专用网(VPN)到达,从对等的虚拟私有云(VPC)等到达。
如730所示,该方法可以确定代理是否被安装在被分析的主机上。该代理可以被配置为监视主机计算机的操作的各个方面,例如,以确定正在侦听开放端口的进程。如果代理不存在,则如740所示,该方法可以生成报告,该报告指示或描述可到达的端口以及该端口可到达的路由。在一个实施例中,报告还可以指示或描述端口可到达的原因,例如与安全组或访问控制列表(ACL)有关的一个或多个配置设置。在一个实施例中,该报告还可以指示或描述一种或多种针对纠正措施的建议,例如改变一种或多种配置设置。
如果存在代理,则如750所示,该方法可以使用由代理提供的数据来确定正在侦听端口的任何进程。如760所示,该方法可以生成报告,该报告指示或描述开放和可到达的端口、端口可到达的路由以及侦听该端口的任何进程。在一个实施例中,该报告还可以指示或描述端口是开放的和可到达的原因,例如一个或多个配置设置。在一个实施例中,该报告还可以指示或描述一种或多种针对纠正措施的建议,例如改变一种或多种配置设置。
网络可达性的说明性规则
如上所述,网络安全评估器100可以根据与网络可达性相关的一组规则135进行操作。尽管以下讨论了此类规则的实例,但以下规则列表并不旨在全面。网络安全评估器100可以仅实现以下规则的一部分和/或可以实现其他规则以评估计算设备的可达性。
在一个实施例中,第一规则可以与代理一起分析实例,以确定该实例是否具有不安全的协议在侦听被允许从可信位置之外的某处访问的端口。该发现的严重性是高。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第一条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置外部进行访问)和停止应用程序(如果操作不需要)。
在一个实施例中,第二规则可以利用代理来分析实例,以确定该实例是否具有在从受信任位置之外的某处可访问的端口上侦听的SSH服务器。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第二条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置外部进行访问)和停止应用程序(如果操作不需要)。
在一个实施例中,第三规则可以利用代理来分析实例,以确定该实例是否具有在从受信任位置之外的某处可访问的端口上侦听的RDP服务器。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第三条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置外部进行访问)和停止应用程序(如果操作不需要)。
在一个实施例中,第四规则可以利用代理来分析实例,以确定该实例是否具有在从受信任位置之外的某处可访问的端口上侦听的数据库服务器。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第四条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置外部进行访问)和停止应用程序(如果操作不需要)。
在一个实施例中,第五规则可以利用代理来分析实例,以确定该实例是否具有在从受信任位置之外的某处可访问的端口上侦听的内联网服务。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第五条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置外部进行访问)和停止应用程序(如果操作不需要)。
在一个实施例中,第六规则可以与代理一起分析实例,以确定该实例是否具有被允许从可信位置之外的某处访问的端口上的连接开放。该发现的严重性是低。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第六条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置外部进行访问)和停止应用程序(如果操作不需要)。
在一个实施例中,第七规则可以使用代理来分析实例以确定该实例是否具有在非典型端口上打开连接的应用。此发现的严重性是低,并且可能被认为是信息性威胁,而不是特定威胁。可与端口号、端口的TCP或UDP关联、在端口上侦听的应用程序(和版本)、用于应用程序的常用端口、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第七条规则,针对纠正措施的建议可包括检查应用程序的行为是否符合预期。
在一个实施例中,第八规则可以在没有代理的情况下分析实例以确定该实例是否允许来自受信任位置之外的某处的ICMP访问。该发现的严重性为中等。可与可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第八条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置之外进行访问)。
在一个实施例中,第九规则可以在没有代理的情况下分析实例以确定该实例是否允许从受信任位置外部的某个地方访问通常不安全的端口(例如,端口20、21、23等)。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、通常使用该端口的应用程序、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第九条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置之外进行访问)。
在一个实施例中,第十规则可以在没有代理的情况下分析实例,以确定该实例是否允许从受信任位置之外的某处访问管理端口号22(通常用于SSH)。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、通常使用该端口的应用程序、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第十条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问权限(如果不需要来自受信任管理位置外部的管理访问)。
在一个实施例中,第十一规则可以在没有代理的情况下分析实例,以确定该实例是否允许从受信任位置之外的某处访问管理端口号3389(通常用于RDP)。该发现的严重性为中等。可与端口号、端口的TCP或UDP关联、通常使用该端口的应用程序、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第十一条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问权限(如果不需要来自受信任管理位置外部的管理访问)。
在一个实施例中,第十二规则可以在没有代理的情况下分析实例以确定该实例是否允许从受信任位置外部的某个地方访问数据库端口(例如,端口1433、1434、3306等)。该发现的严重性是低。可与端口号、端口的TCP或UDP关联、通常使用该端口的应用程序、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第十二条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从互联网进行数据库访问)。
在一个实施例中,第十三规则可以在没有代理的情况下分析实例以确定该实例是否允许从受信任位置之外的某处访问内联网端口。该发现的严重性是低。可与端口号、端口的TCP或UDP关联、通常使用该端口的应用程序、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第十三条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从互联网进行内联网端口访问)。
在一个实施例中,第十四规则可以在没有代理的情况下分析实例以确定该实例是否允许从可信位置之外的某处访问所有其他端口(例如,规则八至十三未涵盖的端口)。该发现的严重性是低。可与端口号、端口的TCP或UDP关联、通常使用该端口的应用程序、可访问该端口的地址范围以及任何安全组、访问控制列表、互联网网关、虚拟网关和其他允许访问的渠道一起报告此发现。对于第十四条规则,针对纠正措施的建议可包括编辑访问控制配置以限制访问(如果不需要从受信任位置之外进行访问)。
在一个实施例中,第十五规则可以使用代理来分析实例,以确定该实例是否在无法从任何地方访问的端口上具有打开的连接。该发现的严重性是低,可能被认为是信息性的。可以将此发现与打开的端口列表、与每个端口关联的应用程序(和版本)以及任何适用的访问控制列表和安全组一起报告。对于第十五条规则,针对纠正措施的建议可包括在不需要时终止无法访问的服务。
在一个实施例中,第十六条规则可以在具有或不具有代理的情况下分析实例,以确定是否所有入站流量都被阻止到该实例。该发现的严重性是低,可能被认为是信息性的。该发现可与任何适用的访问控制列表和安全组一起报告。对于第十六条规则,纠正措施的建议可包括检查隔离是否适当。
虚拟网络验证服务
在一些实施例中,可以使用虚拟网络验证服务来实现网络配置分析。在一些实施例中,虚拟网络验证服务利用声明性逻辑编程语言以允许网络可达性分析器将关于其在提供商网络上的虚拟网络的查询(包含递归查询)表达为约束问题,且通过使用约束求解器(例如,可满足性模理论(satisfiability modulo theories,SMT)求解器)引擎解析查询来提供查询的结果。可以在一些实施例中使用的示例声明性逻辑编程语言是Datalog。应注意可以使用其它声明性逻辑编程语言。
客户端可以使用各种提供商网络服务来在其虚拟网络中提供和配置联网原语;每一服务可以提供其自身的应用程序编程接口(API)和联网语义。常规地,当可以为每一服务提供代码样本和文档时,已不存在虚拟网络中的联网原语之间的交互的正式描述。在一些实施例中,可以根据逻辑编程语言将用于联网原语的虚拟联网语义和逻辑表达且编码为一组虚拟联网规则。虚拟联网规则可以包含表达可以在虚拟网络中实施且由提供商网络的服务和API提供的各种联网原语之间的共同关系和交互的规则。因此,实施例可以在一个位置或文件中提供虚拟联网规则,所述规则描述虚拟联网如何在提供商网络环境中工作的逻辑。
在一些实施例中,虚拟联网规则可以并入有编码联网安全标准的规则,所述标准例如支付卡行业数据安全标准(Payment Card Industry Data Security Standard,PCIDSS)、联邦风险和授权管理计划(Federal Risk and Authorization ManagementProgram,FedRAMP)标准,或健康保险可移植性和责任法案(Health InsurancePortability and Accountability Act,HIPAA)标准,或客户端的内部安全标准。在一些实施例中,虚拟网络验证服务可以提供不同的两组或更多组虚拟联网规则,所述规则各自编码不同的联网安全标准,可以选择性使用所述标准来验证虚拟网络符合特定标准。在一些实施例中,虚拟网络验证服务可以允许客户端(例如网络可达性分析器)限定编码客户端的内部安全标准的定制规则、最佳实践或其它联网要求,且因此可以实施多组虚拟联网规则,其包含由客户端限定应用于其特定虚拟网络的定制规则。
在一些实施例中,虚拟网络验证服务获得用于客户端的虚拟网络的描述性信息。所述描述性信息可以例如识别在虚拟网络中实施的联网原语的实例,包含所述实例的描述(例如,指派给计算实例的角色、对资源实例授予或拒绝的许可、指派给实例的IP地址等),描述实例之间的关系(例如,网络上在实例之间的路径),以及描述到外部实体的接口或接入点(例如,可由虚拟网络外部的实体接入的计算实例)。在一些实施例中,客户端可以从虚拟网络获得描述性信息且将描述性信息提供到虚拟网络验证服务。替代地,在一些实施例中,客户端可以对虚拟网络验证服务授予许可以允许虚拟网络验证服务直接从虚拟网络获得描述性信息。虚拟网络验证服务可以根据声明性逻辑编程语言将描述性信息编码为逻辑程序。
虚拟网络验证服务的实施例当相比于例如端口扫描和句法检查方法等常规网络分析方法时可以提供显著优点。不同于这些常规方法,通过已编码的虚拟联网规则和虚拟网络描述,虚拟网络验证服务可能了解所有联网原语和资源实例以及其复杂的相互关系。不同于依赖于装置在扫描时启用且因此可能仅识别网络上在装置之间在扫描时存在的路径的常规方法,客户端或服务可以仅使用对维持描述虚拟网络的元数据的一个或多个提供商网络服务的API的DESCRIBE调用来获得描述性信息,且因此即使相应装置或实例未启用和收听也可以识别网络上的路径。此外,端口扫描方法可以识别威胁的存在,但不可以识别威胁的不存在。句法检查方法可以检查个别网络装置的浅层性质,但并不识别攻击向量的存在或不存在。在一些实施例中,虚拟网络验证服务在另一方面可以找到与已编码的虚拟联网规则中表达的网络策略的所有可能的偏差,且可以识别威胁和攻击向量的存在和不存在。另外,客户端或服务可以仅使用对维持描述虚拟网络的元数据的一个或多个提供商网络服务的DESCRIBE调用来获得描述性信息,且因此不同于例如需要对客户端的虚拟网络几乎不存在影响的实质网络和CPU带宽的端口扫描方法等常规方法,并且还不像端口扫描方法那样需要对提供商网络上的每个装置的完全网络接入。
在一些实施例中,虚拟网络验证服务从客户端(诸如网络可达性分析器)接收查询。在一些实施例中,可以用类似于SQL但适用于网络配置的表达式查询语言来提出查询。此查询的非限制性示例可以是“VNVS查询-i列表:can-ssh(A,B)”,其请求虚拟网络验证服务(virtual network verification service,VNVS)提供所有实例对的列表,以使得实例A可SSH到实例B。替代地,在一些实施例中,可以用人类友好方式提出查询。此查询的非限制性示例可以有些类似于“为我示出所有实例对的列表,使得实例A可SSH到实例B中”。在一些实施例中,至少一些查询可以是预定义的,且经由到虚拟网络验证服务的图形接口在用户接口元素(例如,菜单)中提供到用户。
查询可以对应于关于产生的逻辑程序的定理且表达约束问题。虚拟网络验证服务可以使用被配置成根据声明性逻辑编程语言解析约束问题的约束求解器程序(也被称作约束求解器引擎)根据编码规则解析由对已编码描述的查询表达的约束问题,且将结果提供到客户端。在一些实施例中,虚拟网络验证服务可以提供用于提出查询的API和接口。在一些实施例中,虚拟网络验证服务可以提供客户端可经由所述API和接口进行选择的一组标准查询。在一些实施例中,虚拟网络验证服务可以允许客户端经由API和接口编写和提交定制查询。
在实施例中,客户端(例如网络可达性分析器)可以经由控制台上的到服务的图形接口或者经由命令行接口(command line interface,CLI)使用虚拟网络验证服务,以获得关于他们在提供商网络上的虚拟网络的问题(作为指定约束的查询提出)的答案。可以作为查询提出的示例问题包含(但不限于):
·虚拟网络中的哪些实例可以从因特网接入?
·哪些实例可以接入虚拟网络上的指定资源(例如,数据库、高速缓冲存储器、存储端点、另一实例等)?
·虚拟网络符合联网安全标准的最佳实践?
·虚拟网络遵守如这组规则中编码的我公司的最佳实践?
更一般化地,客户端(例如网络可达性分析器)可以使用虚拟网络验证服务来验证虚拟网络中的资源与虚拟网络中的其它资源之间的预期管道以及到外部实体的预期管道是开放的,且预期管道是仅有的开放管道(例如,外部实体无法到达虚拟网络中它们不应被允许到达的资源)。
验证资源与虚拟网络中的其它资源之间的管道或者虚拟网络中的资源与外部实体之间的管道是开放的可以包含验证在资源之间或资源与外部实体之间存在网络上的路径或路由(即,存在网络连接性)(例如,从资源到HTTPS网关的路径,外部实体可以经由所述路径接入虚拟网络上的资源)。路径可以是网络上的提供端点之间的网络连接性的直接路径,或替代地可以是通过路由上的一个或多个跳点且提供端点之间的网络连接性的传递性路径。可以仅使用对维持描述虚拟网络的元数据的一个或多个提供商网络服务的API的DESCRIBE调用来获得用于虚拟网络的描述性信息,且因此即使相应装置或实例未启用和收听也可以验证路径。在一些实施例中,用于虚拟网络的描述性信息可以包含对资源授予或拒绝的许可(例如,对虚拟网络上的端点授予或拒绝一个资源接入的许可、指定可以或不可接入给定端点(例如,存储端点)的资源实例的IP地址范围或特定端口的许可等)。在这些实施例中,验证虚拟网络中的路径是开放的可以包含验证用于所述路径的所需许可已经被授予。类似地,验证预期路径是仅有的开放路径可以包含确定虚拟网络中的资源或外部实体并不具有接入它们不应能够接入的资源的许可。
具有适当的若干组虚拟联网规则的虚拟网络验证服务的实施例可以例如由客户端(例如网络可达性分析器)使用以帮助客户验证他们的虚拟网络遵守联网安全标准,例如支付卡行业数据安全标准(PCI DSS)、联邦风险和授权管理计划(FedRAMP)标准,或健康保险可移植性和责任法案(HIPAA)标准,或验证它们的虚拟网络遵守客户端的内部安全标准或其它内部联网要求。
虚拟网络验证服务的另一示例应用是用于识别例如网络安全问题或软件错误等漏洞在虚拟网络中的可能影响。举例来说,如果在虚拟网络中的特定实例上运行的特定软件程序中发现漏洞,那么客户端(例如网络可达性分析器)可以编写且提交查询以确定此实例可与虚拟网络中的其它实例通信的所有方式。结果可以允许客户端识别漏洞的可能影响,且因此做出关于如何最佳处置此情形的决策。举例来说,如果不存在从具有漏洞的实例到具有任务关键数据库的实例的直接路径,那么可以对问题给予较低优先级以根据正常维护时间表来处置。如果具有漏洞的实例将影响具有任务关键数据库的实例,那么可以作出关断虚拟网络的至少部分以立即解决漏洞的决策。
虚拟网络验证服务的另一示例应用在于对用于提供商网络环境的虚拟联网的改变的离线测试。举例来说,描述虚拟联网如何在提供商网络环境中工作的逻辑的虚拟联网规则可以在测试环境中使用以在改变应用于提供商网络之前测试对虚拟联网原语的改变,以确定所述改变对虚拟网络可能具有何种影响。
用于虚拟网络验证服务的另一示例应用在于为客户端自动合成虚拟网络。举例来说,客户端(例如网络可达性分析器)可能想要建立遵守特定联网安全标准且含有指定一组联网原语的虚拟网络。虚拟网络验证服务和虚拟联网规则可以用于自动合成和验证满足所有约束(客户端指定的原语、联网安全标准、描述虚拟联网如何在提供商网络环境中工作的逻辑的虚拟联网规则等)的虚拟网络,使得客户端不必自己来建置和测试虚拟网络。举例来说,标准施加的约束可作为查询提出,且可解析查询以确定满足约束的虚拟网络配置,或替代地确定虚拟网络的配置是否符合约束。可以随后合成符合约束的虚拟网络,或替代地可以修改虚拟网络以符合约束。
用于虚拟网络验证服务的另一示例应用在于允许客户端(例如网络可达性分析器)在提供商网络上实施配置或改变之前验证新虚拟网络配置或对现有虚拟网络的改变。举例来说,虚拟网络配置可以由客户端产生或修改,且用于配置的约束可作为查询提出;可以解析查询以在提供商网络上实施配置之前验证配置符合如查询中提出的客户端的约束。
图8示出根据一些实施例的在提供商网络环境中的虚拟网络验证服务。为客户端提供提供商网络800的服务提供商可以提供服务和应用程序编程接口(API)802,其允许客户端在提供商网络800上的虚拟网络810中建立和管理资源。提供商网络800环境中的虚拟网络810可以广泛地被限定为网络空间(例如,由地址范围或地址空间逻辑地限定),其含有相应客户端的一组提供商网络资源,且充当用于客户端的资源的提供商网络800上的逻辑地隔离的区段。虚拟网络810可以根据网络协议实施专用或本地因特网协议(IP)地址空间,例如在第四版因特网协议(IPv4)地址范围或子网内的32位IP地址。虚拟网络810上的源(例如,诸如计算资源、存储资源、服务器、主机装置等端点)可以被指派虚拟网络810的地址空间内的IP地址(例如,32位IPv4地址)。提供商网络800上的客户端的虚拟网络810包含客户端的资源实例,例如主机装置上的虚拟机(virtual machines,VM),其由客户端配置为虚拟计算资源实例。可以根据硬件虚拟化技术实施提供商网络上的至少某些资源实例,所述硬件虚拟化技术使多个操作系统能够在主机计算机上同时运行,即作为VM在主机装置上同时运行。主机装置上的监管程序或虚拟机监视器(virtual machine monitor,VMM)在具有虚拟平台的相应主机上呈现VM,且监视主机装置上的VM的执行。可以为每一VM提供一个或多个IP地址;相应主机上的VMM可以知道主机上的VM的IP地址。
可以经由各种提供商网络服务802将各种联网资源、结构和功能性(称为联网原语)提供到提供商网络800的客户端。客户端可以至少部分地使用各种服务和API 802在提供商网络800上创建、配置、填充和修改其虚拟网络810。以下列出了可以由服务802提供的示例联网原语,且并不希望是限制性的:
·虚拟网络。
·资源实例(例如,由客户端使用服务802配置为虚拟计算资源实例(例如,应用程序服务器、网络服务器、数据库服务器、接入点、网关、负载平衡器、特定提供商网络服务的实例,例如记录服务、网络监视和分析服务、代码存储库服务、容器管理服务等)的VM)。
·标签-在一些实施例中,可以允许客户端通过标记资源实例来将特定角色指派给其虚拟网络内的特定资源实例(例如,VM)。标签可以例如是文本串,例如PROD或DEV。标签可以存储于用于资源实例的元数据中。标签可以包含标准提供商网络限定的标签和/或客户端限定的标签。用于资源实例的示例角色包含(但不限于)安全套接字壳(Secure SocketShell,SSH)接入实例、记录服务实例、代码存储库实例、制作资源实例和开发资源实例。
·虚拟网络端点(例如,诸如计算资源、存储资源、服务器、主机装置等端点)。
·虚拟网络对等连接。在一些实施例中,客户端可以在提供商网络上建立两个或更多个虚拟网络。对等连接可以在虚拟网络之间建立,其允许虚拟网络在提供商网络上安全地通信而不必遍历例如因特网的外部网络。
·因特网网关,其提供从虚拟网络外部的实体对虚拟网络的资源中的至少某些资源的接入。
·负载平衡器,例如在虚拟网络上的资源实例的群组或集群之间分配网络业务的虚拟化负载平衡器实例。
·网络地址转换(Network Address Translation,NAT)实例。
·NAT网关。
·网络接入控制列表(Network Access Control Lists,ACLs)。
·网络接口。
·路由表。
·子网-虚拟网络可以但不一定细分为两个或更多个子网络或子网。
·安全群组-在一些实施例中,提供商网络可以允许客户端在客户端的虚拟网络内、在子网内或跨越子网建立和管理虚拟安全群组。安全群组是资源实例的逻辑分组,且充当虚拟防火墙,其根据安全群组规则控制被允许到达安全群组内的一个或多个资源实例的业务。
·区-可以在多个地理位置或区域中支持提供商网络服务和资源(例如,虚拟网络、VM实例、数据存储、网关、负载平衡器等)。如本文所使用,区是支持提供商网络服务且其中客户端可以启动和配置资源的单独地理区域。服务和API可以允许客户端在一个或多个区中启动或复制其资源。
·区带-每一区可以包含多个隔离位置,在本文中被称作区带。客户端的资源实例可以跨越区内的多个区带分布,以使得如果一个区带中的资源实例出故障,那么另一区带中的实例可处置请求。
在一些实施例中,客户端可以使用相应提供商网络服务802在提供商网络800上建立虚拟网络810,其包含上方的联网原语中的一个或多个的实例。图8示出提供商网络800上的示例虚拟网络810,且并不希望是限制性的。客户端的虚拟网络810可以包含资源实例818(例如,VM),其实施虚拟网络的功能性,例如应用程序服务器、网络服务器、数据库服务器等等。资源实例818可以包含实例818A和818B的群组或集群;例如实例818A可以表示制作环境,而实例818B可以表示开发环境。在一些实施例中,实例818A和818B可以在不同子网和/或安全群组中。
客户端的虚拟网络810还可以包含服务实例816(例如,VM),其在客户端的虚拟网络810中实施特定提供商网络服务,例如应用程序和操作系统记录服务、网络监视和分析服务、代码存储库服务、容器管理服务等等。
客户端的虚拟网络810还可以包含接入实例,其使客户端网络880上的装置882和其它外部实体890能够经由例如因特网等中间网络850与虚拟网络810内的资源和端点通信。接入实例可以例如包含负载平衡器和网关(因特网网关、NAT网关等)。如此示例中所示,在一些实施例中,接入实例可以包含HTTPS接入实例814和SSH接入实例812。HTTPS接入实例814可以包含用于使用HTTPS协议从外部实体890分别接入资源实例818A和818B的实例814A和814B,以及用于使用HTTPS协议从客户端网络880上的装置882接入服务实例816的实例814C。在一些实施例中,客户端可以例如使用SSH从客户端网络880上的装置882(例如,控制台)接入虚拟网络810中的资源实例。在一些实施例中,为了使用SSH接入资源实例,对客户端给定实例的IP地址和密钥。客户端可随后使用所提供信息直接SSH到实例中。在一些实施例中,SSH接入实例812可以充当代理,其允许客户端使用SSH协议从客户端网络880上的装置882(例如,控制台)接入虚拟网络810上的客户端的资源实例。举例来说,SSH接入实例812可以在客户端的虚拟网络的公开可接入的子网中。客户端的资源实例中的至少某些可以在不是公开可接入的子网中。这些资源实例可以在安全群组中,其允许从附接到SSH接入实例812的安全群组进行SSH接入。客户端可以连接到SSH接入实例112以连接到客户端的资源实例。
如图8所示,提供商网络800可以包含由提供商网络800上的一个或多个计算装置实施的虚拟网络验证服务830。在一些实施例中,可以例如由如图8中所图示的SSH接入实例812在客户端的虚拟网络800上实施虚拟网络验证服务830的实例。虚拟网络验证服务830可利用声明性逻辑编程语言(例如,Datalog)以允许客户端将关于其在提供商网络上的虚拟网络的查询(包含递归查询)表达为约束问题,且通过使用约束求解器引擎解析查询来提供查询的结果。
在虚拟网络验证服务830中,由服务802提供的用于联网原语的虚拟联网语义和逻辑可以根据逻辑编程语言而表达且编码为一组虚拟联网规则。虚拟联网规则可以包含在虚拟网络810中实施的表达各种联网原语之间的共同关系和交互的规则。虚拟联网规则还可以并入有编码联网安全标准(例如,PCI、FedRAMP、HIPAA等)或客户端的内部安全标准或其它联网要求的规则。
虚拟网络验证服务830获得用于客户端的虚拟网络810的描述性信息。描述性信息可以例如识别在虚拟网络810中实施的联网原语的实例,包含各种实例的描述(例如,指派给实例的角色、对实例授予或拒绝的许可、指派给实例的IP地址等),描述实例之间的关系(例如,实例之间的路径),且描述到外部实体890的接口或接入点。在一些实施例中,客户端可以从虚拟网络810获得描述性信息且将描述性信息提供到虚拟网络验证服务830。替代地,在一些实施例中,客户端可以对虚拟网络验证服务830授予许可以允许虚拟网络验证服务830直接从虚拟网络810获得描述性信息。虚拟网络验证服务830可以根据声明性逻辑编程语言将描述性信息编码为逻辑程序。
虚拟网络验证服务830可利用声明性逻辑编程语言,且允许客户端例如经由到客户端网络880中的客户端装置882上的服务830的图形接口或命令行接口(CLI)提出关于其在提供商网络800上的虚拟网络810的查询。可以在一些实施例中使用的示例逻辑编程语言是Datalog。应注意可以使用其它声明性逻辑编程语言。在一些实施例中,可以用稍微类似于SQL但适用于网络配置的表达式查询语言来提出查询。替代地,在一些实施例中,可以人类友好方式提出查询。查询对应于关于产生的逻辑程序的定理且表达约束问题。虚拟网络验证服务830可使用约束求解器引擎根据编码规则针对编码描述解析由查询表达的约束问题,且将结果提供到客户端。在一些实施例中,虚拟网络验证服务830可以提供用于提出查询的API和接口。在一些实施例中,虚拟网络验证服务830可以提供客户端可经由所述API和接口进行选择的一组标准查询。在一些实施例中,虚拟网络验证服务830可以允许客户端经由API和接口编写和提交定制查询。
以下描述关于图8所示的示例虚拟网络可以由客户端提出的示例查询,且并不希望是限制性的。
在虚拟网络810的一些实施例中,虚拟网络810上的资源应当仅可经由SSH通过SSH接入实例812从客户端网络880上的指定端点接入。因此,客户端可能想要验证虚拟网络810中没有实例可经由SSH从中间网络850上的端点接入。验证此情形的示例查询可以表达为:
所有实例:
!internet-can-ssh-to-instance(Instance)。
客户端还可能想要验证从客户端网络880,可经由SSH接入虚拟网络810上的SSH接入实例812。如前文所述,在一些实施例中,虚拟网络810中的至少某些客户端的实例可以被指派特定角色;所述角色可以由存储于实例的元数据中的标签指示。标签可以包含于描述性信息中,且因此可以在用于虚拟网络810的编码描述中指示。因此,在一些实施例中,可以在查询中使用标签以例如验证被指派特定角色的实例可实际执行那些角色。验证从客户端网络880可经由SSH接入虚拟网络810上的SSH接入实例812的示例查询可以表达为:
所有实例:
atom/instance-tag(Instance,tag-key/Name,tag-value/SSHAccessInstance)
<=>ClientNetwork-can-ssh-to-instance(Instance).
以上表达式当由约束求解器评估时检查虚拟网络810上的所有实例;对于标记为SSHAccessInstance的实例,约束求解器确定所述实例是否可经由SSH从客户端网络880到达,在是的情况下返回真且在否的情况下返回假。
以下列出客户端可以通过向虚拟网络验证服务830提出适当查询来验证的虚拟网络810的方面的一些其它示例,且并不希望是限制性的:
·仅SSH接入实例812可经由SSH从客户端网络880接入。
·资源实例818A和818B可以通过其相应HTTPS接入实例814A和814B由外部实体890经由中间网络850B(例如,因特网)到达。
·资源实例818A和818B可到达中间网络850B以验证请求。
·资源实例818A和818B可写入到指定服务实例816。
·可通过HTTPS接入实例814C从客户端网络880到达指定服务实例816。
·指定服务实例816可到达虚拟网络810上的指定端点。
·所有实例都标记有一组指定标签中的一个。
图9示出根据一些实施例的示例虚拟网络验证服务的组件和操作。虚拟网络验证服务930可以由提供商网络上的一个或多个计算装置实施。在一些实施例中,可以例如由如图8中所图示的SSH接入实例812在客户端的虚拟网络上实施虚拟网络验证服务930的实例。如图9所示,在一些实施例中,虚拟网络验证服务930可以包含服务引擎934、约束求解器936引擎,和API 932。服务引擎934可以实施但不限于规则编码950逻辑、查询处理960逻辑,和描述编码970逻辑。约束求解器936可代表声明性逻辑编程语言引擎,其被配置成基于编码虚拟联网规则938解析由编码描述940表示的关于虚拟网络的查询,包含递归查询。API 932将服务910的功能性暴露于外部实体,包含但不限于客户端。
在图9的(1A)和(1B)处,服务930的规则编码950逻辑可以获得(1A)且编码(1B)将应用于虚拟网络的虚拟联网规则938。待编码的规则可以从服务提供商获得,从客户端获得,或从其它外部实体或来源获得。在本文档中稍后提供示例编码规则938。
在实施例中,可以获得在虚拟网络中使用的联网原语的虚拟联网语义和逻辑,且根据逻辑编程语言编码为一组虚拟联网规则938。虚拟联网规则938可以包含表达可以在虚拟网络中实施且由提供商网络的服务和API提供的各种联网原语之间的共同关系和交互的规则。因此,实施例可以在一个位置或文件中提供虚拟联网规则938,所述规则描述虚拟联网如何在提供商网络环境中工作的逻辑。
在一些实施例中,虚拟网络验证服务930可以获得且编码用于联网安全标准的规则,例如支付卡行业数据安全标准(PCI DSS)、联邦风险和授权管理计划(FedRAMP)标准,或健康保险可移植性和责任法案(HIPAA)标准,且因此可以实施包含用于验证联网安全标准的规则的多组虚拟联网规则938。在一些实施例中,虚拟网络验证服务930可以提供不同的两组或更多组虚拟联网规则938,所述规则各自编码不同的联网安全标准,客户端可以选择性使用所述标准来验证它们的虚拟网络符合特定标准。在一些实施例中,虚拟网络验证服务930可以允许客户端限定编码客户端的内部安全标准的定制规则、最佳实践或其它联网要求,且因此可以实施多组虚拟联网规则938,其包含由客户端限定应用于其特定虚拟网络的定制规则。
在图9的(2)处,服务930的查询处理960逻辑可以从客户端接收查询以根据虚拟联网规则938针对虚拟网络进行解析。在一些实施例中,客户端可以经由到服务API 932的图形接口或命令行接口(CLI)提供关于其在提供商网络上的虚拟网络的查询。在一些实施例中,可以用类似于SQL但适用于网络配置的表达式语言来提出查询。替代地,在一些实施例中,可以人类友好方式提出查询。上文参看图8描述了示例查询。
在图9的(3A)和(3B)处,服务930的描述编码970逻辑可以获得(3A)且编码(3B)虚拟网络的描述。在一些实施例中,服务930的描述编码970逻辑获得用于虚拟网络的描述性信息(3A)且将所述描述性信息编码(3B)为用于其接收的每一查询的编码描述940以确保当解析查询时描述940是最新的。然而,在一些实施例中,描述编码970逻辑可以获得且编码用于虚拟网络的描述性信息,且使用编码描述940处理两个或更多个查询。在图9的(3A)处,服务930的描述编码970逻辑获得用于客户端的虚拟网络的描述性信息。描述性信息可以例如识别在虚拟网络中实施的联网原语的实例,包含各种实例的描述(例如,指派给实例的角色、对实例授予或拒绝的许可、指派给实例的IP地址等),描述实例之间的关系(例如,实例之间的路径),且描述到外部实体的接口或接入点。在一些实施例中,客户端可以从虚拟网络获得描述性信息且将描述性信息提供到具有查询的虚拟网络验证服务930。替代地,在一些实施例中,客户端可以对虚拟网络验证服务930授予许可以允许虚拟网络验证服务230响应于查询而直接从虚拟网络获得描述性信息。在图9的(3B)处,服务930的描述编码970逻辑可以根据声明性逻辑编程语言将获得的描述性信息编码为逻辑程序。
在图9的(4)处,服务930的查询处理960逻辑可以将查询提供到约束求解器936。约束求解器936根据编码规则938针对编码描述940解析由查询表达的约束问题,且在(5A)处将结果(例如,对由查询提出的问题的答案)提供到查询处理960,所述查询处理在(5B)处将结果格式化且经由API 932将格式化结果提供到客户端。格式化结果可以包含文字结果(例如,表达对由查询提出的约束的答案的文字,例如“是”、“否”、“真”或“假”,满足由查询提出的约束的实例的列表等)和/或图形结果(例如,通过解析查询而确定的两个或更多个实例之间的关系的图形表示,识别通过解析查询所识别的实例的虚拟网络的图形表示等)。
图10是根据一些实施例的用于将关于虚拟网络的信息提供到提供商网络的客户端的方法的流程图。如在1000所指示,可以获得且编码联网规则。待编码的规则可以从服务提供商获得,从客户端获得,或从其它外部实体或来源获得。虚拟联网规则可以表达用于在提供商网络上的虚拟网络中使用的联网原语的虚拟联网语义和逻辑。在一些实施例中,虚拟联网规则可以表达用于联网安全标准的规则,例如支付卡行业数据安全标准(PCI DSS)、联邦风险和授权管理计划(FedRAMP)标准,或健康保险可移植性和责任法案(HIPAA)。在一些实施例中,虚拟联网规则可以包含表达客户端的内部安全标准或其它联网要求的客户端限定的规则。在本文档中稍后提供示例编码规则。
如在1010指示,虚拟网络验证服务可以从客户端(例如网络可达性分析器)接收关于虚拟网络的查询。在实施例中,客户端可以经由控制台上的到服务的图形接口或者经由命令行接口(CLI)使用虚拟网络验证服务,以获得关于他们在提供商网络上的虚拟网络的问题(作为查询提出,包含递归查询)的答案。在一些实施例中,可以用类似于SQL但适用于网络配置的表达式语言来提出查询。替代地,在一些实施例中,可以人类友好方式提出查询。上文参看图8描述了示例查询。
如在1020指示,虚拟网络验证服务可以获得且编码关于虚拟网络的描述性信息。所述描述性信息可以例如识别在虚拟网络中实施的联网原语的实例,包含所述实例的描述(例如,指派给计算实例的角色、对资源实例授予或拒绝的许可、指派给实例的IP地址等),描述实例之间的关系(例如,在实例之间的路径),以及描述到外部实体的接口或接入点(例如,可由虚拟网络外部的实体接入的计算实例)。在一些实施例中,客户端可以从虚拟网络获得描述性信息且将描述性信息提供到虚拟网络验证服务。替代地,在一些实施例中,客户端可以对虚拟网络验证服务授予许可以允许虚拟网络验证服务直接从虚拟网络获得描述性信息。虚拟网络验证服务可以根据声明性逻辑编程语言(例如,Datalog)将描述性信息编码为逻辑程序。
如在1030指示,虚拟网络验证服务可以使用声明性逻辑编程语言(例如,Datalog)约束求解器引擎根据编码虚拟联网规则解析针对编码描述的查询。如在1040所指示,可以格式化查询解析的结果(例如,对由查询提出的问题的答案)且提供到客户端。格式化结果可以包含文字结果(例如,表达对由查询提出的约束的答案的文字,例如“是”、“否”、“真”或“假”,满足由查询提出的约束的实例的列表等)和/或图形结果(例如,通过解析查询而确定的两个或更多个实例之间的关系的图形表示,识别通过解析查询所识别的实例的虚拟网络的图形表示等)。
如由从元素1040返回到元素1010的箭头指示,可以迭代地执行元素1010-1040以提出和解析关于客户端的虚拟网络的多个查询。在一些实施例中,举例来说,客户端可以写入包含一系列查询的脚本,且运行脚本以对虚拟网络验证服务提出查询且从虚拟网络验证服务接收结果。如图10所示,在一些实施例中,虚拟网络验证服务可以获得用于虚拟网络的描述性信息且将描述性信息编码为用于其接收的每一查询的编码描述以确保当解析查询时描述是最新的。然而,在一些实施例中,虚拟网络验证服务可以获得且编码用于虚拟网络的描述性信息,且使用编码描述处理两个或更多个查询。
图11是根据一些实施例的用于将关于虚拟网络的信息提供到提供商网络的客户端的方法的流程图,其中客户端将描述性信息和查询提供到虚拟网络验证服务。如在1100所指示,客户端(例如网络可达性分析器)例如使用由提供商网络服务API提供的DESCRIBE调用从虚拟网络获得描述性信息。如在1110所指示,客户端将查询和描述性信息发送到虚拟网络验证服务。如在1120所指示,验证服务编码关于虚拟网络的描述性信息。如在1130所指示,验证服务使用约束求解器引擎根据编码虚拟网络规则解析针对编码描述的查询。如在1140所指示,虚拟网络验证服务将查询解析的结果提供到客户端。
图12是根据一些实施例的用于将关于虚拟网络的信息提供到提供商网络的客户端的方法的流程图,其中客户端将描述性信息和接入虚拟网络的许可提供到虚拟网络验证服务。如在1200所指示,客户端(例如网络可达性分析器)对虚拟网络验证服务准予许可,从而允许服务从虚拟网络获得描述性信息,例如使用对维持描述虚拟网络的元数据的一个或多个提供商网络服务的DESCRIBE调用以获得虚拟网络的信息的许可。如在1210所指示,客户端将查询发送到虚拟网络验证服务。如在1220所指示,虚拟网络验证服务例如使用对维持描述虚拟网络的元数据的一个或多个提供商网络服务的DESCRIBE调用从虚拟网络获得描述性信息。如在1230所指示,虚拟网络验证服务编码关于虚拟网络的描述性信息。如在1240所指示,虚拟网络验证服务使用约束求解器引擎根据规则解析针对编码描述的查询。如在1250所指示,虚拟网络验证服务将查询解析的结果提供到客户端。
图13示出根据一些实施例的包含两个或更多个对等虚拟网络的提供商网络环境中的客户端的虚拟网络实施方案。部分地提供图13以描述在如本文中所描述的虚拟网络验证服务1330中可以使用的示例虚拟联网规则。如图13所示,提供商网络1300上的客户端的虚拟网络实施方案1310可以包含两个或更多个虚拟网络1320。图13示出客户端的虚拟网络实施方案1310中的两个虚拟网络1320A和1320B。在一些实施例中,虚拟网络1320A和1320B可以各自包含一个或多个子网,且可以在虚拟网络1320A和1320B中建立安全群组。网络端点1322A和1322B表示相应虚拟网络1320A和1320B中的联网原语的各种实例(例如,资源实例)的网络接口。可以在提供商网络1300上在虚拟网络1320A与1320B之间建立对等连接1324,其允许虚拟网络1320A和1320B上的实例在提供商网络1300上安全地通信而不必遍历外部网络1350,例如因特网。
下文给出“专用路由”的示例规则。这些示例并不希望是限制性的。如这些示例中所使用的“路由”意味着在无防火墙存在下IP包是否可从一个端点流动到另一端点。在虚拟网络实施方案1310内的两个端点之间的路由可称为“专用路由”。规则可以取决于两个端点是在同一虚拟网络1320中还是在虚拟网络实施方案1310中的不同虚拟网络1320中而不同。以下描述根据描述性逻辑编程语言的用于确定包是否可在虚拟网络实施方案1310中的两个端点之间流动的示例规则:
第一行限定端点的类型。Endpoint1和Endpoint2是变量。如果(routable-private-one-way Endpoint1 Endpoint2)和(routable-private-one-wayEndpoint2Endpoint1)两者为真,那么规则(routable-private Endpoint1 Endpoint2)评估为真(且否则为假)。对于虚拟网络1320内的端点之间的路由,规则routable-private-one-way可以限定为:
Endpoint1和Endpoint2是变量。Vnetwork是同一变量(即,指示同一虚拟网络1320)。如果Endpoint1和Endpoint2两者在同一虚拟网络1320中,那么此规则评估为真(且否则为假)。
对于通过对等连接1324在不同虚拟网络1320中的端点之间的路由,规则routable-private-one-way可以如下限定。前面带有“//”的文字是注释:
图14示出根据一些实施例的在提供商网络上的实例性虚拟网络中的子网和安全群组。如上所述,网络可达性分析器可以建议和/或执行纠正措施以关闭端口和/或使端口不可达,包括对安全群组进行更改。在一些实施例中,提供商网络可以允许客户端在客户端的虚拟网络1410内在子网1414内或跨越子网1414建立和管理虚拟安全群组1416。在一些实施例中,安全群组1416是资源实例1418的逻辑分组且充当虚拟防火墙,所述虚拟防火墙根据安全群组规则控制被允许到达安全群组1416内的一个或多个资源实例1418的业务。客户端可以在虚拟网络1410内建立一个或多个安全群组1416,且可以使虚拟网络1410中的每一资源实例1418与安全群组1416中的一个或多个关联。在一些实施例中,客户端可以建立和/或修改用于每一安全群组1416的规则,所述规则控制被允许到达与安全群组1416相关联的资源实例1418的入站业务。
在图14中示出的示例虚拟网络1410中,虚拟网络1410细分为两个子网1414A和1414B。对虚拟网络1410的接入受网关1430控制。每一子网1414可以包含至少一个路由器1412,其用以向(和从)相应子网1414上的资源实例1418路由业务。在一些实施例中,网络接入控制列表(access control list,ACL)可用以在路由器1412处控制对子网1414的接入。在图14中所示的示例中,资源实例1418A至1418E在子网1414A上,且资源实例1418F至1418J在子网1414B上。客户端已经建立四个安全群组1416A至1416D。如图14中所示,安全群组可以延伸跨越子网1414,例如包含子网1414A上的资源实例1418A和1418B以及子网1414B上的资源实例1418F的安全群组1416A。另外,资源实例1418可以包含于两个或更多个安全群组1416中,例如包含于安全群组1416A和1416B中的资源实例1418A。
说明性计算机系统
在至少一些实施例中,实施在本文描述的一个或多个技术的一部分或全部的计算机系统可以包括计算机系统,所述计算机系统包括或被配置为访问一个或多个计算机可读介质。图15示出这类计算设备1500。在所示的实施例中,计算设备1500包括通过输入/输出(I/O)接口1530联接到系统存储器1520的一个或多个处理器1510A-1510N。计算设备1500进一步包括联接到I/O接口1530的网络接口1540。
在各个实施例中,计算装置1500可以是包含一个处理器的单处理器系统或者包含几个处理器1510A-1510N(例如,两个、四个、八个或另一适合的数量)的多处理器系统。处理器1510A-1510N可包括能够执行指令的任何合适的处理器。举例来说,在各种实施例中,处理器1510A-1510N可以是实施各种指令集架构(ISA)(如x86、PowerPC、SPARC,或MIPS ISA,或任何其它合适的ISA)中的任何指令集架构的处理器。在多处理器系统中,每个处理器1510A-1510N可以共同地,但不是必须地实施相同的ISA。
系统存储器1520可被配置为存储可由处理器1510A-1510N访问的程序指令和数据。在各种实施例中,可使用任何合适的存储器技术(如静态随机存取存储器(SRAM)、同步动态RAM(SDRAM)、非易失性/闪存型存储器或任何其它类型的存储器)实施系统存储器1520。在所示实施例中,实施一个或多个期望功能的程序指令和数据(如以上所描述的那些方法、技术和数据)被示出为作为代码(即程序指令)1525和数据1526存储在系统存储器1520内。在所示的实施例中,系统存储器1520还存储实现上述网络安全评估器100的各方面的程序代码和数据。
在一个实施例中,I/O接口1530可以被配置成协调处理器1510A-1510N、系统存储器1520与所述装置中包含网络接口1540或其它外围接口在内的任何外围装置之间的I/O流量。在一些实施例中,I/O接口1530可以执行任何必要的协议、定时或其它数据转换,以将来自一个组件(例如,系统存储器1520)的数据信号转换成适于由另一组件(例如,处理器1510A-1510N)使用的格式。在一些实施例中,例如,I/O接口1530可包括对通过各种类型的外围总线(如外围组件互连(PCI)总线标准或通用串行总线(USB)标准的变体)所附接的设备的支持。在一些实施例中,I/O接口1530的功能可以被分成两个或更多个单独的组件,例如北桥和南桥。此外,在一些实施例中,I/O接口1530(如用于系统存储器1520的接口)的一些或所有功能可直接并入到处理器1510A-1510N中。
网络接口1540可被配置为允许数据在计算设备1500与附接到一个或多个网络1550的其它设备1560之间交换。在各种实施例中,例如,网络接口1540可支持通过任何合适的有线或无线通用数据网络(如以太网类型)进行的通信。另外,网络接口1540可支持通过电信/电话网络(如模拟语音网络或数字光纤通信网络)、通过存储区域网络(如光纤通道SAN)或通过任何其它合适类型的网络和/或协议进行的通信。
在一些实施例中,系统存储器1520可以是计算机可读(即,计算机可访问)介质的一个实施例,所述计算机可读介质被配置为存储如以上所描述的用于实施对应的方法和装置的实施例的程序指令和数据。例如,系统存储器1520可以存储与网络安全评估器100相关联的程序代码和数据。在一些实施例中,可以在不同类型的计算机可读介质上接收、发送或存储程序指令和/或数据。一般而言,计算机可读介质可包括通过I/O接口1530联接到计算设备1500的非暂态存储介质或存储器介质,如磁性或光学介质,例如,磁盘或DVD/CD。非暂态计算机可读存储介质还可包括在计算设备1500的一些实施例中可作为系统存储器1520或另一种类型的存储器被包括的任何易失性或非易失性介质,如RAM(例如,SDRAM、DDRSDRAM、RDRAM、SRAM等)、ROM等。进一步地,计算机可读介质可包括传输介质或如电信号、电磁信号或数字信号的信号,所述传输介质或所述信号经由如网络和/或无线链路的通信介质进行传送,如可经由网络接口1540实施。如图15中所说明的计算装置的多个计算装置中的部分或全部可用以在各种实施例中实施所描述的功能性;例如,在多种不同装置和服务器上运行的软件部件可以合作来提供功能性。在一些实施例中,可以使用存储设备、网络设备或各种类型的计算机系统来实施所描述的功能的一部分。如本文所使用的术语“计算设备”是指至少所有这些类型的设备,并且不限于这些类型的设备。
如附图中所示的和本文所描述的各种方法代表方法的实施例的实例。方法可以以软件、硬件或其组合的方式实施。在方法中的各种方法中,可改变步骤的顺序,并且可对各种元素进行添加、重新排序、组合、省略、修改等。可自动地(例如,在没有由用户输入直接提示的情况下)和/或以编程方式(例如,根据程序指令)执行步骤中的各个步骤。
可根据以下条款描述本公开的实施例:
1.一种系统,其包含:
一个或多个计算设备,其配置为实施网络安全评估器,其中所述网络安全评估器配置为:
生成针对包括主机计算机的网络的网络配置数据的一个或多个查询,其中所述一个或多个查询以查询语言表达,并且其中所述一个或多个查询至少部分地基于一组规则生成;
确定所述主机计算机上的开放的并且从网络外部可达的一个或多个端口,其中至少部分地基于所述一个或多个查询的结果确定所述一个或多个端口;
确定在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述主机计算机上的代理确定所述一个或多个进程;和
生成描述所述一个或多个端口以及所述一个或多个进程的报告。
2.根据条款1所述的系统,其中所述网络安全评估器还被配置为:
确定并报告从网络外部到所述一个或多个端口的一条或多条路由。
3.根据条款1或2中任一项所述的系统,其中所述网络安全评估器还被配置为:
确定并报告使所述一个或多个端口开放并且从网络外部可到达的一个或多个配置设置。
4.根据条款1至3中任一项所述的系统,其中所述网络安全评估器还被配置为:
确定并报告一项或多项纠正措施,这些纠正措施如果被执行会关闭一个或多个所述端口,或者使一个或多个所述端口无法从网络外部可达。
5.一种由一个或多个计算设备执行的计算机实现的方法,包括:
对包括计算设备的网络执行网络配置数据的分析;
确定在所述计算设备上的可从另一计算设备到达的一个或多个端口,其中至少部分地基于所述分析确定所述一个或多个端口;
确定到所述一个或多个端口的一条或多条路由,其中至少部分地基于所述分析确定所述一条或多条路由;和
生成描述所述一个或多个端口以及所述一个或多个路由的报告。
6.根据条款5所述的方法,其进一步包括:
确定并报告在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述计算设备上的代理软件确定所述一个或多个进程。
7.根据条款5或6中任一项所述的方法,还包括:
确定并报告使所述一个或多个端口可到达的一个或多个配置设置。
8.根据条款5至7中任一项所述的方法,还包括:
确定并报告一项或多项纠正措施,如果执行所述纠正措施,会使一个或多个所述端口无法到达。
9.根据条款8所述的方法,其进一步包括:
在用户界面中显示一个或多个界面元素,如果选择所述界面元素,则导致执行至少一种所述纠正措施。
10.根据条款5至9中任一项所述的方法,其中所述分析至少部分地基于对所述网络配置数据的一个或多个查询执行,其中所述一个或多个查询以查询语言表达,并且其中至少部分地基于一组规则生成所述一个或多个查询。
11.根据条款5至10中任一项所述的方法,其中确定所述一个或多个端口而不向所述一个或多个端口发送分组。
12.根据条款5至11中任一项所述的方法,还包括:
通过从另外的计算设备向所述一个或多个端口发送一个或多个分组来验证所述一个或多个端口可到达。
13.一种计算机可读存储介质,所述计算机可读存储介质存储程序指令,所述程序指令能够由计算机执行,以执行:
对包括主机计算机的网络执行网络配置数据的分析;
确定所述主机计算机上的开放的并且从另一计算设备可达的一个或多个端口,其中至少部分地基于所述分析的结果确定所述一个或多个端口;
确定在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述主机计算机上的代理确定所述一个或多个进程;和
生成描述所述一个或多个端口以及所述一个或多个进程的报告。
14.根据条款13所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
确定并报告在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述主机计算机上的代理软件确定所述一个或多个进程。
15.根据条款13或14中任一项所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
确定并报告使所述一个或多个端口开放且可到达的一个或多个配置设置。
16.根据条款13至15中任一项所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
确定并报告一项或多项纠正措施,这些纠正措施如果被执行会关闭一个或多个所述端口,或者使一个或多个所述端口无法可达。
17.根据条款16所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
在用户界面中显示一个或多个界面元素,如果选择所述界面元素,则导致执行至少一种所述纠正措施。
18.根据条款13至17中任一项所述的计算机可读存储介质,其中所述分析至少部分地基于对所述网络配置数据的一个或多个查询执行,其中所述一个或多个查询以查询语言表达,并且其中至少部分地基于一组规则生成所述一个或多个查询。
19.根据条款13至18中任一项所述的计算机可读存储介质,其中确定所述一个或多个端口而不从另一计算机向所述一个或多个端口发送分组。
20.根据条款13至19中任一项所述的计算机可读存储介质,其中至少部分地基于受信任位置的白名单,从所述报告中排除另外的一个或多个开放且可到达的端口。
本文中对本发明的描述中所使用的术语仅出于描述特定实施例的目的并且并不旨在对本发明进行限制。如在本发明的说明书和所附权利要求书中所用的,单数形式“一”、“一个”和“所述”旨在也包括复数形式,除非上下文另有明确说明。还应理解的是,本文所用的术语“和/或”是指并且涵盖一个或多个相关联的所列项目的任何和所有可以能的组合。应进一步理解的是,当在本说明书中使用时,术语“包括”、“包括的”、“包含”和/或“包含的”指定了声明的特征、整体、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整体、步骤、操作、元件、组件和/或其组合。
如本文所使用的,取决于上下文,术语“如果”可以被解释为意味“当……时”或“在……上”或“响应于确定”或“响应于检测”。类似地,取决于上下文,短语“如果是确定的”或“如果[陈述的条件或事件]被检测到”可以被解释为意味“在确定时”或“响应于确定”或“在检测到[所述条件或事件]时”或“响应于检测到[陈述的条件或事件]”。
应当理解的是,尽管本文可以使用术语第一、第二等来描述各种组件,但是这些元素不应受这些术语限制。这些术语仅用于将一个元素与另一元素区分开。例如,在不脱离本发明的范围的情况下,第一接触可以被称为第二接触,并且类似地,第二接触可以被称为第一接触。第一触点和第二触点两者都是触点,但是它们不是同一触点
本文阐述了许多特定的细节以提供对所要求保护的主题的透彻理解。然而,本领域技术人员将理解,所要求保护的主题可以在没有这些特定的细节的情况下实施。在其它实例中,将不详细描述本领域技术人员已知的方法、装置或系统,使得不混淆所要求保护的主题。对于受益于这个公开内容的本领域技术人员来说显而易见的是,可以进行各种修改和改变。本发明旨在包含所有这些修改和变化,相应地,以上描述应被认为是说明性的而不是限制性的。
Claims (15)
1.一种系统,其包含:
一个或多个计算设备,其配置为实施网络安全评估器,其中所述网络安全评估器配置为:
生成针对包括主机计算机的网络的网络配置数据的一个或多个查询,其中所述一个或多个查询以查询语言表达,并且其中所述一个或多个查询至少部分地基于一组规则生成;
确定所述主机计算机上的开放的并且从网络外部可达的一个或多个端口,其中至少部分地基于所述一个或多个查询的结果确定所述一个或多个端口;
确定在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述主机计算机上的代理确定所述一个或多个进程;和
生成描述所述一个或多个端口以及所述一个或多个进程的报告。
2.根据权利要求1所述的系统,其中所述网络安全评估器还被配置为:
确定并报告从网络外部到所述一个或多个端口的一条或多条路由。
3.根据权利要求1所述的系统,其中所述网络安全评估器还被配置为:
确定并报告使所述一个或多个端口开放并且从网络外部可到达的一个或多个配置设置。
4.根据权利要求1所述的系统,其中所述网络安全评估器还被配置为:
确定并报告一项或多项纠正措施,这些纠正措施如果被执行会关闭一个或多个所述端口,或者使一个或多个所述端口无法从网络外部可达。
5.一种由一个或多个计算设备执行的计算机实现的方法,包括:
对包括计算设备的网络执行网络配置数据的分析;
确定在所述计算设备上的可从另一计算设备到达的一个或多个端口,其中至少部分地基于所述分析确定所述一个或多个端口;
确定到所述一个或多个端口的一条或多条路由,其中至少部分地基于所述分析确定所述一条或多条路由;和
生成描述所述一个或多个端口以及所述一个或多个路由的报告。
6.根据权利要求5所述的方法,其进一步包含:
确定并报告在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述计算设备上的代理软件确定所述一个或多个进程。
7.根据权利要求5所述的方法,其进一步包含:
确定并报告使所述一个或多个端口可到达的一个或多个配置设置。
8.根据权利要求5所述的方法,其进一步包含:
确定并报告一项或多项纠正措施,如果执行所述纠正措施,会使一个或多个所述端口无法到达。
9.根据权利要求5所述的方法,其中所述分析至少部分地基于对所述网络配置数据的一个或多个查询执行,其中所述一个或多个查询以查询语言表达,并且其中至少部分地基于一组规则生成所述一个或多个查询。
10.根据权利要求5所述的方法,其中确定所述一个或多个端口而不向所述一个或多个端口发送分组。
11.一种计算机可读存储介质,所述计算机可读存储介质存储程序指令,所述程序指令能够由计算机执行,以执行:
对包括主机计算机的网络执行网络配置数据的分析;
确定所述主机计算机上的开放的并且从另一计算设备可达的一个或多个端口,其中至少部分地基于所述分析的结果确定所述一个或多个端口;
确定在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述主机计算机上的代理确定所述一个或多个进程;和
生成描述所述一个或多个端口以及所述一个或多个进程的报告。
12.根据权利要求11所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
确定并报告在所述一个或多个端口上侦听的一个或多个进程,其中使用安装在所述主机计算机上的代理软件确定所述一个或多个进程。
13.根据权利要求11所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
确定并报告使所述一个或多个端口开放且可到达的一个或多个配置设置。
14.根据权利要求11所述的计算机可读存储介质,其中所述程序指令还可以由计算机执行以进行:
确定并报告一项或多项纠正措施,这些纠正措施如果被执行会关闭一个或多个所述端口,或者使一个或多个所述端口无法可达。
15.根据权利要求11所述的计算机可读存储介质,其中确定所述一个或多个端口而不从另一计算机向所述一个或多个端口发送分组。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/020,865 US11108805B2 (en) | 2018-06-27 | 2018-06-27 | Automated packetless network reachability analysis |
US16/020,865 | 2018-06-27 | ||
PCT/US2019/039250 WO2020006084A1 (en) | 2018-06-27 | 2019-06-26 | Automated packetless network reachability analysis |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112334901A true CN112334901A (zh) | 2021-02-05 |
Family
ID=67303518
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201980043063.6A Pending CN112334901A (zh) | 2018-06-27 | 2019-06-26 | 自动化无分组网络可达性分析 |
Country Status (6)
Country | Link |
---|---|
US (3) | US11108805B2 (zh) |
EP (1) | EP3814962A1 (zh) |
JP (2) | JP7189236B2 (zh) |
KR (2) | KR20230091203A (zh) |
CN (1) | CN112334901A (zh) |
WO (1) | WO2020006084A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115801391A (zh) * | 2022-11-14 | 2023-03-14 | 浪潮云信息技术股份公司 | 一种使用Openstack安全组纳管云物理主机的方法及系统 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10469324B2 (en) * | 2016-11-22 | 2019-11-05 | Amazon Technologies, Inc. | Virtual network verification service |
US11108805B2 (en) | 2018-06-27 | 2021-08-31 | Amazon Technologies, Inc. | Automated packetless network reachability analysis |
IL263958B (en) * | 2018-12-25 | 2020-05-31 | Hayman Meir | Method and system for identifying vulnerability levels in devices operated on a given network |
EP3949295A1 (en) * | 2019-04-05 | 2022-02-09 | Google LLC | Cloud network reachability analysis |
CN111817907B (zh) * | 2019-04-11 | 2022-12-30 | 华为技术有限公司 | 一种可达性的验证方法和装置 |
US11442959B2 (en) * | 2019-08-07 | 2022-09-13 | Nutanix, Inc. | System and method of time-based snapshot synchronization |
CN111866124B (zh) * | 2020-07-17 | 2022-06-24 | 北京金山云网络技术有限公司 | 访问网页页面的方法、装置、服务器和机器可读存储介质 |
WO2022031694A1 (en) * | 2020-08-03 | 2022-02-10 | Cazena, Inc. | Scalable security for saas data lakes |
US11516088B1 (en) * | 2021-10-28 | 2022-11-29 | Microsoft Technology Licensing, Llc | Network configuration verification in computing systems |
CN115314419B (zh) * | 2022-06-21 | 2023-05-16 | 清华大学 | 一种面向云网络自适应连通性分析方法、系统、设备及存储介质 |
Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892903A (en) * | 1996-09-12 | 1999-04-06 | Internet Security Systems, Inc. | Method and apparatus for detecting and identifying security vulnerabilities in an open network computer communication system |
CN1623140A (zh) * | 2002-01-15 | 2005-06-01 | 福德斯通公司 | 网络弱点检测和报告的系统和方法 |
WO2006099303A1 (en) * | 2005-03-11 | 2006-09-21 | Tracesecurity, Inc. | Integrated, rules-based security compliance and gateway system |
US20120084862A1 (en) * | 2008-10-29 | 2012-04-05 | International Business Machines Corporation | Detecting Malicious Use of Computer Resources by Tasks Running on a Computer System |
CN102413012A (zh) * | 2011-11-21 | 2012-04-11 | 上海交通大学 | 计算机网络连通性自动分析系统 |
US20120216244A1 (en) * | 2011-02-17 | 2012-08-23 | Taasera, Inc. | System and method for application attestation |
CN105094996A (zh) * | 2015-07-21 | 2015-11-25 | 电子科技大学 | 基于动态权限验证的Android系统安全增强方法及系统 |
CN105144633A (zh) * | 2013-03-15 | 2015-12-09 | 亚马逊科技公司 | 网络业务映射和性能分析 |
US20160344772A1 (en) * | 2015-05-22 | 2016-11-24 | Brian Quentin Monahan | Modelling network to assess security properties |
CN106603507A (zh) * | 2016-11-29 | 2017-04-26 | 哈尔滨安天科技股份有限公司 | 一种自动化完成网络安全自检的方法及系统 |
US9710368B1 (en) * | 2014-05-02 | 2017-07-18 | Amazon Technologies, Inc. | Inter-process communication automated testing framework |
CN107005544A (zh) * | 2014-09-05 | 2017-08-01 | 卡特伯德网络股份有限公司 | 用于网络分析和报告的系统和方法 |
CN107347078A (zh) * | 2017-08-30 | 2017-11-14 | 杭州安恒信息技术有限公司 | 一种基于云服务的操作系统弱口令安全检测方法 |
CN108011893A (zh) * | 2017-12-26 | 2018-05-08 | 广东电网有限责任公司信息中心 | 一种基于网络资产信息采集的资产管理系统 |
US20180145879A1 (en) * | 2016-11-22 | 2018-05-24 | Amazon Technologies, Inc. | Virtual network verification service |
CN108141380A (zh) * | 2015-09-30 | 2018-06-08 | 亚马逊科技公司 | 基于网络的资源配置发现服务 |
CN108200106A (zh) * | 2018-04-02 | 2018-06-22 | 浙江九州量子信息技术股份有限公司 | 一种物联网安全检测防护方法 |
US20190334949A1 (en) * | 2017-01-11 | 2019-10-31 | Mordechai GURI | Protecting computing devices from a malicious process by exposing false information |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7047288B2 (en) | 2000-01-07 | 2006-05-16 | Securify, Inc. | Automated generation of an english language representation of a formal network security policy specification |
US7003562B2 (en) | 2001-03-27 | 2006-02-21 | Redseal Systems, Inc. | Method and apparatus for network wide policy-based analysis of configurations of devices |
WO2005101789A1 (en) | 2004-04-14 | 2005-10-27 | Gurunath Samir Kalekar | A system for real-time network based vulnerability assessment of a host/device |
US9083748B2 (en) | 2004-12-16 | 2015-07-14 | Hewlett-Packard Development Company, L.P. | Modelling network to assess security properties |
GB2424539A (en) | 2005-03-22 | 2006-09-27 | Hewlett Packard Development Co | Modelling network to determine assess security properties |
US8250654B1 (en) * | 2005-01-27 | 2012-08-21 | Science Applications International Corporation | Systems and methods for implementing and scoring computer network defense exercises |
US10015140B2 (en) * | 2005-02-03 | 2018-07-03 | International Business Machines Corporation | Identifying additional firewall rules that may be needed |
US8566269B2 (en) | 2006-08-01 | 2013-10-22 | George Mason Intellectual Properties, Inc. | Interactive analysis of attack graphs using relational queries |
WO2010019918A1 (en) | 2008-08-15 | 2010-02-18 | Qualys, Inc. | System and method for performing remote security assessment of firewalled computer |
CN101699801B (zh) | 2009-10-30 | 2011-09-28 | 孙喜明 | 一种数据传输方法及传输数据的虚拟对等网络系统 |
CN102170457A (zh) | 2010-02-26 | 2011-08-31 | 国际商业机器公司 | 向应用的多租户提供服务的方法和装置 |
US9129086B2 (en) | 2010-03-04 | 2015-09-08 | International Business Machines Corporation | Providing security services within a cloud computing environment |
WO2012066652A1 (ja) * | 2010-11-17 | 2012-05-24 | 株式会社日立製作所 | 通信ネットワークに接続されている通信装置を発見する方法及び管理装置 |
US8782762B2 (en) | 2011-08-17 | 2014-07-15 | International Business Machines Corporation | Building data security in a networked computing environment |
US8650291B2 (en) | 2011-09-12 | 2014-02-11 | International Business Machines Corporation | Best practices analysis of zones and components in a network |
US9426169B2 (en) * | 2012-02-29 | 2016-08-23 | Cytegic Ltd. | System and method for cyber attacks analysis and decision support |
US9923787B2 (en) | 2012-04-27 | 2018-03-20 | International Business Machines Corporation | Network configuration predictive analytics engine |
EP2852107B1 (en) | 2012-06-21 | 2021-03-03 | Huawei Technologies Co., Ltd. | Packet processing method and apparatus |
US9122510B2 (en) | 2013-01-02 | 2015-09-01 | International Business Machines Corporation | Querying and managing computing resources in a networked computing environment |
US9177250B2 (en) | 2013-06-28 | 2015-11-03 | Vmware, Inc. | Method and system for determining configuration rules based on configurations of complex systems |
US9276951B2 (en) | 2013-08-23 | 2016-03-01 | The Boeing Company | System and method for discovering optimal network attack paths |
US9838253B2 (en) | 2014-04-10 | 2017-12-05 | Fujitsu Limited | Object-oriented network virtualization |
CN104363159B (zh) | 2014-07-02 | 2018-04-06 | 北京邮电大学 | 一种基于软件定义网络的开放虚拟网络构建系统和方法 |
US9686162B2 (en) | 2014-10-17 | 2017-06-20 | International Business Machines Corporation | Identifying configuration inconsistency in edge-based software defined networks (SDN) |
US10831581B2 (en) | 2015-12-04 | 2020-11-10 | Nec Corporation | File information collection system and method, and storage medium |
US11108805B2 (en) | 2018-06-27 | 2021-08-31 | Amazon Technologies, Inc. | Automated packetless network reachability analysis |
US11425157B2 (en) | 2018-08-24 | 2022-08-23 | California Institute Of Technology | Model based methodology for translating high-level cyber threat descriptions into system-specific actionable defense tactics |
US11483350B2 (en) | 2019-03-29 | 2022-10-25 | Amazon Technologies, Inc. | Intent-based governance service |
-
2018
- 2018-06-27 US US16/020,865 patent/US11108805B2/en active Active
-
2019
- 2019-06-26 KR KR1020237020072A patent/KR20230091203A/ko not_active Application Discontinuation
- 2019-06-26 EP EP19740452.8A patent/EP3814962A1/en active Pending
- 2019-06-26 WO PCT/US2019/039250 patent/WO2020006084A1/en unknown
- 2019-06-26 KR KR1020217002291A patent/KR102545124B1/ko active IP Right Grant
- 2019-06-26 CN CN201980043063.6A patent/CN112334901A/zh active Pending
- 2019-06-26 JP JP2020570434A patent/JP7189236B2/ja active Active
-
2021
- 2021-08-27 US US17/459,908 patent/US11671442B2/en active Active
-
2022
- 2022-12-01 JP JP2022192707A patent/JP2023025160A/ja active Pending
-
2023
- 2023-04-25 US US18/306,947 patent/US20230262087A1/en active Pending
Patent Citations (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892903A (en) * | 1996-09-12 | 1999-04-06 | Internet Security Systems, Inc. | Method and apparatus for detecting and identifying security vulnerabilities in an open network computer communication system |
CN1623140A (zh) * | 2002-01-15 | 2005-06-01 | 福德斯通公司 | 网络弱点检测和报告的系统和方法 |
WO2006099303A1 (en) * | 2005-03-11 | 2006-09-21 | Tracesecurity, Inc. | Integrated, rules-based security compliance and gateway system |
US20120084862A1 (en) * | 2008-10-29 | 2012-04-05 | International Business Machines Corporation | Detecting Malicious Use of Computer Resources by Tasks Running on a Computer System |
US20120216244A1 (en) * | 2011-02-17 | 2012-08-23 | Taasera, Inc. | System and method for application attestation |
CN102413012A (zh) * | 2011-11-21 | 2012-04-11 | 上海交通大学 | 计算机网络连通性自动分析系统 |
CN105144633A (zh) * | 2013-03-15 | 2015-12-09 | 亚马逊科技公司 | 网络业务映射和性能分析 |
US9710368B1 (en) * | 2014-05-02 | 2017-07-18 | Amazon Technologies, Inc. | Inter-process communication automated testing framework |
CN107005544A (zh) * | 2014-09-05 | 2017-08-01 | 卡特伯德网络股份有限公司 | 用于网络分析和报告的系统和方法 |
US20160344772A1 (en) * | 2015-05-22 | 2016-11-24 | Brian Quentin Monahan | Modelling network to assess security properties |
CN105094996A (zh) * | 2015-07-21 | 2015-11-25 | 电子科技大学 | 基于动态权限验证的Android系统安全增强方法及系统 |
CN108141380A (zh) * | 2015-09-30 | 2018-06-08 | 亚马逊科技公司 | 基于网络的资源配置发现服务 |
US20180145879A1 (en) * | 2016-11-22 | 2018-05-24 | Amazon Technologies, Inc. | Virtual network verification service |
CN106603507A (zh) * | 2016-11-29 | 2017-04-26 | 哈尔滨安天科技股份有限公司 | 一种自动化完成网络安全自检的方法及系统 |
US20190334949A1 (en) * | 2017-01-11 | 2019-10-31 | Mordechai GURI | Protecting computing devices from a malicious process by exposing false information |
CN107347078A (zh) * | 2017-08-30 | 2017-11-14 | 杭州安恒信息技术有限公司 | 一种基于云服务的操作系统弱口令安全检测方法 |
CN108011893A (zh) * | 2017-12-26 | 2018-05-08 | 广东电网有限责任公司信息中心 | 一种基于网络资产信息采集的资产管理系统 |
CN108200106A (zh) * | 2018-04-02 | 2018-06-22 | 浙江九州量子信息技术股份有限公司 | 一种物联网安全检测防护方法 |
Non-Patent Citations (1)
Title |
---|
张涛;张勇;宁戈;陈钟;: "基于SELinux强制访问控制的进程权限控制技术研究与实现", 信息网络安全, no. 12, 10 December 2015 (2015-12-10), pages 34 - 41 * |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115801391A (zh) * | 2022-11-14 | 2023-03-14 | 浪潮云信息技术股份公司 | 一种使用Openstack安全组纳管云物理主机的方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
EP3814962A1 (en) | 2021-05-05 |
JP2023025160A (ja) | 2023-02-21 |
KR20230091203A (ko) | 2023-06-22 |
US20200007569A1 (en) | 2020-01-02 |
JP2021528749A (ja) | 2021-10-21 |
WO2020006084A1 (en) | 2020-01-02 |
KR102545124B1 (ko) | 2023-06-20 |
JP7189236B2 (ja) | 2022-12-13 |
US11108805B2 (en) | 2021-08-31 |
US20230262087A1 (en) | 2023-08-17 |
US11671442B2 (en) | 2023-06-06 |
KR20210022732A (ko) | 2021-03-03 |
US20210392157A1 (en) | 2021-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11671442B2 (en) | Automated packetless network reachability analysis | |
US11095523B2 (en) | Virtual network verification service | |
JP6526895B2 (ja) | 電子メッセージベースのセキュリティ脅威の自動軽減 | |
US9762599B2 (en) | Multi-node affinity-based examination for computer network security remediation | |
CN113711561B (zh) | 基于意图的治理服务 | |
US11265292B1 (en) | Graph based management of virtualized infrastructures | |
US9369478B2 (en) | OWL-based intelligent security audit | |
WO2014094151A1 (en) | System and method for monitoring data in a client environment | |
JP6661809B2 (ja) | 管理対象ネットワークにおける構成項目クラス間の運用上の関連付けの定義及び実行 | |
US20220382881A1 (en) | Software vulnerability detection in managed networks | |
US20230344850A1 (en) | Apparatuses, methods, and computer program products for automatic improved network architecture generation | |
JP2024505527A (ja) | クラウドにおける統合ポリシー施行管理 | |
Panagiotis | Attack methods and defenses on Kubernetes | |
US11750568B1 (en) | Secure proxy service |
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 |