CN117850981A - 一种使用嵌入式代理保护容器的方法 - Google Patents

一种使用嵌入式代理保护容器的方法 Download PDF

Info

Publication number
CN117850981A
CN117850981A CN202311829158.5A CN202311829158A CN117850981A CN 117850981 A CN117850981 A CN 117850981A CN 202311829158 A CN202311829158 A CN 202311829158A CN 117850981 A CN117850981 A CN 117850981A
Authority
CN
China
Prior art keywords
container
security
image
encrypted fingerprint
agent
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
CN202311829158.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.)
Xian Aeronautics Computing Technique Research Institute of AVIC
Original Assignee
Xian Aeronautics Computing Technique Research Institute of AVIC
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 Xian Aeronautics Computing Technique Research Institute of AVIC filed Critical Xian Aeronautics Computing Technique Research Institute of AVIC
Priority to CN202311829158.5A priority Critical patent/CN117850981A/zh
Publication of CN117850981A publication Critical patent/CN117850981A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明提供一种使用嵌入式代理保护容器的方法,包括以下步骤:构建计算机设备创建或获得包括应用程序的容器镜像,并将安全代理作为新层嵌入到容器镜像中;安全代理扫描容器镜像的内容,并基于该内容创建容器镜像唯一的第一加密指纹;替换执行入口点,在容器镜像的执行入口点启动安全代理;构建计算机设备将第一加密指纹、容器镜像的容器ID和容器镜像的安全策略发送给安全服务器;安全服务器保存加密指纹和安全策略。本发明的有益效果为:本发明能够使容器镜像实例化的容器能够正常工作,且避免感染恶意软件。

Description

