首页> 中国专利> 一种通用文件系统的操作获取记录的方法及系统

一种通用文件系统的操作获取记录的方法及系统

摘要

本发明涉及一种通用文件系统的操作获取记录的方法,包括以下步骤:1.为文件操作截获模块与外部文件系统建立连接;2.判断是否是首次连接,如果是,执行步骤3;否则,执行步骤4;3.对不存在对应通信设备的空闲设备号进行创建通信设备,并对创建的通信设备与空闲设备号创建连接;4.接收并向文件操作截获模块发送截获指令信息;5.按照截获指令信息截获操作信息;6.将截获的操作信息发送到通信设备,将接收到的文件的操作信息发送到用户态操作记录模块;7.将处理后的操作信息按照不同类型写入存储空间;8.断开连接,完成卸载。本发明从文件系统级别掌握用户操作的特点,便于进一步的基于用户行为的数据分析和文件系统的特性改进等。

著录项

  • 公开/公告号CN103809981A

    专利类型发明专利

  • 公开/公告日2014-05-21

    原文格式PDF

  • 申请/专利权人 中国科学院信息工程研究所;

    申请/专利号CN201410066581.9

  • 申请日2014-02-26

  • 分类号G06F9/44;G06F9/445;H04L29/06;

  • 代理机构北京轻创知识产权代理有限公司;

  • 代理人杨立

  • 地址 100093 北京市海淀区闵庄路甲89号

  • 入库时间 2024-02-20 00:07:10

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-06-23

    授权

    授权

  • 2014-06-25

    实质审查的生效 IPC(主分类):G06F9/44 申请日:20140226

    实质审查的生效

  • 2014-05-21

    公开

    公开

说明书

技术领域

本发明涉及一种通用文件系统的操作获取记录的方法及系统。

背景技术

Linux已经成为信息安全领域及企业级应用和开发的首选平台之一,越 来越多的系统依赖于稳定和日臻流行的Linux平台进行部署。而Linux的开 源特性也导致了该平台上众多符合不同需求,有着不同特性的各种文件系统 层出不穷,而不同的系统级应用也依赖于特定的文件系统发挥着自己的优 势。

获取文件系统内部具体行为,了解热点和私有数据,不仅对上层应用的 优化有一定的指导意义,同时对用户的使用特性分析,对上层应用的行为跟 踪,对文件系统性能优化都具有重大意义。而不同文件系统的在实现上的不 同和商业文件系统接口上的隐蔽,给获取文件系统内部的具体行为造成了极 大的困难。

面对不同的文件系统,Linux在提供了对众多文件系统的统一抽象VFS (Virtual File System Switch)。通过VFS抽象层,符合VFS接口的文件 系统便可以在Linux平台上得以使用。故从VFS层入手使得获取文件系统内 部具体行为成为可能。而Linux文件操作截获模块化加载机制LKM(loadable  kernel module),使得这一方法在实现上更加简化和快捷。

尚未发现国内有相关技术解决相关问题。

发明内容

本发明所要解决的技术问题是,针对现有技术的不足,提供了一种解决 了获取文件系统操作的问题的基于Linux的通用文件系统操作获取记录的方 法。

本发明解决上述技术问题的技术方案如下:一种通用文件系统的操作获 取记录的方法,具体包括以下步骤:

步骤1:安装卸载模块为文件操作截获模块与外部文件系统建立连接;

步骤2:判断是否文件操作截获模块是否是与外部文件系统首次连接, 如果是,执行步骤3;否则,执行步骤4;

步骤3:文件操作截获模块对不存在对应通信设备的空闲设备号进行创 建通信设备,并对创建的通信设备与空闲设备号创建连接;

步骤4:用户态设备操作模块接收用户的输入的截获指令,并向文件操 作截获模块发送截获指令信息;

步骤5:文件操作截获模块按照所述截获指令信息从外部文件系统截获 文件的操作信息;

步骤6:文件操作截获模块将截获的文件的操作信息发送到通信设备, 通信设备将接收到的文件的操作信息发送到用户态操作记录模块;

步骤7:用户态操作记录模块将所述操作信息进行处理,并将处理后的 操作信息按照不同类型写入存储空间;

步骤8:文件操作截获模块断开空闲设备号与通信设备的连接,安装卸 载模块断开文件操作截获模块与外部文件系统的连接,完成卸载。

