用于应用的安全和风险评估及测试的系统和方法与流程

文档序号:15575592发布日期:2018-09-29 05:27阅读:290来源:国知局

本公开总体上涉及计算环境中部署的应用的安全评估和测试。



技术实现要素:

信息日益增长地在一系列计算装置上存储并被访问,所述计算装置联合操作以提供各种各样的服务。例如,电子邮件用户可以使用客户端计算装置来与电子邮件服务提供商的网络边缘配置的认证服务器通信。电子邮件用户可以从电子邮件存储服务器访问电子邮件,使得这三个装置一起通信以提供看似简单的基于互联网的服务。

服务提供商网络已经随着增加的可靠性和这种网络上的用于媒体访问、通信平台、金融和商业以及其它的用途而增长。服务提供商网络的复杂性可以包括在网络内部和网络边缘的许多不同的装置上运行的许多不同的应用,并且可以包括在服务提供商的物理控制的网络外部操作的装置。

这些网络的规模和复杂性以及在其上运行的应用的数量的增长对于保持这些环境的安全性具有复杂的影响。由于客户和企业已经开始日益依赖于这种他们可以经由互联网从任何地方访问的网络,这些客户和企业就越来越多地交换敏感信息。虽然已经发展了许多不同的技术来改进服务提供商网络的安全性,但是这些技术尚未完全验证是令人满意的。

附图说明

图1是根据本公开的一些实施例的包括应用安全服务器的应用安全系统的框图;

图2是根据本公开的一些实施例的可用作图1的应用安全服务器的计算装置的框图;

图3、4和5是根据本公开的一些实施例的可以通过与图1的应用安全服务器相连接来提供的示例性用户界面;

图6是示出了根据本公开的一些实施例的对服务提供商网络中部署的应用进行评估、分类和测试的方法的流程图;

图7是示出了根据本公开的一些实施例的对服务提供商网络中部署的应用进行评估、分类和测试的另一方法的流程图。

参照下面的详细描述,本领域的普通技术人员将更好地理解这些附图。

具体实施方式

参照上面简述的附图,在本部分描述根据本公开的系统和方法的示例性应用。这些示例被提供用于添加情景(context)和帮助理解本发明。因此,对于本领域的技术人员而言明显的是,可以在不具有这些具体细节的一些或全部的情况下实现本发明。在其它的实例中,一些众所周知的处理步骤并未被以具体细节来描述,以避免对本公开的不必要的模糊。此外,在此描述的概念和原理的其它应用是可行的,使得下面的示例不应被作为限定性的。例如,虽然在此公开的示例中的许多示例旨在对流视频服务的情景中的应用的评估、分类和测试,但是所描述的原理和概念可以被应用以更普遍地提供用于大量的应用和服务提供商网络的安全管理和维护。

在下面的详细描述中参照附图,附图构成本说明书的部分,并且其中以示意方式示出了本公开的一些具体实施例。尽管以足够的细节描述了这些实施例以使本领域的技术人员能够实现本发明,但是应当理解这些实施例并非限定性的,因此可以使用其它的实施例,并且可以进行变化而不背离本发明的精神和范围。例如,在本公开的范围内的变化可以包括在不同的系统或装置上、以不同的顺序等执行操作。

提供用于对与计算环境中操作的大量应用相关联的安全风险进行评估和分类的装置、系统和方法。所述计算环境可以是服务提供商网络,其实施例可以包括内部网络环境和外部网络环境,例如由代表服务提供商的第三方操作的云计算基础架构上的账户。为了向客户提供服务,服务提供商的网络可以包括一起协作的许多不同的应用,以提供由服务提供商提供的一个或多个不同的服务的许多不同的部分。例如,服务提供商可以操作服务提供商网络以向客户提供流媒体服务。在向其客户提供这些流媒体服务时,服务提供商可以具有在作为向客户提供的流媒体服务的面向服务的架构中绑定(bundle)在一起的推荐应用、接口应用、流媒体应用、记账和支付应用以及其它应用,作为服务提供商网络中包括的统一的计算环境。在具有面向服务的架构的大规模服务提供商网络中,这种应用的数量可以大到上千或上万。

每个应用呈现潜在的安全风险。然而,一些应用可能呈现比其它应用更大的安全风险。例如,如果应用有权访问服务提供商的服务的用户的信用卡号和地址,则如果发生数据泄露的话,服务提供商可能遭受法律惩罚以及对其客户的信誉损失。相反地,如果应用违规仅会损害用户的电子邮件地址,则对于用户的潜在负面影响会小得多。此外,一些应用可能频繁地被其它应用所依赖。涉及此类应用的开发(exploit)可能会导致许多其他被依赖的应用受到威胁,并且可能会由于应用之间的依赖或从属关系而导致停机或可用性的影响。结果,应用可能呈现基于其与之通信的或所依赖于的应用的安全风险。此外,一些应用可能在服务提供商网络中与其它应用相比更多次地被实例化。当存在给定应用的更多的实例时,与该应用相关的开发可能呈现更大的安全威胁。

本公开的实施例可以收集应用安全信息,即,与应用所造成的潜在的安全风险相关联的、或指示应用所造成的潜在的安全风险的信息,并确定与该应用相关联的安全风险分数和/或安全级别。在服务提供商的整个系统中,与特定应用相关联的安全风险分数可以动态地改变。例如,在服务提供商服务的增加的使用次数期间,例如在用于流媒体服务的夜晚,特定应用的实例的数量可以实质上增加。随着实例的数量增加,与应用相关联的安全风险以及由此的安全风险分数可能增加。作为另一示例,当向服务提供商系统的客户推出新的特征时,随着采用和使用该新特征的用户的数量增加,与该新特征相关联的应用可能造成增加的安全风险。

