基于虚拟文件系统的防篡改方法、装置以及设备与流程

文档序号:14266347阅读:157来源:国知局
基于虚拟文件系统的防篡改方法、装置以及设备与流程

本发明涉及计算机领域,特别是涉及一种基于虚拟文件系统的防篡改方法、装置、设备以及一种计算机可读存储介质。



背景技术:

由于linux系统真正做到了真正开放,而且具有良好的可拓展性等优点,linux系统得到了广泛的应用。linux系统在不同的文件系统之上做了一个抽象层,使得文件、目录、读写访问等概念都成为抽象层概念,这个抽象层被称为虚拟文件系统vfs。vfs可以看成是ext3、reiserfs、nfs等众多文件系统类型的抽象,它向上接收上层系统调用所传入的文件操作指令,向下对各种文件系统进行分类和分别处理,以实现linux对多种文件系统的支持。

但是,由于linux是多用户多任务操作系统,可以由许多不同的用户来使用,为每个用户提供单独的环境和资源。因此,如何对某个既定用户的文件进行保护,例如防止其他用户对其进行恶意修改,是丞待本领域技术人员解决的问题。



技术实现要素:

本发明的目的是提供一种基于虚拟文件系统的防篡改方法、装置、设备以及一种计算机可读存储介质,用以解决linux多用户操作系统无法防止其他用户对当前用户文件进行修改的问题。

为解决上述技术问题,本发明提供一种基于虚拟文件系统的防篡改方法,包括:

响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,从所述系统函数中获取所述当前文件的路径信息;

根据所述路径信息判断所述当前文件是否允许用户进行修改;

若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用。

其中,在所述若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用之后,还包括:

提示用户无法执行所述修改请求。

其中,所述响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,从所述系统函数中获取所述当前文件的路径信息包括:

响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,所述系统函数根据预设调用信息调用预设函数,其中,所述系统函数对所述vfs实现函数的调用信息预先替换为调用所述预设函数的预设调用信息;

所述预设函数从所述系统函数中获取所述当前文件的路径信息。

其中,所述根据所述路径信息判断所述当前文件是否允许用户进行修改包括:

判断所述路径信息下是否包含多个子文件;

若所述路径信息下包含多个子文件,则分别判断所述子文件的文件类型是否为允许用户进行修改的预设文件类型;

所述若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用包括:

若所述子文件的文件类型不为允许用户进行修改的预设文件类型,则阻止所述系统函数对与所述预设文件类型对应的所述vfs实现函数的调用。

本发明还提供了一种基于虚拟文件系统的防篡改装置,包括:

获取模块:用于响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,从所述系统函数中获取所述当前文件的路径信息;

判断模块:用于根据所述路径信息判断所述当前文件是否允许用户进行修改;

阻止模块:用于若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用。

其中,所述装置还包括:提示模块:用于提示用户无法执行所述修改请求。

其中,所述获取模块包括:

调用单元:用于响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,所述系统函数根据预设调用信息调用预设函数,其中,所述系统函数对所述vfs实现函数的调用信息预先替换为调用所述预设函数的预设调用信息;

获取单元:用于所述预设函数从所述系统函数中获取所述当前文件的路径信息。

其中,所述判断模块包括:

子文件判断单元:用于判断所述路径信息下是否包含多个子文件;

文件类型判断单元:用于若所述路径信息下包含多个子文件,则分别判断所述子文件的文件类型是否为允许用户进行修改的预设文件类型;

所述阻止模块具体用于:若所述子文件的文件类型不为允许用户进行修改的预设文件类型,则阻止所述系统函数对与所述预设文件类型对应的所述vfs实现函数的调用。

除此之外,本发明还提供了一种基于虚拟文件系统的防篡改设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序以实现前述的基于虚拟文件系统的防篡改方法的步骤。

最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有计算机程序,所述计算机程序被处理器执行时实现前述的基于虚拟文件系统的防篡改方法的步骤。

