公开/公告号CN102682229A
专利类型发明专利
公开/公告日2012-09-19
原文格式PDF
申请/专利权人 北京市国路安信息技术有限公司;
申请/专利号CN201110058633.4
申请日2011-03-11
分类号G06F21/00(20060101);G06F9/455(20060101);
代理机构
代理人
地址 100089 北京市海淀区中关村南大街32号2号楼B座六层608
入库时间 2023-12-18 08:00:51
法律状态公告日
法律状态信息
法律状态
2017-07-21
专利权人的姓名或者名称、地址的变更 IPC(主分类):G06F21/56 变更前: 变更后: 申请日:20110311
专利权人的姓名或者名称、地址的变更
2015-04-01
授权
授权
2012-11-14
实质审查的生效 IPC(主分类):G06F21/00 申请日:20110311
实质审查的生效
2012-09-19
公开
公开
技术领域
本发明涉及信息安全领域,尤其涉及一种利用虚拟化技术,通过允许代码执 行后,分析代码所产生的行为来判断该代码是否为恶意代码的方法。
背景技术
信息化技术在推动业务信息化和网络化快速发展的同时,也给用户的业务信 息系统带来了越来越严重的安全威胁,恶意代码攻击一直是倍受关注的安全问 题,恶意代码识别技术也一直是信息安全研究的重点。
现行的计算机恶意代码检测方法,主要有基于恶意代码特征指令序列的静态 检测方法和基于代码行为的动态判定方法两种。其中前者已经广泛地应用于各 类杀毒软件当中,它利用获取待检测代码的固定位置的特征码与特征码库进行 比对判断该代码是否为恶意代码。但是这种方法存在显著的缺陷,无法有效对 变体或者未知的恶意代码进行判别,并存在较高的误判率;相比较而言,后者 具有相当大的优越性。但是如何让恶意代码能够在执行后准确地释放其所包含 的行为,并同时保证进行检测时的环境是可信的以图检测结果准确无误,则是 该检测方法面临的一大难题。
虚拟化技术在一定程度上为这个问题提供了相对应的解决方案。基于硬件的 虚拟化产品可以轻松地在一个宿主系统上虚拟出一个或多个系统环境,这些虚 拟的系统环境与原先的宿主系统完全独立,虚拟系统中发生的变更,不会反映 到真实的宿主系统中,同时快照技术(snapshot),可以方便地实现虚拟系统环 境的恢复,使得系统被恶意代码篡改过后可以在很短的时间内恢复到一个原始 的状态,同时此类产品还有一个特性,即虚拟系统内部的一些系统信息比如进 程列表等是可以由外部程序监视和控制的,便于在真实的宿主环境中部署一个 监视程序对虚拟系统进行控制,籍此加强检测结果的准确性和可靠性。
发明内容
本发明就是针对上述问题,在上述的技术基础上,提出的一种基于虚拟化技 术的恶意代码行为检测方法,它有效解决了了传统静态恶意代码检测方法中对 变体和未知代码检测能力弱,误判率高,以及恶意代码行为和检测环境可信的 冲突等问题。
根据系统中工作任务不同,可将系统主要划分为两个模块,度量模块和分析 模块。其中度量模块主要包括由一系列虚拟机所组成的虚拟运行环境以及部署 在真实运行环境下的监控程序,分析模块则包括可信检测环境以及工作在其中 的调度程序和分析程序。其中各组件的主要功能如下:
1、虚拟运行环境,由多个虚拟机组成,用于执行待检测代码。同时在每个 虚拟机内部部署捕获程序,用以捕捉代码产生的行为;
2、监控程序,工作与真实运行环境,维护指定虚拟机内的进程列表,对虚 拟机内部进程变化进行监视,用以提高分析的准确度;
3、调度程序,按照一定算法在虚拟机组中选择一个空闲的虚拟机,将待检 测代码投放进该虚拟机,实现检测系统的自动化;
4、分析程序,用以分析在虚拟环境中捕获到的行为,并产生结果报告。
具体来讲,本发明的目的是通过以下技术方案来实现的。
1、首先,利用信任链传递的技术,搭建一个确定可信的检测平台环境;
2、在搭建好的可信的检测平台环境中,利用虚拟化技术根据实际情况建立 若干个虚拟机,并在每个虚拟机中部署相应的度量程序等,用于捕获代码行为, 同时为每个虚拟机建立原始状态的快照,用于度量结束后的恢复;
3、在检测环境中部署用于分析行为的检测程序和用于维护虚拟机的监控程 序,以及调度程序等。
系统的工作流程如下:
首先由调度程序将待检测的代码投入由多个虚拟机组成的沙箱环境中,在该 环境中,通过一定的选择算法选择一个空闲的虚拟机,该虚拟机作为一个单独 的虚拟运行环境来执行此待检测代码,并同时捕获该代码所产生的行为,将捕 获到的行为记录成行为审计日志,并将该日志交递给分析程序,分析程序在收 到审计日志后,通过构造改进过的攻击树模型,对该行为审计日志进行分析。 在本系统中,不同的行为对应不同的权值,该权值可以根据实际情况来自主设 定。系统通过一定的算法,计算该日志所产生的总的恶意权值,最终给出一个 被检测代码的恶意性报告。
附图说明
图1是本发明的系统总体设计图。
图2是本发明的模块划分图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步的说明。
实施例之一:
如图1所示,本发明的系统总体设计为一个可信检测环境和若干个虚拟机的 集合。可信检测环境通过信任链传递技术实现,虚拟机实现了度量环境的隔离, 每个虚拟机与可信检测环境可独立通信。
实施例之二:
如图2所示,本发明的模块主要分为两个,度量模块和分析模块。其中每个 模块又由不同的组件所组成。每个组件负责不同的工作,各个组件之间相互协 调,统一调度,最终完成其所组成的模块的主要工作。
实施例之三:
一段给定代码的完整检测过程:当给定的代码被提交给检测系统之后,系统 将当前空闲的虚拟机资源进行整理排序,然后把代码投入排序队列中的首个虚 拟机,使其在该虚拟机中执行。当待检测代码执行后,虚拟机中的度量程序将 会关注该代码所产生的行为,主要集中在代码对文件系统的访问,注册表的访 问和修改,敏感系统文件如boot.ini等文件的访问和修改,对其他进程的进程 空间的访问等,并将这些行为按照主体-客体-操作类型的格式记做审计日志。 行为度量完毕后,系统会把生成的审计日志递交给分析程序,然后将度量结束 的虚拟机按照其原始状态的快照进行恢复以准备进行下一次检测。而当分析程 序收到待分析的审计日志后,按照以下规则进行分析:
假设E是一段被分析的可执行代码,k1,k2,k3......kn为其度量得到的行为,单 独行为所对应的权值为w1,w2,w3......wn,则可确定E的总权值为:
在进行分析的过程中,本系统引入了改造的攻击树的概念。我们定义了一个 具有多层父子关系的树形结构,例如可执行代码A在运行期间,释放出或创建 了新的可执行代码B,则认为A是B的父结点,B是A的子结点;同时B释放或 创建了新的可执行代码C,则认为C是A的孙子结点,同时A是C的祖父结点。 这种情况下,B和C产生的行为所需累加的权值,就同一在A的权值累加。通 过该树形结构,可以有效提高分析的精度。在这种情况下,A的权值可以表示 为:
W(A)=W(B)+W(C)
在获得了单个的恶意代码的权值后,就可以计算出相对应的恶意程序的权 值。假设
S(E)={E1,E2,E3...En}
是恶意程序S所包含的可执行代码的集合,则恶意程序S对应的权值W(S) 即为
即可根据此W(S)判断被检测的代码是否为恶意代码。
本技术领域中的相关技术人员应当熟悉到,以上所述实施例仅是用来说明本 发明的目的,而并非用作对本发明的限定,只要在本发明的实质范围内,对上 述实施例所做的变化、变型都将落在本发明的权利要求范围内。
机译: 具有基于行为的恶意代码检测功能的移动通信终端及其检测方法
机译: 具有基于行为的恶意代码检测功能的移动通信终端及其检测方法
机译: 具有基于行为的恶意代码检测功能的移动通信终端及其检测方法