一种基于EBPF的Linux系统事件监控方法及装置与流程

文档序号:34143097发布日期:2023-05-13 11:29阅读:39来源:国知局
本申请各实施例属信息安全,尤其涉及一种基于ebpf的linux系统事件监控方法及装置。
背景技术
::1、应用程序经常需要对某个文件或目录进行监控,以便判断是否发生了特定事件,比如文件删除、新增、修改等。典型例子就是文件管理应用。2、因linux 系统下“一切皆文件”的特性,要处理好 linux 下的信息安全就必然需要处理好对 linux 文件事件的高效监控。linux 虽然提供了inotify、fanotify等监控方法,但均存在效率低下、监控目标数量有限、难以实现递归监控、无法获取进程信息等问题;而使用内核模块需要系统权限、编译和使用环境复杂,制约了信息安全工具和技术的发展。技术实现思路1、本实施例提供了一种基于ebpf的linux系统事件监控方法及装置,能够解决现有的文件监控存在的效率低下、监控目标数量有限、难以实现递归监控、无法获取进程信息等问题。2、第一方面,本实施例提供了一种基于ebpf的linux系统事件监控方法,包括:3、建立监控文件项列表及监控事件队列,其中,所述监控文件项列表内包含需被监控文件项的唯一标识,所述文件项包括文件和/或文件夹;加载kprobe bpf至目标系统调用节点,所述目标系统调用节点是篡改文件项时需调用的节点;若所述目标系统调用节点被调用,则通过所述kprobe bpf获取被操作文件项的唯一标识;基于linux系统文件的结构、所述被操作文件项的唯一标识及被监控文件项的唯一标识判断所述被操作文件项是否被监控;若所述被操作文件项被监控,则通过所述kprobe bpf采集所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息;将所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息存入所述事件队列,并发出文件事件报警。4、在一些实施例中,所述建立监控文件项列表及监控事件队列,包括:获取所述被监控文件项的唯一标识,其中,所述唯一标识包括设备号及inode号;基于所述被监控文件项的唯一标识获取所述被监控文件项的信息元组,并将所述元组加载至所述监控文件项列表中;建立监控事件队列。5、在一些实施例中,所述建立监控文件项列表及监控事件队列,具体为:通过bpfhash-table map建立监控文件项列表,其中,所述监控文件项列表是哈希表;通过bpfperf-event array建立监控事件队列。6、在一些实施例中,所述目标系统调用节点包括下述中的至少一种:创建文件、文件夹、硬链接或软连接的函数,修改文件内容的函数,删除文件、文件夹、硬链接的函数,修改文件属性的函数,内存文件映射函数。7、在一些实施例中,所述若所述目标系统调用节点被调用,则通过所述kprobe bpf获取被操作文件项的唯一标识,具体为:若所述目标系统调用节点被调用,则触发加载在所述目标系统调用节点处的kprobe bpf,并通过所述kprobe bpf获取被操作文件项的唯一标识。8、在一些实施例中,所述基于linux系统文件的结构、所述被操作文件项的唯一标识及被监控文件项的唯一标识判断所述被操作文件项是否被监控,包括:获取所述操作目录项的唯一标识及被监控目录项的唯一标识;基于linux系统文件的层级结构及linux系统文件的唯一标识查询所述被操作文件项的路径是否包含于所述被监控文件项的路径内;若所述被操作文件项的路径包含于所述被监控文件项的路径内,和/或所述被操作文件项的唯一标识位于所述监控文件项列表内,则所述被操作文件项被监控。9、在一些实施例中,所述将所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息存入所述事件队列,并发出文件事件报警,包括:建立目录拼接缓冲区;在所述目录拼接缓冲区以自叶向根的方式拼接所述被操作文件项的路径信息;将所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息拼接成文件事件,存入所述事件队列,并发出文件事件报警。10、在一些实施例中,所述基于ebpf的linux系统事件监控方法,还包括:通过linux系统的守护进程轮询所述事件队列;获取并解析所述事件队列内的文件事件,并通知linux系统的安全模块。11、第二方面,本实施例提供了一种基于ebpf的linux系统事件监控装置,包括:12、监控建立模块,用于建立监控文件项列表及监控事件队列,其中,所述监控文件项列表内包含需被监控文件项的唯一标识,所述文件项包括文件和/或文件夹;13、程序加载模块,用于加载kprobe bpf至目标系统调用节点,所述目标系统调用节点是篡改文件项时需调用的节点;14、标识获取模块,用于若所述目标系统调用节点被调用,则通过所述kprobe bpf获取被操作文件项的唯一标识;15、监控判断模块,用于基于linux系统文件的结构、所述被操作文件项的唯一标识及被监控文件项的唯一标识判断所述被操作文件项是否被监控;16、信息获取模块,用于若所述被操作文件项被监控,则通过所述kprobe bpf采集所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息;以及17、事件报警模块,用于将所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息存入所述事件队列,并发出文件事件报警。18、第三方面,本实施例提供了一种电子设备,包括处理器和存储器;19、所述处理器通过调用所述存储器存储的程序或指令,用于执行如第一方面中任一实施例所述方法的步骤。20、本申请提供了一种基于ebpf的linux系统事件监控方法及装置,通过建立监控文件项列表及监控事件队列,其中,所述监控文件项列表内包含需被监控文件项的唯一标识,所述文件项包括文件和/或文件夹;加载kprobe bpf至目标系统调用节点,所述目标系统调用节点是篡改文件项时需调用的节点;若所述目标系统调用节点被调用,则通过所述kprobe bpf获取被操作文件项的唯一标识;基于linux系统文件的结构、所述被操作文件项的唯一标识及被监控文件项的唯一标识判断所述被操作文件项是否被监控;若所述被操作文件项被监控,则通过所述kprobe bpf采集所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息;将所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息存入所述事件队列,并发出文件事件报警,能够解决现有文件监控存在的效率低下、监控目标数量有限、难以实现递归监控、无法获取进程信息等问题,可在不插入内核模块、非root 进程下,实现和被监控文件夹数量无关的高效文件监控、并且可以获取到篡改文件的具体进程。技术特征:1.一种基于ebpf的linux系统事件监控方法,其特征在于,包括:2.根据权利要求1所述的基于ebpf的linux系统事件监控方法,其特征在于,所述建立监控文件项列表及监控事件队列,包括:3.根据权利要求1所述的基于ebpf的linux系统事件监控方法,其特征在于,所述建立监控文件项列表及监控事件队列,具体为:4.根据权利要求1所述的基于ebpf的linux系统事件监控方法,其特征在于,所述目标系统调用节点包括下述中的至少一种:5. 根据权利要求1所述的基于ebpf的linux系统事件监控方法,其特征在于,所述若所述目标系统调用节点被调用,则通过所述kprobe bpf获取被操作文件项的唯一标识,具体为:6.根据权利要求1所述的基于ebpf的linux系统事件监控方法,其特征在于,所述基于linux系统文件的结构、所述被操作文件项的唯一标识及被监控文件项的唯一标识判断所述被操作文件项是否被监控,包括:7.根据权利要求1所述的基于ebpf的linux系统事件监控方法,其特征在于,所述将所述被操作文件项的路径信息及与所述被操作文件项对应的系统调用信息存入所述事件队列,并发出文件事件报警,包括:8.根据权利要求1-7中任一项所述的基于ebpf的linux系统事件监控方法,其特征在于,还包括:9.一种基于ebpf的linux系统事件监控装置,其特征在于,包括:10.一种电子设备,其特征在于,包括:技术总结本申请实施例提供了一种基于EBPF的Linux系统事件监控方法及装置,通过建立监控文件项列表及监控事件队列;加载Kprobe BPF至目标系统调用节点;若目标系统调用节点被调用,则通过Kprobe BPF获取被操作文件项的唯一标识;基于Linux系统文件的结构、被操作文件项的唯一标识及被监控文件项的唯一标识判断被操作文件项是否被监控;若被操作文件项被监控,则通过Kprobe BPF采集被操作文件项的路径信息及系统调用信息;将被操作文件项的路径信息及系统调用信息存入事件队列,并发出文件事件报警,本申请可在不插入内核模块情况下,实现高效文件监控、并且可以获取到篡改文件的具体进程。技术研发人员:赖博阳,主洪尚,朱文雷受保护的技术使用者:北京长亭未来科技有限公司技术研发日:技术公布日:2024/1/12
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1