文/ 周雷 张锋巍(南方科技大学)
随着计算机技术的快速发展,其安全问题日益突出,比如越发庞大的操作系统导致更多的漏洞,未授权的软件通过漏洞访问系统资源成为常态。攻击者通过植入系统底层恶意软件或木马,隐藏自身的恶意行为并控制目标系统。检测恶意软件和木马的方法思路基本一致:部署更高权限、更底层的防御机制,检测上层系统的完整性。近十年来,研究人员利用快速发展的虚拟机自省技术和基于硬件辅助的系统检测技术,有效地检测系统底层的恶意软件。
现有的检测方法优缺点明显。基于虚拟化技术的检测方法通常需要额外的软件层,比如虚拟机管理器,实现对虚拟机的管理的同时对虚拟机系统运行状态进行检测。虚拟化方法的优点是能灵活部署检测机制,对多样化的操作系统均能有效检测。其缺点是:1)引入明显的系统开销,虚拟化技术在CPU上执行,内存读写等各方面需要额外的中间转换操作。2) 虚拟机管理器如XEN和KVM等类似于传统的操作系统,包含大量的代码和系统资源,因此虚拟机管理器作为系统检测的信任基础,需要维护较大的可信计算根(Trust Computing Base,TCB)。当攻击者直接攻击虚拟机管理器,基于虚拟化的检测技术将彻底失效。基于硬件辅助的检测技术通常只有较小的TCB,但是构建可信执行环境需要额外的硬件设备如PCI卡,或者特殊的CPU模式如Intel系统管理模式(System Management Mode,SMM)。前者引入新的设备开销,限制了方案的部署。后者需要中断主系统执行程序,影响正常程序运行的同时且容易被攻击者检测到中断行为。
本文中,我们提出了一种基于硬件辅助的透明自省方案叫做“夜鹰”Nighthawk [1]。“夜鹰”基于Intel芯片组已有的硬件特性Intel管理引擎(Intel Management Engine,IME)构建可信执行环境,并部署检测系统。IME作为Intel芯片组电源与状态管理单元,被设计成独立子系统(拥有独立的CPU,存储等资源)并嵌入到主板平台控制单元(Platform Controller Hub,PCH)中。因此“夜鹰”完全独立于主系统,透明的测量主系统内核、虚拟机管理器以及系统管理模式内存(SMRAM)等内存数据的完整性。其优点包括不需要额外的硬件引入、高权限、较小的TCB、低开销和透明性。然而IME在目前的商用机器部署中都是类似黑盒的存在,研究人员缺乏开源文档资料了解其系统内部实现。因此在“夜鹰”系统研究中,我们首先修改物理内存映射机制,获取IME系统运行时内存数据,通过逆向工程分析其内存中包含的代码指令与函数。其次在IME系统中注入自省模块代码,通过选择原IME程序中合适的指令位置,嵌入跳转指令指向自省程序。另外设计基于远端网络通信触发自省功能的服务接口,实现防御者与自省系统之间的交互。本文验证了系统的有效性且测试表明“夜鹰”对主系统引入极为微弱的影响。以下是对系统设计与实现的细节描述。
我们首先通过一些已有的IME分析工作 [2, 3, 4] 了解IME的内部设计模块,如图1所示,IME具有完整的计算资源,能够间接访问主物理内存,并拥有独立的网卡驱动。我们通过逆向工程分析出IME内部系统的各个模块。
图1 Intel管理引擎系统架构及其扩展内存布局
我们发现,在IME系统部分模块之间存在稳定的空闲内存区域,可以用于加载自定义的自省程序。当自省程序加载到IME内存后,在IME内核段程序中选择合适的函数入口,嵌入跳转指令用于触发自省程序的执行。最后恢复跳转指令,使得IME CPU能返回执行原有的函数,保证IME系统运行的一致性。根据检测目标的不同,我们设计了针对系统内核到SMRAM不同目标的自省功能模块。自省模块通过自定义的直接内存读取(DMA)通道和Intel管理引擎接口(HECI)与主系统交互,“夜鹰”获取主系统运行时的物理内存数据并进行测量分析,同时通过IME独立的网卡驱动与远端平台通信。我们在远端服务平台上设计了相应的系统接口实现启动检测命令和分析检测结果的功能。具体的细节如图2所示。
图2 “夜鹰”系统架构
我们在主系统的Linux内核,XEN/KVM虚拟机管理器和系统管理模式中分别部署并运行真实的恶意程序,同时运行“夜鹰”对主系统进行检测。最终的实验结果表明,“夜鹰”对所测试的系统底层恶意程序和木马能有效检测,如图3所示。同时通过Benchmark测试启用和不启动“夜鹰”时对主系统性能的影响,结果表明最坏情况下性能下降不超过1.47%,如图4所示。需要指出的是,夜鹰的运行独立于主系统,性能影响来自于“夜鹰”对主系统物理内存读写,造成主系统的内存读写冲突,而在实际的系统执行中,该影响可忽略不计。
图3 “夜鹰”系统对恶意程序和木马能有效检测
图4 “夜鹰”系统对主系统的性能
参考文献
1. L. Zhou, J. Xiao, K. Leach, W. Weimer, F. Zhang, and G. Wang, “Nighthawk: Transparent system introspection from ring-3,” in European Symposium on Research in Computer Security. Springer, 2019, pp. 217–238.
2. A. Tereshkin and R. Wojtczuk, “Introducing ring-3 rootkits,” BlackHat USA, 2009.
3. M. Ermolov and M. Goryachy, “How to Hack a Turned-Off Computer, or Running Unsigned Code in Intel Management Engine,” BlackHat Europe, 2017.
4. X. Ruan, “Platform Embedded Security Technology Revealed: Safeguarding the Future of Computing with Intel Embedded Security and Management Engine,” Apress, 2014.
作者简介
周雷是南方科技大学访问博士,中南大学博士生,他的研究方向是系统安全,现在主要的研究领域是分析Intel芯片组架构中的硬件特性,构建可信计算环境,对运行时系统进行检测。
张锋巍是南方科技学计算机科学与工程系副教授,研究员。在加入南科大之前,他是美国韦恩州立大学计算机系助理教授(2015-2019)。他于2015年获得美国乔治梅森大学计算机专业的博士学位。主要研究领域是系统安全,包括可信执行、硬件辅助安全等。