CN107851032A - 在容器中执行服务 - Google Patents

在容器中执行服务 Download PDF

Info

Publication number
CN107851032A
CN107851032A CN201680042601.6A CN201680042601A CN107851032A CN 107851032 A CN107851032 A CN 107851032A CN 201680042601 A CN201680042601 A CN 201680042601A CN 107851032 A CN107851032 A CN 107851032A
Authority
CN
China
Prior art keywords
container
operating system
system nucleus
exterior section
service
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.)
Granted
Application number
CN201680042601.6A
Other languages
English (en)
Other versions
CN107851032B (zh
Inventor
奈杰尔·爱德华兹
克里斯·I·道尔顿
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.)
Hewlett Packard Enterprise Development LP
Original Assignee
Hewlett Packard Enterprise Development LP
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 Hewlett Packard Enterprise Development LP filed Critical Hewlett Packard Enterprise Development LP
Publication of CN107851032A publication Critical patent/CN107851032A/zh
Application granted granted Critical
Publication of CN107851032B publication Critical patent/CN107851032B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • G06F12/10Address translation
    • G06F12/1009Address translation using page tables, e.g. page table structures
    • 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/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; 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/55Detecting local intrusion or implementing counter-measures
    • G06F21/554Detecting local intrusion or implementing counter-measures involving event detection and direct action
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/545Interprogram communication where tasks reside in different layers, e.g. user- and kernel-space

Landscapes

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

Abstract

示例性实施例涉及在容器中执行服务。本文公开的示例包括:计算装置,其包括用于在内核空间的内部区域中加载操作系统内核的内部部分以及在内核空间的外部区域中加载操作系统内核的外部部分的指令。示例性计算装置可以在用户空间内的容器中执行服务。容器可以与操作系统内核的外部区域通信地耦接,但与操作系统内核的内部部分分开。

Description

在容器中执行服务
背景技术
容器是开发和部署计算机服务的范型。开发人员和运营商重视容器,因为用于运行服务的附属件封装在单个实体内部。
附图说明
以下详细描述参考了附图,其中:
图1是用于在容器中执行服务的示例性计算装置的框图;
图2是用于在容器中执行服务的示例性计算装置的非暂时性机器可读存储介质的框图;
图3是用于在容器中执行服务的示例性系统的框图;
图4是用于在容器中执行服务的示例性系统的框图,其图示了系统中的多个容器;
图5是用于在容器中执行服务的示例性方法的流程图。
具体实施方式
容器是开发和部署计算机服务的范型。开发人员和运营商重视容器,因为用于运行服务的附属件封装在单个实体内部。这使得将服务从开发环境传送到操作环境变得容易。此外,多个容器可以共享物理机器而无冲突,因为库和配置的不同可以封装在每个容器中。容器可以有效地利用资源,并且可能比虚拟机更容易管理,因为每个物理机器可能有单一的操作系统。因此,基于容器的系统可涉及管理员管理的更少的操作系统和更少冗余的过程,因为每个机器只有单个内核和一套操作系统服务(守护进程)。
由于基于容器的系统依赖于遍布于包括单个内核的操作系统的内核的多个机制以及在多个容器中执行的多个进程,其中多个容器在内核上运行,因此验证和保持这些机制的完整性可能是具有挑战性的。例如,仅一个机制中的一个缺陷就可能会危及一些或所有的容器,因为多个容器可以访问相同的文件系统、存储器、贮存器和/或其他机制。攻击者通常以存储器损坏漏洞为目标,以接管内核。例如,攻击者可能重写重要的数据结构,通常是函数指针,以利用存储器损坏缺陷。然后可以更新函数指针以指向攻击者提供的代码。当内核跟踪函数指针时,它可能被诱骗执行攻击者提供的代码,这可能会给攻击者提供不期望的对内核的访问或控制。然后攻击者可以监视和干扰系统上运行的进程和系统上的存储器,这可能危及系统上运行的其他容器。
当前防止此类损害内核的解决方案是在独立的虚拟机中运行容器。这提供了保护,因为每个虚拟机都有其自身的内核,所以一台虚拟机上的内核可以与其他虚拟机的内核分开。然而,每个虚拟机都可以有其自身的内核和其自身的操作系统服务。这样的安排会产生大量的开销,因为它可能需要额外的处理器、存储器和存储资源。此外,除了管理容器、虚拟机以及它们之间的交互之外,系统管理员可能还必须管理多个操作系统实例和各种资源。这使得使用容器的最初理由不能成立。
本文公开的示例通过提供一种高效和安全的体系结构来执行容器中的服务来解决这些技术挑战。示例性计算装置可以在内核空间的内部区域中加载操作系统内核的内部部分并且在内核空间的外部区域中加载操作系统内核的外部部分。可以在用户空间中的容器中执行服务,其中容器与操作系统内核的外部区域通信连接,而与操作系统内核的内部区域分开。以这种方式,本文的示例提供了对内核缺陷的保护,并防止容器脱离隔离机制并损害系统。
现在参考附图,图1描绘了用于在容器中执行服务的示例性计算装置100。计算装置100可以是,例如,云服务器、局域网服务器、网络服务器、主机、移动计算装置、笔记本或台式电脑、智能电视、销售点的装置、可穿戴装置、任何其他合适的电子器件或装置的组合,诸如通过云或因特网连接的执行本文所述的功能的那些。在图1所示的示例中,计算装置100包括处理器110和用指令编码以执行容器中的服务的非暂时性机器可读存储介质120。
处理器110可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器和/或其它适于检索和执行存储在机器可读存储介质120中的指令的硬件装置。处理器110可以提取、解码和执行指令121、122、123和/或其它指令来执行本文所述的程序。作为替代,或者除了检索和执行指令之外,处理器110还可以包括一个或多个电子电路,其包括用于执行一个或多个指令121、122和123的功能的电子组件。
在一个示例中,程序指令121、122、123和/或其它指令可以是可由处理器110执行的以实现本文描述的功能的安装包的一部分。在这种情况下,存储器120可以是便携式介质,如CD、DVD或闪存驱动器,或可以是由计算装置维护的、从其中可下载和安装该安装包的存储器。在另一个示例中,程序指令可以是已经安装在计算装置100上的一个应用或多个应用的一部分。
机器可读存储介质120可以是包含或存储计算装置100可访问的可执行数据的任何电子、磁性、光学或其它物理存储装置。因此,机器可读存储介质120可以是例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、存储装置、光盘等。存储介质120可以是非暂时性存储介质,其中术语“非暂时性”不包含暂时传播信号。存储介质120可以位于计算装置100中和/或位于与计算装置100通信的另一装置中。如下面详细描述的,可使用加载操作系统内核的内部部分的指令121、加载操作系统内核的外部部分的指令122、以及在容器中执行服务的指令123对机器可读存储介质120进行编码。
指令121响应于被处理器110执行,可以在内核空间的内部区域中加载操作系统内核的内部部分。指令122响应于被处理器110执行,可以在内核空间的外部区域中加载操作系统内核的外部部分。操作系统内核可以是构成计算装置100的操作系统的中央核心的计算机程序。操作系统内核可以控制由计算装置100执行的过程、程序和功能。操作系统内核可以管理指令的处理、存储器操作以及与其他组件的通信。
内核空间可以是计算装置100的虚拟存储器的一部分。虚拟存储器可以将程序的虚拟地址映射到计算装置100的计算机存储器(如存储介质120或其它存储装置)中的物理地址中。计算装置100的处理器110可以将计算装置的虚拟存储器分为内核空间和用户空间。例如,可以预留内核空间用于运行操作系统内核、内核扩展和装置驱动器。相较之下,用户空间可以是执行应用和服务的存储器区域。
此外,内核空间可以分为内部区域和外部区域。操作系统内核的内部部分可以被加载在内部区域中,并且操作系统内核的外部部分可以加载在外部区域中。在一些示例中,内部部分可以直接不受限地访问计算装置100的硬件。相较之下,可以将虚拟存储器接口呈现给外部部分,其不能直接访问硬件的特权部分,例如存储器管理单元。内核分区的安全目标是对内核代码和关键数据以及内核控制流的完整性的完整性保证,以及在操作系统内核内的进程之间的信息流控制执行。
例如,操作系统内核的内部部分可以包括存储器管理单元、进程管理单元和特定于体系结构的代码。存储器管理单元可以是管理虚拟存储器并执行虚拟存储器地址到物理存储器地址的转换的硬件单元。进程管理单元可以管理运行在操作系统上的进程的数据结构。特定于体系结构的代码可以是修改现有操作系统内核以实现本文所描述的示例性内核体系结构的自定义指令。内核可以通过提供受限制的API来管理与内核的外部部分的通信,该API可以由任何外部内核组件访问。
在一些示例中,操作系统内核的外部部分可以包括操作系统内核的、不包括在内部部分中的所有其他组件。例如,外部部分可以包括文件系统单元和装置驱动器单元。文件系统单元可以向用户空间程序提供文件的抽象。例如,文件系统单元可以与包括装置驱动器单元的其他外部内核组件通信。装置驱动器单元可以为硬件装置提供接口,这可以使操作系统访问硬件功能。
在一些示例中,内核空间可以被划分为内部区域和外部区域,内部区域加载操作系统内核的内部部分,而外部区域则通过嵌套的页表加载操作系统内核的外部部分。内核的内部部分可以映射在内部页表中,该内部页表可以控制来自内核的外部部分以及内核的外部部分上运行的任何进程的访问。例如,内部部分可能是不可访问的、只读的,或两者的组合。另一方面,外部部分可以映射在外部页表中,该外部页表可以直接映射到物理存储器,但是内部页表和外部页表的嵌套结构控制对内核的内部部分的访问。因此,在一些示例中,如果访问是只读的或无法访问的,则试图通过内核的外部部分编写内核的内部部分可能导致违规。此外,从外部页表到物理存储器的映射可以由内核的内部部分通过内部页表来控制。因此,内核的外部部分及其进程的虚拟存储器到物理存储器的映射可以在内核的内部部分的完全控制下。
需要注意的是,在一些示例中,操作系统内核的内部部分和操作系统内核的外部部分可最初作为单个内核映像加载。然后内核的进程可以被动态地转移到其各自的部分。整个内核可共享相同的代码基数,但从内核的外部部分试图访问特权功能,比如针对内核的内部部分所限制的那些,可能会导致违规。
继续参考图1,指令123响应于被处理器110执行,可以在用户空间中的容器中执行服务。容器可以是单独的用户空间实例,在其中执行进程。用户空间可以是计算装置100的操作系统的存储器区域,在其中执行应用进程。容器可以可通信地耦接到操作系统内核的外部部分,并且容器可以与操作内核的内部部分分开。在一些示例中,容器可以包括内核的外部部分,并且考虑容器的组合结构。在容器中执行的服务可以是能够在容器中虚拟化的任何程序、应用或过程。
如下面关于图2所进一步详细描述的,单个操作系统内核可以包括共享相同基数代码的内部部分和多个外部部分。每个外部部分可以能够促进在容器中执行服务。通过加载多个外部部分,运行一个操作系统内核的计算装置100可以促进多个容器实例,其中每个容器彼此分开。
图3提供了本文所述的体系结构的说明性示例。图3是用于在容器中执行服务的系统300的框图。例如,系统300可以被实施为计算装置100,但也可以是通过网络例如云连接的多个装置的系统。系统300可以包括内核空间310和用户空间320。操作系统内核的内部部分330可以加载在内核空间310的内部区域312中。操作系统内核的外部部分335可以加载在内核空间310的外部区域314中。如上所述,内部区域312可以通过嵌套的页表与外部区域314分开。作为一个例子,操作系统内核的内部部分330可以包括存储器管理单元330A、进程管理单元330B和特定于体系结构的代码330C。类似地,外部部分335可以包括文件系统单元335A和装置驱动器单元335B。
在用户空间320中,服务345C可以在容器340C中执行。如图所示,容器340C可以可通信地耦接到内核的外部部分335。也可以理解,服务345C和外部部分335的组合作为整体可以代表容器340C。容器340C与操作系统内核的内部部分330分开。
现在回过来参考图2,图2描述了用于在容器中执行服务的示例性计算装置的非暂时性机器可读存储介质200。示例性计算装置可以是图1的计算装置100或第二计算装置。例如,示例性装置可以是云服务器、局域网服务器、网络服务器、主机、移动计算装置、笔记本或台式电脑、智能电视、销售点的装置、可穿戴装置、任何其他合适的电子器件或装置的组合,诸如通过云或因特网连接的执行本文所述的功能的那些。非暂时性机器可读存储介质200可以用指令编码以执行容器中的服务。
示例性计算装置也可以包括处理器,该处理器可以是一个或多个中央处理单元(CPU)、基于半导体的微处理器和/或其它适于检索和执行存储在机器可读存储介质200中的指令的硬件装置。处理器可以提取、解码和执行指令210、220、230、240和/或其它指令来执行本文所述的程序。
加载操作系统内核的内部部分的指令210可以类似于计算装置100的指令121,并且可以在内核空间的内部区域中加载操作系统内核的内部部分。操作系统内核的外部部分的指令220可以类似于计算装置100的指令122。此外,指令220可以包括加载外部部分的指令221和加载第二外部部分的指令222。指令221和指令222可以分别在内核空间的外部区域中加载操作系统内核的外部部分和第二外部部分。
如上所述,可以加载操作系统内核的多个外部部分与内核的单个内部部分。在图2的示例中,内核的外部部分和内核的第二外部部分都可以有其自身的外部页表。例如,外部部分和第二外部部分可以共用存储器,并且可以被标记为写时拷贝。如果一个外部部分尝试更新被标记为写时拷贝的一部分存储器,则操作系统内核通过加载在内核的内部部分中的存储器管理单元,可以为内核的该外部部分分配一块新的物理存储器,以便其写入其自身的私有副本,并且对内核的其他外部部分没有影响。
继续参考图2,容器指令230可类似于计算装置100的指令123。此外,指令230可以包括在容器中执行服务的指令231,和在第二容器中执行第二服务的指令232。指令231可以在用户空间中的容器中执行服务,其中容器可以可通信地耦接到操作系统内核的外部部分,并且容器可以与操作内核的内部部分分开。指令232可以在用户空间中的第二容器中执行第二服务,其中第二容器可以可通信地耦接到操作系统内核的第二外部部分,并且第二容器可以与操作内核的内部部分分开。
图3提供了由图2的示例性计算装置实施的体系结构的说明性示例。例如,指令210可以在内核空间310的内部区域312中加载操作系统内核的内部部分330。指令221可以在内核空间310的外部区域314中加载操作系统内核的外部部分335。指令231可以在容器340C中执行服务345C,容器340C可通信地耦接到操作系统内核的外部部分335。此外,指令222可以在内核空间310的外部区域314中加载操作系统内核的第二外部部分。操作系统内核的第二外部部分可以与外部部分335包括相同的物理存储器,并且可以包括相同的单元和进程。第二容器,如容器340B可以允许执行第二服务345B。第二容器340B可以与操作系统内核的第二外部部分可通信地耦接,并且可以与内部部分330分开。
在一些示例中,容器340C和第二容器340B可以彼此隔开。在如图3所示的示例中,系统300也可以包括第三容器340A,第三容器340A也可以与其他容器隔开。容器可以通过使用地址空间来隔开。例如,每个容器可以包括独立的地址空间。例如,多个容器可以映射到相同的基数代码,但被标记为写时拷贝。如果容器的进程尝试更新被标记为写时拷贝的一部分存储器,则操作系统内核经由加载在内核的内部部分中的存储器管理单元可以为内核的相应的外部部分分配一块新的物理存储器,以使进程写入其自身的私有拷贝,而对其他容器没有影响。
回来参考图2,攻击指令240可以包括检测攻击指令241和补救行为指令242。检测攻击指令241响应于被处理器执行,可以检测对容器、服务或操作系统内核的外部部分的攻击。攻击可以是破坏、暴露、更改、禁用、窃取、危害或以其他方式获取未经授权的访问或使用计算资产的任何企图。例如,检测攻击指令241可以检测对容器体系结构本身的攻击、对容器中运行的进程的攻击或对操作系统内核的外部部分的攻击。
补救行为指令242相应于被处理器执行,可以对受攻击的容器、服务或操作系统内核的外部部分采取补救行为。例如,可以只对系统中作为被攻击的目标以及受攻击影响的单元采取补救行为。对攻击的补救行为可以包括识别恶意行为、记录有关此行为的信息、试图阻止它、报告它和/或响应攻击的行为。以这种方式,第二容器、第二服务和操作系统内核的第二外部部分不受影响。
图4提供了本文描述的体系结构的隔离机制和存储介质200的攻击指令240的操作的说明性示例。图4描绘用于在容器中执行服务的系统400,其示出了系统中的多个容器。例如,系统400可以被实施为计算装置200,但也可以是通过网络例如云连接的多个装置的系统。系统400可以包括内核空间410和用户空间420。操作系统内核的内部部分430可以加载在内核空间410的内部区域中。操作系统内核的多个外部部分435可以加载在内核空间410的外部区域中。
多个容器440可以促进多个服务的执行。例如,服务可以在用户空间420中的每个容器440中执行。每个容器440可以包括操作系统内核的外部部分和用户空间中的服务。容器440也可以包括用户代码和数据。每个容器440可以包括相同的基数代码,其可以被标记为写时拷贝。作为结果,试图改变内核存储器可能导致创建物理存储器的新的拷贝以考虑变化。
在如本文所述的那些示例的一些示例中,由容器440访问不在其页表中的或用错误的许可访问物理存储器或将未经授权的代码从用户空间420注入到内核空间410的任何企图460可能被捕获到操作系统内核的内部部分430中,因为对于每个容器440,用户空间420和内核空间的外部区域可具有单独的上一级页表。因此,处理器可以在用户空间进程与来自单独的容器的、由操作系统内核处理的数据之间强制执行隔离。用于内核空间的外部部分的存储器在容器内可以是不变的,仅在内核空间的内部区域内是可变化的。
此外,在其中存储器被标记为写时拷贝的一些示例中,在攻击期间对函数指针的更新将在操作系统内核的其中攻击者运行的外部部分435中进行,而不针对操作系统内核的任何其他外部部分。因此,其他外部部分的完整性可以不受到影响。在可能的情况下,任何敏感的内核数据结构(如控制进程特权的那些)都可以是操作系统内核的外部部分中的只读数据结构。
上述意味着攻击者可能无法监控或更改系统上使用操作系统内核的不同外部部分的任何其他进程或容器的存储器。对操作系统内核的外部部分,物理存储器可由于嵌套的页表而无法访问。试图访问该存储器可导致如上所述的捕获,所以攻击将被检测并可补救。类似地,任何试图更新对于内核空间的外部区域来说是只读的存储器以升级特权或类似行为将通过捕获被检测到,且攻击可以被补救。
现在参考图5,示例性方法500图示说明了在容器中执行服务。尽管参照图2、图3和图4中所示的示例在以下描述了方法500的执行,但执行该方法的其他适当装置应该是显而易见的,包括图1的示例。方法500可以以存储在机器可读存储介质上的可执行指令的形式和/或以电子电路的形式实现。
在操作510中,操作系统内核的内部部分可以加载在内核空间的内部区域中。例如,图2的计算装置的指令210可以在图3的系统300中的内核空间310的内部区域312中加载操作系统内核的内部部分330。如本文之前所述,在一些示例中,内部部分可以直接不受限制地访问计算装置100的硬件。在一些示例中,操作系统内核的内部部分可以包括存储器管理单元、进程管理单元以及特定于体系结构的代码。
在操作520中,操作系统内核的多个外部部分可以加载在内核空间的外部区域中。例如,图2的计算装置的指令221可以在图3的系统300中的内核空间310的外部区域314中加载操作系统内核的外部部分335。图2的计算装置的指令222也可以在内核空间310的内部区域312中加载操作系统内核的第二外部部分。操作系统内核的每个外部部分可以包括操作系统内核的不包括在内部部分中的所有其他组件,并且每个外部部分可以有利于独立容器执行服务。
在操作530中,可以在用户空间中的多个容器中的一容器中执行服务。例如,图2的计算装置的指令231可以在图3的系统300内的用户空间320中的容器340C中执行服务345C。容器可以可通信地耦接到操作系统内核的外部部分,并且容器可以与操作内核的内部部分分开。在一些示例中,容器可以包括内核的外部部分。在容器中执行的服务可以是可以在容器中虚拟化的任何程序、应用或进程。
在操作540中,可以检测对容器、服务或操作系统内核的外部部分的攻击。例如,图2的计算装置的指令241可以检测对服务345C、容器340C或图3的系统300的操作系统内核的外部部分335的攻击。如前所述,攻击可以是破坏、暴露、更改、禁用、窃取、危害或以其他方式获取未经授权的访问或使用计算资产的任何企图。例如,可以检测对容器体系结构本身的攻击、对容器中运行的进程的攻击或对操作系统内核的外部部分的攻击。
在操作550中,响应于在操作540中检测到攻击,可以对被攻击的容器、服务或操作系统内核的外部部分采取补救行为。例如,图2的计算装置的指令242可以对服务345C、容器340C或图3的系统300中的操作系统内核的外部部分335采取补救行为。对攻击的补救行为可以包括识别恶意活动、记录有关此活动的信息、试图阻止它和/或报告它。如图4中所示,对容器440、容器440中运行的服务或内核中的与容器440相关联的外部部分435的攻击460可以被检测到。可以对受攻击组件采取补救行为,受攻击组件在容器440内被隔离且不影响系统中的内核的内部部分430或其他容器。
前述公开内容描述了用于在容器中执行服务的数个示例性实施例。所公开的示例可包括系统、装置、计算机可读存储介质和在容器中执行服务的方法。为了解释的目的,参照图1-5中所示的组件来描述某些示例。然而,所示组件的功能可能重叠,并且可能存在于较少或更大数量的要素和组件中。所示要素的全部或部分功能可以共存或分布在几个地理上分散的位置上。此外,所公开的示例可以在各种环境中实施,并且不限于所示的实施方式。
此外,所描述的与图1-5有关的操作序列是示例,而不意图是限制性的。可以使用或可以改变额外的或较少的操作或操作组合,而不偏离所公开的示例的范围。此外,与公开示例一致的实施方式不需要按任何特定顺序执行操作序列。因此,本公开仅仅阐述了实施方式的可能示例,并且可以对所描述的示例进行许多变更和修改。所有这些修改和变更都旨在包括在本公开的范围内,并受权利要求的保护。

