CN117892361A - 容器运行时安全控制方法及装置 - Google Patents

容器运行时安全控制方法及装置 Download PDF

Info

Publication number
CN117892361A
CN117892361A CN202311714896.5A CN202311714896A CN117892361A CN 117892361 A CN117892361 A CN 117892361A CN 202311714896 A CN202311714896 A CN 202311714896A CN 117892361 A CN117892361 A CN 117892361A
Authority
CN
China
Prior art keywords
container
security
configuration file
target
runtime
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
CN202311714896.5A
Other languages
English (en)
Inventor
涂碧波
李晨
彭勇强
周阳
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.)
Institute of Information Engineering of CAS
Original Assignee
Institute of Information Engineering of CAS
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 Institute of Information Engineering of CAS filed Critical Institute of Information Engineering of CAS
Priority to CN202311714896.5A priority Critical patent/CN117892361A/zh
Publication of CN117892361A publication Critical patent/CN117892361A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本申请提供一种容器运行时安全控制方法及装置,涉及容器安全技术领域。所述方法包括:基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。本申请提供的容器运行时安全控制方法及装置,可以实现一种通用的容器安全架构。

Description

容器运行时安全控制方法及装置
技术领域
本申请涉及容器安全技术领域,尤其涉及一种容器运行时安全控制方法及装置。
背景技术
随着容器技术的广泛应用,容器安全问题受到越来越多的关注。为了确保镜像和容器的安全,各类容器安全技术被广泛采用。如Docker引入了Docker Content Trust(DCT)机制,通过使用公钥加密算法对镜像进行签名,确保镜像的来源可信。此外,还有一些开源工具和框架如Notary、Cosign等,提供了更灵活和可扩展的容器镜像签名验签解决方案。另外,还有一些容器安全增强方案,如对容器进行完整性校验、镜像漏洞扫描等,旨在保护容器镜像安全和防止容器运行环境中的应用程序和数据遭受未经授权的访问和恶意行为,以提高容器环境的整体安全性。
然而,虽然现有的容器安全技术多种多样,容器安全的实现方案却不具备普适性,无法兼容不同的容器技术。
发明内容
本申请提供一种容器运行时安全控制方法及装置,用以解决现有技术中容器安全的实现方案不具备普适性,无法兼容不同的容器技术的缺陷。
第一方面,本申请实施例提供一种容器运行时安全控制方法,包括:
基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
在一个实施例中,所述基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件,包括:
将所述容器安全钩子的相关配置信息添加至所述初始容器配置文件,得到所述目标容器配置文件。
在一个实施例中,所述基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制,包括:
基于所述容器运行参数与所述目标容器配置文件,创建容器运行时的环境;
在创建的容器运行时的环境中,执行所述目标容器安全钩子包含的容器安全验证机制,得到执行结果;
基于所述执行结果,进行容器运行时安全控制。
在一个实施例中,所述基于所述执行结果,进行容器运行时安全控制,包括:
在所述执行结果为所述容器安全验证机制执行成功的情况下,启动容器。
在一个实施例中,所述基于所述执行结果,进行容器运行时安全控制,包括:
在所述执行结果为所述容器安全验证机制执行失败的情况下,禁止容器启动。
在一个实施例中,所述方法还包括:
对上层容器运行时传递的参数进行解析,得到所述容器运行参数。
在一个实施例中,所述方法还包括:
上层容器运行时根据预设配置信息,生成所述初始容器配置文件。
第二方面,本申请实施例提供一种容器运行时安全控制装置,包括:
配置模块,用于基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
控制模块,用于基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
第三方面,本申请还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现第一方面所述的方法。
第四方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如第一方面所述的方法。
第五方面,本申请还提供一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现第一方面所述的方法。
本申请实施例提供的容器运行时安全控制方法及装置,基于容器安全钩子与初始容器配置文件,确定目标容器配置文件,并基于目标容器配置文件进行容器运行时安全控制。该方法为容器环境的安全增强提供了一种通用架构,可以解决现有容器安全的实现方案不具备普适性,无法兼容不同的容器技术的问题,而且简化了容器环境的安全改造过程,使得开发人员可以更方便地将安全功能部署到容器环境中,从而保证了容器安全。
附图说明
为了更清楚地说明本申请或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请提供的容器运行时安全控制方法的流程示意图;
图2是本申请提供的容器运行时安全控制方法的原理示意图;
图3是本申请提供的容器运行时安全控制装置的结构示意图;
图4是本申请提供的电子设备的结构示意图。
具体实施方式
在现代计算领域,容器技术已成为一种重要的应用部署和软件交付方式。容器技术提供了一种轻量级、可移植和可扩展的虚拟化解决方案,使开发人员能够将应用程序及其所有依赖项打包到一个独立的容器中。Docker是最为知名和广泛使用的容器技术之一,它提供了一套完整的容器生态系统,包括容器运行时、容器编排和管理工具等。除了Docker,还有其他容器技术如Kubernetes等也在不断发展和完善,为容器的编排、调度和管理提供了更多选择和功能。
在容器技术中,存在如下一些常用术语:
OCI:随着容器技术的兴起,多样化的容器格式和运行时实现带来了互操作性和标准化的问题。为解决这一问题,各厂商共同发起了开放容器组织(Open ContainerInitiative,OCI)),并推出了容器镜像规范(OCI Image Spec)和容器运行时规范(OCIRuntime Spec)。
容器配置文件:容器的配置文件一般位于容器的bundle目录,容器的bundle目录只涉及如何将容器及其配置数据存储在本地文件系统中,以便兼容OCI规范的任何运行时加载容器。容器配置文件命名必须为config.json,包含了构建标准容器的元数据,包括用户指定进程、运行环境、容器配置和环境变量等。
容器运行时:容器运行时技术是容器技术的一部分,用于创建和运行容器的软件组件。容器运行时技术通过解析容器镜像、配置容器运行时环境、启动容器进程以及管理容器的生命周期,完成容器的隔离和资源控制。容器运行时技术与操作系统内核和其他系统组件进行交互,确保容器的行为符合预期。
runC:runC作为一个开源项目,是一个符合OCI运行时规范的命令行工具。它通过实现OCI Runtime Spec中定义的容器运行时接口,并遵循OCI Image Spec中的容器镜像规范,提供了标准的容器运行时接口,确保与OCI兼容的容器工具和服务协同工作。runC是当前最主流的底层容器运行时选择,大部分容器平台和工具都使用runC作为默认底层容器运行时。
为了克服现有技术的缺陷,本申请提出一种容器云架构下的运行时安全框架构建方法,该方法支持各类符合OCI标准的上层容器运行时,如Containerd、CRI-O、Docker等。
为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请中的附图,对本申请中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
图1是本申请实施例提供的容器运行时安全控制方法的流程示意图。参照图1,本申请实施例提供一种容器运行时安全控制方法,其执行主体可以为电子设备,例如,可以为一个控制器,该方法可以包括:
步骤110、基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;目标容器安全钩子包含一种或多种容器安全验证机制;初始容器配置文件包括运行容器时所需的配置信息;
步骤120、基于容器运行参数与目标容器配置文件,进行容器运行时安全控制。
在Docker等容器引擎中,为了维护容器运行的安全性,并不直接向用户提供置入钩子的相关接口。控制器可以通过将一系列安全操作(即若干种容器安全验证机制)自动以钩子的形式注入容器的运行时规范(config.json)实现统一且简便的钩子配置,并在创建和运行容器时顺序执行这些安全操作,保障容器安全性。在步骤110中,控制器可以基于包含预设的容器安全验证机制的目标容器安全钩子与初始容器配置文件,确定目标容器配置文件。其中,容器安全验证机制有很多,比如签名验签、完整性校验、准入控制、行为监控等等,本申请方案与其他的安全验证机制不冲突,可叠加使用各种安全验证机制。初始容器配置文件包括运行容器时所需的配置信息。
在步骤120中,控制器可以根据容器运行参数和步骤110中获取的目标容器配置文件,进行容器运行时安全控制。具体的,控制器可以根据容器运行参数和目标容器配置文件,并调用底层容器运行时。底层器运行时在创建或启动容器命名空间时,可以执行注入的钩子,从而对容器进行安全验证。控制器可以基于验证结果进行容器运行时安全控制。
基于上述操作,本申请可以实现一种高级的容器安全运行时,这个容器安全运行时的实现方法是利用容器技术现有的钩子函数。该方法可以解析出容器当前的上下文信息,从中提取容器ID、镜像等信息,并将其作为参数添加到所添加的容器生命周期钩子的配置中。
本申请还提供一种通用接口,各种安全机制可以通过这个接口添加进容器的生命周期中(如,安全机制被打包成可执行文件,放入指定的目录下,上一阶段获取的参数作为它的输入,也就是安全机制通过这种方式可以获得它要操作的容器和镜像等信息)。而且安全机制可以加入任意一个钩子中,多个安全机制可以叠加使用,一个钩子可以包含一个或多个安全机制。
钩子函数是容器本身就具备的,但现有对它的使用方法是在启动某一个容器的时候,根据用户对这个容器的设置生成针对这个容器的操作。现有技术会存在以下缺点:每次启动一个容器时都要手动设置;设置只对当前这一个容器生效。
但是本申请提供的安全运行时方法是对所有在这个节点上启动的容器都生效,不需要针对每个容器单独配置,用户只需要定义对应的钩子及其配置文件。
本申请实施例提供的容器运行时安全控制方法,基于容器安全钩子与初始容器配置文件,确定目标容器配置文件,并基于目标容器配置文件进行容器运行时安全控制。该方法为容器环境的安全增强提供了一种通用架构,可以解决现有容器安全的实现方案不具备普适性,无法兼容不同的容器技术的问题,而且简化了容器环境的安全改造过程,使得开发人员可以更方便地将安全功能部署到容器环境中,从而保证了容器安全。
在一个实施例中,基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件,包括:
将容器安全钩子的相关配置信息添加至初始容器配置文件,得到目标容器配置文件。
容器中的钩子和容器的生命周期息息相关,钩子能使容器感知其生命周期内的事件,并且当相应的生命周期钩子被调用时运行指定的代码。同时,符合OCI标准的容器运行时在相应的生命周期节点必须执行容器运行时配置中定义的钩子。
因此,本申请可以通过利用底层容器运行时runC在创建和运行容器阶段执行容器运行时配置文件中定义的相关钩子,实现对容器生命周期中的安全增强。根据OCI RuntimeSpec的定义,插入的钩子函数根据容器的生命周期可分为六种:prestart、createRuntime、createContainer、startContainer、poststart和poststop,如下表:
用户需要设置OCI Runtime Spec中定义的容器生命周期钩子(容器安全钩子),相关配置信息可以包括需要调用的程序或可执行脚本路径、相关参数、环境变量和选项等。控制器可以对用户自定义的钩子配置进行解析,使其符合OCI Runtime Spec,并实现容器生命周期钩子的嵌入,从而在创建和容器启动时执行相应的功能。
为了维护容器运行的稳定性和安全性,上层容器运行时并未直接向用户提供自定义容器生命周期钩子的接口。本申请的容器运行时安全控制方法,是基于runC的轻量级包装器,通过其在上层容器运行时生成容器运行时环境配置后,调用runC创建启动容器运行时环境前,将相应的容器安全钩子嵌入至容器运行时配置文件(即将容器安全钩子的相关配置信息添加至初始容器配置文件)中,再将修改后的容器运行时配置文件(目标容器配置文件)传递给runC,实现容器安全功能的添加和执行。
本申请实施例提供的容器运行时安全控制方法,通过将容器安全钩子的相关配置信息添加至初始容器配置文件的方式修改初始容器配置文件,具备普适性,可以兼容不同的容器技术,而且简化了容器环境的安全改造过程,使得开发人员可以更方便地将安全功能部署到容器环境中。
在一个实施例中,基于容器运行参数与目标容器配置文件,进行容器运行时安全控制,包括:
基于容器运行参数与目标容器配置文件,创建容器运行时的环境;
在创建的容器运行时的环境中,执行目标容器安全钩子包含的容器安全验证机制,得到执行结果;
基于执行结果,进行容器运行时安全控制。
在创建和启动一个容器时,通常由上层容器运行时将对应镜像转换为容器运行所需的运行时环境配置,主要包括rootfs文件系统以及符合OCI运行时规范的容器配置文件等。底层容器运行时根据上层容器运行时提供的容器运行时环境配置,运行roofs文件系统创建和启动容器进程。并根据容器配置文件加载和限制对应资源,例如执行钩子、进程隔离和资源限制等。以Docker为例,其默认使用的底层容器运行时是runC,而runC本身并不会生成一个专门的运行时配置文件。相反,Docker在启动运行容器时会根据用户提供的容器配置(例如通过Docker run命令中的参数)生成符合OCI运行时规范的容器配置文件,并传递runC。RunC根据提供的容器运行时配置,启动和创建相应的容器运行时环境,执行容器进程。
在本实施例中,控制器可以通过底层容器运行时如runC,并根据容器运行参数以及目标容器配置文件中的配置创建容器运行时的环境,并在创建的容器运行时的环境中,执行目标容器安全钩子包含的容器安全验证机制。基于容器安全验证机制的执行结果(执行成功或者执行失败),进行容器运行时安全控制。
本申请实施例提供的容器运行时安全控制方法,通过在容器运行时环境中执行容器安全验证机制,并基于容器安全验证机制的结果进行容器运行时安全控制,可以充分保证容器安全。
在一个实施例中,基于执行结果,进行容器运行时安全控制,包括:
在执行结果为容器安全验证机制执行成功的情况下,启动容器。
容器安全验证机制执行成功时,容器不存在容器安全验证机制对应的容器安全问题,也即是容器通过安全验证,在这种情况下,可以启动容器。
本申请实施例提供的容器运行时安全控制方法,通过在容器安全验证机制执行成功的情况下,启动容器,可以进一步保证容器安全。
在一个实施例中,基于执行结果,进行容器运行时安全控制,包括:
在执行结果为容器安全验证机制执行失败的情况下,禁止容器启动。
容器安全验证机制执行失败时,容器存在容器安全验证机制对应的容器安全问题,也即是容器未通过安全验证,在这种情况下,禁止启动容器。
本申请实施例提供的容器运行时安全控制方法,通过在容器安全验证机制执行失败的情况下,禁止容器启动,可以进一步保证容器安全。
在一个实施例中,容器运行时安全控制方法还包括:
对上层容器运行时传递的参数进行解析,得到容器运行参数。
上层容器运行时传递的参数包括容器ID。控制器通过对上层容器运行时传递的参数进行解析可以得到容器运行参数,例如通过对容器ID进行解析可以得到容器运行参数。容器运行参数指容器对应的钩子的运行参数,可以包括:镜像名称、镜像ID或者镜像tag等。通过解析的容器运行参数,可以完善注入的钩子的配置文件。也即用户只需写缺省配置,容器创建运行时,安全运行时会解析出各容器对应的钩子参数,从而补充钩子。
本申请实施例提供的容器运行时安全控制方法,通过对上层容器运行时传递的参数进行解析,可以得到容器运行参数,容器运行参数可以保证容器的正常运行,从而保证容器安全验证步骤的顺利执行。
在一个实施例中,容器运行时安全控制方法还包括:
上层容器运行时根据预设配置信息,生成初始容器配置文件。
用户可以通过Docker,K8S等容器平台创建或启动容器。控制器可以基于Docker或K8S等容器平台调用containerd或CRI-O等上层容器运行时,并根据用户预设配置信息生成初始容器配置文件。初始容器配置文件可以包括运行容器所需的配置文件和rootfs文件系统。
本申请实施例提供的容器运行时安全控制方法,通过上层容器运行时生成初始容器配置文件,初始容器配置文件是容器安全控制的必要数据准备,因此本实施例可以保证容器安全验证步骤的顺利执行。
本申请还设计并实现了一个安全容器运行时以及运行时配置命令行工具。安全容器运行时是runC的轻量级包装器,实现对容器生命周期钩子的嵌入。运行时配置命令行工具用于添加和移除容器引擎对该运行时的支持、查询安全容器运行时的配置状态以及生成安全容器运行时配置文件。支持的容器引擎包括如Docker、containerd和CRI-O,默认为Docker。用户可根据安全需求进行自定义配置,如配置对应的安全功能的可执行文件路径等。
图2是本申请提供的容器运行时安全控制方法的原理示意图,基于图2,可以对本申请的技术方案进一步说明。
首先可以通过运行时配置命令行工具配置对应的容器引擎支持安全容器运行时,支持的容器引擎包括如Docker、containerd和CRI-O,默认为Docker。例如通过执行:csm-ctk runtime configure--runtime=Docker–default可以配置运行时为其默认容器运行时。
然后可以指定OCI Runtime Spec定义的相关容器生命周期钩子配置,包括执行的二进制脚本或程序路径、相关参数、环境变量和选项等信息。安全容器运行时可以将需要添加的容器生命周期钩子嵌入至上层容器运行时提供的容器配置文件,并完成挂载绑定等辅助操作以保证容器生命周期钩子的顺利执行。例如,在容器创建之前添加镜像完整性校验安全功能,可以添加createRuntime钩子,设置完成镜像完整性校验功能所需执行的可执行文件路径、以及相应参数。
在创建和启动容器时,安全容器运行时可以将用户指定的容器生命周期钩子嵌入到容器的配置文件中,并根据上层容器运行时传递的参数解析出镜像名称和容器ID等相关参数,并对用户提供的容器生命周期钩子进行参数补充,从而完成对特定容器的安全功能执行。
完成对容器配置文件的修改后,安全容器运行时可以调用底层容器运行时runC,并将上层容器运行时提供的参数进行传递。
底层容器运行时runC在创建和启动容器时,在特定的容器生命周期阶段可以自动执行用户定义的钩子,例如可以在容器运行时环境完成后,并在执行pivot_root或任何同等操作之前调用定义的createRuntime钩子,完成容器镜像完整性校验。若镜像完整性校验成功则继续启动容器,否则禁止容器启动。
本方法是对主机上安装的底层运行时runC的轻量级扩展,通过将一系列容器安全钩子注入容器的运行时规范(config.json),然后调用底层运行时runC,并传递修改后的带有容器安全钩子设置的容器运行时规范,保证容器安全。
本方法对操作系统无影响,且实现的安全更彻底。如容器完整性校验方法通常采用建立钩子函数监控mount系统调用的方式,监测到挂载容器文件系统时,获取容器文件系统挂载目录,计算容器相关文件完整性度量值并保存。但是这种方法会拦截操作系统所有的mount系统调用行为,安全风险大,并且会对系统性能造成影响。并且该方法仅能截取到容器挂载文件系统的行为,无法进行其他安全控制。本申请提供的方法是在容器中实现高级运行时,不会影响操作系统中的其他程序,并且该方法可以截获容器多个运行阶段的行为,并且可以在其中加入多种安全机制,不仅是进行完整性校验。
例如K8S本身也可以实现镜像验签等功能,但是它是在上层对从仓库拉取的镜像进行签名验证,无法对节点上已经存在的镜像进行验证。本方法通过在节点上部署高级运行时,能够实现对所有容器行为的截获,并进行安全功能增强。
上述容器完整性校验需要在操作系统中插入钩子,权限较大,对操作系统造成很大的安全风险。现有技术中还可以将vTPM植入容器引擎中,即需要对容器进行修改,从而进行容器安全验证。而本方法提供了一个通用的架构,以上功能都可以通过高级运行时实现。此外,本方案安全容器运行时不依赖于特定的容器引擎和容器云平台,具有普适性。
下面对本申请提供的容器运行时安全控制装置进行描述,下文描述的容器运行时安全控制装置与上文描述的容器运行时安全控制方法可相互对应参照。
图3是本申请实施例提供的容器运行时安全控制装置的结构示意图。参照图3,本申请实施例提供的容器运行时安全控制装置,可以包括:
配置模块310,用于基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
控制模块320,用于基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
本申请实施例提供的容器运行时安全控制装置,基于容器安全钩子与初始容器配置文件,确定目标容器配置文件,并基于目标容器配置文件进行容器运行时安全控制。该方法为容器环境的安全增强提供了一种通用架构,可以解决现有容器安全的实现方案不具备普适性,无法兼容不同的容器技术的问题,而且简化了容器环境的安全改造过程,使得开发人员可以更方便地将安全功能部署到容器环境中,从而保证了容器安全。
具体地,本申请实施例提供的上述容器运行时安全控制装置,能够实现上述执行主体为控制器的方法实施例所实现的所有方法步骤,且能够达到相同的技术效果,在此不再对本实施例中与方法实施例相同的部分及有益效果进行具体赘述。
图4示例了一种电子设备的实体结构示意图,如图4所示,该电子设备可以包括:处理器(processor)410、通信接口(Communications Interface)420、存储器(memory)430和通信总线440,其中,处理器410,通信接口420,存储器430通过通信总线440完成相互间的通信。处理器410可以调用存储器430中的逻辑指令,以执行容器运行时安全控制方法,例如包括:
基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
此外,上述的存储器430中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本申请还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各方法提供的容器运行时安全控制方法的步骤,例如包括:
基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
又一方面,本申请还提供一种计算机程序产品,所述计算机程序产品包括计算机程序,计算机程序可存储在非暂态计算机可读存储介质上,所述计算机程序被处理器执行时,计算机能够执行上述各方法所提供的容器运行时安全控制方法的步骤,例如包括:
基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
另外需要说明的是:本申请实施例中术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”所区别的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。
本申请实施例中术语“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
本申请实施例中的“基于A确定B”表示确定B时要考虑A这个因素。并不限于“只基于A就可以确定出B”,还应包括:“基于A和C确定B”、“基于A、C和E确定B”、基于“A确定C,基于C进一步确定B”等。另外还可以包括将A作为确定B的条件,例如,“当A满足第一条件时,使用第一方法确定B”;再例如,“当A满足第二条件时,确定B”等;再例如,“当A满足第三条件时,基于第一参数确定B”等。当然也可以是将A作为确定B的因素的条件,例如,“当A满足第一条件时,使用第一方法确定C,并进一步基于C确定B”等。
本申请实施例中术语“多个”是指两个或两个以上,其它量词与之类似。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (10)

