CN117693737A - 为容器实例设立子目录和网络接口的过程的保护 - Google Patents
为容器实例设立子目录和网络接口的过程的保护 Download PDFInfo
- Publication number
- CN117693737A CN117693737A CN202280051309.6A CN202280051309A CN117693737A CN 117693737 A CN117693737 A CN 117693737A CN 202280051309 A CN202280051309 A CN 202280051309A CN 117693737 A CN117693737 A CN 117693737A
- Authority
- CN
- China
- Prior art keywords
- container
- directory
- policy
- interface
- container instance
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 65
- 230000002085 persistent effect Effects 0.000 claims abstract description 27
- 238000004590 computer program Methods 0.000 claims description 6
- 230000006399 behavior Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 230000002688 persistence Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000001010 compromised effect Effects 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000004886 process control Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring 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/53—Monitoring 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/188—Virtual file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45579—I/O management, e.g. providing access to device drivers or storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Abstract
一种用于保护为用于提供基于容器的应用的容器实例(31)设立子目录和/或网络接口的过程的方法,所述方法包括:‑生成目录策略(28),所述目录策略包括用于将容器实例(31)的子目录分派到源目录中的子目录的至少一个合并规则,尤其是针对在其中持久存储数据的持久子目录;和/或‑生成接口策略(27),所述接口策略包括用于将容器实例(31)的网络接口分派到所分配的客户计算机(30)的网络接口的至少一个合并规则;‑将容器映像(25)、所分配的配置文件(24)以及目录策略(28)和/或接口策略(27)加载到客户计算机(30)的运行时环境(33)中;‑在容器实例(31)的启动过程之前,检查:由容器映像(25)针对容器实例(31)所规定的在源目录中的所有子目录是否能根据目录策略(28)来合并,和/或由配置文件(24)所规定的所有网络接口是否能根据接口(27)策略来合并,而不违反已经存在的其他容器实例(32)的子目录和网络接口的合并选项;而且‑只有在检查结果为肯定的情况下,才从客户计算机(30)中的容器映像(25)生成(S5)容器实例(31)。
Description
技术领域
本发明涉及一种用于保护为容器实例设立子目录和/或网络接口的过程的方法,其中,通过分派在所分配的物理数据存储器的源目录中的子目录来提供该容器实例的子目录,并且通过分派所分配的客户计算机的相对应的虚拟或物理网络接口来提供该容器实例的网络接口。
背景技术
容器虚拟化是一种方法,在该方法中,操作系统的多个实例可以彼此隔离地使用客户计算机的操作系统内核。因此,软件容器,以下简称为容器(Container),构成了客户计算机(也称为主机系统)上的运行时环境的一种轻量级虚拟化,并且将在容器实例中运行的软件应用程序与底层主机系统隔离。软件应用程序,以下简称为应用程序,现在借助于容器在许多领域中实现,例如工业自动化和过程控制,但也用于运输系统或车辆中的应用。
为了能够在主机系统上启动容器实例,需要容器映像,该容器映像除了应用软件本身之外也包含应用软件所需的二进制程序和库。为了提供所需的二进制程序和库,通常使用包含数据包管理器的所谓的基本映像,借助于该数据包管理器,可以在容器映像内安装其他组件。
为了能够在启动时给容器实例分配参数或者能够持久地存储由容器实例生成的数据,在启动这种容器实例时,所谓的“卷(Volumes)”被移交给该容器实例并且被挂载到该容器实例中。“卷”是容器实例中的文件系统的子目录,该子目录由底层操作系统挂载到容器实例中,并且数据持久地、即永久地存储或被存储在该子目录中。
借助于这种持久子目录,对于容器实例,例如将用于网络服务的安全运行的密码网络协议的密钥、证书的私钥、用于容器实例的配置设置或者底层设备或整个运行时环境的环境信息移交给容器实例,并且在容器实例中运行的应用程序借此也被参数化。
在创建容器映像时,并不知道底层系统的哪些源目录作为持久子目录被挂载到容器实例中。然而,为了移交启动参数,可以为容器映像的创建者定义目标目录,具有移交参数的持久子目录应该被挂载到该目标目录中。
现在,如果其他的、未经授权的容器实例未经授权地访问子目录,尤其是持久子目录,则会出现问题,原因在于:经此,例如针对由其他容器映像形成的容器实例所提供的密钥材料被截获。在合并旨在被分派给容器实例的网络接口时,会出现类似的问题。由于网络接口的未经授权的共享使用,其他容器实例之间的流量可能被拦截。在容器实例正在运行的情况下,网络接口的这种分派直接通过容器运行时环境的命令来进行,例如通过Docker命令中的特殊参数的定义或者借助于Docker-Compose文件。在这种情况下,容器映像的创建者不知道哪些其他容器映像会连接到相同的网络中或者连接到相同的网络接口上。因此,恶意容器实例可以连接到被分派给另一容器实例的网络接口上,并且通过这种方式来窥探数据。
发明内容
因此,本发明的任务在于增加对容器实例、尤其是对被分派给该容器实例的文件系统和被分派给该容器实例的网络接口的未经授权的访问和未经授权的修改或窥探的难度。
该任务通过在独立权利要求中所描述的措施来解决。在从属权利要求中呈现了本发明的有利的扩展方案。
根据第一方面,本发明涉及一种用于保护设立过程的方法,其中,通过分派在所分配的物理数据存储器的源目录中的至少一个子目录来提供容器实例的至少一个子目录,并且通过分派所分配的客户计算机的至少一个相对应的虚拟或物理网络接口来提供该容器实例的至少一个网络接口,该方法包括以下步骤:
-生成目录策略,该目录策略包括用于将容器实例的子目录分派到源目录中的子目录的至少一个合并规则,尤其是针对在其中持久存储数据的持久子目录;
-生成接口策略,该接口策略包括用于将容器实例的网络接口分派到所分配的客户计算机的虚拟和/或物理网络接口的至少一个合并规则;
-将容器映像、所分配的配置文件以及该目录策略和该接口策略加载到客户计算机的运行时环境中;
-在容器实例的启动过程之前,检查:由容器映像针对容器实例所规定的在源目录中的所有子目录是否能根据目录策略来合并,以及由配置文件所规定的所有网络接口是否能根据接口策略来合并,而不违反其他容器实例的子目录和网络接口的已经存在的合并选项;而且
-只有在检查结果为肯定的情况下,才从客户计算机中的容器映像生成容器实例。
为了便于理解,在各个特征中,“至少一个”和/或“至少一个网络接口”已被“子目录”和/或“网络接口”替代。因此,权利要求中的特征不仅适用于单个子目录和/或一个网络策略,而且分别适用于多个子目录和网络接口。这适用于说明书以及所有权利要求。
通过在启动容器实例之前,对照目录策略和接口策略来检查配置文件中的配置说明以及在容器映像中规定的对目录和网络接口的要求,可以标识容器实例的安全关键的子目录和网络接口。尤其是,检查相同的子目录或网络接口是否以及以怎样的合并选项已经合并到客户计算机上的其他容器实例中。如果由于已经合并到其他容器实例中,目录策略和网络策略不再能实施,则这导致检查结果为否定。只有当不违反目录策略和接口策略中预先规定的合并选项时,才存在肯定的检查结果,并且生成容器实例。因此,在客户计算机上只存在经过检查的并且安全的容器实例。目录策略尤其包括用于持久子目录的合并规则。这些合并规则特别需要保护,因为它们用于引入应用程序的安全相关的数据或配置设置,如密码密钥,或者用于存储通过该应用程序生成的持久数据。
该至少一个网络接口可以是在客户计算机上生成虚拟网络的虚拟网络接口,或者是客户计算机的从客户计算机出发传输数据的物理网络接口。
在一个有利的实施方式中,目录策略和接口策略由配置文件的创建者创建并且链接到配置文件。
由此,配置文件的创建者可以将子目录和网络接口的合并规则指定到容器实例中。
在一个有利的实施方式中,目录策略由容器映像的创建者创建并且链接到容器映像。
由此,不仅运行时环境的操作者并且因此客户计算机的操作者,而且容器映像的创建者,都可以规定子目录和网络接口的合并规则。
在一个有利的实施方式中,目录策略包括关于子目录的元信息,并且该元信息以映像标签(也称为“image tag”)的形式被分派给容器映像。
这使得能够将目录策略简单地耦合到容器映像。
在一个有利的实施方式中,目录策略和/或接口策略规定:源目录中的子目录和/或网络接口是仅允许被单个容器实例合并,还是允许被由相同容器映像形成的多个容器实例或者被由不同容器映像形成的多个容器实例合并。
因此,可以根据从中创建了进行访问的容器实例的容器映像,指定对源目录中的子目录的访问。
在一个有利的实施方式中,目录策略规定了对子目录的至少一个允许的访问选项。
因此,通过目录策略来寄存:源目录仅对于容器实例本身来说是否应该专门作为目标目录被合并到容器实例中,是否允许针对相同的实例类型、即从相同的容器映像中生成的容器实例来挂载该源目录,以及其他实例类型、即已经由另一容器映像生成的容器实例是否允许被合并并且以怎样的访问选项来被合并。访问选项例如是只读、只写或读和写访问,或者也是关于挂载到子目录中的文件的可执行性的限制,等等。术语“合并”、“挂载”和“设立”在说明书中用作同义词。
在一个有利的实施方式中,目录策略和/或接口策略根据容器映像的签名来规定合并规则。
因此,可以根据容器映像的创建者来引入和实施合并规则。
在一个有利的实施方式中,目录策略和/或接口策略包括对具有引用至少一个环境变量的指令的配置文件的引用,并且该环境变量包括容器实例中的子目录的指示。
可以用环境变量来动态地指示目标目录。在此,在目录策略中,容器实例的子目录没有被明确提及,而是由变量来指示,该变量的值指示所要合并的子目录。
在一个有利的实施方式中,接口策略包括对具有网络接口的允许属性的配置文件的引用。
在一个有利的实施方式中,针对容器实例的运行时环境生成中央合并数据库,并且该合并数据库包括从中生成了容器实例的容器映像的名称和版本、容器实例中的目标目录、所分配的物理数据存储器的源目录,和目标目录的允许的合并选项和访问选项,以及容器实例的网络接口的指示和合并选项。
在一个有利的实施方式中,该合并数据库被持久存储。
在一个有利的实施方式中,依据该合并数据库,检查:针对子目录所请求的源目录或者该源目录的上级或下级目录和/或所请求的网络接口当前是否已经针对另一容器映像被合并或者是否曾经针对另一种类型的容器映像被合并。
通过该合并数据库,可以提供并行存在的、但也在较早时间生成的容器实例及其合并的子目录和网络接口,用于利用目录策略和/或接口策略来进行检查。
在一个有利的实施方式中,在成功合并子目录和/或网络接口之后,容器映像的名称和版本、容器实例中的目标目录、所分配的物理数据存储器的源目录、目标目录的允许的合并选项和访问选项,和/或合并的网络接口以及网络接口的合并选项,被传送给该合并数据库并且被存储在那里。
因此,在每个成功的设立过程之后,该合并数据库利用当前设立的子目录和网络接口来被自动更新。
在一个有利的实施方式中,如果在检查已经由其他容器映像和/或利用其他配置文件形成的容器实例时,对照目录策略,发现该目录策略不包含所要合并的子目录的允许的合并选项,或者所要合并的子目录是相对于在该目录策略中未提及的子目录的上级或下级目录,则不将子目录合并到容器实例中,和/或其中,如果在检查已经由其他容器映像和/或利用其他配置文件形成的容器实例时,对照接口策略,发现该接口策略不包含所要合并的网络接口的允许的合并选项,则不合并网络接口。
因此防止了:不符合目录策略或网络策略的子目录或网络接口被合并到容器实例中。
本发明的第二方面涉及一种用于保护设立过程的装置,其中,通过分派在所分配的物理数据存储器的源目录中的至少一个子目录来提供容器实例的至少一个子目录,并且通过分派所分配的客户计算机的至少一个相对应的虚拟或物理网络接口来提供该容器实例的至少一个网络接口,该装置包括:
生成单元,该生成单元被设计为:
-生成目录策略,该目录策略包括用于将容器实例的子目录分派到源目录中的子目录的至少一个合并规则,尤其是针对在其中持久存储数据的持久子目录,
-生成接口策略,该接口策略包括用于将容器实例的网络接口分派到所分配的客户计算机的虚拟和/或物理网络接口的至少一个合并规则,
-将容器映像、所分配的配置文件以及该目录策略和该接口策略加载到客户计算机的运行时环境中,
而且该客户计算机被设计为:
-在容器实例的启动过程之前,检查:由容器映像针对容器实例所规定的在源目录中的所有子目录是否能根据目录策略来合并,和/或由配置文件所规定的所有网络接口是否能根据接口策略来合并,而不违反已经存在的其他容器实例的子目录和网络接口的合并选项,而且
-只有在检查结果为肯定的情况下,才从客户计算机中的容器映像生成容器实例。
通过该装置,可以确保网络接口和子目录根据容器实例的固定地指定的合并规则来被合并,并且因此能防止其他容器实例的访问。
本发明的第三方面涉及一种计算机程序产品,该计算机程序产品包括能直接加载到数字计算机的存储器中的非易失性计算机可读介质,其包括程序代码部分,在通过数字计算机来执行这些程序代码部分时,这些程序代码部分促使该数字计算机执行该方法的步骤。
除非在以下描述中另有说明,否则术语“检查”、“生成”、“加载”等优选地涉及改变和/或生成数据和/或将数据转换为其他数据的操作和/或进程和/或处理步骤,其中,这些数据尤其可以被表示或呈现为物理量,例如电脉冲。系统以及在其中尤其是为了物理和虚拟实现而形成的客户计算机、生成设备等等,可以包括一个或多个处理器。
计算机程序产品,诸如计算机程序装置,例如可以作为存储介质,诸如存储卡、USB记忆棒、CD-ROM、DVD,或者也以来自网络中的服务器的可下载文件的形式来被提供或供应。这例如可以在无线通信网络中通过将相对应的文件传输到该计算机程序产品或该计算机程序装置上来实现。
附图说明
在附图中示例性示出了根据本发明的方法和根据本发明的装置的实施例,并且依据以下描述来更详尽地阐述这些实施例。其中:
图1以示意图示出了根据本发明的具有容器实例的客户计算机的实施例;
图2以流程图的形式示出了根据本发明的方法的实施例;和
图3以示意图示出了根据本发明的方法的应用的具有文件系统层的容器映像的实施例。
在所有附图中,相互对应的部分配备有相同的附图标记。
具体实施方式
图1示出了具有硬件资源11和操作系统内核12(也称为内核(Kernel))的客户计算机10。硬件资源11例如是用于执行操作的处理器、数据存储器15或者网络接口17,用于将数据传送给内部或外部网络。在容器虚拟化的情况下,在运行时环境中,操作系统的多个实例可以彼此隔离地使用客户计算机10的操作系统内核12。借助于容器运行时环境,可以管理哪些硬件资源11被分派给容器实例13、14中的进程。容器实例14可以用于运行软件应用程序,其方式是将具有软件应用程序的容器映像加载到操作系统12的这种实例中。依据供应配置文件(下文简称为配置文件),尤其是源目录15的至少一个子目录被分配给容器实例14中的目标目录16中的子目录。以同样的方式,通过配置文件,将来自客户计算机10的硬件资源11中的网络接口17分配给容器实例14的网络接口18。网络接口可以是虚拟的内部接口,或者也可以是真实的外部接口。
为了能够在启动时将参数分配给容器实例14或者能够存储由容器实例生成的数据,在容器实例14启动时,文件系统的子目录,即所谓的“卷”,被移交给容器实例14并且被挂载到该容器实例中。持久子目录是容器实例14中的文件系统的子目录,该子目录由底层操作系统12挂载到容器实例14中,并且数据持久地、即永久地存储或被存储在该子目录中。该文件系统可以物理地布置在客户计算机10上,例如作为硬件资源11的一部分,或者布置在远离客户计算机10或从该客户计算机中转移出来的存储单元中。在Docker运行时环境中,例如借助于所谓的“绑定挂载(Bind-Mounts)”来挂载“卷”。
借助于这种持久子目录,对于容器实例,例如将用于网络服务的安全运行的密码网络协议的密钥、证书的私钥、用于容器实例的配置设置或者底层客户计算机10或整个运行时环境的环境信息移交给容器实例,并且在容器实例中运行的应用程序借此也被参数化。
在创建容器映像时,并不知道客户计算机10的哪些源目录15作为子目录16被挂载到容器实例14中。此外,可能的是:通过配置参数来定义持久化目标,该配置参数通过移交参数来存放或者存放在配置文件内,该配置文件在实例的所挂载的持久目标目录中被提供。
在容器实例14启动时,所要挂载的持久子目录通过相对应的启动参数通过命令行来被移交。替选地,有可能通过配置文件(例如Docker-Compose文件)内的相对应的配置指令,或者作为协调器中的供应信息,将相对应的持久子目录移交给容器实例14。
现在,依据图2更详尽地描述根据本发明的用于保护为用于提供基于容器的应用的容器实例设立子目录和/或网络接口的过程的方法。在此,通过分派在所分配的物理数据存储器的源目录15中的子目录来提供容器实例14的子目录,并且通过分派所分配的客户计算机的相对应的虚拟或物理网络接口来提供容器实例的网络接口。
在第一方法步骤S1中,生成目录策略,该目录策略包括用于将容器实例的子目录分派到源目录中的子目录的至少一个合并规则,尤其是针对在其中持久存储数据的持久子目录。相对应地,在方法步骤S2中,在容器实例中生成接口策略,该接口策略包括用于将容器实例的网络接口分派到所分配的客户计算机的网络接口的至少一个合并规则。尤其是,目录策略规定:容器实例中的哪些目录或文件允许作为持久子目录被移交。在方法步骤S3中,将容器映像、所分配的配置文件以及目录策略和/或接口策略加载到客户计算机的运行时环境中。
例如,目录策略由容器映像的创建者创建,并且链接到容器映像。目录策略包括关于子目录的元信息,并且该元信息以映像标签(也称为“image-tag”)的形式被分派给容器映像。
类似地,在方法步骤S2中,生成接口策略,该接口策略包括用于将容器实例的网络接口分派到所分配的客户计算机的网络接口的至少一个合并规则。
在目录策略中并且在接口策略中规定了:源目录中的子目录以及网络接口是仅允许被单个容器实例合并,还是允许被由相同容器映像形成的多个容器实例或者被由不同容器映像形成的多个容器实例合并。目录策略还规定了所允许的访问选项,该访问选项与对子目录或网络接口的只读、只写或者读和写访问有关。通过目录策略和/或接口策略,根据容器映像的签名来规定合并规则。
换言之,目录策略规定了:目标目录是仅允许由一个容器实例来独占地挂载,还是允许由相同实例类型的所有容器实例(即,由相同容器映像形成)来挂载,还是也允许由其他实例类型的容器实例(即,由其他容器映像形成)例如以只读或写的访问选项来挂载。此外,目录策略和/或接口策略中的限制可以根据容器映像的签名来被定义。尤其是针对持久子目录来规定这一点。
类似于针对子目录的资源分配,在接口策略中可以为网络资源定义:所分派的一个或多个网络接口是专门被分配给容器实例,还是一般性地启用,还是仅与具有在接口策略中指定的签名的容器映像共享。因此,通过接口策略来控制:只有可信的容器实例才彼此保持通信。该接口策略可以针对单独的容器映像来被定义,并且例如可以通过映像标签、即所谓的标签(Tags)来被分派,或者可以例如通过Docker-Compose文件来引用配置文件的接口定义。如果在Docker-Compose层面进行该接口定义,则每个单独的所引用的接口都可以受到限制,并且可以为其他接口定义默认行为。
在一个实施方式中,目录策略和接口策略由配置文件的创建者创建,并且链接到配置文件。在一个实施方式中,接口策略包括对具有网络接口的允许属性的配置文件的引用。可选地,目录策略包括对具有引用至少一个环境变量的指令的配置文件的引用,并且该环境变量包括容器实例中的子目录的指示。以同样的方式,接口策略可以包括对具有网络接口的允许属性的配置文件的引用。借此确保了:目标目录和网络接口也可以由平台运营商借助于专用配置文件通过参数来动态地定义。
在容器实例的启动过程之前,在方法步骤S4中,由容器映像针对容器实例所规定的在源目录中的所有子目录是否能根据目录策略来合并,和/或由配置文件所规定的所有网络接口是否能根据接口策略来合并,而不违反已经存在的其他容器实例的子目录和网络接口的合并选项。最后,在方法步骤S5中,只有当该检查得出肯定的检查结果时,才从客户计算机中的容器映像生成容器实例。
假设:底层平台、即客户计算机10的操作系统12和资源11,以及容器运行时环境,或者如果要运行多个运行时环境的话,运行时环境的所有表现形式,都是可信的,并且运行时环境对签名进行评估。
如果要在运行时环境中基于容器映像来启动容器实例,则在实际启动过程之前,解释容器映像的所寄存的目录策略和接口策略。客户计算机10或容器运行时环境可以执行目录策略和接口策略的验证。为此,客户计算机可以包括调用独立服务的可插入的功能单元。
为了该检查,针对容器实例的运行时环境生成中央合并数据库。该合并数据库包括从中生成了容器实例的容器映像的名称和版本,以及容器实例中的目标目录、所分配的物理数据存储器的源目录以及目标目录的允许的合并选项和访问选项,以及被分配给容器实例的网络接口和合并选项。该合并数据库是持久存储的。依据该合并数据库,检查针对子目录所请求的源目录或者该源目录的上级或下级目录是否被合并。此外,检查所要合并的网络接口当前是否已经针对另一容器映像被合并或者是否曾经针对另一种类型的容器映像被合并。
在成功合并子目录和/或网络接口之后,容器映像的名称和版本、容器实例中的目标目录,所分配的物理数据存储器的源目录,以及目标目录的允许的合并选项和访问选项,和/或合并的网络接口以及网络接口的合并选项,被传送给该合并数据库并且存储在那里。
如果在检查由其他容器映像和/或配置文件形成的容器实例时,对照目录策略,发现目录策略不包含所要合并的子目录的允许的合并选项,或者所要合并的子目录是相对于在目录策略中未提及的子目录的上级或下级目录,则不将子目录合并到容器实例中。类似地,如果在检查由其他容器映像和/或配置文件形成的容器实例时,对照接口策略,发现该接口策略不包含所要合并的网络接口的允许的合并选项,则不合并网络接口。
在下文描述了在子目录、尤其是持久子目录的挂载过程中的检查:
如果为容器映像寄存目录策略,则检查:源目录是否已经被另一容器实例使用或者已经被另一种实例类型使用并且因此在平台上被保留用于另外的映像。为了不仅能够针对正在运行的实例检查这一点而且能够针对没有正在运行的实例检查这一点,针对运行时环境生成中央合并数据库,在该合并数据库中,除了容器映像的名称、版本(标签)之外,还为目标目录持久存储所希望的源目录和所希望的访问选项。在启动基于容器映像的容器实例之前,首先检查:对于该容器实例,究竟是否将持久子目录定义为启动参数。如果情况不是如此,则即使相对应的目录策略寄存在容器映像中,也不进行进一步的检查。原因在于:由于容器实例的启动,没有数据被持久化,而且底层客户计算机的值得保护的数据也没有受到危害。在一个替选的变体中,通过运行时环境,可以强制在存在目录策略的情况下也分派相对应的数据。例如,这同样可以在容器映像的目录策略中定义。
如果在启动容器实例时指定了至少一个所要合并的子目录、尤其是持久子目录,则进行以下检查:
首先,检查所希望的目标目录是否与为容器映像寄存的、为其寄存目录策略的目录相同。如果情况不是如此,或者如果上级或下级子目录要被挂载到容器映像中,则该过程被终止。借此确保了:仅在允许的挂载点生成持久数据。如果引用尚未挂载的子目录的配置文件的变量或指令被用于进行引用,则运行时环境或插件会检查源目录上的所引用的文件并且对该文件进行解释。
如果在目录策略中指定:持久子目录只允许由一种类型的容器实例独占地合并,则检查是否已经存在同一种类型的容器示例并且所挂载的目录对于同一源目录是否是活跃的。如果情况如此,则启动过程同样被终止,而且子目录的设立被拒绝。经此确保了:例如在不同容器实例中实现的两个并行的数据库由于访问相同的持久子目录而不会生成不一致的数据。如果是非编排环境,则通过在本地运行的容器运行时环境上已经运行具有所指定的子目录的容器实例,可以进行检查。为此,在编排环境中,可以询问编排器,或者可以在该合并数据库中附加地寄存具有相对应的子目录的正在运行的容器实例。然后,其被容器运行时环境持续更新。容许所分配的子目录来自另外的源目录,前提是该子目录尚未使用。
在上述合并数据库中,检查当前是否已经为另一容器映像挂载了所希望的源目录或者上级或下级路径。附加地,检查:是否曾经为另一种类型的容器映像挂载了目录或者下级或上级目录,以及对于具有指定的合并选项和访问选项的指定容器映像的指定路径,这是否是容许的。如果在这种情况下发现违反了所寄存的目录策略,则该设立过程同样以相对应的报错消息来终止。即使对于针对其未寄存特定目录策略的容器映像,也会进行该检查。借此防止了:其他容器映像所保留的区域被未经授权的容器映像使用。
如果该设立方法是成功的并且尚未寄存在该合并数据库中,则将其与所要启动的容器映像的元数据和指定的源目录以及容器映像的版本和容器映像名称一起录入到该合并数据库中。借此确保了:其他容器实例的已经使用的目录被相对应地保留,并且可以针对其他容器实例进行检查。
如果容器映像的实例一般性地不再要在客户计算机上运行,则管理员可以在合并数据库中删除容器映像的相应条目。因此,容器映像就其合并的子目录而言对于平台完全被“注销”。此外,在针对容器映像所寄存的目录策略和/或接口策略中,可以指定:覆盖或删除寄存在合并数据库中的用于较旧容器映像的数据,使得在较新版本中能够实现经修改的合并行为。此外,对于目录策略,针对容器映像的每个所要合并的子目录,应该寄存:该子目录是应该特定于版本地适用还是应该一般性地适用于该容器映像的所有版本。
在一个扩展的实施方式中,容器运行时环境将指定的目录策略和/或接口策略仅应用于定义的容器映像,例如取决于容器映像的签名。因此,对于不符合这些属性的容器映像,可以一般性地停用目录策略的解释。如果试图挂载保留的源目录或者其上级或下级目录,则仅检查和保护受保护的容器映像的源目录,其方式是仅阻止未经验证的容器映像的容器实例的启动。
网络接口的分派以类似的方式受到保护。如果网络接口是新创建的,则无需进行检查。如果该网络接口已经存在,则由运行时环境来检查:与该网络接口连接的容器实例是否是根据接口策略来指定的,以及旨在被分派给容器映像的容器实例是否满足其他容器实例的要求。如果在这种情况下识别出违反接口策略,则容器实例的启动过程被拒绝。
不仅在容器实例启动的情况下执行检查,而且在容器实例的运行时动态添加网络接口的情况下执行检查。
在一个实施方式中,借助于关于目录策略和/或网络策略的内容的签名,保护目录策略和/或网络策略。该签名由容器运行时环境在加载过程中验证。因此,可以监视目录策略和/或网络策略的完整性。
图3示出了根据本发明的装置的实施方式。装置50包括生成设备20、客户计算机30和合并数据库40。合并数据库40可以集成在客户计算机30中,或者如图所示,可以被设计为远离客户计算机30地集中并且能被多个客户计算机访问。生成设备20被设计为生成目录策略28,该目录策略包括用于将容器实例的子目录分派到源目录中的子目录的至少一个合并规则,尤其是针对在其中持久存储数据的持久子目录。生成设备21还被设计为生成接口策略27,该接口策略包括用于将容器实例的网络接口分派到所分配的客户计算机30的虚拟和/或物理网络接口的至少一个合并规则。
生成单元21被设计为使得目录策略28和接口策略27都能由配置文件24的创建者创建。在一个实施变体中,生成单元21至少包括第一输入单元21,经由该第一输入单元,目录策略28和接口策略27能由配置文件24的创建者创建。生成单元20将目录策略28和接口策略27与配置文件24链接。配置文件24被分配给容器映像25。
在一个实施变体中,生成单元21被设计为使得只有接口策略27可以由配置文件25的创建者创建,并且目录策略27能由容器映像25的创建者创建。生成单元21例如包括第二输入单元,经由该第二输入单元,容器映像24的创建者创建目录策略。在这种情况下,目录策略28与容器映像25链接,接口策略27与配置文件24链接。配置文件24引用容器映像25,并且定义从源目录到目标目录以及到接口的分配。
该生成单元包括输出单元23,经由该输出单元,容器映像25、所分配的配置文件24、以及目录策略28和接口策略27,被加载到客户计算机30的运行时环境33中。依据包含在配置文件24中的说明和分派,从容器映像25配置和启动容器实例31。在容器实例31的启动过程之前,客户计算机30检查:由容器映像25针对容器实例31所规定的在源目录中的所有子目录是否能根据目录策略28来合并,和/或由配置文件24所规定的所有网络接口是否能根据接口策略27来合并,而不违反已经存在的其他容器实例32的子目录和网络接口的合并选项。如果该检查得出:满足目录策略和接口策略的所有合并选项并且因此存在肯定的检查结果,则从容器映像25生成容器实例31。
因此,利用针对容器映像所寄存的目录策略和/或接口策略,可以确保:持久数据是专门针对容器映像可读写的。可以针对未经授权的容器映像阻止设立过程。在一个扩展的变体中,容器映像可以基于其属性(例如基于其签名)请求受到特殊保护的子目录。读和写的限制将不再仅由平台运营商定义,而是也可以由容器映像制造商指定。通过对变量的解释,客户计算机中的验证组件也可以在容器实例的访问方面限制可动态配置的子目录。可以专门保护应该独占地被分配给容器实例的设备文件。该方法同样可以保护网络接口,由此,防止了未经授权的容器实例被挂载到其他实例的网络上。
所有方法步骤都可以通过适合于执行相应方法步骤的相对应的设备来实现。所有可以由具体特征实现的功能都可以是该方法的方法步骤。在本发明的范围内,所描述和/或描绘的所有特征可以有利地彼此组合。本发明不限于所描述的实施例。
Claims (16)
1.一种用于保护为用于提供基于容器的应用的容器实例(31)设立子目录和/或网络接口的过程的方法,其中,通过分派在所分配的物理数据存储器的源目录中的至少一个子目录来提供所述容器实例的至少一个子目录,并且通过分派所分配的客户计算机(30)的至少一个相对应的虚拟或物理网络接口来提供所述容器实例的至少一个网络接口,所述方法包括:
-生成(S1)目录策略(28),所述目录策略包括用于将所述容器实例(31)的子目录分派到所述源目录中的子目录的至少一个合并规则;和/或
-生成(S2)接口策略(27),所述接口策略包括用于将所述容器实例(31)的网络接口分派到所分配的客户计算机(30)的网络接口的至少一个合并规则;
-将容器映像(25)、所分配的配置文件(24)以及所述目录策略(28)和/或所述接口策略(27)加载(S3)到所述客户计算机(30)的运行时环境(33)中;
-在所述运行时环境(33)中,在所述容器实例(31)的启动过程之前,检查(S4):由所述容器映像(25)针对所述容器实例(31)所规定的在所述源目录中的所有子目录是否能根据所述目录策略(28)来合并,和/或由所述配置文件(24)所规定的所有网络接口是否能根据所述接口策略(27)来合并,而不违反已经存在的其他容器实例(32)的子目录和网络接口的合并选项;而且
-只有在检查结果为肯定的情况下,才从所述客户计算机(30)中的所述容器映像(25)生成(S5)所述容器实例(31)。
2.根据权利要求1所述的方法,其中,所述目录策略(28)和所述接口策略(27)由所述配置文件(24)的创建者创建并且链接到所述配置文件(24)。
3.根据权利要求1所述的方法,其中,所述目录策略(28)由所述容器映像(25)的创建者创建并且链接到所述容器映象(25)。
4.根据前一权利要求所述的方法,其中,所述目录策略(28)包括关于所述子目录的元信息,并且所述元信息以映像标签的形式被分派给所述容器映像(25)。
5.根据前述权利要求中任一项所述的方法,其中,所述目录策略(28)和/或所述接口策略(27)规定:所述源目录中的所述子目录和/或所述网络接口是仅允许被单个容器实例(31)合并,还是允许被由相同容器映像形成的多个容器实例或者被由不同容器映像形成的多个容器实例合并。
6.根据前述权利要求中任一项所述的方法,其中,所述目录策略(28)规定对所述子目录或所述网络接口的允许的访问选项。
7.根据前述权利要求中任一项所述的方法,其中,所述目录策略(28)和/或所述接口策略(27)根据所述容器映像(25)的签名来规定合并规则。
8.根据前述权利要求中任一项所述的方法,其中,所述目录策略(28)包括对具有引用至少一个环境变量的指令的所述配置文件(25)的引用,并且所述环境变量包括所述容器实例(25)中的子目录的指示。
9.根据前述权利要求中任一项所述的方法,其中,所述接口策略(27)包括对具有所述网络接口的允许属性的所述配置文件(24)的引用。
10.根据前述权利要求中任一项所述的方法,其中,针对所述容器实例(31)的所述运行时环境(33)生成中央合并数据库(40),并且所述合并数据库(40)包括从中生成了所述容器实例(31)的所述容器映像(25)的名称和版本、所述容器实例(31)中的目标目录、所分配的物理数据存储器(30)的源目录,和所述目标目录的允许的合并选项和访问选项,以及被分配给所述容器实例(31)的网络接口和合并选项。
11.根据权利要求10所述的方法,其中,所述合并数据库(40)被持久存储。
12.根据权利要求10和11所述的方法,其中,依据所述合并数据库(40),检查:针对子目录所请求的源目录或者所述源目录的上级或下级目录和/或所要合并的网络接口当前是否已经针对另一容器映像(25)被合并或者是否曾经针对另一种类型的容器映像(25)被合并。
13.根据权利要求10和12所述的方法,其中,在成功合并子目录和/或网络接口之后,所述容器映像(25)的名称和版本、所述容器实例(31)中的目标目录、所分配的物理数据存储器的源目录,以及所述目标目录的允许的合并选项和访问选项,和/或合并的网络接口以及所述网络接口的合并选项,被传送给所述合并数据库(40)并且被存储在那里。
14.根据前述权利要求中任一项所述的方法,其中,如果在检查已经由其他容器映像和/或配置文件形成的容器实例时,对照所述目录策略(28),发现所述目录策略(28)不包含所要合并的子目录的允许的合并选项,或者所要合并的子目录是相对于在所述目录策略(28)中未提及的子目录的上级或下级目录,则不将子目录合并到所述容器实例(31)中,和/或
其中,如果在检查已经由其他容器映像和/或配置文件形成的容器实例时,对照所述接口策略(27),发现所述接口策略(27)不包含所要合并的网络接口的允许的合并选项,则不合并网络接口。
15.一种用于保护为用于提供基于容器的应用的容器实例(31)设立至少一个子目录和/或至少一个网络接口的过程的装置(50),其中,通过分派在所分配的物理数据存储器的源目录中的至少一个子目录来提供所述容器实例(31)的子目录,并且通过分派所分配的客户计算机(30)的至少一个虚拟或物理网络接口来提供所述容器实例(31)的至少一个网络接口,所述装置包括生成设备(20),所述生成设备被设计为:
-生成目录策略(28),所述目录策略包括用于将所述容器实例(31)的子目录分派到所述源目录中的子目录的至少一个合并规则,尤其是针对在其中持久存储数据的持久子目录,
-生成接口策略(27),所述接口策略包括用于将所述容器实例(31)的网络接口分派到所分配的客户计算机(30)的虚拟和/或物理网络接口的至少一个合并规则,
-将容器映像(25)、所分配的配置文件(24)以及所述目录策略(28)和所述接口策略(27)加载到所述客户计算机(30)的运行时环境(33)中,
而且所述客户计算机(30)被设计为:
-在所述运行时环境(33)中,在所述容器实例(31)的启动过程之前,检查:由所述容器映像(25)针对所述容器实例(31)所规定的在所述源目录中的所有子目录是否能根据所述目录策略(28)来合并,和/或由所述配置文件(24)所规定的所有网络接口是否能根据所述接口策略(27)来合并,而不违反已经存在的其他容器实例的子目录和网络接口的合并选项,而且
-只有在检查结果为肯定的情况下,才从所述客户计算机(30)中的所述容器映像(25)生成所述容器实例(31)。
16.一种计算机程序产品,所述计算机程序产品包括能直接加载到数字计算机的存储器中的非易失性计算机可读介质,其包括程序代码部分,在通过所述数字计算机来执行所述程序代码部分时,所述程序代码部分促使所述数字计算机执行根据权利要求1至14中任一项所述的方法的步骤。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21186611.6A EP4123448A1 (de) | 2021-07-20 | 2021-07-20 | Absicherung eines einrichtevorgangs eines unterverzeichnisses und einer netzwerkschnittstelle für eine containerinstanz |
EP21186611.6 | 2021-07-20 | ||
PCT/EP2022/070085 WO2023001773A1 (de) | 2021-07-20 | 2022-07-18 | Absicherung eines einrichtevorgangs eines unterverzeichnisses und einer netzwerkschnittstelle für eine containerinstanz |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117693737A true CN117693737A (zh) | 2024-03-12 |
Family
ID=76999679
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280051309.6A Pending CN117693737A (zh) | 2021-07-20 | 2022-07-18 | 为容器实例设立子目录和网络接口的过程的保护 |
Country Status (3)
Country | Link |
---|---|
EP (2) | EP4123448A1 (zh) |
CN (1) | CN117693737A (zh) |
WO (1) | WO2023001773A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116700778B (zh) * | 2023-08-02 | 2024-01-26 | 中邮消费金融有限公司 | 接口差异分析方法、设备、存储介质及装置 |
CN117494173B (zh) * | 2023-12-28 | 2024-03-01 | 苏州元脑智能科技有限公司 | 一种控制策略的管理方法、系统、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090222880A1 (en) * | 2008-03-03 | 2009-09-03 | Tresys Technology, Llc | Configurable access control security for virtualization |
US9448826B2 (en) * | 2013-03-15 | 2016-09-20 | Symantec Corporation | Enforcing policy-based compliance of virtual machine image configurations |
US10650157B2 (en) * | 2017-04-30 | 2020-05-12 | Microsoft Technology Licensing, Llc | Securing virtual execution environments |
-
2021
- 2021-07-20 EP EP21186611.6A patent/EP4123448A1/de not_active Withdrawn
-
2022
- 2022-07-18 CN CN202280051309.6A patent/CN117693737A/zh active Pending
- 2022-07-18 EP EP22754334.5A patent/EP4334813A1/de active Pending
- 2022-07-18 WO PCT/EP2022/070085 patent/WO2023001773A1/de active Application Filing
Also Published As
Publication number | Publication date |
---|---|
EP4123448A1 (de) | 2023-01-25 |
EP4334813A1 (de) | 2024-03-13 |
WO2023001773A1 (de) | 2023-01-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP3355226B1 (en) | System call policies for containers | |
US5832483A (en) | Distributed control interface for managing the interoperability and concurrency of agents and resources in a real-time environment | |
CN101196974B (zh) | 用于软件应用程序的自动配置的方法和系统 | |
US8397245B2 (en) | Managing loading and unloading of shared kernel extensions in isolated virtual space | |
US8904552B2 (en) | System and method for protecting data information stored in storage | |
US8527989B2 (en) | Tracking loading and unloading of kernel extensions in isolated virtual space | |
US20050091192A1 (en) | Dynamically identifying dependent files of an application program or an operating system | |
CN117693737A (zh) | 为容器实例设立子目录和网络接口的过程的保护 | |
US8359467B2 (en) | Access control system and method | |
US20070199068A1 (en) | Managed control of processes including privilege escalation | |
JP7228751B2 (ja) | 権限管理のための方法および装置、コンピュータ機器ならびに記憶媒体 | |
US9904484B2 (en) | Securing protected information based on software designation | |
EP1062584A2 (en) | Stack-based access control | |
CN104751050A (zh) | 一种客户端应用程序管理方法 | |
US10528749B2 (en) | Methods and apparatus for containerized secure computing resources | |
CN111052117B (zh) | 在没有多元化创作的情况下安全地定义操作系统组成 | |
CN110325992B (zh) | 对初始计算机操作系统设置选项的远程管理 | |
US11461460B2 (en) | Software container application encryption | |
US8448169B2 (en) | Managing unique electronic identification for kernel extensions in isolated virtual space | |
CN115885261A (zh) | 部分特权的轻量级虚拟化环境 | |
US20240311447A1 (en) | Programmable model-driven license management and enforcement in a multi-tenant system | |
US20180143915A1 (en) | Capability access management | |
WO2017016231A1 (zh) | 一种策略管理方法、系统及计算机存储介质 | |
US20180069859A1 (en) | Mobile terminal and control method thereof | |
CN116521306A (zh) | 一种容器使能selinux的方法和计算机设备 |
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 |