本发明所提供的基于虚拟文件系统的防篡改方法,在用户发起修改文件的请求时,响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,从所述系统函数中获取所述当前文件的路径信息,然后根据所述路径信息判断所述当前文件是否允许用户进行修改,若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用。

可见,本发明提供的基于虚拟文件系统的防篡改方法,通过在系统函数调用vfs实现函数之前,从系统函数中获取当前文件的路径信息,然后根据路径信息判断当前文件是否允许用户进行修改,如果当前文件不允许用户进行修改,就阻止系统函数调用vfs实现函数,从而阻止了用户对当前文件的修改操作,解决了linux多用户操作系统无法防止其他用户对当前用户文件进行修改的问题,提高了linux系统文件的安全性。

除此之外,本发明还提供了一种基于虚拟文件系统的防篡改装置、设备以及一种计算机可读存储介质,其作用与前述一种基于虚拟文件系统的防篡改方法的作用相对应,这里不再赘述。

附图说明

为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的一种基于虚拟文件系统的防篡改方法实施例一的实现流程图;

图2为本发明提供的虚拟文件系统vfs的分层结构图;

图3为本发明提供的linux系统执行用户写操作请求的实现流程图;

图4为本发明提供的一种基于虚拟文件系统的防篡改方法实施例二的实现流程图;

图5为本发明提供的一种基于虚拟文件系统的防篡改装置的结构框图。

具体实施方式

本发明的核心是提供一种基于虚拟文件系统的防篡改方法、装置、设备以及一种计算机可读存储介质,解决了linux多用户操作系统无法防止其他用户对当前用户文件进行修改的问题,提高了linux系统文件的安全性。

为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

下面开始详细介绍本发明提供的一种基于虚拟文件系统的防篡改方法实施例一,参见图1,实施例一具体包括:

步骤s11:响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,从所述系统函数中获取所述当前文件的路径信息。

如图2所示,虚拟文件系统vfs既为上层系统调用提供文件系统接口调用,也将是内核中各种逻辑文件系统实现抽象。具体的,虚拟文件系统接收上层系统调用所传入的文件操作指令,然后依据其文件系统类型,如ext3、reiserfs、nfs等,调用相应的实现函数,实现函数通过设备驱动程序对存储设备上的文件进行操作。

更具体的,当用户发出写文件请求时,如图3所示,其实现流程具体如下:用户程序可以调用write系统调用,使linux陷入内核。在内核中,linux可以通过系统调用表查找到write系统调用的实现函数(即sys_write),并执行该函数。在sys_write中,可以调用vfs层针对文件写入操作的接口函数vfs_write()。在vfs_write()中,可以根据文件所属磁盘分区的文件系统类型(如ext3、reiserfs、nfs等),查找到该文件系统对应的file_operations结构体,最后可以调用该结构体中write成员指向的函数,实现实际的写入操作。

就步骤s11而言,具体的,可以是在用户发出修改当前文件请求的时候,在系统函数sys_write调用虚拟文件系统vfs的实现函数vfs_write()之前,通过预先修改系统函数的调用信息,例如,系统函数原来根据调用信息调用vfs实现函数,那么可以通过将系统函数的调用信息修改为预设调用信息,使系统函数根据预设调用信息调用预设的函数my_write。然后预设函数my_write从所述系统函数中获取当前文件的路径信息。

