[发明专利]基于VMM的软件完整性校验系统及其方法有效
申请号: | 201310514456.5 | 申请日: | 2013-10-27 |
公开(公告)号: | CN103593617A | 公开(公告)日: | 2014-02-19 |
发明(设计)人: | 朱辉;李强;陈晓峰;李晖;朱磊;黄橙;雷婉 | 申请(专利权)人: | 西安电子科技大学 |
主分类号: | G06F21/57 | 分类号: | G06F21/57;G06F21/53 |
代理公司: | 陕西电子工业专利中心 61205 | 代理人: | 田文英;王品华 |
地址: | 710071*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 vmm 软件 完整性 校验 系统 及其 方法 | ||
技术领域
本发明属于计算机技术领域,更进一步涉及软件安全技术领域中的一种基于虚拟机监控器(Virtual Machine Monitor,VMM)的软件完整性校验系统及其方法。本发明通过调用虚拟化指令将软件的流程转到VMM,在VMM层对软件进行完整性校验,用于检测对软件可执行文件本身的恶意修改、软件的防破解,检测内存补丁对软件在内存中映像的修改。
背景技术
随着计算机技术的快速发展,软件已经越来越成为人们生活中不可或缺的一部分。软件规模不断增大,复杂性越来越高,相应的,软件开发投入的资源也越来越多。为了保护软件开发中投入的巨大资金和人力资源,防止软件的破解与非法修改,软件的保护也越来越重要。
北京航空航天大学拥有的专利技术“软件完整性验证方法及系统”(专利申请号CN200910087986.X,授权公告号CN101593259B)公开了一种软件完整性验证方法及系统,该方法包括以下步骤:1、在虚拟机监控器中,通过截获上层操作系统的系统调用,以获取加载的可执行文件的路径;2、根据所述可执行文件的路径,获取所述可执行文件的哈希值;3、并将所述可执行文件的哈希值与指纹库中的软件指纹比对;4、根据所述指纹比对结果,对所述可执行文件进行完整性验证。该方法能够实现对操作系统透明的软件完整性校验工作。但是,该方法仍然存在的不足之处是:1、该方法通过在VMM层拦截上层操作系统的系统调用来获取可执行文件的路径,由于现代操作系统中的系统调用很频繁,频繁拦截系统调用会对系统性能造成影响;2、该方法没有对内存中的完整性进行校验,不能防御内存补丁对软件在内存中映像的修改。该系统包括以下模块:1、获取路径模块;2、比对模块;3、完整性验证模块。该系统存在的不足之处是:该系统通过在VMM中截获上层操作系统的系统调用获取可执行文件路径,由于操作系统的系统调用非常频繁,导致被动陷入VMM的频率非常大,影响了系统的性能;该系统没有对软件在内存中的完整性进行校验,不能防御内存补丁对软件在内存中映像的修改。
发明内容
本发明针对上述现有软件完整性校验技术的不足,提出一种基于VMM的软件完整性校验方法及系统。本发明具有安全、高效并且对系统性能影响较小的特点,可以准确完成软件的完整性校验,由于实现了内存完整性校验,也能检测到内存补丁对软件在内存中映像的修改。
本发明的技术思路是:利用现代CPU支持的硬件虚拟化特性,利用虚拟化指令在操作系统之下增加一个新的软件层,即虚拟机监视器,应用软件通过调用特定的虚拟机指令主动陷入虚拟机监视器,完成软件的完整性校验。由于虚拟机监视器具有最高的权限,能够满足完整性校验的强制性要求;整个验证无需操作系统干预,能够实现对操作系统的透明性;由于是程序主动陷入虚拟机监视器之中,因此不会像拦截系统调用对系统性能造成影响;考虑到内存补丁可能会对软件在内存中的映像做出修改,破坏软件的完整性,本专利还实现了周期性的内存完整性校验。
本发明基于VMM的软件完整性校验系统,包括虚拟机和虚拟机监控器。虚拟机中包括初始化模块和循环检测模块。虚拟机监控器包括硬盘完整性校验模块、内存完整性校验模块以及哈希值计算模块。其中:
所述的初始化模块,用于将当前操作系统迁移到虚拟机监控器上,调用硬盘完整性校验模块和内存完整性模块,进行完整性校验。
所述的循环检测模块,用于创建一个检测线程,每隔一定时间调用内存完整性校验模块对内存进行完整性校验,并对检测结果进行判断。
所述的硬盘完整性校验模块,用于调用哈希值计算模块完成软件在硬盘上存储文件的完整性校验,并将校验结果返回给所调用的模块。
所述的内存完整性校验模块,用于调用哈希值计算模块完成软件在内存中代码段映像的完整性校验,并将校验结果返回给所调用的模块。
所述的哈希值计算模块,用于通过给定的字节流,计算出该段字节流的哈希值,为硬盘完整性校验模块和内存完整性校验模块提供经过特定哈希算法运算之后的哈希值。
本发明的校验方法包括如下步骤:
(1)初始化:
初始化模块将操作系统迁移到虚拟机监控器上。
(2)创建检测线程:
2a)在循环检测模块中创建一个检测线程;
2b)检测线程每隔一定时间,进行内存完整性校验。
(3)计算硬盘上软件文件哈希值:
陷入虚拟机监控器,在虚拟机监控器中,读取软件可执行文件字节流,将该字节流传递给哈希值计算模块,计算软件可执行文件在硬盘上的哈希值。
(4)硬盘完整性校验:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安电子科技大学,未经西安电子科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310514456.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:基于立体摄像机的物体检测方法和装置
- 下一篇:一种区域火灾风险估计方法