一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种Linux系统下文件复制行为识别方法及系统与流程

2022-02-22 17:44:10 来源:中国专利 TAG:

一种linux系统下文件复制行为识别方法及系统
技术领域
1.本公开属于计算机系统安全管理技术领域,尤其涉及一种linux系统下文件复制行为识别方法及系统。


背景技术:

2.本部分的陈述仅仅是提供了与本公开相关的背景技术信息,不必然构成在先技术。
3.linux系统下文件审计场景中,存在需要对文件复制行为进行审计的需求,进而要求对文件复制行为进行检测和识别。发明人发现,在windows系统下,可以直接对相关的系统函数进行监控,即可实现文件复制事件的检测;但在linux下没有这样的文件复制函数可以直接监控,特别是针对文件复制时读、写缓存由内核管道提供的特定场景,现有方法无法实现该场景下的文件复制行为的识别。


技术实现要素:

4.本公开为了解决上述问题,提供了一种linux系统下文件复制行为识别方法及系统,所述方案基于进程中的动作行为,对管道与源文件及目的文件之间的文件描述符进行关联分析,对文件复制行为能够进行精准的检测和识别。
5.根据本公开实施例的第一个方面,提供了一种linux系统下文件复制行为识别方法,包括:
6.步骤(1):实时监测进行管道创建的进程,并缓存其进程信息及所创建管道信息;
7.步骤(2):获取当前进程中涉及数据读写的动作,并根据其动作行为,对管道与源文件及目的文件之间的文件描述符进行关联;
8.步骤(3):若步骤(2)中的关联动作均已执行,将源文件的读取描述符和目的文件的写入描述符进行关联;否则,继续执行步骤(2),直至源文件读取结束;
9.步骤(4):检测源文件读取描述符和目的文件写入描述符的关联情况,若已经关联,则判定为发生复制行为。
10.进一步的,所述获取当前进程中涉及数据读写的动作,具体为:通过监控当前进程所有的splice动作进行获取,其中,所述splice为linux系统中用于数据读写的函数接口。
11.进一步的,所述根据其动作行为,对管道与源文件及目的文件之间的文件描述符进行关联,具体为:若当前动作行为是从源文件描述符读取数据到管道写入端描述符,则缓存源文件描述符,并关联源文件描述符与管道写入端描述符;若当前动作行为是从管道读取端描述符写入数据到目的文件描述符,则缓存目的文件描述符并关联管道读取端描述符。
12.根据本公开实施例的第二个方面,提供了一种linux系统下文件复制行为识别系统,包括:
13.进程检测模块,其用于实时监测进行管道创建的进程,并缓存其进程信息及所创
建管道信息;
14.描述符关联模块,其用于获取当前进程中涉及数据读写的动作,并根据其动作行为,对管道与源文件及目的文件之间的文件描述符进行关联;
15.判别模块,其用于若描述符关联模块中的关联动作均已执行,将源文件的读取描述符和目的文件的写入描述符进行关联;否则,继续执行描述符关联模块中的步骤,直至源文件读取结束;
16.复制行为识别模块,其用于检测源文件读取描述符和目的文件写入描述符的关联情况,若已经关联,则判定为发生复制行为。
17.根据本公开实施例的第三个方面,提供了一种电子设备,包括存储器、处理器及存储在存储器上运行的计算机程序,所述处理器执行所述程序时实现所述的一种linux系统下文件复制行为识别方法。
18.根据本公开实施例的第四个方面,提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现所述的一种linux系统下文件复制行为识别方法。
19.与现有技术相比,本公开的有益效果是:
20.本公开所述方案提供了一种linux系统下文件复制行为识别方法及系统,通过对linux环境下的文件复制的操作行为进行分析,基于进程中的动作行为,对管道与源文件及目的文件之间的文件描述符进行关联分析,给出了一种针对文件复制时读、写缓存由内核管道提供的特定场景的文件复制行为识别方法,有效解决了现有linux系统下文件审计场景中,存在需要对文件复制行为进行审计的需求问题,对文件复制行为能够进行精准的检测和识别。
21.本公开附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本公开的实践了解到。
附图说明
22.构成本公开的一部分的说明书附图用来提供对本公开的进一步理解,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。
23.图1为本公开实施例一中所述的一种linux系统下文件复制行为识别方法流程图。
具体实施方式
24.下面结合附图与实施例对本公开做进一步说明。
25.应该指出,以下详细说明都是示例性的,旨在对本公开提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本公开所属技术领域的普通技术人员通常理解的相同含义。
26.需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本公开的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
27.在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。
28.实施例一:
29.本实施例的目的是提供一种linux系统下文件复制行为识别方法。
30.一种linux系统下文件复制行为识别方法,包括:
31.步骤(1):实时监测进行管道创建的进程,并缓存其进程信息及所创建管道信息;
32.步骤(2):获取当前进程中涉及数据读写的动作,并根据其动作行为,对管道与源文件及目的文件之间的文件描述符进行关联;
33.步骤(3):若步骤(2)中的关联动作均已执行,将源文件的读取描述符和目的文件的写入描述符进行关联;否则,继续执行步骤(2),直至源文件读取结束;
34.步骤(4):检测源文件读取描述符和目的文件写入描述符的关联情况,若已经关联,则判定为发生复制行为。
35.进一步的,所述获取当前进程中涉及数据读写的动作,具体为:通过监控当前进程所有的splice动作进行获取,其中,所述splice为linux系统中用于数据读写的函数接口;具体的,splice用于在两个文件描述符之间的数据移动,即零拷贝;所述splice函数中fd_in参数是待输入描述符,如果它是一个管道文件描述符,则off_in必须设置为null;否则off_in表示从输入数据流的何处开始读取,此时若为null,则从输入数据流的当前偏移位置读入;所述零拷贝指的是splice过程中,存在较大可能实现上不需要进行任何的内存拷贝情况。
36.进一步的,所述根据其动作行为,对管道与源文件及目的文件之间的文件描述符进行关联,具体为:若当前动作行为是从源文件描述符读取数据到管道写入端描述符,则缓存源文件描述符,并关联源文件描述符与管道写入端描述符;若当前动作行为是从管道读取端描述符写入数据到目的文件描述符,则缓存目的文件描述符并关联管道读取端描述符。
37.进一步的,所述若步骤(2)中的关联动作均已执行,具体为:所述源文件描述符与管道写入端描述符之间的关联以及管道读取端描述符与目的文件描述符之间的关联均产生。
38.进一步的,当所述步骤(2)中的关联动作均已执行时,此时认为检测到文件复制行为,该阶段可通过阻断命令终止文件复制行为。
39.进一步的,所述进程信息包括进程id;所述管道信息包括所创建管道的写入端和读取端的文件描述符。
40.具体的,为了便于理解,以下结合附图对本公开所述方案进行详细说明:
41.linux系统下文件复制的实现场景必然存在从源文件读取数据写入缓存,将缓存数据写入目的文件两个步骤,相对于windows系统所不同的是缓存的实现方法不同,本公开就是针对文件复制时读、写缓存由内核管道提供的特定场景而提出的一种检测方法。
42.缓存是普通的内存地址,那么当读、写缓存地址一致时,可以通过缓存地址来关联源文件和目的文件来实现文件复制行为的检测;当读、写缓存地址不一致时,可以通过读、写缓存内容的一致性校验产生关联,进而来关联源文件和目的文件来实现文件复制行为的检测。两种检测方法均无法检测读、写缓存由内核管道提供的场景。
43.针对上述场景进行分析,可以得出文件复制时发生以下操作行为:
44.(1)创建管道,产生两个文件描述符pipefdw(写入端描述符)和pipefdr(读取端描
述符);
45.(2)打开源文件,产生源文件描述符fdr;
46.(3)创建目的文件,产生目的文件描述符fdw;
47.(4)调用splice函数,从fdr读取数据到pipefdw;
48.(5)调用splice函数,从pipefdr写入数据到fdw;
49.(6)重复步骤(4)-(5),直至文件读写完成;
50.(7)关闭目的文件,关闭文件描述符fdw;
51.(8)关闭源文件,关闭文件描述符fdr;
52.(9)关闭管道,关闭描述符pipefdw,pipefdr。
53.通过以上分析可以发现,进程创建管道时可将其监控,当检测到该进程调用splice从文件读入数据到管道,并且继续调用splice从管道写入数据到文件时,即可将读入文件作为源文件,将写入文件作为目的文件进行复制事件关联,进而在事件结束后检测到该种场景下的文件复制行为。
54.基于上述分析,如图1所示,本公开所述de一种linux系统下文件复制行为识别方法,具体包括如下步骤:
55.(1)以检测到进程创建管道行为行为检测触发点,缓存进程信息和所创建管道的写入端pipefdw,读取端pipefdr两个文件描述符;
56.(2)监控当前进程所有的splice动作,如果此动作行为为从源文件描述符fdr读取数据到管道写入端描述符pipefdw,那么缓存fdr描述符并关联fdr与pipefdw;如果此动作行为为从管道读取端描述符pipefdr写入数据到目的文件描述符fdw,那么缓存fdw描述符并关联pipefdr;
57.(3)检测步骤(2)中两个关联动作是否全部产生,如果已全部关联,那么将源文件读取描述符fdr和目的文件写入描述符fdw进行关联,此时已经可以确认检测到该类复制事件,可以在此阶段执行行为阻断;
58.(4)持续执行步骤2-3,直至文件读取完成;
59.(5)检测源文件读取描述符fdr和目的文件写入描述符fdw是否已关联,如果已经进行关联,那么就可以确认检测到该类复制事件,可以在此阶段执行行为上报;
60.(6)释放已缓存的变量,检测结束。
61.实施例二:
62.本实施例的目的是提供一种linux系统下文件复制行为识别系统。
63.一种linux系统下文件复制行为识别系统,包括:
64.进程检测模块,其用于实时监测进行管道创建的进程,并缓存其进程信息及所创建管道信息;
65.描述符关联模块,其用于获取当前进程中涉及数据读写的动作,并根据其动作行为,对管道与源文件及目的文件之间的文件描述符进行关联;
66.判别模块,其用于若描述符关联模块中的关联动作均已执行,将源文件的读取描述符和目的文件的写入描述符进行关联;否则,继续执行描述符关联模块中的步骤,直至源文件读取结束;
67.复制行为识别模块,其用于检测源文件读取描述符和目的文件写入描述符的关联
情况,若已经关联,则判定为发生复制行为。
68.在更多实施例中,还提供:
69.一种电子设备,包括存储器和处理器以及存储在存储器上并在处理器上运行的计算机指令,所述计算机指令被处理器运行时,完成实施例一中所述的方法。为了简洁,在此不再赘述。
70.应理解,本实施例中,处理器可以是中央处理单元cpu,处理器还可以是其他通用处理器、数字信号处理器dsp、专用集成电路asic,现成可编程门阵列fpga或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
71.存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
72.一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一中所述的方法。
73.实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
74.本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元即算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本技术的范围。
75.上述实施例提供的一种linux系统下文件复制行为识别方法及系统可以实现,具有广阔的应用前景。
76.以上所述仅为本公开的优选实施例而已,并不用于限制本公开,对于本领域的技术人员来说,本公开可以有各种更改和变化。凡在本公开的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本公开的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献