Claims (15)

1.一种计算装置,包括处理器和利用所述处理器可执行的指令编码的非暂时性机器可读存储介质,所述非暂时性存储介质包括用于以下操作的指令:
在内核空间的内部区域中加载操作系统内核的内部部分;
在所述内核空间的外部区域中加载所述操作系统内核的外部部分;以及
在用户空间内的容器中执行服务,其中所述容器与所述操作系统内核的所述外部部分通信地耦接,并且其中所述容器与所述操作系统内核的所述内部部分分开。
2.如权利要求1所述的计算装置,其中所述非暂时性存储介质进一步包括用于以下操作的指令:
在所述内核空间的所述外部区域中加载所述操作系统内核的第二外部部分;以及
在所述用户空间内的第二容器中执行第二服务,其中所述第二容器与所述操作系统内核的所述第二外部部分通信地耦接,并且其中所述第二容器与所述操作系统内核的所述内部部分分开。
3.如权利要求2所述的计算装置,其中所述容器与所述第二容器分离。
4.如权利要求1所述的计算装置,其中所述操作系统内核的所述内部部分包括存储器管理单元、进程管理单元和特定于体系结构的代码。
5.如权利要求1所述的计算装置,其中所述容器和所述第二容器均包括独立的地址空间。
6.如权利要求1所述的计算装置,其中所述操作系统内核的所述外部部分和所述操作系统内核的所述第二外部部分均包括文件系统单元和装置驱动器单元。
7.如权利要求1所述的计算装置,其中所述内核空间的所述外部区域和所述内核空间的所述内部区域通过嵌套的页表分开。
8.如权利要求1所述的计算装置,其中所述非暂时性存储介质进一步包括用于以下操作的指令:响应于检测到对所述容器、所述服务或所述操作系统内核的所述外部部分的攻击,对受攻击的容器、服务或所述操作系统内核的外部部分采取补救行为,其中所述第二容器、第二服务和所述操作系统内核的第二外部部分不受影响。
9.一种系统,包括处理器,所述处理器用于:
在内核空间的内部区域中加载操作系统内核的内部部分;
在所述内核空间的外部区域中加载所述操作系统内核的一组外部部分;
在用户空间内的一组容器中的容器中执行服务,其中每个容器与所述操作系统内核的所述一组外部部分中的外部部分通信地耦接,并且其中每个容器与所述操作系统内核的所述内部部分分离,并且每个容器与所述一组容器中的所有其他容器分开。
10.如权利要求9所述的系统,其中所述内核空间的所述外部区域和所述内核空间的所述内部区域通过嵌套的页表分开。
11.如权利要求9所述的系统,其中:
所述操作系统内核的所述内部部分包括存储器管理单元、进程管理单元和特定于体系结构的代码;并且
所述操作系统内核的所述一组外部部分中的每个外部部分包括文件系统单元和装置驱动器单元。
12.如权利要求9所述的系统,其中处理器用于:响应于检测到对容器、对应的服务或所述操作系统内核的对应的外部部分的攻击,对受攻击的容器、服务或所述操作系统内核的外部部分采取补救行为,其中其他的容器、服务和所述操作系统内核的外部部分不受影响。
13.一种方法,包括:
通过计算装置在内核空间的内部区域中加载操作系统内核的内部部分;
通过所述计算装置在所述内核空间的外部区域中加载所述操作系统内核的一组外部部分;
通过所述计算装置在用户空间内的一组容器中的容器中执行服务,其中每个容器与所述操作系统内核的所述一组外部部分中的外部部分通信地耦接,并且其中每个容器与所述操作系统内核的所述内部部分分开,并且每个容器与所述一组容器中的所有其他容器分离;以及
响应于检测到对容器、对应的服务或所述操作系统内核的对应的外部部分的攻击,通过所述计算装置对受攻击的容器、服务或所述操作系统内核的外部部分采取补救行为,其中其他的容器、服务和所述操作系统内核的外部部分不受影响。
14.如权利要求13所述的方法,其中所述内核空间的所述外部区域和所述内核空间的所述内部区域通过嵌套的页表分开。
15.如权利要求13所述的方法,其中:
所述操作系统内核的所述内部部分包括存储器管理单元、进程管理单元和特定于体系结构的代码;并且
所述操作系统内核的所述一组外部部分中的每个外部部分包括文件系统单元和装置驱动器单元。
CN201680042601.6A 2016-06-08 2016-06-08 用于在容器中执行服务的计算装置、系统及方法 Active CN107851032B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2016/036366 WO2017213643A1 (en) 2016-06-08 2016-06-08 Executing services in containers

