CN112868007A - 检测与软件组件相关的安全风险 - Google Patents

检测与软件组件相关的安全风险 Download PDF

Info

Publication number
CN112868007A
CN112868007A CN201980069330.7A CN201980069330A CN112868007A CN 112868007 A CN112868007 A CN 112868007A CN 201980069330 A CN201980069330 A CN 201980069330A CN 112868007 A CN112868007 A CN 112868007A
Authority
CN
China
Prior art keywords
container
security
inspection
layer
security risk
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
Application number
CN201980069330.7A
Other languages
English (en)
Inventor
G·西亚诺
L·皮切蒂
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of CN112868007A publication Critical patent/CN112868007A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本公开涉及包含用于检测与可部署在基于容器的运行时环境中的软件组件相关的安全风险的指令的相关方法、***和介质。该方法包括接收触发器,该触发器指示基于容器的运行时环境内的容器的层将被检查安全风险。识别要检查安全风险的容器的检查层。根据检查标准做出先前未针对检查层执行对安全风险的检查的确定,并且响应于该确定,做出安全分析指示安全风险的确定。响应于该确定,可以发起补救动作。

Description

检测与软件组件相关的安全风险
技术领域
本公开总体上涉及数字计算机***领域,并且更具体地涉及一种用于检测与要部署在基于容器的运行时环境中的软件组件相关的安全风险的方法。
背景技术
由于技术发展,资源虚拟化技术已经变得显著。用户的计算机除了安装的公共本地应用之外还频繁地包含在虚拟化环境中可用的产品。这些虚拟环境可以在计算机的桌面中可见,并且可以被分组到诸如虚拟机、容器和虚拟设备之类的类别中。然而,容器的监测是一个挑战性的任务。
发明内容
本发明的一些实施例解决了提高基于容器的运行环境运行效率的技术问题。本文公开的技术方案提供了一种用于检测与要部署在基于容器的运行时环境中的软件组件相关的安全风险的***和相关方法。下面描述有利的实施例。如果本发明的实施例不相互排斥,则它们可以自由地彼此组合。
在一个方面,提供了一种用于检测与要在基于容器的运行时环境中部署的软件组件相关的安全风险的计算机实现的方法。该方法可以包括接收触发,该触发指示基于容器的运行时环境内的容器的层将被检查安全风险。该方法可以还包括识别将被检查安全风险的容器的检查层。所述方法可以根据检查标准来确定先前尚未针对所述检查层执行对安全风险的检查,在这种情况下,响应于确定先前尚未执行对安全风险的所述检查,确定安全分析指示安全风险。该方法还可以响应于确定安全分析指示安全风险,发起补救动作。
另一方面涉及用于检测与要在基于容器的运行时环境中部署的软件组件有关的安全风险的计算机***。所述计算机***可以包括被配置为执行指令的容器漏洞顾问(CVA)的处理器,所述指令当在所述处理器上执行时使得所述CVA接收触发,所述触发指示针对所述安全风险来检查所述容器的层。所述处理器还可以被配置为执行指令,所述指令识别所述容器的要被检查安全风险的检查层,并且根据检查标准确定何时先前已经针对所述检查层执行了安全风险的检查。当确定为否定时,那么指令可致使处理器执行检查层的安全分析。当安全分析指示安全风险时,则指令可以使处理器发起补救动作。当安全分析指示没有安全风险时,则指令可以使处理器跳过补救动作的启动。当所述确定是肯定的时,则所述指令可以使得所述处理器跳过针对所述检查层的所述安全分析的执行。
在另一方面,可以提供一种计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质具有随其体现的计算机可读程序代码,该计算机可读程序代码被配置成用于执行在此描述的不同方法操作。
附图说明
本公开中包括的附图被并入说明书中并且形成说明书的一部分。它们示出了本公开的示范性实施例,并且与描述一起解释本公开的不同原理。附图仅说明典型实施例,并不限制本发明。
图1是根据本公开的一些实施例的可以用于一个或多个方法元件的计算机化***的示例的框图。
图2是根据本公开的一些实施例的可用于检测与可部署在基于容器的运行时环境中的软件组件相关的安全风险的示例方法的流程图。
图3是根据本公开的一些实施例的容器管理***的示例的框图,该容器管理***可以用于检测和修复安装在容器中的应用程序的安全漏洞。
虽然本文中所描述的实施例可适用于不同修改和替代形式,但其细节已经通过举例在附图中示出并且在下文中详细描述。以下描述的具体实施例不应被视为限制性的。相反,本发明将覆盖落入本发明的精神和范围内的所有修改、等同物和替代。
具体实施方式
本公开的各方面一般涉及数字计算机***领域,尤其涉及用于检测与要部署在基于容器的运行时环境中的软件组件有关的安全风险的方法。虽然本公开不一定限于这样的应用,但是可以通过使用该上下文的不同示例的讨论来领会本公开的各个方面。
该方法的一些实施例可使得能够在容器被实例化时在运行时检测安全暴露而无需在容器内部安装任何代理。该方法的一些实施例可以防止在容器内部使用代理,并且因此可以允许在不损害容器的轻质设计的情况下和在容器内部不运行多个竞争过程/代理的情况下检查容器。根据检测到的暴露,可以采取适当的行动来管理容器(及其未来的执行),因此最小化安全问题。
与基于手动调用执行漏洞检查的经典方法相反,该方法的一些实施例可通过利用可基于外部事件触发的发布/订阅方法作为触发来实现漏洞检查。
Figure BDA0003030090600000031
是由Docker公司提供的容器管理服务,该服务允许开发者容易地开发应用并将它们运送到可以容易地部署的容器中。Docker文件是包含配置信息和用于组装容器镜像(image)的命令的文本文档。在Docker***中,Docker镜像是从其启动Docker容器的只读模板;每个Docker镜像可以包含一系列层。这些层可以在安装在同一***上的所有容器之间共享。容器可以是容器镜像的实例。例如,容器镜像可以是Docker镜像。如果已经针对漏洞对这些层进行了分析,则在部署或启动来自同一映像的新容器的过程中不对它们进行重新检查。换言之,不需要针对作为给定容器的同一容器镜像的实例的另一容器再次检查已经针对给定容器的至少一层检查过的安全风险。这可以改进基于容器的环境的性能。
该方法的一些实施例可以使得能够在安装在容器中的应用的时间暴露中进行检测,并且能够对在容器中发现的安全暴露进行补救。这可能是特别有利的,因为这些容器可以是短寿命元素——经典的时间表驱动扫描将可能不能在这种短寿命的容器中检测安全风险。
术语“容器”可以指作为涵盖应用程序在操作***内运行所需的所有元素的虚拟软件对象的软件容器。例如,容器可以是诸如Docker镜像的容器镜像的实例。容器可以包括相应容器镜像的一系列层。一旦容器镜像开始,一个或多个容器可以运行。从同一镜像导出的容器在它们的应用代码和运行时依赖性方面彼此相同。容器的示例包括但不限于Docker容器,其是可以使用Docker运行命令运行的Docker镜像的实例。基于容器的运行时环境可以是启用容器的使用、运行和创建的计算机***。
根据一些实施例,响应于管理实体检测到要部署新容器,可从基于容器的运行时环境的管理实体接收触发。这可以使得能够及时响应潜在的安全风险。
根据一些实施例,该方法可以包括检测存在于该层中的软件产品并且确定是否已经执行对安全风险的检查。此检查可以基于使用标识所检测的软件产品的信息来查询虚拟环境注册表(VER)。VER可以允许集中的信息源,其可以节省资源,特别是如果存在当在每个容器的数据库上分割信息时将另外需要的许多容器。
根据一些实施例,安全分析可以包括检查包括关于某个软件产品的已知安全漏洞的信息的至少一个知识库。这可实现多个镜像和容器的准确和一致的处理。
根据一些实施例,基于容器的运行时环境包括Docker***,并且触发基于由Docker***生成的Docker附接事件。这个实施例可以使本方法的一些实施例能够在现有***中无缝集成。
虽然参考Docker容器、Docker文件、Docker镜像和其他基于Docker的命令讨论了本公开的方面,但应理解的是,这些实施例是出于说明性目的而提供的并且没有限制。其他容器环境具有类似的命令和功能性,并且本公开的实施例可以在那些其他容器环境中实现。例如,其他容器环境可以具有类似于Docker附接事件的功能,由此终端的标准输入、输出和/或错误流可以被附接到运行的容器,其在实施例中可以用作触发器。本文公开的不同方法、***和程序产品可结合任何合适的容器(例如,具有类似功能的容器)和/或容器***来实现,并且本公开不应限于所公开的实施例。
此外,应理解的是,上述优点是示例优点并且不应被解释为限制性的。本公开的实施方式可包含所有、一些或者不包含上述优点,同时保持在本公开的精神和范围内。
图1是可以用于实现如在此所讨论的方法的一些实施例的示例通用计算机化***100的框图。
在此所描述的方法可以是部分非交互的,并且通过计算机化***(如服务器或嵌入式***)的方式自动化。在示例实施例中,本文描述的方法可以在(部分)交互式***中实现。这些方法可以进一步在软件112、122(包括固件122)、硬件(处理器)105或其组合中实现。在举例实施例中,本文描述的方法可以在软件中被实现为可执行程序,并且由诸如个人计算机、工作站、小型计算机或大型计算机之类的专用或通用数字计算机来执行。因此,最通用的***100可以包括通用计算机101。
在示范性实施例中,就硬件架构而言,如图1所示,计算机101包括处理器105、耦合至存储器控制器115的存储器(主存储器)110、以及经由本地输入/输出控制器135通信地耦合的一个或多个输入和/或输出(I/O)设备(或***设备)10、145。如本领域已知的,输入/输出控制器135可以是但不限于一个或多个总线或其他有线或无线连接。输入/输出控制器135可具有为简单起见而省略的额外元件,例如控制器、缓冲器(高速缓冲存储器)、驱动器、中继器和接收器,以实现通信。进一步,本地接口可以包括地址、控制和/或数据连接以实现前述组件之间的适当通信。如本文所描述的,I/O设备10、145通常可以包括本领域已知的任何通用密码卡或智能卡。
处理器105是用于执行软件(具体地,存储在存储器110中的软件)的硬件设备。处理器105可以是任何定制的或商业上可获得的处理器、中央处理单元(CPU),与计算机101相关联的若干处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式),宏处理器,或一般地用于执行软件指令的任何设备或多个设备(例如,在分布式架构中)。
存储器110可以包括易失性存储器元件(例如,随机存取存储器(RAM,如DRAM、SRAM、SDRAM等))和非易失性存储器元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM))中的任何一个或组合。存储器110可具有分布式架构,其中不同组件彼此远离定位,但可由处理器105存取。
存储器110中的软件可以包括一个或多个单独的程序,每个程序包括用于实现逻辑功能(尤其是一些实施例中所涉及的功能)的可执行指令的有序列表。在图1的实例中,存储器110中的软件包括指令112,例如用于管理数据库(如数据库管理***)的指令。
存储器110中的软件还可以包括合适的操作***(OS)111。OS 111可以控制用于实现不同方法的其他计算机程序(例如,软件112)的执行,如本文所描述的。
在此描述的方法可以呈源程序112、可执行程序112(目标代码)、脚本或包括有待执行的指令集112的任何其他实体的形式。当使用源程序时,然后可以经由编译器、汇编器、解释器等翻译程序,所述编译器、汇编器、解释器等可以或可以不包括在存储器110内,以便结合OS 111正确地操作。此外,方法可以被写为具有数据和方法的类的面向对象的编程语言,或者具有例程、子例程和/或函数的过程编程语言。
在不同举例实施例中,常规键盘150和鼠标155可以耦合到输入/输出控制器135。诸如I/O设备145的其他输出设备可以包括输入设备,例如打印机、扫描仪、麦克风等。最后,I/O设备10、145还可以包括传送输入和输出两者的设备,例如网络接口卡(NIC)或调制器/解调器(用于访问其他文件、设备、***或网络)、射频(RF)或其他收发器、电话接口、桥接器、路由器等。
I/O设备10、145可以是本领域已知的任何通用密码卡或智能卡。***100还可以包括耦合到显示器130的显示器控制器125。在不同举例实施例中,***100还可以包括用于耦合到网络165的网络接口。网络165可以是用于经由宽带连接在计算机101与任何外部服务器、客户端等之间通信的基于IP的网络。网络165可在计算机101与外部***30之间发射和接收数据,外部***30可涉及执行本文中所论述的方法操作的部分或全部。在举例实施例中,网络165可以是由服务提供商管理的被管理的IP网络。网络165可以以无线方式实现,例如使用无线协议和技术,诸如Wi-Fi、WiMAX等。网络165还可以是分组交换网络,诸如局域网、广域网、城域网、互联网网络或其他类似类型的网络环境。网络165可以是固定无线网络、无线局域网(LAN)、无线广域网(WAN)、个域网(PAN)、虚拟专用网(VPN)、内联网或其他合适的网络***,并且可以包括用于接收和发送信号的设备。
如果计算机101是PC、工作站、智能设备等,则存储器110中的软件可以还包括基本输入输出***(BIOS)122。BIOS是在启动时初始化和测试硬件、启动OS 111并且支持硬件设备之间的数据传送的基本软件例程的集合。BIOS可以被存储在ROM中,使得当计算机101被激活时可以执行BIOS。
当计算机101处于操作中时,处理器105被配置成用于执行存储在存储器110内的软件112、用于向和从存储器110传达数据、并且通常根据该软件来控制计算机101的操作。用于执行本文所描述的方法和OS 111的全部或部分的指令可以由处理器105读取,可能缓存在处理器105内,然后执行。
当在此描述的***和方法在软件112中实施时,如图1所示,用于实施这些方法的软件可以存储在任何计算机可读介质(如存储装置120)上,以供任何计算机相关的***或方法使用或与其结合使用。存储器120可包括磁盘存储器,例如HDD存储器。
图2是容器管理***200的示例的框图,该容器管理***可以用于检测和修复安装在容器中的应用的安全漏洞。
容器管理***200可以包括虚拟环境注册表(VER)201,该VER 201包含关于容器/虚拟机(VM)212A、B(共同地或通过示例的方式,212)和VM 212和容器216中可用的层的信息。VER 201包含关于容器之一的层是否已经被处理和扫描以用于执行该层的安全分析的信息。容器管理***200还可包括虚拟容器策略(VCP)注册表202,该VCP注册表202包含可被应用于补救检测到的暴露或安全风险的策略。容器管理***200可以还包括容器漏洞顾问(CVA)205,诸如***100,其检测与容器有关的漏洞并且基于所发现的安全风险和可用策略来执行适当的动作。容器管理***200还可以包括安全知识库(KB)(SKB)储存库207,其包含从多个SKB收集的暴露和风险信息,所述多个SKB例如是图2中所示的IBM安全
Figure BDA0003030090600000082
208和MITRE公司的公共漏洞和暴露
Figure BDA0003030090600000081
KB 209。
容器管理***200可还包括容器管理器210,该容器管理器210可用作容器的管理实体。在图2中将容器管理器210示出为与CVA 205分离的组件—然而,在另一举例实施例中,容器管理器210可以是CVA 205的一部分,因此,本文中描述为与CVA 205有关的某些操作和结构方面也可以被解释为与容器管理器210有关。当容器管理器210和CVA 205是物理分离的实体时,容器管理器210可以被配置为经由诸如线缆连接或网络连接的连接与CVA205通信,并且当容器管理器210和CVA 205是物理组合的实体时,容器管理器210可以被配置为经由***总线或经由消息或其他内部通信方案与CVA 205通信。容器管理器210可被配置成监视和/或控制基于容器的运行时环境(VM)212的操作。基于容器的运行时环境212可包括虚拟化***,以例如通过经由分派的和/或离散的容器216和/或VM利用硬件资源(例如,C1、C2和C3)的分区来实现虚拟化计算资源的操作。
例如,容器管理***200的容器注册表211可包括关于基于容器的运行时环境212的信息。如图2所示,基于容器的环境212可以包括容器216。
容器管理***200可以被配置成用于检测用于运行特定容器216的安全暴露(或容器216自身的安全风险)并且如下所述应用适当的补救。
在操作1中(如六边形所示),给定的容器216的启动或任何其他可配置的事件可以由例如CVA 205检测到。这种检测可以包括由CVA 205从容器管理器210接收触发。该检测可以调用例如由CVA 205对给定容器216的扫描。例如,可以利用注册到能够反应性地“Docker附接”到启动容器216中的Docker引擎的事件***来实现检测。
在操作2中,CVA 205可能经由容器管理器210检索与给定容器相关的产品信息。容器216的一个或多个层216a可以由CVA 205扫描以收集或验证关于在该层内使用的产品的产品信息。产品信息可以例如提供关于在容器216的层216a中呈现和/或运行的产品的信息,诸如版本号、发布或可执行文件日期等。对于给定的容器216的一个或多个容器层216a,还可以从VER 201检索关于特定容器层216a的进一步信息以用于后续处理。
例如,可以如下逐层处理容器层216a。如果在可配置的时间帧之前或根据预定义的标准已经扫描了给定容器216的当前容器层216a(例如,用于确定该层的安全风险),则可以跳过该层216a并且可以处理下一个容器层216a。如果先前尚未扫描容器层216a,则可以从容器层216a提取其他信息(例如,产品标识符)并且可以将其保存在VER 201中。在利用Docker容器的示例情况下,这可以通过检索ISO 19770-2 SW识别标签或游泳标签的当前列表(例如,使用命令“cp-R*.swidtag”)并且将其保存到私有存储装置(例如“/common/<container-id》/…”)中来实现。
对于所标识的(例如,从swidtag的XML字段解析的)每个产品,可以在操作3中基于产品的标识符(诸如sw-component-id)来确定是否已经针对存储在VER 201中的该产品标识符报告了安全风险或CVE。
对于所标识的每个产品,在操作4中,可基于标识符(诸如sw-component-id)来确定是否已经针对被标识到SKBs 207中的产品报告了CVE。
如果检测到暴露(例如,报告CVE),则可以在操作5中从VCP 202检索与暴露相关的要执行的适当补救动作,例如,可以从VCP 202读取与检测到的安全风险相关联的策略。可以执行这些策略或动作,以便解决检测到的安全风险。例如,作为补救动作,***(例如,CVA205)可以停止和/或隔离运行的容器216(给定的容器),防止新容器216从给定容器216的相同起始发起元件(例如,Docker文件)派生,触发用于重建和/或修补起始发起元件(例如,Docker文件)的动作,以及重新启动源自发起元件的容器216等。如果容器层216a被成功扫描,则可以在VER 201中执行该层216a的相关信息的更新。Docker文件可用于构建容器镜像,其随后成为运行容器216的基础。尽管Docker文件是发起元件的示例,但也可利用具有类似能力(即,汇编容器镜像)的发起元件的其他形式(例如,二进制或非文本)。
图3是用于检测与基于容器的运行时环境中的软件组件相关的安全风险的示例过程300的流程图。
在操作301中,如上所述,触发可以由例如容器管理器210(其可以包括CVA 205)接收。该触发器可以指示需要对某个容器216或该容器内的层216a进行安全风险检查。容器216可以例如是容器镜像的实例,例如Docker镜像,如上所述。一旦容器镜像开始,一个或多个容器216就可以运行。从同一镜像导出的容器216可以在它们的应用代码和运行时依赖性方面彼此相同。
在操作303中,可识别容器216的一组层216a。这可以例如通过容器管理器210查询数据库(例如VER201)来执行,所述数据库包含关于基于容器的运行时环境212的容器216的信息。
在操作305中,如果已经针对识别的层集合中的至少一个层216a由例如容器管理器210执行了检查安全风险(305:是),则可以在操作307中跳过该层的安全分析。关于“已经执行”的这种确定可以包括一个或多个检查标准。例如,检查标准可利用时间信息,诸如时间范围(例如,是在上个月内执行的检查,或者是在过去的任何时间执行的检查)或事件信息(例如,是基于明确的用户或管理员请求执行的检查)。否则(305:否),在操作308中,可以由例如容器管理器210执行安全分析。查询操作305可以例如基于预定义的时间段(例如,从执行操作305的时间开始的上一周)或根据一些其他预定义的扫描准则来执行,通过查询数据库(例如,VER 301),所述数据库包括与每个层216a和容器216的其他产品相关的信息。此信息可以包括层216a是否已经在预定义时间段或其他扫描标准期间被扫描。跳过先前处理的层216a可节省处理这些层216a原本将需要的处理资源。
在操作309中,可以基于针对至少一个层216a执行的安全分析的结果来检测安全风险。安全分析可以例如包括,对于被检查的层中的每个被识别的产品:基于所识别的产品的产品ID,确定是否已经针对产品ID向给定数据库(诸如安全KBs 207)中报告了安全风险或容器漏洞事件。
在操作310中,可以由例如CVA 205或容器管理器210发起解决检测到的安全风险的补救动作。补救动作的发起可以包括提供已经检测到安全风险或容器漏洞事件的指示、发起在VCP 202中定位风险或漏洞的例程、或发起与风险或漏洞相关联的策略的应用中的至少一个。在另一个示例中,可以对容器镜像而不是容器执行操作301-310。要采取的补救动作可被包含在VCP 202中,如上所述。尽管补救动作可以由CVA 205或容器管理器210发起,但是补救动作的不同元件可以由基于容器的运行时环境212内或在它们外部的其他元件(例如,用于创建包含在其中的虚拟机、容器或层的元件)执行和/或应用于其他元件。
本方法也可以应用于容器镜像。在一个示例中,提供了一种用于检测与要部署在基于容器的运行时环境中的软件组件相关的安全风险的方法。该方法可以包括:接收触发器,该触发器指示需要对某个容器镜像进行安全风险检查;识别组成了容器镜像的一组层;确定是否已经对所识别的一组层中的至少一个层执行了安全风险检查,如果是,则跳过该层的安全分析,否则执行安全分析;以及基于针对所述至少一个层执行的所述安全性分析的结果来检测安全风险。
如在此更详细地讨论的,设想的是,在此描述的方法的一些实施例中的一些或全部操作可以按替代性顺序执行或者可以根本不执行;此外,多个操作可以同时发生或作为较大过程的内部部分发生。
本发明可以是***、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储介质(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构,以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输媒质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
在此所描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机、和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,或者以一种或多种编程语言的任意组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及常规的过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户”的计算机上执行、部分在用户”的计算机上执行、作为独立软件包执行、部分在用户”的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(***)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可被提供给通用计算机的处理器,专用计算机或其他可编程数据处理装置,以产生机器,其通过计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图示出了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现方式的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实现方式中,框中所标注的功能可以不以图中所标注的顺序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以基本上同时执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的***来实现,所述基于专用硬件的***执行指定的功能或动作或执行专用硬件与计算机指令的组合。
在此所使用的术语仅用于描述具体实施例的目的并且不旨在限制不同实施例。如在此使用的,单数形式“一个/一种(a/an)”和“该(the)”旨在也包括复数形式,除非上下文另外清楚地指示。将进一步理解的是,当在本说明书中使用术语“包括”和/或“包括”时,其指定所陈述的特征、整数、步骤、操作、元件和/或组件的存在,但不排除一个或多个其他特征、整数、步骤、操作、元件、组件和/或其组的存在或添加。在各个实施例的举例实施例的先前详细描述中,参考附图(其中相同的数字表示相同的元件),附图形成实施例的一部分,并且其中通过图示的方式示出了其中可以实践各个实施例的特定示例实施例。足够详细地描述了这些实施例以使得本领域技术人员能够实践这些实施例,但是可以使用其他实施例并且可以在不脱离不同实施例的范围的情况下进行逻辑、机械、电气和其他改变。在前面的描述中,阐述了许多具体细节以提供对各个实施例的透彻理解。但是,可以在没有这些具体细节的情况下实践各个实施例。在其他实例中,为了不模糊实施例,未详细示出公知的电路、结构和技术。
如在本说明书中所使用的词语“实施例”的不同实例不一定指代相同的实施例,而是可以指代相同的实施例。本文图示或描述的任何数据和数据结构仅是示例,并且在其他实施例中,可以使用不同数量的数据、数据类型、字段、字段的数量和类型、字段名称、行的数量和类型、记录、条目或数据组织。另外,任何数据可与逻辑组合,使得单独的数据结构可能不是必需的。因此,先前的详细描述不应被视为限制性的。
已经出于说明的目的呈现了本公开的不同实施例的描述,但不旨在是详尽的或限于所披露的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此披露的实施例。
虽然已经根据具体实施例描述了本发明,但是预期其改变和修改对于本领域技术人员而言将变得显而易见。因此,以下权利要求旨在被解释为覆盖落在本发明的真实精神和范围内的所有此类改变和修改。

Claims (20)

1.一种用于检测与要在基于容器的运行时环境中部署的软件组件相关的安全风险的计算机实现的方法,所述方法包括,利用容器漏洞顾问(CVA)的处理器:
接收触发器,所述触发器指示所述基于容器的运行时环境中的容器的层将被检查安全风险;
识别所述容器的检查层,所述检查层将被检查安全风险;
根据检查标准确定对安全风险的检查先前尚未针对所述检查层执行;
响应于所述确定对安全风险的所述检查先前尚未执行,确定安全分析指示安全风险;以及
响应于所述确定所述安全分析指示所述安全风险,发起补救动作。
2.如权利要求1所述的方法,其中响应于用于所述基于容器的运行时环境的容器管理器检测到要部署新容器,从所述容器管理器接收所述触发。
3.如权利要求1所述的方法,还包括检测在所述层中存在的软件产品,其中所述确定何时已经执行了安全风险的所述检查包括使用与所检测到的软件产品相关的产品信息来查询注册表(VER)。
4.如权利要求3所述的方法,其中所述产品信息包括版本号、发布日期或可执行文件日期中的至少一个。
5.如权利要求3所述的方法,还包括:更新所述VER以指示所述安全性分析是针对所述层执行的。
6.如权利要求1所述的方法,其中所述安全分析包括检查安全知识库,所述安全知识库包括关于所述层中的软件产品的已知安全漏洞的信息。
7.如权利要求6所述的方法,其中所述知识库是IBM安全
Figure FDA0003030090590000012
KB 208和MITRE公司的公共漏洞和暴露
Figure FDA0003030090590000011
KB中的至少一个。
8.如权利要求1所述的方法,其中所述基于容器的运行时环境合并
Figure FDA0003030090590000021
***,并且所述触发基于由所述
Figure FDA0003030090590000022
***生成的Docker附接事件。
9.如权利要求1所述的方法,其中所述触发器的所述接收自动地发起所述识别,所述确定先前尚未执行对安全风险的所述检查,以及所述确定安全分析指示安全风险。
10.如权利要求1所述的方法,还包括提供指示所检测到的安全风险的警告或提供对所检测到的安全风险的所述补救动作的指示中的至少一项。
11.如权利要求1所述的方法,还包括重复所述识别、所述确定先前尚未执行对安全风险的所述检查、以及所述确定安全分析指示容器的所有层的安全风险。
12.如权利要求1所述的方法,其中所述检查标准利用时间信息或事件信息。
13.如权利要求1所述的方法,其中所述补救动作是以下各项中的至少一项:当容器正在运行时停止所述容器,隔离所述容器,防止新容器从所述容器的相同始发发起元件派生,对所述相同始发发起元件执行或触发重建或补丁,或从所述相同始发发起元件重新启动所述容器。
14.如权利要求1所述的方法,其中所述发起所述补救动作是以下各项中的至少一项:提供已经检测到安全风险或容器漏洞事件的指示,发起在虚拟容器策略存储器中定位所述风险或漏洞的例程,或发起与所述风险或漏洞相关联的策略的应用。
15.如权利要求1所述的方法,还包括:
根据所述检查标准确定先前已经针对所述检查层执行了对安全风险的所述检查;以及
响应于确定先前已经执行了对安全风险的检查,跳过对所述检查层执行所述安全分析。
16.如权利要求1所述的方法,还包括:
确定所述安全分析未指示所述安全风险;
响应于所述确定所述安全分析未指示所述安全风险,跳过对所述补救动作的所述发起。
17.如权利要求1所述的方法,其中所述CVA在所述容器外部。
18.一种用于检测与要在基于容器的运行时环境中部署的软件组件相关的安全风险的计算机***,所述计算机***包括容器漏洞顾问(CVA)的处理器,所述CVA被配置为执行指令,所述指令当在所述处理器上执行时使所述CVA:
接收触发器,所述触发器指示所述容器的层将被检查安全风险;
识别所述容器的检查层,所述检查层将被检查安全风险;
根据检查标准确定何时先前已对所述检查层执行安全风险检查;
当所述确定是否定的时,则:
对所述检查层执行安全分析;
当所述安全分析指示安全风险时,则发起补救动作;以及
当所述安全分析指示没有安全风险时,则跳过对所述补救动作的所述发起;以及
当所述确定是肯定的时,则跳过对所述检查层执行所述安全分析。
19.如权利要求18所述的***,其中所述指令进一步使所述CVA:
检测存在于所述层中的软件产品,其中所述确定何时已执行安全风险的所述检查包括使用与所检测的软件产品相关的产品信息来查询注册表(VER)。
20.一种计算机程序产品,包括具有随其体现的计算机可读程序代码的计算机可读存储介质,所述计算机可读程序代码被配置为当在容器漏洞顾问(CVA)的处理器上运行时:
接收触发器,所述触发器指示所述容器的层将被检查安全风险;
识别所述容器的检查层,所述检查层将被检查安全风险;
根据检查标准确定何时先前已对所述检查层执行安全风险检查;
当所述确定是否定的时,则:
对所述检查层执行安全分析;
当所述安全分析指示安全风险时,则发起补救动作;以及
当所述安全分析指示没有安全风险时,则跳过对所述补救动作的所述发起;以及
当所述确定是肯定的时,则跳过对所述检查层执行所述安全分析。
CN201980069330.7A 2018-11-15 2019-10-22 检测与软件组件相关的安全风险 Pending CN112868007A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/192,288 2018-11-15
US16/192,288 US10885200B2 (en) 2018-11-15 2018-11-15 Detecting security risks related to a software component
PCT/IB2019/058984 WO2020099960A1 (en) 2018-11-15 2019-10-22 Detecting security risks related to a software component

Publications (1)

Publication Number Publication Date
CN112868007A true CN112868007A (zh) 2021-05-28

Family

ID=70728135

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980069330.7A Pending CN112868007A (zh) 2018-11-15 2019-10-22 检测与软件组件相关的安全风险

Country Status (6)

Country Link
US (1) US10885200B2 (zh)
JP (1) JP7316726B2 (zh)
CN (1) CN112868007A (zh)
DE (1) DE112019005729T5 (zh)
GB (1) GB2589518B (zh)
WO (1) WO2020099960A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113504971A (zh) * 2021-07-20 2021-10-15 华云数据控股集团有限公司 基于容器的安全拦截方法及***
TWI811893B (zh) * 2021-12-15 2023-08-11 中華電信股份有限公司 雲工作負載安全防護系統及其方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102186009B1 (ko) * 2019-03-08 2020-12-04 한국전자통신연구원 컨테이너 인스턴스의 보안 프로파일 생성 시스템 및 방법
US11290491B2 (en) * 2019-03-14 2022-03-29 Oracle International Corporation Methods, systems, and computer readable media for utilizing a security service engine to assess security vulnerabilities on a security gateway element
US11062022B1 (en) * 2019-05-01 2021-07-13 Intuit Inc. Container packaging device
US11874929B2 (en) * 2019-12-09 2024-01-16 Accenture Global Solutions Limited Method and system for automatically identifying and correcting security vulnerabilities in containers
KR102386617B1 (ko) 2020-06-15 2022-04-15 한국전자통신연구원 어플리케이션 컨테이너에 대한 시스템 콜 화이트리스트 생성 장치 및 방법, 어플리케이션 컨테이너에 대한 시스템 콜 제어 방법
US11973770B1 (en) 2020-12-09 2024-04-30 Wiz, Inc. Techniques for multi-tenant vulnerability scanning
CN113901435B (zh) * 2021-12-13 2022-03-01 广东电网有限责任公司 面向容器的可信软件授权验证方法

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080201705A1 (en) * 2007-02-15 2008-08-21 Sun Microsystems, Inc. Apparatus and method for generating a software dependency map
US8613080B2 (en) 2007-02-16 2013-12-17 Veracode, Inc. Assessment and analysis of software security flaws in virtual machines
US9098698B2 (en) 2008-09-12 2015-08-04 George Mason Research Foundation, Inc. Methods and apparatus for application isolation
US8458798B2 (en) * 2010-03-19 2013-06-04 Aspect Security Inc. Detection of vulnerabilities in computer systems
US8572741B2 (en) 2010-10-14 2013-10-29 Moka5, Inc. Providing security for a virtual machine by selectively triggering a host security scan
US8819832B2 (en) 2011-08-26 2014-08-26 Rapid7, Llc Systems and methods for performing vulnerability scans on virtual machines
US9591003B2 (en) * 2013-08-28 2017-03-07 Amazon Technologies, Inc. Dynamic application security verification
US9117081B2 (en) 2013-12-20 2015-08-25 Bitdefender IPR Management Ltd. Strongly isolated malware scanning using secure virtual containers
US10140453B1 (en) * 2015-03-16 2018-11-27 Amazon Technologies, Inc. Vulnerability management using taxonomy-based normalization
US9652612B2 (en) 2015-03-25 2017-05-16 International Business Machines Corporation Security within a software-defined infrastructure
US10586042B2 (en) 2015-10-01 2020-03-10 Twistlock, Ltd. Profiling of container images and enforcing security policies respective thereof
US10943014B2 (en) * 2015-10-01 2021-03-09 Twistlock, Ltd Profiling of spawned processes in container images and enforcing security policies respective thereof
US10915628B2 (en) 2015-10-01 2021-02-09 Twistlock, Ltd. Runtime detection of vulnerabilities in an application layer of software containers
US10296745B2 (en) * 2016-06-23 2019-05-21 International Business Machines Corporation Detecting vulnerable applications
US10169056B2 (en) 2016-08-31 2019-01-01 International Business Machines Corporation Effective management of virtual containers in a desktop environment

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113504971A (zh) * 2021-07-20 2021-10-15 华云数据控股集团有限公司 基于容器的安全拦截方法及***
CN113504971B (zh) * 2021-07-20 2024-02-13 华云数据控股集团有限公司 基于容器的安全拦截方法及***
TWI811893B (zh) * 2021-12-15 2023-08-11 中華電信股份有限公司 雲工作負載安全防護系統及其方法

Also Published As

Publication number Publication date
JP2022504030A (ja) 2022-01-13
GB2589518B (en) 2021-11-17
DE112019005729T5 (de) 2021-07-29
GB202102332D0 (en) 2021-04-07
GB2589518A (en) 2021-06-02
JP7316726B2 (ja) 2023-07-28
WO2020099960A1 (en) 2020-05-22
US10885200B2 (en) 2021-01-05
US20200159933A1 (en) 2020-05-21

Similar Documents

Publication Publication Date Title
US10885200B2 (en) Detecting security risks related to a software component
US11449379B2 (en) Root cause and predictive analyses for technical issues of a computing environment
EP3693874B1 (en) Continuous vulnerability management for modern applications
US11461125B2 (en) Methods and apparatus to publish internal commands as an application programming interface in a cloud infrastructure
US9886266B2 (en) Updating software based on utilized functions
US9471780B2 (en) System, method, and computer program product for mounting an image of a computer system in a pre-boot environment for validating the computer system
US8990772B2 (en) Dynamically recommending changes to an association between an operating system image and an update group
AU2019202251A1 (en) Automated program code analysis and reporting
CN103329093A (zh) 更新软件
US10984110B2 (en) Evaluation of security of firmware
JP2022100301A (ja) ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨)
US10289529B2 (en) Testing a guarded storage facility
US10095600B2 (en) Real-time globalization verification on development operations
US9881156B2 (en) Detecting heap spraying on a computer
US11119763B2 (en) Cognitive selection of software developer for software engineering task
US9471367B1 (en) Virtual machine usage data collection using securely loaded virtual firmware
CN116775061A (zh) 微服务应用的部署方法、装置、设备及存储介质
Souppaya et al. Guide to enterprise patch management planning
CN115185644A (zh) 基于容器交互式应用的检测方法、***、设备及存储介质
Alves Software defined applications: a DevOps approach to monitoring
US20230401047A1 (en) Graphical user interface for reducing vulnerabilities associated with legacy software
US11093953B2 (en) Customer profiling that accounts for early product programs
Song et al. MBR Image Automation Analysis Techniques Utilizing Emulab

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