需要说明的是,由于在linux系统中,对于一个磁盘分区,linux为每个文件分配一个称为索引节点(inode)的编号,索引节点永远指向本文件在该磁盘分区上的具体存储位置,系统通过索引节点定位一个文件。在内核中,索引节点对象用inode结构体表示。linux在使用一个索引节点时,将存储于磁盘上的索引节点信息调入内存,并填充到inode结构体中。与索引节点对象相关的操作集合称为索引节点操作表,由inode_operations结构体具体描述。该结构体中的每个成员都是函数指针,并指向某种具体操作的实现函数,如create成员指向新建索引节点的实现函数,setattr成员指向修改索引节点属性的实现函数。而对于表示进程已经打开的文件的文件对象,与其相关的操作集合称为文件操作表,由file_operations结构体具体描述。该结构体的每个成员都是函数指针,并指向某个具体操作的实现函数,如write成员指向文件写入操作的实现函数。因此,具体的可以是对文件操作表和索引节点操作表中的相应的参数进行修改,从而实现系统函数sys_write调用预设函数my_write。

步骤s12:根据所述路径信息判断所述当前文件是否允许用户进行修改。

具体的,可以是通过预设函数my_write判断当前文件的路径信息是否为预设路径信息,需要说明的是,这里的预设路径信息是指用户预先设置的不允许其他用户修改的文件的路径信息。如果,所述路径信息是预设路径信息,那么则判断所述当前文件不允许用户进行修改。

步骤s13:若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用。

在判断所述当前文件不允许用户进行修改之后,则终止程序以阻止系统函数对所述vfs实现函数的调用,最终达到阻止用户对当前文件进行修改的目的。

另一方面,如果判断所述当前文件允许用户进行修改,那么可以通过预设函数my_write调用vfs实现函数vfs_write(),进而完成用户对当前文件的修改操作。

具体的,在阻止所述系统函数对所述vfs实现函数的调用之后。可以提示用户无法执行所述修改请求。

本实施例提供的一种基于虚拟文件系统的防篡改方法,通过在系统函数调用vfs实现函数之前,从系统函数中获取当前文件的路径信息,然后根据路径信息判断当前文件是否允许用户进行修改,如果当前文件不允许用户进行修改,就阻止系统函数调用vfs实现函数,从而阻止了用户对当前文件的修改操作,解决了linux多用户操作系统无法防止其他用户对当前用户文件进行修改的问题,提高了linux系统文件的安全性。

实施例一提供的基于虚拟文件系统的防篡改方法,通过获取当前文件的路径信息并根据所述路径信息判断当前文件是否允许进行修改,如果不允许进行修改则阻止系统函数对vfs实现函数的调用,最终解决了linux多用户操作系统无法防止其他用户对当前用户文件进行修改的问题,提高了linux系统文件的安全性。

但是,考虑到linux系统下有多种文件类型,例如日志文件log,视频文件wav,图片文件jpg,配置文件xml,和符号链接文件等,而用户可能只是想要防止一个路径下的某种文件类型的文件被修改,基于这种应用场景,本发明提供了一种基于虚拟文件系统的防篡改方法

实施例二。

下面开始详细介绍本发明提供的一种基于虚拟文件系统的防篡改方法实施例二,参见图4,实施例二具体包括:

步骤s21:响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,系统函数根据预设调用信息调用预设函数。

步骤s22:所述预设函数从所述系统函数中获取所述当前文件的路径信息。

步骤s23:判断所述路径信息下是否包含多个子文件,如果否,进入步骤s24,否则进入步骤s25。

需要说明的是,由于在linux系统中,目录文件与普通文件都可以看作是文件,所以本实施例获取的路径信息下可能存在多个子文件,也就是说当前文件包括多个子文件。

步骤s24:阻止所述系统函数对所述vfs实现函数的调用。

步骤s25:分别判断所述子文件的文件类型是否不为允许用户进行修改的预设文件类型,如果是,进入步骤s26。

在linux系统中,对于同种逻辑文件系统且类型相同的文件,都对应同一个file_operations结构体和同一个inode_operations结构体,这样就可以通过修改文件操作表file_operations和索引节点操作表inode_operations的参数实现对同一文件系统下同一类型文件的劫持。这里的逻辑文件系统指一种具体的文件系统格式,如ext3、reiserfs、nfs等,这里的类型指文件、目录、符号链接等。步骤s25中所指的文件类型是指日志文件log,视频文件wav,图片文件jpg,配置文件xml,和符号链接文件等文件类型。

