一种文件处理方法、装置及存储介质与流程

文档序号:30517776发布日期:2022-06-25 03:53阅读:79来源:国知局
一种文件处理方法、装置及存储介质与流程

1.本技术涉及信息安全领域,尤其涉及一种文件处理方法、装置及存储介质。


背景技术:

2.传统的文件处理方法通常是将防病毒软件部署在宿主机上,以实现对宿主机中恶意文件的查杀功能。
3.当宿主机中运行容器时,由于宿主机和容器的文件系统彼此隔离,部署在宿主机上的防病毒软件只能查杀宿主机的恶意文件。若同时在宿主机和所有容器内部署防病毒软件,会占用宿主机大量的资源(例如:内存、中央处理器(central processing unit,cpu)资源、输入/输出(input/output,io)资源等)。因此,在容器应用场景下,传统的文件处理方法无法扫描宿主机和所有容器的文件,进而导致无法对所有恶意文件进行处理。


技术实现要素:

4.本技术提供一种文件处理方法、装置及存储介质,用于解决现有的文件处理方法中由于宿主机和容器的文件系统彼此隔离,无法扫描宿主机和所有容器的文件,进而导致无法对所有恶意文件进行处理的问题。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,提供一种文件处理方法,应用于目标容器,运行目标容器的宿主机上还运行除目标容器以外的至少一个容器。文件处理方法包括:接收文件处理指令。当文件处理指令表示处理至少一个容器的文件系统中的容器文件时,可以通过遍历第一容器监控列表中的至少一个容器的文件目录,然后,根据第一容器监控列表中至少一个容器的文件系统的文件系统标识,可以从至少一个容器的文件系统中获取容器文件的文件描述符,进而可以根据文件描述符,实现对容器文件执行文件扫描处理。当文件处理指令表示处理宿主机的文件系统中的宿主机文件时,可以通过遍历预先挂载的宿主机文件的根目录在目标容器中的挂载目录,进而实现对宿主机文件执行文件扫描处理。
7.可选的,该方法还包括:获取第二容器监控列表;调用预先安装的目标程序获取目标进程的进程信息;目标程序用于获取不同文件系统内的进程的进程信息;文件系统为宿主机的文件系统或第一容器的文件系统;第一容器为至少一个容器中的任一容器;进程信息包括:用于表示运行目标进程的文件系统的文件系统标识;当文件系统标识用于表示运行目标进程的文件系统为第一容器的文件系统时,基于进程信息,更新第二容器监控列表,以得到第一容器监控列表。
8.可选的,进程信息还包括:进程事件类型和进程标识;当进程标识表示目标进程为初始进程时,进程信息还包括第一容器的文件目录;当文件系统标识用于表示运行目标进程的文件系统为第一容器的文件系统时,基于进程信息,更新第二容器监控列表,以得到第一容器监控列表得方法具体包括:当进程标识表示目标进程为初始进程、且进程事件类型为进程创建事件时,在第二容器监控列表中添加第一容器的文件系统的文件系统标识和第
一容器的文件目录;当进程标识表示目标进程为初始进程、且进程事件类型为进程退出事件时,在第二容器监控列表中删除第一容器的文件系统的文件系统标识和第一容器的文件目录。
9.可选的,该方法还包括:挂载宿主机的文件系统的根目录;当根目录中不包括目标程序的安装信息时,向宿主机发送用于指示宿主机安装目标程序的指示消息,以使得宿主机响应于指示消息安装目标程序,并更新根目录;当根目录中包括目标程序的安装信息时,加载目标程序。
10.可选的,目标程序为扩展的伯克利数据包过滤器(extended berkeley packet filter,ebpf)程序。
11.可选的,当文件处理指令表示处理至少一个容器的文件系统中的容器文件时,遍历预先存储的第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符的方法具体包括:根据文件系统标识更新预先创建的进程的进程参数,以得到更新后的进程;进程用于从与进程的进程参数对应的文件系统中获取文件的文件描述符;调用更新后的进程,并根据至少一个容器的文件目录获取容器文件的文件描述符。
12.可选的,当文件处理指令表示处理至少一个容器的文件系统中的容器文件时,遍历预先存储的第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,并根据文件描述符对容器文件执行文件扫描处理之后,该方法还包括:当容器文件中包括恶意文件时,执行预设处理策略;预设处理策略包括:重启恶意文件对应的容器、删除恶意文件或者隔离恶意文件中的至少一项。
13.第二方面,提供一种文件处理装置,包括:接收单元、第一处理单元和第二处理单元;接收单元,用于接收文件处理指令;第一处理单元,用于当接收单元接收的文件处理指令表示处理至少一个容器的文件系统中的容器文件时,遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,并根据文件描述符对容器文件执行文件扫描处理;第一容器监控列表包括至少一个容器的文件系统的文件系统标识;第二处理单元,用于当接收单元接收的文件处理指令表示处理宿主机的文件系统中的宿主机文件时,遍历预先挂载的宿主机文件的根目录在目标容器中的挂载目录,对宿主机文件执行文件扫描处理。
14.可选的,文件处理装置还包括:第三处理单元;第三处理单元,用于获取第二容器监控列表;调用预先安装的目标程序获取目标进程的进程信息;目标程序用于获取不同文件系统内的进程的进程信息;文件系统为宿主机的文件系统或第一容器的文件系统;第一容器为至少一个容器中的任一容器;进程信息包括:用于表示运行目标进程的文件系统的文件系统标识;当文件系统标识用于表示运行目标进程的文件系统为第一容器的文件系统时,基于进程信息,更新第二容器监控列表,以得到第一容器监控列表。
15.可选的,进程信息还包括:进程事件类型和进程标识;当进程标识表示目标进程为初始进程时,进程信息还包括第一容器的文件目录;第三处理单元,具体用于:当进程标识表示目标进程为初始进程、且进程事件类型为进程创建事件时,在第二容器监控列表中添加第一容器的文件系统的文件系统标识和第一容器的文件目录;当进程标识表示目标进程为初始进程、且进程事件类型为进程退出事件时,在第二容器监控列表中删除第一容器的
文件系统的文件系统标识和第一容器的文件目录。
16.可选的,文件处理装置还包括:第四处理单元;第四处理单元,用于挂载宿主机的文件系统的根目录;当根目录中不包括目标程序的安装信息时,向宿主机发送用于指示宿主机安装目标程序的指示消息,以使得宿主机响应于指示消息安装目标程序,并更新根目录;当根目录中包括目标程序的安装信息时,加载目标程序。
17.可选的,目标程序为ebpf程序。
18.可选的,第一处理单元,具体用于:根据文件系统标识更新预先创建的进程的进程参数,以得到更新后的进程;进程用于从与进程的进程参数对应的文件系统中获取文件的文件描述符;调用更新后的进程,并根据至少一个容器的文件目录获取容器文件的文件描述符。
19.可选的,文件处理装置还包括:第五处理单元;第五处理单元,用于当容器文件中包括恶意文件时,执行预设处理策略;预设处理策略包括:重启恶意文件对应的容器、删除恶意文件或者隔离恶意文件中的至少一项。
20.第三方面,提供一种文件处理装置,包括存储器和处理器;存储器用于存储计算机执行指令,处理器与存储器通过总线连接;当文件处理装置运行时,处理器执行存储器存储的计算机执行指令,以使文件处理装置执行第一方面所述的文件处理方法。
21.该文件处理装置可以是网络设备,也可以是网络设备中的一部分装置,例如网络设备中的芯片系统。该芯片系统用于支持网络设备实现第一方面及其任意一种可能的实现方式中所涉及的功能,例如,获取、确定、发送上述文件处理方法中所涉及的数据和/或信息。该芯片系统包括芯片,也可以包括其他分立器件或电路结构。
22.第四方面,提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得该计算机执行第一方面所述的文件处理方法。
23.第五方面,还提供一种计算机程序产品,该计算机程序产品包括计算机指令,当计算机指令在文件处理装置上运行时,使得文件处理装置执行如上述第一方面所述的文件处理方法。
24.需要说明的是,上述计算机指令可以全部或者部分存储在第一计算机可读存储介质上。其中,第一计算机可读存储介质可以与文件处理装置的处理器封装在一起的,也可以与文件处理装置的处理器单独封装,本技术实施例对此不作限定。
25.本技术中第二方面、第三方面、第四方面以及第五方面的描述,可以参考第一方面的详细描述;并且,第二方面、第三方面、第四方面以及第五方面的有益效果,可以参考第一方面的有益效果分析,此处不再赘述。
26.在本技术实施例中,上述文件处理装置的名字对设备或功能模块本身不构成限定,在实际实现中,这些设备或功能模块可以以其他名称出现。只要各个设备或功能模块的功能和本技术类似,属于本技术权利要求及其等同技术的范围之内。
27.本技术的这些方面或其他方面在以下的描述中会更加简明易懂。
28.本技术提供的技术方案至少带来以下有益效果:
29.基于上述任一方面,本技术实施例提供了一种文件处理方法,目标容器在接收到文件处理指令后,可以根据文件处理指令确定待处理的文件类型。当待处理的文件类型为
容器文件时,可以通过遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,进而实现对容器文件的扫描。当待处理的文件类型为宿主机文件时,可以通过遍历宿主机文件在目标容器中的挂载目录,进而实现对宿主机文件的扫描。这样,目标容器即可以实现对宿主机文件的扫描处理,又可以实现对其他容器文件的扫描处理,解决了现有技术中无法处理宿主机和所有容器的多个文件系统中的文件的问题。
附图说明
30.图1为本技术实施例提供的一种文件处理系统的结构示意图;
31.图2为本技术实施例提供的一种目标容器的结构示意图;
32.图3为本技术实施例提供的一种文件处理装置的硬件结构示意图;
33.图4为本技术实施例提供的又一种文件处理装置的硬件结构示意图;
34.图5为本技术实施例提供的一种文件处理方法的流程示意图;
35.图6为本技术实施例提供的又一种文件处理方法的流程示意图;
36.图7为本技术实施例提供的又一种文件处理方法的流程示意图;
37.图8为本技术实施例提供的又一种文件处理方法的流程示意图;
38.图9为本技术实施例提供的又一种文件处理方法的流程示意图;
39.图10为本技术实施例提供的又一种文件处理方法的流程示意图;
40.图11为本技术实施例提供的又一种文件处理方法的流程示意图;
41.图12为本技术实施例提供的又一种文件处理方法的流程示意图;
42.图13为本技术实施例提供的一种文件处理装置的结构示意图。
具体实施方式
43.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
44.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
45.为了便于清楚描述本技术实施例的技术方案,在本技术实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分,本领域技术人员可以理解“第一”、“第二”等字样并不是在对数量和执行次序进行限定。
46.为了便于理解本技术,现对本技术涉及到的相关要素进行描述。
47.容器(container)技术
48.容器技术是一种进程级的隔离技术,可以共享宿主机的操作系统内核,实现基于操作系统能力的隔离。宿主机是运行容器的物理服务器。容器之间、容器与宿主机之间都是相互隔离的。容器技术可以同时将操作系统镜像和应用程序加载到宿主机中,有效减少了
对宿主机资源(例如:内存、中央处理器(central processing unit,cpu)资源、输入/输出(input/output,io)资源等)的占用。
49.linux内核
50.linux是一种开源电脑操作系统内核。linux内核的主要模块(或组件)分以下几个部分:存储管理、多中央处理单元(central processing unit,cpu)和进程管理、文件系统、设备管理和驱动、网络通信,以及系统的初始化(引导)、系统调用等。
51.命名空间(namespace)
52.命名空间机制是linux内核中用来实现linux资源隔离的一种手段。linux命名空间提供了一种内核级别隔离系统资源的方法,通过将系统的全局资源放在不同的命名空间中,来实现资源隔离的目的。在linux内核之上,可以有多个命名空间,对于每个命名空间来说,有专属于自己的进程,实现了linux的隔离性。目前linux命名空间主要有六大类型,包括:挂载(mount,mnt)命名空间(用于隔离文件系统和磁盘挂载点)、进程间通信(inter-process communication,ipc)命名空间(用于隔离进程间通信)、网络(net)命名空间(用于隔离网络)、分时系统(unix time-sharing system,uts)命名空间(用于隔离主机名和域名)、进程标识(process id,pid)命名空间(用于隔离进程)、用户(user)命名空间(用于隔离用户)。
53.扩展的伯克利数据包过滤器(extended berkeley packet filter,ebpf)
54.ebpf是最新加入linux内核的模块,ebpf程序支持自己的字节码语言,基于该字节码语言编译成内核原生代码,并且在内核中运行。
55.钩子函数(hook function)
56.钩子函数是指一类函数,是windows消息处理机制的一部分,通过设置“钩子”,应用程序可以在系统级对所有消息、事件进行过滤,访问在正常情况下无法访问的消息。钩子的本质是一段用以处理系统消息的程序,通过系统调用,把它挂入系统。
57.容器集群管理系统(kubernetes,k8s)
58.k8s是一种开源的,用于管理云平台中多个主机上的容器化的容器应用的编排管理工具。k8s提供了应用部署、规划、更新、维护等机制,用于让部署容器化的应用简单并且高效。
59.环形缓冲区(ring buffer)
60.环形缓冲区是一个先进先出的循环缓冲区,可以向通信程序提供对缓冲区的互斥访问。
61.如背景技术所描述,现有的文件处理方法中由于宿主机和容器的文件系统彼此隔离,无法扫描宿主机和所有容器的文件,进而导致无法对所有恶意文件进行处理。
62.针对上述问题,本技术实施例提供了一种文件处理方法,目标容器在接收到文件处理指令后,可以根据文件处理指令确定待处理的文件类型。当待处理的文件类型为容器文件时,可以通过遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,进而实现对容器文件的扫描。当待处理的文件类型为宿主机文件时,可以通过遍历宿主机文件在目标容器中的挂载目录,进而实现对宿主机文件的扫描。这样,目标容器即可以实现对宿主机文件的扫描处理,又可以实现对其他容器文件的扫描处理,解决了现有技术中无法处理宿主机和所有容器的多个文件系统中的
文件的问题。
63.该文件处理方法适用于文件处理系统。图1示出了该文件处理系统的一种结构。如图1所示,该文件处理系统包括:运行多个容器(包括目标容器101、第一容器102)的宿主机103。
64.其中,目标容器101、第一容器102和宿主机103的文件系统相互隔离。
65.图1中的多个容器通过容器技术运行在宿主机上,用于在宿主机103上部署应用程序。多个容器均可以被k8s等容器编排器管理。
66.其中,目标容器101用于对第一容器102、和宿主机103中的文件进行文件处理。
67.图1中的第一容器102可以是多个容器中除目标容器101以外的任意一个容器。
68.图1中的宿主机103是实际上存在的硬件专用独立主机或独立服务器。宿主机103可以是服务器集群(由多个服务器组成)中的一个服务器。
69.结合图1,如图2所示,目标容器101的操作系统根据执行权限分为内核态210(cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序)和用户态220(只能受限的访问内存,且不允许访问外围设备,占用cpu的能力被剥夺,cpu资源可以被其他程序获取)。
70.目标容器101运行在内核态210的功能模块包括:目标程序运行模块211(包括容器进程监控子模块212,用于监控容器进程的创建、退出事件,同时捕获事件中的进程信息,并将进程信息发送给用户态220中的容器生命周期监控模块222)。
71.目标容器101运行在用户态220的功能模块包括:目标程序加载模块221(在其他模块运行之前启动,用于将安装在宿主机103上的目标程序加载至内核态210运行)、容器生命周期监控模块222(用于根据容器进程监控子模块212发送的进程信息,更新容器监控列表)、宿主机文件扫描模块223(用于根据文件处理指令,遍历宿主机文件的根目录在目标容器中的挂载目录,对宿主机文件进行扫描,并向文件处理模块225转发恶意文件的文件信息)、容器文件扫描模块224(用于根据文件处理指令,遍历容器生命周期监控模块222更新的容器监控列表中的容器的文件目录,对容器的文件进行扫描,并向文件处理模块225转发恶意文件的文件信息)、文件处理模块225(用于根据宿主机文件扫描模块223或容器文件扫描模块224发送的恶意文件的文件信息,对恶意文件进行处理)。
72.可选的,宿主机文件扫描模块223和容器文件扫描模块224可以是两个独立部署的功能模块也可以是文件扫描模块中的两个子模块。本技术实施例对此不作任何限制。
73.为了便于理解,本技术主要以宿主机文件扫描模块223和容器文件扫描模块224相互独立部署为例进行说明。
74.文件处理系统中的宿主机103包括图3或图4所示通信装置所包括的元件。下面以图3和图4所示的通信装置为例,介绍宿主机103的硬件结构。
75.如图3所示,为本技术实施例提供的通信装置的一种硬件结构示意图。该通信装置包括处理器21,存储器22、通信接口23、总线24。处理器21,存储器22以及通信接口23之间可以通过总线24连接。
76.处理器21是通信装置的控制中心,可以是一个处理器,也可以是多个处理元件的统称。例如,处理器21可以是一个通用中央处理单元(central processing unit,cpu),也可以是其他通用处理器等。其中,通用处理器可以是微处理器或者是任何常规的处理器等。
77.作为一种实施例,处理器21可以包括一个或多个cpu,例如图2中所示的cpu 0和cpu 1。
78.存储器22可以是只读存储器(read-only memory,rom)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,ram)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(electrically erasable programmable read-only memory,eeprom)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
79.一种可能的实现方式中,存储器22可以独立于处理器21存在,存储器22可以通过总线24与处理器21相连接,用于存储指令或者程序代码。处理器21调用并执行存储器22中存储的指令或程序代码时,能够实现本发明下述实施例提供的文件处理方法。
80.另一种可能的实现方式中,存储器22也可以和处理器21集成在一起。
81.通信接口23,用于通信装置与其他设备通过通信网络连接,所述通信网络可以是以太网,无线接入网,无线局域网(wireless local area networks,wlan)等。通信接口23可以包括用于接收数据的接收单元,以及用于发送数据的发送单元。
82.总线24,可以是工业标准体系结构(industry standard architecture,isa)总线、外部设备互连(peripheral component interconnect,pci)总线或扩展工业标准体系结构(extended industry standard architecture,eisa)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图2中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
83.图4示出了本发明实施例中通信装置的另一种硬件结构。如图4所示,通信装置可以包括处理器31以及通信接口32。处理器31与通信接口32耦合。
84.处理器31的功能可以参考上述处理器21的描述。此外,处理器31还具备存储功能,可以起上述存储器22的功能。
85.通信接口32用于为处理器31提供数据。该通信接口32可以是通信装置的内部接口,也可以是通信装置对外的接口(相当于通信接口23)。
86.需要指出的是,图3(或图4)中示出的结构并不构成对通信装置的限定,除图3(或图4)所示部件之外,该通信装置可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
87.下面结合附图对本技术实施例提供的文件处理方法进行详细介绍。
88.如图5所示,本技术实施例提供的文件处理方法应用于目标容器,运行目标容器的宿主机上还运行除目标容器以外的至少一个容器。文件处理方法包括:s501-s503。
89.s501、目标容器接收文件处理指令。
90.其中,文件处理指令用于指示目标容器处理至少一个容器的文件系统中的容器文件或处理宿主机的文件系统中的宿主机文件中的至少一个。
91.可选的,文件处理指令可以包括指令的配置参数。
92.结合图2,当文件处理指令包括指令的配置参数时,目标容器的宿主机文件扫描模块223和容器文件扫描模块224接收文件处理指令之后,可以解析指令的配置参数,确定待处理的文件的文件系统类型。
93.s502、当文件处理指令表示处理至少一个容器的文件系统中的容器文件时,目标容器遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,并根据文件描述符对容器文件执行文件扫描处理。
94.其中,第一容器监控列表包括至少一个容器的文件系统的文件系统标识。
95.文件扫描处理用于确定容器文件中是否包括恶意文件。
96.可选的,结合图2,第一容器监控列表可以是容器生命周期监控模块222通过获取容器进程实时生成的容器监控列表。
97.结合图2,当文件处理指令表示处理至少一个容器的文件系统中的容器文件时,目标容器的容器文件扫描模块224可以遍历容器生命周期监控模块222中的第一容器监控列表中的至少一个容器的文件目录。然后,容器文件扫描模块224可以从至少一个容器的文件系统中获取容器文件的文件描述符,并根据文件描述符对容器文件执行文件扫描处理。
98.可选的,结合图2,第一容器监控列表还可以是容器生命周期监控模块222通过周期性的向至少一个容器对应的至少一个应用程序接口(application programming interface,api)发送用于请求至少一个容器的运行状态的请求消息。接着,至少一个api响应于请求消息,向容器生命周期监控模块222发送至少一个容器的运行状态。然后,容器生命周期监控模块222可以根据至少一个容器运行状态生成容器监控列表。
99.s503、当文件处理指令表示处理宿主机的文件系统中的宿主机文件时,目标容器遍历预先挂载的宿主机文件的根目录在目标容器中的挂载目录,对宿主机文件执行文件扫描处理。
100.其中,文件扫描处理用于确定宿主机文件中是否包括恶意文件。
101.结合图2,当文件处理指令表示处理宿主机的文件系统中的宿主机文件时,目标容器的宿主机文件扫描模块223可以遍历预先挂载的宿主机文件的根目录在目标容器中的挂载目录。然后,宿主机文件扫描模块223可以对挂载目录中的宿主机文件执行文件扫描处理。
102.在一种实施例中,结合图5,如图6所示,s501之后,文件处理方法还包括:s601-s602。
103.s601、目标容器解析文件处理指令,确定是否处理容器文件。
104.当文件处理指令表示处理容器文件时,执行s502。
105.当文件处理指令表示不处理容器文件时,执行文件处理指令中的其他操作。
106.s602、目标容器解析文件处理指令,确定是否处理宿主机文件。
107.当文件处理指令表示处理宿主机文件时,执行s503。
108.当文件处理指令表示不处理宿主机文件时,执行文件处理指令中的其他操作。
109.本技术实施例对于s601和s602的先后顺序不作限定。目标容器可以先执行s601,后执行s602;也可以先执行s602,后执行s601;还可以同时执行s601和s602。
110.在一种实施例中,如图7所示,文件处理方法还包括:s701-s703。
111.s701、目标容器获取第二容器监控列表。
112.结合图2,目标容器启动后,容器生命周期监控模块222向至少一个容器对应的至少一个api发送用于请求至少一个容器的运行状态的请求消息。接着,至少一个api响应于请求消息,向容器生命周期监控模块222发送至少一个容器的运行状态。然后,容器生命周
期监控模块222可以根据至少一个容器运行状态生成第二容器监控列表。
113.s702、目标容器调用预先安装的目标程序获取目标进程的进程信息。
114.其中,目标程序用于获取不同文件系统内的进程的进程信息。
115.文件系统为宿主机的文件系统或第一容器的文件系统,第一容器为至少一个容器中的任一容器。
116.进程信息包括:用于表示运行目标进程的文件系统的文件系统标识。
117.可选的,文件系统标识可以为mnt命名空间id,也可以为其他用于表示文件系统的标识,本技术对此不作限定。
118.可选的,进程信息还可以包括:进程事件类型、进程标识、进程id、ipc命名空间id、net命名空间id、uts命名空间id、user命名空间id等。
119.可选的,进程标识可以为pid命名空间id,也可以为其他用于表示进程的标识,本技术对此不作限定。
120.可选的,进程事件类型可以为进程创建事件、进程退出事件等。
121.可选的,目标程序可以为ebpf程序。
122.结合图2,当文件系统标识为mnt命名空间id、且目标程序为ebpf程序时,目标容器中运行ebpf程序的容器进程监控子模块212可以通过设置进程操作事件钩子函数,在系统级对所有事件进行过滤,以得到进程操作事件。接着,容器进程监控子模块212从进程操作事件中获取目标进程的mnt命名空间id等进程信息。
123.s703、当文件系统标识用于表示运行目标进程的文件系统为第一容器的文件系统时,目标容器基于进程信息,更新第二容器监控列表,以得到第一容器监控列表。
124.结合图2,当文件系统标识为mnt命名空间id时,目标容器可以将进程信息中的mnt命名空间id对应的容器确定为第一容器。然后,目标容器可以基于进程信息,更新第二容器监控列表,以得到第一容器监控列表。
125.在一种实施例中,结合图7,如图8所示,当进程标识表示目标进程为初始进程时,进程信息还包括第一容器的文件目录。s703中,当文件系统标识用于表示运行目标进程的文件系统为第一容器的文件系统时,目标容器基于进程信息,更新第二容器监控列表,以得到第一容器监控列表的方法具体包括:s801-s802。
126.s801、当进程标识表示目标进程为初始进程、且进程事件类型为进程创建事件时,目标容器在第二容器监控列表中添加第一容器的文件系统的文件系统标识和第一容器的文件目录。
127.结合图2,当文件系统标识为mnt命名空间id、且进程标识为pid命名空间id时,容器进程监控子模块212获取到进程信息之后,可以通过环形缓冲区向容器生命周期监控模块222转发进程信息。接着,容器生命周期监控模块222可以根据pid命名空间id判断目标进程是否为初始进程。
128.当pid命名空间id等于1时,表示目标进程为初始进程。在这种情况下,当容器生命周期监控模块222确定目标进程的进程事件类型为进程创建事件时,可以在第二容器监控列表中添加目标进程对应的容器的mnt命名空间id和文件目录。
129.s802、当进程标识表示目标进程为初始进程、且进程事件类型为进程退出事件时,目标容器在第二容器监控列表中删除第一容器的文件系统的文件系统标识和第一容器的
文件目录。
130.结合图2,当文件系统标识为mnt命名空间id、且进程标识为pid命名空间id时,容器进程监控子模块212获取到进程信息之后,可以通过环形缓冲区向容器生命周期监控模块222转发进程信息。接着,容器生命周期监控模块222可以根据pid命名空间id判断目标进程是否为初始进程。
131.当pid命名空间id等于1时,表示目标进程为初始进程。在这种情况下,当容器生命周期监控模块222确定目标进程的进程事件类型为进程退出事件时,可以在第二容器监控列表中删除目标进程对应的容器的mnt命名空间id和文件目录。
132.在一种实施例中,结合图5,如图9所示,s501之前,文件处理方法还包括:s901-s903。
133.s901、目标容器挂载宿主机的文件系统的根目录。
134.目标容器启动后,将宿主机的文件系统的根目录挂载进容器中,以使得目标容器可以在目标容器中扫描宿主机的文件。
135.s902、当根目录中不包括目标程序的安装信息时,目标容器向宿主机发送用于指示宿主机安装目标程序的指示消息,以使得宿主机响应于指示消息安装目标程序,并更新根目录。
136.可选的,目标程序的安装信息可以为目标程序的安装位置、安装目录等信息。
137.结合图2,当目标程序为ebpf程序时,若根目录中不包括ebpf程序的安装信息,目标程序加载模块221可以向宿主机发送用于指示宿主机安装ebpf程序的指示消息。宿主机响应于指示消息,安装ebpf程序,并更新根目录。
138.s903、当根目录中包括目标程序的安装信息时,目标容器加载所述目标程序。
139.结合图2,当目标程序为ebpf程序时,若根目录中包括ebpf程序的安装信息,目标程序加载模块221将ebpf程序加载到内核态210运行。
140.在一种实施例中,结合图5,如图10所示,s502中,当文件处理指令表示处理至少一个容器的文件系统中的容器文件时,目标容器遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,并根据文件描述符对容器文件执行文件扫描处理的方法具体包括:s1001-s1002。
141.s1001、目标容器根据文件系统标识更新预先创建的进程的进程参数,以得到更新后的进程。
142.其中,进程用于从与进程的进程参数对应的文件系统中获取文件的文件描述符。
143.结合图2,当文件系统标识为mnt命名空间id时,容器文件扫描模块224在启动后预先创建进程。在接收到容器生命周期监控模块222转发的文件信息后,容器文件扫描模块224可以阻塞当前运行的扫描进程。然后,容器文件扫描模块224可以根据容器文件的mnt命名空间id,调用setns函数将预先创建的进程与容器文件的mnt命名空间关联,以得到与容器文件在同一mnt命名空间的更新后的进程。
144.s1002、目标容器调用更新后的进程,并根据至少一个容器的文件目录获取容器文件的文件描述符。
145.结合图2,当文件系统标识为mnt命名空间id时,容器文件扫描模块224可以调用与目标文件在同一mnt命名空间的更新后的进程,根据至少一个容器的文件目录获取容器文
件的存储位置。然后,容器文件扫描模块224可以在容器文件的mnt命名空间中打开容器文件,从容器文件中获取文件描述符。接着,更新后的进程通过子进程与父进程之间的通信,向扫描进程发送文件描述符,以使得容器文件扫描模块224可以在至少一个容器的mnt命名空间中获取并扫描容器文件。
146.在一种实施例中,结合图5,如图11所示,s502之后,文件处理方法还包括:s1101。
147.s1101、当容器文件中包括恶意文件时,目标容器执行预设处理策略。
148.其中,预设处理策略包括:重启恶意文件对应的容器、删除恶意文件或者隔离恶意文件中的至少一项。
149.结合图2,当预设处理策略为重启第一容器时,文件处理模块225可以调用对应的应用程序接口api重启恶意文件对应的容器。
150.可选的,目标容器可以根据恶意文件的风险等级、恶意文件的病毒类型等预先配置的规则执行预设处理策略。
151.目标容器根据恶意文件的风险等级执行预设处理策略的方法可以为:当恶意文件的风险等级小于或者等于预设的低风险等级时,不处理恶意文件。当恶意文件的风险等级大于预设的低风险等级、且小于或者等于预设的中风险等级时,隔离恶意文件。当恶意文件的风险等级大于预设的中风险等级、且小于或者等于预设的高风险等级时,删除恶意文件。当恶意文件的风险等级大于预设的高风险等级时,重启存储恶意文件的容器。
152.在一种实施例中,如图12所示,文件处理方法还包括:s1201-s1204。
153.s1201、当文件扫描处理的结果表示存在恶意文件时,目标容器确定恶意文件是否为宿主机文件。
154.可选的,目标容器确定恶意文件是否为宿主机文件的方法可以为:目标容器根据恶意文件的文件系统标识判断存储恶意文件的文件系统是否为宿主机的文件系统。
155.结合图2,当文件系统标识为mnt命名空间id时,文件处理模块225根据文件信息判断存储恶意文件的文件系统为宿主机的文件系统的方法可以为:发送存在恶意文件的文件扫描处理的结果的模块为宿主机文件扫描模块223,或发现恶意文件的mnt命名空间id为宿主机的mnt命名空间id。
156.当存储恶意文件的文件系统为宿主机的文件系统时,执行s1202。
157.当存储恶意文件的文件系统不是宿主机的文件系统时,执行s1204。
158.s1202、目标容器根据预设处理策略,判断是否需要重启恶意文件对应的容器。
159.当需要重启恶意文件对应的容器时,执行s1203。
160.当不需要重启恶意文件对应的容器时,执行s1204。
161.s1203、目标容器重启恶意文件对应的容器。
162.结合图2,文件处理模块225可以根据预设的配置规则,调用第一容器对应的api重启第一容器。
163.s1204、目标容器根据预设处理策略,对恶意文件进行处理。
164.综上,本技术实施例提供了一种文件处理方法,目标容器在接收到文件处理指令后,可以根据文件处理指令确定待处理的文件类型。当待处理的文件类型为容器文件时,可以通过遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,进而实现对容器文件的扫描。当待处理的文件类型为宿主
机文件时,可以通过遍历宿主机文件在目标容器中的挂载目录,进而实现对宿主机文件的扫描。这样,目标容器即可以实现对宿主机文件的扫描处理,又可以实现对其他容器文件的扫描处理,解决了现有技术中无法处理宿主机和所有容器的多个文件系统中的文件的问题。
165.上述主要从方法的角度对本技术实施例提供的方案进行了介绍。为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本技术能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
166.本技术实施例可以根据上述方法示例对文件处理装置进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。可选的,本技术实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
167.如图13所示,为本技术实施例提供的一种文件处理装置的结构示意图。该文件处理装置可以用于执行图5、图6、图7、图8、图9、图10、图11或者图12所示的文件处理的方法。图13所示文件处理装置包括:接收单元1301、第一处理单元1302和第二处理单元1303。
168.接收单元1301,用于接收文件处理指令。例如,结合图5,接收单元1301用于执行s501。
169.第一处理单元1302,用于当接收单元1301接收的文件处理指令表示处理至少一个容器的文件系统中的容器文件时,遍历第一容器监控列表中的至少一个容器的文件目录,从至少一个容器的文件系统中获取容器文件的文件描述符,并根据文件描述符对容器文件执行文件扫描处理。例如,结合图5,第一处理单元1302用于执行s502。
170.第二处理单元1303,用于当接收单元1301接收的文件处理指令表示处理宿主机的文件系统中的宿主机文件时,遍历预先挂载的宿主机文件的根目录在目标容器中的挂载目录,对宿主机文件执行文件扫描处理。例如,结合图5,第二处理单元1303用于执行s503。
171.可选的,文件处理装置还包括:第三处理单元1304。
172.第三处理单元1304,用于获取第二容器监控列表;调用预先安装的目标程序获取目标进程的进程信息;当文件系统标识用于表示运行目标进程的文件系统为第一容器的文件系统时,基于进程信息,更新第二容器监控列表,以得到第一容器监控列表。例如,结合图7,第三处理单元1304用于执行s701-s703。
173.可选的,第三处理单元1304,具体用于当进程标识表示目标进程为初始进程、且进程事件类型为进程创建事件时,在第二容器监控列表中添加第一容器的文件系统的文件系统标识和第一容器的文件目录;当进程标识表示目标进程为初始进程、且进程事件类型为进程退出事件时,在第二容器监控列表中删除第一容器的文件系统的文件系统标识和第一容器的文件目录。例如,结合图8,第三处理单元1304用于执行s801-s802。
174.可选的,文件处理装置还包括:第四处理单元1305。
175.第四处理单元1305,用于挂载宿主机的文件系统的根目录;当根目录中不包括目
标程序的安装信息时,向宿主机发送用于指示宿主机安装目标程序的指示消息,以使得宿主机响应于指示消息安装目标程序,并更新根目录;当根目录中包括目标程序的安装信息时,加载目标程序。例如,结合图9,第四处理单元1305用于执行s901-s903。
176.可选的,第一处理单元1302,具体用于根据文件系统标识更新预先创建的进程的进程参数,以得到更新后的进程;调用更新后的进程,并根据至少一个容器的文件目录获取容器文件的文件描述符。例如,结合图10,第一处理单元1302用于执行s1001-s1002。
177.可选的,文件处理装置还包括:第五处理单元1306。
178.第五处理单元1306,用于当容器文件中包括恶意文件时,执行预设处理策略;预设处理策略包括:重启恶意文件对应的容器、删除恶意文件或者隔离恶意文件中的至少一项。例如,结合图11,第五处理单元1306用于执行s1101。
179.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如上述实施例提供的文件处理方法。
180.本技术实施例还提供一种计算机程序,该计算机程序可直接加载到存储器中,并含有软件代码,该计算机程序经由计算机载入并执行后能够实现上述实施例提供的文件处理方法。
181.本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机可读存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
182.通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
183.在本技术所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
184.另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介
质中。基于这样的理解,本技术实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、rom、ram、磁碟或者光盘等各种可以存储程序代码的介质。
185.以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1