应用安全信息的另外的示例可以包括应用之间的依赖关系、可应用于应用的每个实例的安全组或分类、与应用或各个部署的实例相关联的生成(build)信息,特别是当同时部署多个生成的情况下,例如产品生成和测试生成。例如,可以通过管理安全人员来确定较新的生成或较旧的生成以产生(pose)较大或较小的安全风险,使得针对该较新的生成或较旧的生成所计算的安全风险分数可以更高或更低。应用安全信息的其它示例可以包括应用的所有者或其开发者、应用所利用的端口、协议和/或域名系统(dns)名的指示。此外,要打分的应用是否面对互联网,例如在服务提供商的内部网络环境的边缘操作,可能是安全风险的有用的指示符。在一些实施例中,应用被手动地加上指示潜在的安全风险的属性的标签。例如,基于应用所处理的数据的类型,应用可以被加上敏感的标签。处理支付信息的应用可以被编码成包括可被应用安全系统读取的标签。针对计算用于给定应用的安全风险分数和执行对其的测试的操作,源码的位置或从源码自身提取的信息也可以是获得应用安全信息。

基于所述安全风险分数,服务提供商系统中存在的应用可以被分级、被划分优先级、和/或被分类,以提供和执行适当的安全测试方案(regime)。此外,针对基于其安全风险分数的各个应用,可能需要日志需求、访问控制以及其它控制和/或监测技术。例如,在给定的实施例中,应用的安全风险分数可能范围为从0到100,其中100为与该应用或产生最大的安全风险的应用相关联的最高的分数。在一些实施例中,在此描述的应用安全系统可指示所有的得分大于80的应用应当遵守自动安全测试或安全测试模块的第一测试方案,并且所有得分为80或更小但大于60的应用应当遵守自动测试的第二测试方案。与自动测试的第二方案相比,安全测试的第一方案可以包括更多的测试或更严格的测试。在另一实施例中,所有得分大于60的应用可以被管理安全人员标示或包括在用于手动安全测试,例如渗透测试(penetrationtesting)的列表上;而所有得分为60或更少但大于50的应用可以每两个星期经受第一安全测试,并且所有得分为50或更少但大于40的应用可以每个月经受第一安全测试。

在本公开的一些实施例中,安全测试方案可以与作为服务提供商的整个系统的一部分的安全测试系统一起自动实施。在本公开的其它实施例中,特定安全测试方案的推荐可以在经由用户界面访问的通知中被提供给管理安全人员。

此外,可以通过接收来自安全测试系统的测试信息来确定与安全测试方案的依从性(compliance)。对于特定的应用,所述测试信息可以指示所执行的测试或多个测试的类型以及执行这些测试的最近的测试时间或日期。在一些实施例中,测试信息可以用于计算与给定应用相关联的安全风险分数。例如,如果第一应用经受每周的安全测试,则这可能降低该应用的安全风险分数。

当今服务提供商网络中可能存在的绝大多数应用可能使得无法手动进行安全评估。如同在此描述的,假设将发生安全违规或失误,则安全评估可以包括对特定应用的安全性的确定以及对该应用所呈现的风险的确定。此外,基于与应用自身相关联的变化、与其它相关的应用相关联的变化、以及服务提供商网络的使用和特征的变化,与应用相关联的安全级别和风险级别可能快速地和突然地波动。本公开的实施例促进这种一定规模的(atscale)应用的安全和风险评估、分类和测试(包括手动测试和/或自动测试)。

现在参照图1,其中示出了服务提供商系统100中部署的应用安全系统的框图。服务提供商系统100可以包括具有在其上运行的安全应用104的应用安全服务器102。应用安全服务器12可以在耦合的(couple)数据库系统106中访问和存储信息。在一些实施例中,数据库系统106存在于应用安全服务器102的存储器中。服务提供商系统100包括构成内部计算环境108a或在内部计算环境108a中包括的多个部件、以及外部计算环境108b中包括的部件。在图1中将环境108a和108b示出为用虚线分隔。

如同在此描述的,应用安全服务器102的实施例可以包括与一个或多个存储系统或装置通信的处理装置。应用安全服务器102可以被配置用于接收来自多个网络化的资源的信息,并基于该信息计算用于多个应用的安全风险分数。例如,应用安全服务器102可以被诸如加利福尼亚的洛斯盖多斯的netflix公司之类的服务提供商操作,所述服务提供商也可以操作系统以用于产生用户账户以及接受和消耗媒体内容,例如电影、电视秀以及其它基于视频的和/或基于音频的节目,并允许用户与这种媒体内容交互。

服务提供商系统100可以包括云架构110上的账户。如同所示出的,云架构110在其上包括多个资源或资源实例。这些资源可以是物理服务器、存储装置和网络化装置,或者可以被理解为虚拟服务器、虚拟存储装置、和/或虚拟网络化装置。应用实例114a和114b可以分别在资源实例112a和112b上运行。

如同所注意到的,图1示出了应用安全服务器102可以通过网络120与云架构110通信。云架构110可以包括被配置用于提供多个资源实例112a和112b以及其它资源实例的多个服务器和存储装置。例如,适当的云架构110的多个示例之一可以是或类似于亚马逊网络服务公司(aws)所提供的分布式计算、存储和网络化架构。作为云架构110为aws的非限定性示例,示例性资源实例112a和112b可以由多个亚马逊弹性计算云(ec2)实例、诸如亚马逊关系数据库服务(rds)实例的多个数据库实例、以及诸如亚马逊简单存储服务(s3)存储段(bucket)的存储实例提供,并且每个实例112a和112b可以由多个计算和/或存储装置提供。应用安全服务器102的操作员可以将多个应用部署到云架构110,使得应用实例114a和114b运行在由第三方操作员(例如aws)所拥有的硬件上。其它云架构可以用于提供云架构110。其它示例可以包括centurylink公司提供的云服务centurylinkcloud、微软公司提供的microsoftazure、以及rackspace公司提供的服务等。