本发明的有益效果是:本发明从文件系统级别掌握用户操作的特点,便 于进一步的基于用户行为的数据分析和文件系统的特性改进等;提供一种基 于Linux的通用文件系统操作获取和记录方法,透明部署到不同的文件系统 上,有效获取不同文件系统上内部的操作,避免了因文件系统差异性造成的 开发维护成本,简化了文件系统行为的数据储备流程。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述文件操作截获模块获取的外部文件系统的操作信息包括外 部文件系统的挂载点路径和需要记录的操作类型信息。

进一步,所述步骤5具体包括以下步骤:

步骤5.1:文件操作截获模块判断是否处理用户态设备操作模块发送的 截获指令信息,如果处理,执行步骤5.2;否则,执行步骤6;

步骤5.2:文件操作截获模块判断是否执行截获指令信息获取文件系统 句柄,如果是,执行下一步,否则,执行步骤5.5;

步骤5.4:打开挂载点获取VFS虚拟文件系统相关的数据结构,保存并 修改VFS虚拟文件系统相关的数据结构,并保存当前状态被和修改数据结构 的原始状态,打开关闭的挂载点,返回执行步骤5.1;

步骤5.5:判断是否执行截获指令信息获取指定操作的数据,如果是, 执行下一步;否则,执行步骤5.8;

步骤5.6:由VFS虚拟文件系统触发对应的操作,获取该操作的文件系 统及数据;

步骤5.7:过滤获取的数据中所需的部分数据,并得到的部分数据复制 到用户空间中,调用底层文件系统的对应操作,返回执行步骤5.1;

步骤5.8:判断是否执行操作请求恢复文件系统句柄,如果是,执行下 一步,否则,执行步骤5.1;

步骤5.9:打开挂载点获取VFS虚拟文件系统相关的数据结构,读取保 存在VFS虚拟文件系统相关的数据结构,并恢复到原始状态;关闭挂载点, 返回执行步骤5.1。

进一步,步骤6具体包括以下的步骤:

步骤6.1:文件操作截获模块以读写方式打开通信设备;

步骤6.2:文件操作截获模块发送挂载点路径和操作类型信息发送到通 信设备;

步骤6.3:通信设备将接收到的文件的操作信息发送到用户态操作记录 模块。

进一步,所述步骤7具体包括以下步骤:

步骤7.1:用户态操作记录模块进行初始化;

步骤7.2:用户态操作记录模块判断是否接收用户态设备操作模块发送 的文件系统信息,如果是,执行下一步;否则,执行步骤8;

步骤7.3:接收用户态设备操作模块发送的文件系统信息,对文件系统 信息进行预处理;

步骤7.4:将预处理后的信息按照不同类型写入存储空间。

进一步,所述步骤7.3中所述预处理包括数据分类、序列化和信息抽取。

本发明解决上述技术问题的技术方案如下:一种通用文件系统的操作获 取记录的系统,包括:安装卸载模块、文件操作截获模块、通信设备、用户 态设备操作模块和用户态操作记录模块;

所述安装卸载模块用于为文件操作截获模块与外部文件系统建立连接 和断开连接,并断开空闲设备号与通信设备的连接;

所述文件操作截获模块用于获取不存在对应通信设备的空闲设备号,并 将空闲设备号和与其对应关联的通信设备创建连接;并且文件操作截获模块 用于按照所述截获指令信息从外部文件系统截获文件的操作信息;并将截获 的文件的操作信息发送到通信设备;

所述用户态设备操作模块用于接收用户的输入的截获指令,并向文件操 作截获模块发送截获指令信息;

所述通信设备将接收到的文件的操作信息发送到用户态操作记录模块;

所述用户态操作记录模块用于将所述操作信息进行处理,并将处理后的 操作信息按照不同类型写入存储空间。

本发明的有益效果是:本发明从文件系统级别掌握用户操作的特点,便 于进一步的基于用户行为的数据分析和文件系统的特性改进等;提供一种基 于Linux的通用文件系统操作获取和记录系统,透明部署到不同的文件系统 上,有效获取不同文件系统上内部的操作,避免了因文件系统差异性造成的 开发维护成本,简化了文件系统行为的数据储备流程。

在上述技术方案的基础上,本发明还可以做如下改进。

进一步,所述安装卸载模块包括权限判断模块、属组模块和连接模块;

所述权限判断模块用于检测用户是否具有操作安装卸载模块的权限;

所述属组模块用于获取用户信息,作为通信设备的属组;

所述连接模块用于与文件操作截获模块建立连接。

进一步,所述文件操作截获模块包括开启通信设备模块、转发模块、获 取操作模块和发送模块;

所述开启通信设备模块用于接收通信设备获取的文件系统的挂载点路 径和要记录的操作类型,将所述操作类型记录到操作类型集合中,并以读写 方式打开通信设备;

