CN117171737A - 一种基于调用链验证的勒索软件对抗方法 - Google Patents
一种基于调用链验证的勒索软件对抗方法 Download PDFInfo
- Publication number
- CN117171737A CN117171737A CN202311137059.0A CN202311137059A CN117171737A CN 117171737 A CN117171737 A CN 117171737A CN 202311137059 A CN202311137059 A CN 202311137059A CN 117171737 A CN117171737 A CN 117171737A
- Authority
- CN
- China
- Prior art keywords
- call
- file
- database
- chain
- call chain
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 33
- 238000012795 verification Methods 0.000 title claims abstract description 21
- 241000700605 Viruses Species 0.000 claims abstract description 10
- 238000001914 filtration Methods 0.000 claims abstract description 10
- 238000012545 processing Methods 0.000 claims abstract description 9
- 238000004140 cleaning Methods 0.000 claims abstract description 7
- 238000011835 investigation Methods 0.000 claims abstract description 7
- 230000006399 behavior Effects 0.000 claims description 55
- 230000008569 process Effects 0.000 claims description 6
- 238000012098 association analyses Methods 0.000 claims description 3
- 239000006229 carbon black Substances 0.000 claims description 3
- 230000007246 mechanism Effects 0.000 claims description 3
- 238000012544 monitoring process Methods 0.000 claims description 3
- 238000012805 post-processing Methods 0.000 claims description 3
- 238000002347 injection Methods 0.000 abstract description 2
- 239000007924 injection Substances 0.000 abstract description 2
- 238000007689 inspection Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000002155 anti-virotic effect Effects 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- ZXQYGBMAQZUVMI-GCMPRSNUSA-N gamma-cyhalothrin Chemical compound CC1(C)[C@@H](\C=C(/Cl)C(F)(F)F)[C@H]1C(=O)O[C@H](C#N)C1=CC=CC(OC=2C=CC=CC=2)=C1 ZXQYGBMAQZUVMI-GCMPRSNUSA-N 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本申请涉及计算机数据安全技术领域,公开了一种基于调用链验证的勒索软件对抗方法,包括以下步骤:步骤一、首先安装一个Minifilter驱动程序,过滤所有的对敏感文件的写操作,对于敏感文件的写操作,需要对其进行中断调查处理,获取一个从应用到内核的调用链;步骤二、对获取到的调用链进行清洗,将调用地址同所在模块基地址相减,得到相对地址,将连续的重复的调用所在模块合并为一,形成一个简单的、但保留了主要特征的调用链。通过采用调用链验证的方式,使通过注入方式来访问敏感文件的勒索病毒也能被阻断,同时通过驱动程序拦截分析调用链,勒索病毒注入正规应用程序中发起操作,依然能够被准确识别。
Description
技术领域
本发明涉及计算机数据安全技术领域,具体为一种基于调用链验证的勒索软件对抗方法。
背景技术
调用链是指一个软件程序在执行期间各个模块或函数之间的相互调用关系,系统会对进程或应用程序进行监视,记录它们的调用链信息和执行流程。通过分析和验证这些调用链,系统能够检测到不正常的行为或恶意活动,包括勒索软件的加密过程、文件修改和网络通信等。从而中断勒索软件的运行、阻止其对文件的写入操作。由于勒索病毒针对的是普通数据文件,所以本身不要求较高的运行权限,也没有其他木马、病毒类的高危特征行为,因此,杀毒软件往往对勒索病毒并无察觉。应运而生的防勒索软件一方面通过特征检查查杀已知的勒索软件,对于未知的勒索软件,主要靠行为分析来鉴别和隔离。
目前大多的靠特征检查查杀防勒索软件,仅适用于已知的勒索软件。而勒索软件是不断推陈出新的,特征不断在变化中,这种方式无法防范变种的或新型的勒索软件。靠未知程序行为分析的话必然要设定白名单,例如office的应用程序读取doc必然要通过白名单放行。2020年以来,以Ryuk勒索病毒为代表的新一代勒索病毒都具备了应用程序注入能力,即注入正规应用程序内部去破坏特定类型的数据文件。这种情况靠未知程序行为分析技术往往会直接忽略,导致勒索软件得逞。为此本发明提出一种基于调用链验证的勒索软件对抗方法。
发明内容
针对现有技术的不足,本发明提供了一种基于调用链验证的勒索软件对抗方法,解决了现有技术中系统靠未知程序行为分析技术往往会直接忽略,导致勒索软件得逞的问题。
为实现以上目的,本发明通过以下技术方案予以实现:一种基于调用链验证的勒索软件对抗方法,包括以下步骤:
步骤一、首先安装一个Minifilter驱动程序,过滤所有的对敏感文件的写操作,对于敏感文件的写操作,需要对其进行中断调查处理,获取一个从应用到内核的调用链;
步骤二、对获取到的调用链进行清洗,将调用地址同所在模块基地址相减,得到相对地址,将连续的重复的调用所在模块合并为一,形成一个简单的、但保留了主要特征的调用链;
步骤三、将调用链存储到数据库,标记为正常应用程序行为,此数据库就是当前计算机的基线数据库;
步骤四、对于一些知名软件的正规文件访问行为形成一个内建数据库,随同产品一起发布;
步骤五、在运行期,采用同样的办法获取到对敏感文件的写操作,并提取和清洗调用链,将调用链在内建数据库中查找,以做进一步的判定,如果匹配不到,则中断此次写文件的行为,并向管理员发出告警;
步骤六、管理员如果认为这依然是正规的文件读写行为,则此次的调用链被当作正规调用链记录到当前计算机的基线数据库内;
步骤七、如果发现这不是正规文件读写行为,则很有可能遭遇未知勒索病毒,管理员可以发起进一步处置。
优选的,所述步骤一中的过滤所有的对敏感文件的写操作包括以下步骤:
在Minifilter驱动程序中实现文件写操作的回调函数,这些回调函数会在文件写入操作发生之前被调用,允许驱动程序检查和干预文件操作;
在回调函数中,驱动程序可以通过硬编码敏感文件路径检查正在被写入的文件路径,筛选出敏感文件路径或特定类型的文件。
优选的,所述步骤一中的中断调查处理包括以下步骤:
敏感文件的写操作首先产生中断,然后调用内核函数RtlCaptureStackBackTrace来获取当前的调用栈帧;
回溯栈到达内核层顶端之后,获取当前线程id,再在应用层获取该线程的应用层调用栈,形成一个从应用层到内核层的完整调用链;
每一层调用都记录函数地址、参数个数。
优选的,所述步骤二中的调用链清洗包括以下步骤:
对获取到的调用链数据进行初步处理,排除系统中正常的、合法的调用行为;
通过识别和提取勒索软件行为的特征来对调用链进行过滤;
对过滤出的调用链进行关联分析,以确定恶意行为之间的关系和序列;
对于被过滤出的调用链,进一步进行验证和验证结果的后处理。
优选的,所述步骤二中的重复的调用所在模块合并为一包括以下步骤:
对收集到的调用链数据进行遍历,找出连续重复的调用;
将连续重复的调用所在的模块合并为一个模块表示,即将这些重复的调用看作一个整体,只保留一个代表性的调用作为合并后模块的代表;
在合并结束后,更新调用链数据,将合并后的模块替代原来的连续重复调用,这样可以减少调用链的长度,并提高后续分析和识别的效率。
优选的,所述步骤三中的标记为正常应用程序行为包括以下步骤:
将收集到的调用链数据存储到数据库中,每个调用链将作为一个记录插入数据库表中;
对已知的正常应用程序行为进行分析和确定,并为这些行为的调用链添加标记或标识。
优选的,所述步骤四中形成一个内建数据库包括以下步骤:
收集与这些知名软件相关的文件访问行为数据;
设计一个数据结构来存储知名软件的文件访问行为数据,并将收集到的文件访问行为数据录入到数据库中;
定期维护和更新数据库,以跟踪知名软件的版本更新和行为变化。
优选的,所述步骤五中的在内建数据库中查找包括以下步骤:
在系统中的内核函数RtlCaptureStackBackTrace设置监测和捕获机制,以获取运行时的调用链数据;
将实时捕获的调用链与建立的内建数据库进行比,通过模式匹配算法对其进行验证判定。
优选的,所述步骤五中进一步的判定包括:
如果匹配到,则说明是正规应用程序读写行为,执行放行指令;
如果匹配不到,则在当前计算机的基线数据库中查找,并采用相同的方式查找,如果匹配到,则说明是正规应用程序读写行为,执行放行指令。
优选的,所述步骤一和步骤五中对写入文件进行中断的方式为Tripwire、Osquery、ACL、CrowdStrike或Carbon Black中的任意一种。
本发明提供了一种基于调用链验证的勒索软件对抗方法。具备以下有益效果:
1、本发明通过采用调用链验证的方式,使通过注入方式来访问敏感文件的勒索病毒也能被阻断。
2、本发明采用内建基线库加当前计算机自学习基线库的方法,提高本方法的适应性。
3、本发明通过驱动程序拦截分析调用链,勒索病毒注入正规应用程序中发起操作,依然能够被准确识别。
附图说明
图1为本发明的流程图。
具体实施方式
下面将结合本发明说明书附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例:
请参阅附图1,本发明实施例提供一种基于调用链验证的勒索软件对抗方法,包括以下步骤:
步骤一、首先安装一个Minifilter驱动程序,过滤所有的对敏感文件的写操作,对于敏感文件的写操作,需要对其进行中断调查处理,获取一个从应用到内核的调用链;
步骤二、对获取到的调用链进行清洗,将调用地址同所在模块基地址相减,得到相对地址,将连续的重复的调用所在模块合并为一,形成一个简单的、但保留了主要特征的调用链;
步骤三、将调用链存储到数据库,标记为正常应用程序行为,此数据库就是当前计算机的基线数据库;
步骤四、对于一些知名软件的正规文件访问行为形成一个内建数据库,随同产品一起发布;
步骤五、在运行期,采用同样的办法获取到对敏感文件的写操作,并提取和清洗调用链,将调用链在内建数据库中查找,以做进一步的判定,如果匹配不到,则中断此次写文件的行为,并向管理员发出告警;
步骤六、管理员如果认为这依然是正规的文件读写行为,则此次的调用链被当作正规调用链记录到当前计算机的基线数据库内;
步骤七、如果发现这不是正规文件读写行为,则很有可能遭遇未知勒索病毒,管理员可以发起进一步处置。
步骤一中的过滤所有的对敏感文件的写操作包括以下步骤:
在Minifilter驱动程序中实现文件写操作的回调函数,这些回调函数会在文件写入操作发生之前被调用,允许驱动程序检查和干预文件操作;
在回调函数中,驱动程序可以通过硬编码敏感文件路径检查正在被写入的文件路径,筛选出敏感文件路径或特定类型的文件。
步骤一中的中断调查处理包括以下步骤:
敏感文件的写操作首先产生中断,然后调用内核函数RtlCaptureStackBackTrace来获取当前的调用栈帧;
回溯栈到达内核层顶端之后,获取当前线程id,再在应用层获取该线程的应用层调用栈,形成一个从应用层到内核层的完整调用链;
每一层调用都记录函数地址、参数个数。
步骤二中的调用链清洗包括以下步骤:
对获取到的调用链数据进行初步处理,排除系统中正常的、合法的调用行为;
通过识别和提取勒索软件行为的特征来对调用链进行过滤;
对过滤出的调用链进行关联分析,以确定恶意行为之间的关系和序列;
对于被过滤出的调用链,进一步进行验证和验证结果的后处理。
步骤二中的重复的调用所在模块合并为一包括以下步骤:
对收集到的调用链数据进行遍历,找出连续重复的调用;
将连续重复的调用所在的模块合并为一个模块表示,即将这些重复的调用看作一个整体,只保留一个代表性的调用作为合并后模块的代表;
在合并结束后,更新调用链数据,将合并后的模块替代原来的连续重复调用,这样可以减少调用链的长度,并提高后续分析和识别的效率。
步骤三中的标记为正常应用程序行为包括以下步骤:
将收集到的调用链数据存储到数据库中,每个调用链将作为一个记录插入数据库表中;
对已知的正常应用程序行为进行分析和确定,并为这些行为的调用链添加标记或标识。
步骤四中形成一个内建数据库包括以下步骤:
收集与这些知名软件相关的文件访问行为数据;
设计一个数据结构来存储知名软件的文件访问行为数据,并将收集到的文件访问行为数据录入到数据库中;
定期维护和更新数据库,以跟踪知名软件的版本更新和行为变化。
步骤五中的在内建数据库中查找包括以下步骤:
在系统中的内核函数RtlCaptureStackBackTrace设置监测和捕获机制,以获取运行时的调用链数据;
将实时捕获的调用链与建立的内建数据库进行比,通过模式匹配算法对其进行验证判定。
步骤五中进一步的判定包括:
如果匹配到,则说明是正规应用程序读写行为,执行放行指令;
如果匹配不到,则在当前计算机的基线数据库中查找,并采用相同的方式查找,如果匹配到,则说明是正规应用程序读写行为,执行放行指令。
步骤一和步骤五中对写入文件进行中断的方式为Tripwire、Osquery、ACL、CrowdStrike或Carbon Black中的任意一种。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (10)
1.一种基于调用链验证的勒索软件对抗方法,其特征在于,包括以下步骤:
步骤一、首先安装一个Minifilter驱动程序,过滤所有的对敏感文件的写操作,对于敏感文件的写操作,需要对其进行中断调查处理,获取一个从应用到内核的调用链;
步骤二、对获取到的调用链进行清洗,将调用地址同所在模块基地址相减,得到相对地址,将连续的重复的调用所在模块合并为一,形成一个简单的、但保留了主要特征的调用链;
步骤三、将调用链存储到数据库,标记为正常应用程序行为,此数据库就是当前计算机的基线数据库;
步骤四、对于一些知名软件的正规文件访问行为形成一个内建数据库,随同产品一起发布;
步骤五、在运行期,采用同样的办法获取到对敏感文件的写操作,并提取和清洗调用链,将调用链在内建数据库中查找,以做进一步的判定,如果匹配不到,则中断此次写文件的行为,并向管理员发出告警;
步骤六、管理员如果认为这依然是正规的文件读写行为,则此次的调用链被当作正规调用链记录到当前计算机的基线数据库内;
步骤七、如果发现这不是正规文件读写行为,则很有可能遭遇未知勒索病毒,管理员可以发起进一步处置。
2.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤一中的过滤所有的对敏感文件的写操作包括以下步骤:
在Minifilter驱动程序中实现文件写操作的回调函数,这些回调函数会在文件写入操作发生之前被调用,允许驱动程序检查和干预文件操作;
在回调函数中,驱动程序可以通过硬编码敏感文件路径检查正在被写入的文件路径,筛选出敏感文件路径或特定类型的文件。
3.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤一中的中断调查处理包括以下步骤:
敏感文件的写操作首先产生中断,然后调用内核函数RtlCaptureStackBackTrace来获取当前的调用栈帧;
回溯栈到达内核层顶端之后,获取当前线程id,再在应用层获取该线程的应用层调用栈,形成一个从应用层到内核层的完整调用链;
每一层调用都记录函数地址、参数个数。
4.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤二中的调用链清洗包括以下步骤:
对获取到的调用链数据进行初步处理,排除系统中正常的、合法的调用行为;
通过识别和提取勒索软件行为的特征来对调用链进行过滤;
对过滤出的调用链进行关联分析,以确定恶意行为之间的关系和序列;
对于被过滤出的调用链,进一步进行验证和验证结果的后处理。
5.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤二中的重复的调用所在模块合并为一包括以下步骤:
对收集到的调用链数据进行遍历,找出连续重复的调用;
将连续重复的调用所在的模块合并为一个模块表示,即将这些重复的调用看作一个整体,只保留一个代表性的调用作为合并后模块的代表;
在合并结束后,更新调用链数据,将合并后的模块替代原来的连续重复调用,这样可以减少调用链的长度,并提高后续分析和识别的效率。
6.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤三中的标记为正常应用程序行为包括以下步骤:
将收集到的调用链数据存储到数据库中,每个调用链将作为一个记录插入数据库表中;
对已知的正常应用程序行为进行分析和确定,并为这些行为的调用链添加标记或标识。
7.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤四中形成一个内建数据库包括以下步骤:
收集与这些知名软件相关的文件访问行为数据;
设计一个数据结构来存储知名软件的文件访问行为数据,并将收集到的文件访问行为数据录入到数据库中;
定期维护和更新数据库,以跟踪知名软件的版本更新和行为变化。
8.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤五中的在内建数据库中查找包括以下步骤:
在系统中的内核函数RtlCaptureStackBackTrace设置监测和捕获机制,以获取运行时的调用链数据;
将实时捕获的调用链与建立的内建数据库进行比,通过模式匹配算法对其进行验证判定。
9.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤五中进一步的判定包括:
如果匹配到,则说明是正规应用程序读写行为,执行放行指令;
如果匹配不到,则在当前计算机的基线数据库中查找,并采用相同的方式查找,如果匹配到,则说明是正规应用程序读写行为,执行放行指令。
10.根据权利要求1所述的一种基于调用链验证的勒索软件对抗方法,其特征在于,所述步骤一和步骤五中对写入文件进行中断的方式为Tripwire、Osquery、ACL、CrowdStrike或Carbon Black中的任意一种。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311137059.0A CN117171737A (zh) | 2023-09-05 | 2023-09-05 | 一种基于调用链验证的勒索软件对抗方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311137059.0A CN117171737A (zh) | 2023-09-05 | 2023-09-05 | 一种基于调用链验证的勒索软件对抗方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117171737A true CN117171737A (zh) | 2023-12-05 |
Family
ID=88940702
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311137059.0A Pending CN117171737A (zh) | 2023-09-05 | 2023-09-05 | 一种基于调用链验证的勒索软件对抗方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117171737A (zh) |
-
2023
- 2023-09-05 CN CN202311137059.0A patent/CN117171737A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8370931B1 (en) | Multi-behavior policy matching for malware detection | |
US9715588B2 (en) | Method of detecting a malware based on a white list | |
US9424426B2 (en) | Detection of malicious code insertion in trusted environments | |
US8181248B2 (en) | System and method of detecting anomaly malicious code by using process behavior prediction technique | |
CN108063759B (zh) | Web漏洞扫描方法 | |
CN101923617B (zh) | 一种基于云的样本数据库动态维护方法 | |
DE202011111121U1 (de) | System zum Erfassen komplexer Schadsoftware | |
CN109918907B (zh) | Linux平台进程内存恶意代码取证方法、控制器及介质 | |
CN101243400B (zh) | 信息保护方法和系统 | |
CN102222194A (zh) | Linux主机计算环境安全保护的模块及方法 | |
CN106462703A (zh) | 补丁文件分析系统与分析方法 | |
CN108959071B (zh) | 一种基于RASP的PHP变形webshell的检测方法及系统 | |
CN101604361A (zh) | 一种恶意软件的检测方法及装置 | |
US10839074B2 (en) | System and method of adapting patterns of dangerous behavior of programs to the computer systems of users | |
CN109800569A (zh) | 程序鉴别方法及装置 | |
GB2592132A (en) | Enterprise network threat detection | |
KR100736540B1 (ko) | 웹 서버 위/변조 감시장치 및 그 방법 | |
CN111813752A (zh) | 一种获取rdp爆破攻击来源的方法和系统 | |
KR101327740B1 (ko) | 악성코드의 행동 패턴 수집장치 및 방법 | |
CN117435523B (zh) | 基于数据敏感级识别的存储介质自动销毁方法 | |
US11003772B2 (en) | System and method for adapting patterns of malicious program behavior from groups of computer systems | |
CN117171737A (zh) | 一种基于调用链验证的勒索软件对抗方法 | |
CN117454376A (zh) | 工业互联网数据安全检测响应与溯源方法及装置 | |
CN111885088A (zh) | 基于区块链的日志监测方法及装置 | |
CN115600201A (zh) | 一种电网系统软件的用户账户信息安全处理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |