CN102122331B - 一种构造“In-VM”恶意代码检测架构的方法 - Google Patents

一种构造“In-VM”恶意代码检测架构的方法 Download PDF

Info

Publication number
CN102122331B
CN102122331B CN201110025550.5A CN201110025550A CN102122331B CN 102122331 B CN102122331 B CN 102122331B CN 201110025550 A CN201110025550 A CN 201110025550A CN 102122331 B CN102122331 B CN 102122331B
Authority
CN
China
Prior art keywords
layer
testing result
user
address
virtual machine
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201110025550.5A
Other languages
English (en)
Other versions
CN102122331A (zh
Inventor
刘波
陈林
王天佐
胡华平
黄遵国
陈新
宁剑
刘明
张静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201110025550.5A priority Critical patent/CN102122331B/zh
Publication of CN102122331A publication Critical patent/CN102122331A/zh
Application granted granted Critical
Publication of CN102122331B publication Critical patent/CN102122331B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

一种构造“In-VM”恶意代码检测架构的方法,包括:安装并启动Type I虚拟机BitVisor,客户系统Windows,编译BitVisor,在多操作系统启动程序Grub启动项中添加Bitvisor的启动项;传递用户层代码段首地址及大小、存放检测结果的内存区域首地址及大小到内核层,接收用户定制功能的命令,提交检测结果给用户;接收用户层传递下来的数据和命令,设置HOOK处理模块,将内核层代码段的首地址及大小、HOOK处理模块的首地址及大小传递到虚拟机监视层,将检测结果返回到内核层;接收内核层传递下来的数据和命令,将检测结果传递到内核层,解析客户端操作系统内存,得到系统服务描述符表SSDT导出函数名称与其地址。

Description

一种构造“In-VM”恶意代码检测架构的方法
技术领域
本发明涉及基于虚拟机的恶意代码检测方法,尤指基于“In-VM”架构利用主动防御的思想来检测恶意代码的方法。
背景技术
针对越来越严重的网络安全问题,安全工具的发展也非常迅速,杀毒软件技术由早期的基于特征码的检测发展到基于异常行为、以及现阶段的云安全技术,防护能力得到了极大的提高。主机型安全工具(如杀毒软件、防火墙等)可以获得详细的系统活动信息,有利于判断系统中是否存在异常行为、恶意代码,但是安全工具本身也存在于不安全的系统之中,所以容易受到恶意代码攻击或者欺骗;而网络型安全工具(如网络防火墙)可以免受恶意代码的攻击,但是它难以获得主机的活动信息,不利于检测主机内的恶意代码。
基于虚拟机的恶意代码检测技术正是为了解决主机型安全工具的缺陷发展起来的,它既可以获得完整主机活动视图,又可以隔离恶意代码的攻击,近年来成为网络安全学者研究的重点,如入侵检测、攻击行为分析、恶意代码检测、蜜罐和可信计算等。在恶意代码检测的应用中,根据不同的检测方法可以分为以下几种:
(1)基于语义重构检测异常的恶意代码。这种方法的难点在于如何利用硬件信息重构出系统视图以及如何保证重构的系统视图是真实可信的。例如在重构内存信息的过程,大多数是基于特定版本的操作系统的调试符号信息通过直接读取客户操作系统内存重构出相应的操作系统关键数据结构,如果攻击者了解重构过程应用的方法,就可以通过修改内存数据来欺骗防护方。该方法的另一个缺陷是仅支持检测,而不能阻止恶意代码的运行。所以为了更好的查杀恶意代码,需要发展基于虚拟机的更高级的检测方法。
(2)基于内核完整性的检测方法。该方法的先决条件是要建立一个安全的内核状态集,然后在系统运行过程中动态的对比内核状态和这个安全的状态集,如果不相符,则有恶意代码入侵。这个方法的局限性在于如何建立安全的状态集以及其更新,因为当系统安装新的软件时就必须更新这个状态集合,使得用户体验性不好。
(3)基于HOOK系统函数的检测方法。前面介绍的各种检测方法主要是基于被动监视的思路,通过外部扫描或查询来检测恶意代码的行为,不能在行为发生之前有效的阻断入侵。该方法在客户操作系统中添加HOOK,然后利用VMM(Virtual MachineMonitor)中的内存保护模块来保证添加的恶意代码不被恶意代码攻击,在保证隔离性的同时增加了安全性,使得基于虚拟机的检测方法支持了主动防御的思想,极大的提高了检测能力。该方法的难点在于在客户操作系统中加入HOOK后如何保证虚拟机的隔离性以及如何把现有的主动防御的方法移植到虚拟机的应用中。
第三种方法代表着现阶段恶意代码检测技术发展的方向,在基于虚拟机的安全应用中,是目前研究前景较大的检测恶意代码的方法。但是现阶段该方法仍存在以下问题:一是可扩展性比较差,不利于添加其他功能;二是没有提供用户接口,不能把检测结果提交给用户,用户也不方便定制功能。
发明内容
本发明要解决的技术问题在于:针对基于HOOK的“In-VM”检测方法不支持用户定制功能以及提交检测结果的情况,提出一种层次性的“In-VM”框架检测方法,在这个层次性的架构中,使其向上能够提供主机系统的真实信息、返回检测结果,向下允许用户定制功能、传递命令。
根据本发明的一个方面,提供一种构造“In-VM”恶意代码检测架构的方法,包括下列步骤:
环境初始化步骤:安装并启动Type I虚拟机BitVisor,客户系统Windows,编译BitVisor,在多操作系统启动程序Grub启动项中添加Bitvisor的启动项;
用户态检测步骤:传递用户层代码段首地址及大小、存放检测结果的内存区域首地址及大小到内核层,接收用户定制功能的命令,提交检测结果给用户;
系统内核态检测步骤:接收用户层传递下来的数据和命令,设置HOOK处理模块,将内核层代码段的首地址及大小、HOOK处理模块的首地址及大小传递到虚拟机监视层,将检测结果返回到内核层,通过设置用户层的内存页面不可写,来保证用户层的完整性,以不被恶意代码攻击;
虚拟机监视器检测步骤:接收内核层传递下来的数据和命令,将检测结果传递到内核层,解析客户端操作系统内存,得到系统服务描述符表SSDT导出函数名称与其地址,通过设置层页面不可写,保证内核层的完整性,以不被恶意代码攻击;
接收检测结果步骤:初始化过程完成,等待用户定制命令以及接收检测结果。
更具体的,其中的用户态检测步骤进一步包括:
判断当前步骤初始化过程是否完成,没有完成则等待,如果完成则监听系统消息,是否有用户输入或者检测结果返回,如果有用户命令输入,则接收用户命令传递到内核层,如果有检测结果返回,则接收检测结果,在交互界面上显示;完成用户命令或检测结果的接收之后,继续监听系统消息并进行后续处理。
更具体的,其中的系统内核检测步骤进一步包括:判断当前步骤初始化过程是否完成,没有完成则等待,如果完成则等待接收消息,如果有用户命令传入,则接收用户命令传递到虚拟机监视器层,如果有检测结果返回,则接收检测结果,并把检测结果传递给内核层;完成用户命令或检测结果的传递之后,继续等待接收消息并进行后续处理。
更具体的,其中的虚拟机监视器检测步骤进一步包括:
接收内核层传递的内核层代码段首地址以及大小、HOOK处理模块的首地址及大小,设置内核层代码段、HOOK处理模块代码段内存页面不可写,根据PE文件格式解析客户系统内核Ntoskrnl.exe,把系统服务描述符表SSDT导出函数名称与其地址联系起来,启动用户命令处理模块,等待用户定制需HOOK的函数,设置系统初始化完成标志,并返回。
附图说明
图1示出了传统的恶意代码检测逻辑框图;
图2示出了基于本发明的层次性的“In-VM”框架检测逻辑框图;
图3示出了构造“In-VM”恶意代码检测架构的方法的流程图;
图4示出了本发明检测系统中多操作系统启动程序Grub的添加项;
具体实施方式
为了解决上述技术问题,本发明的技术方案为:改变传统基于虚拟机的检测架构,建立一个“In-VM”分层架构,在虚拟机监视器层(Virtual Monitor Machine,VMM)、客户系统内核层以及客户系统用户层都加入检测模块,自下而上的层次结构中,下层工作在更高的优先级具有更高的权限,为了保证虚拟机的隔离性以及新加模块的安全性,下层利用内存管理机制保护上层不被攻击、更改。如图1-2所示:
图1是传统的恶意代码检测架构,图2是本发明的“In-VM”层次性架构。本发明的技术方案中将恶意代码检测系统分为四层:计算机硬件层、虚拟机监视器层、客户系统内核层、客户系统用户层。V1-V4构成了本发明层次性的恶意代码检测框架。
参照图3,示出了本发明基于层次性框架进行检测的总体流程图。
步骤1)、安装Type I型虚拟机;
步骤2)、启动Type I型虚拟机Bitvisor和客户系统Windows;
步骤3)、启动用户态模块V4;
步骤4)、启动初始化程序以及人机交互界面;
步骤5)、传递V4代码段首地址及大小、存放检测结果的内存区域首地址及大小到V3模块;
步骤6)、启动内核模块V3;
步骤7)、接收V4模块传递的V4代码段首地址及大小、存放检测结果的内存区域首地址及大小;
步骤8)、根据上面的数据,设置V4模块代码段、存放检测结果的内存区域内存页面不可写;
步骤9)、启动HOOK处理模块;
步骤10)、传递模块V3代码段的首地址及大小、HOOK处理模块的首地址及大小到下层模块V2;
步骤11)、启动VMM层模块V2;
步骤12)、接收V3模块传递的内核模块的代码段首地址以及大小、HOOK处理模块的首地址及大小;
步骤13)、设置V3模块代码段、HOOK处理模块代码段内存页面不可写;;
步骤14)、解析客户系统内核Ntoskrnl.exe,把SSDT导出函数名称与其地址联系起来;
步骤15)、启动用户命令处理模块,允许用户定制需HOOK的函数;
步骤16)、设置系统初始化完成标志,并返回;
步骤17)、V3层检测到初始化完成标志,启动消息处理模块,并返回;
步骤18)、V4层检测到初始化完成标志,启动消息处理模块,监听是否有用户命令输入和检测结果返回,并返回;
步骤19)、初始化过程结束,等待用户定制功能或者显示检测结果。
下面详细介绍各个步骤执行过程中的具体情况。
安装Type I型虚拟机。选择Type I虚拟机BitVisor,客户系统Windows。编译BitVisor,然后在多操作系统启动程序Grub启动项中添加Bitvisor的启动项,如图4所示。
开机启动系统,首先选择BitVisor项启动,BitVisor启动之后选择Windows作为客户系统启动,自此Type I型虚拟机BitVisor启动,作为VMM,上层运行Windows作为客户系统。
启动用户态检测模块V4,也就是最上层的恶意代码检测程序。该程序完成的工作包括:1)传递V4代码段首地址及大小、存放检测结果的内存区域首地址及大小到下层检测模块;2)接收用户定制功能的命令;3)提交检测结果给用户。具体步骤如下:
2.1启动人机交互界面程序;
2.2把V4代码段首地址及大小、存放检测结果的内存区域首地址及大小传递给V3模块;
2.3判断初始化过程是否完成,没有完成则等待,如果完成则执行2.4;
2.4监听系统消息,是否有用户输入或者检测结果返回。如果有用户命令输入,执行2.5,如果有检测结果返回,执行2.6;
2.5接收用户命令传递到V3模块,完成后执行2.4;
2.6接收检测结果,在交互界面上显示,完成后执行2.4;
启动系统内核态检测模块V3。该模块完成以下功能:1)接收上层模块V4传递下来的数据和命令;2)把该内核模块代码段的首地址以及大小、HOOK处理模块的首地址及大小传递到下层检测模块V2;3)把检测结果返回到上层模块V4;4)通过设置V4的内存页面不可写,来保证V4的完整性,使它不被恶意代码攻击。具体步骤如下:
3.1接收V4模块传递的V4代码段首地址及大小、存放检测结果的内存区域首地址及大小;
3.2根据前面接收的数据,设置V4模块代码段、存放检测结果的内存区域内存页面不可写;
3.3设置HOOK处理模块;
3.3把该内核模块的代码段首地址以及大小、HOOK处理模块的首地址及大小传递给V2模块;
3.4判断初始化过程是否完成,没有则等待,如果完成则执行3.5;
3.5等待接收消息,如果有用户命令传入,则执行3.6,如果有检测结果返回,则执行3.7;
3.6接收用户命令传递到V2模块,完成后执行3.5;
3.7把检测结果传递给V3模块,完成后执行3.5;
启动模块V2。该模块完成以下功能:1)接收上层模块传递下来的数据和命令;2)把检测结果传递到上层模块V3;3)解析客户操作系统内存,得到系统服务描述符表SSDT导出函数名称与其地址;4)通过设置V3模块页面不可写,保证模块V3的完整性,使之不被恶意代码攻击。具体步骤如下;
4.1接收V3模块传递的内核模块的代码段首地址以及大小、HOOK处理模块的首地址及大小;
4.2设置V3模块代码段、HOOK处理模块代码段内存页面不可写;
4.3根据PE文件格式解析客户系统内核Ntoskrnl.exe,把系统服务描述符表SSDT导出函数名称与其地址联系起来。
4.4启动用户命令处理模块,等待用户定制需HOOK的函数;
4.5设置系统初始化完成标志,并返回;
初始化过程完成,等待用户定制命令以及接收检测结果。
与现有技术相比,采用本发明可达到以下技术效果:
1.分层的结构保证能够获取客户系统完整的信息,同时利用下层保护上层的安全机制使得在硬件安全的情况下,整个框架的安全性都能够得到保障;
2.用户能够方便的定制安全功能,控制程序对系统关键数据的改变,同时能够把检测结果提交给用户,使得移植现有的恶意代码检测技术到虚拟机中成为可能。
3.“In-VM”的检测框架使得检测过程不必每次都下陷到VMM中处理,在客户虚拟机中处理检测过程,节约了时间开销。

