用于软件模块的迁移服务方法和模块与流程

文档序号:13451327
用于软件模块的迁移服务方法和模块与流程
本文实施例涉及迁移服务模块及其方法。特别地,其涉及在检测到安全漏洞时将软件模块从一个环境迁移到另一个环境。

背景技术:
现在的计算环境、网络或系统(包括例如用于运行不同应用或服务的计算机或服务器)通常会遇到安全问题。当在系统或网络中的服务器或计算机中发现安全问题(例如最近的“破壳漏洞利用(shellshockexploit)”)时,对于如何处理几乎没有选择。最常见的方法是希望在补丁开发和应用之前系统不会受到影响。更安全的方法是停止服务器或计算机,或将其从网络中拔出,并在重新连接之前等待安全更新。当前解决方案的问题是在开发和应用安全更新之前,服务器是易受攻击的或不可用的。对于在服务器上运行的某些应用和服务,这可能是不可接受的。安全问题在云计算中变得更加普遍和有挑战性,云计算是基于网络的计算,涉及数据中心内的大量服务器,以提供计算资源和数据存储。云计算涉及部署远程服务器和软件网络组,允许上载不同类型的数据源进行实时处理以生成计算结果,而无需将处理后的数据存储在云中。云计算依赖于资源共享,以实现网络的一致性和规模经济,并且还聚焦于最大化共享资源的有效性。因此,拔掉或停止具有安全问题的服务器不是有吸引力的解决方案。美国专利US8813240描述了与用于提高计算机安全性的防御技术相关的技术。系统可以监视虚拟机的时钟访问,并确定时钟访问次数是否超过阈值。如果时钟访问次数超过阈值,则系统可以确定虚拟机正在执行恶意进程,例如旁道攻击。系统可以限制虚拟机访问时钟的能力。例如,系统可以限制虚拟机访问时钟的频率。此外,系统可以将物理机器上托管的虚拟机中的一个或多个迁移到不同的物理机器。因此,US8813240中的方法描述了一旦在系统中发现运行的恶意进程之后如何“逃脱”,该解决方案取决于首先识别恶意进程。而且,整体迁移虚拟机中的一个或多个可能是复杂的,且不一定是其他安全问题所必需的。

