一种基于处理器跟踪的内存恶意代码检测方法技术

技术编号:30561410 阅读:14 留言:0更新日期:2021-10-30 13:44
本发明专利技术公开了一种基于处理器跟踪的内存恶意代码检测方法,属于信息安全技术领域,其特征在于,包括以下步骤:a、驱动模块初始化Intel处理器跟踪功能;b、监控目标进程的代码执行路径;c、解码缓冲区获取执行路径的完整虚拟地址;d、对内存页进行恶意代码检测;e、判断代码是否属于可信内存代码;f、检测内存代码API调用记录和COM接口调用记录,并与异常行为知识库进行匹配。本发明专利技术除了能对无文件攻击中使用的内存代码、经过加壳的恶意代码、加密后的恶意代码病毒和木马常见场景进行检测外,同时对漏洞利用过程中的shellcode代码执行同样也有检测效果,不仅检测效果好,而且具有很好的普适性。的普适性。的普适性。

【技术实现步骤摘要】
一种基于处理器跟踪的内存恶意代码检测方法


[0001]本专利技术涉及到信息安全
,尤其涉及一种基于处理器跟踪的内存恶意代码检测方法。

技术介绍

[0002]传统终端安全检测软件的恶意代码检测机制通常主要是针对文件实体内容进行检测,而近年来兴起的“无文件攻击”和“shellcode分离免杀”技术不会直接在系统中产生实体文件,使得传统安全检测软件的检测手段完全失效,比如恶意软件“Poison IVY”木马就提供了类似的能力,其能够直接生成shellcode形式的木马,用户可以自行将shellcode形式的木马嵌入到各种载体中进行传播,同时结合代码加密和运行时解密来绕过安全防御软件的检测。这两种攻击手段本质上都是将恶意代码直接在内存中执行,可以不在磁盘产生明显的exe文件和dll文件这些关键实体文件,或者只产生少量非关键外壳启动代码,通过近年各种网络安全报告可以看到该技术越来越多的出现在APT攻击甚至一般网络攻击中,其能够有效的对抗传统安全检测软件。
[0003]英特尔在其Core微架构的处理器上开始提供了分支记录功能,能将程序分支跳转记录到LBR寄存器或者内存缓冲区,到酷睿M和第五代英特尔酷睿处理器中引入了处理器跟踪功能IPT,对处理器跟踪功能IPT做了进一步的强化和性能优化,这里将这两种技术统一称为处理器跟踪,其功能都是将程序代码执行路径记录下来,处理器跟踪作为一种芯片硬件提供的功能,对监控目标不会有侵入性修改,有着很高的性能和可靠性,在信息安全领域有着很广阔的应用前景。
[0004]基于挂钩和系统原生的行为监控机制虽然是目前应用程序行为监控系统广泛使用的,已经被大部分安全软件所使用,但其依然存在诸多局限和问题未能解决。传统的挂钩技术通常需要侵入式的修改目标进程的二进制代码,当有多个挂钩程序同时挂钩或者没有处理好多核并发问题时,会导致目标进程运行不稳定,甚至导致目标进程崩溃。挂钩技术修改二进制代码后通常会存在修改痕迹,目标进程可以通过读取二进制代码被修改的痕迹来发现是否存在挂钩函数,甚至某些恶意程序会使用挂钩对抗技术,比如通过恢复被修改的二进制代码让“挂钩”机制失效,从而从行为监控系统中逃逸出去。现代操作系统并不提倡甚至禁止使用挂钩技术,因为其破坏了操作系统的完整性,最新的Win10和macOS操作系统都提供了内核补丁保护机制来保护操作系统代码的完整性,导致传统挂钩技术不能在内核中使用。内核补丁保护机制极大的限制了挂钩技术的使用范围和监控范围,以及只能通过在用户层实施的挂钩技术来实现有限的行为监控能力,降低了行为监控的可靠性。
[0005]操作系统原生提供的行为监控机制通常有较好的稳定性和可靠性,但目前绝大部分操作系统所提供的监控机制有限,大部分安全防御软件通常利用文件过滤驱动、进程行为监控、注册表过滤驱动、网络过滤驱动技术监控常见的文件操作、进程操作和注册表操作这些关键行为,不能实现更细粒度的应用层行为监控,如组件对象模型接口操作的监控、win32子系统窗口操作监控和其他非内核调用的应用层应用程序接口操作监控,操作系统
提供的行为监控技术并不能完全覆盖安全防御系统所需要的行为监控需求。
[0006]总之,无论是基于挂钩技术还是操作系统原生行为监控机制实现的应用程序行为监控,在实际应用场景中都不同程度的存在监控范围、监控深度和监控可靠性不足的问题。
[0007]常见的基于特征码扫描的恶意代码检测技术,其通常是基于某些固定时机来触发对目标的扫描检测,如:在进程启动时对进程发起特征码扫描,在线程启动时对线程入口范围的内存地址空间发起特征码扫描,在加载动态链接库时对动态链接库发起特征码扫描。针对这种基于固定时机的特征码扫描,在实际安全对抗场景已经出现了比较多的绕过手段,比如:将恶意代码进行加密和代码加壳,在实际运行时才将恶意代码进行动态解密,可能由于特征码扫描的时机过早,在特征码扫描时恶意代码还未完全解密,从而绕过了恶意代码检测。另一种绕过手段是将需要调用的系统API名称字符串进行加密,当实际调用时才将API名称进行解密,然后通过动态获取函数指针的方式调用系统API,由于很多安全防御软件是基于系统API名称字符串来抽取的特征码,将系统API名称加密后就绕过了特征码扫描。
[0008]公开号为CN 110268411A,公开日为2019年09月20日的中国专利文献公开了一种控制流完整性实施方法,其特征在于,所述方法在计算机系统的运行时环境中执行的受保护进程上执行,所述方法包括:拦截源于在所述运行时环境中执行的所述受保护进程的执行的系统调用;所述计算机系统的内核内的快速路径从内核存储器中访问与所述系统调用相对应的处理器跟踪数据包;所述快速路径将所述处理器跟踪数据包匹配到已标记信用的控制流图定义内的程序控制流条目,所述条目具有表示程序控制流的可信度的关联信用值;以及在所述匹配之后,如果所述关联信用值不满足指定阈值,则调用慢速路径用于进一步处理所述处理器跟踪数据包,否则,提供允许执行所述系统调用的指示。
[0009]该专利文献公开的控制流完整性实施方法,首先通过离线的二进制代码静态分析或运行时模糊测试分析来获取程序的可信的控制流图,然后在实时运行时通过处理器跟踪功能记录代码执行路径,结合内核调用拦截器,在敏感系统调用上增加监控机制以检查控制流转移路径合法性,如果当前系统调用的控制流路径与预期可信控制流图不一致则说明是不可信的系统调用来源,并阻止该系统调用,以此防御二进制漏洞利用中常见的控制流劫持攻击。控制流完整性技术的实施需要预先离线训练准备目标进程所有代码的可信控制流图,这导致了其无法在新的未适配的应用程序上发挥作用;此外,可信控制流图的获取需要对目标进程进行二进制静态分析或运行时动态模糊测试,静态分析无法对运行时多态、动态调用API以及其他形式的运行时动态代码执进行分析,而运行时动态模糊测试受限于代码覆盖率的限制,无法达到百分之百的代码路径覆盖,无法完全分析程序的所有行为,这两种方式都不能保证获得完整目标代码的可信控制流图,在最终技术所达到的效果上看,控制流完整性所防御的主要是针对目标程序的漏洞利用过程中控制流劫持行为,如返回导向编程、跳转导向编程、返回至C标准库,其并不能直接用于针对木马病毒所常用的内存中直接执行恶意代码攻击场景的检测。

