CN112541182B - 内核vfs层***修复方法、装置、设备及存储介质 - Google Patents

内核vfs层***修复方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN112541182B
CN112541182B CN202011542234.0A CN202011542234A CN112541182B CN 112541182 B CN112541182 B CN 112541182B CN 202011542234 A CN202011542234 A CN 202011542234A CN 112541182 B CN112541182 B CN 112541182B
Authority
CN
China
Prior art keywords
file
accessed
modified
target
layer system
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
CN202011542234.0A
Other languages
English (en)
Other versions
CN112541182A (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 360 Intelligent Security Technology Co Ltd
Original Assignee
Suzhou 360 Intelligent Security 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 360 Intelligent Security Technology Co Ltd filed Critical Suzhou 360 Intelligent Security Technology Co Ltd
Priority to CN202011542234.0A priority Critical patent/CN112541182B/zh
Publication of CN112541182A publication Critical patent/CN112541182A/zh
Application granted granted Critical
Publication of CN112541182B publication Critical patent/CN112541182B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及计算机技术领域,公开了一种内核VFS层***修复方法、装置、设备及存储介质,包括:在接收到补丁包时,从补丁包中提取文件列表和diff文件,补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;将文件列表加载到内存中,根据文件列表确定修改文件,并对修改文件进行标识;在接收到访问请求时,根据访问请求确定待访问文件;在待访问文件存在标识时,根据文件列表和所述diff文件确定待访问文件对应的目标差异文件;根据目标差异文件和待访问文件生成目标文件,从而不依赖底层文件***便可根据目标差异文件和待访问文件生成目标文件,不需要占用过多的内存空间便可完成漏洞修复。

Description

内核VFS层***修复方法、装置、设备及存储介质
技术领域
本发明涉及计算机技术领域,尤其涉及一种内核VFS层***修复方法、装置、设备及存储介质。
背景技术
目前,针对Linux VFS层进行漏洞修复时,修复的主要目标是文件,但是,现有的漏洞修复方法都较为复杂,依赖底层文件***,在进行漏洞修复时需要占用较多的内存空间。
上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。
发明内容
本发明的主要目的在于提出一种内核VFS层***修复方法、装置、设备及存储介质,旨在解决现有技术中漏洞修复依赖底层文件***,需要占用较多内存空间的技术问题。
为实现上述目的,本发明提供一种内核VFS层***修复方法,所述内核VFS层***修复方法包括以下步骤:
在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;
将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;
在接收到访问请求时,根据所述访问请求确定待访问文件;
在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;
根据所述目标差异文件和所述待访问文件生成目标文件。
可选地,所述将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识,包括:
将所述文件列表加载到内存中,并根据所述文件列表确定修改文件信息;
从所述修改文件信息中提取修改文件名称,并根据所述修改名称确定修改文件;
根据所述修改文件添加标识信息,以对所述修改文件进行标识。
可选地,所述根据所述修改文件添加标识信息,以对所述修改文件进行标识,包括:
获取所述修改文件对应的索引节点;
在所述索引节点中添加标识信息,以对所述修改文件进行标识。
可选地,所述在接收到访问请求时,根据所述访问请求确定待访问文件,包括:
在通过hook层检测到访问请求时,接收所述访问请求;
从所述访问请求中提取待访问文件信息,并从所述待访问文件信息中提取待访问文件名称;
根据所述待访问文件名称确定待访问文件。
可选地,所述根据所述待访问文件名称确定待访问文件之后,还包括:
通过hook层和所述待访问文件名称进行hook,以获取所述待访问文件。
可选地,所述在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件之前,还包括:
对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识。
可选地,所述对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识,包括:
获取所述待访问文件对应的待检测索引节点;
检测所述待检测索引节点中是否存在标识信息,获得检测结果;
根据所述检测结果判断所述待访问文件中是否存在标识。
可选地,所述根据所述检测结果判断所述待访问文件中是否存在标识之后,还包括:
在所述检测结果为所述待检测索引节点中存在标识信息时,判定所述待访问文件中存在标识;
在所述检测结果为所述待检测索引节点中不存在标识信息时,判定所述待访问文件中不存在标识。
可选地,所述对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识之后,还包括:
在所述待访问文件不存在标识时,将所述待访问文件作为目标文件。
可选地,所述在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件,包括:
在所述待访问文件存在标识时,在所述文件列表中匹配与所述待访问文件对应的目标修改文件信息;
根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件。
可选地,所述根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件之后,还包括:
从所述目标修改文件信息中提取目标文件路径;
根据所述目标文件路径从所述diff文件中获取所述目标差异文件。
可选地,所述根据所述目标差异文件和所述待访问文件生成目标文件,包括:
从所述目标差异文件中提取目标差异数据;
根据所述目标差异数据对所述待访问文件进行数据还原,以生成目标文件。
此外,为实现上述目的,本发明还提出一种内核VFS层***修复装置,所述内核VFS层***修复装置包括:
补丁包模块,用于在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;
文件标识模块,用于将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;
文件访问模块,用于在接收到访问请求时,根据所述访问请求确定待访问文件;
差异文件模块,用于在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;
目标文件模块,用于根据所述目标差异文件和所述待访问文件生成目标文件。
可选地,所述文件标识模块,还用于将所述文件列表加载到内存中,并根据所述文件列表确定修改文件信息;从所述修改文件信息中提取修改文件名称,并根据所述修改名称确定修改文件;根据所述修改文件添加标识信息,以对所述修改文件进行标识。
可选地,所述文件标识模块,还用于获取所述修改文件对应的索引节点;在所述索引节点中添加标识信息,以对所述修改文件进行标识。
可选地,所述文件访问模块,还用于在通过hook层检测到访问请求时,接收所述访问请求;从所述访问请求中提取待访问文件信息,并从所述待访问文件信息中提取待访问文件名称;根据所述待访问文件名称确定待访问文件。
可选地,所述文件访问模块,还用于通过hook层和所述待访问文件名称进行hook,以获取所述待访问文件。
可选地,所述差异文件模块,还用于对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识。
此外,为实现上述目的,本发明还提出一种内核VFS层***修复设备,所述内核VFS层***修复设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的内核VFS层***修复程序,所述内核VFS层***修复程序被处理器执行时实现如上所述的内核VFS层***修复方法的步骤。
此外,为实现上述目的,本发明还提出一种存储介质,所述存储介质上存储有内核VFS层***修复程序,所述内核VFS层***修复程序被处理器执行时实现如上所述的内核VFS层***修复方法的步骤。
本发明提出的内核VFS层***修复方法,通过在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;在接收到访问请求时,根据所述访问请求确定待访问文件;在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;根据所述目标差异文件和所述待访问文件生成目标文件,从而不依赖底层文件***便可根据目标差异文件和待访问文件生成目标文件,不需要占用过多的内存空间便可完成漏洞修复。
附图说明
图1是本发明实施例方案涉及的硬件运行环境的内核VFS层***修复设备结构示意图;
图2为本发明内核VFS层***修复方法第一实施例的流程示意图;
图3为本发明内核VFS层***修复方法一实施例的有漏洞文件和无漏洞文件diff示意图;
图4为本发明内核VFS层***修复方法第二实施例的流程示意图;
图5为本发明内核VFS层***修复方法一实施例的文件标识示意图;
图6为本发明内核VFS层***修复方法第三实施例的流程示意图;
图7为本发明内核VFS层***修复方法一实施例的存在标识的标识检测示意图;
图8为本发明内核VFS层***修复方法一实施例的不存在标识的标识检测示意图;
图9为本发明内核VFS层***修复方法第四实施例的流程示意图;
图10为本发明内核VFS层***修复装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
参照图1,图1为本发明实施例方案涉及的硬件运行环境的内核VFS层***修复设备结构示意图。
如图1所示,该内核VFS层***修复设备可以包括:处理器1001,例如中央处理器(Central Processing Unit,CPU),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(Display)、输入单元比如按键,可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如WI-FI接口)。存储器1005可以是高速随机存取存储器(Random Access Memory,RAM)存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
本领域技术人员可以理解,图1中示出的设备结构并不构成对内核VFS层***修复设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
如图1所示,作为一种存储介质的存储器1005中可以包括操作***、网络通信模块、用户接口模块以及内核VFS层***修复程序。
在图1所示的内核VFS层***修复设备中,网络接口1004主要用于连接外网,与其他网络设备进行数据通信;用户接口1003主要用于连接用户设备,与所述用户设备进行数据通信;本发明设备通过处理器1001调用存储器1005中存储的内核VFS层***修复程序,并执行本发明实施例提供的内核VFS层***修复方法。
基于上述硬件结构,提出本发明内核VFS层***修复方法实施例。
参照图2,图2为本发明内核VFS层***修复方法第一实施例的流程示意图。
在第一实施例中,所述内核VFS层***修复方法包括以下步骤:
步骤S10,在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到。
需要说明的是,本实施例的执行主体可为内核VFS层***修复设备,例如终端设备,还可为其他可实现相同或相似功能的设备,本实施例对此不作限制,在本实施例中,以终端设备为例进行说明。
需要说明的是,本实施例的技术方案可应用于Linux***,VFS(virtual FileSystem)的作用就是采用标准的Linux***调用读写位于不同物理介质上的不同文件***,即为各类文件***提供了一个统一的操作界面和应用编程接口。VFS是一个可以让open()、read()、write()等***调用不用关心底层的存储介质和文件***类型就可以工作的粘合层。
应当理解的是,服务器在检测到有漏洞文件时,可获取所述有漏洞文件对应的无漏洞文件,将由漏洞文件与无漏洞文件进行diff,得到补丁包。其中,diff命令是在最简单的情况下,比较两个文件的不同,如果使用“-”代替文件参数,则要比较的内容来自标准输入。diff命令是以逐行的方式比较文本文件的异同之处,如果指定比较的是目录的时候,diff命令会比较两个目录下名字相同的文本文件,但不会比较其中子目录。
在具体实现中,如图3所示,图3为有漏洞文件和无漏洞文件diff示意图,set1为有漏洞文件,包括:1、2、3、4、5,set2为无漏洞文件,包括:1、2、3'、4、5',将set1与set2进行diff后可发现,set1中的3、5与set2中的3'、5'存在差异,因此,可将3'、5'作为diff文件,进而根据3'、5'生成补丁包。
应当理解的是,本实施例中的补丁包由diff文件和文件列表这两部分组成,差异文件为diff的内容,而文件列表是对diff文件进行描述的列表,例如,文件列表中可以记录diff文件的文件名称、文件大小以及文件路径等文件信息,还可记录其他文件信息,本实施例对此不作限制。
因此,服务器在将有漏洞文件和无漏洞文件进行diff得到diff文件后,可获取diff文件对应的diff文件信息,并根据所述diff文件信息生成文件列表,根据所述diff文件和所述文件列表生成补丁包。如图3所示,图3中的补丁包由diff文件:3'、5'和文件列表list这两部分组成。
应当理解的是,服务器在生成补丁包后,将补丁包发送给终端设备,终端设备在接收到补丁包后,便可对补丁包进行解压,从而获得diff文件和文件列表。
步骤S20,将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识。
可以理解的是,终端设备在获得文件列表后,可将文件列表加载到内存中,并且根据文件列表确定修改文件,并对修改文件进行标识。
在具体实现中,根据文件列表可确定修改文件为文件3、5,此时,可对文件3、5进行标识。
步骤S30,在接收到访问请求时,根据所述访问请求确定待访问文件。
应当理解的是,在VFS层进行open()、read()、write()等***调用时,会对VFS层进行访问,因此,在接收到访问请求时,可根据访问请求确定待访问文件。
进一步地,为了更加准确地检测访问请求以及确定待访问文件,所述步骤S30,包括:
在通过hook层检测到访问请求时,接收所述访问请求;从所述访问请求中提取待访问文件信息,并从所述待访问文件信息中提取待访问文件名称;根据所述待访问文件名称确定待访问文件。
可以理解的是,在通过hook层检测到访问进程的访问请求时,可接收该访问请求,并根据该访问请求确定要访问的文件。可从访问请求中提取待访问文件信息,进而从待访问文件信息中提取待访问文件名称,由于每个文件都有其对应的文件名称,例如文件3对应的名称为“文件3”,文件4对应的名称为“文件4”等,因此,在确定待访问文件名称后,可根据待访问文件名称确定待访问文件。
进一步地,在确定待访问文件后,为了更加准确地获取待访问文件,所述根据所述待访问文件名称确定待访问文件之后,还包括:
通过hook层和所述待访问文件名称进行hook,以获取所述待访问文件。
可以理解的是,在确定待访问文件名称后,为了准确地获取待访问文件名称对应的待访问文件,可通过hook层和待访问文件名称进行hook操作,以获取待访问文件。
步骤S40,在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件。
应当理解的是,由于在上述步骤中已经将需要修改的文件进行了标识,因此,可通过检测待访问文件是否存在标识的方式来判断是否需要对其进行修改。如果待访问文件存在标识,则说明需要对其进行修改,如果待访问文件不存在标识,则说明不需要对其进行修改。
可以理解的是,在需要对待访问文件进行修改时,可根据文件列表和diff文件确定待访问文件对应的目标差异文件,进而根据目标差异文件对待检测文件进行修复。
步骤S50,根据所述目标差异文件和所述待访问文件生成目标文件。
应当理解的是,在确定目标差异文件和待访问文件后,可基于目标差异文件对待访问文件进行处理,以生成目标文件,从而可达到对待访问文件进行漏洞修复的效果。
可以理解的是,该步骤具体可为:可从目标差异文件中提取目标差异数据,进而根据所述目标差异数据对所述待访问文件进行数据还原,以生成目标文件,将目标文件反馈给访问进程。
可以理解的是,本实施例针对Linux***一切皆文件的特征,通过上述方案具备修复任何真实文件的能力,而且由于补丁包为压缩格式,可以减小文件下发的传输负载。并且本方案不依赖底层文件***,支持字节随机访问,支持即用即合成,不需要占用过多的内存空间,在需要使用到文件时,才对其进行漏洞修复,避免了资源的浪费。
本实施例中通过在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;在接收到访问请求时,根据所述访问请求确定待访问文件;在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;根据所述目标差异文件和所述待访问文件生成目标文件,从而不依赖底层文件***便可根据目标差异文件和待访问文件生成目标文件,不需要占用过多的内存空间便可完成漏洞修复。
在一实施例中,如图4所示,基于第一实施例提出本发明内核VFS层***修复方法第二实施例,所述步骤S20,包括:
步骤S201,将所述文件列表加载到内存中,并根据所述文件列表确定修改文件信息。
应当理解的是,终端设备可将文件列表加载到内核的内存中,这样操作既不会增加过多的内存占用,也可在需要使用到文件列表时,能够及时地从内存中调用文件列表,提高漏洞修复的效率。
可以理解的是,由于文件列表中记录有diff文件对应的文件信息,因此,可根据文件列表确定这些需要修改的文件的修改文件信息。
步骤S202,从所述修改文件信息中提取修改文件名称,并根据所述修改名称确定修改文件。
可以理解的是,由于文件列表中记录的diff文件对应的文件信息包括文件名称、文件大小以及文件路径等信息,因此,在获得修改文件信息后,可从修改文件信息中提取修改文件名称,进而根据修改文件名称确定修改文件。
在具体实现中,例如,从修改文件信息中提取的修改文件名称为“文件3”和“文件5”时,可确定修改文件为文件3和文件5。
步骤S203,根据所述修改文件添加标识信息,以对所述修改文件进行标识。
应当理解的是,在确定修改文件后,可根据修改文件添加标识信息,以达到对修改文件进行标识的效果。例如,在修改文件为文件3和文件5时,可对文件3和文件5添加标识信息,以对文件3和文件5进行标识。
进一步地,由于本方案应用在Linux***,为了达到更好的标识效果,所述步骤S203,包括:
获取所述修改文件对应的索引节点;在所述索引节点中添加标识信息,以对所述修改文件进行标识。
应当理解的是,每个文件都有对应的索引节点inode,inode是Linux***中的一种数据结构,其本质是结构体,它包含了与文件***中各个文件相关的一些重要信息,在Linux***中创建文件***时,同时将会创建大量的inode,通常文件***磁盘空间中大约百分之一空间分配给了inode表,在Linux***中使用inode可以节约大量的时间,并且提高工作效率。
因此,在确定修改文件后,可获取修改文件对应的索引节点,并且在修改文件对应的索引节点中添加标识信息,以达到对修改文件进行标识的效果。
在具体实现中,如图5所示,图5为文件标识示意图,修改文件为文件3和文件5,可分别获取文件3对应的索引节点inode3以及文件5对应的索引节点inode5,然后在inode3和inode5中添加标识信息,以对文件3和文件4进行标识。
本实施例中通过将所述文件列表加载到内存中,并根据所述文件列表确定修改文件信息;从所述修改文件信息中提取修改文件名称,并根据所述修改名称确定修改文件;根据所述修改文件添加标识信息,以对所述修改文件进行标识,从而根据文件列表确定修改文件名称,进而确定修改文件,通过添加标识信息的方式对修改文件进行标识,在后续的步骤中通过标识检测的方式来判断该文件是否需要修复,提高了检测的效率和准确性。
在一实施例中,如图6所示,基于第一实施例或第二实施例提出本发明内核VFS层***修复方法第三实施例,在本实施例中,基于第一实施例进行说明,所述步骤S40之前,还包括:
步骤S01,对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识。
应当理解的是,在确定待访问文件后,可对待访问文件进行标识检测,以判断待访问文件中是否存在标识,在待访问文件存在标识时,说明需要对待访问文件进行修复,在待访问文件不存在标识时,说明不需要对待访问文件进行修复,两种情况下执行不同的代码,进行不同的操作。
进一步地,为了更加准确地检测待访问文件是否存在标识,提高检测的准确性,所述S01,包括:
获取所述待访问文件对应的待检测索引节点;检测所述待检测索引节点中是否存在标识信息,获得检测结果;根据所述检测结果判断所述待访问文件中是否存在标识。
可以理解的是,标识检测的方式可为获取待访问文件对应的待检测索引节点,通过检测索引节点中是否存在标识信息的方式来判断待访问文件是否存在标识。
在具体实现中,如图7所示,图7为存在标识的标识检测示意图,假设待访问文件为文件5,那么可获取文件5对应的待检测索引节点inode5,检测inode5中是否存在标识信息,以判断文件5中是否存在标识,在inode5中存在标识信息时,则说明文件5存在标识,进而根据文件5和文件5对应的目标差异文件生成目标文件。
进一步地,由于索引节点中记录是其对应的文件的文件信息,因此,待检测索引节点中记录有待访问节点的各项文件信息,通过这些文件信息便可确定待访问节点的标识情况,所述根据所述检测结果判断所述待访问文件中是否存在标识之后,还包括:
在所述检测结果为所述待检测索引节点中存在标识信息时,判定所述待访问文件中存在标识;在所述检测结果为所述待检测索引节点中不存在标识信息时,判定所述待访问文件中不存在标识。
应当理解的是,在检测结果为待检测索引节点中存在标识信息时,则说明待访问文件中存在标识,而在检测结果为待检测索引节点中不存在标识信息时,则说明待访问节点中不存在标识,通过对待检测索引节点进行标识信息检测的方式,可快速地确定待识别文件是否存在标识,提高了检测效率。
进一步地,由于还存在待访问文件不存在标识的情况,在这种情况下仍需要对访问请求作出相应,所述对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识之后,还包括:
在所述待访问文件不存在标识时,将所述待访问文件作为目标文件。
应当理解的是,在待访问文件不存在标识时,说明不需要对待访问文件进行修改,直接将待访问文件作为目标文件反馈给访问进程即可。
在具体实现中,如图8所示,图8为不存在标识的标识检测示意图,假设待访问文件为文件1,那么可获取文件1对应的待检测索引节点inode1,检测inode1中是否存在标识信息,以判断文件1中是否存在标识,在inode5中不存在标识信息时,则说明文件1存在标识,进而将文件1作为目标文件。
本实施例中通过对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识,进而根据判断结果采取不同的操作策略,提高了文件访问的灵活性。
在一实施例中,如图9所示,基于第一实施例或第二实施例提出本发明内核VFS层***修复方法第四实施例,在本实施例中,基于第一实施例进行说明,所述步骤S40,包括:
步骤S401,在所述待访问文件存在标识时,在所述文件列表中匹配与所述待访问文件对应的目标修改文件信息。
应当理解的是,在待访问文件存在标识时,说明待访问文件需要进行修复,可在文件列表中匹配与待访问文件对应的目标修改文件信息。
步骤S402,根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件。
可以理解的是,可从目标修改文件信息中提取目标修改文件名称,进而根据目标修改文件名称和diff文件确定待访问文件对应的目标差异文件。
在具体实现中,例如,待访问文件为文件5时,可在文件列表中匹配与文件5对应的目标修改文件信息,然后可确定目标修改文件名称为文件5',进而根据目标文件名称和diff文件可确定待访问文件对应的目标差异文件。
进一步地,由于文件列表中记录有文件路径,因此,可从文件列表中获取文件路径来获取差异文件,所述根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件之后,还包括:
从所述目标修改文件信息中提取目标文件路径;根据所述目标文件路径从所述diff文件中获取所述目标差异文件。
应当理解的是,由于diff文件中可能包括多个差异文件,查找起来较为复杂,为了提高差异文件获取的效率,在根据目标修改文件名称确定目标差异文件后,还可从目标修改文件信息中提取目标文件路径,然后根据目标文件路径从diff文件中获取目标差异文件。
本实施例中通过在所述待访问文件存在标识时,在所述文件列表中匹配与所述待访问文件对应的目标修改文件信息,根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件,从所述目标修改文件信息中提取目标文件路径;根据所述目标文件路径从所述diff文件中获取所述目标差异文件,从而可根据文件列表确定目标差异文件,并且根据文件列表中记录的文件路径信息从diff文件中获取目标差异文件,从而可准确地确定并获取目标差异文件,提高了目标差异文件的获取效率。
此外,本发明实施例还提出一种存储介质,所述存储介质上存储有内核VFS层***修复程序,所述内核VFS层***修复程序被处理器执行时实现如上文所述的内核VFS层***修复方法的步骤。
由于本存储介质采用了上述所有实施例的全部技术方案,因此至少具有上述实施例的技术方案所带来的所有有益效果,在此不再一一赘述。
此外,参照图10,本发明实施例还提出一种内核VFS层***修复装置,所述内核VFS层***修复装置包括:
补丁包模块10,用于在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到。
文件标识模块20,用于将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识。
文件访问模块30,用于在接收到访问请求时,根据所述访问请求确定待访问文件。
差异文件模块40,用于在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件。
目标文件模块50,用于根据所述目标差异文件和所述待访问文件生成目标文件。
本实施例中通过在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;在接收到访问请求时,根据所述访问请求确定待访问文件;在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;根据所述目标差异文件和所述待访问文件生成目标文件,从而不依赖底层文件***便可根据目标差异文件和待访问文件生成目标文件,不需要占用过多的内存空间便可完成漏洞修复。
在一实施例中,所述差异文件模块40,还用于获取所述待访问文件对应的待检测索引节点;检测所述待检测索引节点中是否存在标识信息,获得检测结果;根据所述检测结果判断所述待访问文件中是否存在标识。
在一实施例中,所述差异文件模块40,还用于在所述检测结果为所述待检测索引节点中存在标识信息时,判定所述待访问文件中存在标识;在所述检测结果为所述待检测索引节点中不存在标识信息时,判定所述待访问文件中不存在标识。
在一实施例中,所述差异文件模块40,还用于在所述待访问文件不存在标识时,将所述待访问文件作为目标文件。
在一实施例中,所述差异文件模块40,还用于在所述待访问文件存在标识时,在所述文件列表中匹配与所述待访问文件对应的目标修改文件信息;根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件。
在一实施例中,所述差异文件模块40,还用于从所述目标修改文件信息中提取目标文件路径;根据所述目标文件路径从所述diff文件中获取所述目标差异文件。
在一实施例中,所述目标文件模块50,还用于从所述目标差异文件中提取目标差异数据;根据所述目标差异数据对所述待访问文件进行数据还原,以生成目标文件。
在本发明所述内核VFS层***修复装置的其他实施例或具体实现方法可参照上述各方法实施例,此处不再赘述。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该估算机软件产品存储在如上所述的一个估算机可读存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台智能设备(可以是手机,估算机,内核VFS层***修复设备,或者网络内核VFS层***修复设备等)执行本发明各个实施例所述的方法。