1.一种容器运行时安全控制方法,其特征在于,包括:
基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
2.根据权利要求1所述的容器运行时安全控制方法,其特征在于,所述基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件,包括:
将所述容器安全钩子的相关配置信息添加至所述初始容器配置文件,得到所述目标容器配置文件。
3.根据权利要求1所述的容器运行时安全控制方法,其特征在于,所述基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制,包括:
基于所述容器运行参数与所述目标容器配置文件,创建容器运行时的环境;
在创建的容器运行时的环境中,执行所述目标容器安全钩子包含的容器安全验证机制,得到执行结果;
基于所述执行结果,进行容器运行时安全控制。
4.根据权利要求3所述的容器运行时安全控制方法,其特征在于,所述基于所述执行结果,进行容器运行时安全控制,包括:
在所述执行结果为所述容器安全验证机制执行成功的情况下,启动容器。
5.根据权利要求3所述的容器运行时安全控制方法,其特征在于,所述基于所述执行结果,进行容器运行时安全控制,包括:
在所述执行结果为所述容器安全验证机制执行失败的情况下,禁止容器启动。
6.根据权利要求1所述的容器运行时安全控制方法,其特征在于,所述方法还包括:
对上层容器运行时传递的参数进行解析,得到所述容器运行参数。
7.根据权利要求1所述的容器运行时安全控制方法,其特征在于,所述方法还包括:
上层容器运行时根据预设配置信息,生成所述初始容器配置文件。
8.一种容器运行时安全控制装置,其特征在于,包括:
配置模块,用于基于目标容器安全钩子与初始容器配置文件,确定目标容器配置文件;所述目标容器安全钩子包含一种或多种容器安全验证机制;所述初始容器配置文件包括运行容器时所需的配置信息;
控制模块,用于基于容器运行参数与所述目标容器配置文件,进行容器运行时安全控制。
9.一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1至7任一项所述容器运行时安全控制方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述容器运行时安全控制方法。
CN202311714896.5A 2023-12-13 2023-12-13 容器运行时安全控制方法及装置 Pending CN117892361A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311714896.5A CN117892361A (zh) 2023-12-13 2023-12-13 容器运行时安全控制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311714896.5A CN117892361A (zh) 2023-12-13 2023-12-13 容器运行时安全控制方法及装置

