虚拟化安全监控技术小结

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日

相关推荐

  • 文本相似度度量方法

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

    2022年3月13日
    4.3K
  • 神经网络模型的覆盖测试

    人工智能系统在近年来取得丰硕的成果,其中神经网络在自动驾驶领域等图像处理方向应用较为广泛。但是神经网络存在安全隐患,容易受到攻击导致决策错误,比如对抗样本攻击和后门攻击。如何测试神…

    2022年1月4日
    3.5K
  • 融合多模态交互及语义一致性建模的社交机器人检测

    社交机器人模仿人类在Twitter等社交平台上的行为。数以百万计的机器人通常基于平台API,通过自动化程序控制,通过模仿真实用户以实现恶意目标,检测社交机器人对于净化网络空间环境具…

    2023年7月14日
    3.7K
  • APT攻击行为表示

    本报告介绍了APT攻击行为的基本概念,展示了APT攻击行为表示的方法原理,并分别讲述了面向恶意流量数据场景下的攻击行为检测技术和面向开源威胁情报场景下的攻击行为提取方法,最后简要梳…

    2024年5月19日
    3.4K
  • 多视角深度学习

    多视角即从各种不同的角度观察同一事物 ,在深度学习中即引入一个函数去模型化特定的视角,并且利用相同输入的冗余视角去联合优化所有函数,达到更好的模型效果。多视角学习可应用于大多数数据…

    2021年7月18日
    3.6K
  • 基于协同过滤的推荐算法

          推荐系统在现在的生活中随处可见,淘宝天猫的商品推荐,音乐软件的每日歌曲推荐等,协同过滤就是一种很受欢迎的推荐…

    2018年8月27日
    3.4K
  • 数据挖掘中的数据清洗方法

          数据清洗是数据挖掘工作中很重要的一部分工作,目的是解决数据的质量问题,将“脏”数据变成标准的、干净的数据,更…

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

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

    2024年11月27日
    3.3K
  • 多标签学习

    每天都有大量的数据生成,这导致人们越来越需要新的努力来应对大数据给多标签学习带来的巨大挑战。例如,极端多标签分类是一个活跃且快速发展的研究领域,它处理的分类任务具有极其大量的类别或…

    2021年8月22日
    3.7K
  • 操作系统与内核安全基础

    本次报告从计算机的总体结构切入,介绍的了计算机系统的分层体系结构;对操作系统及其内核的做了详细说明,包括操作系统与操作系统内核的关系,以及操作系统内核的主要功能等内容;报告还分析了…

    2019年11月14日
    4.1K