在一些实施例中,云架构110包括可以收集与应用实例114a和114b相关联的应用安全信息的监测服务116。监测服务116可以是由服务提供商系统100的操作员所部署的应用,用于监测服务提供商所部署的应用或应用实例,以向服务提供商的客户提供一个或多个服务。在一些实施例中,监测服务116可以由多于一个的应用提供。例如,监测服务116可以包括netflix公司创建的基于网页的云管理和部署工具asgard。其它实施例可以包括监测服务116的其它实现。监测服务116可以识别部署在云架构110中的服务提供商的应用、以及这些应用之间的依赖关系。例如,应用实例114a可以依赖于应用实例114b并与之通信,以访问应用实例114a提供被设计用于的特定的服务或多个服务所需要的信息。监测服务116可以收集和/或创建描述应用实例114a对于应用实例114b的依赖关系的应用安全信息。监测服务116还可以包括对与实例114a和114b相关联的任意的安全组或安全标签的识别。

这些应用实例114a和114b可以被服务提供商用作服务提供商系统100的部分,以向访问服务提供商系统100以接收服务的客户提供该服务。服务提供商所提供的服务可以是流媒体服务、基于下载的媒体服务、电子邮件服务、消息传送或通信服务、银行服务以及电子商务服务、和/或其它的这种服务。应用实例114a和114b可以与安全组相关联,或者由此具有取决于服务提供商的类型的安全标签。客户可以使用客户装置118通过网络120与包括部署在云架构110中的应用实例114a和114b的服务提供商系统100交互。

如在此所描述的,在图1中描述的应用安全服务器102、云架构110、以及其它部件和装置之间的数据通信可以通过网络120来传送,网络120可以包括一个或多个网络,例如局域网、广域网、无线广域网、无线局域网、移动电话网络、固定电话网络、以及其它适当的网络。网络120可以包括耦合在一起的多个网络。如图1所示,网络120可以包括私人网络,使得应用安全服务器102与内部装置130的总集之间的通信可不经过公共可用的通信线路,或者可以被适当地加密以用于在公共可用的通信线路上传送。例如,应用安全服务器102与云架构110之间的通信可以被加密,以提供公共网络例如互联网上的虚拟网络。客户装置118可以通过互联网与一个或多个内部装置130和/或云架构110通信。相应地,所示出的网络120可以包括包含虚拟专用网(vpn)的私有网络、以及公共网络或多个公共网络。

在服务提供商系统100的内部计算环境108a中,应用安全服务器102可以通过网络120与内部装置130的集合通信。如同所示出的,这些内部装置130可以包括存储装置132、网络化装置134、以及计算装置136。存储装置132可以是一个或多个存储装置,例如硬盘驱动器、磁盘阵列(raid)配置、存储局域网(san)、和/或其它系统。存储装置132可以包括包含内部装置130和/或云架构110的资源实例112a和112b上的用于部署在服务提供商系统100中的全部或一些应用的源码的源码库133。存储装置132还可以包括应用安全信息,所述应用安全信息可以从在此描述的各种其它资源获得。网络化装置134可以包括允许经由网络120的存储装置132、计算装置136以及其它装置当中和之间的通信的网关、路由器和其它网络化装置。

计算装置136可以是多个服务器,例如运行多个应用实例的集群(cluster)或服务器集群,被示出为示例性应用实例138a、138b和138c。示例性服务器可以包括例如操作服务器操作系统(os)的独立的和企业级的服务器,例如操作系统、操作系统、操作系统、或另一适当的基于服务器的操作系统。还应当认识到,应用安全服务器102可以通过这种示例性服务器来提供。

内部装置130可以包括在其上运行的多个服务。例如,内部网页服务框架可以被包括在服务提供商系统100中,使得当应用实例138a、138b和138c被加载时,实例138a-c可以产生基于javatm文件夹文件或处理期间加载的其它文件jars的依赖关系信息。例如,内部网页服务框架可以是netflix内部网页服务框架(niws),其可以用于创建内部装置130当中运行的应用的依赖关系的映射。在一些实例中,第一应用可以加载指示对第二应用的依赖关系的文件,在操作期间第一应用实际上并不与第二应用通信。相应地,所述依赖关系映射的一些实施例可以延伸表示(over-represent)任意给定的应用的实际依赖关系以用于其实例。在一些实施例中,实际的依赖关系信息可以通过抓取(scraping)与传送的分组相关联的以太网或互联网(ip)报头通过监测内部装置130当中的通信来提供。从分组头部抓取的信息随后可以用于创建部署在内部装置130上的应用的实际的依赖关系映射。所述映射可以用于产生具有在服务提供商系统100中运行的实例的应用的列表。

服务提供商系统100还可以包括自动安全测试系统140。自动测试系统140可以是被配置用于对服务提供商系统100中存在的应用执行多个安全测试的工具。自动测试系统140可以提供用于一个或多个测试模块例如示例性测试模块142的插件接口。例如,测试模块142可以是测试应用或测试工具,例如owaspzedattackproxy(zap)网页应用扫描器、nmap安全扫描器、nessus扫描器或其它安全工具。

自动测试系统140可以被配置用于利用一个或多个测试模块例如测试模块142来执行对部署在服务提供商系统100中的一个或多个应用的安全测试。在一些实施例中,安全测试可以由单个测试模块执行,或由多个测试模块执行,并且一个测试模块的输出提供对另一测试模块的输入。自动测试系统140所利用的测试模块可以扫描若干类型的漏洞。自动测试系统140可以包括与多个应用中的每个应用相关联的测试方案。例如,对于第一应用,自动测试系统140可以具有调用特定的测试模块以特定时间表运行的测试方案,例如每月在特定时间运行,或每周在特定时间运行。自动测试系统140可以被配置用于以与服务提供商系统100中部署的一个或多个应用相关联的测试方案的形式向应用安全服务器102提供应用安全信息。

此外,应用安全服务器102可以被配置为引导自动测试系统140创建、修改或删除用于特定应用的测试方案。例如,应用安全服务器102可以接收与第一应用相关联的应用安全信息,并基于所述应用安全信息而产生用于第一应用的安全风险分数。应用安全服务器102可以确定具有第一应用的安全风险分数的应用可能需要附加的测试模块以用于被包括在第一应用的测试方案中。相应地,应用安全服务器可以引导自动测试系统140修改或产生符合的测试方案。

