[go: up one dir, main page]

CN119318139A - 主机计算系统对容器的核实 - Google Patents

主机计算系统对容器的核实 Download PDF

Info

Publication number
CN119318139A
CN119318139A CN202280096436.8A CN202280096436A CN119318139A CN 119318139 A CN119318139 A CN 119318139A CN 202280096436 A CN202280096436 A CN 202280096436A CN 119318139 A CN119318139 A CN 119318139A
Authority
CN
China
Prior art keywords
container
avs
host computing
runtime environment
computing system
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
CN202280096436.8A
Other languages
English (en)
Inventor
H·诺尔曼
L·帕尔松
M·埃里克松
B·斯密茨
S·普雷达
D·米戈尔特
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.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
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 Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Publication of CN119318139A publication Critical patent/CN119318139A/zh
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Arrangements For Transmission Of Measured Signals (AREA)
  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Abstract

实施例包括用于配置有运行时环境的主机计算系统的软件完整性工具的方法,运行时环境被布置成执行包含应用的容器。此类方法包括:基于在运行时环境中被实例化的容器的标识符,获得与容器相关联的容器定位器标签,并且对与容器相关联的文件系统执行测量。此类方法包括:向证明核实系统(AVS)发送容器定位器标签的表示和测量的结果。其它实施例包括用于容器和用于AVS的互补方法、以及被配置成执行此类方法的主机计算系统。

Description

