CN102750475A - 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统 - Google Patents

基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统 Download PDF

Info

Publication number
CN102750475A
CN102750475A CN2012101854490A CN201210185449A CN102750475A CN 102750475 A CN102750475 A CN 102750475A CN 2012101854490 A CN2012101854490 A CN 2012101854490A CN 201210185449 A CN201210185449 A CN 201210185449A CN 102750475 A CN102750475 A CN 102750475A
Authority
CN
China
Prior art keywords
virtual machine
behavior
information
malicious code
malice
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.)
Granted
Application number
CN2012101854490A
Other languages
English (en)
Other versions
CN102750475B (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.)
CETC 30 Research Institute
Original Assignee
CETC 30 Research Institute
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 CETC 30 Research Institute filed Critical CETC 30 Research Institute
Priority to CN201210185449.0A priority Critical patent/CN102750475B/zh
Publication of CN102750475A publication Critical patent/CN102750475A/zh
Application granted granted Critical
Publication of CN102750475B publication Critical patent/CN102750475B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明提供一种基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统,其中,包括:虚拟机控制器启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并对虚拟机检测器进行控制;虚拟机检测器在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;综合分析器对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析改恶意代码的恶意行为。本发明采用了多视角的动态行为实时监控方式获取对虚拟机系统的操作行为。

Description

基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
技术领域
本发明涉及虚拟机技术,特别涉及一种基于虚拟机内外视图交叉比对恶意代码行为检测方法。
背景技术
恶意代码分析和检测方法,就目前而言,主要分为静态分析检测和动态分析检测两种方法。静态分析检测法是指在不运行恶意代码的情况下,利用分析工具对恶意代码的静态特征和功能模块进行分析,找到恶意代码的特征字符串、恶意代码特征代码段,包括通信特征等。
静态分析具有一定的局限性:(1)静态分析主要分析目标文件的结构信息,但是不能完全得到功能语义信息,比如那些包含多个组件协作工作的语义信息,运行期分析可以很好捕获运行期的信息;(2)对于代码或者数据的混淆方法,比如加密、加壳、多态变形等,静态分析往往也无能为力,而运行期分析可以避免处理这些复杂的混淆手段,因为动态执行过程中,以加密为例,进程本身会解密指令执行。
静态检测方法具有一定的滞后性,需要不断更新特征库,而且不能对加壳、变形、多态的恶意代码进行检测。
动态分析检测法是通过监控恶意代码的运行过程来了解恶意代码的功能,主要有环境比较法和动态跟踪法。动态分析法可以克服传统静态特征检测模型的滞后性,对未知恶意代码进行检测。环境比较法是利用系统监视工具观察恶意代码运行过程中系统环境的变化,该种方法往往可以被一些恶意代码狡猾的手段绕过。比如在一系列操作结束后,通过抹掉痕迹的方法,如删除中间文件,删除日志的方式,使用前后快照比较的方法,往往会忽略到这些恶意操作,而动态行为监控的方式可以记录全部行为操作,抓住所有行为操作痕迹。
动态跟踪法是通过跟踪恶意代码执行过程中使用的系统函数和指令特征来分析恶意代码功能的技术,而目前大多数主流的安全防御技术主要是使用动态跟踪法来实现对恶意软件的检测,即大家熟知的主动防御技术,同时针对虚拟机来实现对恶意软件的分析技术在国外首先得到研究,目前国内对此研究也逐渐开始兴起,大多数的使用都是基于对恶意代码在虚拟机环境中运行,然后动态监控跟踪其执行代码的路径来判断是否满足其恶意软件的条件,也即常用的动态跟踪法来检测,不能有效地对内核级的Rootkit恶意代码检测,检测准确率不高。此外如今恶意代码的设计趋向于组件式,恶意代码的行为特征呈现复杂的逻辑关系,单一的检测手段也有一定的局限性。
发明内容
为了克服现有技术的不足,本发明提出了一种基于虚拟机内外视图交叉比对的恶意代码行为检测方法,本方法不仅在虚拟机内部动态监控恶意代码行为特征,还把外部监控虚拟机原始内存的技术和原有的内部监控技术结合起来,采用了多视角的动态行为实时监控方式获取对虚拟机系统的操作行为。
本发明的基于虚拟机内外视图交叉比对恶意代码行为检测方法,包括:虚拟机控制器启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并对虚拟机检测器进行控制;虚拟机检测器在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;综合分析器对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析改恶意代码的恶意行为。
具体地,包括下列步骤:
步骤100:服务器接受用户提交的恶意代码,并将其保存到本地未检测的目录;
步骤200:系统监控到未检测文件目录不为空,则启动虚拟机进程,待虚拟机启动完毕,上传未检测文件样本;同时启动虚拟机监视器,监控虚拟机内存运行的信息;
步骤300:当虚拟机启动完毕,先创建一个进程,将系统信息收集单元加载起来,同时加载虚拟机监视器,当所有加载程序加载完毕,然后运行样本;
步骤400:在执行完毕后,综合分析器根据虚拟机检测器发送的分析信息分析操作的恶意等级。
其中,在步骤400之后,进一步包括步骤:
当样本在检测过程中出现超时等待情况,则立即结束目标进程;而检测结果文件则继续发给综合分析器以方便结果报表文件的生成。
其中,综合分析器对系统数据处理后进行分析,包括:
首先得到根据时间排序的行为事件序列;
建立执行体的上下文关系,完成域的划分;划分后的行为序列为P::{E1,E2,E8},C1::{E3,E4},C2::{E5,E6},C3::{E7};其中,P表示父进程或者主体文件,{Ci}表示子进程或者其主体文件的组件文件;
从P开始对每个域中的行为事件序列与特征库中序列模式进行匹配,保存记录匹配项的支持度μs
对于未匹配的节点继续进行行为属性的匹配,依次提取行为事件中的叶子节点操作元素Op与对象元素Ob,查询数据库匹配关联规则,对于匹配行为属性关联规则,记录每一匹配项的支持度μa行为操作和行为操作对象;
计算匹配项的序列恶意度、行为属性关联恶意度和上下文恶意度;
计算综合恶意度M,判定综合恶意度计算值是否超过设定阈值ε,若超过,则判定检测文件为恶意,并根据恶意度的高低,确定文件的风险等级。
其中,在计算匹配项的序列恶意度、行为属性关联恶意度和上下文恶意度时,Mseq为序列恶意度,每一条匹配的序列恶意因子通过该条序列规则在特征库中的支持度μs来表征,其中,Mseq根据下式得到:
Mseq(Si)=μS(Si);
Me表示行为属性恶意度,每一条匹配的行为属性的恶意因子通过该规则在特征库中的支持度μa来表征,其中,Me通过下式得到:
Me(Ei)=μa(Ei);
Mc是上下文恶意度,Mc通过下式得到:
Mc=Wi=(WSi*WOi*WPi),
其中,WSi是主体属性恶意度权重;WOi是客体属性恶意度权重;WPi为操作属性恶意度权重。
本发明的基于虚拟机内外视图交叉比对恶意代码行为检测系统,包括虚拟机控制器、虚拟机检测器、综合分析器和报表管理器,其中,
虚拟机控制器,用于启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并控制虚拟机检测器;
虚拟机检测器,用于在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;
综合分析器,用于负责对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析改恶意代码的恶意行为。
其中,所述虚拟机检测器包括系统信息收集器和虚拟机监视器,其中,
系统信息收集器,用于当被测程序在虚拟机内部运行时,负责收集被测代码对系统所作修改的信息;其中,所述信息包括:文件信息、注册表信息、进程信息和网络活动信息;
虚拟机监视器,用于当被测程序在虚拟机内部运行时,在虚拟机外部负责监控收集虚拟机内存视图信息。
其中,虚拟机监视器监控收集虚拟机内存视图信息包括进程信息、注册表信息、网络活动信息、系统服务描述表钩子(System Services Descripter Table,SSDT HOOK)信息、内联函数钩子InlineHOOK信息、驱动隐藏信息和模块隐藏信息。
其中,所述综合分析器,用于进行信息的收集、分类和处理,包括实现对虚拟机外部记录的内存信息和虚拟机内部记录的信息进行统计和分析。
进一步地,还可以包括文件提交模块,用于通过一个Web页面实现用户对恶意代码的提交,同时把提交的代码放入分析目录。
本发明的有益效果是:由于恶意代码往往是通过对资源的非授权操作实现恶意操作的目的,多视角下的行为监控指的是对恶意代码访问的资源点,如注册表、网络、文件、进程资源等进行监控,实现多点监控,从不同层面更详尽地获取恶意代码行为特征。行为特征的表征形式为Windows系统的API函数调用关系,借鉴入侵检测事件的定义方式,将虚拟机内外获取的行为数据结构定义为行为事件和行为事件序列模型,借鉴关联分析和序列模式挖掘算法思想,综合分析行为事件属性元素间的关系,行为序列关系,以及行为上下文关系来详尽的分析行为逻辑关系,综合检测恶意代码,提高了检测系统的检测精度。
附图说明
图1为本发明的基于虚拟机内外视图交叉比对恶意代码行为检测方法原理图;
图2为系统信息收集器的工作原理图;
图3为Windows内存模块的解析流程;
图4为系统整体框架图;
图5为恶意代码的具体检测流程。
图6为综合分析器的分析流程。
具体实施方式
以下,参考附图1~6详细描述本发明的基于虚拟机内外视图交叉比对恶意代码行为检测方法。
本发明的技术方案是:结合现有的恶意代码检测技术,以及虚拟机技术,通过在虚拟机器内部利用动态跟踪检测方法,检测恶意软件的执行流程,并记录执行路径,然后再从虚拟机器外部,透过主机系统分析虚拟机器的原始内存数据,提取出内存中的所有关于恶意软件的信息,并记录执行信息。然后将内外环境收集到的信息反馈给本检测分析引擎,分析行为数据的逻辑关系,并通过内外视图比较判定是否为恶意代码。该系统整合了现有基于虚拟机检测恶意代码行为技术优点,并通过虚拟机器原始内存分析的方法,不但实现了对普通恶意代码的检测,也实现了对驱动级的Rootkit恶意代码的检测分析,整合完善并实现自动化和智能化。
本检测系统主要包括文件提交管理器、虚拟机检测器、综合分析器和结果报表管理器。
文件提交管理器主要完成分发待分析文件到指定虚拟机,虚拟机检测器作为本系统的核心组件,主要由系统信息收集器、虚拟机控制器、虚拟机监视(VMwatcher)器组成。虚拟机控制器:用来控制虚拟机启动、停止和还原的。虚拟机控制器对所有资源操作(包括系统信息收集器、VMwatcher)运行进行监控,以保证被测程序完全在受控的状态下。系统信息收集器:当被测程序在虚拟机内部运行的时候,负责收集被测代码对系统所作修改的信息。主要包括四个方面:文件信息、注册表信息、进程信息和网络活动信息。虚拟机监视器:当被测程序在虚拟机内部运行的时候,虚拟机监视器在虚拟机外部负责监控收集虚拟机内存视图信息,主要包括七个方面:进程信息、注册表信息、网络活动信息、系统服务描述表钩子(System Services Descripter Table,SSDT HOOK)信息、内联函数钩子InlineHOOK信息、驱动隐藏信息和模块隐藏信息等。
综合分析器作为系统数据的处理模块,担负着对信息的收集、分类和处理。主要负责实现对虚拟机外部记录的内存信息和虚拟机内部记录的信息进行统计和分析。捕获到的行为数据是杂乱无章的,数据平坦,无组织,关联性差。本模块完成日志文件的数据清洗,借鉴入侵检测事件定义方式,定义行为数据结构,重构行为数据,形成行为事件序列,并按照恶意代码的执行体的调用关系,形成上下文关系。通过匹配行为属性和行为序列关联特征库后,判定检测文件的风险值。
如图1所示,基于虚拟机内外视图交叉比对恶意代码行为检测方法的原理图,分为虚拟机内部视图数据获取、虚拟机外部视图数据获取、数据比对分析三部分。
首先,要进行虚拟机内部视图数据的获取。为了能从虚拟机内部收集恶意代码运行痕迹,需要在虚拟机内部部署一个应用程序,该程序实现对恶意代码的启动,并监控其运行。在恶意代码运行期间,它通过对系统上层应用编程接口(Application Program Interface,API)的挂钩,就能将恶意代码所有运行视图信息收集,如果上层调用返回的信息在某个地方修改,那么这种信息就是不可信的。在得到内部视图数据后,将其发送到外部数据处理模块。
其次,进行虚拟机外部视图数据的获取。从虚拟机外部直接分析虚拟机内存,这就可以获得操作系统底层很难被恶意代码修改的一些原始数据结构,然后将这些真实可靠的信息进行收集。即使有恶意代码在上层对系统进行修改,内存视图信息仍然是可信的。在得到外部视图数据后,将其发送到外部数据处理模块。
最后,进行数据比对分析。在外部数据处理模块对数据进行归纳,去除冗余后。输入到一个比对分析模块中进行行为关联比对分析。根据分析结果,基本就可以判断其恶意风险级别。
在图2所示实施例中,为了能够对虚拟机内部视图数据准确的获取,就必须要在虚拟机内部安装系统分析模块,也即系统信息收集器。系统信息收集器包括系统分析器和动态链接库monitor.dll,系统分析器主要用来加载恶意代码并接受外部命令使之运行,monitor.dll是一个外部动态链接库,主要是由系统分析器来启动并将其注入到新产生的恶意代码进程。在恶意代码运行的整个过程中,首先系统分析器将其注入恶意代码进程及其子进程,然后monitor.dll利用Detour技术实现对恶意代码进程运行的每一个关键API函数进行实时监控,最后在进程运行完成过后monitor.dll负责同系统分析器通信,并把监控结果发送系统分析程序。
在图3所示实施例中,为了能够对虚拟机外部视图数据准确的获取,就需要对虚拟机的物理内存进行分析,该图给出了具体的分析流程。
首先从图中可以看出为了准确的得到物理内存的原始数据,首先需要判断分页模式,即使用哪种机制来进行分页的,页的大小是多少,它所指向的是页目录,还是页目录指针基地址,完成这些工作后,就可以实现虚拟地址到物理的地址的转换。
其次当内核页目录指针基地址得到后,通过对系统已经加载的模块进行遍历,就可以获取到内核模块的实际的物理内存数据了,即内核PE模块数据,从PE模块数据中就可以提取到操作系统版本,以及存储在该PE结构.debug调试区段的全局唯一标示符,即GUID等。
微软在Visual C++6.0开始就引入了一种新的存储调试信息的文件格式,称为Program DataBase,简称PDB,PDB格式是微软自己定义的公开格式,存储在微软的符号文件服务器上的,因此在内核模块解析过程中,为了获取到需要的符号信息,只需要向微软的文件服务器发送一个Get请求就可以了,其中该请求必须包含你所请求模块的文件名以及模块全局的GUID号,通过它就能下载对应的PDB文件了。
最后,在获得完整的符号信息文件后,通过DbgHelp函数库提供的API,包括符号加载模块(SymLoadModule),符号查找模块(SymEnumerateSymbols)等,就可以对我们所需要的内核PE映像模块进行解析,就可还原出用户可以看懂的数据结构了。
在图4给出了该检测系统整体框架图,主要包括文件提交管理器、虚拟机检测器、综合分析器和结果报表管理器。其中虚拟机检测器作为本系统的核心组件,主要由系统信息收集器、虚拟机控制器、虚拟机监视(VMwatcher)器组成。
在图5中给出了系统的执行流程。虚线框内的三部分是各自独立的组件,中间为虚拟机检测器模块,可以独立进行恶意代码动态检测。流程中的数字标识了系统提交的顺序,下面详细对这些步骤进行阐述:
提交文件。登陆Web页面,选择要提交的恶意代码文件,并点击提交按钮提交,文件将自动传送到文件提交管理器中。
保存文件。文件提交管理器接受用户提交的恶意代码文件,并将其保存到本地未检测的目录。
控制执行。虚拟机控制器监控到未检测文件目录不为空,则启动虚拟机检测器内虚拟机(VM),并上传未检测文件样本进入虚拟机(VM)中。
虚拟机控制器,监控到虚拟机(VM启动完毕后,会在虚拟机(VM)内部创建一个进程,将系统信息收集器加载起来,系统信息收集器加载成功后,开始运行恶意代码样本,同时在真实主机的外部创建一个进程,将虚拟机监视器(VMwatcher)加载起来,然后对运行样本的虚拟机(VM)虚拟内存进行监控。
恶意分析。在样本分析完毕后,综合分析器根据虚拟机检测器发送的分析信息分析操作的恶意等级。
在分析完成后,如果样本还未检测完毕,则继续第3步骤。
当样本在检测过程中出现超时等待等情况,则立即结束目标进程。而检测结果文件则继续发给综合分析器以方便结果报表文件的生成。
用户查看检测结果文件。
在图6中展示了综合分析器和报表管理器对系统数据处理后的分析流程。
(1)获取行为事件序列。首先得到根据时间排序的行为事件SeqE={E1,E2,……,En},其中TIME e1<TIME e2<…<TIME en。
(2)建立上下文关系。为了更好的分析执行体的相互关系,将其划分到多个进程域或者中间文件域。P表示父进程或者主体文件,{Ci}表示子进程或者其主体文件的组件文件。图8是一个例子的示意图,建立了执行体的上下文关系,完成了域的划分。划分后的行为序列为P::{E1,E2,E8},C1::{E3,E4},C2::{E5,E6},C3::{E7}。
(3)匹配行为事件序列。然后从P开始对每个域中的行为事件序列与特征库中序列模式进行匹配,保存记录匹配项的支持度μs。示例中的序列匹配结果如图9所示,深色节点表示行为事件匹配项。
(4)匹配行为属性关联特征。对于未匹配的节点继续进行行为属性的匹配,依次提取行为事件中的叶子节点——操作Op元素与对象元素Ob,查询数据库匹配关联规则,对于匹配行为属性关联规则,记录每一匹配项的支持度μa行为操作和行为操作对象。
(5)计算匹配项的序列恶意度、行为属性关联恶意度和上下文恶意度。Mseq为序列恶意度,是指行为事件前后关联完成的恶意操作破坏程度。每一条匹配的序列恶意因子通过该条序列规则在特征库中的支持度μs来表征,意味着这条序列的频度越高,则恶意影响因子越大。Mseq计算公式如1所示。
Mseq(Si)=μS(Si)      (1)
Me表示行为属性恶意度,用来评价对于行为事件中的主要属性元素关联关系的产生的恶意程度,本文中的主要属性指的是行为操作和行为操作对象。与序列恶意度计算相似,每一条匹配的行为属性的恶意因子通过该规则在特征库中的支持度μa来表征,意味着这条规则的频度越高,则恶意影响因子越大。Me计算公式如2所示。
Me(Ei)=μa(Ei)                (2)
Mc是上下文恶意度,对于匹配的事件元素,同时检查上下文情景关系,单个事件或序列上下文恶意度决定于行为事件主体(Sub)、操作(Op)和操作客体(Ob),计算公式如3所示。
Mc=Wi=(WSi*WOi*WPi)          (3)
其中,WSi是主体属性恶意度权重;WOi是客体属性恶意度权重;WPi为操作属性恶意度权重。该公式表明主体恶意度越高,操作恶意度越高,操作客体恶意度越高,则这一行为事件的恶意度也高。特别的,对于C域中的客体,其主体的恶意度影响于P域中主体的恶意度,如果执行体源头恶意度高,则子执行体也继承了其恶意性。
对于匹配的事件序列,行为元组操作为核心属性,并且序列是多个行为事件的集合,匹配序列的上下文影响因子计算公式如4所示,MC(Si)表示序列Si的情景因子,也称为上下文因子。
Mc(Si)=WSi∏WPi    (4)
考虑上下文因子后,mseq(Si)计算公式如5所示,mseq(Si)表示序列Si综合上下文情景下的恶意度。
mseq(Si)=Mseq(Si)*MC(Si)=μS(Si)*WSi∏WOi    (5)
对于匹配事件,行为事件元组属性操作和操作客体为关键要素,上下文影响因子计算如公式6所示,其中Mc(Ei)表示元素Ei的上下文因子。
Mc(Ei)=WSi*WOi*WPi    (6)
考虑上下文因子后,mseq(Si)计算公式如7所示,me(Ei)表示节点Ei综合上下文情景下的恶意度。
me(Ei)=Me(Ei)*MC(Ei)=μa(Ei)*WSi*WOi*WPi    (7)
上下文关系还需要考虑宏观层次上执行体间的相互关系。对于多进程或者多组件文件检测,行为序列恶意度是P域和C域行为事件序列恶意度的综合效果。因为子进程或者组件恶意行为源于其父进程和主体文件,应该一并考量,作为整个文件的行为恶意度。同理,对于总的行为关联属恶意度,它也是P域和C域行为事件恶意度的综合效果。令m'seq和m′e分别表示分析文件中所有执行体的平均序列恶意度和平均事件恶意度,其公式如8和9所示。
m &prime; seq = m seq ( P ) + m seq ( C ) = 1 k &Sigma; 1 k m seq ( P , S i ) + 1 i * j &Sigma; 1 j &Sigma; 1 i m seq ( C i , S j ) - - - ( 8 )
m e ( P ) + m e ( C ) = 1 k &Sigma; 1 k m e ( P , E i ) + 1 i * j &Sigma; 1 j &Sigma; 1 i m e ( C i , E j ) - - - ( 9 )
其中,M表示综合恶意度,包含了三个评价层次的综合效果,文件综合恶意度的计算公式如10所示。
M=m'seq+m'e       (10)
(6)综合恶意度判定。计算综合恶意度M,判定综合恶意度计算值是否超过设定阈值ε,若超过,则判定检测文件为恶意,并根据恶意度的高低,确定文件的风险等级。
本发明不仅考虑了行为属性操作和操作对象的关系,同时考虑的行为属性主体操作权限的问题,还把行为事件序列的前后关联顺序纳入了考量范围内。对于多进程或者多组件的程序行为检测,我们把子进程和其组件的行为也累加在对文件的安全性评估中,达到综合评价文件的恶意度的目的。
本发明的基于虚拟机内外视图交叉比对恶意代码行为检测系统,包括虚拟机控制器、虚拟机检测器、综合分析器和报表管理器,其中,虚拟机控制器,用于启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并控制虚拟机检测器;虚拟机检测器,用于在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;综合分析器,用于负责对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析改恶意代码的恶意行为。
其中,虚拟机检测器包括系统信息收集器和虚拟机监视器,其中,系统信息收集器,用于当被测程序在虚拟机内部运行时,负责收集被测代码对系统所作修改的信息;其中,所述信息包括:文件信息、注册表信息、进程信息和网络活动信息;虚拟机监视器,用于当被测程序在虚拟机内部运行时,在虚拟机外部负责监控收集虚拟机内存视图信息。
其中,虚拟机监视器监控收集虚拟机内存视图信息包括进程信息、注册表信息、网络活动信息、SSDT HOOK信息、InlineHOOK信息、驱动隐藏信息和模块隐藏信息。
另外,综合分析器,用于进行信息的收集、分类和处理,包括实现对虚拟机外部记录的内存信息和虚拟机内部记录的信息进行统计和分析。
此外,还进一步包括文件提交模块,用于通过一个Web页面实现用户对恶意代码的提交,同时把提交的代码放入分析目录。
综上所述,依照本发明的基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统,提出基于虚拟机内外视图交叉比对的恶意代码行为检测系统,不仅考虑了行为属性操作和操作对象的关系,同时考虑的行为属性主体操作权限的问题,还把行为事件序列的前后关联顺序纳入了考量范围内。对于多进程或者多组件的程序行为检测,把子进程和其组件的行为也累加在对文件的安全性评估中,达到综合评价文件的恶意度的目的。
以上是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。

Claims (10)

1.一种基于虚拟机内外视图交叉比对恶意代码行为检测方法,其特征在于,包括:虚拟机控制器启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并对虚拟机检测器进行控制;虚拟机检测器在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;综合分析器对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析改恶意代码的恶意行为。
2.如权利要求1所述的基于虚拟机内外视图交叉比对恶意代码行为检测方法,其特征在于,具体包括下列步骤:
步骤100:服务器接受用户提交的恶意代码,并将其保存到本地未检测的目录;
步骤200:系统监控到未检测文件目录不为空,则启动虚拟机进程,待虚拟机启动完毕,上传未检测文件样本;同时启动虚拟机监视器,监控虚拟机内存运行的信息;
步骤300:当虚拟机启动完毕,先创建一个进程,将系统信息收集单元加载起来,同时加载虚拟机监视器,当所有加载程序加载完毕,然后运行样本;
步骤400:在执行完毕后,综合分析器根据虚拟机检测器发送的分析信息分析操作的恶意等级。
3.如权利要求1所述的基于虚拟机内外视图交叉比对恶意代码行为检测方法,其特征在于,在步骤400之后,进一步包括步骤:
当样本在检测过程中出现超时等待情况,则立即结束目标进程;而检测结果文件则继续发给综合分析器以方便结果报表文件的生成。
4.如权利要求3所述的基于虚拟机内外视图交叉比对恶意代码行为检测方法,其特征在于,综合分析器对系统数据处理后进行分析,包括:
首先得到根据时间排序的行为事件序列;
建立执行体的上下文关系,完成域的划分;划分后的行为序列为P::{E1,E2,E8},C1::{E3,E4},C2::{E5,E6},C3::{E7};其中,P表示父进程或者主体文件,{Ci}表示子进程或者其主体文件的组件文件;
从P开始对每个域中的行为事件序列与特征库中序列模式进行匹配,保存记录匹配项的支持度μs
对于未匹配的节点继续进行行为属性的匹配,依次提取行为事件中的叶子节点操作元素Op与对象元素Ob,查询数据库匹配关联规则,对于匹配行为属性关联规则,记录每一匹配项的支持度μa行为操作和行为操作对象;
计算匹配项的序列恶意度、行为属性关联恶意度和上下文恶意度;
计算综合恶意度M,判定综合恶意度计算值是否超过设定阈值ε,若超过,则判定检测文件为恶意,并根据恶意度的高低,确定文件的风险等级。
5.如权利要求4所述的基于虚拟机内外视图交叉比对恶意代码行为检测方法,其特征在于,在计算匹配项的序列恶意度、行为属性关联恶意度和上下文恶意度时,Mseq为序列恶意度,每一条匹配的序列恶意因子通过该条序列规则在特征库中的支持度μs来表征,其中,Mseq根据下式得到:
Mseq(Si)=μS(Si);
Me表示行为属性恶意度,每一条匹配的行为属性的恶意因子通过该规则在特征库中的支持度μa来表征,其中,Me通过下式得到:
Me(Ei)=μa(Ei);
Mc是上下文恶意度,Mc通过下式得到:
Mc=Wi=(WSi*WOi*WPi),
其中,WSi是主体属性恶意度权重;WOi是客体属性恶意度权重;WPi为操作属性恶意度权重。
6.一种基于虚拟机内外视图交叉比对恶意代码行为检测系统,其特征在于,包括虚拟机控制器、虚拟机检测器、综合分析器和报表管理器,其中,
虚拟机控制器,用于启动虚拟机检测器,将分析目录的恶意代码发送给虚拟机检测器,并控制虚拟机检测器;
虚拟机检测器,用于在运行恶意代码的同时,监视虚拟机内存的变化,同时记录运行痕迹,并形成原始报表,当原始报表生成完毕后,再将该报表发送到综合分析器;
综合分析器,用于负责对这些报表记录的恶意序列行为,综合分析行为事件属性元素间的关系以及行为上下文关系分析改恶意代码的恶意行为。
7.如权利要求6所述的检测系统,其特征在于,所述虚拟机检测器包括系统信息收集器和虚拟机监视器,其中,
系统信息收集器,用于当被测程序在虚拟机内部运行时,负责收集被测代码对系统所作修改的信息;其中,所述信息包括:文件信息、注册表信息、进程信息和网络活动信息;
虚拟机监视器,用于当被测程序在虚拟机内部运行时,在虚拟机外部负责监控收集虚拟机内存视图信息。
8.如权利要求6所述的检测系统,其特征在于,虚拟机监视器监控收集虚拟机内存视图信息包括进程信息、注册表信息、网络活动信息、系统服务描述表SSDT HOOK信息、内联函数钩子InlineHOOK信息、驱动隐藏信息和模块隐藏信息。
9.如权利要求6所述的检测系统,其特征在于,所述综合分析器,用于进行信息的收集、分类和处理,包括实现对虚拟机外部记录的内存信息和虚拟机内部记录的信息进行统计和分析。
10.如权利要求6所述的检测系统,其特征在于,进一步包括文件提交模块,用于通过一个Web页面实现用户对恶意代码的提交,同时把提交的代码放入分析目录。
CN201210185449.0A 2012-06-07 2012-06-07 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统 Active CN102750475B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210185449.0A CN102750475B (zh) 2012-06-07 2012-06-07 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210185449.0A CN102750475B (zh) 2012-06-07 2012-06-07 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统

Publications (2)

Publication Number Publication Date
CN102750475A true CN102750475A (zh) 2012-10-24
CN102750475B CN102750475B (zh) 2017-08-15

Family

ID=47030648

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210185449.0A Active CN102750475B (zh) 2012-06-07 2012-06-07 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统

Country Status (1)

Country Link
CN (1) CN102750475B (zh)

Cited By (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902897A (zh) * 2012-12-26 2014-07-02 腾讯科技(深圳)有限公司 计算机病毒的判别方法及系统
RU2522019C1 (ru) * 2012-12-25 2014-07-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
RU2535175C2 (ru) * 2012-12-25 2014-12-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного программного обеспечения путем создания изолированной среды
CN106033516A (zh) * 2015-03-18 2016-10-19 中国移动通信集团陕西有限公司 一种检测终端源代码安全的方法、装置及系统
CN106055976A (zh) * 2016-05-16 2016-10-26 杭州华三通信技术有限公司 文件检测方法及沙箱控制器
CN106130959A (zh) * 2016-06-12 2016-11-16 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106650426A (zh) * 2016-12-09 2017-05-10 哈尔滨安天科技股份有限公司 一种动态提取可执行文件内存映像的方法及系统
WO2017193845A1 (zh) * 2016-05-10 2017-11-16 华为技术有限公司 虚拟网络功能的审计方法和装置
CN107851155A (zh) * 2015-07-24 2018-03-27 比特梵德知识产权管理有限公司 用于跨越多个软件实体跟踪恶意行为的系统及方法
CN108197464A (zh) * 2017-12-25 2018-06-22 中国科学院信息工程研究所 一种面向云环境的环境敏感型恶意软件分析检测方法和系统
CN108399332A (zh) * 2017-02-08 2018-08-14 卡巴斯基实验室股份制公司 在虚拟机中针对恶意性对文件进行分析的系统和方法
CN108446160A (zh) * 2018-01-29 2018-08-24 中国电子科技网络信息安全有限公司 一种虚拟机隐藏进程检测方法及系统
CN108469984A (zh) * 2018-04-17 2018-08-31 哈尔滨工业大学 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法
CN109445877A (zh) * 2018-09-19 2019-03-08 珠海金山网络游戏科技有限公司 一种检测游戏服务器多线程使用同一虚拟机的方法
CN109495513A (zh) * 2018-12-29 2019-03-19 极客信安(北京)科技有限公司 无监督的加密恶意流量检测方法、装置、设备及介质
CN109871691A (zh) * 2018-06-26 2019-06-11 360企业安全技术(珠海)有限公司 基于权限的进程管理方法、系统、设备及可读存储介质
CN110362994A (zh) * 2018-03-26 2019-10-22 华为技术有限公司 恶意文件的检测方法、设备和系统
CN110837641A (zh) * 2019-11-13 2020-02-25 电子科技大学广东电子信息工程研究院 一种基于内存分析的恶意软件检测方法及检测系统
CN110933105A (zh) * 2019-12-13 2020-03-27 中国电子科技网络信息安全有限公司 一种Web攻击检测方法、系统、介质和设备
CN111143839A (zh) * 2019-12-30 2020-05-12 厦门服云信息科技有限公司 一种基于虚拟化行为分析技术的恶意代码检测方法及装置
CN111522699A (zh) * 2020-04-14 2020-08-11 杭州米加科技股份有限公司 针对vmp指令引发目标内存变化的检测方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944167A (zh) * 2010-09-29 2011-01-12 中国科学院计算技术研究所 识别恶意程序的方法及系统
CN102034050A (zh) * 2011-01-25 2011-04-27 四川大学 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101944167A (zh) * 2010-09-29 2011-01-12 中国科学院计算技术研究所 识别恶意程序的方法及系统
CN102034050A (zh) * 2011-01-25 2011-04-27 四川大学 基于虚拟机和敏感Native API调用感知的恶意软件动态检测方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
刘巍伟等: "一种基于综合行为特征的恶意代码识别方法", 《电子学报》 *
李晔: "基于系统虚拟化技术的内核态rootkit检测", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
白光冬等: "一种基于交叉视图的windows rootkit检测方法", 《计算机科学》 *
陈莉等: "基于扩展攻击树的文件安全度评估研究", 《理论探究》 *

Cited By (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2522019C1 (ru) * 2012-12-25 2014-07-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения угроз в коде, исполняемом виртуальной машиной
RU2535175C2 (ru) * 2012-12-25 2014-12-10 Закрытое акционерное общество "Лаборатория Касперского" Система и способ обнаружения вредоносного программного обеспечения путем создания изолированной среды
US9098697B2 (en) 2012-12-25 2015-08-04 Kaspersky Lab Zao System and method for detecting malware using isolated environment
CN103902897A (zh) * 2012-12-26 2014-07-02 腾讯科技(深圳)有限公司 计算机病毒的判别方法及系统
CN106033516A (zh) * 2015-03-18 2016-10-19 中国移动通信集团陕西有限公司 一种检测终端源代码安全的方法、装置及系统
CN107851155A (zh) * 2015-07-24 2018-03-27 比特梵德知识产权管理有限公司 用于跨越多个软件实体跟踪恶意行为的系统及方法
US10990670B2 (en) 2016-05-10 2021-04-27 Huawei Technologies Co., Ltd. Virtual network function audit method and apparatus
WO2017193845A1 (zh) * 2016-05-10 2017-11-16 华为技术有限公司 虚拟网络功能的审计方法和装置
CN107360120A (zh) * 2016-05-10 2017-11-17 华为技术有限公司 虚拟网络功能的审计方法和装置
CN106055976B (zh) * 2016-05-16 2021-05-28 新华三技术有限公司 文件检测方法及沙箱控制器
CN106055976A (zh) * 2016-05-16 2016-10-26 杭州华三通信技术有限公司 文件检测方法及沙箱控制器
CN106130959B (zh) * 2016-06-12 2019-07-23 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106130959A (zh) * 2016-06-12 2016-11-16 微梦创科网络科技(中国)有限公司 恶意应用识别方法及装置
CN106650426A (zh) * 2016-12-09 2017-05-10 哈尔滨安天科技股份有限公司 一种动态提取可执行文件内存映像的方法及系统
CN108399332A (zh) * 2017-02-08 2018-08-14 卡巴斯基实验室股份制公司 在虚拟机中针对恶意性对文件进行分析的系统和方法
CN108399332B (zh) * 2017-02-08 2022-03-08 卡巴斯基实验室股份制公司 在虚拟机中针对恶意性对文件进行分析的系统和方法
CN108197464A (zh) * 2017-12-25 2018-06-22 中国科学院信息工程研究所 一种面向云环境的环境敏感型恶意软件分析检测方法和系统
CN108446160A (zh) * 2018-01-29 2018-08-24 中国电子科技网络信息安全有限公司 一种虚拟机隐藏进程检测方法及系统
CN110362994A (zh) * 2018-03-26 2019-10-22 华为技术有限公司 恶意文件的检测方法、设备和系统
US11836253B2 (en) 2018-03-26 2023-12-05 Huawei Technologies Co., Ltd. Malicious file detection method, device, and system
CN110362994B (zh) * 2018-03-26 2023-06-20 华为技术有限公司 恶意文件的检测方法、设备和系统
CN108469984A (zh) * 2018-04-17 2018-08-31 哈尔滨工业大学 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法
CN108469984B (zh) * 2018-04-17 2021-07-30 哈尔滨工业大学 一种基于虚拟机自省函数级虚拟机内核动态检测系统与方法
CN109871691B (zh) * 2018-06-26 2021-07-20 360企业安全技术(珠海)有限公司 基于权限的进程管理方法、系统、设备及可读存储介质
CN109871691A (zh) * 2018-06-26 2019-06-11 360企业安全技术(珠海)有限公司 基于权限的进程管理方法、系统、设备及可读存储介质
CN109445877B (zh) * 2018-09-19 2022-03-18 珠海金山网络游戏科技有限公司 一种检测游戏服务器多线程使用同一虚拟机的方法
CN109445877A (zh) * 2018-09-19 2019-03-08 珠海金山网络游戏科技有限公司 一种检测游戏服务器多线程使用同一虚拟机的方法
CN109495513A (zh) * 2018-12-29 2019-03-19 极客信安(北京)科技有限公司 无监督的加密恶意流量检测方法、装置、设备及介质
CN110837641A (zh) * 2019-11-13 2020-02-25 电子科技大学广东电子信息工程研究院 一种基于内存分析的恶意软件检测方法及检测系统
CN110933105B (zh) * 2019-12-13 2021-10-22 中国电子科技网络信息安全有限公司 一种Web攻击检测方法、系统、介质和设备
CN110933105A (zh) * 2019-12-13 2020-03-27 中国电子科技网络信息安全有限公司 一种Web攻击检测方法、系统、介质和设备
CN111143839A (zh) * 2019-12-30 2020-05-12 厦门服云信息科技有限公司 一种基于虚拟化行为分析技术的恶意代码检测方法及装置
CN111522699A (zh) * 2020-04-14 2020-08-11 杭州米加科技股份有限公司 针对vmp指令引发目标内存变化的检测方法
CN111522699B (zh) * 2020-04-14 2023-05-23 杭州斯凯数据科技集团有限公司 针对vmp指令引发目标内存变化的检测方法

Also Published As

Publication number Publication date
CN102750475B (zh) 2017-08-15

Similar Documents

Publication Publication Date Title
CN102750475A (zh) 基于虚拟机内外视图交叉比对恶意代码行为检测方法及系统
Li et al. Static analysis of android apps: A systematic literature review
Kirat et al. Malgene: Automatic extraction of malware analysis evasion signature
Wang et al. Exploring permission-induced risk in android applications for malicious application detection
Perl et al. Vccfinder: Finding potential vulnerabilities in open-source projects to assist code audits
Liu et al. A large-scale empirical study on vulnerability distribution within projects and the lessons learned
Alaeiyan et al. Analysis and classification of context-based malware behavior
Degott et al. Learning user interface element interactions
CN105893848A (zh) 一种基于代码行为相似度匹配的Android恶意应用程序防范方法
US20150143180A1 (en) Validating software characteristics
Gianazza et al. Puppetdroid: A user-centric ui exerciser for automatic dynamic analysis of similar android applications
Garg et al. Android security assessment: A review, taxonomy and research gap study
Shen et al. Localizing vulnerabilities statistically from one exploit
Nguyen et al. Detecting repackaged android applications using perceptual hashing
Zhao et al. Predicting performance anomalies in software systems at run-time
Almomani et al. Android applications scanning: The guide
Orso Monitoring, analysis, and testing of deployed software
Autili et al. Software engineering techniques for statically analyzing mobile apps: research trends, characteristics, and potential for industrial adoption
Aljedaani et al. LDA categorization of security bug reports in chromium projects
Pirch et al. Tagvet: Vetting malware tags using explainable machine learning
Scoccia et al. An empirical history of permission requests and mistakes in open source android apps
KR101830936B1 (ko) 데이터베이스와 애플리케이션을 위한 웹기반 성능개선 시스템
Liu et al. PF-Miner: A practical paired functions mining method for Android kernel in error paths
Shahzad Android malware detection using feature fusion and artificial data
Li et al. Assessing and optimizing the performance impact of the just-in-time configuration parameters-a case study on PyPy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant