虚拟化安全监控技术小结

Virtualization-based Monitoring

Virtualization-based Monitoring 是指利用虚拟化技术对上层虚拟机进行监控或者保护。通常分为两类模型“In-VM”模型和“Out-of-VM”模型。

  • “In-VM” Model

“In-VM”模型如下图所示,虚拟化安全监控的部分模块放置在非可信虚拟机(目标虚拟机)中,而这部分模块通常在虚拟机操作系统的内核中监控系统的安全事件。它们所属的内存区域受hypervisor保护,可以避免Rootkit对其攻击。典型的有“SIM”[1]。由于把部分监控模块引入到目标虚拟机中,这样在同样的操作系统环境下,语义重构过程相对简单,且对整个系统带来的性能损耗低(不会因为监控事件而陷入hypervisor)。但是,也正因如此,它给系统的整体安全带来隐患,很容易被恶意代码检测到虚拟机安全监控的存在,不具备透明性。

虚拟化安全监控技术小结

  • “Out-of-VM” Model

“Out-of-VM”模型如下图所示。在这类模型中,安全监控模块放置在可信虚拟机和hypervisor中,部分虚拟机安全监控把所有的组件都放到了hypervisor中,没有可信虚拟机。通过在hypervisor中对目标主机设置监控点来截获指定的事件,负责分析截获的事件的监控模块可置于可信虚拟机或者hypervisor中,典型的有Ether[2]。由于在不同的处理器模式中,虚拟机安全监控只能直接获取目标虚拟机的寄存器和内存中的二进制序列,所以,语义重构的过程较为复杂;非可信虚拟机、可信虚拟机和hypervisor三者间的切换也会带来较大的性能开销。然而,由于在目标虚拟机中不存在任何模块,所以安全性高,透明性强。

虚拟化安全监控技术小结

Bridges Across The Semantic Gap

  • Hand-crafted data structure signatures

手工重构是指凭借经验,通过遍历指针、搜索特征码等途径,在hypervisor中获取虚拟机中特定的信息。如,可以通过fs或gs寄存器获取kpcr结构,然后通过指针获取kprcb、kthread等结构,进而通过搜索特征码、计算得到SSDT、eprocess链表等。典型的有libvmi[3]。

  • Source code analysis

通过分析开源OS的源码,获取函数调用关系、数据结构之间的指向关系等。可以通过工具自动对源码分析。

  • Dynamic analysis

动态分析是指跟踪特定的事件,并根据获得的信息判断谁触发了这些事件,或者这些事件的转移方向,一般针对一些动态数据(位置可变、内容可变)可利用此方法进行分析。典型的有HookFinder[4]。

  • ……

Protection Method

  • W⊕X

通过hypervisor的影子页表或扩展页表等,设置虚拟机的页表属性:可执行的页面不可写,可写的页面不可执行。通常可对内核、驱动模块等的代码段设置为不可写,防止rootkits修改系统代码。

  • VMExit

通过陷入机制,来监控软件行为或检测虚拟机行为的合法性。如违背W+X保护会陷入到hypervisor的页异常处理函数中,对hypervisor保护的寄存器进行读/写也可陷入到hypervisor相应的处理函数中。

  • Other virtualization

如APIC、网卡的虚拟化等。

  • Whitelist

可以在hypervisor中加入白名单机制,过滤非可信的操作。如允许特定函数修改特定地址内容。

  • ……

Prevention VS Detection

Prevention侧重于阻止,即在攻击前拦截攻击,如阻止一个恶意驱动的加载。Detection侧重于检测,即在攻击成功后,检测是否发生过攻击。Prevention类的虚拟机监控又称Active Monitoring(主动监控),典型的有Lares[5]。Detection类的虚拟机监控又称Passive Monitoring(被动监控),典型的有VICTOR[6]。

  • Active Monitoring(Synchronous)

主动监控一般采用同步机制,即事件发生时进行拦截。所以主动监控适合于监控发生频率较低的事件,如进程的创建。对发生频率较高的事件进行拦截,如拦截线程的切换,则会带来较大的性能损耗,尤其是当这类事件会引起陷入hypervisor的时候。

  • Passive Monitoring (Asynchronous)

被动监控一般采用异步机制,即事件发生后进行检测,如周期性的扫描内存。发生频率较高的事件可通过这种方式进行检测。然而这种方法需要权衡性能和风险,确定一个合适的检测周期。过于频繁的检测会带来较大的性能损耗,而周期间隔较大又可能遗漏攻击行为(攻击行为发生在两次检测之间)。

Attack & Defense

  • MEP (Modify Execution Path)

MEP是指修改可执行代码从而截获特定的执行流程,如inline hook。这类攻击比较好防御,W+X保护即可。

  • KOH(Kernel Object Hooking)

KOH是指替换内核对象的函数指针从而截获这些函数的执行流程,这类攻击方式较难防御,文献中一般采用静态分析或动态分析进行防护。如HookSafe[7]通过拦截内存分配函数,并跟踪这些内存进行防护。

  • DKOM(Direct Kernel Object Manipulation)

DKOM有别于以上两种攻击,它不需要截获代码的执行流程,而是只对内核数据进行修改,如从进程双向链表中摘除节点隐藏进程。这类攻击更难防御,一般采用多维视图进行检测,如遍历OS的线程执行队列获得进程列表,从而获得另一维度的视图。

  • DKSM  (Direct Kernel Structure Manipulation)

DKSM专门针对虚拟化安全监控进行攻击,使hypervisor得到的视图有别于虚拟机的视图。如最简单的,互换eprocess结构成员的进程id和进程名字,这样hypervisor就难以在eprocess结构正确的偏移上获得正确的内容。当然,为保证虚拟机的正常运行,在特定的时机还需纠正这个错误(再换回来),这样就需要截获特定的执行流程。所以可以采用防护MEP和KOH的方法来防御此种攻击。一种更高级的攻击方式,可利用OS的代码构建攻击代码(类似ROP)。针对这种攻击方式,OSck[8]提出一种防护方法,检测栈中的返回地址是否为预期的地址。

Other Hardware Related

  • PCI device

利用硬件虚拟化进行内存保护,最小的粒度为一个页面,最小的页面为4096字节。最糟糕的情况是:在一个页面中,我们只监控一个地址(4字节),而访问其它地址时,也一样会陷入hypervisor,所以不必要的开销占据了1023/1024(hooksafe[7]成功减少了这种不必要的开销)。所以有人提出利用PCI硬件设备来达到字节级的监控粒度。

  • Privilege Core

LLM[9]提出利用一个特权的CPU内核以及一小块只有这个内核可以访问的内存来检测OS代码的完整性。

  • SMM

有人定义系统管理模式为“ring -2”的权限,它具备比hypervisor(“ring -1”)更高的权限,所以有人提出利用SMM进行OS或hypervisor的代码完整性检验。

  • ……

Note

以上总结依赖于牛人文章和代码,难免有理解错误的地方,敬请指正。另外由于忘记出处,部分内容没有附加参考文献,敬请海涵。

 

References

[1] Sharif Monirul, Lee Wenke, Cui Weidong. Secure In-VM Monitoring Using Hardware Virtualization [C]. In Proceedings of the ACM conference on Computer and Communications Security, 2009.

[2] A. Dinaburg, P. Royal, M. Sharif, and W. Lee. Ether: Malware analysis via hardware virtualization extensions [C]. In Proceedings of The 15th ACM Conference on Computer and Communications Security (CCS 2008), 51 – 62, 2008.

[3] Google Project Hosting. vmitools. http://code.google.com/p/vmitools/.

[4] H. Yin, Z. Liang, and D. Song. HookFinder: Identifying and Understanding Malware Hooking Behaviors. InNDSS ’08: Proceedings of the 16th Annual Network and Distributed System Security Symposium, 2008.

[5]  B. Payne, M. Carbone, M. Sharif, and W. Lee. Lares: An architecture for secure active monitoring using virtualization. In Proceedings of the IEEE Symposium on Security and Privacy, 2008.

[6] Tupakula U K, Varadharajan V. Dynamic state-based security architecture for detecting security attacks in virtual machines. Computer Journal, 55(4): 397-409, 2012.