一种使用嵌入式代理保护容器的方法
技术领域
本发明涉及计算机系统软件技术领域,具体涉及一种使用嵌入式代理保护容器的方法。
背景技术
虚拟机在各种计算任务中已经非常流行。虚拟机是物理机的软件实现,它像物理机一样执行程序。一个典型的虚拟机包括在主机操作系统上运行的客户操作系统,以及在客户操作系统中运行的一个或多个应用程序。虚拟机技术能够在一个平台上同时运行多个操作系统实例。虚拟机管理器控制平台上运行的虚拟机。但是,在单个物理机上运行多个操作系统实例会大量占用资源。
最近,容器用来运行多个虚拟机。容器可以虚拟化单个或一组应用程序。容器包括一个应用程序和依赖项。依赖项包括库、二进制文件和配置文件。通过容器化应用程序及其依赖项,操作系统发行版和底层基础设施中的差异进行了抽象,这使得在各种环境(例如,开发、测试和生产)之间迁移应用程序很容易。
多个容器可以在单个主机操作系统上彼此隔离运行,这提供了在单个平台上运行多个虚拟机及客户操作系统的替代方案。因为容器可以虚拟化单个应用程序,所以,运行给定数量的容器比运行相同数量的虚拟机的资源占用要少。构建和运行容器的管理平台称为容器引擎。
容器从容器镜像实例化,容器镜像包括分组到一个或者多个层的文件集合,还包括标识一个或者多个层的清单。在容器环境中,一个给定的层可以链接到多个容器镜像,但是只在存储器中存储一次。如果用户未经授权修改容器镜像的一层,则从该容器镜像实例化的容器可能无法正常工作,甚至感染恶意软件。
发明内容
有鉴于此,本说明书实施例提供一种使用嵌入式代理保护容器的方法,以解决上述问题。
本说明书实施例提供以下技术方案:
一种使用嵌入式代理保护容器的方法,包括以下步骤:构建计算机设备创建或获得包括应用程序的容器镜像,并将安全代理作为新层嵌入到容器镜像中;安全代理扫描容器镜像的内容,并基于该内容创建容器镜像唯一的第一加密指纹;替换执行入口点,在容器镜像的执行入口点启动安全代理;构建计算机设备将第一加密指纹、容器镜像的容器ID和容器镜像的安全策略发送给安全服务器;安全服务器保存加密指纹和安全策略。
与现有技术相比,本说明书实施例采用的上述至少一个技术方案能够达到的有益效果至少包括:本发明能够使容器镜像实例化的容器能够正常工作,且避免感染恶意软件。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是本发明为容器提供安全性的系统;
图2-a和图2-b是本发明实施例的流程示意图;
图3是本发明实施例的计算机设备。
具体实施方式
下面结合附图对本申请实施例进行详细描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
图1所示是为容器提供安全性的系统,包括构建计算设备、安全服务器、和目标机计算设备。构建计算设备将安全代理嵌入到容器镜像中,并将容器镜像的安全策略提供给安全服务器。容器镜像部署到目标机计算设备上。
在目标机计算设备使用容器引擎将容器镜像实例化为容器。当此实例发生时,启动嵌入式安全代理,它提供容器镜像的认证,和基于安全策略的容器镜像内的应用程序的运行时操作的控制。
嵌入式安全代理提供对监控容器活动,并执行安全策略,包括在实例化的容器中停止未经授权的网络连接、文件访问或用户访问的能力。当启动安全代理时,安全代理知道它部署在实例化的容器内,知道实例化的容器的身份,并且可以基于该身份应用适当的控制。
如图2-a至图2-b所示,构建计算设备创建或获得包括应用程序的容器镜像,并将安全代理嵌入到容器镜像中。容器镜像还包括清单(未示出),用于描述容器镜像的内容。特别地,该清单描述了存在于容器镜像中的一个或多个层,以及这些层的文件内容。安全代理的嵌入对应于将包括安全代理的层添加到容器镜像的层作为其清单中的附加条目。
安全代理配置为携带容器镜像的标识符(ID)。ID可以映射到以下一个或任意组合:容器镜像的所有者、用户名、时间戳、容器镜像的创建者等。
构建计算设备基于该清单扫描容器镜像的内容,并基于该内容创建容器镜像唯一的第一加密指纹。加密指纹跟踪并确保了容器镜像整个生命周期的完整性和可识别性。
每个容器镜像都有一个执行入口点,当容器镜像实例化时,它告诉容器引擎要启动什么应用程序。构建计算设备取代容器镜像的初始执行入口点,在容器镜像的执行入口点启动安全代理。在构建阶段,对容器镜像的软件包库存的跟踪分析可以作为后续漏洞评估的基线。
构建计算设备在一个或多个传输中将第一加密指纹、容器镜像的容器ID和容器镜像的安全策略发送给安全服务器。安全服务器接收加密指纹,并将其存储在加密指纹存储库中,并将该安全策略存储在安全策略存储库中。因此,在第一周期接收第一加密指纹,在随后的第二周期接收第二加密指纹。
构建计算设备将容器镜像部署到目标机计算设备。目标机计算设备的容器引擎将容器镜像实例化为独立的容器。容器引擎运行在目标机计算设备的操作系统之上。
容器引擎在它们各自的容器中为应用程序创建环境,并且还控制容器的状态(例如,它们是否正在运行、已经停止或者正在导入),并且还控制容器状态的保存(例如,容器保存和导出)。
在接收到将容器镜像实例化为容器的请求时,容器引擎启动容器镜像的执行入口点,该入口点修改以启动安全代理。
安全代理根据清单扫描容器镜像的内容,对容器镜像的内容进行认证,以及基于所述内容创建第二加密指纹。目标机计算设备将第二加密指纹发送到安全服务器,与存储在加密指纹库中的第一加密指纹进行比较,连同容器ID。在图2-b中,安全服务器通过比较两个加密指纹来认证,同时目标机计算设备上的安全代理通过传递第二加密指纹,以及从安全服务器收到的表示比较结果的响应执行认证。
安全服务器将第二加密指纹与第一加密指纹进行比较,以确定它们是否匹配。如果指纹匹配,加密指纹表明自第一个加密签名创建以来,容器镜像的内容还没有修改过;如果指纹不匹配,则安全服务器确定容器镜像已修改,并向在目标机计算设备上运行的安全代理提供通知,说明容器镜像的内容未认证)。基于此通知,安全代理向容器引擎返回错误,并阻止应用程序运行。因此,安全代理根据身份认证控制是否启动该应用程序。
相反,如果加密指纹确实匹配,则安全服务器从安全策略存储库中查找容器镜像的安全策略,并将该安全策略发送到安全代理。此消息作为容器镜像的内容经过身份认证的通知。
安全策略的查找是基于容器镜像中的容器ID,而在一些示例中则是基于容器镜像中的应用程序的类型。在一个示例中,如果没有为容器镜像提供特定的安全策略,则安全服务器确定应用程序的类型,并根据应用类型选择默认的安全策略。在这样的示例中,将容器镜像的容器ID映射到安全服务器上的应用类型(例如,web服务器应用类型、数据库应用类型等)。在一个示例中,安全服务器进一步根据容器镜像中的应用程序的版本来确定对其默认安全策略的标识。
安全代理从实例化的容器内控制应用程序的操作。安全代理实现挂钩到操作系统中,该操作系统挂钩拦截来自应用程序的请求。一旦实现操作系统挂钩,安全代理启动容器镜像的原始执行入口点,从而启动应用程序。安全代理通过拦截应用程序的请求,并根据安全策略控制是否授权这些请求,从而使用挂钩控制容器操作。
在一个示例中,操作系统挂钩配置为检测以下一种或多种:应用程序请求的文件系统访问、应用程序请求的进程和应用程序请求的网络访问。
在一个示例中,操作系统挂钩包括在内核级上实现到操作系统中的底层挂钩,其允许安全代理在内核执行底层系统调用之前捕获它们。这种挂钩可以通过诸如内核模块代理、系统调用替换、进程插装等技术来实现。
如果应用程序请求的访问违反安全策略,安全代理阻止请求的访问并将向安全服务器传输安全通知,安全服务器在审计日志库中维护应用程序的安全通知日志。
图3说明了可作为构建计算设备、安全服务器和目标机计算设备中的任何一个的计算设备。所述计算设备包括连接到存储器的处理器和通信接口。
处理器可以包括一个或多个微处理器、微控制器、应用特定的集成电路(ASIC)。
存储器包括任何一个易失性存储器(例如RAM)或非易失性存储器(例如ROM)。
在构建计算设备的情况下,存储器存储有助于将安全代理嵌入到容器镜像中的程序指令。
在安全服务器的情况下,存储器存储程序指令、比较和存储加密指纹、查找安全策略以及访问每个加密指纹存储库、审计日志存储库、和安全策略存储库。存储器还可以存储加密指纹存储库、审计日志存储库、和安全策略存储库。
在目标机计算设备的情况下,存储器存储操作容器引擎和安全代理的程序。
通信接口配置为便于与其他计算设备通信(例如,如果通信接口包括网络接口)或与用户输入设备(例如,如果通信接口包括有线或无线接口,接收或提供用户输入)进行通信。
以上所述,仅为本发明的具体实施例,不能以其限定发明实施的范围,所以其等同组件的置换,或依本发明专利保护范围所作的等同变化与修饰,都应仍属于本专利涵盖的范畴。另外,本发明中的技术特征与技术特征之间、技术特征与技术方案之间、技术方案与技术方案之间均可以自由组合使用。