Claims (20)

1.一种内核VFS层***修复方法,其特征在于,所述内核VFS层***修复方法包括以下步骤:
在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;
将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;
在接收到访问请求时,根据所述访问请求确定待访问文件;
在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;
根据所述目标差异文件和所述待访问文件生成目标文件。
2.如权利要求1所述的内核VFS层***修复方法,其特征在于,所述将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识,包括:
将所述文件列表加载到内存中,并根据所述文件列表确定修改文件信息;
从所述修改文件信息中提取修改文件名称,并根据所述修改文件名称确定修改文件;
根据所述修改文件添加标识信息,以对所述修改文件进行标识。
3.如权利要求2所述的内核VFS层***修复方法,其特征在于,所述根据所述修改文件添加标识信息,以对所述修改文件进行标识,包括:
获取所述修改文件对应的索引节点;
在所述索引节点中添加标识信息,以对所述修改文件进行标识。
4.如权利要求1~3中任一项所述的内核VFS层***修复方法,其特征在于,所述在接收到访问请求时,根据所述访问请求确定待访问文件,包括:
在通过hook层检测到访问请求时,接收所述访问请求;
从所述访问请求中提取待访问文件信息,并从所述待访问文件信息中提取待访问文件名称;
根据所述待访问文件名称确定待访问文件。
5.如权利要求4所述的内核VFS层***修复方法,其特征在于,所述根据所述待访问文件名称确定待访问文件之后,还包括:
通过hook层和所述待访问文件名称进行hook,以获取所述待访问文件。
6.如权利要求1~3中任一项所述的内核VFS层***修复方法,其特征在于,所述在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件之前,还包括:
对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识。
7.如权利要求6所述的内核VFS层***修复方法,其特征在于,所述对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识,包括:
获取所述待访问文件对应的待检测索引节点;
检测所述待检测索引节点中是否存在标识信息,获得检测结果;
根据所述检测结果判断所述待访问文件中是否存在标识。
8.如权利要求7所述的内核VFS层***修复方法,其特征在于,所述根据所述检测结果判断所述待访问文件中是否存在标识之后,还包括:
在所述检测结果为所述待检测索引节点中存在标识信息时,判定所述待访问文件中存在标识;
在所述检测结果为所述待检测索引节点中不存在标识信息时,判定所述待访问文件中不存在标识。
9.如权利要求6所述的内核VFS层***修复方法,其特征在于,所述对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识之后,还包括:
在所述待访问文件不存在标识时,将所述待访问文件作为目标文件。
10.如权利要求1~3中任一项所述的内核VFS层***修复方法,其特征在于,所述在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件,包括:
在所述待访问文件存在标识时,在所述文件列表中匹配与所述待访问文件对应的目标修改文件信息;
根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件。
11.如权利要求10所述的内核VFS层***修复方法,其特征在于,所述根据所述目标修改文件信息和所述diff文件确定所述待访问文件对应的目标差异文件之后,还包括:
从所述目标修改文件信息中提取目标文件路径;
根据所述目标文件路径从所述diff文件中获取所述目标差异文件。
12.如权利要求1~3中任一项所述的内核VFS层***修复方法,其特征在于,所述根据所述目标差异文件和所述待访问文件生成目标文件,包括:
从所述目标差异文件中提取目标差异数据;
根据所述目标差异数据对所述待访问文件进行数据还原,以生成目标文件。
13.一种内核VFS层***修复装置,其特征在于,所述内核VFS层***修复装置包括:
补丁包模块,用于在接收到补丁包时,从所述补丁包中提取文件列表和diff文件,所述补丁包由服务器将有漏洞文件与无漏洞文件进行diff得到;
文件标识模块,用于将所述文件列表加载到内存中,根据所述文件列表确定修改文件,并对所述修改文件进行标识;
文件访问模块,用于在接收到访问请求时,根据所述访问请求确定待访问文件;
差异文件模块,用于在所述待访问文件存在标识时,根据所述文件列表和所述diff文件确定所述待访问文件对应的目标差异文件;
目标文件模块,用于根据所述目标差异文件和所述待访问文件生成目标文件。
14.如权利要求13所述的内核VFS层***修复装置,其特征在于,所述文件标识模块,具体包括:将所述文件列表加载到内存中,并根据所述文件列表确定修改文件信息;从所述修改文件信息中提取修改文件名称,并根据所述修改文件名称确定修改文件;根据所述修改文件添加标识信息,以对所述修改文件进行标识。
15.如权利要求14所述的内核VFS层***修复装置,其特征在于,所述文件标识模块,具体包括:获取所述修改文件对应的索引节点;在所述索引节点中添加标识信息,以对所述修改文件进行标识。
16.如权利要求13~15中任一项所述的内核VFS层***修复装置,其特征在于,所述文件访问模块,具体包括:在通过hook层检测到访问请求时,接收所述访问请求;从所述访问请求中提取待访问文件信息,并从所述待访问文件信息中提取待访问文件名称;根据所述待访问文件名称确定待访问文件。
17.如权利要求16所述的内核VFS层***修复装置,其特征在于,所述文件访问模块,还用于通过hook层和所述待访问文件名称进行hook,以获取所述待访问文件。
18.如权利要求13~15中任一项所述的内核VFS层***修复装置,其特征在于,所述差异文件模块,还用于对所述待访问文件进行标识检测,以判断所述待访问文件中是否存在标识。
19.一种内核VFS层***修复设备,其特征在于,所述内核VFS层***修复设备包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的内核VFS层***修复程序,所述内核VFS层***修复程序配置有实现如权利要求1至12中任一项所述的内核VFS层***修复方法的步骤。
20.一种存储介质,其特征在于,所述存储介质上存储有内核VFS层***修复程序,所述内核VFS层***修复程序被处理器执行时实现如权利要求1至12中任一项所述的内核VFS层***修复方法的步骤。
CN202011542234.0A 2020-12-23 2020-12-23 内核vfs层***修复方法、装置、设备及存储介质 Active CN112541182B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011542234.0A CN112541182B (zh) 2020-12-23 2020-12-23 内核vfs层***修复方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011542234.0A CN112541182B (zh) 2020-12-23 2020-12-23 内核vfs层***修复方法、装置、设备及存储介质