一般地,可被应用安全服务器102使用的产生安全风险分数的应用安全信息包括第一应用的部署的实例的计数(所部属的实例可以是内部计算环境108a中的应用实例138a-c和/或外部计算环境108b的云架构110中的应用实例114a-b)、所述应用或所述应用的实例与之通信的应用的计数、第一应用的依赖关系信息(其可以包括依赖于第一应用的应用以及第一应用针对适当的功能所需要的信息或服务所依赖于的应用)。在一些实施例中,应用安全信息可以是与第一应用相关联的标签的存在和身份,例如指示第一应用包含或可访问敏感信息或者暴露于或可被互联网访问(这可能允许不良行为人更容易地访问第一应用)的标签。应用信息可以包括对第一应用位于服务提供商系统100的拓扑中的何处的指示。附加的应用信息可以包括ip地址或与第一应用相关联的地址以及应用实例被部署在其中的云架构110的区域。一般地,任何可指示应用呈现更大或更小的安全风险的信息可以被应用安全服务器102用作应用安全信息以确定针对该应用的安全风险分数。

应用安全服务器102以及运行在其上的安全应用104的管理安全人员或其它用户可以通过使用客户端装置150连接到应用安全服务器102。客户端装置可以是类似于这里记载的服务器的计算装置。客户端装置可以是诸如个人计算机、笔记本电脑、诸如平板计算机或智能电话之类的移动计算装置、可穿戴计算装置、和/或具有根据所描述的实施例的计算和/或通信能力的任意其它的计算装置的计算装置。客户端装置150包括与数据存储装置或存储器通信的处理装置,并运行与系统程序和应用程序相对应的指令,以执行各种计算和/或通信操作。示例性系统程序可以包括但不限于操作系统(os)(例如操作系统、操作系统、firefoxostmos用于无线的二进制运行时间环境(binaryrun-timeenvironmentforwireless(brew))操作系统、javaos、wirelessapplicationprotocol(wap)操作系统等)、装置驱动器、编程工具、实用程序、软件仓库、(应用编程接口)等。如图1所示,客户端装置150运行软件以提供界面152。在一些实施例中,界面152可以被与运行在客户端装置150上的网页浏览程序例如internet等一起提供。客户端装置150可以通过网络120与应用安全服务器102以及内部装置130和/或云架构110中的一个或多个通信。

在一些实施例中,当应用安全服务器102计算大于阈值,例如70或30的安全风险分数时,则应用可以被置于优先级列表上,所述优先级列表被通过客户端装置150所呈现的界面152传送到管理安全人员。图3示出了用户界面300,用户界面300可以是界面152的实施例。用户界面300提供了对表302中呈现的示例性应用安全信息的描述。表302包括在服务提供商系统100中检测的应用的标识符的列表以及对每个列出的应用在哪个区域中被实例化的指示。此外,表302包括与应用的产品生成和测试生成均相关联的实例化信息。表302中包括的信息的部分可以被提供给应用安全服务器102,以标识服务提供商系统100中被实例化的应用。应用安全服务器102可以产生针对每个标识的应用的安全风险分数。用户界面300包括允许用户界面的用户(例如管理安全人员)至少通过名称、安全风险分数和类别来对表302进行分类的用户界面元素。分类后的信息可以被输出到另一装置,例如自动测试系统140。

界面152的另外的实施例分别被图示为图4和5的用户界面400和500。如同用户界面300,用户界面400和500在与应用服务器102交互以评估、调度和引导对在服务提供商系统100中实例化的应用的测试时,可以向客户端装置的显示器的用户呈现。用户界面400包括对与单个应用的区域实例化相关联的安全风险分数的描述。用户界面400包括表402,表402包括基于可被包括在图2的应用安全信息222中的应用安全度量404的列表的安全风险分数因子。如同所示出的,应用安全度量404包括依赖的应用、内部计算环境108a边缘的位置、实例数量、应用是否使用敏感服务、以及应用是否是敏感的。表402示出了,在一些实施例中,应用可以具有与应用在其中被实例化的每个区域相关联的安全风险分数。该信息被提供用于应用的产品生成和应用的测试生成这二者。例如,在第一美国东部区域(用标识符406标识)中,应用的产品生成具有60的安全风险分数,因为存在高数量的依赖应用(443)、小数量的实例(12)和敏感服务的有限的使用(1)。实例化是敏感的,并且可能因此接收25个点。如同在表402中可以观察到的,应用的一些方面可能根据被部署于其中的区域而不同。

被部署在第一美国东部区域中时,通过选择标识符406,可以在用户界面500中呈现与该应用相关联的更详细的应用安全信息。用户界面500包括应用安全信息窗口502,对于应用安全信息的每个描述的类别,应用安全信息窗口502可以包括概括与所选的应用的特定类别相关联的历史数据的图504。所述历史数据可以跨越时间段,例如星期、月、季度或年,假设应用已在整个时间段期间被部署的话。用户界面500还可以包括实例列表506,其提供与被部署在所选的部署区域中的应用的一个或多个实例相关的信息。还可以包括信息窗口508,信息窗口508可以列出与该应用相关联的一个或多个安全标签。此外,可以包括区域选择器元素510,以允许用户界面500的用户选择应用被部署于其中的不同的区域,而不用返回到用户界面400。

返回到图3,用户界面300包括与每个应用相关联的分数和类别、层级、或优先级。通过根据安全风险分数或优先级对表302中的信息进行分类(sort),表302中包含的信息可以提供划分优先级后的列表,并且已打分的应用中的最高的20%可以被包括在优先级列表中。优先级列表还可以被传送到自动安全测试系统140。在一些实施例中,优先级列表中包括的应用可以被应用安全服务器102调度以用于管理安全人员的渗透测试。在一些实施例中,优先级列表中的应用还可以被应用安全服务器102调度以用于自动测试系统140的测试。应用安全服务器102可以基于其安全风险分数来对应用进行划分或分类。例如,应用安全服务器102可以创建安全风险分数的层级,例如包括具有大于或等于30的安全风险分数的应用的第一层级、包括具有小于30但大于或等于60的安全风险分数的应用的第二层级、包括具有小于60但大于40的安全风险分数的应用的第三层级等。应用安全服务器102可以基于每个应用所属于的层级为每个应用自动地分配测试方案。例如,第一层级可以被调度用于手动渗透测试,以用于经由管理人员的利用自动测试系统140的规律的频繁的(例如每周)自动测试的安全测试。测试系统140的自动测试可以包括多个测试模块,如同测试模块142。第二层级可以被调度用于经由管理人员的在比第一层级中的应用较不频繁的基础上的利用测试系统140的较不频繁的测试的渗透测试。第三层级可以不被调度用于经由管理安全人员的测试,但可以被利用自动测试系统140所管理的测试方案来测试。相应地,应用安全服务器102可以产生适合于为每个应用计算的安全风险分数的测试方案或根据每个应用被分类的层级而针对每个应用的测试方案。