Publications (1)

Publication Number Publication Date
CN117892361A true CN117892361A (zh) 2024-04-16

Family

ID=90651619

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311714896.5A Pending CN117892361A (zh) 2023-12-13 2023-12-13 容器运行时安全控制方法及装置

Country Status (1)

Country Link
CN (1) CN117892361A (zh)

Similar Documents

Publication Publication Date Title
US11762986B2 (en) System for securing software containers with embedded agent
US11599348B2 (en) Container image building using shared resources
US9710259B2 (en) System and method for customizing a deployment plan for a multi-tier application in a cloud infrastructure
US8024564B2 (en) Automating configuration of software applications
CN108845812B (zh) 插件更新方法、装置、计算机设备和存储介质
US8893222B2 (en) Security system and method for the android operating system
Brittain et al. Tomcat: The Definitive Guide: The Definitive Guide
US8099472B2 (en) System and method for a mobile cross-platform software system
US20210209221A1 (en) System for securing software containers with encryption and embedded agent
CN113238850B (zh) 基于浏览器的rpa实现方法、装置、设备及介质
EP3345112B1 (en) Thresholds on scripts executable by unified extensible firmware interface systems
CN111159691B (zh) 一种应用程序动态可信验证方法及系统
WO2003036474A1 (en) Method and apparatus for managing software component downloads and updates
CN111198695A (zh) 微服务治理管理平台的自动化部署方法和电子设备
CN112130871A (zh) 远程部署中间件的方法、装置、计算机设备及存储介质
CN110908730A (zh) 一种云平台配置文件管理方法及管理系统
CN112363731A (zh) 一种应用自动化部署方法、装置和计算机可读存储介质
Van Der Burg et al. Disnix: A toolset for distributed deployment
CN113672403B (zh) 信息系统中的接口调用方法及接口调用装置、管理信息系统
CN117892361A (zh) 容器运行时安全控制方法及装置
CN112564979B (zh) 构建任务的执行方法、装置、计算机设备和存储介质
CN116208353A (zh) 一种校验固件的方法、装置、网卡、芯片系统及服务器
O'Leary et al. Malware and persistence
Piras TPM 2.0-based Attestation of a Kubernetes Cluster
US20220413825A1 (en) Immutable edge devices

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination