一种文件监控的方法及装置与流程

文档序号:33620349发布日期:2023-03-25 11:22阅读:62来源:国知局
一种文件监控的方法及装置与流程

1.本发明涉及信息安全技术领域,尤其涉及一种文件监控的方法及装置。


背景技术:

2.文件监控主要用于检测恶意软件的行为。恶意软件通过下载额外的攻击程序,或者创建驻留文件,或者修改敏感文件配置,以达到攻击者的意图。而通过文件监控,可以及时发现敏感文件的访问、恶意软件下载等危险行为。虽然操作系统中已有相关的文件监控得到应用,如inotify,但是这种文件监控方式存在着性能瓶颈。特别是当监测服务器端大量文件时,就需要有高性能的文件监控方法。
3.目前常用的文件监控方法主要有以下几种:一是通过文件防护策略的方式。将文件防护策略与文件列表建立对应关系。通过对列表中的文件进行扫描来判断文件是否被修改。二是通过inotify api进行监控。inotify是一个文件更改通知系统,属于内核的一个功能,它允许应用程序根据事件列表请求监视一组文件。当事件发生时,应用程序会收到通知。
4.以上文件监控的方法存在以下问题:第一,文件防护策略的方式,虽然减少了监测量,避免了大量的系统开销,但是存在监测遗漏的情况。如果恶意软件修改的文件不在列表中,那么就无法监测到。第二,inotify方式,是通过拦截系统调用进行监控,监控全面,但是在监控记录输出时系统开销较大。如果恶意软件进行大量文件的创建和修改,那么会严重影响系统性能。
5.因此,需要设计一种高效的文件监控方法及装置来跟踪软件对文件的访问。


技术实现要素:

