基于内存结构逆向分析的代码注入攻击取证检测方法与系统技术方案

技术编号:35988926 阅读:53 留言:0更新日期:2022-12-17 23:03
本发明专利技术提供一种基于内存结构逆向分析的代码注入攻击取证检测方法与系统。该方法包括:步骤1:对内存映像文件进行预处理,得到物理内存页面集合P;步骤2:基于DLL特征在物理内存页面集合P中定位得到DLL代码模块物理内存页面集合P

【技术实现步骤摘要】
基于内存结构逆向分析的代码注入攻击取证检测方法与系统


[0001]本专利技术涉及电子(数字)犯罪取证
,尤其涉及一种基于内存结构逆向分析的代码注入攻击取证检测方法与系统,特别适合于正在运行的基于Windows不同版本操作系统的物理内存中新型代码注入攻击行为的检测与取证分析。

技术介绍

[0002]随着网络安全领域的攻防博弈,DLL注入发展出了一系列新的变种技术,与经典的DLL注入方法不同,新型DLL注入攻击避免受害进程调用系统API加载恶意DLL,使受害进程的加载模块链表(LDR)中没有注入DLL的信息,而且可能篡改虚拟地址描述符(Virtual Address Descriptor,VAD)的属性,实现了隐蔽注入恶意DLL模块。新型DLL注入的主要攻击目标是用户空间进程,注入的手段更加复杂与隐蔽。如Stephen等提出的反射式注入技术(Reflective code inject)、Mieleke等人提出的Process Hollowing技术,以及Palutke等提出的VAD重映射技术。而且,一些恶意软件使用了类似的攻击技术,如Duqu2.0(2015)、Dyre银行木马(2015)、Conti勒索软件(2020)等,造成了广泛严重的危害,因此对新型DLL注入攻击的检测十分重要。
[0003]目前基于内存取证的注入页面检测方法主要关注虚拟内存空间,尤其依赖于VAD的属性,在应对新型注入攻击时检测准确率低。如Volatility和Rekall的malfind插件检测VAD的标签、私有状态和保护属性,但是该方法检测条件过于粗略,容易产生误检,并且无法检测如VAD重映射等修改了VAD保护属性的恶意代码;Pshoul提出基于调用栈检测线程注入的方法,并开发了malthfind插件,Srivastava等提出了类似的基于调用栈分析的注入检测方法,能检测修改了VAD保护属性的注入技术,但是基于堆栈调用无法检测还未执行的隐蔽注入页面。Cohen提出了在逻辑不连续的物理内存中匹配YARA签名的方法,但是需要输入目标恶意软件的签名,无法检测未知的恶意软件;Block等提出把PTE的可执行属性作为可执行物理内存页面的特征,但是该方法会报告所有修改过的内存映射,包含了大量的良性内存页面,难以准确定位恶意内存页面。

技术实现思路

[0004]针对现有方法对新型注入攻击的检测准确率较低的问题,本专利技术提供一种基于基于内存结构逆向分析的代码注入攻击取证检测方法与系统。
[0005]第一方面,本专利技术提供一种基于内存结构逆向分析的代码注入攻击取证检测方法,包括:
[0006]步骤1:对内存映像文件进行预处理,得到物理内存页面集合P;
[0007]步骤2:基于DLL特征在物理内存页面集合P中定位得到DLL代码模块物理内存页面集合P
e

[0008]步骤3:逆向重建虚拟内存空间以构建虚拟内存空间到物理内存空间的页面映射t;
[0009]步骤4:根据页面映射t,计算用户空间页面集合V
u
并逆向查找得到物理内存页面集合P
e
对应的虚拟内存页面集合V
e

[0010]步骤5:逆向重建进程的LDR链表结构以获取DLL代码模块虚拟内存页面集合V
l

[0011]步骤6:比较虚拟内存页面集合V
e
、用户空间页面集合V
u
和DLL代码模块虚拟内存页面集合V
l
,得到隐蔽的注入DLL代码模块虚拟内存页面集合V
h

[0012]进一步地,步骤1具体包括:
[0013]对内存映像文件进行解析后得到原始物理内存数据,按照4KB大小对所述原始物理内存数据进行分页管理,得到由若干个4KB内存页面组成的物理内存页面集合P。
[0014]进一步地,步骤2具体包括:
[0015]初始化DLL代码模块物理内存页面集合P
e
,然后遍历物理内存页面集合P,将集合P中含有DLL头部特征的内存页面全部加入至集合P
e
中,直至遍历完集合P中的所有内存页面,得到最终的集合P
e