应用安全服务器102可以识别在服务提供商系统100中操作的每个应用,并产生或计算用于每个应用的安全风险分数。通过计算用于每个应用的安全风险分数,应用安全服务器102可以帮助管理安全人员将时间和资源引导向呈现最高的安全风险的应用。此外,由于用于给定应用的应用安全信息可能随着实例的数量或计数的增大或减小而在任意给定的时间变化,因此应用安全服务器102可能能够动态地确定适当的安全测试方案,并动态地将其传送到自动测试系统140以用于由此的实现。

现在参照图2,其中示出了计算装置200的示例性实施例,其实施例可以提供在此描述的图1的应用安全服务器102、客户端装置150、或图1中包括的其它计算装置之一。计算装置200包括至少一个处理装置202,例如通过总线206与数据存储装置或存储器204通信的一个或多个处理器或cpu。总线206还耦合到网络接口装置208和输入/输出装置接口210。网络接口装置208可以是允许计算装置200通过图1的网络120进行通信的网络接口卡或网络接口控制器(nic)。输入/输出装置接口210使得计算装置200能够传送要呈现到显示器212的信息以在一个或多个与其关联的图形用户界面中显示诸如数据之类的信息以及命令选项。输入/输出装置接口210还可以与诸如红外或射频远程控制、键盘、鼠标、触摸屏等的输入/输出装置通信,在一些实施例中,所述输入/输出装置接口210可以是图1的其它系统通过其可以与计算装置200通信的应用编程接口(api)。计算装置200的一些实施例可不包括一些部件。例如,服务器可以不包括输入/输出装置210或显示器212。

处理装置202可以运行存储在存储器204中的软件和/或其它指令203。存储在存储器204中的软件和和信息以及指令203可以取决于计算装置200是被配置为应用安全服务器102、内部装置130、测试系统140、客户端装置150、客户装置118、还是作为云架构110的基础的服务器而不同。此外,在一些实施例中计算装置200可以是虚拟计算装置,例如云架构110中的配置的资源实例。图1的安全应用104可以通过在处理装置202上运行指令203来提供。

如图2所示,存储器204存储安全应用220和应用安全信息222。存储器204可以是计算装置的壳体中包括的或耦合到计算装置200并与计算装置200通信的不同类型的存储器的总集。例如,存储器204可以包括缓存存储器、随机存取存储器、只读存储器、闪存存储器、固态硬盘驱动器、基于盘的硬盘启动器、和/或其它类型的非瞬时性存储装置。被描述为存储在存储器204上的部件可以存储在这些不同类型的存储器的任意组合上和/或被从这些不同类型的存储器的任意组合访问。

安全应用220可以利用可被实现为安全应用220的部分的多个规则和/或算法来计算用于部署在图1的服务提供商系统100中的多个应用的安全风险分数。例如,安全应用220可以被配置为根据与第一应用相关联的应用安全信息222的部分来确定第一应用提供对诸如信用卡号码之类的敏感信息的访问、以及第一应用面向或暴露于互联网。基于应用安全信息222的这两个部分,处理装置202可以运行指令203来计算这些信息导致了75的安全风险分数。例如,由于应用提供对信用卡号码的访问,因此安全应用220可以将50点归因于应用的安全风险分数,并且由于应用暴露于互联网,因此安全应用220可以将25点归因于应用的安全风险分数。如同这里所描述的,安全风险分数计算的其它实施例包括许多更多的因素或应用安全信息,并且可以在执行这些计算时使用更复杂的公式。此外,应用安全信息222可以包括先前计算的或历史的安全风险分数。以这种方式,安全应用220可以基于在应用的安全风险分数中所观察的变化或变化速率来计算安全风险分数。

在一些实施例中,处理装置202被配置为持续地或以规律的调度的方式运行安全应用220,例如每天、每两天、每周、或基于另一调度。此外,安全应用220可以根据需要而被运行,以执行对部署在服务提供商系统100中的应用的按需扫描。例如,当新的安全开发被发现并且新的工具模块142被配置用于对新的开发进行测试时,可以执行按需扫描。在一些实施例中,管理安全人员可以使用与应用安全服务器102一起的客户端装置150提供的界面152来请求执行按需扫描或者设置或修改扫描时间表。

此外,安全应用220可以在从服务提供商系统100中的其它装置接收到应用安全信息222时扫描应用安全信息222。当安全应用220检测到速率改变或计数超过预定义的阈值时,安全应用220可以自动地发起对该环境中运行的所有应用或所有这种应用的子集的扫描。例如,安全应用220可以接收和处理指示通常具有约10个实例的计数的特定应用的实例的计数突然具有约1000个实例的计数的应用安全信息222。在检测到特定应用的实例计数的这种改变时,安全应用220可以引导至少特定应用的安全风险分数的重新计算。此外,安全应用220可以产生和向管理安全人员发送通知。该通知可以被作为电子邮件、短消息服务消息、推送通知、社交流张贴(socialstreampost)、或其它适当的数字通知格式来传达。此外,安全应用220的一些实施例可以自动地与自动测试系统140通信以修改与特定应用相关联的测试方案。例如,安全应用220可以引导自动测试系统140修改与特定应用相关联的测试方案,以引导执行使用测试模块142的立即的测试。

