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

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

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


背景技术:

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


技术实现要素:

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