技术实现思路

[0010]本专利技术为了克服上述现有技术的缺陷,提供一种基于处理器跟踪的内存恶意代码检测方法,本专利技术在未适配的应用程序上也能发挥安全防御能力,针对的检测目标是更广义上的内存恶意代码,除了能对无文件攻击中使用的内存代码、经过加壳的恶意代码、加密后的恶意代码病毒和木马常见场景进行检测外,同时对漏洞利用过程中的shellcode代码执行同样也有检测效果,不仅检测效果好,而且具有很好的普适性。
[0011]本专利技术通过下述技术方案实现:一种基于处理器跟踪的内存恶意代码检测方法,其特征在于,包括以下步骤:a、安装驱动模块,在内核中注册进程和线程的启动和退出的回调处理例程,在进程回调例程中记录所有启动的线程、进程和文件信息,记录进程的CR本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于处理器跟踪的内存恶意代码检测方法,其特征在于,包括以下步骤:a、安装驱动模块,在内核中注册进程和线程的启动和退出的回调处理例程,在进程回调例程中记录所有启动的线程、进程和文件信息,记录进程的CR3寄存器信息,驱动模块初始化Intel处理器跟踪功能,为每个CPU核心配置物理内存缓冲区和中断处理例程并启动处理器跟踪功能;b、处理器跟踪功能监控目标进程的代码执行路径,对所有间接跳转指令执行行为进行记录,将指令执行路径记录到缓冲区中,当缓冲区满时触发中断处理例程,在中断处理例程中切换后备的缓冲区,并启动恶意代码分析;c、解码缓冲区获取执行路径的完整虚拟地址,根据分页信息包和CR3寄存记录与进程进行关联,对间接跳转指令所跳转的目的地址进行符号解析,获得目标跳转地址存在的真实API名称或者COM接口名称,并以4KB为粒度关联代码路径所在内存页,判断地址空间是否是首次执行,如果是则进入步骤d;d、对内存页进行恶意代码检测,判断内存页是否属于文件映像所映射的内存范围,如果是则开始对文件映像进行恶意代码检测,如果文件对象不可信或存在恶意特征码则认为存在恶意代码并发出报警,如果地址空间不属于文件则进入步骤e;e、获取代码内存属性信息,获取当前进程类型,通过代码内存可信度分析算法判断代码是否属于可信内存代码;f、检测内存代码API调用记录和COM接口调用记录,并与异常行为知识库进行匹配,如果匹配到可疑行为则报警。2.根据权利要求1...

【专利技术属性】
技术研发人员:田红伟魏勇徐文勇
申请(专利权)人:成都数默科技有限公司
类型:发明
国别省市:

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

1