在可提供用于客户端装置150的计算装置200的实施例中,安全应用220可以是被配置用于与应用安全服务器102通信的客户端应用。计算装置200的其它实施例可以为客户端装置150提供包括web浏览器,以用于与被配置用于提供应用安全服务器102的计算装置200的其它实施例的安全应用220通信。

现在参照图6,其中示出了用于执行对部署在服务提供商系统中的应用的安全评估、调度和测试的方法600的流程图。如同所示出的,方法600包括若干列举的步骤、块或操作。方法600的实施例可以包括在所述列举的操作之前、之后、其中的或作为所述列举的操作的部分的附加操作。方法600的实施例可以省略一个或多个列举的操作。本公开的一些实施例包括存储在诸如图2的存储器204之类的非瞬时性计算机可读存储介质上的诸如图2的指令203之类的指令。当被运行时,所述指令可以使得诸如计算装置200的处理装置202之类的处理装置执行与方法600的实施例相关联的操作。方法600的实施例可以通过运行诸如图1的安全应用104和图2的安全应用220之类的应用来执行。

方法600的实施例可以在步骤602处开始,在该处与一个或多个存储装置通信的处理装置接收部署在计算环境中的应用的列表。可以通过网络来接收所述应用的列表。例如,图2的计算装置200的处理装置202可以接收可包括与图3的表302中描述的信息相类似的信息的应用的列表。所述应用的列表可以被作为数据库接收或被从数据库接收,所述数据库例如存储在数据库系统106中。在一些实施例中,所述应用的列表被作为部署在服务提供商系统100中的应用的应用依赖关系的映射而接收,其可以包括部署在内部计算环境108a中的应用实例以及部署在由服务提供商操作或代表服务提供商的外部计算环境108b的部分中的应用实例。包括其应用的列表的所述应用依赖关系的映射可以根据在每个应用的实例化时产生和交换的信息来产生。在一些实施例中,所述应用的列表或所述应用的列表的部分可以从内部装置130接收,和/或所述应用的列表或其部分可以从在所述云架构110中操作的监测服务116接收。

在步骤604处,处理装置可以计算用于所述应用的列表中包括的第一应用的安全风险分数。例如,所述处理装置202可以运行安全应用220,以基于应用安全信息222中包括的各种因素而将风险分数点分配给第一应用。例如安全应用可以由于具有高数量的依赖关系而给应用25点,由于使用敏感服务而给应用10点,以及由于作为敏感服务而给应用25点。因此在安全应用220的计算时的组合的安全风险分数将为60。

在步骤606,处理装置可以确定与第一应用相关联的安全优先级或类别,所述第一应用的第二优先级可以基于第一应用的安全风险分数。例如,处理装置220可以运行安全应用220以取决于应用的安全风险分数而将第一应用分类到应用的若干类别或层级之一中。例如,第一安全风险类别可以包括具有大于或等于80的安全风险分数的应用。第二安全风险类别可以包括具有大于或等于60但小于80的风险分数的应用,而第三安全风险类别可以包括具有大于或等于40但小于60的安全风险分数的应用,等等。在一些实施例中,每个安全风险类别可以与文本或颜色描述相关联,例如非常高、高、中等、低,例如,如同在此描述的,所述文本或颜色描述可以在界面300、400或500之一中传达。

虽然本公开的实施例可以使用范围从0到100的示例性安全风险分数系统,但是在不背离本公开的范围的情况下也可以使用其它打分方案。例如,在一些实施例中安全风险分数可以大于100。一般地,安全风险分数提供了可用于将一个应用的安全风险与另一应用的安全风险相比较和/或对服务提供商系统100中的所有应用进行分类的数值分数。这可能使得管理安全人员能够对面临最大的实时安全风险的应用有限考虑其安全测试时间。此外,安全风险分数可以用于确定可被分配自动测试方案的应用的子集,在给定所述子集中的应用所呈现的安全风险的情况下所述自动测试方案可能是足够的。

在步骤608处,处理装置可以将计算环境中部署的应用的划分优先级后的列表通过网络发送到客户端装置以用于在用户界面中向客户端装置的用户显示。例如,处理装置202可以运行安全应用220以使用用户界面300(图3)的表302中示出的信息来产生和发送应用的划分优先级后的列表。

方法600的一些实施例可以基于安全风险分数来对应用列表划分优先级,而不用确定与每个应用相关联的安全优先级或类别。此外,方法600的一些实施例可以包括将划分优先级后的列表发送到自动测试系统140的步骤。在一些实施例中,自动测试系统140可以基于划分优先级后的或分类后的列表和/或所述列表中包括的应用的安全风险分数来确定用于每个应用的适当的测试方案。在一些实施例中,安全应用220可以基于应用的安全风险分数而产生测试方案,并随后将这些测试方案通过网络120发送到自动测试系统140以由此进行实现。例如,安全应用220可以产生用于第一应用的测试方案,包括测试模块142和用于利用测试模块142来扫描与第一应用相关联的安全问题的时间表。

可被安全应用220在计算或确定用于多个应用的安全风险分数时使用的应用安全信息222可包括指示潜在的安全风险的任意信息。例如,应用安全信息222可以包括第一应用的实例的计数、应用的实例被部署于其中的区域、与第一应用相关联的生成信息(例如版本、生成日期、所有者、团队)、示出了第一应用的依赖关系的依赖关系映射、和/或与第一应用相关联的安全标签。与第一应用相关联的应用安全信息222还可以是标识第一应用所利用的一个或多个端口、一个或多个协议、以及一个或多个域名的信息。在一些实施例中,应用安全信息222可以包括应用是否处理或访问媒体项或访问内容加密密钥的指示,所述媒体项包括版权内容,特别是未加密的版权内容。

