Page 335 - 《软件学报》2021年第10期
P. 335

陈兴蜀  等:VMOffset:虚拟机自省中一种语义重构改进方法                                                3307


                 TVM 内核版本不敏感,但其重构进程链表需 1 分钟左右,且仅能重构进程号及进程名称.对比之下,VMOffset 具
                 有内核版本无关性,无需额外引入 SVM 或访问 TVM,其可重构的进程级语义较为丰富,且重构效率高、性能损
                 耗小;此外,VMOffset 所得进程偏移量可作为一个信息段随 TVM 的迁移而迁移,具有较强的通用性与可移植性.

                                      Table 5    Comparison of VMOffset and other VMI methods
                                            表 5   VMOffset 与其他 VMI 方法的对比

                                 方法      内核源码    安全虚拟机     访问目标虚拟机      内核版本敏感      性能&效率
                              VMwatcher [20]    需要   不需要      不需要           敏感        一般
                               Virtuoso [14]    不需要   需要      不需要           敏感        较差
                               VMST [15]    不需要     需要        不需要           敏感        较差
                                     [9]
                               Volatility    不需要   不需要         需要           敏感        较好
                               Libvmi [10]    不需要   不需要        需要           敏感        较好
                                     [3]
                               vDetector    不需要    不需要         需要           敏感        较好
                              HyperLink [27]    不需要   不需要     不需要          不敏感        一般
                               ModSG [28]    不需要   不需要        不需要           敏感        一般
                               VMOffset   不需要      不需要        不需要          不敏感        较好
                 4    结   语

                    本文针对现有虚拟机自省方法中存在的实现过程与 TVM 内核版本相关、移植性差、系统执行效率不高
                 的问题,提出了一种虚拟机自省中的语义重构改进方法 VMOffset.VMOffset 基于 KVM-QEMU 虚拟化平台实
                 现,可在未知 TVM 内核版本的前提下,自动获取 TVM 中进程偏移量并提供给自研或开源 VMI 工具完成语义重
                 构,具有较好的可移植性与安全性.VMOffset 无需修改 TVM,在 TVM 启动阶段完成进程偏移量的获取,执行效
                 率较高,且引入的性能损耗在 0.05%以内.同时,VMOffset 也存在一些局限性,如要求硬件虚拟化技术为 Intel
                 VT-x,且目前仅支持 Linux 操作系统的 TVM.在下一步的工作中,将探索 VMOffset 对 Linux 以外操作系统的支
                 持,并丰富 VMOffset 在重构文件、网络连接等信息上的功能,实现更强的通用性及更细粒度的虚拟机自省.

                 References:
                 [1]    Garfinkel T, Rosenblum M. A virtual machine introspection based architecture for intrusion detection. In: Neuman C, ed. Proc. of
                     the Network and Distributed Systems Security Symp. Washington: Internet Society, 2003. 191206.
                 [2]    Li BH, Xu KF, Zhang P, Guo L, Hu Y, Fang BX. Research and application progress of virtual machine introspection technology.
                     Ruan Jian  Xue  Bao/Journal of Software, 2016,27(6):13841401  (in  Chinese with English abstract).  http://www.jos.org.cn/1000-
                     9825/5006.htm [doi: 10.13328/j.cnki.jos.005006]
                 [3]    Li B, Wo TY, Hu CM, Li JX, Wang Y, Huai JP. Hidden OS objects correlated detection technology based on VMM. Ruan Jian Xue
                     Bao/Journal of Software, 2013,24(2):405420  (in Chinese with English abstract).  http://www.jos.org.cn/1000-9825/24/405.htm
                     [doi: cnki:sun:rjxb.0.2013-02-017]
                 [4]    Pfoh J, Schneider C, Eckert C. A formal model for virtual machine introspection. In: Nieh J, Stavrou A, eds. Proc. of the 1st ACM
                     Workshop on Virtual Machine Security. New York: ACM, 2009. 110. [doi: 10.1145/1655148.1655150]
                 [5]    Dinaburg A, Royal P, Sharif M, Lee W. Ether: Malware analysis via hardware virtualization extensions. In: Ning P, ed. Proc. of the
                     15th ACM Conf. on Computer and Communications Security. New York: ACM, 2008. 5162. [doi: 10.1145/1455770.1455779]
                 [6]    Xiong X, Tian D, Liu P. Practical protection of kernel integrity for commodity OS from untrusted extensions. In: Proc. of the 18th
                     Annual Network and Distributed System Security Symp. Washington: Internet Society, 2011. 117.
                 [7]    Jain B, Baig MB, Zhang DL, Porter DE, Sion R. SOK: Introspections on trust and the semantic GAP. In: Proc. of the 2014 IEEE
                     Symp. on Security and Privacy (SP). Washington: IEEE Computer Society, 2014. 605620. [doi: 10.1109/SP.2014,45]
                 [8]    Vogl S, Kilic F, Schneider C, Eckert C. X-TIER: Kernel module injection. In: Lopez J, Huang XY, Sandhu R, eds. Proc. of the
                     Network and System Security. LNCS 7873, 2013. 192205. [doi: 10.1007/978-3-642-38631-2_15]
                 [9]    Volatility. Volatile memory analysis framework. https://github.com/volatilityfoundation/volatility
   330   331   332   333   334   335   336   337   338   339   340