主机计算系统对容器的核实
技术领域
本申请一般涉及通信网络的领域,并且更具体地涉及用于使用在主机计算系统(例如,云、数据中心等)中执行的基于容器的解决方案将网络功能(NF)虚拟化的技术。
背景技术
在高级,5G系统(5GS)由接入网(AN)和核心网(CN)组成。AN例如经由基站(诸如下面描述的gNB或ng-eNB)为UE提供到CN的连接性。CN包含各种各样的网络功能(NF),这些网络功能提供范围广泛的不同功能性,诸如会话管理、连接管理、计费、认证等。
图1示出由下一代无线电接入网(NG-RAN)199和5G核心(5GC)198组成的示例性5G网络架构的高级视图。NG-RAN 199可以包括经由一个或多个NG接口连接到5GC的一个或多个gNodeB(gNB),诸如分别经由接口102、152连接的gNB 100、150。更具体地说,gNB 100、150可以经由相应的NG-C接口连接到5GC 198中的一个或多个接入和移动性管理功能(AMF)。类似地,gNB 100、150可以经由相应的NG-U接口连接到5GC 198中的一个或多个用户平面功能(UPF)。在5GC 198中可以包括各种其它网络功能(NF),如下面更详细地描述。
此外,这些gNB可以经由一个或多个Xn接口(诸如gNB 100和150之间的Xn接口140)相互连接。用于NG-RAN的无线电技术常称为“新空口”(NR)。关于到UE的NR接口,gNB中的每个gNB可以支持频分双工(FDD)、时分双工(TDD)或其组合。gNB中的每个gNB可以服务于包括一个或多个小区的地理覆盖区域,并且在一些情况下,还可以使用各种定向波束在相应小区中提供覆盖。
NG-RAN 199被分层为无线电网络层(RNL)和传输网络层(TNL)。NG-RAN逻辑节点和它们之间的接口是RNL的一部分,而TNL为用户平面传输和信令传输提供服务。为每个NG-RAN接口(例如,NG、Xn、F1)指定TNL协议和相关功能性。
图1中所示的NG-RAN逻辑节点包括中央单元(CU或gNB-CU)和一个或多个分布式单元(DU或gNB-DU)。例如,gNB 100包括gNB-CU 110以及gNB-DU 120和130。CU(例如,gNB-CU110)是托管更高层协议并且执行各种gNB功能(诸如控制DU的操作)的逻辑节点。DU(例如,gNB-DU 120、130)是托管较低层协议并且可以包括(取决于功能分割选项)gNB功能的各种子集的分散逻辑节点。依此,CU和DU中的每个可以包括执行它们相应功能所需的各种电路,包括处理电路、(例如,用于通信的)收发器电路和电源电路。
gNB-CU通过相应的F1逻辑接口(诸如图1中所示的接口122和132)连接到一个或多个gNB-DU。然而,gNB-DU只可以连接到单个gNB-CU。gNB-CU和(一个或多个)所连接的gNB-DU作为一个gNB仅对其它gNB和5GC是可见的。换言之,F1接口在gNB-CU之外是不可见的。
传统上,电信设备是作为集成的软件和硬件来提供的。最近,虚拟化技术将软件和硬件解耦,使得可以在商用现货(COTS)硬件上执行网络功能(NF)。例如,移动网络可以包括使用专用硬件执行或实例化NF的虚拟化网络功能(VNF)和非虚拟化网络元件(NE)。在图1中所示的示例性5G网络架构的上下文中,各种NG-RAN节点(例如,CU)和5GC中的各种NF可以被实现为VNF和NE的组合。
在一些情况下,可以从厂商获得如封装在“容器”中那样的NF,“容器”是可以在商用现货(COTS)硬件上运行的软件包。计算基础设施提供商(例如,超大规模提供商、通信服务提供商等)通常向厂商提供资源以用于执行其容器。这些资源包括计算硬件以及托管或执行容器的软件环境,该软件环境常称为“运行时环境”或更简单地称为“运行时”。
例如,Docker是一种流行的容器运行时,其运行在各种Linux和Windows操作系统(OS)上。Docker创建简单的成套工具和通用的封装方法,该方法将所有应用依赖项捆绑到容器内以在Docker引擎中运行,这使容器化应用能够在任何基础设施上一致地运行。
发明内容
当前,当诸如Docker之类的运行时实例化保存(例如,NF的)软件映像的容器时,没有办法核实该运行时实际上实例化所预期事物。这可能导致各种问题、难题和/或困难,诸如不能检测软件映像中的缺陷或对软件映像的攻击。
本公开的实施例解决这些和其它问题、难题和/或困难,从而促进更高效地使用托管容器化软件(诸如通信网络的虚拟NF)的运行时。
一些实施例包括用于配置有运行时环境的主机计算系统的软件完整性工具的示例性方法(例如,过程),该运行时环境被布置成执行包含应用的容器。
这些示例性方法可以包括:基于在运行时环境中被实例化的容器的标识符,获得与容器相关联的容器定位器标签,并且对与容器相关联的文件系统执行测量。这些示例性方法还可以包括:向证明核实系统(AVS)发送容器定位器标签的表示和测量的结果。
在一些实施例中,这些示例性方法还可以包括:监测指示容器已经在运行时环境中被实例化的一个或多个事件或模式,并且响应于检测到一个或多个事件或模式,获得已经被实例化的容器的标识符。在这些实施例中的一些实施例中,可以使用eBPF探测器来执行对一个或多个事件的监测。
在一些实施例中,对文件系统执行测量包括:计算在与容器相关联的文件系统中存储的一个或多个文件的摘要。在此类情况下,测量的结果是摘要。在这些实施例中的一些实施例中,对文件系统执行测量还可以包括:根据主机计算系统的摘要策略来选择要对其计算摘要的一个或多个文件。
在一些实施例中,与容器相关联的标识符是进程标识符(PID),并且与容器相关联的文件系统具有包含PID的路径名。在一些实施例中,容器定位器标签是随机字符串。在一些实施例中,从与容器相关联的文件系统中的预定义位置获得容器定位器标签。在一些实施例中,容器定位器标签的表示是下列项之一:容器定位器标签,或者容器定位器标签的摘要。
在一些实施例中,这些示例性方法还可以包括:在向AVS发送容器定位器标签的表示和测量的结果之前,对容器定位器标签的表示和测量的结果进行数字签名。在此类情况下,数字签名是基于主机计算系统可访问、但是被配置成在运行时环境中执行的容器不可访问的密钥材料。这种限制可以防止由容器进行的虚假自我证明。在这些实施例中的一些实施例中,由与软件完整性工具相关联的硬件中介执行隔离区(HMEE)来执行数字签名。
其它实施例包括用于容器的示例性方法(例如,过程),所述容器包含应用并且被配置成在主机计算系统的运行时环境中执行。
这些示例性方法可以包括:响应于容器在运行时环境中被实例化,生成容器定位器标签,并且与容器相关联地存储容器定位器标签。示例性方法还可以包括:随后从AVS接收证明结果,该证明结果指示AVS是否基于主机计算系统的软件完整性工具所进行的测量核实了与容器相关联的文件系统。这些示例性方法还可以包括:当证明结果指示AVS核实了与容器相关联的文件系统时,准备该应用供主机计算系统的运行时环境中执行。
在一些实施例中,容器还包含证明客户端,证明客户端生成和存储容器定位器标签,并且接收证明结果。
在一些实施例中,这些示例性方法还可以包括:当证明结果指示AVS未核实与容器相关联的文件系统时,执行下列一项或多项:错误处置,以及制止准备该应用供运行时环境中执行。
在一些实施例中,容器定位器标签是随机字符串。在一些实施例中,容器定位器标签被存储在与容器相关联的文件系统中的预定义位置。
在一些实施例中,这些示例性方法还可以包括:向AVS发送容器定位器标签的表示。在此类情况下,所接收到的证明结果是基于容器定位器标签的表示。在这些实施例中的一些实施例中,容器定位器标签的表示是下列项之一:容器定位器标签,或者容器定位器标签的摘要。
在一些实施例中,测量结果包括在与容器相关联的文件系统中存储的一个或多个文件的摘要。在这些实施例中的一些实施例中,一个或多个文件是基于主机计算系统的摘要策略。
其它实施例包括用于与配置有运行时环境的主机计算系统相关联的AVS的示例性方法(例如,过程),该运行时环境被布置成执行包含应用的容器。
这些示例性方法可以包括:从主机计算系统的软件完整性工具接收下列项:在运行时环境中被实例化的容器的容器定位器标签的表示,以及软件完整性工具对与容器相关联的文件系统所执行的测量的结果。这些示例性方法还可以包括:基于检测到容器定位器标签的表示与先前接收到的容器定位器标签的表示之间的匹配,基于测量的结果来执行与容器相关联的文件系统的核实。这些示例性方法还可以包括:向容器发送证明结果,该证明结果指示AVS是否核实了与容器相关联的文件系统。
在一些实施例中,执行核实可以包括:将测量的结果与容器所关联的一个或多个已知良好值或参考值进行比较,并且仅当测量的结果和一个或多个已知良好值或参考值之间存在匹配或对应时才核实文件系统。
在一些实施例中,先前接收到的表示是从容器中包含的证明客户端接收到的。在一些实施例中,容器定位器标签是随机字符串。在一些实施例中,容器定位器标签被存储在与容器相关联的文件系统中的预定义位置。在一些实施例中,容器定位器标签的表示是下列项之一:容器定位器标签,或者容器定位器标签的摘要。
在一些实施例中,由软件完整性工具对容器定位器标签的表示和测量的结果进行数字签名。在此类实施例中,执行核实包括:基于主机计算系统可访问、但是被配置成在运行时环境中执行的容器不可访问的密钥材料来核实数字签名。
其它实施例包括被配置成执行对应于本文中描述的示例性方法中的任何示例性方法的操作的软件完整性工具、容器、AVS和/或主机计算系统。其它实施例还包括存储计算机可执行指令的非暂时性计算机可读介质,所述计算机可执行指令在由主机计算系统或AVS的处理电路执行时,将主机计算系统或AVS配置成执行对应于本文中描述的示例性方法中的任何示例性方法的操作。
这些和其它所公开的实施例可以例如通过核实二进制映像和库文件的完整性来促进容器是以预期文件系统启动的核实。因为这种核实在主机级操作,所以它独立于容器。这种核实也可以独立于容器运行时(例如,Docker),如果/当攻击源自容器运行时软件,这是有利的。在高级,在主机级执行核实的实施例提供比在容器内执行的核实更好的安全性,因为它防止容器虚假自我证明。
在参照下面简要描述的附图阅读以下详细描述后,本公开的这些和其它目的、特征和优点将变得清楚。
附图说明
图1示出示例性5G网络架构。
图2示出用于3GPP指定网络的示例性网络功能虚拟化管理和编排(NFV-MANO)架构框架。
图3示出用于Docker引擎的示例性高级架构。
图4示出使用图3中所示的Docker引擎的示例计算配置。
图5示出eBPF在Linux操作系统(OS)内核中的示例实现。
图6示出根据本公开的一些实施例的软件完整性工具的高级操作的流程图。
图7示出根据本公开的一些实施例、由主机计算系统执行的针对容器的核实过程的示例性信令图。
图8示出根据本公开的各种实施例、用于软件完整性工具的示例性方法(例如,过程),软件完整性工具被配置成在被布置成执行容器化应用的主机计算系统中执行。
图9示出根据本公开的各种实施例、用于被配置成在主机计算系统中执行的容器的示例性方法(例如,过程)。
图10示出根据本公开的各种实施例、用于与被配置成执行容器化应用的主机计算系统相关联的AVS的示例性方法(例如,过程)。
图11是示出适合用于实现本文中描述的各种实施例的示例性的基于容器的主机计算系统的框图。
具体实施方式
现在将参考附图更全面地描述上面简要概述的实施例。这些描述是通过示例的方式提供的,以向本领域技术人员说明主题,并且不应当被解释为将主题的范围仅限于本文中描述的实施例。更具体地说,下面提供说明根据上面论述的优点的各种实施例的操作的示例。
一般来说,本文中使用的所有术语要根据它们在相关技术领域中的普通含义来解释,除非该术语所用于的上下文清楚地给出和/或暗示不同含义。除非另外明确地指出,否则所有对一/某一/该元件、设备、组件、部件、步骤等的提及都要开放地解释为指所述元件、设备、组件、部件、步骤等的至少一个实例。除非将某一步骤明确地描述为在另一步骤之后或之前和/或在暗示某一步骤必须在另一步骤之后或之前的情况下,否则本文中公开的任何方法和/或过程的步骤不一定按所公开的确切顺序执行。在任何适当的情况下,本文中公开的实施例中任一实施例的任何特征可以被应用于任何其它实施例。同样地,所述实施例中任何实施例的任何优点可以适用于任何其它实施例,反之亦然。所公开的实施例的其它目的、特征和优点从以下描述中将会清楚。
注意,本文中给出的描述聚焦于3GPP电信系统,并且依此,一般使用3GPP术语或类似于3GPP术语的术语。然而,本文中公开的概念不限于3GPP系统。其它无线系统,包括但不限于宽带码分多址(WCDMA)、微波接入全球互通性(WiMax)、超移动宽带(UMB)和全球移动通信系统(GSM),也可受益于本文中描述的概念、原理和/或实施例。
此外,本文中描述为由电信装置或网络节点执行的功能和/或操作可分布在多个电信装置和/或网络节点上。
如上面简要论述的,虚拟化技术将软件和硬件解耦,使得可以在商用现货(COTS)硬件上执行网络功能(NF)。由欧洲电信标准协会(ETSI)公布的ETSI GR NFV 001(v1.3.1)描述了网络功能虚拟化(NFV)的各种高级目标和用例。高级目标包括下列项:
·通过网络功能和端到端服务的基于软件的部署和运营进行的快速服务创新。
·从共同自动化和操作过程中得到的改进的操作效率。
·通过迁移工作负载和让未使用的硬件掉电来实现的降低的电力使用。
·网络功能和它们的管理实体之间的标准化且开放的接口,使得这样的解耦的网络元件可以由不同实体提供。
·将VNF指派给硬件时的更大灵活性。
·与专用硬件实现相比改进的资本效率。
类似地,ETSI GR NFV 001中描述的各种NFV用例可以大致分为以下组或类别:
·电信网络的虚拟化。
·电信网络中的服务的虚拟化,例如,物联网(IoT)虚拟化、增强的安全性、网络切片等。
·虚拟化网络的改进操作,例如,快速服务部署、持续集成/持续部署(CI/CD)、测试和核实等。
例如,移动或蜂窝网络可以包括虚拟化NF(VNF)和使用专用硬件来执行或实例化NF的非虚拟化网络元件(NE)。在图1中所示的示例性5G网络架构的上下文中,各种NG-RAN节点(例如,CU)和5GC中的各种NF可以被实现为VNF和NE的组合。
一般来说,(非虚拟的)NE可以被认为是物理网络功能(PNF)的一个示例。从高级角度来看,VNF等效于NE所实现的相同NF。然而,NE和VNF实例之间的关系取决于对应的NF之间的关系。如果VNF包含NE的整个NF,则NE实例与VNF实例是1:1相关的。即使如此,VNF的多个实例也可在相同的NF虚拟化基础设施(NFVI,例如,云基础设施、数据中心等)上运行。
VNF和NE都需要以一致的方式来管理。为了促进这方面,3GPP规定了网络功能虚拟化管理和编排(NFV-MANO)架构框架。图3示出NFV-MANO架构框架和3GPP指定网络的其它部分之间的示例性移动网络管理架构映射关系。在3GPP TS28.500(v17.0.0)第6.1节中详细描述了图2中所示的布置,其全部内容通过引用结合于本文中。为了上下文和清楚起见,下面提供这个描述的某些部分。
图2中所示的架构包括以下实体,其中的一些实体在3GPP TS 32.101(v17.0.0)中被进一步定义:
·网络管理(NM),NM起到操作支持系统(OSS)或业务支持系统(BSS)的作用之一,并且是参考点Os-Ma-nfvo的消费者;
·装置管理(DM)/元件管理(EM),如果EM包括扩展的功能性,则它可以管理PNF和VNF二者;
·NFV编排者(NFVO);
·VNF管理者(VNFM);
·虚拟化基础设施管理者(VIM);
·Itf-N,NM和DM/EM之间的接口;
·Os-Ma-nfvo,OSS/BSS和NFVO之间的参考点;
·Ve-Vnfm-em,EM和VNFM之间的参考点;
·Ve-Vnfm-vnf,VNF和VNFM之间的参考点;以及
·NFVI,共同提供其中部署VNF的基础设施资源的硬件和软件组件。
EM/DM负责用于在应用级的VNF以及在域和元件级的NE的FCAPS(故障、配置、计帐、性能、安全性)管理功能性。这包括:
·用于VNF和物理NE的故障管理。
·用于VNF和物理NE的配置管理。
·用于VNF和物理NE的计帐管理。
·用于VNF和物理NE的性能测量和收集。
·用于VNF和物理NE的安全性管理。
·VNF生命周期管理(LCM),诸如通过VNFM为VNF请求LCM,以及交换关于VNF和与VNF相关联的虚拟化资源的信息。
在一些情况下,可以从厂商获得如封装在“容器”中那样的NF,“容器”是可以在COTS硬件上运行的软件包。更具体地说,容器是软件的标准单元,其封装了应用代码及其所有依赖项,因此应用在不同的计算环境中快速且可靠地运行。计算基础设施提供商(例如,超大规模提供商、通信服务提供商等)通常向厂商提供资源以用于执行其容器。这些资源包括计算硬件以及托管或执行容器的软件环境(这常称为“运行时”)。
Docker是一种流行的容器运行时,其运行在各种Linux和Windows操作系统(OS)上。Docker创建简单的成套工具和通用的封装方法,该方法将所有应用依赖项捆绑到容器内,容器在Docker引擎上运行。具体地说,Docker引擎使容器化应用能够在任何基础设施上一致地运行。Docker容器映像是轻量级的、独立的、可执行的软件包,其具备运行应用所需的一切,包括代码、运行时、系统工具、系统库和设置。Docker容器映像在运行时(即,当容器映像在Docker引擎上运行时)成为容器。多个Docker容器可以在相同机器上运行,并且与其它Docker容器共享OS内核,每个Docker容器都作为用户空间中的被隔离进程运行。
图3示出Docker引擎的示例性高级架构,该架构具备下面描述的图3中所示的各种块。
Containerd实现Kubernetes容器运行时接口(CRI),并且遍及公共云和企业被广泛采用。Kubernetes是用于提供基于云的web-服务的公用平台。Kubernetes可以协调高度可用的连接计算机集群(也称为“处理元件”或“主机”)来作为单个单元工作。Kubernetes(例如,经由其运行时)部署容器中封装的应用,以将它们与各个计算主机解耦。
一般来说,Kubernetes集群由两种类型的资源组成:协调或管理集群的“主管”,以及运行应用的“节点”或“工作者”。换言之,节点是充当工作者机器的虚拟机(VM)或物理计算机。主管协调集群中的所有活动,诸如调度应用、维护应用的期望状态、缩放应用以及推出新的更新。每个节点具有作为用于管理节点和与Kubernetes主管通信的代理的Kubelet,以及用于处置容器操作的工具。Kubernetes集群主管启动应用容器,并且调度这些容器在集群的节点上运行。这些节点使用主管开放的Kubernetes API与主管通信。最终用户也可以直接使用Kubernetes API与集群交互。
“容器组(pod)”是Kubernetes应用的基本执行单元,即,可以在Kubernetes对象模型中创建和部署的最小且最简单的单元。容器组代表在集群上运行的进程,并且包封了应用的(一个或多个)容器、存储资源、唯一的网络IP地址、以及管控(一个或多个)容器应当如何运行的选项。换言之,Kubernetes容器组代表应用的单个实例,其可以由紧密耦合并共享资源的一个或多个容器组成。
返回到图3,BuildKit是从Dockerfile中取指令并构建(或创建)Docker容器映像的开源工具。这个构建过程可能花费长时间,所以BuildKit提供使它快得多、更精确且可迁移的若干架构增强。Docker应用编程接口(API)和Docker命令行接口(CLI)促进与Docker引擎通过接口连接。例如,Docker CLI使用户能够通过清晰的命令集来管理容器实例。
如图3中所示,Docker引擎还提供诸如分发、编排和联网之类的功能。Docker引擎还提供卷功能性,这是用于存留Docker容器生成和/或使用的数据的首选机制。与绑定挂载(其中将主机机器上的文件或目录挂载到容器中)相比,卷独立于主机机器的目录结构和OS,并且完全由Docker管理。
图4示出使用Docker引擎的示例计算配置。在底部的是运行OS(420,例如,Windows、Linux等)的计算基础设施(410,也称为“主机”)。Docker引擎(430)运行在OS之上,并且执行作为Docker容器(440,也称为“容器化应用”)的应用1-N。
通常,由于OS内核的监督和控制整个系统的特权能力,OS是实现可观察性、安全性和联网功能性的最佳处。同时,由于OS内核的中心作用以及对稳定性和安全性的严格要求,OS内核难以演进。因此,与OS外部的创新(诸如Kubernetes、Docker引擎等)相比,在OS级的创新速度已经较慢。
eBPF是可以在Linux OS内核中运行沙盒程序的技术。特别是,eBPF是访问内核而不会影响其行为的简单且安全的方式。eBPF还可以在不改变内核本身的情况下或者通过添加内核模块来收集执行信息。eBPF不要求变更Linux内核源代码,它也不要求任何特定的Linux内核模块以便起作用。该技术非常适合经由精心放置的探测器从用户空间和内核空间二者收集信息。
eBPF程序是事件驱动的,并且当内核(或应用)通过某个挂钩点时运行。预定义的挂钩包括系统调用、功能入口/出口、内核跟踪点、网络事件等。图5示出eBPF在Linux OS内核中的示例实现,其中对内核调度器的系统调用(Syscall)是触发eBPF程序执行的挂钩。
当前,当诸如Docker引擎之类的容器运行时实例化容器时,没有办法核实该运行时实际上实例化所预期事物。存在用于测量容器软件映像的一些工具。一个示例是联合签名,这在开放容器倡议(OCI)注册器中提供容器签名、核实和存储。此外,存在用于检测正在运行的容器的文件系统中的意外变化的一些工具。一个示例是Sysdig监测器,其监测Kubernetes容器组、集群等。
然而,当前没有办法核实(例如,NF的)原始软件映像实际上正在实例化的容器中运行。这可能导致各种问题、难题和/或困难。例如,容器运行时软件中的缺陷或者对该软件的攻击可能导致正运行的容器的usr目录的改变,并且当前不存在发现此类缺陷或攻击的结构化办法。
因此,本公开的实施例通过(例如,使用eBPF)识别某个容器已经被实例化的技术来解决这些和其它问题、难题和/或困难,所述识别是自主地和/或独立于容器运行时环境(例如,Docker)完成的。然后,这些技术对容器内存在的一组文件执行软件证明(例如,计算摘要)。例如,计算主机可以检测新容器何时被实例化,然后测量该容器的文件系统的选定部分。然后,主机采用仅主机可访问的密钥对测量结果进行签名。可以通过群集内的核实实例来核实已签名的测量结果并将其与已知良好值进行比较。在一些实施例中,已知良好值是由容器的厂商在容器映像创建期间并且在将容器映像交付给预期用户之前事先计算的。
本文中描述的实施例提供各种益处和/或优点。例如,实施例例如通过核实二进制映像和库文件的完整性,促进容器以预期文件系统启动的核实。因为这种核实在主机级操作,所以它独立于容器。这种核实也可以独立于容器运行时(例如,Docker),如果/当攻击源自容器运行时软件,这是有利的。换言之,核实是在容器的主机(“裸机”)执行上进行的,独立于容器运行时和Kubernetes集群。进一步的优点是核实独立于容器厂商,因为它利用插入每个容器的功能性。在高级,在主机级操作的实施例提供比在容器内执行的核实更好的安全性,因为它防止容器虚假自我证明。
图6示出根据本公开的一些实施例的软件完整性工具的高级操作的流程图。特别是,软件完整性工具可以在提供应用的容器化执行的主机计算环境中运行,诸如上面所描述。在软件完整性工具启动(框610)之后,它部署具备模式识别能力的(软件)探测器(框620)。软件探测器持续寻找指示容器运行时(例如,Docker)启动了容器的模式(框630)。一旦软件探测器识别出这样的模式(“是”分支),它就执行测量(框640),并且向主机外部的证明核实系统(AVS)发送结果(框650)。
图7示出根据本公开的一些实施例、由主机计算系统(“主机”,710)执行的针对容器的核实过程的示例性信令图。虽然图7中所示的操作被给予数字标记,但是这样做是为了便于说明,而不是要求或暗示序列顺序,除非下面相反地指出。
如图7中所示,主机被布置成执行包含应用(722)和证明客户端(724)的容器(720)。此外,主机被布置成执行软件完整性工具(730)和容器编排器(740)。在一些情况下,软件完整性工具可包括硬件中介执行隔离区(HMEE,732)或者与HMEE相关联,HMEE提供代码和数据二者的硬件强制隔离。
例如,HMEE可以充当信任的根,并且可以用于证明。在此类场景中,远程核实者可能经由证明代理向HMEE请求引证(quote)。HMEE将向远程核实者提供已签名的测量数据(“引证”)。远程核实者则可以采用其自己存储的数据来核实该签名和该引证。以这种方式,基于HMEE的证明可以向远程核实者提供在正确平台上执行正确应用的保证。ETSI GR NFV-SEC 009中进一步规定了HMEE。
作为先决条件,软件完整性工具正在主机上运行,诸如图6中所示。在操作1中,编排器决定实例化源自容器映像的容器实例。在操作2中,基于在系统级识别出模式,软件完整性工具理解到容器运行时已经启动了容器实例。软件完整性工具还识别与容器相关联的进程标识符(PID)。例如,PID可以是Docker引擎指配的Docker PID。
操作2中的容器启动检测可以用各种方式实现。在一些实施例中,可以使用eBPF来检测新进程的开始,并且识别指示新容器开始的已开始进程的某个链。即使此类实施例可能要求适配以支持不同的容器运行时解决方案,此类实施例也是独立于容器运行时软件的。通过使用eBPF,这些实施例可以高效地检测新容器的开始,同时是故障安全的并且独立于容器。在其它实施例中,容器运行时软件中的功能性可以被用于检测新容器的开始并且获得容器的PID。
在容器已经被实例化之后,在操作3中,容器内部的证明客户端生成随机的容器定位器标签。长度应当足够长以避免冲突。证明客户端将容器定位器标签存储在容器中(例如,在预定义的路径),并且在操作4中,向AVS(750)发送容器定位器标签。备选地,证明客户端可以发送使得能够识别容器定位器标签的数据,诸如摘要。注意,AVS可在主机外部(如所示)或者在主机内部。
在软件完整性工具获知PID之后,它执行操作5-7。在操作5中,软件完整性工具对新启动的容器的文件系统执行测量。例如,软件完整性工具可以计算容器的文件系统中的文件的摘要。在一些实施例中,摘要策略可规定在摘要计算中要包括哪些文件系统文件夹。在操作5中所测量的容器的文件系统可以在主机的不同路径上获取。一个获取它的地方是/proc/[PID]/root。另一个获取它的地方是容器运行时的驱动程序。
在操作6中,软件完整性工具从容器内(例如,从预定义路径)找到并读取容器定位器标签。在操作7中,软件完整性工具对在操作5中获得的摘要和在操作6中获得的容器定位器标签进行数字签名。如果软件完整性工具包括HMEE或与HMEE相关联,则那可以用来为用于签名的密钥材料的处置提供附加安全性。在此类情况下,只有主机有权访问核实测量的源所需的密钥。
在操作8中,软件完整性工具将已签名的测量结果与已签名的容器定位器标签一起发送到AVS。在操作9中,AVS尝试将在操作8中接收到的容器定位器标签与其先前(例如,在操作4中)已经接收到的标签进行匹配。倘若不存在匹配或者AVS理解到最近已经接收到容器定位器标签(例如,重放攻击),则该过程通常会停止或者转变到错误处置。备选地,如果操作8发生在操作4之前,AVS可尝试将从证明客户端较晚接收到的标签与从软件完整性工具较早接收到的标签进行匹配。
在操作10-11中,AVS将接收到的测量值与已知良好值的列表进行比较,并且用结果(即,证明成功或失败)来响应证明客户端。AVS借助于容器定位器标签(其映射到操作4中消息的发送者)可以找到正确的证明客户端。在操作12-13中,容器从证明客户端接收结果,并且,如果证明成功则继续容器设置,或者如果证明失败则开始错误处置。
可以参考图8-10进一步说明上面描述的实施例,图8-10分别描绘用于软件完整性工具、包含应用的容器和AVS的示例性方法(例如,过程)。换言之,下面描述的操作的各种特征对应于上面描述的各种实施例。图8-10中示出的示例性方法可以协作(例如,彼此协作以及与本文中描述的其它过程协作)使用以提供益处、优点和/或本文中描述的问题的解决方案。虽然在图8-10中以特定顺序通过具体框示出示例性方法,但是对应于这些框的操作可以按照与所示不同的顺序来执行,并且可以被组合和/或分成具有与所示不同的功能性的框和/或操作。通过虚线来指示可选的框和/或操作。
具体而言,图8示出根据本公开的各种实施例、用于配置有运行时环境的主机计算系统的软件完整性工具的示例性方法(例如,过程),运行时环境被布置成执行包含应用的容器。图8中所示的示例性方法可以由软件完整性工具(诸如本文中别处所描述)来执行,或者由执行此类软件完整性工具的主机计算系统(“主机”)来执行。
示例性方法可以包括框830的操作,其中,基于在运行时环境中被实例化的容器的标识符,软件完整性工具可以获得与容器相关联的容器定位器标签,并且对与容器相关联的文件系统执行测量。示例性方法还可以包括框850的操作,其中,软件完整性工具可以向证明核实系统(AVS)发送容器定位器标签的表示和测量的结果。
在一些实施例中,示例性方法可以包括框810-820的操作,其中,软件完整性工具可以监测指示容器已经在运行时环境中被实例化的一个或多个事件或模式,并且响应于检测到一个或多个事件或模式,获得已经被实例化的容器的标识符。在这些实施例中的一些实施例中,使用eBPF探测器来执行框810中对一个或多个事件的监测。
在一些实施例中,在框830中对文件系统执行测量包括子框832的操作,其中,软件完整性工具可以计算与容器相关联的文件系统中存储的一个或多个文件的摘要。在此类情况下,测量的结果是摘要。在这些实施例中的一些实施例中,在框830中对文件系统执行测量还包括子框831的操作,其中,软件完整性工具可以根据主机计算系统的摘要策略来选择要对其计算摘要的一个或多个文件。
在一些实施例中,与容器相关联的标识符是进程标识符(PID),并且与容器相关联的文件系统具有包含PID的路径名。在一些实施例中,容器定位器标签是随机字符串。在一些实施例中,(例如,在框830中)从与容器相关联的文件系统中的预定义位置获得容器定位器标签。在一些实施例中,容器定位器标签的表示是下列项之一:容器定位器标签,或者容器定位器标签的摘要。
在一些实施例中,示例性方法还可以包括框840的操作,其中,软件完整性工具可以在(例如,在框850中)向AVS发送容器定位器标签的表示和测量的结果之前,对容器定位器标签的表示和测量的结果进行数字签名。在此类情况下,数字签名是基于主机计算系统可访问、但是被配置成在运行时环境中执行的容器不可访问的密钥材料。这种限制可以防止由容器进行的虚假自我证明。在这些实施例中的一些实施例中,数字签名由与软件完整性工具相关联的硬件中介执行隔离区(HMEE)来执行。
此外,图9示出根据本公开的各种实施例的用于容器的示例性方法(例如,过程),所述容器包含应用并且被配置成在主机计算系统的运行时环境中执行。例如,图9中所示的示例性方法可以由诸如本文中别处所描述的容器(例如,Docker容器、Kubernetes容器等)来执行,或者由在运行时环境中执行此类容器的主机计算系统(“主机”)来执行。
示例性方法可以包括框910的操作,其中,响应于容器在运行时环境中被实例化,容器可以生成容器定位器标签并且与容器相关联地存储该容器定位器标签。示例性方法还可以包括框930的操作,其中,容器可以随后从证明核实系统(AVS)接收证明结果,该证明结果指示AVS是否基于主机计算系统的软件完整性工具所进行的测量核实了与容器相关联的文件系统。示例性方法还可以包括框940的操作,其中,当证明结果指示AVS核实了与容器相关联的文件系统时,容器可以准备应用供主机计算系统的运行时环境中执行。
在一些实施例中,容器还包括证明客户端,证明客户端(例如,在框910中)生成和存储容器定位器标签,以及(例如,在框930中)接收证明结果。在图7中示出这种布置的示例。
在一些实施例中,示例性方法还可以包括框950的操作,其中,当证明结果指示AVS未核实与容器相关联的文件系统时,容器可以执行下列一项或多项:错误处置,以及制止准备应用供运行时环境中执行。
在一些实施例中,容器定位器标签是随机字符串。在一些实施例中,(例如,在框910中)将容器定位器标签存储在与容器相关联的文件系统中的预定义位置。
在一些实施例中,示例性方法还可以包括框920的操作,其中,容器可以向AVS发送容器定位器标签的表示。在此类情况下,(例如,在框930中接收的)证明结果是基于容器定位器标签的表示。在这些实施例中的一些实施例中,容器定位器标签的表示是下列项之一:容器定位器标签,或者容器定位器标签的摘要。
在一些实施例中,测量结果包括与容器相关联的文件系统中存储的一个或多个文件的摘要。在这些实施例中的一些实施例中,一个或多个文件是基于主机计算系统的摘要策略。
此外,图10示出根据本公开的各种实施例、用于与配置有运行时环境的主机计算系统相关联的AVS的示例性方法(例如,过程),运行时环境被布置成执行包含应用的容器。例如,图10中所示的示例性方法可以由诸如本文中别处所描述的AVS来执行,或者由执行此类AVS的主机计算系统(“主机”)来执行。
示例性方法可以包括框1010的操作,其中,AVS可以从主机计算系统的软件完整性工具接收下列项:在运行时环境中被实例化的容器的容器定位器标签的表示,以及软件完整性工具对与容器相关联的文件系统所执行的测量的结果。示例性方法还可以包括框1020的操作,其中,基于检测到容器定位器标签的表示与先前接收到的容器定位器标签的表示之间的匹配,AVS可以基于测量的结果来执行与容器相关联的文件系统的核实。示例性方法还可以包括框1020的操作,其中,AVS可以向容器发送证明结果,该证明结果指示AVS是否核实了与容器相关联的文件系统。
在一些实施例中,在框1020中执行核实可以包括子框1021-1022的操作,其中,AVS可以将测量的结果与容器所关联的一个或多个已知良好值或参考值进行比较,并且仅当测量的结果和一个或多个已知良好值或参考值之间存在匹配或对应时才核实文件系统。例如,已知良好值或参考值可以由容器化应用的厂商提供,诸如上面所论述。
在一些实施例中,先前接收到的表示是从容器中包含的证明客户端接收到的。在一些实施例中,容器定位器标签是随机字符串。在一些实施例中,容器定位器标签被存储在与容器相关联的文件系统中的预定义位置。在一些实施例中,容器定位器标签的表示是下列项之一:容器定位器标签,或者容器定位器标签的摘要。
在一些实施例中,由软件完整性工具对容器定位器标签的表示和测量的结果进行数字签名。在此类实施例中,在框1020中执行核实还包括子框1023的操作,其中,AVS可以基于主机计算系统可访问、但是被配置成在运行时环境中执行的容器不可访问的密钥材料来核实数字签名。
虽然图8-10描述了方法(例如,过程),但是对应于这些方法的操作(包括任何框和子框)也可以在存储计算机可执行指令的非暂时性计算机可读介质中实施。对应于这些方法的操作(包括任何框和子框)也可以在存储计算机可执行指令的计算机程序产品中实施。在任一情况下,当此类指令由与主机计算系统相关联的处理电路执行时,它们可以将主机计算系统(或其组件)配置成执行对应于相应方法的操作。
图11是示出由一些实施例实现的功能的主机计算系统1100的示意框图。
在一些实施例中,本文中描述的功能中的一些或所有功能可以被实现为在硬件节点1130中的一个或多个硬件节点所托管的运行时环境1120中执行的组件。此类硬件节点可以是在集群中(例如,诸如在数据中心或客户端设备(CPE)中)布置的计算机器,在集群中许多硬件节点一起工作并且经由管理和编排(MANO)11100来管理,MANO 11100(除了别的以外)监督应用1140的生命周期管理。运行时环境1120可以在操作系统(OS)1125(诸如Linux或Windows)之上运行,而OS1125直接在硬件节点1130上运行。
硬件节点1130可以包括处理电路1160和存储器1190。存储器1190包含可由处理电路1160执行的指令1195,由此应用1140可以可操作以用于本文中公开的实施例的各种特征、功能、过程等。处理电路1160可以包括通用或专用硬件装置,诸如一个或多个处理器(例如,定制的处理器和/或商用现货的处理器)、专门的专用集成电路(ASIC)、或者任何其它类型的处理电路(包括数字或模拟硬件组件或专用处理器)。每个硬件节点可以包括存储器1190-1,存储器1190-1可以是非持久性存储器,用于临时存储由处理电路1160执行的指令1195或软件。例如,指令1195可以包括程序指令(也称为计算机程序产品),所述程序指令当由处理电路1160执行时,可以将硬件节点1130配置成执行对应于本文中描述的方法/过程的操作。
每个硬件节点可以包括一个或多个网络接口控制器(NIC)/网络接口卡1170,其包括物理网络接口1180。每个硬件节点还可以包括其中存储有可由处理电路1160执行的指令和/或软件1195的非暂时性、持久的机器可读存储介质1190-2。软件1195可以包括任何类型的软件,其中包括操作系统1125、运行时环境1120、软件完整性工具1150和容器化应用1140。
各种应用1142(其可以备选地称为软件实例、虚拟器具、网络功能、虚拟节点、虚拟网络功能、容器、容器化应用等)可以由主机计算系统1100执行。每个应用1142可以被包含于对应的容器1141中,诸如图11中所示的容器1141a-b中的应用1142a-b。注意,在一些实例中,应用1142可以表示服务。每个容器1141还可以包含证明客户端1143,诸如图11中所示的容器1141a-b中的证明客户端1143a-b。
在一些实施例中,运行时环境1120可以用于从底层硬件节点1130抽象出应用1142和容器1141。在此类实施例中,处理电路1160执行软件1195以实例化运行时环境1120,运行时环境在一些实例中可以是Docker运行时。例如,对于由主机计算系统1100托管的容器和/或容器组,运行时环境1120可以看起来像计算和/或联网硬件。
在一些实施例中,多个应用容器1141可以被布置在容器组1140中。在此类实施例中,容器组1140(例如,Kubernetes容器组)可以是基本执行单元,即,可以在主机计算系统1100中创建和部署的最小且最简单的单元。例如,当多个容器1141包封所使用的服务作为由容器组1140表示的更高级应用的构建块时,可能是这种情况。
每个容器组可以包括由容器组内的容器共享的多个资源。例如,容器组可以表示在集群上运行的进程,并且可以包封(一个或多个)容器(包括其中的应用/服务)、存储资源、唯一的网络IP地址以及管控(一个或多个)容器应当如何运行的选项。一般而言,容器可以相对地与底层物理或虚拟计算基础设施解耦。
证明客户端1143可以包括但不限于在各种其它附图中示出并且在上面更详细论述的各种证明客户端实施例的各种特征、功能、结构、配置等。
除了应用1140之外,还可以在图11中所示的主机计算系统1100中运行软件完整性工具1150。软件完整性工具1150可以包括但不限于在各种其它附图中示出并且在上面更详细地论述的各种软件完整性工具实施例的各种特征、功能、结构、配置等。
在一些实施例中,主机计算系统可以包括证明核实系统(AVS)1155。例如,可以在主机计算系统1100的硬件节点1130上执行AVS 1155。备选地,可以在主机计算系统1100外部的硬件上执行AVS,所述硬件可以类似于图11中所示的硬件。此外,AVS1155可以包括但不限于在各种其它附图中示出并且在上面更详细论述的各种AVS实施例的各种特征、功能、结构、配置等。
上文只是说明了本公开的原理。鉴于本文中的教导,本领域技术人员会清楚对所描述的实施例的各种修改和变更。因此,将意识到,本领域技术人员将能够想出尽管本文中未明确示出或描述、但是实施本公开的原理并且因此可以在本公开的精神和范围内的众多系统、布置和过程。本领域普通技术人员应当理解,各种实施例可以彼此一起使用,也可以彼此可互换地使用。
如本文中所使用的术语“单元”可以具有在电子、电气装置和/或电子装置的领域中的常规含义,并且可以包括例如电气和/或电子电路、装置、模块、处理器、存储器、逻辑固态和/或分立装置、计算机程序或指令,用于实行相应任务、过程、计算、输出和/或显示功能等,诸如在本文中所描述的那些。
本文中公开的任何适当步骤、方法、特征、功能或益处可通过一个或多个虚拟设备的一个或多个功能单元或模块来执行。每个虚拟设备可包括多个这些功能单元。这些功能单元可经由处理电路(可包括一个或多个微处理器或微控制器)以及其它数字硬件(可包括数字信号处理器(DSP)、专用数字逻辑等)来实现。处理电路可被配置成执行存储在存储器中的程序代码,存储器可包括一个或若干个类型的存储器,诸如只读存储器(ROM)、随机存取存储器(RAM)、高速缓冲存储器、闪速存储器装置、光存储装置等。存储在存储器中的程序代码包括用于执行一个或多个电信和/或数据通信协议的程序指令以及用于实行本文中描述的技术中的一个或多个技术的指令。在一些实现中,处理电路可用于致使相应的功能单元执行按照本公开的一个或多个实施例的对应功能。
如本文中所描述,装置和/或设备可以由半导体芯片、芯片集、或者包含此类芯片或芯片集的(硬件)模块表示;然而,这并不排除如下的可能性,即,装置或设备的功能性不是硬件实现的,而是作为软件模块(诸如包括用于在处理器上执行或运行的可执行软件代码部分的计算机程序或计算机程序产品)来实现。此外,装置或设备的功能性可以由硬件和软件的任何组合来实现。装置或设备也可以视为多个装置和/或设备的组装件,无论在功能上是彼此协作还是彼此独立。此外,只要保留装置或设备的功能性,就可以在整个系统中以分布式实现装置和设备。这样的和类似的原理被认为是技术人员已知的。
除非另外定义,否则本文中所使用的所有术语(包括技术和科学术语)具有与本公开所属领域的普通技术人员普遍理解的含义相同的含义。将会进一步理解,本文中所使用的术语应当被解释为具有与它们在本说明书和相关技术的上下文中的含义一致的含义,并且不会以理想化或过于正式的意义来解释,除非在本文中明确地如此定义。
另外,在某些情况下,本公开(包括说明书和附图)中所使用的某些术语可同义地使用(例如,“数据”和“信息”)。应当理解,虽然这些术语(和/或其它彼此可以同义的术语)在本文中可以同义地使用,但是可能存在可能并不打算同义地使用这类词语的一些情况。