Claims (4)

1.一种构造“In-VM”恶意代码检测架构的方法,包括下列步骤:
环境初始化步骤:安装并启动Type I虚拟机BitVisor,客户系统Windows,编译BitVisor,在多操作系统启动程序Grub启动项中添加Bitvisor的启动项;
用户态检测步骤:传递用户层代码段首地址及大小、存放检测结果的内存区域首地址及大小到内核层,接收用户定制功能的命令,提交检测结果给用户;
系统内核态检测步骤:接收用户层传递下来的数据和命令,设置HOOK处理模块,将内核层代码段的首地址及大小、HOOK处理模块的首地址及大小传递到虚拟机监视层,将检测结果返回到内核层,通过设置用户层的内存页面不可写,来保证用户层的完整性,以不被恶意代码攻击;
虚拟机监视器检测步骤:接收内核层传递下来的数据和命令,将检测结果传递到内核层,解析客户端操作系统内存,得到系统服务描述符表SSDT导出函数名称与其地址,通过设置层页面不可写,保证内核层的完整性,以不被恶意代码攻击;
接收检测结果步骤:初始化过程完成,等待用户定制命令以及接收检测结果。
2.根据权利要求1的方法,其特征在于,其中的用户态检测步骤进一步包括:
判断当前步骤初始化过程是否完成,没有完成则等待,如果完成则监听系统消息,是否有用户输入或者检测结果返回,如果有用户命令输入,则接收用户命令传递到内核层,如果有检测结果返回,则接收检测结果,在交互界面上显示;完成用户命令或检测结果的接收之后,继续监听系统消息并进行后续处理。
3.根据权利要求1的方法,其中的系统内核检测步骤进一步包括:判断当前步骤初始化过程是否完成,没有完成则等待,如果完成则等待接收消息,如果有用户命令传入,则接收用户命令传递到虚拟机监视器层,如果有检测结果返回,则接收检测结果,并把检测结果传递给内核层;完成用户命令或检测结果的传递之后,继续等待接收消息并进行后续处理。
4.根据权利要求1的方法,其中的虚拟机监视器检测步骤进一步包括:接收内核层传递的内核层代码段首地址以及大小、HOOK处理模块的首地址及大小,设置内核层代码段、HOOK处理模块代码段内存页面不可写,根据PE文件格式解析客户系统内核Ntoskrnl.exe,把系统服务描述符表SSDT导出函数名称与其地址联系起来,启动用户命令处理模块,等待用户定制需HOOK的函数,设置系统初始化完成标志,并返回。
CN201110025550.5A 2011-01-24 2011-01-24 一种构造“In-VM”恶意代码检测架构的方法 Expired - Fee Related CN102122331B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201110025550.5A CN102122331B (zh) 2011-01-24 2011-01-24 一种构造“In-VM”恶意代码检测架构的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201110025550.5A CN102122331B (zh) 2011-01-24 2011-01-24 一种构造“In-VM”恶意代码检测架构的方法