现在参照图7,在此示出了执行对服务提供商系统中部署的多个应用的安全评估和测试的方法700的流程图。如同所示出的,方法700包括若干列举的步骤、块或操作。方法700的实施例可以包括在所述列举的操作之前、之后、当中或作为所述列举的操作的部分的附加的操作。方法700的实施例可以忽略所列举的操作的一个或多个。方法700的一些实施例可以包括存储在如同图2的存储器204的非瞬时性计算机可读存储介质上的如同图2的指令203的指令。当被运行时,指令203可以使得如同计算装置200的处理装置202的处理装置执行与方法700的实施例相关联的操作。方法700的实施例可以通过运行应用来执行,例如图1的安全应用104和图2的安全应用220。

方法700的实施例可以在步骤702处开始,在该处第一计算装置的处理装置通过网络接收与第一应用相关联的应用安全信息。例如,计算装置200的处理装置202(被配置为应用安全服务器102)可以通过网络120接收来自一个或多个源的应用安全信息222。例如,处理装置202可以与内部装置130、自动测试系统140、和/或监测服务116通信,以请求和/或接收应用安全信息222。应用安全信息222可以包括指示图1的服务提供商系统100中部署的多个应用的每个应用的潜在的安全风险的任意信息。

在步骤704处,处理装置可以基于通过网络接收的应用安全信息来计算用于第一应用的安全风险分数。例如,处理装置202可以运行安全应用220来产生用于第一应用的安全风险分数。如同在此描述的,可以通过对被确定为与应用所产生的潜在的安全风险相关的各种因素的每个因素分配点来计算安全风险分数。

在步骤706处,处理装置可以基于所计算的安全风险分数而产生用于第一应用的安全测试方案推荐。例如,处理装置202可以产生用于应用的、指示将在每周的基础上针对应用而运行nessus和owaspzap测试模块的安全测试方案。安全测试方案可以包括其它的测试模块和/或其它的定期的时间表。处理装置202所产生的安全测试方案的实施例可以指示第一测试模块应当被每周运行而第二测试模块应当被每隔一周地运行。相应地,如与第一应用用相关联的应用安全信息所指示的,处理装置202可以产生适合于第一应用所产生的特定的安全风险的安全测试方案。

在步骤708处,处理装置可以将安全测试方案推荐通过网络发送到第二计算装置。例如,处理装置202可以将包括安全测试方案的数字指令发送到自动测试系统140以由此进行实现。在一些实施例中,处理装置202可以将作为推荐的安全测试方案的安全测试方案发送到客户端装置1504以在界面152中向管理安全人员或其它用户呈现。在一些实施例中,用户可以在所推荐的安全测试方案被自动测试系统140实现之前接受、拒绝或修改所推荐的安全测试方案。相应地,处理装置202可以在发送到自动测试系统以用于实现之前接收对安全测试方案的接受、拒绝或修改的指示。

如同在此描述的,处理装置202可以用来计算用于应用的安全风险分数和产生用于应用的安全测试方案推荐的应用安全信息可以包括与内部计算环境108a中部署的应用的实例以及外部计算环境108b中部署的应用的实例相关的信息。所述应用安全信息可以包括云架构中部署的第一应用的实例的实时计数和/或云架构中部署的第一应用的实例的计数的增长速率。当使用实例的计数的增长速率时,在确定实例的计数中的增长速率(或降低速率)时可以依赖于实例的实时的和历史的计数。

此外,方法700的一些实施例可以包括作为安全测试方案推荐的部分的对第一应用的源码的指针。自动测试系统140可以使用该指针来定位要使用一个或多个测试模块进行测试的源码。在预定的测试时,自动测试系统140可以使用所述指针、地址或其它定位信息来检索所述源码的拷贝,以识别图1的源码库中的适当的源码。在一些实施例中,应用安全服务器102可以确定在两个应用的源码中是否存在依赖关系。

本公开的系统、服务器、装置和方法的实施例可以提供用于对复杂的服务提供商系统中部署的大量的应用的安全评估、调度和测试。应用安全服务器和/或安全应用可以处理应用安全信息以计算针对复杂的提供商系统中部署的每个应用的安全风险分数。基于所述安全风险分数,应用安全系统可以确定应当被执行以维持服务提供商系统的安全和完整性的适当的自动的和/或手动的测试。应用安全系统还可以向管理安全人员提供允许所述人员对其在对服务提供商系统中的实例化的应用的子集执行更详细的渗透测试时的时间和努力划分优先级的信息。安全风险分数可以以与服务提供商系统100及其中部署的应用相关的当前的实时信息为因素。

本公开的一些方面在以下编号的条款中陈述:

1.一种应用安全系统,所述系统包括:应用安全服务器,具有与一个或多个存储系统通信的处理装置;多个计算装置,所述计算装置运行被配置为通过网络接收和发送信息的多个应用实例;以及安全测试系统,包括多个安全测试模块,其中所述测试模块包括与第一应用相关联的第一测试模块,所述第一应用与一个或多个所述应用实例相关联;并且其中所述应用安全服务器的所述处理装置:检索与所述第一应用相关的信息,所述信息包括所述第一应用的当前的依赖关系信息,计算用于所述第一应用的安全风险分数,所述安全风险分数是基于与所述第一应用相关的所述信息来计算的,确定与所述第一应用相关联的安全优先级,所述第一应用的所述安全优先级基于用于所述第一应用的所述安全风险分数,以及在应用安全信息的数据库中将所述第一应用的所述安全优先级与所述第一应用相关联。

2.根据条款1所述的应用安全系统,其中所述应用安全服务器与所述安全测试系统通信,以访问与所述第一应用相关联的测试信息,所述测试信息指示所述第一测试模块被用于测试所述第一应用的最近的测试时间。

3.根据条款1-2中任一所述的应用安全系统,其中用于所述第一应用的所述安全风险分数是基于所述第一测试模块被用于测试所述第一应用的所述最近的测试时间以及与所述第一应用相关联的测试时间表来计算的。

4.根据条款1-3中任一所述的应用安全系统,其中与所述第一应用相关的所述信息包括以下中的至少一个:所述第一应用的部署的实例的计数;与所述第一应用相关的标签,所述标签指示所述第一应用包含或有权访问敏感信息;所述第一应用与之通信的应用的计数;从所述互联网对所述第一应用的可访问性;以及所述第一应用的当前的依赖关系信息。