[0016]进一步地,步骤3具体包括:
[0017]步骤3.1:在EPROCESS中搜索已知进程的名称,根据搜索结果构建EPROCESS结构;
[0018]步骤3.2:采用_KUSER_SHARED_DATA结构验证所构建的EPROCESS结构是否正确;若正确,执行步骤3.3;
[0019]步骤3.3:从EPROCESS结构中读取进程的页表物理地址DTB值,进而由内存页表构建得到该进程的虚拟页面到物理页面的映射关系;
[0020]步骤3.4:根据EPROCESS结构中的ActiveProcessLinks获取与其相邻的两个EPROCESS结构的虚拟地址;
[0021]步骤3.5:根据已获取的进程的虚拟页面到物理页面的映射关系和相邻的两个EPROCESS结构的虚拟地址,构建得到相邻两个新的进程EPROCESS结构;
[0022]步骤3.6:针对每个新的进程EPROCESS结构,返回执行步骤3.3至步骤3.5,直至遍历完成所有进程的EPROCESS结构,即可得到虚拟内存空间到物理内存空间的页面映射t。
[0023]进一步地,步骤4具体包括:
[0024]针对每个进程,根据进程的用户空间地址范围得到每个进程的用户空间页面集合;计算所有进程的用户空间页面集合的并集得到用户空间页面集合V
u

[0025]遍历所有虚拟内存页面,针对每个虚拟内存面执行页面映射t转换页面,若转换后的页面属于DLL代码模块物理内存页面集合P
e
,则将该虚拟内存页面加入至虚拟内存页面集合V
e
;遍历完成所有虚拟内存页面后即可得到最终的虚拟内存页面集合V
e

[0026]进一步地,步骤5具体包括:
[0027]针对每个进程,从其EPROCESS结构中读取PEB的指针,然后找到LDR链表,读取链表项得到每个进程的LDR链表中DLL代码模块虚拟内存页面集合V
proc_l

[0028]计算所有进程的LDR链表中DLL代码模块虚拟内存页面集合V
proc_l
的并集,即为DLL代码模块虚拟内存页面集合V
l

[0029]进一步地,步骤6具体为:v表示需要检测的虚拟内存页面。
[0030]第二方面,本专利技术提供一种基于内存结构逆向分析的代码注入攻击取证检测系统,包括:
[0031]预处理模块,用于对内存映像文件进行预处理,得到物理内存页面集合P;
[0032]物理定位模块,用于基于DLL特征在物理内存页面集合P中定位得到DLL代码模块物理内存页面集合P
e

[0033]虚拟空本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.基于内存结构逆向分析的代码注入攻击取证检测方法,其特征在于,包括:步骤1:对内存映像文件进行预处理,得到物理内存页面集合P;步骤2:基于DLL特征在物理内存页面集合P中定位得到DLL代码模块物理内存页面集合P
e
;步骤3:逆向重建虚拟内存空间以构建虚拟内存空间到物理内存空间的页面映射t;步骤4:根据页面映射t,计算用户空间页面集合V
u
并逆向查找得到物理内存页面集合P
e
对应的虚拟内存页面集合V
e
;步骤5:逆向重建进程的LDR链表结构以获取DLL代码模块虚拟内存页面集合V
L
;步骤6:比较虚拟内存页面集合V
e
、用户空间页面集合V
u
和DLL代码模块虚拟内存页面集合V
l
,得到隐蔽的注入DLL代码模块虚拟内存页面集合V
h
。2.根据权利要求1所述的基于内存结构逆向分析的代码注入攻击取证检测方法,其特征在于,步骤1具体包括:对内存映像文件进行解析后得到原始物理内存数据,按照4KB大小对所述原始物理内存数据进行分页管理,得到由若干个4KB内存页面组成的物理内存页面集合P。3.根据权利要求1所述的基于内存结构逆向分析的代码注入攻击取证检测方法,其特征在于,步骤2具体包括:初始化DLL代码模块物理内存页面集合P
e
,然后遍历物理内存页面集合P,将集合P中含有DLL头部特征的内存页面全部加入至集合P
e
中,直至遍历完集合P中的所有内存页面,得到最终的集合P
e
。4.根据权利要求1所述的基于内存结构逆向分析的代码注入攻击取证检测方法,其特征在于,步骤3具体包括:步骤3.1:在EPROCESS中搜索已知进程的名称,根据搜索结果构建EPROCESS结构;步骤3.2:采用_KUSER_SHARED_DATA结构验证所构建的EPROCESS结构是否正确;若正确,执行步骤3.3;步骤3.3:从EPROCESS结构中读取进程的页表物理地址DTB值,进而由内存页表构建得到该进程的虚拟页面到物理页面的映射关系;步骤3.4:根据EPROCESS结构中的ActiveProcessLinks获取与其相邻的两个EPROCESS结构的虚拟地址;步骤3.5:根据已获取的进程的虚拟页面到物理页面的映射关系和相邻的两个EPROCESS结构的虚拟地址,构建得到相邻的两个新的进程EPROCESS结构;步骤3.6:针对每个新的进程EPROCESS结构,返回执行步骤3.3至步骤3.5,直至遍历完成所有进程的EPROCESS结构,即可得到虚拟内存空间到物理内存空间的页面映射t。5.根据权利要求1所述的基于内存结构逆向...

【专利技术属性】
技术研发人员:李炳龙张和禹孙怡峰胡浩张玉臣汪永伟李媛芳常朝稳
申请(专利权)人:河南云眼科技有限公司
类型:发明
国别省市:

相关技术
    暂无相关专利
网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1