步骤s26:阻止所述系统函数对与所述预设文件类型对应的所述vfs实现函数的调用。

步骤s27:提示用户无法执行所述修改请求。

本实施例提供的基于虚拟文件系统的防篡改方法,在实施例一的基础上,通过判断所述路径信息下是否包括多个子文件,如果所述路径信息下包括多个子文件,则分别判断各个子文件的文件类型是否为不允许用户进行修改的预设文件类型,如果所述子文件不允许用户进行修改,就阻止系统函数对与预设文件类型对应的vfs实现函数的调用,最终达到了阻止用户对所述当前文件下预设文件类型的子文件进行修改的目的。

下面对本发明实施例提供的基于虚拟文件系统的防篡改装置进行介绍,下文描述的基于虚拟文件系统的防篡改装置与上文描述的基于虚拟文件系统的防篡改方法可相互对应参照。

图5为本发明实施例提供的基于虚拟文件系统的防篡改装置的结构框图,参照图5,该装置具体包括:

获取模块31:用于响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,从所述系统函数中获取所述当前文件的路径信息;

判断模块32:用于根据所述路径信息判断所述当前文件是否允许用户进行修改;

阻止模块33:用于若所述当前文件不允许用户进行修改,则阻止所述系统函数对所述vfs实现函数的调用。

其中,所述装置还包括:

提示模块:用于提示用户无法执行所述修改请求。

其中,所述获取模块包括:

调用单元:用于响应于用户对当前文件的修改请求,在系统函数调用vfs实现函数之前,所述系统函数根据预设调用信息调用预设函数,其中,所述系统函数对所述vfs实现函数的调用信息预先替换为调用所述预设函数的预设调用信息;

获取单元:用于所述预设函数从所述系统函数中获取所述当前文件的路径信息。

其中,所述判断模块包括:

子文件判断单元:用于判断所述路径信息下是否包含多个子文件;

文件类型判断单元:用于若所述路径信息下包含多个子文件,则分别判断所述子文件的文件类型是否为允许用户进行修改的预设文件类型;

所述阻止模块具体用于:若所述子文件的文件类型不为允许用户进行修改的预设文件类型,则阻止所述系统函数对与所述预设文件类型对应的所述vfs实现函数的调用。

本实施例的基于虚拟文件系统的防篡改装置用于实现前述的基于虚拟文件系统的防篡改方法,因此基于虚拟文件系统的防篡改装置中的具体实施方式可见前文中的基于虚拟文件系统的防篡改方法的实施例部分,例如,获取模块31、判断模块32、阻止模块33,分别用于实现上述基于虚拟文件系统的防篡改的方法中步骤s11,s12,s13所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。

由于本实施例提供的基于虚拟文件系统的防篡改装置用于实现前述的基于虚拟文件系统的防篡改方法,因此,本实施例的作用与前述一种基于虚拟文件系统的防篡改方法实施例的作用相对应,这里不再赘述。

除此之外,本发明还提供了一种基于虚拟文件系统的防篡改设备,包括:

存储器:用于存储计算机程序;

处理器:用于执行所述计算机程序以实现前述的基于虚拟文件系统的防篡改方法的步骤。

最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上保存有计算机程序,所述计算机程序被处理器执行时实现前述的基于虚拟文件系统的防篡改方法的步骤。

由于本发明提供的一种基于虚拟文件系统的防篡改设备以及一种计算机可读存储介质用于实现前述一种基于虚拟文件系统的防篡改方法实施例,因此,本发明提供的一种基于虚拟文件系统的防篡改设备以及一种计算机可读存储介质的作用与前述一种基于虚拟文件系统的防篡改方法实施例的作用相对应,这里不再赘述。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上对本发明所提供的基于虚拟文件系统的防篡改方法、装置、设备以及一种计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1