Publications (2)

Publication Number Publication Date
CN102122331A CN102122331A (zh) 2011-07-13
CN102122331B true CN102122331B (zh) 2014-04-30

Family

ID=44250887

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110025550.5A Expired - Fee Related CN102122331B (zh) 2011-01-24 2011-01-24 一种构造“In-VM”恶意代码检测架构的方法

Country Status (1)

Country Link
CN (1) CN102122331B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103778012B (zh) * 2014-01-23 2017-01-04 北京奇虎科技有限公司 更改终端运营商信息的方法及装置
CN104899512A (zh) * 2015-05-26 2015-09-09 浪潮电子信息产业股份有限公司 一种Windows系统服务描述符表防篡改装置及方法
CN107239321B (zh) * 2017-05-18 2020-08-21 中国科学院软件研究所 一种基于薄虚拟机监控器的usb存储设备安全访问控制方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522298A (ja) * 2004-12-02 2008-06-26 聯想(北京)有限公司 コンピュータに信頼可能な実行環境を構築する方法
CN101350822A (zh) * 2008-09-08 2009-01-21 南开大学 一种Internet恶意代码的发现和追踪方法
CN101692267A (zh) * 2009-09-15 2010-04-07 北京大学 一种大规模恶意网页检测方法及系统
CN101841523A (zh) * 2010-02-05 2010-09-22 中国科学院计算技术研究所 检测恶意代码样本的网络行为的方法及系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008522298A (ja) * 2004-12-02 2008-06-26 聯想(北京)有限公司 コンピュータに信頼可能な実行環境を構築する方法
CN101350822A (zh) * 2008-09-08 2009-01-21 南开大学 一种Internet恶意代码的发现和追踪方法
CN101692267A (zh) * 2009-09-15 2010-04-07 北京大学 一种大规模恶意网页检测方法及系统
CN101841523A (zh) * 2010-02-05 2010-09-22 中国科学院计算技术研究所 检测恶意代码样本的网络行为的方法及系统

