CN117056030B - 容器逃逸的确定方法及装置 - Google Patents

容器逃逸的确定方法及装置 Download PDF

Info

Publication number
CN117056030B
CN117056030B CN202311307558.XA CN202311307558A CN117056030B CN 117056030 B CN117056030 B CN 117056030B CN 202311307558 A CN202311307558 A CN 202311307558A CN 117056030 B CN117056030 B CN 117056030B
Authority
CN
China
Prior art keywords
container
determining
operation object
path
storage path
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.)
Active
Application number
CN202311307558.XA
Other languages
English (en)
Other versions
CN117056030A (zh
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.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
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 Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202311307558.XA priority Critical patent/CN117056030B/zh
Publication of CN117056030A publication Critical patent/CN117056030A/zh
Application granted granted Critical
Publication of CN117056030B publication Critical patent/CN117056030B/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/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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs

Abstract

本申请实施例提供了一种容器逃逸的确定方法及装置,其中,该方法包括:获取处于运行状态的容器的操作对象;确定处于运行状态的容器中的文件在宿主机中的预设存储路径;确定当前操作对象在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。通过本申请,解决了容器逃逸检测准确性低的技术问题。

Description

容器逃逸的确定方法及装置
技术领域
本申请实施例涉及容器监控领域,具体而言,涉及一种容器逃逸的确定方法及装置。
背景技术
随着虚拟化技术的快速发展。云原生技术成为热门,容器以隔离性好,部署便捷深受用户青睐。但目前的容器大部分与操作系统共享内核,且部分容器因业务需要,与宿主机的隔离性并不是非常明确。这样就会导致一些入侵行为通过容器逃逸至宿主机,进行更大规模的破坏。
目前主要的容器防护技术集中在利用Linux内核提供的hook技术,在内核层加载模块,监控容器内进程的行为,通过与常规容器行为比对识别异常行为。这种方法存在两种弊端,一是加载内核模块容易导致业务系统不稳定,二是仅监控进程行为无法检测容器进程逃逸操作非容器文件的行为。
发明内容
本申请实施例提供了一种容器逃逸的确定方法及装置,以至少解决容器逃逸检测准确性低的技术问题。
根据本申请的一个实施例,提供了一种容器逃逸的确定方法,包括:获取处于运行状态的容器的操作对象;确定处于运行状态的容器中的文件在宿主机中的预设存储路径;确定操作对象在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。
在一个示例性的实施例中,确定处于运行状态的容器的文件系统的预设存储路径,包括:检测针对处于运行状态的容器的镜像命令;响应于镜像命令,获取处于运行状态的容器的元数据,并基于元数据确定处于运行状态的容器的驱动镜像,其中,驱动镜像中包含预设存储路径;将预设存储路径存储到第一哈希表中。
在一个示例性的实施例中,将预设存储路径存储到第一哈希表中,包括:获取处于运行状态的容器的进程对应的第一命名空间和处于运行状态的容器的挂载点对应的第二命名空间;将第一命名空间和第二命名空间为第一键,预设存储路径为第一键对应的第一值,存储到第一哈希表中。
在一个示例性的实施例中,处于运行状态的容器通过以下方式确定,包括:通过容器访问客户端,获取容器环境下的所有容器;遍历所有容器,从中选择处于运行状态的容器。
在一个示例性的实施例中,在确定处于运行状态的容器之后,方法还包括:将第一命名空间和第二命名空间确定为第二键;将驱动镜像确定为第二键对应的第二值;将述第二键和第二值组成键值对,存储到第二哈希表中。
在一个示例性的实施例中,方法还包括:确定处于运行状态的容器的运行状态;根据处于运行状态的容器的运行状态对第一哈希表和第二哈希表中存储的键值对进行更新。
在一个示例性的实施例中,根据处于运行状态的容器的运行状态对第一哈希表和第二哈希表中存储的键值对进行更新,包括:在处于运行状态的容器消亡的情况下,删除第一哈希表和第二哈希表中存储的处于运行状态的容器对应的键值对;在有新的处于运行状态的容器诞生的情况下,在第一哈希表和第二哈希表中新增新的处于运行状态的容器对应的键值对。
在一个示例性的实施例中,确定操作对象转化为处于运行状态的容器的文件系统后在宿主机中的实际存储路径,包括:确定操作对象在处于运行状态的容器中的存储的路径信息;将路径信息转化成实际存储路径。
在一个示例性的实施例中,确定操作对象在处于运行状态的容器中的存储的路径信息,包括:从操作对象的配置参数中获取用于存储操作对象在容器中存储路径的第一数据结构体;从第一数据结构体中提取操作对象的路径信息。
在一个示例性的实施例中,将路径信息转化成实际存储路径,包括:从路径信息中确定操作对象对应的虚拟文件系统挂载点和目录项;通过虚拟文件系统挂载点确定操作对象的挂载信息对应的指针地址;通过指针地址确定挂载信息结构体;从挂载信息结构体中提取操作对象的挂载点;根据挂载点和目录项确定实际存储路径。
在一个示例性的实施例中,根据挂载点和目录项确定实际存储路径,包括:将挂载点与目录项关联,得到关联后的目录项;以关联后的目录项为基点递归查找关联后的目录项的父目录项,直到查找到的父目录项与关联后的目录项相等,并将查找到的父目标项确定为第一目录项;将多个第一目录项按照被查找到的顺序依次拼接,得到实际存储路径。
在一个示例性的实施例中,在从第一数据结构体中提取操作对象的路径信息之后,方法还包括:确定操作对象对应的虚拟文件系统挂载点的根目录;基于根目录确定操作对象的操作路径。
在一个示例性的实施例中,基于根目录确定操作对象的操作路径,包括:以目录项为基点递归查找目录项的父目录项,直到查找到的父目录项与根目录相等,并将查找到的目录项确定为第二目录项;将多个第二目录项按照被查找到的顺序依次拼接,得到操作对象的操作路径。
在一个示例性的实施例中,在得到操作对象的操作路径之后,方法还包括:将操作路径与实际存储路径进行拼接,得到操作对象的完整路径。
在一个示例性的实施例中,方法还包括:响应于监控指令,确定处于运行状态的容器运行的当前进程;从当前进程中获取用于管理命名空间的数据结构体;根据用于管理命名空间的数据结构体确定当前进程的进程命名空间和当前进程的挂载命名空间。
在一个示例性的实施例中,根据用于管理命名空间的数据结构体确定当前进程的进程命名空间和当前进程的挂载命名空间,包括:从管理命名空间的数据结构体中获取当前进程对应的进程命名空间和当前进程对应的挂载点命名空间;从进程命名空间中提取预设数据类型的第一数据;从挂载点命名空间中提取预设数据类型的第二数据;将第一数据确定为进程命名空间标识;将第二数据确定为挂载点命名空间标识。
在一个示例性的实施例中,包括:确定当前进程的进程命名空间和当前进程的挂载命名空间之后,方法还包括:将当前进程的进程命名空间和当前进程的挂载命名空间作为指定键从第二哈希表中选择与指定键相同的键;将与指定键相同的键确定为第三键;提取第三键对应的值,并将第三键对应的值确定为当前进程的预设存储路径。
在一个示例性的实施例中,确定处于运行状态的容器的操作对象存在逃逸风险之后,方法还包括:发出告警信息,并输出操作对象的完整路径。
在一个示例性的实施例中,输出操作对象的完整路径之后,方法还包括接收判断结果,判断结果基于操作对象的完整路径确定;在判断结果指示操作对象非处于运行状态的容器中的文件的情况下,禁止操作对象执行动作。
根据本申请的另一个实施例,提供了一种容器逃逸的确定装置,包括:获取模块,用于获取处于运行状态的容器的操作对象;第一确定模块,用于确定处于运行状态的容器中的文件在宿主机中的预设存储路径;转化模块,用于确定当前操作对象在宿主机中的实际存储路径;第二确定模块,用于在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。
根据本申请的又一个实施例,还提供了一种计算机可读存储介质,计算机可读存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
根据本申请的又一个实施例,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
通过本申请,获取处于运行状态的容器的操作对象;确定处于运行状态的容器中的文件在宿主机中的预设存储路径;确定当前操作对象在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险,通过确定容器的操作对象在宿主机中的实际存储路径,将容器中的文件对应的预设存储路径和当前操作对象的实际存储路径进行对比,确定容器的操作对象是否存在于容器文件系统中,达到了准确检测容器操作对象的目的,以提高容器逃逸检测准确率的效果。
附图说明
图1是根据本申请实施例的容器逃逸的确定方法的计算机终端的硬件结构框图;
图2是根据本申请实施例的一种容器逃逸的确定方法的流程图;
图3是根据本申请实施例的一种容器逃逸的确定装置结构示意图;
图4是根据本申请实施例的一种容器逃逸的告警方法流程图;
图5是根据本申请实施例的一种容器逃逸的告警系统结构示意图。
具体实施方式
下文中将参考附图并结合实施例来详细说明本申请的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。
本申请实施例中所提供的方法实施例可以在计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本申请实施例的一种容器逃逸的确定方法的计算机终端的硬件结构框图。如图1所示,计算机终端可以包括一个或多个(图1中仅示出一个)处理器102(处理器102可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)和用于存储数据的存储器104,其中,上述计算机终端还可以包括用于通信功能的传输设备106以及输入输出设备108。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述计算机终端的结构造成限定。例如,计算机终端还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
存储器104可用于存储计算机程序,例如,应用软件的软件程序以及模块,如本申请实施例中的容器逃逸的确定方法对应的计算机程序,处理器102通过运行存储在存储器104内的计算机程序,从而执行各种功能应用以及数据处理,即实现上述的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
传输设备106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端的通信供应商提供的无线网络。在一个实例中,传输设备106包括一个网络适配器(Network Interface Controller,简称为NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输设备106可以为射频(Radio Frequency,简称为RF)模块,其用于通过无线方式与互联网进行通讯。
在本实施例中提供了一种运行于上述计算机终端的容器逃逸的确定方法,图2是根据本申请实施例的流程图,如图2所示,该流程包括如下步骤:
步骤S202,获取处于运行状态的容器的当前操作对象;
步骤S204,确定处于运行状态的容器中的文件在宿主机中的预设存储路径;
步骤S206,确定当前操作对象在宿主机中的实际存储路径;
步骤S208,在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。
需要进行说明的是,容器是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何运行 Linux操作系统或Windows操作系统的机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口;容器逃逸,是指程序脱离容器划定的空间限制,逃逸到宿主机并做一些破坏动作,容器的操作对象指对容器进行操作的对象,可以是一个数据结构,也可以是一个类或接口。它定义了对容器进行添加、删除、修改、查找等操作的方法和属性。常见的容器操作对象包括数组、链表、堆栈、队列、集合、映射等。不同的容器操作对象具有不同的特点和适用场景,可以根据具体需求选择合适的容器操作对象来实现相应的功能。
获取处于运行状态的容器的操作对象;确定处于运行状态的容器中的文件在宿主机中的预设存储路径;确定当前操作对象在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险,通过确定容器的操作对象在宿主机中的实际存储路径,将容器中的文件对应的预设存储路径和当前操作对象的实际存储路径进行对比,确定容器的操作对象是否存在于容器文件系统中,达到了准确检测容器操作对象的目的,以提高容器逃逸检测准确率的效果。
下面通过实施例具体解释步骤S202至步骤S208。
在步骤S204中,确定处于运行状态的容器的文件系统中的文件的预设存储路径的方式有多种,一种可选的方式是:检测针对处于运行状态的容器的镜像命令;响应于镜像命令,获取处于运行状态的容器的元数据,并基于元数据确定处于运行状态的容器的驱动镜像,其中,驱动镜像中包含预设存储路径;将预设存储路径存储到第一哈希表中。
在实际的应用场景中,通过命令 docker inspect,获取容器详细信息,从该信息中提取GraphDriver.Data.MergedDir(一种驱动镜像)数据。
其中,将预设存储路径存储到第一哈希表中,包括:获取处于运行状态的容器的进程对应的第一命名空间和处于运行状态的容器的挂载点对应的第二命名空间;将第一命名空间和第二命名空间为第一键,预设存储路径为第一键对应的第一值,存储到第一哈希表中。
可以理解的是,预设存储路径可以通过容器客户端采集,例如:通过容器客户端组件获取当前运行时容器信息,包含容器标识,容器运行时的PID NS(容器进程命名空间,第一命名空间)MNT NS (容器挂载点命名空间,第二命名空间)、容器的文件系统在宿主机上的存储位置(预设存储路径)。将容器运行时PID NS、MNT NS与第一存储位置存储至eBPF(Extended Berkeley Packet Filter,一种可编程的内核程序)中的哈希表(第一哈希表)中,其中,第一哈希表的key为容器运行时PID NS、MNT NS”。容器运行状态发生变化时,更新上述第一哈希表中的数据。
需要进行说明的是,eBPF可以在内核空间中运行小型程序,通过预设机制对系统进行监控和控制。eBPF 通过虚拟机在内核中执行自定义程序,可以用于实现网络监控、安全审计、系统性能分析等应用。
在一个示例性实施例中,处于运行状态的容器可以通过以下方式确定,包括:通过容器访问客户端,获取容器环境下的所有容器;遍历所有容器,将所有容器中处于运行状态下的容器确定为处于运行状态的容器。
在一个示例性实施例中,预设存储路径的获取方式如下:获取容器运行时容器标识、PID NS、MNT NS;依据环境变量信息通过容器依赖库的 NewClientWithOpts(一种函数,用于创建客户端)获取容器访问客户端。通过容器访问客户端获取容器环境下全部容器,遍历全部容器,筛选容器状态为运行中容器,并确定运行中的容器为处于运行状态的容器,提取处于运行状态的容器的标识、 PID NS、MNT NS存至第一哈希表中,其中,第一哈希表的key为容器标识,value为处于运行状态的容器的PID NS和MNT NS。
在确定处于运行状态的容器之后,方法还包括:将第一命名空间和第二命名空间确定为第二键;将驱动镜像确定为第二键对应的第二值;将述第二键和第二值组成键值对,存储到第二哈希表中。
具体地,可以将处于运行状态的容器的 PID NS和MNT NS作为第二哈希表的key,驱动镜像作为第二哈希表的value存入第二哈希表中。
在一个示例性实施例中,确定处于运行状态的容器的运行状态;根据处于运行状态的容器的运行状态对第一哈希表和第二哈希表中存储的键值对进行更新,其中,在处于运行状态的容器消亡的情况下,删除第一哈希表和第二哈希表中存储的处于运行状态的容器对应的键值对;在有新的处于运行状态的容器诞生的情况下,在第一哈希表和第二哈希表中新增新的处于运行状态的容器对应的键值对。
在一个示例性实施例中,实际存储路径可以通过以下方式确定,包括:确定操作对象在处于运行状态的容器中的存储的路径信息;将路径信息转化成实际存储路径。
其中,从操作对象的配置参数中获取用于存储操作对象在容器中存储路径的第一数据结构体;从第一数据结构体中提取操作对象的路径信息。
在实际的应用场景中,可以从容器的内核层挂载点获取操作对象参数structfile(配置参数),并从操作对象参数中提取第一数据结构体struct path。
需要进行说明的是,struct path是一种在Linux内核中表示文件路径的数据结构。它包含了与文件相关的信息,如文件的dentry(目录项)和inode(索引节点)等。dentry用于表示文件在文件系统中的位置,而inode则包含了文件的属性和操作方法。
struct path通常用于在内核中表示文件的路径,例如在文件系统操作、文件系统挂载和文件系统查找等方面。通过操作struct path,可以获取文件的绝对路径、判断文件是否存在、打开或关闭文件等操作。这个数据结构在内核中广泛使用,用于管理和操作文件系统中的文件。
在一个示例性实施例中,将路径信息转化成实际存储路径的方式包括:从路径信息中确定操作对象对应的虚拟文件系统挂载点和目录项;通过虚拟文件系统挂载点确定操作对象的挂载信息对应的指针地址;通过指针地址确定挂载信息结构体;从挂载信息结构体中提取操作对象的挂载点;根据挂载点和目录项确定实际存储路径。
例如:从第一数据结构体struct path中取出操作对象对应的虚拟文件系统挂载点vfsmount和目录项dentry,通过虚拟文件系统挂载点vfsmount确定挂载信息mount对应的指针地址,并通过指针地址确定挂载信息mount,从挂载信息mount中提取操作对象对应的挂载点mnt_mountpoint,最后基于操作对象对应的挂载点mnt_mountpoint和操作对象对应的目录项dentry确定实际存储路径。
需要进行说明的是,vfsmount(virtual file system mount)是用于表示文件系统挂载点的数据结构。每个文件系统都会挂载到某个挂载点上,这个挂载点就是一个vfsmount。在挂载点命名空间中,vfsmount 用于实现不同的文件系统命名空间,使不同的进程可以看到不同的文件系统层次结构。vfsmount 结构体的子成员 mnt_root是一个指针,指向文件系统的根目录的 dentry。
mount 结构体用于表示文件系统的挂载信息,包括文件系统类型、挂载选项、超级块、根目录 inode 等信息。 vfsmount为该结构体的子成员。mount 结构体的子成员 mnt_mountpoint 是一个指针,指向文件系统挂载点的 dentry。
dentry(directory entry)是用于表示目录项的数据结构。每个目录都有一个dentry 结构,用于表示该目录在文件系统中的位置和属性,包括目录名、inode 号、目录所在的设备号、目录所在的父目录等信息。dentry结构体中的d_name成员存储了该目录项的名称。
根据挂载点和目录项确定实际存储路径的具体步骤包括:将挂载点与目录项关联,得到关联后的目录项;以关联后的目录项为基点递归查找关联后的目录项的父目录项,直到查找到的父目录项与关联后的目录项相等,并将查找到的目标项确定为第一目录项;将多个第一目录项按照被查找到的顺序依次拼接,得到实际存储路径。
具体的递归查找过程如下:获取当前目录项的父目录项(也就是上一级目录),获取当前目录项的父目录项的指针,递归查找当前父目录项的父目录项,重复以上过程,查找到的父目录项与当前目录项相等。
在从第一数据结构体中提取操作对象的路径信息之后, 确定操作对象对应的虚拟文件系统挂载点的根目录;基于根目录确定操作对象的操作路径。
具体地,以目录项为基点递归查找目录项的父目录项,直到查找到的父目录项与根目录相等,并将查找到的目录项确定为第二目录项;将多个第二目录项按照被查找到的顺序依次拼接,得到操作对象的操作路径。
在一个示例性实施例中,在得到操作对象的操作路径之后,将操作路径与实际存储路径进行拼接,得到操作对象的完整路径。
在具体的应用场景中,对容器运行的当前进程进行监控的流程如下:响应于监控指令,确定处于运行状态的容器运行的当前进程;从当前进程中获取用于管理命名空间的数据结构体;根据用于管理命名空间的数据结构体确定当前进程的进程命名空间和当前进程的挂载命名空间。根据用于管理命名空间的数据结构体确定当前进程的进程命名空间和当前进程的挂载命名空间的具体步骤如下:从管理命名空间的数据结构体中获取当前进程对应的进程命名空间和当前进程对应的挂载点命名空间;从进程命名空间中提取预设数据类型的第一数据;从挂载点命名空间中提取预设数据类型的第二数据;将第一数据确定为进程命名空间标识;将第二数据确定为挂载点命名空间标识。
在一个示例性实施例中,响应于监控指令,获取当前进程struct task_struct,获取 task_struct的成员struct nsproxy,进而获取nsproxy下的 struct pid_namespace(进程命名空间)和struct mnt_namespace(挂载点命名空间)并从进程命名空间中取出成员ns的成员inum作为当前进程的进程命名空间id(PID NS),从挂载点命名空间中取出成员ns的成员inum作为当前进程的挂载命名空间id(MNT NS)。
在确定当前进程的进程命名空间和当前进程的挂载命名空间之后,将当前进程的进程命名空间和当前进程的挂载命名空间作为指定键从第二哈希表中选择与指定键相同的键;将与指定键相同的键确定为第三键;提取第三键对应的值,并将第三键对应的值确定为当前进程的预设存储路径。
在预设存储路径和实际存储路径相同的情况下,确定当前进程为容器内文件,在预设存储路径和实际存储路径不同的情况下,确定当前进程为非容器文件,在确定当前进程为非容器文件的情况下,确定容器存在逃逸风险。
在确定处于运行状态的容器的操作对象存在逃逸风险之后,发出告警信息,并输出操作对象的完整路径;接收判断结果,判断结果基于操作对象的完整路径确定;在判断结果指示操作对象非处于运行状态的容器中的文件的情况下,禁止操作对象执行动作。
在实际的应用场景中,将存在逃逸风险的操作对象的全路径信息(完整路径)通知用户,用户根据告警信息判断看当前操作是否为违规操作。若判定为违规操作,则通知拦截装置禁止操作对象继续执行动作。
本申请通过加载内核模块检测进程的当前命名空间与进程预先关联的命名空间是否一致、进程的操作对象超出进程关联的文件白名单范围、进程的系统调用超出进程的权限范围、进程的系统调用中的参数内容包括攻击内容、容器内进程执行违规指令检测,判断当前容器是否发生逃逸。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例的方法。
在本申请提出的容器逃逸的确定方法的基础上,本申请还提出了一种用于执行本申请提出的容器逃逸的确定方法的容器逃逸的确定装置,如图3所示,包括:
获取模块30,用于获取处于运行状态的容器的当前操作对象;
第一确定模块32,用于确定处于运行状态的容器中的文件在宿主机中的预设存储路径;
转化模块34,用于当前操作对象转化为处于运行状态的容器的文件系统,并确定操作对象转化为处于运行状态的容器的文件系统后在宿主机中的实际存储路径;
第二确定模块36,用于在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。
上述容器逃逸的确定装置,通过获取处于运行状态的容器的操作对象;确定处于运行状态的容器中的文件在宿主机中的预设存储路径;确定当前操作对象在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险,通过确定容器的操作对象在宿主机中的实际存储路径,将容器中的文件对应的预设存储路径和当前操作对象的实际存储路径进行对比,确定容器的操作对象是否存在于容器文件系统中,达到了准确检测容器操作对象的目的,以提高容器逃逸检测准确率的效果。
上述容器逃逸的确定装置中的第一确定模块32,包括:确定子模块,用于检测针对处于运行状态的容器的镜像命令;响应于镜像命令,获取处于运行状态的容器的元数据,并基于元数据确定处于运行状态的容器的驱动镜像,其中,驱动镜像中包含预设存储路径;将预设存储路径存储到第一哈希表中。
确定子模块中,包括:第一存储单元和确定单元,第一存储单元,用于获取处于运行状态的容器的进程对应的第一命名空间和处于运行状态的容器的挂载点对应的第二命名空间;将第一命名空间和第二命名空间为第一键,预设存储路径为第一键对应的第一值,存储到第一哈希表中。
确定单元,用于通过容器访问客户端,获取容器环境下的所有容器;遍历所有容器,从中选择处于运行状态的容器。
第一确定模块32中,还包括:存储子模块和更新子模块,存储子模块,用于在确定处于运行状态的容器之后,将第一命名空间和第二命名空间确定为第二键;将驱动镜像确定为第二键对应的第二值;将述第二键和第二值组成键值对,存储到第二哈希表中。
更新子模块,用于确定处于运行状态的容器的运行状态;根据处于运行状态的容器的运行状态对第一哈希表和第二哈希表中存储的键值对进行更新。
更新子模块,包括:更新单元,更新单元,用于在处于运行状态的容器消亡的情况下,删除第一哈希表和第二哈希表中存储的处于运行状态的容器对应的键值对;在有新的处于运行状态的容器诞生的情况下,在第一哈希表和第二哈希表中新增新的处于运行状态的容器对应的键值对。
转化模块34,包括:转化子模块,转化子模块,用于确定操作对象在处于运行状态的容器中的存储的路径信息;将路径信息转化成实际存储路径。
转化子模块,包括:获取单元、转化单元和第一拼接单元,获取单元,用于从操作对象的配置参数中获取用于存储操作对象在容器中存储路径的第一数据结构体;从第一数据结构体中提取操作对象的路径信息。
转化单元,用于从路径信息中确定操作对象对应的虚拟文件系统挂载点和目录项;通过虚拟文件系统挂载点确定操作对象的挂载信息对应的指针地址;通过指针地址确定挂载信息结构体;从挂载信息结构体中提取操作对象的挂载点;根据挂载点和目录项确定实际存储路径。
第一拼接单元,用于将挂载点与目录项相关联,得到关联后的目录项;以关联后的目录项为基点递归查找关联后的目录项的父目录项,直到查找到的父目录项与关联后的目录项相等,并将查找到的目标项确定为第一目录项;将多个第一目录项按照被查找到的顺序依次拼接,得到实际存储路径。
上述容器逃逸的确定装置中,还包括:路径模块,路径模块,用于在从第一数据结构体中提取操作对象的路径信息之后,确定操作对象对应的虚拟文件系统挂载点的根目录;基于根目录确定操作对象的操作路径。
路径模块,包括:拼接子模块,拼接子模块,用于以目录项为基点递归查找目录项的父目录项,直到查找到的父目录项与根目录相等,并将查找到的目录项确定为第二目录项;将多个第二目录项按照被查找到的顺序依次拼接,得到操作对象的操作路径。
拼接子模块,包括第二拼接单元第二拼接单元,用于在得到操作对象的操作路径之后,将操作路径与实际存储路径进行拼接,得到操作对象的完整路径。
在一个示例性实施例中,方法还包括:响应于监控指令,确定处于运行状态的容器运行的当前进程;从当前进程中获取用于管理命名空间的数据结构体;根据用于管理命名空间的数据结构体确定当前进程的进程命名空间和当前进程的挂载命名空间。
第二确定模块36,包括:监控子模块、提取子模块、告警子模块和拦截子模块,监控子模块,用于从管理命名空间的数据结构体中获取当前进程对应的进程命名空间和当前进程对应的挂载点命名空间;从进程命名空间中提取预设数据类型的第一数据;从挂载点命名空间中提取预设数据类型的第二数据;将第一数据确定为进程命名空间标识;将第二数据确定为挂载点命名空间标识。
提取子模块,用于在确定当前进程的进程命名空间和当前进程的挂载命名空间之后,将当前进程的进程命名空间和当前进程的挂载命名空间作为指定键从第二哈希表中选择与指定键相同的键;将与指定键相同的键确定为第三键;提取第三键对应的值,并将第三键对应的值确定为当前进程的预设存储路径。
告警子模块,用于在确定处于运行状态的容器的操作对象存在逃逸风险之后,发出告警信息,并输出操作对象的完整路径;
拦截子模块,用于接收判断结果,判断结果基于操作对象的完整路径确定;在判断结果指示操作对象非处于运行状态的容器中的文件的情况下,禁止操作对象执行动作。
需要说明的是,上述各个模块是可以通过软件或硬件来实现的,对于后者,可以通过以下方式实现,但不限于此:上述模块均位于同一处理器中;或者,上述各个模块以任意组合的形式分别位于不同的处理器中。
在本申请提出的容器逃逸的确定方法的基础上,本申请还提出了一种容器逃逸的告警方法,如图4所示,包括:发起系统动作,监控容器操作对象,通过容器PID NS、MNT NS获取容器文件系统的存储位置,操作对象是否在容器文件系统内,在操作对象不在容器文件系统内的情况下,产生告警信息。
在本申请提出的容器逃逸的确定方法的基础上,本申请还提出了一种容器逃逸的告警系统,如图5所示,包括:容器文件系统信息采集装置50、容器操作对象监控装置52、容器操作对象转化装置54、容器操作违规判定装置56和违规告警处理装置58。
其中,容器文件系统信息采集装置50,用于通过容器客户端组件获取当前运行时容器信息,包含容器标识,容器运行时PID NS和MNT NS容器的文件系统在宿主机上的存储位置,将”容器运行时PID NS、MNT NS”与”容器的文件系统在宿主机上的存储位置”存储至eBPF的哈希表中,其中key为”容器运行时PI D NS、MNT NS”。容器运行状态发生变化时,更新上述哈希表中的数据。
容器操作对象监控装置52,用于通过eBPF从内核监控文件的读写,当识别到容器进程对文件读写时,获取容器进程的PID NS和MNT NS。获取当前文件的vfsmount挂载点、通过vfsmount获取mount挂载信息。获取当前文件的目录项dentry 。
容器操作对象转化装置54,用于依据获取的目录项dentry结合vfsmount中的根节点通过递归查找获取当前挂载下的文件路径A;依据mount挂载信息的子成mnt_mountpoint,以mnt_mountpoint为基点递归查找父目录项,将获取挂载路径B。A为容器当前挂载下的操作路径,B为转化后的容器文件在宿主机上的存储位置。
容器操作违规判定装置56,用于依据PID NS、MNT NS,从哈希表中获取当前容器的文件系统在宿主机上的存储位置C。将路径B与路径C做比对,相同则为正常操作;不同则操作对象为非容器文件系统内的数据,存在容器逃逸风险。
违规告警处理装置58,用于针对存在逃逸风险的操作,将违规操作的路径A与B组合的全路径信息,通知用户,并拦截违规操作。
本申请基于eBPF技术监控容器进程操作对象,并借助LSM框架拦截违规行为,为容器逃逸防护提供了一种运行稳定、防御全面的解决方案。容器逃逸是容器面临的主要安全问题之一,破坏或获取容器范围以外的文件是容器逃逸主要目的,该方案可在不影响系统稳定运行的前提下解决此类问题,提升容器的隔离性,降低通过容器入侵业务宿主机的风险。
需要进行说明的是,LSM (Linux Security Module)是一个轻量的通用访问控制框架,它必须满足两方面的要求:对不需要它的人保持透明;让需要它的人从内核代码中解放出来,专注于控制策略和安全模块。
本申请的实施例还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述容器逃逸的确定方法。
上述计算机可读存储介质,存储的容器逃逸的确定方法,包括:获取处于运行状态的容器的操作对象;确定处于运行状态的容器的文件系统在宿主机中的预设存储路径;将处于运行状态的容器的操作对象转化为处于运行状态的容器的文件系统,并确定操作对象转化为处于运行状态的容器的文件系统后在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。
通过上述计算机可读存储介质存储的容器逃逸的确定方法,获取处于运行状态的容器的操作对象;确定处于运行状态的容器的文件系统在宿主机中的预设存储路径;将处于运行状态的容器的操作对象转化为处于运行状态的容器的文件系统,并确定操作对象转化为处于运行状态的容器的文件系统后在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险,通过将容器的操作对象转化为容器的文件系统,并确定操作对象转化成容器的文件系统后在宿主机中的实际存储路径,在将的预设存储路径和实际存储路径进行对比,确定容器的操作对象是否存在于容器文件系统中,达到了准确检测容器操作对象的目的,以提高容器逃逸检测准确率的效果。
在一个示例性实施例中,上述计算机可读存储介质可以包括但不限于:U盘、只读存储器(Read-Only Memory,简称为ROM)、随机存取存储器(Random Access Memory,简称为RAM)、移动硬盘、磁碟或者光盘等各种可以存储计算机程序的介质。
本申请的实施例还提供了一种计算机设备,包括存储器和处理器,该存储器中存储有计算机程序,该处理器被设置为运行计算机程序以执行上述任一项方法实施例中的步骤。
上述计算机设备执行的容器逃逸的确定方法,包括:获取处于运行状态的容器的操作对象;确定处于运行状态的容器的文件系统在宿主机中的预设存储路径;将处于运行状态的容器的操作对象转化为处于运行状态的容器的文件系统,并确定操作对象转化为处于运行状态的容器的文件系统后在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险。
通过上述计算机设备执行的容器逃逸的确定方法,获取处于运行状态的容器的操作对象;确定处于运行状态的容器的文件系统在宿主机中的预设存储路径;将处于运行状态的容器的操作对象转化为处于运行状态的容器的文件系统,并确定操作对象转化为处于运行状态的容器的文件系统后在宿主机中的实际存储路径;在预设存储路径与实际存储路径不一致的情况下,确定处于运行状态的容器的操作对象存在逃逸风险,通过将容器的操作对象转化为容器的文件系统,并确定操作对象转化成容器的文件系统后在宿主机中的实际存储路径,在将的预设存储路径和实际存储路径进行对比,确定容器的操作对象是否存在于容器文件系统中,达到了准确检测容器操作对象的目的,以提高容器逃逸检测准确率的效果。
在一个示例性实施例中,上述计算机设备还可以包括传输设备以及输入输出设备,其中,该传输设备和上述处理器连接,该输入输出设备和上述处理器连接。
本实施例中的具体示例可以参考上述实施例及示例性实施方式中所描述的示例,本实施例在此不再赘述。
显然,本领域的技术人员应该明白,上述的本申请的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请不限制于任何特定的硬件和软件结合。
以上仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (20)

1.一种容器逃逸的确定方法,其特征在于,包括:
获取处于运行状态的容器的当前操作对象;
获取所述处于运行状态的容器中的文件在宿主机中的预设存储路径;
确定所述当前操作对象在所述宿主机中的实际存储路径;
在所述预设存储路径与所述实际存储路径不一致的情况下,确定所述当前操作对象存在逃逸风险;检测针对所述处于运行状态的容器的镜像命令;响应于所述镜像命令,获取所述处于运行状态的容器的元数据,并基于所述元数据确定所述处于运行状态的容器的驱动镜像,其中,所述驱动镜像中包含所述预设存储路径;获取所述处于运行状态的容器的进程对应的第一命名空间和所述处于运行状态的容器的挂载点对应的第二命名空间;
将所述第一命名空间和所述第二命名空间为第一键,所述预设存储路径为所述第一键对应的第一值,存储到第一哈希表中,所述第一哈希表存储在eBPF中,在确定所述当前操作对象存在逃逸风险后,采用LSM框架拦截所述当前操作对象执行动作。
2.根据权利要求1所述的方法,其特征在于,所述处于运行状态的容器通过以下方式确定,包括:
通过容器访问客户端,获取容器环境下的所有容器;
遍历所有容器,从中选择处于运行状态的容器。
3.根据权利要求2所述的方法,其特征在于,在确定所述处于运行状态的容器之后,所述方法还包括:
将第一命名空间和第二命名空间确定为第二键;
将驱动镜像确定为所述第二键对应的第二值;
将述第二键和所述第二值组成键值对,存储到第二哈希表中。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
确定所述处于运行状态的容器的运行状态;
根据所述处于运行状态的容器的运行状态对第一哈希表和所述第二哈希表中存储的键值对进行更新。
5.根据权利要求4所述的方法,其特征在于,根据所述处于运行状态的容器的运行状态对第一哈希表和所述第二哈希表中存储的键值对进行更新,包括:
在所述处于运行状态的容器消亡的情况下,删除所述第一哈希表和所述第二哈希表中存储的所述处于运行状态的容器对应的键值对;
在有新的处于运行状态的容器诞生的情况下,在所述第一哈希表和所述第二哈希表中新增所述新的处于运行状态的容器对应的键值对。
6.根据权利要求1所述的方法,其特征在于,确定所述操作对象转化为所述处于运行状态的容器的文件系统后在所述宿主机中的实际存储路径,包括:
确定所述操作对象在所述处于运行状态的容器中的存储的路径信息;
将所述路径信息转化成所述实际存储路径。
7.根据权利要求6所述的方法,其特征在于,确定所述操作对象在所述处于运行状态的容器中的存储的路径信息,包括:
从所述操作对象的配置参数中获取用于存储所述操作对象在容器中存储路径的第一数据结构体;
从所述第一数据结构体中提取所述操作对象的路径信息。
8.根据权利要求7所述的方法,其特征在于,将所述路径信息转化成所述实际存储路径,包括:
从所述路径信息中确定所述操作对象对应的虚拟文件系统挂载点和目录项;
通过所述虚拟文件系统挂载点确定所述操作对象的挂载信息对应的指针地址;
通过所述指针地址确定所述挂载信息结构体;
从所述挂载信息结构体中提取所述操作对象的挂载点;
根据所述挂载点和所述目录项确定所述实际存储路径。
9.根据权利要求8所述的方法,其特征在于,根据所述挂载点和所述目录项确定所述实际存储路径,包括:
将所述挂载点与所述目录项关联,得到关联后的目录项;
以所述关联后的目录项为基点递归查找所述关联后的目录项的父目录项,直到查找到的父目录项与所述关联后的目录项相等,并将查找到的父目标项确定为第一目录项;
将多个所述第一目录项按照被查找到的顺序依次拼接,得到所述实际存储路径。
10.根据权利要求7所述的方法,其特征在于,在从所述第一数据结构体中提取所述操作对象的路径信息之后,所述方法还包括:
确定所述操作对象对应的虚拟文件系统挂载点的根目录;
基于所述根目录确定所述操作对象的操作路径。
11.根据权利要求10所述的方法,其特征在于,基于所述根目录确定所述操作对象的操作路径,包括:
以目录项为基点递归查找所述目录项的父目录项,直到查找到的父目录项与所述根目录相等,并将查找到的目录项确定为第二目录项;
将多个所述第二目录项按照被查找到的顺序依次拼接,得到所述操作对象的操作路径。
12.根据权利要求11所述的方法,其特征在于,在得到所述操作对象的操作路径之后,所述方法还包括:
将所述操作路径与所述实际存储路径进行拼接,得到所述操作对象的完整路径。
13.根据权利要求3所述的方法,其特征在于,所述方法还包括:
响应于监控指令,确定所述处于运行状态的容器运行的当前进程;
从所述当前进程中获取用于管理命名空间的数据结构体;
根据所述用于管理命名空间的数据结构体确定所述当前进程的进程命名空间和所述当前进程的挂载命名空间。
14.根据权利要求13所述的方法,其特征在于,根据所述用于管理命名空间的数据结构体确定所述当前进程的进程命名空间和所述当前进程的挂载命名空间,包括:
从所述管理命名空间的数据结构体中获取所述当前进程对应的进程命名空间和所述当前进程对应的挂载点命名空间;
从所述进程命名空间中提取预设数据类型的第一数据;
从所述挂载点命名空间中提取预设数据类型的第二数据;
将所述第一数据确定为所述进程命名空间标识;
将所述第二数据确定为所述挂载点命名空间标识。
15.根据权利要求14所述的方法,其特征在于,包括:确定所述当前进程的进程命名空间和所述当前进程的挂载命名空间之后,所述方法还包括:
将所述当前进程的进程命名空间和所述当前进程的挂载命名空间作为指定键从所述第二哈希表中选择与所述指定键相同的键;
将所述与所述指定键相同的键确定为第三键;
提取所述第三键对应的值,并将所述第三键对应的值确定为所述当前进程的预设存储路径。
16.根据权利要求12所述的方法,其特征在于,确定所述处于运行状态的容器的操作对象存在逃逸风险之后,所述方法还包括:
发出告警信息,并输出所述操作对象的完整路径。
17.根据权利要求16所述的方法,其特征在于,输出所述操作对象的完整路径之后,所述方法还包括
接收判断结果,所述判断结果基于所述操作对象的完整路径确定;
在所述判断结果指示所述操作对象非所述处于运行状态的容器中的文件的情况下,禁止所述操作对象执行动作。
18.一种容器逃逸的确定装置,其特征在于,包括:
获取模块,用于获取处于运行状态的容器的当前操作对象;
第一确定模块,用于确定所述处于运行状态的容器中的文件在宿主机中的预设存储路径;检测针对所述处于运行状态的容器的镜像命令;响应于所述镜像命令,获取所述处于运行状态的容器的元数据,并基于所述元数据确定所述处于运行状态的容器的驱动镜像,其中,所述驱动镜像中包含所述预设存储路径;获取所述处于运行状态的容器的进程对应的第一命名空间和所述处于运行状态的容器的挂载点对应的第二命名空间;将所述第一命名空间和所述第二命名空间为第一键,所述预设存储路径为所述第一键对应的第一值,存储到第一哈希表中,所述第一哈希表存储在eBPF中,在确定所述当前操作对象存在逃逸风险后,采用LSM框架拦截所述当前操作对象执行动作;
转化模块,用于确定所述当前操作对象在所述宿主机中的实际存储路径;
第二确定模块,用于在所述预设存储路径与所述实际存储路径不一致的情况下,确定所述处于运行状态的容器的操作对象存在逃逸风险。
19.一种计算机设备,其特征在于,包括存储器和处理器,所述处理器用于运行计算机程序,其中,所述处理器所在设备通过运行所述计算机程序执行权利要求1至17中任意一项所述容器逃逸的确定方法。
20.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括存储的计算机程序,其中,所述计算机可读存储介质所在设备通过运行所述计算机程序执行权利要求1至17中任意一项所述容器逃逸的确定方法。
CN202311307558.XA 2023-10-10 2023-10-10 容器逃逸的确定方法及装置 Active CN117056030B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311307558.XA CN117056030B (zh) 2023-10-10 2023-10-10 容器逃逸的确定方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311307558.XA CN117056030B (zh) 2023-10-10 2023-10-10 容器逃逸的确定方法及装置

Publications (2)

Publication Number Publication Date
CN117056030A CN117056030A (zh) 2023-11-14
CN117056030B true CN117056030B (zh) 2024-02-09

Family

ID=88667748

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311307558.XA Active CN117056030B (zh) 2023-10-10 2023-10-10 容器逃逸的确定方法及装置

Country Status (1)

Country Link
CN (1) CN117056030B (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020062980A1 (zh) * 2018-09-26 2020-04-02 上海瑾盛通信科技有限公司 文件访问追踪方法、装置、存储介质及终端
CN113761537A (zh) * 2021-07-29 2021-12-07 苏州浪潮智能科技有限公司 一种防范容器逃逸的方法、系统、设备、存储介质
CN114676424A (zh) * 2022-05-25 2022-06-28 杭州默安科技有限公司 一种容器逃逸检测与阻断方法、装置、设备及存储介质
CN115373798A (zh) * 2022-07-25 2022-11-22 国网新疆电力有限公司乌鲁木齐供电公司 一种智能物联终端容器逃逸攻击检测和防御方法
CN116820668A (zh) * 2023-06-15 2023-09-29 北京小佑网络科技有限公司 一种基于fanotify的容器逃逸检测方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020062980A1 (zh) * 2018-09-26 2020-04-02 上海瑾盛通信科技有限公司 文件访问追踪方法、装置、存储介质及终端
CN113761537A (zh) * 2021-07-29 2021-12-07 苏州浪潮智能科技有限公司 一种防范容器逃逸的方法、系统、设备、存储介质
CN114676424A (zh) * 2022-05-25 2022-06-28 杭州默安科技有限公司 一种容器逃逸检测与阻断方法、装置、设备及存储介质
CN115373798A (zh) * 2022-07-25 2022-11-22 国网新疆电力有限公司乌鲁木齐供电公司 一种智能物联终端容器逃逸攻击检测和防御方法
CN116820668A (zh) * 2023-06-15 2023-09-29 北京小佑网络科技有限公司 一种基于fanotify的容器逃逸检测方法及系统

Also Published As

Publication number Publication date
CN117056030A (zh) 2023-11-14

Similar Documents

Publication Publication Date Title
EP3882799B1 (en) Computer security event analysis
US9781144B1 (en) Determining duplicate objects for malware analysis using environmental/context information
CN108494622A (zh) 监控规则配置方法、装置及服务器
US9542403B2 (en) Symbolic-link identifying
CN112422484B (zh) 确定用于处理安全事件的剧本的方法、装置及存储介质
US10706032B2 (en) Unsolicited bulk email detection using URL tree hashes
CN104246785A (zh) 用于移动应用声誉的众包的系统和方法
CN110213207B (zh) 一种基于日志分析的网络安全防御方法及设备
CN116107846B (zh) 一种基于EBPF的Linux系统事件监控方法及装置
EP3707596A1 (en) Vulnerability assessment of containerised installation
CN109074454A (zh) 基于赝象对恶意软件自动分组
CN111563015B (zh) 数据监控方法及装置、计算机可读介质及终端设备
CN117056030B (zh) 容器逃逸的确定方法及装置
CN116048554A (zh) 容器镜像安全扫描方法、装置及电子设备和存储介质
US11140183B2 (en) Determining criticality of identified enterprise assets using network session information
CN111475783A (zh) 数据检测方法、系统及设备
CN117290840B (zh) 浏览器审计方法、装置、计算机设备和存储介质
CN114461484B (zh) 应用程序的关联性确定方法、装置、设备、介质和程序
US20240146746A1 (en) Auto-detection of observables and auto-disposition of alerts in an endpoint detection and response (edr) system using machine learning
CN111104671B (zh) 应用的标识确定方法和应用的检测方法
CN108256320B (zh) 微分域动态检测方法及装置、设备和存储介质
CN108932263B (zh) 一种关联对象追踪方法及装置
CN116954811A (zh) 容器权限检测方法、装置、设备及存储介质
CN117950962A (zh) 异常调用识别方法、装置、电子设备及介质
CN113901469A (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
GR01 Patent grant
GR01 Patent grant