Claims (40)

1.一种用于配置有运行时环境的主机计算系统的软件完整性工具的方法,所述运行时环境被布置成执行包含应用的容器,所述方法包括:
基于在所述运行时环境中被实例化的容器的标识符,获得(830)与所述容器相关联的容器定位器标签,并且对与所述容器相关联的文件系统执行测量;以及
向证明核实系统AVS发送(850)所述容器定位器标签的表示和所述测量的结果。
2.如权利要求1所述的方法,进一步包括:
监测(810)指示容器已经在所述运行时环境中被实例化的一个或多个事件或模式;以及
响应于检测到所述一个或多个事件或模式,获得(820)已经被实例化的所述容器的所述标识符。
3.如权利要求2所述的方法,其中,使用eBPF探测器来执行对所述一个或多个事件的监测(810)。
4.如权利要求1-3中任一项所述的方法,其中,对所述文件系统执行(830)测量包括:计算(832)与所述容器相关联的所述文件系统中存储的一个或多个文件的摘要,其中,所述摘要是发送到所述AVS的所述测量的所述结果。
5.如权利要求4所述的方法,其中,对所述文件系统执行(830)测量进一步包括:根据所述主机计算系统的摘要策略选择(831)要对其计算所述摘要的所述一个或多个文件。
6.如权利要求1-5中任一项所述的方法,其中,与所述容器相关联的所述标识符是进程标识符PID,并且与所述容器相关联的所述文件系统具有包含所述PID的路径名。
7.如权利要求1-6中任一项所述的方法,其中,所述容器定位器标签的所述表示是下列项之一:所述容器定位器标签,或者所述容器定位器标签的摘要。
8.如权利要求1-7中任一项所述的方法,其中,下列一项或多项适用:
所述容器定位器标签是随机字符串;以及
所述容器定位器标签是从与所述容器相关联的所述文件系统中的预定义位置获得的。
9.如权利要求1-8中任一项所述的方法,进一步包括:在向所述AVS发送所述容器定位器标签的所述表示和所述测量的所述结果之前,对所述容器定位器标签的所述表示和所述测量的所述结果进行数字签名(840),其中,所述数字签名(840)是基于所述主机计算系统可访问、但是被配置成在所述运行时环境中执行的容器不可访问的密钥材料。
10.如权利要求9所述的方法,其中,所述数字签名由与所述软件完整性工具相关联的硬件中介执行隔离区HMEE来执行。
11.一种用于包含应用的容器的方法,所述容器被配置成在主机计算系统的运行时环境中执行,所述方法包括:
响应于所述容器在所述运行时环境中被实例化,生成(910)容器定位器标签并且与所述容器相关联地存储所述容器定位器标签;
随后从证明核实系统AVS接收证明结果,所述证明结果指示所述AVS是否基于所述主机计算系统的软件完整性工具所执行的测量核实了与所述容器相关联的文件系统;以及
当所述证明结果指示所述AVS核实了与所述容器相关联的所述文件系统时,准备(940)所述应用供所述运行时环境中执行。
12.如权利要求11所述的方法,其中:
所述容器还包含证明客户端;以及
所述证明客户端生成并存储所述容器定位器标签,并且接收所述证明结果。
13.如权利要求11-12中任一项所述的方法,进一步包括当所述证明结果指示所述AVS未核实与所述容器相关联的所述文件系统时执行(950)下列一项或多项:错误处置,以及制止准备所述应用供所述运行时环境中执行。
14.如权利要求11-13中任一项所述的方法,其中,下列一项或多项适用:
所述容器定位器标签是随机字符串;以及
所述容器定位器标签被存储在与所述容器相关联的所述文件系统中的预定义位置。
15.如权利要求14所述的方法,进一步包括:向所述AVS发送(920)所述容器定位器标签的表示,其中,所述证明结果是基于所述容器定位器标签的所述表示。
16.如权利要求15所述的方法,其中,发送到所述AVS的所述容器定位器标签的所述表示是下列项之一:所述容器定位器标签,或者所述容器定位器标签的摘要。
17.如权利要求11-16中任一项所述的方法,其中,所述测量结果包括与所述容器相关联的所述文件系统中存储的一个或多个文件的摘要。
18.如权利要求17所述的方法,其中,根据所述主机计算系统的摘要策略来选择所述摘要所基于的所述一个或多个文件。
19.一种用于与配置有运行时环境的主机计算系统相关联的证明核实系统AVS的方法,所述运行时环境被布置成执行包含应用的容器,所述方法包括:
从所述主机计算系统的软件完整性工具接收(1010)下列项:
在所述运行时环境中被实例化的容器的容器定位器标签的表示,和
所述软件完整性工具对与所述容器相关联的文件系统所执行的测量的结果;
基于检测到所述容器定位器标签的所述表示和先前接收到的所述容器定位器标签的表示之间的匹配,基于所述测量的所述结果来执行(1020)与所述容器相关联的所述文件系统的核实;
向所述容器发送(1030)证明结果,所述证明结果指示所述AVS是否核实了与所述容器相关联的所述文件系统。
20.如权利要求19所述的方法,其中,执行(1020)所述核实包括:
将所述测量的所述结果与所述容器所关联的一个或多个已知良好值或参考值进行比较(1021);以及
仅当所述测量的所述结果和所述一个或多个已知良好值或参考值之间存在匹配或对应时,才核实(1022)所述文件系统。
21.如权利要求19-20中任一项所述的方法,其中,所述先前接收到的表示是从所述容器中包含的证明客户端接收到的。
22.如权利要求19-21中任一项所述的方法,其中,下列一项或多项适用:
所述容器定位器标签是随机字符串;以及
所述容器定位器标签被存储在与所述容器相关联的所述文件系统中的预定义位置。
23.如权利要求19-22中任一项所述的方法,其中,所述表示和先前接收到的表示都是下列项之一:所述容器定位器标签,或者所述容器定位器标签的摘要。
24.如权利要求19-23中任一项所述的方法,其中:
所述容器定位器标签的所述表示和所述测量的所述结果由所述软件完整性工具进行数字签名;以及
执行(1020)所述核实包括基于所述主机计算系统可访问、但是被配置成在所述运行时环境中执行的容器不可访问的密钥材料来核实(1023)所述数字签名。
25.一种配置有运行时环境(430,1120)的主机计算系统(410,710,1100),所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141),所述主机计算系统包括:
存储器(1190),所述存储器存储用于软件完整性工具(1150)和用于所述运行时环境的计算机可执行软件代码(1195);以及
被配置成执行所述软件代码的处理电路(1160),其中,所述软件代码的执行将所述主机计算系统配置成:
通过容器,响应于被实例化供所述运行时环境中执行,生成容器定位器标签,与所述容器相关联地存储所述容器定位器标签,并且向证明核实系统AVS(750,1155)发送所述容器定位器标签的表示;
通过所述软件完整性工具,基于所述容器的标识符,获得与所述容器相关联的容器定位器标签,并且对与所述容器相关联的文件系统执行测量;以及
通过所述软件完整性工具,向所述AVS发送所述容器定位器标签的表示和所述测量的结果;
通过所述容器,从所述AVS接收证明结果,所述证明结果指示所述AVS是否基于所述软件完整性工具所执行的所述测量核实了与所述容器相关联的所述文件系统;以及
通过所述容器,当所述证明结果指示所述AVS核实了与所述容器相关联的所述文件系统时,准备所述容器中包含的所述应用供所述运行时环境中执行。
26.如权利要求25所述的主机计算系统,其中,所述软件代码的执行进一步将所述主机计算系统配置为执行下列一项或多项:
通过所述软件完整性工具,对应于权利要求2-10所述的方法中的任何方法的操作;以及
通过所述容器,对应于权利要求12-18所述的方法中的任何方法的操作。
27.如权利要求25-26中任一项所述的主机计算系统,其中:
所述存储器还包含用于所述AVS的软件代码;以及
所述软件代码的执行进一步将所述主机计算系统配置成,通过所述AVS,执行对应于权利要求19-24所述的方法中的任何方法的操作。
28.一种配置有运行时环境(430,1120)的主机计算系统(410,710,1100),所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141),其中,所述主机计算系统被进一步配置成:
通过容器,响应于被实例化供所述运行时环境中执行,生成容器定位器标签,与所述容器相关联地存储所述容器定位器标签,并且向证明核实系统AVS(750,1155)发送所述容器定位器标签的表示;
通过所述主机计算系统的软件完整性工具(1150),基于所述容器的标识符,获得与所述容器相关联的容器定位器标签,并且对与所述容器相关联的文件系统执行测量;以及
通过所述软件完整性工具,向所述AVS发送所述容器定位器标签的表示和所述测量的结果;
通过所述容器,从所述AVS接收证明结果,所述证明结果指示所述AVS是否基于所述软件完整性工具所执行的所述测量核实了与所述容器相关联的所述文件系统;以及
通过所述容器,当所述证明结果指示所述AVS核实了与所述容器相关联的所述文件系统时,准备所述容器中包含的所述应用供所述运行时环境中执行。
29.如权利要求28所述的主机计算系统,被进一步配置成执行下列一项或多项:
通过所述软件完整性工具,对应于权利要求2-10所述的方法中的任何方法的操作;以及
通过所述容器,对应于权利要求12-18所述的方法中的任何方法的操作。
30.如权利要求28-29中任一项所述的主机计算系统,其中,所述主机计算系统被进一步配置成,通过所述AVS,执行对应于权利要求19-24所述的方法中的任何方法的操作。
31.一种非暂时性计算机可读介质(1190),存储用于配置有运行时环境(430,1120)的主机计算系统(410,710,1100)的软件完整性工具(1150)的软件代码,所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141),其中,由所述主机计算系统的处理电路(1160)对所述软件代码的执行将所述软件完整性工具配置成执行对应于权利要求1-10所述的方法中的任何方法的操作。
32.一种计算机程序产品(1195),包括用于配置有运行时环境(430,1120)的主机计算系统(410,710,1100)的软件完整性工具(1150)的软件代码,所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141),其中,由所述主机计算系统的处理电路(1160)对所述软件代码的执行将所述软件完整性工具配置成执行对应于权利要求1-10所述的方法中的任何方法的操作。
33.一种非暂时性计算机可读介质(1190),存储用于包含应用(722,1142)的容器(440,720,1141)的计算机可执行软件代码,其中,由主机计算系统(410,710,1100)的处理电路(1160)对所述软件代码的执行将所述容器配置成执行对应于权利要求11-18所述的方法中的任何方法的操作。
34.一种计算机程序产品(1195),包括用于包含应用(722,1142)的容器(440,720,1141)的计算机可执行软件代码,其中,由主机计算系统(410,710,1100)的处理电路(1160)对所述软件代码的执行将所述容器配置成执行对应于权利要求11-18所述的方法中的任何方法的操作。
35.一种与配置有运行时环境(430,1120)的主机计算系统(410,710,1100)相关联的证明核实系统AVS(750,1155),所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141),所述AVS包括:
存储计算机可执行指令的存储器(1190);以及
被配置成执行所述指令的处理电路(1160),其中,所述指令的执行将所述AVS配置成:
从所述主机计算系统的软件完整性工具(1150)接收下列项:
在所述运行时环境中被实例化的容器的容器定位器标签的表示,和
所述软件完整性工具对与所述容器相关联的文件系统所执行的测量的结果;
基于检测到所述容器定位器标签的所述表示与先前接收到的所述容器定位器标签的表示之间的匹配,基于所述测量的所述结果来执行与所述容器相关联的所述文件系统的核实;
向所述容器发送证明结果,所述证明结果指示所述AVS是否核实了与所述容器相关联的所述文件系统。
36.如权利要求35所述的AVS,其中,所述指令的执行进一步将所述AVS配置成执行对应于权利要求20-24所述的方法中的任何方法的操作。
37.一种与配置有运行时环境(430,1120)的主机计算系统(410,710,1100)相关联的证明核实系统AVS(750,1155),所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141),所述AVS被配置成:
从所述主机计算系统的软件完整性工具(1150)接收下列项:
在所述运行时环境中被实例化的容器的容器定位器标签的表示,和
所述软件完整性工具对与所述容器相关联的文件系统所执行的测量的结果;
基于检测到所述容器定位器标签的所述表示与先前接收到的所述容器定位器标签的表示之间的匹配,基于所述测量的所述结果来执行与所述容器相关联的所述文件系统的核实;
向所述容器发送证明结果,所述证明结果指示所述AVS是否核实了与所述容器相关联的所述文件系统。
38.如权利要求37所述的AVS,被进一步配置成执行对应于权利要求20-24所述的方法中的任何方法的操作。
39.一种存储计算机可执行指令的非暂时性计算机可读介质(1190),所述计算机可执行指令当由与配置有运行时环境(430,1120)的主机计算系统(410,710,1100)相关联的证明核实系统AVS(750,1155)的处理电路(1160)执行时,将所述AVS配置成执行对应于权利要求19-24所述的方法中的任何方法的操作,所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141)。
40.一种包括计算机可执行指令的计算机程序产品(1195),所述计算机可执行指令当由与配置有运行时环境(430,1120)的主机计算系统(410,710,1100)相关联的证明核实系统AVS(750,1155)的处理电路(1160)执行时,将所述AVS配置成执行对应于权利要求19-24所述的方法中的任何方法的操作,所述运行时环境被布置成执行包含应用(722,1142)的容器(440,720,1141)。
CN202280096436.8A 2022-05-26 2022-10-28 主机计算系统对容器的核实 Pending CN119318139A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US202263346163P 2022-05-26 2022-05-26
US63/346163 2022-05-26
PCT/EP2022/080206 WO2023227233A1 (en) 2022-05-26 2022-10-28 Verification of containers by host computing system