技术实现要素:
本文的实施例的目的是提供用于处理计算环境中的安全问题的改进方式。根据本文实施例的第一方面,通过用于软件模块的迁移服务方法来实现该目的。根据该方法,当检测到正在运行软件模块的第一环境中的安全漏洞时,将软件模块或软件模块的部分从第一环境迁移到第二环境。根据本文实施例的第二方面,通过用于软件模块的迁移服务模块实现该目的。所述迁移服务模块被配置为:检测正在运行软件模块的第一环境中的安全漏洞,并在检测到安全漏洞时,将所述软件模块或所述软件模块的部分从第一环境迁移到第二环境。根据本文的实施例,当在诸如计算平台或操作系统的环境中发现安全问题时,在其上执行的软件模块(例如,应用或服务)被自动移动到另一环境,例如,运行不具有安全问题的平台或操作系统的计算机或服务器。例如,如果第一环境正在运行发现具有安全漏洞的某个版本的操作系统,则在其上运行的服务可以完全或部分地迁移到运行没有该漏洞的操作系统的另一环境中。这样,即使在安全漏洞期间,第一环境和软件模块(应用或服务)都可以迁移到另一环境中。因此,这里的实施例提供了一种通过将软件模块从具有安全问题的环境迁移到另一安全环境来处理计算环境中的安全问题的改进方式。附图说明参照附图来更详细地描述本文的实施例的示例,在附图中:图1是示出了计算环境的示例的框图。图2是描述迁移服务方法的一个实施例的流程图。图3是示出了迁移服务模块的实施例的示意性框图。具体实施方式图1示出了在其中实现本文的实施例的计算环境100的示例。在该上下文中,环境可以被称为计算网络、计算系统、平台、主机、数据中心、站点、云等。计算环境100包括一个或多个环境,其中示出了第一环境110、第二环境120,并且它们经由有线或无线连接彼此连接或能够经由有线或无线连接彼此通信。每个环境110、120可以是诸如服务器、计算机的物理机器、或虚拟机、Linux容器或Docker模块。虚拟机是特定计算机系统的模拟。虚拟机基于计算机体系结构和真实计算机或假想计算机的功能进行操作,并且其实现可能涉及专门的硬件、软件或两者的组合。Linux容器是操作系统级的虚拟化环境,用于在单个Linux控制主机上运行多个独立的Linux系统或容器。Docker是将应用及其依存物在虚拟容器中打包的工具。Docker模块是管理这种Docker模块的打包和部署的Docker中包含并运行应用的软件模块。如今,云应用或云服务通常由多个部分(即,多个软件模块)组成,每个软件模块在其各自的独立环境中运行,例如,软件模块111、112在第一环境110中,软件模块121、122在第二环境120中。不同的部分或软件模块通常通过某种形式的远程过程调用(RPC)、消息总线等进行通信。这些软件模块中的一些可能比其他软件模块更为重要,例如,它们可能对于服务的功能更为重要、包含敏感信息等。如果发现安全漏洞或在发现安全漏洞时,可能需要额外小心保护它们。根据这里的一些实施例,为了为在环境上运行的软件模块提供额外的保护,提供了用于软件模块111、112、121、122的迁移服务200用于处理环境(例如第一和/或第二环境110、120)中的安全问题。现在将参照图2描述通过迁移服务200执行的方法。该方法包括以下动作。动作201迁移服务200检测正在运行软件模块111、112的第一环境中的安全漏洞。动作202当检测到安全漏洞时,迁移服务200将软件模块111、112或所述软件模块的部分从第一环境110迁移到第二环境120。通过将所述软件模块或所述软件模块的部分迁移到第二环境120,所述软件模块或所述软件模块的部分可以被迁移到更受保护的环境,例如不包含安全漏洞的环境。根据这里的一些实施例,仅迁移软件模块的部分,即,敏感部分,则该方法还可以包括以下动作:动作203迁移服务200基于预定或计算的敏感度等级来识别对安全漏洞敏感的软件模块。例如,一些软件模块对于服务的功能更为重要,包含敏感信息等,并且可能具有敏感度等级的标签。具有预定的敏感度等级的服务可能包括从事例如患者日记、银行信息、以及其他不应向公众公布的数据的工作的服务。此外,经常使用的服务(例如流行的搜索引擎)、或如果下降可能会损害业务的服务可能具有默认的高敏感度等级。取决于例如具有已知安全漏洞的软件模块的服务可能具有高敏感度等级。敏感度等级也可能取决于当前正在使用该服务的人。例如,当例如“财富”500强公司或军方正在使用时,通常不是非常重要的服务可能变得更为重要。因此,应给予更高的敏感度等级。动作204迁移服务200将识别的软件模块从第一环境110迁移到第二环境120。根据这里的一些实施例,第二环境120的软件组件、硬件组件或软件组件的版本或硬件组件的版本中的至少一个与第一环境110的不同。并且软件组件可以包括操作系统、管理程序、docker、安全和加密库、运行时间执行环境、python解释器等。例如,在具有运行特定版本的Linux发行版(例如,Ubuntu14.04)的一些服务器的数据中心的情况下,在这个发行版中发现了关键的安全漏洞。通过将敏感软件模块移动到运行尚未找到缺陷的不同Linux发行版(例如,Slackware)或发行版的另一版本(例如Ubuntu14.10)的服务器,在软件模块迁移期间,可以保持服务只有轻微的停顿。这当然不限于第一环境和第二环境110、120具有不同的操作系统。它们可能具有管理程序或docker等的不同版本。此外,它们可以包括不同的硬件组件或硬件组件的不同版本。注意,第二环境120(例如,目的地服务器)不必在地理上靠近。唯一的要求是,第一环境和第二环境110、120以某种方式连接,无论是经由有线或无线网络,例如,包括第二/第三代(2G/3G)网络、3G长期演进(LTE)网络、4G网络、全球微波接入互联(WiMAX)网络、无线局域网(WLAN)等的蜂窝通信网络,以及新兴的5G(即第5代移动网络)。随着微服务的日益普及,迁移软件或软件模块将变得更加容易。此外,在计算环境或平台上引入应用编程接口(API)是相当容易的,可以根据软件模块的某些预设或计算的敏感度等级自动执行这些迁移。可以按照多种方式发起迁移。安全相关的邮件列表、网页、数据库或网络论坛通常具有报告问题的形式化方式,允许简单的计算机程序监视列表或页面,并在报告安全问题时发起迁移。可能存在第一阶段,其中安全信息由人或计算机聚合并以机器可读格式发送,其中每个站点或数据中心可以检查列表,并确定是否有任何问题与其正在运行的软件相关。因此,根据这里的一些实施例,可以通过监视订阅的邮件列表中、网页上、数据库或网络论坛中的安全问题来实现检测第一环境中的安全漏洞。然后,检测第一环境中的安全漏洞可以基于安全问题是否与在第一环境上运行的软件模块相关。作为一个示例,对于安全性是问题的计算环境或平台而言,具有例如受限邮件列表(其中在将问题公开之前讨论并解决了可能的安全问题)可能是好的。例如,可以订阅以下列表:https://hadoop.apache.org/mailing_lists.html#Securityhttps://lists.debian.org/debian-security/http://seclists.org/oss-sec/通过订阅这样的邮件列表并针对某些版本的安全问题监视这样的邮件列表,可以得到可能的安全弱点的早期警告,并对其采取行动。根据这里的一些实施例,可以通过与入侵检测系统连接来实现检测第一环境上的安全漏洞,并且可以基于检测到入侵来检测第一环境上的安全漏洞。此外,检测入侵可以包括检测受损服务。在这些实施例中,迁移服务可以与入侵检测系统连接。入侵检测系统(IDS)是一种设备或软件应用,用于监视网络或系统活动以发现恶意活动或违反政策的情况,并向管理站生成报告。通过与管理站连接,可以在根据报告检测到入侵时发起迁移。例如,如果数据中心中的一些服务似乎已经受损,则可以将敏感和/或重要的服务迁移走,即,去往另一数据中心。在这种场景中,如果不知道在入侵中使用了哪个漏洞或是否在入侵中使用了任何漏洞,则可能最好将敏感和/或重要的服务迁移到相对于原始主机尽可能不同的另一主机。综上所述,上述迁移服务200执行的方法或不同的动作通过将敏感或重要的软件模块迁移到安全的环境来对敏感或重要的软件模块提供额外的保护,因此降低了服务和数据受损的可能性。例如,如果物理机器正在运行被发现具有安全漏洞的某个版本的操作系统,则可以将在其上执行的服务全部或部分地迁移到不存在该漏洞的运行一操作系统的机器上。即使在安全漏洞期间,第一环境和软件模块(应用或服务)都可以迁移到另一环境中。如果采取步骤确保在迁移之前或迁移期间服务未受损,例如确保数据的完整性,则在处理安全漏洞的同时,它们将保持安全和可靠。这些优点使根据本文实施例的迁移服务成为拔掉网络插头的可行和改进的替代方案。此外,在根据本文的实施例的迁移服务方法中,不必知道哪个进程是恶意的、或哪个漏洞或哪些漏洞被用于损坏原始系统。此外,只有原始系统上运行的软件模块或软件模块的一部分、而不是原始系统本身才能迁移到尽可能不同的系统,例如,不同的操作系统、不同的管理程序等。因此,根据实施例的迁移服务提供了一种相对于US8813240中公开的方法的处理安全问题的改进方式。为了在迁移服务200中执行以上关于图2描述的用于处理计算环境100中的安全问题的方法动作,迁移服务200可以在服务器中实现、在以基础设施即服务(IaaS)提供商主伺的虚拟机上实现为软件即服务(SaaS),或在示为图3中的迁移服务模块300的模块中实现。迁移服务模块300可以包括图3中描述的以下电路或模块。迁移服务模块300被配置为借助于检测模块310被配置为检测正在运行软件模块的第一环境中的安全漏洞。迁移服务模块300还被配置为借助于迁移模块320被配置为如果检测到安全漏洞则将所述软件模块或所述软件模块的部分从第一环境迁移到第二环境。根据一些实施例,迁移服务模块300还被配置为借助于识别模块330被配置为基于预定或者计算的敏感度等级来识别对安全漏洞敏感的软件模块。然后,迁移服务模块300还被配置为借助于迁移模块320被配置为将所识别的软件模块从第一环境迁移到第二环境。根据一些实施例,迁移服务模块300还被配置为借助于检测模块310被配置为监视订阅的邮件列表中、网页上、数据库或网络论坛中的安全问题;并基于所述安全问题是否与在所述第一环境上运行的软件模块相关来检测所述第一环境中的安全漏洞。根据一些实施例,迁移服务模块300还被配置为借助于检测模块310被配置为与入侵检测系统连接,并基于检测到入侵,检测第一环境中的安全漏洞。根据一些实施例,迁移服务模块300还被配置为检测受损服务。本领域技术人员将理解,上述检测模块310、迁移模块320、识别模块330可以指一个模块、模拟和数字电路的组合、配置有执行每个模块功能的软件和/或固件和/或任何其他数字硬件的一个或多个处理器(如图3所示的处理器340)。这些处理器中的一个或多个、模拟和数字电路的组合以及其它数字硬件可以包括在单个专用集成电路(ASIC)中,或者若干个处理器和各种数字硬件可以分布在若干个分离的组件上,不论单独封装还是组装为片上系统(SoC)。迁移服务模块300还可以包括存储器350,存储器350包括一个或多个存储单元。存储器350被布置成用于存储信息,例如,网络或环境系统信息、安全问题列表、敏感等级信息或其他数据库、以及在迁移服务模块300中执行时执行这些方法的配置。可以通过一个或多个处理器(如迁移服务模块300中的处理器340)以及用于执行此处实施例的功能和动作的计算机程序代码来实现此处用于迁移服务200的实施例。以上提到的程序代码还可以提供被为计算机程序产品,例如呈承载用于在加载到迁移服务模块300中时执行本文实施例的计算机程序代码的数据载体的形式。这样的一种载体可以是CDROM盘的形式。然而还可以是诸如存储棒之类的其它数据载体。计算机程序代码还可以作为纯程序代码提供在服务器上并下载到迁移服务模块300。当使用单词“包括”或“包含”时,其应当被解释为非限制性的,即意味着“至少由...构成”。本文的实施例不限于上述优选实施例。可使用各种备选、修改和等同物。因此,上述实施例不应被视为由所附权利要求限定的限制本发明的范围。...
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1