Publications (2)

Publication Number Publication Date
CN112541182A CN112541182A (zh) 2021-03-23
CN112541182B true CN112541182B (zh) 2022-11-04

Family

ID=75017176

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011542234.0A Active CN112541182B (zh) 2020-12-23 2020-12-23 内核vfs层***修复方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN112541182B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103745158A (zh) * 2014-01-26 2014-04-23 北京奇虎科技有限公司 修复***漏洞的方法和装置
CN105160253A (zh) * 2015-09-29 2015-12-16 网易(杭州)网络有限公司 修复客户端程序的方法、装置、***及服务器
CN106919843A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复***、方法及设备
CN106921731A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103745158A (zh) * 2014-01-26 2014-04-23 北京奇虎科技有限公司 修复***漏洞的方法和装置
CN105160253A (zh) * 2015-09-29 2015-12-16 网易(杭州)网络有限公司 修复客户端程序的方法、装置、***及服务器
CN106919843A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复***、方法及设备
CN106921731A (zh) * 2017-01-24 2017-07-04 北京奇虎科技有限公司 漏洞修复方法及装置

Also Published As

Publication number Publication date
CN112541182A (zh) 2021-03-23

Similar Documents

Publication Publication Date Title
CN108427613B (zh) 异常接口定位方法、装置、计算机设备和存储介质
CN108763951B (zh) 一种数据的保护方法及装置
CN110059002B (zh) 测试数据的生成方法、测试设备、存储介质及装置
CN109726134B (zh) 接口测试方法和***
CN107341106B (zh) 应用程序兼容性检测方法、开发终端及存储介质
CN113434582B (zh) 业务数据处理方法、装置、计算机设备和存储介质
CN111124545A (zh) 应用程序启动方法、装置、电子设备及存储介质
CN112541182B (zh) 内核vfs层***修复方法、装置、设备及存储介质
CN112650689A (zh) 测试方法、装置、电子设备及存储介质
CN108563578B (zh) Sdk兼容性检测方法、装置、设备及可读存储介质
CN116795486A (zh) 一种容器镜像文件提纯的分析方法、装置、存储介质及终端
CN111061637A (zh) 接口测试方法、接口测试装置及存储介质
CN115543816A (zh) 软件回归测试结果验证方法、装置、设备及存储介质
CN113342660B (zh) 文件测试方法、装置、***、电子设备及可读存储介质
CN112579357B (zh) 快照差量获取方法、装置、设备及存储介质
CN111538651A (zh) 接口测试方法、装置、服务器及存储介质
CN111225075A (zh) 物联网定向访问业务的配置方法及装置
US10726109B2 (en) Method and system for identifying whether an application is genuine by means of digital watermarks
CN110955458A (zh) 一种基于EXT4文件***的快速客制化os方法、***、存储介质及电子设备
CN114648784B (zh) 指纹库预匹配的指纹验证方法、装置、设备及存储介质
CN117215965B (zh) 基于测试用例识别的测试方法、装置、电子设备和介质
CN111726818B (zh) 无线芯片的测试方法、装置、计算机设备和存储介质
CN117331838A (zh) 一种渗透测试方法及装置
CN114328049A (zh) 块存储性能测试方法、装置、电子设备及存储介质
CN113885963A (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