[发明专利]基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统有效
申请号: | 201210185449.0 | 申请日: | 2012-06-07 |
公开(公告)号: | CN102750475B | 公开(公告)日: | 2017-08-15 |
发明(设计)人: | 张文政;周安明;祝世雄;刘嘉勇;董新锋;赵伟 | 申请(专利权)人: | 中国电子科技集团公司第三十研究所 |
主分类号: | G06F21/55 | 分类号: | G06F21/55;G06F9/455 |
代理公司: | 工业和信息化部电子专利中心11010 | 代理人: | 张红玉 |
地址: | 610041 四川*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 虚拟机 内外 视图 交叉 恶意代码 行为 检测 方法 系统 | ||
技术领域
本发明涉及虚拟机技术,特别涉及一种基于虚拟机内外视图交叉比对恶意代码行为检测方法。
背景技术
恶意代码分析和检测方法,就目前而言,主要分为静态分析检测和动态分析检测两种方法。静态分析检测法是指在不运行恶意代码的情况下,利用分析工具对恶意代码的静态特征和功能模块进行分析,找到恶意代码的特征字符串、恶意代码特征代码段,包括通信特征等。
静态分析具有一定的局限性:(1)静态分析主要分析目标文件的结构信息,但是不能完全得到功能语义信息,比如那些包含多个组件协作工作的语义信息,运行期分析可以很好捕获运行期的信息;(2)对于代码或者数据的混淆方法,比如加密、加壳、多态变形等,静态分析往往也无能为力,而运行期分析可以避免处理这些复杂的混淆手段,因为动态执行过程中,以加密为例,进程本身会解密指令执行。
静态检测方法具有一定的滞后性,需要不断更新特征库,而且不能对加壳、变形、多态的恶意代码进行检测。
动态分析检测法是通过监控恶意代码的运行过程来了解恶意代码的功能,主要有环境比较法和动态跟踪法。动态分析法可以克服传统静态特征检测模型的滞后性,对未知恶意代码进行检测。环境比较法是利用系统监视工具观察恶意代码运行过程中系统环境的变化,该种方法往往可以被一些恶意代码狡猾的手段绕过。比如在一系列操作结束后,通过抹掉痕迹的方法,如删除中间文件,删除日志的方式,使用前后快照比较的方法,往往会忽略到这些恶意操作,而动态行为监控的方式可以记录全部行为操作,抓住所有行为操作痕迹。
动态跟踪法是通过跟踪恶意代码执行过程中使用的系统函数和指令特征来分析恶意代码功能的技术,而目前大多数主流的安全防御技术主要是使用动态跟踪法来实现对恶意软件的检测,即大家熟知的主动防御技术,同时针对虚拟机来实现对恶意软件的分析技术在国外首先得到研究,目前国内对此研究也逐渐开始兴起,大多数的使用都是基于对恶意代码在虚拟机环境中运行,然后动态监控跟踪其执行代码的路径来判断是否满足其恶意软件的条件,也即常用的动态跟踪法来检测,不能有效地对内核级的Rootkit恶意代码检测,检测准确率不高。此外如今恶意代码的设计趋向于组件式,恶意代码的行为特征呈现复杂的逻辑关系,单一的检测手段也有一定的局限性。
发明内容
为了克服现有技术的不足,本发明提出了一种基于虚拟机内外视图交叉比对的恶意代码行为检测方法,本方法不仅在虚拟机内部动态监控恶意代码行为特征,还把外部监控虚拟机原始内存的技术和原有的内部监控技术结合起来,采用了多视角的动态行为实时监控方式获取对虚拟机系统的操作行为。
本发明的基于虚拟机内外视图交叉比对恶意代码行为检测方法,包括:虚拟机控制器启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并对虚拟机检测器进行控制;虚拟机检测器在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;综合分析器对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析该恶意代码的恶意行为。
具体地,包括下列步骤:
步骤100:服务器接受用户提交的恶意代码,并将其保存到本地未检测的目录;
步骤200:系统监控到未检测文件目录不为空,则启动虚拟机进程,待虚拟机启动完毕,上传未检测文件样本;同时启动虚拟机监视器,监控虚拟机内存运行的信息;
步骤300:当虚拟机启动完毕,先创建一个进程,将系统信息收集单元加载起来,同时加载虚拟机监视器,当所有加载程序加载完毕,然后运行样本;
步骤400:在执行完毕后,综合分析器根据虚拟机检测器发送的分析信息分析操作的恶意等级。
其中,在步骤400之后,进一步包括步骤:
当样本在检测过程中出现超时等待情况,则立即结束目标进程;而检测结果文件则继续发给综合分析器以方便结果报表文件的生成。
其中,综合分析器对系统数据处理后进行分析,包括:
首先得到根据时间排序的行为事件序列SeqE={E1,E2,……,En};
将执行体划分到多个进程域或者中间文件域,建立执行体的上下文关系,完成域的划分;划分后的行为序列为P::{E1,E2,E8},,C1::{E3,E4},C2::{E5,E6},C3::{E7};其中,P表示父进程或者主体文件,{Ci}表示子进程或者其主体文件的组件文件;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国电子科技集团公司第三十研究所,未经中国电子科技集团公司第三十研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210185449.0/2.html,转载请声明来源钻瓜专利网。