所述转发模块用于发送挂载点路径和操作类型集合到通信设备;

所述获取操作模块用于获取特定操作类型集合中的操作,并发送操作请 求到通信设备,接收通信设备反馈的指定操作类型集合相关的操作信息;

所述发送模块用于将获取的操作信息发送到用户态操作记录模块。

进一步,所述用户态操作记录模块包括初始化模块、接收处理模块和存 储模块;

所述初始化模块用于对用户态操作记录模块进行初始化;

所述接收处理模块用于接收用户态设备操作模块发送的文件系统信息, 对文件系统信息进行预处理;

所述存储模块用于将预处理后的信息按照不同类型写入存储空间。

进一步,所述接收处理模块中所述预处理包括数据分类、序列化和信息 抽取。

所述安装卸载模块完成文件操作截获模块加载操作时,需要加载特定文 件操作截获模块及根据特定主次设备号创建设备节点;卸载文件操作截获模 块时,需要移除加载的文件操作截获模块,删除创建的设备节点;

所述用户态设备操作模块消除了在内核态进行控制的局限性,增强了通 信双方的功能;首先打开通信设备进行监听,然后根据需求发起请求,如获 取文件系统句柄,获取查询创建删除等操作,获取查询、创建或删除等操作 的操作信息等,最后接收应答获取所需信息;

所述文件操作截获模块用于根据用户态设备操作模块设置的操作请求, 在内核态进行对应文件的操作截获,获得VFS虚拟文件系统的数据结构,获 取经由VFS虚拟文件系统的操作数据;并响应控制的应答操作,首先注册安 装的设备,接收用户态的控制请求,根据不同的控制请求进行不同的逻辑和 操作,如获取文件系统句柄,获取查询创建删除等操作,获取查询创建删除 等操作的操作内容等,然后将相关数据传递到用户态空间;

所述用户态操作记录模块通过在用户态对文件系统行为进行持久化操 作,可以将截获的操作存储到文件、数据库等存储系统中;充分利用成熟的 存储接口和存储方式;记录操作,首先是获取用户态控制模块得到的内核态 传递的信息,根据控制模块提供的类型特征,将信息保存到后续存储中,如 以流的方式写入文件或以记录的方式保存到数据库。

附图说明

图1为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 方法流程图;

图2为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 方法中通信设备安装的操作流程图;

图3为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 方法中用户态控制通信设备的操作流程图;

图4为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 方法中内核态设备响应控制的操作流程图;

图5为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 方法中用户态记录文件系统行为的操作流程图;

图6为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 方法中通信设备卸载的操作流程图;

图7为本发明具体实施例1所述的一种通用文件系统的操作获取记录的 系统结构框图;

图8为本发明具体实施例1所述的文件操作截获模块的结构框图。

附图中,各标号所代表的部件列表如下:

1、安装卸载模块,2、用户态设备操作模块,3、文件操作截获模块,4 用户态操作记录模块,5、通信设备,11、权限判断模块,12、属组模块, 13、连接模块,31、开启通信设备模块,32、转发模块,33、获取操作模块, 34、发送模块,41、初始化模块,42、接收处理模块,43、存储模块。

具体实施方式

以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本 发明,并非用于限定本发明的范围。

如图1所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的方法,具体包括以下步骤:

步骤1:安装卸载模块为文件操作截获模块与外部文件系统建立连接;

步骤2:判断是否文件操作截获模块是否是与外部文件系统首次连接, 如果是,执行步骤3;否则,执行步骤4;

步骤3:文件操作截获模块对不存在对应通信设备的空闲设备号进行创 建通信设备,并对创建的通信设备与空闲设备号创建连接;

步骤4:用户态设备操作模块接收用户的输入的截获指令,并向文件操 作截获模块发送截获指令信息;

步骤5:文件操作截获模块按照所述截获指令信息从外部文件系统截获 文件的操作信息;

步骤6:文件操作截获模块将截获的文件的操作信息发送到通信设备, 通信设备将接收到的文件的操作信息发送到用户态操作记录模块;

步骤7:用户态操作记录模块将所述操作信息进行处理,并将处理后的 操作信息按照不同类型写入存储空间;

步骤8:文件操作截获模块断开空闲设备号与通信设备的连接,安装卸 载模块断开文件操作截获模块与外部文件系统的连接,完成卸载。

如图2所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的方法中通信设备安装的操作流程图,具体步骤如下:

步骤201:检查用户权限是否可用,因为创建设备及加载驱动具有一定 风险,如若权限不够,直接退出,权限正常执行步骤202;