[7] Zhi Wang, Xuxian Jiang, Weidong Cui, et al. Countering Kernel Rootkits with Lightweight Hook Protection. In Proceedings of the ACM conference on Computer and Communications Security, 2009.

[8] Owen S. Hofmann, Alan M. Dunn, Sangman Kim, Indrajit Roy, Emmett Witchel. Ensuring Operating System Kernel Integrity with OSck. ACM SIGPLAN NOTICES, 47(4): 279 – 290, 2011.

[9] Yuki Kinebuchi, Shakeel Butt, Vinod Ganapathy, et al. Monitoring Integrity Using Limited Local Memory. IEEE Transacations on Information Forensics and Security, 8(7): 1230-1242, 2013.

 

 

闫广禄

2014.11.14

原创文章,作者:admin,如若转载,请注明出处:https://www.isclab.org.cn/2014/11/14/%e8%99%9a%e6%8b%9f%e5%8c%96%e5%ae%89%e5%85%a8%e7%9b%91%e6%8e%a7%e6%8a%80%e6%9c%af%e5%b0%8f%e7%bb%93/

赞 (0)
adminadmin
上一篇 2014年11月12日 下午2:48
下一篇 2014年11月17日

相关推荐

  • 准确高效地检测安卓APP中的第三方库

    本次报告主要讲述了如何准确高效地检测安卓APP内的第三方库。介绍了第三方库检测的基本概念和主要困难,解释了准确高效检测第三方库的意义,详细讲解布隆过滤器的原理与使用方法、基于熵的代…

    2023年7月27日
    3.4K
  • 文本相似度度量方法

    文本相似度度量是自然语言处理中的一个基础问题,是许多下游任务的基础,如文本分类、信息检索、对话系统、句义标注等。相似度匹配的过程包括了构造特征与度量特征两个基本步骤,其中构造特征是…

    2022年3月13日
    4.5K
  • 智能体安全-工具调用攻击与防御

    报告围绕智能体工具调用安全展开,介绍智能体工作原理及其与传统AI模型、大模型安全的联系与区别,分析工具调用带来的新型攻击面。重点结合AutoCMD与ToolSafe,讲解动态工具调…

    2026年9月14日
    1.4K
  • 图半监督学习

          图半监督学习是半监督学习中的一种,基于聚类假设和流形假设,利用少量的有标记样本和大量的未标记样本,提高训练得…

    2018年9月3日
    3.4K
  • 文本分类硬标签黑盒模型的对抗样本生成方法研究

    研究文本分类硬标签黑盒模型的对抗样本生成方法,分析模型的潜在安全风险,为加强模型鲁棒性提供方向。本次学习报告讲解了文本分类模型对抗样本生成方法的总体状况,并介绍了关于文本分类硬标签…

    2024年11月27日
    3.5K
  • 格式化字符串漏洞

          介绍了格式化字符串漏洞的常见形式,以及在Windows32和Linux64下的两种利用思路,可以扩展到其他漏…

    2018年7月15日
    3.8K
  • 面向网络应用程序的模糊测试

    本报告介绍了模糊测试中的基本概念及网络应用程序漏洞挖掘发展历史和类型划分等背景知识,对2种基于覆盖引导的灰盒web模糊测试算法进行了具体说明,阐述了网络应用程序漏洞挖掘的发展趋势和…

    2024年5月31日
    3.1K
  • 基于行为语义分析的android恶意软件分析方法

    Android恶意软件对社会造成较大危害。为此,本文介绍了一种基于关联行为分析的Android恶意软件检测系统,该方法具有较强的行为表征能力,能有效的应对各种进化变异的恶意软件。

    2019年8月13日
    4.0K
  • App个人隐私安全检测技术

    本报告主要介绍了隐私数据类型,以及基本的隐私风险检测方法。第一篇论文侧重于分析APP整体的隐私数据泄露,并根据隐私泄露的风险程度给相应的App进行风险评级;第二篇侧重于研究APP中…

    2022年4月11日
    4.4K
  • 对抗样本攻防的两种奇思妙想

    围绕图像对抗样本攻防这一核心主题,介绍以 Block Shuffle & Rotation(BSR) 为代表的迁移攻击增强策略,以及以 Delta Data Augment…

    2025年11月17日
    3.6K