Publications (2)

Publication Number Publication Date
CN107851032A true CN107851032A (zh) 2018-03-27
CN107851032B CN107851032B (zh) 2021-04-02

Family

ID=60578024

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680042601.6A Active CN107851032B (zh) 2016-06-08 2016-06-08 用于在容器中执行服务的计算装置、系统及方法

Country Status (4)

Country Link
US (1) US10929148B2 (zh)
EP (1) EP3308274B1 (zh)
CN (1) CN107851032B (zh)
WO (1) WO2017213643A1 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109361606A (zh) * 2018-09-28 2019-02-19 新华三技术有限公司 一种报文处理系统及网络设备
CN112580086A (zh) * 2019-09-27 2021-03-30 杭州海康威视数字技术股份有限公司 配置文件的访问保护方法、装置、设备以及存储介质
US11144638B1 (en) * 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11106516B2 (en) 2019-04-10 2021-08-31 International Business Machines Corporation Selective service-specific controls in a virtualized container environment

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374353B1 (en) * 1998-03-16 2002-04-16 Mitsubishi Denki Kabushiki Kaisha Information processing apparatus method of booting information processing apparatus at a high speed
US8914785B2 (en) * 2012-07-30 2014-12-16 International Business Machines Corporation Providing virtual appliance system firmware images
CN104573507A (zh) * 2015-02-05 2015-04-29 浪潮电子信息产业股份有限公司 一种安全容器及其设计方法
US20150178497A1 (en) * 2013-12-20 2015-06-25 Bitdefender IPR Management Ltd. Strongly Isolated Malware Scanning Using Secure Virtual Containers

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6963960B2 (en) 2003-03-25 2005-11-08 Microsoft Corporation System and method for kernel mode memory management having movable kernel objects
US8209704B1 (en) 2008-03-28 2012-06-26 Emc Corporation Techniques for user space and kernel space communication
US8578483B2 (en) * 2008-07-31 2013-11-05 Carnegie Mellon University Systems and methods for preventing unauthorized modification of an operating system
US9323921B2 (en) * 2010-07-13 2016-04-26 Microsoft Technology Licensing, Llc Ultra-low cost sandboxing for application appliances
US8973136B2 (en) 2011-08-02 2015-03-03 Quick Heal Technologies Private Limited System and method for protecting computer systems from malware attacks
WO2014063126A1 (en) * 2012-10-19 2014-04-24 Mcafee, Inc. Data loss prevention for mobile computing devices
US20180189479A1 (en) * 2013-05-08 2018-07-05 Mads DAM Verification of security domain separation
US10324863B2 (en) * 2013-06-24 2019-06-18 Intel Corporation Protected memory view for nested page table access by virtual machine guests
US9794275B1 (en) * 2013-06-28 2017-10-17 Symantec Corporation Lightweight replicas for securing cloud-based services
US20160212012A1 (en) * 2013-08-30 2016-07-21 Clearpath Networks, Inc. System and method of network functions virtualization of network services within and across clouds
EA201301283A1 (ru) * 2013-11-26 2015-05-29 Общество С Ограниченной Ответственностью "Параллелз" Способ целевой виртуализации ресурсов в контейнере
US9507566B2 (en) * 2014-04-01 2016-11-29 Oracle International Corporation Entropy generation for a distributed computing system
WO2016081867A1 (en) * 2014-11-20 2016-05-26 Interdigital Patent Holdings, Inc. Providing security to computing systems
US20160378545A1 (en) * 2015-05-10 2016-12-29 Apl Software Inc. Methods and architecture for enhanced computer performance
US9934073B2 (en) * 2015-10-23 2018-04-03 Futurewei Technologies, Inc. Extension of resource constraints for service-defined containers
US10146936B1 (en) * 2015-11-12 2018-12-04 EMC IP Holding Company LLC Intrusion detection for storage resources provisioned to containers in multi-tenant environments
US9778944B1 (en) * 2015-11-13 2017-10-03 Juniper Networks, Inc. Managed reboot of a multi-service network device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6374353B1 (en) * 1998-03-16 2002-04-16 Mitsubishi Denki Kabushiki Kaisha Information processing apparatus method of booting information processing apparatus at a high speed
US8914785B2 (en) * 2012-07-30 2014-12-16 International Business Machines Corporation Providing virtual appliance system firmware images
US20150178497A1 (en) * 2013-12-20 2015-06-25 Bitdefender IPR Management Ltd. Strongly Isolated Malware Scanning Using Secure Virtual Containers
CN104573507A (zh) * 2015-02-05 2015-04-29 浪潮电子信息产业股份有限公司 一种安全容器及其设计方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11144638B1 (en) * 2018-01-18 2021-10-12 Pure Storage, Inc. Method for storage system detection and alerting on potential malicious action
CN109361606A (zh) * 2018-09-28 2019-02-19 新华三技术有限公司 一种报文处理系统及网络设备
CN109361606B (zh) * 2018-09-28 2021-05-25 新华三技术有限公司 一种报文处理系统及网络设备
CN112580086A (zh) * 2019-09-27 2021-03-30 杭州海康威视数字技术股份有限公司 配置文件的访问保护方法、装置、设备以及存储介质