步骤202:获取特定用户组信息,作为设备的属组;

步骤203:加载指定文件操作截获模块到内核中;

步骤204:判断加载文件操作截获模块是否成功,如若不成功,直接退 出,否则执行步骤205;

步骤205:获取空闲主设备号,可通过过滤proc文件系统下devices 文件获得;

步骤206:判断指定的设备号设备是否存在,存在则直接退出,否则执 行步骤207;

步骤207:根据主次设备号创建设备;

步骤208:赋予新创建的设备正确的用户组和权限,然后完成了通信设 备的安装,正常退出。

如图3所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的方法中用户态控制通信设备的操作流程图,具体步骤如下:

步骤301:获取目标文件系统的挂载点路径和要记录的操作类型,操作 类型可以为对软硬链接、文件、目录的创建、删除、内容访问、元数据访问, 重命名等;

步骤302:以读写方式打开通信设备;

步骤303:判断通信设备打开是否成功,成功执行步骤304,否则执行 步骤309;

步骤304:发送挂载点路径和操作类型集合给通信设备;

步骤305:判断是否停止获取文件系统行为,继续获取执行步骤306, 否则执行步骤309;

步骤306:获取指定操作类型集合中的操作;

步骤307:接收指定操作类型集合相关的操作和数据,即把内核态的数 据接收到用户态;

步骤308:将文件系统行为信息发送给记录模块,继续执行步骤305;

步骤309:发送结束命令给通讯设备并关闭该设备。

如图4所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的方法中内核态设备响应控制的操作流程图,步骤401、步骤402、 步骤403为加载内核时自动执行。具体步骤如下:

步骤401:初始化互斥访问资源;

步骤402:分配主次设备号,Linux提供了动态静态分配设备号的两种 策略;

步骤403:初始化字符设备,并注册到内核中;

步骤404:判断是否处理用户态发送的控制信息,如不处理则直接退出, 否则执行步骤405;

步骤405:判断是否执行命令获取文件系统句柄,如不执行该命令执行 步骤409,否则执行步骤406;

步骤406:打开挂载点获取VFS相关的数据结构,包括file对象, file_operations对象和inode_operations对象等;

步骤407:保存并修改VFS相关的数据结构,具体表现为把要获取的操 作类型对应的函数指针替换到对应的inode_operations对象中;

步骤408:保存被修改数据结构的原始状态和当前状态,并打开的关闭 挂载点,执行该步骤完毕后执行步骤404;

步骤409:判断是否执行命令获取指定操作的数据,如不执行该命令执 行步骤414,否则执行步骤410;

步骤410:由VFS触发对应的操作;

步骤411:获取该操作的文件系统级数据;

步骤412:过滤上述数据中所需的部分,并复制到用户空间;

步骤413:调用底层文件系统的对应操作,执行该步骤完毕后执行步骤 404;

步骤414:判断是否执行命令恢复文件系统句柄,如不执行该命令执行 步骤404,否则执行步骤415;

步骤415:打开挂载点获取VFS相关的数据结构;

步骤416:读取保存的VFS相关的数据结构,并恢复到原始状态;

步骤417:关闭挂载点,执行完毕后执行步骤404。

如图5所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的方法中用户态记录文件系统行为的操作流程图,具体步骤如下:

步骤501:初始化操作记录模块,如打开持久化文件或初始化持久化存 储的接口;

步骤502:判断是否接收用户态控制通信模块发送的文件系统行为,不 接收则直接退出,否则执行步骤503;

步骤503:接收用户态控制通信设备模块发送的文件系统行为;

步骤504:对文件系统行为进行预处理,如进行数据分类,序列化,信 息抽取等;

步骤505:将上述步骤产生的数据写入持久化文件,完成该步骤后执行 步骤502。

如图6所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的方法中通信设备卸载的操作流程图,具体步骤如下:

步骤601:检查当前用户权限是否可用,如权限不够则直接退出,否则 执行步骤602;

步骤602:删除指定文件操作截获模块;

步骤603:判断文件操作截获模块卸载是否成功,如不成功则直接退出, 否则执行步骤604;

步骤604:删除指定设备,正常退出。

如图7所示,为本发明具体实施例1所述的一种通用文件系统的操作获 取记录的系统,包括:安装卸载模块1、文件操作截获模块3、通信设备5、 用户态设备操作模块2和用户态操作记录模块4;

所述安装卸载模块1用于为文件操作截获模块3与外部文件系统建立连 接和断开连接,并断开空闲设备号与通信设备的连接;;