Publications (1)

Publication Number Publication Date
CN119318139A true CN119318139A (zh) 2025-01-14

Family

ID=84360940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202280096436.8A Pending CN119318139A (zh) 2022-05-26 2022-10-28 主机计算系统对容器的核实

Country Status (5)

Country Link
US (1) US20250258692A1 (zh)
EP (1) EP4533768A1 (zh)
CN (1) CN119318139A (zh)
MX (1) MX2024014154A (zh)
WO (1) WO2023227233A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2025149153A1 (en) * 2024-01-11 2025-07-17 Telefonaktiebolaget Lm Ericsson (Publ) Verification of containers based on comparative measurements

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10911451B2 (en) * 2017-01-24 2021-02-02 Microsoft Technology Licensing, Llc Cross-platform enclave data sealing
US10372945B2 (en) * 2017-01-24 2019-08-06 Microsoft Technology Licensing, Llc Cross-platform enclave identity
US11017092B2 (en) * 2018-09-27 2021-05-25 Intel Corporation Technologies for fast launch of trusted containers
WO2020231952A1 (en) * 2019-05-10 2020-11-19 Intel Corporation Container-first architecture

Also Published As

Publication number Publication date
US20250258692A1 (en) 2025-08-14
WO2023227233A1 (en) 2023-11-30
EP4533768A1 (en) 2025-04-09
MX2024014154A (es) 2024-12-06