Also Published As

Publication number Publication date
EP3308274A1 (en) 2018-04-18
EP3308274B1 (en) 2021-08-04
US10929148B2 (en) 2021-02-23
WO2017213643A1 (en) 2017-12-14
CN107851032B (zh) 2021-04-02
EP3308274A4 (en) 2018-06-27
US20190220287A1 (en) 2019-07-18

Similar Documents

Publication Publication Date Title
US10810309B2 (en) Method and system for detecting kernel corruption exploits
CN111651778B (zh) 基于risc-v指令架构的物理内存隔离方法
CN101266635B (zh) 用于控制对关键存储器区域的访问的方法和系统
CN109643290B (zh) 用于具用扩展分段的面向对象的存储器管理的技术
EP3047419B1 (en) Virtual secure mode for virtual machines
US9507941B2 (en) Method of verifying integrity of electronic device, storage medium, and electronic device
CN1991808B (zh) 用于访客访问存储器映射的设备的方法和装置
CN101201749B (zh) 能够存储代码和数据的方法和装置
CN105393255A (zh) 用于虚拟机中的恶意软件检测的过程评估
CN104011733B (zh) 在系统预引导期间具有改进的只读存储器锁定的安全数据保护
CN104769604A (zh) 实时模块保护
US10545851B2 (en) Breakpoint insertion into kernel pages
CN103858129A (zh) 用于在系统管理程序环境中进行内核rootkit保护的系统和方法
US10114948B2 (en) Hypervisor-based buffer overflow detection and prevention
US10380336B2 (en) Information-processing device, information-processing method, and recording medium that block intrusion of malicious program to kernel
CN107851032A (zh) 在容器中执行服务
CN103262092A (zh) 基于储存驱动器的防恶意软件方法和装置
CN103793651A (zh) 基于Xen虚拟化的内核完整性检测方法
US11036852B2 (en) System and method for software diversification
KR102494167B1 (ko) 메모리의 커널영역을 보호하기 위한 전자장치 및 방법
TW201333748A (zh) 資訊處理空間管理方法、外部裝置及資訊處理裝置
CN111373405B (zh) 用于防止计算设备中比特翻转攻击的计算机实现方法
US11556645B2 (en) Monitoring control-flow integrity
US20240095363A1 (en) Method, device, and electronic apparatus for securely passing data
EP4343593A1 (en) Method, device, and electronic apparatus for securely passing data

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
GR01 Patent grant
GR01 Patent grant