所述文件操作截获模块3用于获取不存在对应通信设备的空闲设备号, 并将空闲设备号和与其对应关联的通信设备5创建连接;并且文件操作截获 模块3用于按照所述截获指令信息从外部文件系统截获文件的操作信息;并 将截获的文件的操作信息发送到通信设备5;

所述用户态设备操作模块2用于接收用户的输入的截获指令,并向文件 操作截获模块3发送截获指令信息;

所述通信设备5将接收到的文件的操作信息发送到用户态操作记录模块 4;

所述用户态操作记录模块4用于将所述操作信息进行处理,并将处理后 的操作信息按照不同类型写入存储空间。

所述安装卸载模块1包括权限判断模块11、属组模块12和连接模块13;

所述权限判断模块11用于检测用户是否具有操作安装卸载模块的权限;

所述属组模块12用于获取用户信息,作为通信设备的属组;

所述连接模块13用于与文件操作截获模块3建立连接。

所述文件操作截获模块3包括开启通信设备模块31、转发模块32、获 取操作模块33和发送模块34;

所述开启通信设备模块31用于接收通信设备5获取的文件系统的挂载 点路径和要记录的操作类型,将所述操作类型记录到操作类型集合中,并以 读写方式打开通信设备5;

所述转发模块32用于发送挂载点路径和操作类型集合到通信设备5;

所述获取操作模块33用于获取特定操作类型集合中的操作,并发送操 作请求到通信设备5,接收通信设备5反馈的指定操作类型集合相关的操作 信息;

所述发送模块34用于将获取的操作信息发送到用户态操作记录模块4。

所述用户态操作记录模块4包括初始化模块41、接收处理模块42和存 储模块43;

所述初始化模块41用于对用户态操作记录模块进行初始化;

所述接收处理模块42用于接收用户态设备操作模块2发送的文件系统 信息,对文件系统信息进行预处理;

所述存储模块43用于将预处理后的信息按照不同类型写入存储空间。

所述接收处理模块42中所述预处理包括数据分类、序列化和信息抽取。

所述安装卸载模块1完成文件操作截获模块加载操作时,需要加载特定 文件操作截获模块及根据特定主次设备号创建设备节点;卸载文件操作截获 模块时,需要移除加载的文件操作截获模块,删除创建的设备节点;

所述用户态设备操作模块2消除了在内核态进行控制的局限性,增强了 通信双方的功能;首先打开通信设备进行监听,然后根据需求发起请求,如 获取文件系统句柄,获取查询创建删除等操作,获取查询、创建或删除等操 作的操作信息等,最后接收应答获取所需信息;

所述文件操作截获模块3用于根据用户态设备操作模块设置的操作请 求,在内核态进行对应文件的操作截获,获得VFS虚拟文件系统的数据结构, 获取经由VFS虚拟文件系统的操作数据;并响应控制的应答操作,首先注册 安装的设备,接收用户态的控制请求,根据不同的控制请求进行不同的逻辑 和操作,如获取文件系统句柄,获取查询创建删除等操作,获取查询创建删 除等操作的操作内容等,然后将相关数据传递到用户态空间;

所述用户态操作记录模块4通过在用户态对文件系统行为进行持久化操 作,可以将截获的操作存储到文件、数据库等存储系统中;充分利用成熟的 存储接口和存储方式;记录操作,首先是获取用户态控制模块得到的内核态 传递的信息,根据控制模块提供的类型特征,将信息保存到后续存储中,如 以流的方式写入文件或以记录的方式保存到数据库。

本系统的实现,依赖于Linux的内核版本,不同的Linux内核版本上对 于设备的安装卸载和文件操作截获模块1的加载删除及VFS层相关的API有 一定区别;对于设备安装卸载,使用Linux的命令行工具创建删除设备和文 件操作截获模块3可以快速有效得完成该模块的功能。由于Unix/Linux哲 学中普遍存在的“一切皆文件”之思想,在用户态同样可以使用操作文件的 系统调用操作设备。文件操作截获模块3需要实现设备相关的驱动,以文件 操作截获模块3的方式宿主于内核态,响应用户态的操作指令,拷贝指令相 关的内核信息。用户态对文件系统操作进行记录,一方面依赖于持久化存储 的读写接口,将用户态设备操作模块2获得的数据进行持久化,一方面依赖 于对外提供的视图,如不同文件系统上的记录对比,不同操作的频度统计, 不同路径的热度统计等。

具体的,本发明还包括如下操作:

通信设备安装及卸载的操作;

用户态控制通信设备的操作;

内核态设备响应控制的应答操作;

用户态记录文件系统行为的操作。

以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明 的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发 明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号