一种基于Fanotify机制的勒索软件检测方法与流程

allin2022-07-29  129


一种基于fanotify机制的勒索软件检测方法
技术领域
1.本发明涉及软件检测领域,具体涉及一种基于fanotify机制的勒索软件检测方法。


背景技术:

2.勒索软件迅速发展成为当今网络安全中的首要威胁,它极具破坏性、会造成沉重代价、严重影响企业安危。
3.勒索软件的基本行为是对主机中的文件进行加密并删除原始文件,本提案基于此种特征结合linux上的文件监控机制fanotify,提出一种具体的实现方案来进行勒索软件的识别,此种方案无需特征码即可识别出未知的勒索软件;
4.目前主机安全软件对勒索软件的主要检测方法是通过特征码来判断,需要事先发现勒索软件的样本并分析出其特征码,对于最新出现的或者自我变种的勒索软件则无法有效检测。
5.现有的勒索软件检测方法,在使用时存在着检测效果,较差识别率较低的问题,给勒索软件检测方法的使用带来了一定的影响,因此,提出一种基于fanotify机制的勒索软件检测方法。


技术实现要素:

6.本发明所要解决的技术问题在于:如何解决现有的勒索软件检测方法,在使用时存在着检测效果,较差识别率较低的问题,给勒索软件检测方法的使用带来了一定的影响的问题,提供了一种基于fanotify机制的勒索软件检测方法。
7.本发明是通过以下技术方案解决上述技术问题的,本发明包括以下步骤:
8.步骤一:进行系统初始化,fanotify初始化时先调用fanotify_init创建一个fanotify实例,并创建一个线程用于读取fanotify事件;
9.步骤二:当有进程创建、删除文件时就会触发fanotify事件,fanotify线程收到事件,进行解析,解析出内容包括进程文件名、进程pid、文件大小、进程pid回溯链;
10.步骤三:依据进程pid回溯链查询进程树;
11.步骤四:从进程树叶节点开始,依次向上回溯路径,逐节点更新统计信息,修改节点最后更新时间为当前时间;
12.步骤五:定时器每个统计周期遍历进程树,对每一个节点计算最新数据与上一个周期数据之间的增量,对增量数据按照算法进行分析判断,确认是否疑似勒索软件产生告警;
13.步骤六:在处理完告警判断后,复制每个节点的最新统计数据到上一个统计周期统计数据,同时检查一定时间内未更新的节点,查询其pid对应的进程是否还存在,不存在则删除节点。
14.进一步在于,所述步骤二的进程pid回溯链指的是从当前进程开始逐步获取父进
程直到根进程。
15.进一步在于,所述pid回溯链查询进程树的具体的查询过程为:根据进程pid回溯链从后向前,依次取出pid查询进程树,如果查不到,则依照进程父子关系创建新节点。
16.进一步在于,所述步骤五中的算法为多种,最简单的即为统计周期内删除、添加文件的数量超过m个,且删除、添加文件的差值不超过n,则触发告警。
17.进一步在于,所述步骤五的具体过程如下:定时器遍历进程树,对每一个节点计算最新数据与上一个周期数据之间的增量,判断增量是否超过增量阈值,超过增量阈值即触发警报,触发警报后,复制最新数据到上一个统计周期,再对pid节点进行老化处理,删除已经失效的pid节点,当增量未超过增量阈值时,不触发警报,即直接复制最新数据到上一个统计周期,再对pid节点进行老化处理,删除已经失效的pid节点。
18.本发明相比现有技术具有以下优点:该基于fanotify机制的勒索软件检测方法,通过fanotify对整个文件系统进行监控,基于进程树来统计文件创建、删除的数量以及其大小、时间特征,并基于此来判断识别勒索软件,软件会在后台监控整个文件系统,在文件创建、删除时会进行统计记录,用户不感知,当文件创建、删除的统计数据达到事先定义好的阈值时,会触发软件产生告警信息,提示用户发现疑似勒索软件行为,用户可进行进一步处理,本方案采用fanotify文件监控机制,基于勒索软件的行为特征来进行判断识别,不采用特征码,可有效的识别未知的勒索软件,通过上述过程能够更好进行勒索软件的识别,提升了勒索软件的识别率,减少了勒索软件的危害,也减少了勒索软件带来的经济损失,让该方法更加值得推广使用。
附图说明
19.图1是本发明的整体流程图;
20.图2是本发明的基于进程树的文件操作统计数据结构示意图;
21.图3是本发明的基于进程树的文件操作统计流程图;
22.图4是本发明的基于进程树的文件操作统计节点添加示意图。
具体实施方式
23.下面对本发明的实施例作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。
24.如图1~4所示,本实施例提供一种技术方案:一种基于fanotify机制的勒索软件检测方法,包括以下步骤:
25.步骤一:系统初始化,参见图2,fanotify初始化时先调用fanotify_init创建一个fanotify实例,并创建一个线程用于读取fanotify事件。
26.勒索软件的关键行为都涉及到文件的创建、删除操作,此步骤初始化linux的文件监控模块,用于监控文件系统的创建、删除操作。
27.步骤二:当有进程创建、删除文件时就会触发fanotify事件,fanotify线程收到事件,进行解析,获取进程文件名、进程pid、文件大小、进程pid回溯链。进程pid回溯链指的是从当前进程开始逐步获取父进程直到根进程,举例说明,如图1中的进程pid-007,其进程
pid回溯链为“pid-007-》pid-006-》pid-005-》pid-001-》根pid”,此步骤接收文件创建、删除事件以及事件所属的进程pid,然后根据进程pid向上回溯获得进程树。使用进程树的原因是勒索软件可能采用多进程的方式,fork出不同的子进程来进行文件加密处理,这样依靠单个进程的文件添加、删除统计数据就无法判断其恶意行为,但是将统计数据向父进程汇总就可以进行判断识别了。
28.步骤三:依据进程pid回溯链查询进程树,具体的查询过程为:根据进程pid回溯链从后向前,依次取出pid查询进程树,如果查不到,则依照进程父子关系创建新节点。举例来说,如图3,fanotify上报一个进程pid-015,其进程pid回溯链为“pid-015-》pid-014-》pid-005-》pid-001-》根pid”,则先用根pid查找,找到进程树根节点,然后用pid-001在根节点的子节点中查找,找到pid-001,然后在pid-001的子节点中找到pid-005,从pid-005的子节点中找不到到pid-014,则添加pid-005的子节点pid-014,添加pid-014的子节点pid-015,此步骤将进行了文件添加、删除操作的进程pid添加到用于统计的进程树。
29.步骤四:从进程树叶节点开始,依次向上回溯路径,逐节点更新统计信息,修改节点最后更新时间为当前时间。举例来说,如图3,fanotify上报一个进程pid-015删除了一个文件,文件大小为s字节,则回溯路径“pid-015-》pid-014-》pid-005-》pid-001-》根pid”上的每个节点的“删除文件总数量”加一,“删除文件总大小”加s,此步骤对进行了文件添加、删除操作的进程pid沿进程pid回溯链更新进程树节点的统计数据。
30.步骤五:定时器每个统计周期遍历进程树,对每一个节点计算最新数据与上一个周期数据之间的增量,对增量数据按照算法进行分析判断,确认是否疑似勒索软件产生告警。此处的算法可以有多种,最简单的如统计周期内删除、添加文件的数量超过m个,且删除、添加文件的差值不超过n,则触发告警,此步骤根据设定的周期检查进程树,按照算法判断在本周期内是否有进程触发疑似勒索软件行为告警。
31.步骤六:在处理完告警判断后,复制每个节点的最新统计数据到上一个统计周期统计数据,同时检查一定时间内未更新的节点,查询其pid对应的进程是否还存在,不存在则删除节点,此步骤更新上一周期的统计数据并删除进程树上已经失效的进程节点。
32.该基于fanotify机制的勒索软件检测方法,通过fanotify对整个文件系统进行监控,基于进程树来统计文件创建、删除的数量以及其大小、时间特征,并基于此来判断识别勒索软件,软件会在后台监控整个文件系统,在文件创建、删除时会进行统计记录,用户不感知,当文件创建、删除的统计数据达到事先定义好的阈值时,会触发软件产生告警信息,提示用户发现疑似勒索软件行为,用户可进行进一步处理,通过上述过程能够更好进行勒索软件的识别,提升了勒索软件的识别率,减少了勒索软件的危害,也减少了勒索软件带来的经济损失,上述方案可以单独作为一个软件使用,或者作为主机安全防护产品的一个功能模块,fanotify是linux平台上新出现的一种文件监控技术,常被用作杀毒软件或者病毒程序恶意访问控制,fanotify机制提供了对于监控文件的权限检查和访问控制功能,能够提供对文件进行操作的进程的pid(进程号,可以唯一确定一个进程),fanotify还能够提供对整个文件系统的监控。
33.此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三
个等,除非另有明确具体的限定。
34.在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
35.尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

技术特征:
1.一种基于fanotify机制的勒索软件检测方法,其特征在于,包括以下步骤:步骤一:进行系统初始化,fanotify初始化时先调用fanotify_init创建一个fanotify实例,并创建一个线程用于读取fanotify事件;步骤二:当有进程创建、删除文件时就会触发fanotify事件,fanotify线程收到事件,进行解析,解析出内容包括进程文件名、进程pid、文件大小、进程pid回溯链;步骤三:依据进程pid回溯链查询进程树;步骤四:从进程树叶节点开始,依次向上回溯路径,逐节点更新统计信息,修改节点最后更新时间为当前时间;步骤五:定时器每个统计周期遍历进程树,对每一个节点计算最新数据与上一个周期数据之间的增量,对增量数据按照算法进行分析判断,确认是否疑似勒索软件产生告警;步骤六:在处理完告警判断后,复制每个节点的最新统计数据到上一个统计周期统计数据,同时检查一定时间内未更新的节点,查询其pid对应的进程是否还存在,不存在则删除节点。2.根据权利要求1所述的一种基于fanotify机制的勒索软件检测方法,其特征在于:所述步骤二的进程pid回溯链指的是从当前进程开始逐步获取父进程直到根进程。3.根据权利要求1所述的一种基于fanotify机制的勒索软件检测方法,其特征在于:所述pid回溯链查询进程树的具体的查询过程为:根据进程pid回溯链从后向前,依次取出pid查询进程树,如果查不到,则依照进程父子关系创建新节点。4.根据权利要求1所述的一种基于fanotify机制的勒索软件检测方法,其特征在于:所述步骤五中的算法为多种,最简单的即为统计周期内删除、添加文件的数量超过m个,且删除、添加文件的差值不超过n,则触发告警。5.根据权利要求1所述的一种基于fanotify机制的勒索软件检测方法,其特征在于:所述步骤五的具体过程如下:定时器遍历进程树,对每一个节点计算最新数据与上一个周期数据之间的增量,判断增量是否超过增量阈值,超过增量阈值即触发警报,触发警报后,复制最新数据到上一个统计周期,再对pid节点进行老化处理,删除已经失效的pid节点,当增量未超过增量阈值时,不触发警报,即直接复制最新数据到上一个统计周期,再对pid节点进行老化处理,删除已经失效的pid节点。

技术总结
本发明公开了一种基于Fanotify机制的勒索软件检测方法,包括以下步骤:步骤一:进行系统初始化,Fanotify初始化时先调用fanotify_init创建一个Fanotify实例,并创建一个线程用于读取Fanotify事件;步骤二:当有进程创建、删除文件时就会触发Fanotify事件,Fanotify线程收到事件,进行解析,解析出内容包括进程文件名、进程PID、文件大小、进程PID回溯链;步骤三:依据进程PID回溯链查询进程树;步骤四:从进程树叶节点开始,依次向上回溯路径,逐节点更新统计信息,修改节点最后更新时间为当前时间。本发明采用Fanotify文件监控机制,基于勒索软件的行为特征来进行判断识别,不采用特征码,可有效的识别未知的勒索软件。可有效的识别未知的勒索软件。可有效的识别未知的勒索软件。


技术研发人员:靳方 王孜好 肖守和
受保护的技术使用者:和安科技创新有限公司
技术研发日:2022.03.31
技术公布日:2022/7/5
转载请注明原文地址: https://www.8miu.com/read-1939.html

最新回复(0)