DEFCON CHINA议题解读 | x86和ARM下的透明恶意软件调试

阅读量    23277 |

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

一、简介

本次的defcon China上,来自韦恩州立大学的宁振宇和张锋巍博士分享了关于针对恶意软件的透明调试分析的相关技术。

随着恶意软件(如病毒、勒索软件等)在互联网上的泛滥,调试和分析病毒等软件的恶意行为对针对恶意软件的防御有着重要的作用。然而,现有的恶意软件分析平台在模拟器(如qemu)、内核或者执行指令中留下了一些可检测的特征,这给恶意软件提供了机会去逃避恶意软件分析平台的检测,导致当前的恶意软件分析系统无法检测到复杂的恶意软件。

本次报告介绍了利用计算机和移动设备上现有的硬件特性进行恶意软件检测的技术,可以实现透明的病毒等恶意软件调试分析。报告中详细介绍了基于x86架构的MaIT和基于ARM架构的Ninja恶意软件检测框架。

 

二、背景

透明分析是指针对恶意软件的分析而无法被恶意软件感知,从而不能恶意软件检测到。恶意软件的检测和反检测是一个对抗过程,并在持续的升级。这种对抗从软件的用户层到操作系统的内核层,再到更底层的虚拟机(hypervisor)或模拟器。

然而,这些检测方法都会在检测过程中留下一些指纹,提供给恶意软件反检测和对抗的机会。恶意软件可以在探测到有检测分析系统运行时不执行可疑操作,如数据传输等;而当检测分析系统停止运行或退出之后再进行执行恶意操作。因此,透明分析在恶意软件的检测中具有重要的意义。

 

三、透明的恶意软件调试分析

报告介绍了两个基于硬件机制的透明恶意软件检测框架,可以实现对恶意软件的调试分析而不被恶意软件感知。一个是基于x86架构的MaIT,该工作已经于2015年发表在顶级安全学术会议S&P上,另一个是基于ARM架构的Ninja,该工作也在2017年发表在另一个顶级安全会议USENIX Security上。

MaIT主要是利用x86架构中存在的一个系统管理模式(System Management Mode, SMM)来实现透明的调试分析。MaIT利用SMM构建一个硬件隔离的执行环境,该执行环境无法被其他代码所检测到。如下图所示,MaIT包括一个调试客户端和一个调试服务端。调试客户端可以通过(System Management Interrupt)SMI中断来进入服务端的SMM环境,在SMM环境中进行相应的调试分析,并将相应的结果返回给客户端。

Ninja主要是利用ARM下的TrustZone来构建一个隔离执行环境。ARM的TrustZone技术可以将执行环境划分为安全执行区域(secure domain)和非安全区域(non-secure domain)。与SMM类似,secure domain和non-secure domain 通过不同的中断进行访问。同时,一些安全敏感的寄存器只能通过安全区域进行访问。如下图所示,Ninja通过调试客户端对安全区域进行操作,在安全区域中运行调试子系统和跟踪子系统,并通过相应的中断对非安全区域的代码和程序进行分析,从而实现针对恶意软件的透明分析。

但这些方法也存在一些缺陷,比如在模式切换时存在较高的性能开销,存在一些为被保护的修改寄存器。

 

四、总结

报告主要介绍了两个基于硬件机制的透明分析框架,MaIT和Ninja。MaIT和Ninja可分别针对x86架构和ARM架构下恶意软件进行分析,并不会被恶意软件所感知,从而可以检测到更复杂的恶意软件。

[1] Zhenyu Ning and Fengwei Zhang. Ninja: Towards Transparent Tracing and Debugging on ARM. In Proceedings of The 26th USENIX Security Symposium, Vancouver, BC, Canada, August 2017.

[2] Fengwei Zhang, Kevin Leach, Angelos Stavrou, Haining Wang, and Kun Sun. Using Hardware Features for Increased Debugging Transparency. In Proceedings of The 36th IEEE Symposium on Security and Privacy, San Jose, CA, May 2015.

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多