Claims (5)

1.一种使用嵌入式代理保护容器的方法,其特征在于,包括以下步骤:
构建计算机设备创建或获得包括应用程序的容器镜像,并将安全代理作为新层嵌入到容器镜像中;
安全代理扫描容器镜像的内容,并基于该内容创建容器镜像唯一的第一加密指纹;
替换执行入口点,在容器镜像的执行入口点启动安全代理;
构建计算机设备将第一加密指纹、容器镜像的容器ID和容器镜像的安全策略发送给安全服务器;
安全服务器保存加密指纹和安全策略。
2.根据权利要求1所述的使用嵌入式代理保护容器的方法,其特征在于,还包括:
构建计算设备将容器镜像部署到目标机计算设备;
目标机计算设备的容器引擎启动安全代理;
安全代理扫描容器镜像的内容,对容器镜像的内容进行认证,并基于容器镜像的内容创建第二加密指纹;
目标机计算设备将第二加密指纹发送到安全服务器,与存储在加密指纹库中的第一加密指纹进行比较,连同容器ID。
3.根据权利要求2所述的使用嵌入式代理保护容器的方法,其特征在于,当第二加密指纹与第一加密指纹不匹配,则安全服务器确定容器镜像已修改,并向在目标机计算设备上运行的安全代理提供通知;
安全代理向容器引擎返回错误,并阻止应用程序运行。
4.根据权利要求2所述的使用嵌入式代理保护容器的方法,其特征在于,第二加密指纹与第一加密指纹匹配,则安全服务器从安全策略存储库中查找容器镜像的安全策略,并将该安全策略发送到安全代理。
5.根据权利要求4所述的使用嵌入式代理保护容器的方法,其特征在于,包括:
安全代理实现挂钩到操作系统中;
安全代理启动容器镜像的原始执行入口点,从而启动应用程序;
安全代理通过拦截应用程序的请求,并根据安全策略控制是否授权这些请求,从而使用挂钩控制容器操作。
CN202311829158.5A 2023-12-27 2023-12-27 一种使用嵌入式代理保护容器的方法 Pending CN117850981A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311829158.5A CN117850981A (zh) 2023-12-27 2023-12-27 一种使用嵌入式代理保护容器的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311829158.5A CN117850981A (zh) 2023-12-27 2023-12-27 一种使用嵌入式代理保护容器的方法