Similar Documents

Publication Publication Date Title
US11743117B2 (en) Streamlined onboarding of offloading devices for provider network-managed servers
US12032977B2 (en) Container-first architecture
US11983275B2 (en) Multi-phase secure zero touch provisioning of computing devices
JP7203444B2 (ja) 代替サーバ名を使用する相互トランスポート層セキュリティを選択的に提供すること
US12406054B2 (en) Automated persistent context-aware device provisioning
US12174961B2 (en) Automated ephemeral context-aware device provisioning
CN106134141B (zh) 一种更新网络服务描述器nsd的方法及装置
CN110661647A (zh) 一种生命周期管理方法及装置
TW201643765A (zh) 用於虛擬化網路的可縮放安全架構之技術
WO2020087948A1 (zh) 网络切片模板生成方法、装置、设备及存储介质
US12356252B2 (en) Method and system for auto-commissioning virtualized radio access networks
CN116113923A (zh) 容器集群管理方法及其系统
WO2022266490A1 (en) Systems and methods for virtual network function platform security solutions
CN119318139A (zh) 主机计算系统对容器的核实
US12254339B2 (en) Methods for application deployment across multiple computing domains and devices thereof
US20100274837A1 (en) Systems and methods for updating computer memory and file locations within virtual computing environments
US11847611B2 (en) Orchestrating and automating product deployment flow and lifecycle management
CN110113243A (zh) 一种基于容器技术的用户无感vpn接入方法
US12314730B2 (en) Computer implemented method and distributed computing infrastructure for automated plug and play configuration
WO2025149153A1 (en) Verification of containers based on comparative measurements
WO2023230831A1 (en) Transparent transportation in cloud-to-pc extension framework
US20250131080A1 (en) Management of edge computing network deployments with legacy edge devices
CN112748981B (zh) 虚拟网络功能的软件镜像的处理方法和装置
CN117714443A (zh) 分布式云系统、云站点的开局配置方法、集群及存储介质
HK40040741B (zh) 一种边缘设备的管理方法以及相关装置

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