5.根据条款1-4中任一所述的应用安全系统,其中所述第一应用的部署的实例的计数为第一实时计数,并且所述第一应用与之通信的应用的计数为第二实时计数。

6.根据条款1-5中任一所述的应用安全系统,还包括云架构,所述云架构通过网络与所述应用安全服务器通信,所述云架构包括多个部署的应用实例,并且其中所述第一应用与所述部署的应用实例中的至少一个通信。

7.根据条款1-6中任一所述的应用安全系统,其中所述云架构包括被配置用于向所述云架构报告与部署的应用相关的信息的监测服务,所述部署的应用的信息包括部署的应用实例的计数以及与所述部署的应用相关联的安全信息。

8.根据条款1-7中任一所述的应用安全系统,其中所述应用安全服务器包括基于在每个应用的初始化时从每个应用接收的信息的应用之间的依赖关系的映射。

9.根据条款1-8中任一所述的应用安全系统,其中所述应用安全服务器的所述处理装置与所述安全测试系统通信,以改变与所述第一应用相关联的测试方案。

10.根据条款1-9中任一所述的应用安全系统,其中所述测试方案包括在测试所述第一应用时要应用的一个或多个测试模块以及指示所述测试模块何时将被应用于测试所述第一应用的时间表。

10.1.一种存储有指令的非瞬时性计算机可读存储介质,所述指令当被一个或多个处理装置运行时使得所述处理装置执行条款1-10中任一所述的特征中的任一特征。

10.2.一种包括指令的计算机程序产品,所述计算机程序产品当被在一个或多个处理装置上实现时执行条款1-10中任一所述的特征中的任一特征。

10.3一种方法,所述方法当被一个或多个处理装置实现时执行提供条款1-10中任一所述的特征中的任一特征的操作。

11.一种应用安全系统,包括:处理装置,所述处理装置与一个或多个存储装置通信,所述一个或多个存储装置包括存储在其上的指令;以及网络接口,所述网络接口使得所述处理装置能够通过网络与一个或多个其它装置通信,并且其中所述处理装置运行所述指令以:通过所述网络接收在计算环境中部署的应用的列表;计算用于所述应用的列表中包括的第一应用的安全风险分数;确定与所述第一应用相关联的安全优先级,所述第一应用的所述安全优先级基于用于所述第一应用的所述安全风险分数;以及通过网络将所述计算环境中部署的应用的划分优先级后的列表发送到客户端装置以用于在用户界面中向所述客户端的用户显示。

12.根据条款11所述的应用安全系统,其中所述处理装置还运行所述指令以请求来自所述一个或多个其它装置的应用安全信息,所述应用安全信息包括以下中的至少一个:所述第一应用的实例的计数;所述应用被部署于其中的区域;与所述第一应用相关联的生成信息;所述第一应用被配置用于与之通信的应用的列表;以及与所述第一应用相关联的安全标签。

13.根据条款11-12中任一所述的应用安全系统,其中与所述第一应用相关联的所述应用安全信息标识所述第一应用所利用的端口、协议或域名系统(dsn)名。

14.根据条款11-13中任一所述的应用安全系统,其中与所述第一应用关联的安全优先级指示所述第一应用将经历通过安全管理人员的手动测试处理,并且其中所述处理装置运行所述指令以向所述安全管理人员发送传达与所述第一应用相关联的安全优先级的电子通知。

14.1.一种存储有指令的非瞬时性计算机可读存储介质,所述指令当被一个或多个处理装置运行时使得所述处理装置执行条款11-14中任一所述的特征中的任一特征。

14.2.一种包括指令的计算机程序产品,所述计算机程序产品当被在一个或多个处理装置上实现时执行条款11-14中任一所述的特征中的任一特征。

14.3一种方法,所述方法当被一个或多个处理装置实现时执行提供条款11-14中任一所述的特征中的任一特征的操作。

15.一种方法,包括:通过第一计算装置的处理装置并通过网络接收与第一应用相关联的应用安全信息;基于通过所述网络接收的所述应用安全信息来计算用于第一应用的安全风险分数;基于所计算的安全风险分数来产生用于所述第一应用的安全测试方案推荐;以及通过网络将所述安全测试方案推荐发送到第二计算装置。

16.根据条款15所述的方法,其中所述第一应用被部署在云架构中,并且其中接收与所述第一应用相关联的应用安全信息包括接收来自在所述云架构内操作的监测服务的应用安全信息。

17.根据条款15-16中任一所述的方法,其中所述应用安全信息包括部署在所述云架构中的所述第一应用的实例的实时计数以及部署在所述云架构中的所述第一应用的实例的计数的增长速率。

18.根据条款15-17中任一所述的方法,还包括识别在包括所述云架构的账号的计算环境中操作的多个应用。

19.根据条款15-18中任一所述的方法,其中通过网络向所述第二计算装置发送所述安全测试方案推荐包括:向安全测试系统发送指令,以在所述安全测试系统在所述第一应用上执行安全测试时应用第一测试模块。

20.根据条款15-19中任一所述的方法,其中所述应用安全信息包括对源码库中的所述第一应用的源码的指针,并且其中所述指针被包括在所述安全测试方案推荐中。

20.1.一种存储有指令的非瞬时性计算机可读存储介质,所述指令当被一个或多个处理装置运行时使得所述处理装置执行条款15-20中任一所述的特征中的任一特征。

20.2.一种包括指令的计算机程序产品,所述计算机程序产品当被在一个或多个处理装置上实现时执行条款15-20中任一所述的特征中的任一特征。

20.2一种计算系统,所述计算系统当被一个或多个处理装置实现时执行提供条款15-20中任一所述的特征中的任一特征的操作。

尽管为了清楚和理解的目的起见已经以示出和示例的方式详细描述了本公开的前述方面,但是应当认识到,上述的发明可以以诸多其它的特定变化和实施例来实现,而不背离本发明的精神或实质特征。可以实行各种变化和变型,应当理解,本发明不限于上述细节,而是将由权利要求的范围来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1