CN102122330B - 基于虚拟机的“In-VM”恶意代码检测系统 - Google Patents
基于虚拟机的“In-VM”恶意代码检测系统 Download PDFInfo
- Publication number
- CN102122330B CN102122330B CN201110025547.3A CN201110025547A CN102122330B CN 102122330 B CN102122330 B CN 102122330B CN 201110025547 A CN201110025547 A CN 201110025547A CN 102122330 B CN102122330 B CN 102122330B
- Authority
- CN
- China
- Prior art keywords
- layer
- user
- virtual machine
- testing result
- client
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
一种基于虚拟机的“In-VM”恶意代码检测系统,包括环境初始化单元:安装并启动TypeI虚拟机BitVisor,客户系统Windows,编译BitVisor,在多操作系统启动程序Grub启动项中添加Bitvisor的启动项;用户态检测单元:传递用户层代码段首地址及大小、存放检测结果的内存区域首地址及大小到内核层,接收用户定制功能的命令,提交检测结果给用户;系统内核态检测单元:接收用户层传递的数据和命令,设置HOOK处理模块,将内核层代码段的首地址及大小、HOOK处理模块的首地址及大小传递到虚拟机监视层,将检测结果返回到内核层;虚拟机监视器检测单元:接收内核层传递的数据和命令,将检测结果传递到内核层,解析客户端操作系统内存,得到系统服务描述符表SSDT导出函数名称与其地址;接收检测结果单元:初始化过程完成,等待用户定制命令以及接收检测结果。检测系统向上能够提供主机系统的真实信息、返回检测结果,向下允许用户定制功能、传递命令。
Description
技术领域
本发明涉及基于虚拟机的恶意代码检测系统,尤指基于“In-VM”架构利用主动防御的思想来检测恶意代码的系统。
背景技术
针对越来越严重的网络安全问题,安全工具的发展也非常迅速,杀毒软件技术由早期的基于特征码的检测发展到基于异常行为、以及现阶段的云安全技术,防护能力得到了极大的提高。主机型安全工具(如杀毒软件、防火墙等)可以获得详细的系统活动信息,有利于判断系统中是否存在异常行为、恶意代码,但是安全工具本身也存在于不安全的系统之中,所以容易受到恶意代码攻击或者欺骗;而网络型安全工具(如网络防火墙)可以免受恶意代码的攻击,但是它难以获得主机的活动信息,不利于检测主机内的恶意代码。
基于虚拟机的恶意代码检测技术正是为了解决主机型安全工具的缺陷发展起来的,它既可以获得完整主机活动视图,又可以隔离恶意代码的攻击,近年来成为网络安全学者研究的重点,如入侵检测、攻击行为分析、恶意代码检测、蜜罐和可信计算等。在恶意代码检测的应用中,根据不同的检测方法可以分为以下几种:
(1)基于语义重构检测异常的恶意代码。这种方法的难点在于如何利用硬件信息重构出系统视图以及如何保证重构的系统视图是真实可信的。例如在重构内存信息的过程,大多数是基于特定版本的操作系统的调试符号信息通过直接读取客户操作系统内存重构出相应的操作系统关键数据结构,如果攻击者了解重构过程应用的方法,就可以通过修改内存数据来欺骗防护方。该方法的另一个缺陷是仅支持检测,而不能阻止恶意代码的运行。所以为了更好的查杀恶意代码,需要发展基于虚拟机的更高级的检测方法。
(2)基于内核完整性的检测方法。该方法的先决条件是要建立一个安全的内核状态集,然后在系统运行过程中动态的对比内核状态和这个安全的状态集,如果不相符,则有恶意代码入侵。这个方法的局限性在于如何建立安全的状态集以及其更新,因为当系统安装新的软件时就必须更新这个状态集合,使得用户体验性不好。
(3)基于HOOK系统函数的检测方法。前面介绍的各种检测方法主要是基于被动监视的思路,通过外部扫描或查询来检测恶意代码的行为,不能在行为发生之前有效的阻断入侵。
该方法在客户操作系统中添加HOOK,然后利用VMM(Virtual Machine Monitor)中的内存保护模块来保证添加的恶意代码不被恶意代码攻击,在保证隔离性的同时增加了安全性,使得基于虚拟机的检测方法支持了主动防御的思想,极大的提高了检测能力。该方法的难点在于在客户操作系统中加入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 (3)
1.一种基于虚拟机的“In-VM”恶意代码检测系统,所述恶意代码检测系统分为四层:计算机硬件层、虚拟机监视器层、客户系统内核层、客户系统用户层,所述恶意代码检测系统包括下列单元:
环境初始化单元:安装并启动Type Ⅰ虚拟机BitVisor,客户系统Windows,编译BitVisor,在多操作系统启动程序Grub启动项中添加Bitvisor的启动项;
用户态检测单元:传递用户层代码段首地址及大小、存放检测结果的内存区域首地址及大小到内核层,接收用户定制功能的命令,提交检测结果给用户;所述用户态检测单元进一步包括用户层判断模块,判断初始化过程是否完成,没有完成则等待,如果完成则监听系统消息,是否有用户输入或者检测结果返回;如果有用户命令输入,则接收用户命令传递到内核层,如果有检测结果返回,则接收检测结果,在交互界面上显示;完成用户命令或检测结果的接收之后,继续监听系统消息并进行后续处理;
系统内核态检测单元:接收用户层传递下来的数据和命令,设置HOOK处理模块,将内核层代码段的首地址及大小、HOOK处理模块的首地址及大小传递到虚拟机监视层,将检测结果返回到内核层,通过设置用户层的内存页面不可写,来保证用户层的完整性,以不被恶意代码攻击;
虚拟机监视器检测单元:接收内核层传递下来的数据和命令,将检测结果传递到内核层,解析客户端操作系统内存,得到系统服务描述符表SSDT导出函数名称与其地址,通过设置层页面不可写,保证内核层的完整性,以不被恶意代码攻击;
接收检测结果单元:初始化过程完成后,等待用户定制命令以及接收检测结果。
2.根据权利要求1的系统,其中的系统内核态检测单元进一步包括:
内核层判断模块,判断初始化过程是否完成,没有完成则等待,如果完成则等待接收消息,如果有用户命令传入,则接收用户命令传递到虚拟机监视器层,如果有检测结果返回,则接收检测结果,并把检测结果传递给内核层;完成用户命令或检测结果的传递之后,继续等待接收消息并进行后续处理。
3.根据权利要求1的系统,其中的虚拟机监视器检测单元进一步包括:
虚拟机监视器层判断模块,接收内核层传递的内核层代码段首地址以及大小、HOOK处理模块的首地址及大小,设置内核层代码段、HOOK处理模块代码段内存页面不可写,根据PE文件格式解析客户系统内核Ntoskrnl.exe,把系统服务描述符表SSDT导出函数名称与其地址联系起来,启动用户命令处理模块,等待用户定制需HOOK的函数,设置系统初始化完成标志,并返回。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110025547.3A CN102122330B (zh) | 2011-01-24 | 2011-01-24 | 基于虚拟机的“In-VM”恶意代码检测系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201110025547.3A CN102122330B (zh) | 2011-01-24 | 2011-01-24 | 基于虚拟机的“In-VM”恶意代码检测系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102122330A CN102122330A (zh) | 2011-07-13 |
CN102122330B true CN102122330B (zh) | 2014-12-03 |
Family
ID=44250886
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201110025547.3A Expired - Fee Related CN102122330B (zh) | 2011-01-24 | 2011-01-24 | 基于虚拟机的“In-VM”恶意代码检测系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102122330B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103077351B (zh) * | 2012-12-20 | 2016-06-01 | 北京奇虎科技有限公司 | 虚拟机系统的反检测系统 |
CN103793288B (zh) * | 2014-02-14 | 2017-07-18 | 北京邮电大学 | 一种软件看门狗系统及方法 |
CN104732140A (zh) * | 2015-04-13 | 2015-06-24 | 成都睿峰科技有限公司 | 一种程序数据处理方法 |
JP6772270B2 (ja) * | 2015-12-19 | 2020-10-21 | ビットディフェンダー アイピーアール マネジメント リミテッド | 複数のネットワークエンドポイントをセキュアにするためのデュアルメモリイントロスペクション |
CN107967203B (zh) * | 2016-10-20 | 2020-07-28 | 腾讯科技(深圳)有限公司 | 基于可执行文件的函数判定方法及装置 |
WO2023003565A1 (en) * | 2021-07-23 | 2023-01-26 | Hewlett-Packard Development Company, L.P. | Kill chain identifications |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961272A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 通过沙箱技术改进计算机安全性的方法 |
CN101046836A (zh) * | 2006-03-29 | 2007-10-03 | 联想(北京)有限公司 | 一种清除rootkit的系统及方法 |
CN101645119A (zh) * | 2008-08-07 | 2010-02-10 | 中国科学院软件研究所 | 一种基于虚拟硬件环境的恶意代码自动分析方法及系统 |
-
2011
- 2011-01-24 CN CN201110025547.3A patent/CN102122330B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1961272A (zh) * | 2004-06-29 | 2007-05-09 | 英特尔公司 | 通过沙箱技术改进计算机安全性的方法 |
CN101046836A (zh) * | 2006-03-29 | 2007-10-03 | 联想(北京)有限公司 | 一种清除rootkit的系统及方法 |
CN101645119A (zh) * | 2008-08-07 | 2010-02-10 | 中国科学院软件研究所 | 一种基于虚拟硬件环境的恶意代码自动分析方法及系统 |
Non-Patent Citations (2)
Title |
---|
Secure In-VM Monitoring Using Hardware Virtualization;SHARIF M, et al.;《Proceedings of the 16th ACM conference on Computer and communications security》;20091130;第478页第1栏第1段,第479页第2栏第4段,第480页第1栏第2-3段,第483页第2栏第4段、图2,3 * |
SHARIF M, et al..Secure In-VM Monitoring Using Hardware Virtualization.《Proceedings of the 16th ACM conference on Computer and communications security》.2009,第478页第1栏第1段,第479页第2栏第4段,第480页第1栏第2-3段,第483页第2栏第4段、图2,3. * |
Also Published As
Publication number | Publication date |
---|---|
CN102122330A (zh) | 2011-07-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102122330B (zh) | 基于虚拟机的“In-VM”恶意代码检测系统 | |
CN101076782B (zh) | 提供虚拟刀片服务器的方法和装置 | |
CN106055385B (zh) | 监控虚拟机进程的系统和方法、过滤page fault异常的方法 | |
CN102053873B (zh) | 一种缓存感知的多核处理器虚拟机故障隔离保证方法 | |
CN103890716B (zh) | 用于访问基本输入/输出系统的功能的基于网页的接口 | |
CN104115125B (zh) | 安全的错误处理 | |
US8683459B2 (en) | Automated virtual appliance sizing | |
US10942757B2 (en) | Virtual machine security through guest-side emulation | |
CN103793288B (zh) | 一种软件看门狗系统及方法 | |
KR20180099682A (ko) | 가상 머신 감사를 위한 시스템 및 방법들 | |
CN102906707A (zh) | 管理与硬件事件关联的处理 | |
CN102147763B (zh) | 一种网络日志的记录方法、系统及计算机 | |
CN101770551A (zh) | 一种基于硬件模拟器的处理隐藏进程的方法 | |
CN103229156A (zh) | 多操作系统环境中的对接系统的自动配置 | |
CN103907098A (zh) | 用于管理程序环境中的关键地址空间保护的系统和方法 | |
Patrascu et al. | Logging system for cloud computing forensic environments | |
CN103500304B (zh) | 基于Xen的虚拟机个性化安全监控系统及监控方法 | |
CN101923507A (zh) | 基于驱动的虚拟机通用监控系统 | |
CN102122331B (zh) | 一种构造“In-VM”恶意代码检测架构的方法 | |
CN105224403B (zh) | 一种中断处理方法及装置 | |
CN107358096A (zh) | 文件病毒查杀方法及系统 | |
CN105556473A (zh) | 一种i/o任务处理的方法、设备和系统 | |
CN109101322A (zh) | 基于配对标签及迁移监听的虚拟化安全计算方法及系统 | |
CN107111511A (zh) | 访问控制的方法、装置和系统 | |
CN115017497A (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: 20141203 Termination date: 20160124 |
|
EXPY | Termination of patent right or utility model |