Publications (1)

Publication Number Publication Date
CN117850981A true CN117850981A (zh) 2024-04-09

Family

ID=90539491

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311829158.5A Pending CN117850981A (zh) 2023-12-27 2023-12-27 一种使用嵌入式代理保护容器的方法

Country Status (1)

Country Link
CN (1) CN117850981A (zh)

Similar Documents

Publication Publication Date Title
US11762986B2 (en) System for securing software containers with embedded agent
US11693951B2 (en) Method and apparatus for applying application context security controls for software containers
US20210209221A1 (en) System for securing software containers with encryption and embedded agent
US11580216B2 (en) Credential safety management for software containers
CN110851241A (zh) Docker容器环境的安全防护方法、装置及系统
US20060026418A1 (en) Method, apparatus, and product for providing a multi-tiered trust architecture
CN104751050A (zh) 一种客户端应用程序管理方法
CN104732147A (zh) 一种应用程序处理方法
CN110188574B (zh) 一种Docker容器的网页防篡改系统及其方法
EP4052155B1 (en) Virtual environment type validation for policy enforcement
CN104732140A (zh) 一种程序数据处理方法
US20240126883A1 (en) Measuring containers
US20220391506A1 (en) Automated Interpreted Application Control For Workloads
US20230161867A1 (en) Method and device for securely starting up a container instance
CN117850981A (zh) 一种使用嵌入式代理保护容器的方法
EP4182820B1 (en) Computing device for establishing a trusted execution environment
EP4182826B1 (en) A method of attesting a state of a computing environment
US20230280912A1 (en) A storage module for storing a data file and providing its hash
US20240202318A1 (en) Program file measurements for context-specific validation
Piras TPM 2.0-based Attestation of a Kubernetes Cluster
WO2024005143A1 (ja) 演算処理装置、演算処理システム、演算処理方法、及び演算処理プログラム
CN118228208A (zh) 用于上下文特定验证的程序文件测量
CN117473542A (zh) 业务数据访问方法、装置、设备及存储介质
CN117892361A (zh) 容器运行时安全控制方法及装置
KR20130093804A (ko) 응용 서비스 기밀 실행을 위한 런타임 제공 장치 및 방법

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