6.本发明提供一种文件监控的方法及装置,可有效记录系统中文件的访问情况,并可高效运行,降低系统性能开销。
7.为了实现上述目的,本发明采用的技术方案如下:本发明提供一种文件监控的方法,采用用户空间与内核空间的共享存储空间机制,提高监测性能,涉及的组件包括用户空间组件、内核监测组件和内核交互组件。用户空间组件是用户态程序,通过内核交互组件控制内核监测组件。内核交互组件是用户态程序与内核态程序交互的接口,提供相关函数给用户空间组件调用,以控制内核监测组件。内核监测组件是内核态程序,在内核处获取文件监控的相关信息,存入共享存储空间。内核交互组件从共享存储空间取出文件监控信息传递给用户空间组件,用户空间组件处理后形成文件监控记录输出。
8.优选的,方法包括以下几个步骤:在步骤s101中,用户空间组件,将内核监测组件装载到内核,内核监测组件是字节码程序,由内核解释执行,所述字节码程序是由计算机编译得到;装载字节码程序过程中会对内核监测组件进行程序安全性检查;
在步骤s102中,用户空间组件,将内核监测组件挂载到内核的跟踪点;跟踪点是内核提供的一种挂钩函数;在步骤s103中,用户空间组件,设置事件回调函数;当共享存储空间有事件数据时,会触发用户空间程序的回调函数;在步骤s104中,用户空间组件,循环监听事件;在步骤s105中,内核监测组件,由用户空间组件挂载到open、openat系统调用函数的入口处;在步骤s106中,内核监测组件,获取当前进程id号,该进程id号作为数据存储的索引值,存储到特定的共享存储空间;在步骤s107中,内核监测组件,在被监测进程退出open系统调用,或者退出openat系统调用时,从特定的共享存储空间读取进程号,同时从内核中获取当前进程的进程名、打开文件的完整路径名,查找到对应进程id号的索引值,将当前进程的进程名、打开文件的完整路径名存储到对应的共享存储空间;在步骤s108中,内核监测组件,发送信号通知用户空间组件;在步骤s109中,用户空间组件,收到内核监测组件发送的信号,从共享存储空间中得到事件内容,并输出到终端、或日志文件。
9.第二方面,本发明提供一种文件监控装置,包括:用户空间组件,用于将内核监测组件装载到内核,内核监测组件是字节码程序,由内核解释执行,所述字节码程序是由计算机编译得到;装载过程中会对内核监测组件进行程序安全性检查,将字节码程序挂载到内核的跟踪点,设置事件回调函数,循环监听事件;当得到事件内容时,输出到终端、或日志文件;共享存储空间,用于存储内核空间组件传递出来的数据,提供给用户空间组件获取;内核监测组件,用于由用户空间组件挂载到open、openat系统调用函数的入口处;获取当前进程id号,该进程id号作为数据存储的索引值,存储到特定的共享存储空间;在被监测进程退出open系统调用,或者退出openat系统调用时,从特定的共享存储空间读取进程号,同时从内核中获取当前进程的进程名、打开文件的完整路径名,查找到对应进程id号的索引值,将当前进程的进程名、打开文件的完整路径名存储到对应的共享存储空间;发送信号通知用户空间组件;内核交互组件,用于用户空间程序与操作系统内核进行交互;操作系统内核,操作系统的核心部分;解释执行内核监测组件;文件监控记录,用户空间组件输出的记录。
10.本发明具有以下优点:本发明的文件监控的方法及装置,由于是共享存储空间,用户空间和内核空间在进行数据传输时不会引入过高的性能开销,可提高性能,可实现高效的文件监控。
附图说明
11.图1为本发明提供的文件监控方法的流程图;图2为本发明提供的文件监控装置的结构图;
图3为本发明提供的文件监控的示意图。
具体实施方式
12.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
13.以下结合具体实施例对本发明的具体实现进行详细描述:
实施例一
14.如图1所示,本发明实施例一提供的文件监控方法,采用共享存储空间机制,利用用户空间组件、内核监测组件和内核交互组件监控文件,包括以下几个步骤:在步骤s101中,用户空间组件,将内核监测组件装载到内核,内核监测组件是字节码程序,由内核解释执行,所述字节码程序是由计算机编译得到;装载过程中会对内核监测组件进行程序安全性检查。
15.在步骤s102中,用户空间组件,将内核监测组件挂载到内核的跟踪点;跟踪点是内核提供的一种挂钩函数。
16.在步骤s103中,用户空间组件,设置事件回调函数,当共享存储空间有事件数据时,会触发用户空间程序的回调函数。
17.在步骤s104中,用户空间组件,循环监听事件。
18.在步骤s105中,内核监测组件,由用户空间组件挂载到open、openat系统调用函数的入口处。
19.在步骤s106中,内核监测组件,获取当前进程id号,该进程id号作为数据存储的索引值,存储到特定的共享存储空间。
20.在步骤s107中,内核监测组件,在被监测进程退出open系统调用,或者退出openat系统调用时,从特定的共享存储空间读取进程号,同时从内核中获取当前进程的进程名、打开文件的完整路径名,查找到对应进程id号的索引值,将当前进程的进程名、打开文件的完整路径名存储到对应的共享存储空间。
21.在步骤s108中,内核监测组件,发送信号通知用户空间组件。
22.在步骤s109中,用户空间组件得到事件内容,并输出到终端、或日志文件。
23.实施例二
24.如图2所示,本发明提供的文件监控装置,具体结构详述如下:用户空间组件21,用于读取内核监测组件,通过内核交互组件将内核监测组件装载到内核,内核监测组件是字节码程序,由内核解释执行,所述字节码程序是由计算机编译得到,装载过程中会对内核监测组件进行程序安全性检查,将字节码程序挂载到内核的跟踪点,设置事件回调函数,循环监听事件,当得到事件内容时,输出到终端、或日志文件。
25.共享存储空间22,用于存储内核空间组件传递出来的数据,提供给用户空间组件获取,由于是共享存储空间,用户空间和内核空间在进行数据传输时不会引入过高的性能开销,可提高性能,共享存储空间存储的信息为监控文件所需的数据,包括但不限于当前进程的id号、当前进程的进程名、打开文件的完整路径名。
26.内核监测组件23,用于由用户空间组件挂载到open、openat系统调用函数的入口处,获取当前进程id号,该进程id号作为数据存储的索引值,存储到特定的共享存储空间,在被监测进程退出open系统调用,或者退出openat系统调用时,从特定的共享存储空间读取进程号,同时从内核中获取当前进程的进程名、打开文件的完整路径名,查找到对应进程id号的索引值,将当前进程的进程名、打开文件的完整路径名等信息存储到对应的共享存储空间,发送信号通知用户空间组件。
27.内核交互组件24,用于用户空间程序与操作系统内核进行交互,内核交互组件提供接口函数给用户空间程序使用,例如获取当前进程id、获取当前进程名称、将数据存放入共享存储空间、查询共享存储空间中的数据、删除共享存储空间中的数据。
28.实施例三
29.如图3所示,本发明实施例一的文件监控方法的示意图,详述如下:用户空间组件21,用于读取内核监测组件,通过内核交互组件将内核监测组件装载到内核,内核监测组件是字节码程序,由内核解释执行,所述字节码程序是由计算机编译得到,装载过程中会对内核监测组件进行程序安全性检查,将内核监测组件挂载到内核的跟踪点,设置事件回调函数,循环监听事件,当得到事件内容时,输出到终端、或日志文件。
30.共享存储空间22,用于存储内核空间组件传递出来的数据,提供给用户空间组件获取,由于是共享存储空间,用户空间和内核空间在进行数据传输时不会引入过高的性能开销,可提高性能,共享存储空间存储的信息为监控文件所需的数据,包括但不限于当前进程的id号、当前进程的进程名、打开文件的完整路径名。
31.内核监测组件23,用于由用户空间组件挂载到open、openat系统调用函数的入口处,获取当前进程id号,该进程id号作为数据存储的索引值,存储到特定的共享存储空间,在被监测进程退出open系统调用,或者退出openat系统调用时,从特定的共享存储空间读取进程号,同时从内核中获取当前进程的进程名、打开文件的完整路径名,查找到对应进程id号的索引值,将当前进程的进程名、打开文件的完整路径名存储到对应的共享存储空间,发送信号通知用户空间组件。
32.内核交互组件24,用于用户空间程序与操作系统内核进行交互,内核交互组件提供接口函数给用户空间程序使用,例如获取当前进程id、获取当前进程名称、将数据存放入共享存储空间、查询共享存储空间中的数据、删除共享存储空间中的数据。
33.操作系统内核25,操作系统的核心部分,解释执行内核监测组件。
34.文件监控记录26,用户空间组件输出的记录。
35.综上,本发明的文件监控的方法及装置,由于是共享存储空间,用户空间和内核空间在进行数据传输时不会引入过高的性能开销,可提高性能,可实现高效的文件监控。
36.本发明已经通过上述实例进行了说明,但应当理解的是,上述实例知识用于举例和说明的目的。因此,凡在技术领域中通过逻辑分析、推理或者有限实验得到技术方法,皆应当属于描述的实例保护范围内。
37.以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1