Also Published As

Publication number Publication date
CN102122331A (zh) 2011-07-13

Similar Documents

Publication Publication Date Title
CN102122330B (zh) 基于虚拟机的“In-VM”恶意代码检测系统
CN102088379B (zh) 基于沙箱技术的客户端蜜罐网页恶意代码检测方法与装置
CN105393255B (zh) 用于虚拟机中的恶意软件检测的过程评估
CN101770406B (zh) 用于运行时间完整性校验的设备和方法
CN106055385B (zh) 监控虚拟机进程的系统和方法、过滤page fault异常的方法
CN103890716B (zh) 用于访问基本输入/输出系统的功能的基于网页的接口
CN104205109B (zh) 持续性和弹性的工作者进程
US10942757B2 (en) Virtual machine security through guest-side emulation
CN103907098A (zh) 用于管理程序环境中的关键地址空间保护的系统和方法
CN101873318B (zh) 针对应用基础支撑平台上应用系统的应用与数据保全方法
EP3036633A1 (en) Cloud deployment infrastructure validation engine
CN102147763B (zh) 一种网络日志的记录方法、系统及计算机
CN101770551A (zh) 一种基于硬件模拟器的处理隐藏进程的方法
CN101866408A (zh) 一种基于虚拟机架构的透明信任链构建系统
CN103870749A (zh) 一种实现虚拟机系统的安全监控系统及方法
CN102999716A (zh) 虚拟机器监控系统及方法
CN102929716A (zh) 一种启动多进程的方法
CN104115125A (zh) 安全的错误处理
CN108365994B (zh) 一种针对云计算安全统一管理的云安全管理平台
CN102592086A (zh) 在沙箱中浏览网页方法及装置
CN102122331B (zh) 一种构造“In-VM”恶意代码检测架构的方法
CN103914647A (zh) 基于本地虚拟化机制的程序隔离运行方法
CN105224403B (zh) 一种中断处理方法及装置
CN103294956A (zh) 在Windows平台上进行行为处理的方法及装置
CN114499945A (zh) 一种虚拟机的入侵检测方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20140430

Termination date: 20160124

EXPY Termination of patent right or utility model