多类软件本体的恶意软件语义描述模型
2021-11-22唐成华侯梦迪高庆泽强保华2
唐成华,侯梦迪,高庆泽,强保华2,
1(桂林电子科技大学 广西可信软件重点实验室,广西 桂林 541004)
2(广西云计算与大数据协同创新中心,广西 桂林 541004)
3(广西密码学与信息安全重点实验室,广西 桂林 541004)
1 引 言
恶意软件是网络和信息安全的主要威胁,对网络信息技术应用带来极大的困扰.随着代码混淆技术的发展和使用,恶意软件的行为变得更加复杂,增加了恶意软件被检测的难度.软件行为在代码混淆前后具有一致性,对恶意软件进行语义描述,采用形式化方法表示软件行为可以更直观地展现出软件代码的目的,有利于提高恶意软件的检测准确率.
由于逻辑语言在表达能力、灵活性和语义完整性上具有先天优势,将描述逻辑引入软件体系、状态特征等方面已是研究热点.基于传统时序逻辑的语义描述方法多是具有状态基结构属性,难以描述语义动态效应或指针程序的语义性质,而基于霍尔逻辑的扩展系统虽然推理性好,但仍属于一阶逻辑的范畴,表达能力依旧欠缺.因此,需要进行高阶逻辑的扩展,以达到语义过程描述的动态效应过程.Delbianco等[1]基于高阶分离逻辑建立了一种对象线性化推理方法,能接受线性化点的动态特征及其修改,实现分离逻辑中指针更新到线性化点时间位置修改的动态模拟.Mario等[2]基于动态逻辑引入某种时序的模态算子,属于动态规约和行为推理的范畴,但通常不具备描述静态结构属性的能力.而采用约束时序逻辑通过不同形式的约束指标可以实现系统属性描述,但存在诸如区间约束逻辑[3]的上下文作用格之间的有效性问题,时间约束逻辑[4]普通存在不良计算而容易导致语义丢失.
描述逻辑是语义网及本体构建领域高层设计的通用语言和体系框架,并将本体看作一个逻辑理论[5].本体可用来定义相关领域知识的基本概念,并能用形式化方式为同领域内的关系给出明确的定义,近年来在语义描述领域得到广泛应用.Chen等[6]从语义本体维度对物联网架构进行语义描述,在本体的基础上对物联网系统资源的自动分类和故障诊断,提高了架构的安全性.Karinne等[7]通过语义表示来获得语义活动的本质,从人的运动和物体的性质来获得有意义的语义描述,并且所获得的语义规则可以有效地提高基于本体的知识表示的动态增长,在人机交互系统中实现语义的提取和转换.唐爽等[8]基于本体模型的语义表达和推理能力,将领域知识注入智能决策系统中的数据映射,从而优化数据获取的流程,使普通用户脱离数据库的实际存储和操纵细节,这种结合用户熟悉的业务知识及其在本体动态实体中的映射,使得查询过程具备更强的可用性和表达能力.刘畅等[9]针对实时系统设计中,领域内抽象模型转换到可执行的实时软件源代码的过程中的语义约束性问题,在构造基于知识实体的本体属性模型基础上,采用图数据库技术实现了具有严格语义定义的实时语义知识图谱.模块化的本体在语义映射的描述、本体间知识的传播等方面更具优势,本体间元素的映射和推理是模块化本体的核心问题,赵晓非等[10]基于建模异构元素之间的映射并进行推理,提出了将动态描述逻辑作为局部本体语言知识库转换为单一描述逻辑知识库的算法,提高了本体语义描述和转换的能力.Pattipati等[11]建立了一个基于本体的程序静态跟踪分析框架,其贡献在于计算软件语义信息并将静态跟踪存储为语义三元组.软件语义分析过程本质上是软件创造过程的再现,体现了对软件开发人员与软件行为一致性的理解,即使是源代码中的标识符,对其命名模式和词性注释序列的正确分析,也是准确理解软件语义过程的关键[12].为了寻求构建相关本体的最佳方法,赋予网络交互软件以语义授权,并使其内部交换的数据具有机器可处理性,Bouchra等[13]提出一种面向社交网络语义分析终端的本体构建方法,通过软件UML类图中收集的数据来构建其OWL本体,具有明确关系的语义能使节点更加集中和更有影响力.基于软件语义的恶意软件检测方法已经得到相应的应用,Bhandari等[14]提出一种基于语义感知的动态恶意软件检测工具,通过封装Android应用程序的语义解决检测过程中恶意软件注入无关代码影响检测效果的问题,可以有效检测使用代码注入逃避技术的恶意软件.Ding等[15]将本体技术应用于恶意软件领域,基于软件行为语义构建恶意软件行为本体,使用数据挖掘方法Apriori算法提取同属一个家族的恶意软件行为特征,根据恶意软件样本的行为特征对恶意行为使用本体推理方法对恶意软件进行分类.
总的来说,针对传统描述逻辑在恶意软件语义描述中存在的表达能力欠缺的问题,基于本体的语义描述方法在保证语义描述能力的同时又具有相应的推理能力,本文借鉴于此提出一种基于本体的恶意软件语义描述生成模型,从软件的行为和结构特征分析入手,基于动态分析、软件结构知识和软件行为等多角度刻画软件的语义知识;用本体方法研究软件的语义逻辑形式,根据面向对象的知识表示方法确定多类软件的语义原语、句法和核心类;弄清软件本体语义的概念类关系,通过从恶意软件行为本体和恶意软件领域本体中提取相关知识,建立完备可推理的软件语义描述模型.
2 基本概念
通常,可以用Ontology={α,θ,ε,δ,Ω}来表示本体的结构.其中,α作为类,具有α=[C1∪C2∪…∪Cn]形式,C是具有相同特性的对象;θ表示关系的集合,关系主要是对本体系统结构的描述,通过对类之间关系的描述表现本体的层次结构;ε为属性集合,属性是对数据属性、对象属性和约束条件的描述,是类之间关系描述的一个补充;δ是公理,是在概念之间建立的规则、原理或定律,是对客观存在事实的陈述;Ω是实例,作为类的具体实现对象.
领域本体,是描述特定领域知识的一种特殊本体,是针对某一个领域的概念和概念之间关系、领域特性等进行形式化描述的产物,其优势在于不局限于某一个实体,而是强调对领域概念的关注.
定义1.软件语义描述本体用以下形式来表示:
MSO=CDO∪MDO∪MBO.其中,MSO(software semantic description ontology)表示软件语义描述本体;CDO(software class diagram ontology)为软件类图本体;MDO(malicious domain ontology)为恶意软件领域本体;MBO(malicious behavior ontology)为恶意软件行为本体.
软件语义描述本体是在面向对象知识表示的基础上结合软件行为信息和操作对象信息对软件语义进行描述,是通过对软件行为和目标对象的形式化的知识描述,为软件行为语义的表达提供表示方法.
定义2.系统调用(systemcall)是程序与操作系统互动的接口,程序获得操作系统底层服务和对系统资源的操作均是通过系统调用实现,其中对系统安全状态造成改变的系统调用称为关键系统调用(Criticalsystemcall).
定义3.恶意软件领域本体MDO是软件领域知识的集合,由Cmalware_type、Csys_component和Pstatus组成.其中,Cmalware_type是对恶意软件类型的描述,根据恶意软件目的不同定义恶意软件的类型,比如勒索软件、间谍软件、广告软件、混合型恶意软件等;Csys_component是操作系统中基本组成部分的分类,主要是文件管理(针对dll文件、exe文件、目录文件等)、进程管理、网络接口和系统调用等;Pstatus是对Csys_component中对象的属性描述,包括位置信息和状态信息,其中位置信息决定操作对象是否受到系统保护或者是否为关键系统文件,而状态信息则是对操作对象状态的约束表现.
定义4.恶意软件行为本体可以表示为:
MBO=Cmalware∪Csys_target∪Pbehavior.其中,Cmalware是根据行为特征对恶意软件进行的分类,包括病毒、木马、后门、蠕虫等几类;Csys_target表示恶意软件的操作对象,根据关键系统调用将操作对象分为文件、进程、网络、注册表等几类;Pbehevior是恶意软件的关键系统调用的操作.
本文采用基于关键系统调用的恶意软件行为表示方法.软件执行过程中的系统调用可以由动词和名词组成的简单自然语言短语来表示,其中动词是软件行为的目的,名词则是被操作对象.恶意软件行为的形式化描述使用三元组表示
定义5.恶意软件和系统组成对象的关系,在本体中以对象属性(Property)来表示.每一个属性都有相应的定义域(Domain)和值域(Range),定义域表示使用该属性充当主语个体的范围,值域表示该属性的作用范围.根据操作对象的不同分为文件操作集、进程操作集、网络操作集等,操作集中的定义域只能是Cmalware中的概念信息,值域为Csys_target中的文件部分.
定义6.由软件类图转换而来的软件类图本体CDO继承类图的功能特性,通过本体描述软件结构和各功能组件之间的关系,如果某一个组件特定于相关领域本体,可以通过本体关联链接到相关领域本体.
作为一种概念模型,类图[13]是对面向对象知识的可视化表示,利用类图设计可以更好的描述和反映软件的实际模型.在软件开发和维护过程中类图可以从静态的角度展示软件系统的整体设计和功能的实现.因为类图和OWLDL本体都可以使用一阶谓词逻辑表示,所以类图在转换为本体方面具有天然优势.
定义7.本体语义相似度,在本体知识提取的过程中需要从源本体中提取相关的概念和属性合并到语义描述本体中,该过程需要比较索引和本体知识的相似度,使用基于SA_BP算法的本体概念语义相似度综合计算方法[16]计算索引和相关概念及属性的相似度:
simattr(a,b)=α×sim(aname,bname)+β×sim(atype,btype)+γ×sim(avalue,bvalue)
(1)
式(1)中simattr(a,b)表示概念信息a和b的相似度,sim(aname,bname)表示概念a和b中属性名称的相似度,sim(atype,btype)表示概念a和b中概念数据类型的相似度,sim(avalue,bvalue)概念a和b中属性值的相似度.α、β、γ表示相似度的权重,其中1=α+β+γ,根据训练数据集对相似度计算模型进行训练,通过模型训练自动设置权重值.
定义8.基于SWRL规则和OWL语言的本体对准,将多类本体之间相同的概念和属性进行关联和链接,以增加本体推理能力和描述能力.
在OWL中可以使用诸如owl:equivalentClass和owl:equivalentProperty等来对多个本体中相关的概念和属性进行关联,但实际上在本体对准中具有这种直接对应关系的占比很少,因此采用SWRL中的内置规则对本体之间的属性进行关联.例如MDO中的Csys_component和MBO中的Csys_target都是对软件组成部分的描述,使用owl:equivalentClass建立相关概念之间的关联,然后使用SWRL规则将MBO和MDO中相关属性格式化为适用于另一个本体的通用形式以完成本体对准.
定义9.根据恶意软件对系统资源操作的独有特征,定义恶意软件行为的关键系统调用序列,构成恶意行为推理规则,部分推理规则如表1所示.规则中每个小括号代表一个函数的属性或者一个完整的行为;每一个规则都由多个小括号组成,推理结果是对多个小括号中规则表示的合取,在规则中的推理结果以例如“(?x rdf:type Hight)”的形式来描述,其含义表示函数x危险系数属于high等级.
表1 恶意行为推理规则
3 基于多类软件本体的恶意软件语义描述模型
选择基于软件行为和本体进行软件语义描述,对软件行为的形式化描述以便更直观展现出软件的行为属性,使用动态分析提取软件行为语义,将软件行为信息和结构特征相结合,从多角度刻画软件语义的本体表示,完成对软件语义的完备描述;应用本体于软件行为的描述,可以将软件行为以机器可读的方式表现出来,且可以进行推理和验证.
基于多类软件本体的语义描述模型如图1所示,根据软件行为的形式化描述,以类图本体为基本框架,恶意软件行为本体和恶意软件领域本体为补充(称为多类软件本体),基于以上多种类型软件本体生成对软件语义的描述.首先将软件的类图转换为相应的OWL本体,将面向对象的知识表示方法与本体相结合,类图转换为本体以后可以完整的保留类之间的关系和属性;然后使用动态分析提取软件的关键系统调用序列,使用调用序列中的关键部分生成软件行为索引信息;最后根据软件行为索引信息从领域本体和行为本体中提取相关概念和属性合并生成软件语义描述本体.
图1 基于多类软件本体的语义描述模型
3.1 基于本体的恶意软件行为描述
恶意软件的行为特征,主要体现在其主要操作对象是操作系统中的文件、进程、网络和注册表等,因此,针对恶意软件不同的操作对象,定义以下4个行为集:
1)文件操作行为集:FA(FileAction)={create_file;delete_file;read_file;write_file;rename_file;load_file;…}
2)进程操作行为集:PA(ProcessAction)={create_process;kill_process}
3)网络行为操作集:NA(NetworkAction)={listen_port;connect_port;bind_port;DNS_query;send_to;receive_from;…}
4)注册表行为集:RA(RegistryAction)={open_Key;close_Key;create_Key;delete_Key;set_Key;monitor _Key;…}
各行为集是对相应目标执行操作的行为集合.根据定义4,简单的恶意软件行为使用一个三元组
例如,exampleFunc类执行创建进程、连接端口、读取文件和发送信息操作可描述为:
其中,create_process(PA,connect_port&send_to(NA,read_file(FA.
使用OWL语言对软件行为进行描述,软件行为在本体中作为类的ObjectProperty存储,例如create_file在本体中表示为:
函数的行为集作为类的实例存储,exampleFunc的行为集作为类的实例使用OWL语言表示为:
3.2 类图转换为本体知识库
现有的UML建模软件都具有从源代码生成相应的UML类图的功能,例如:MS Visio 2010、ArgoUML和Visual Paradigm等都可以将源代码转换成可视化类图形式.类图转换为本体的过程如图2所示,类图的类、接口、属性、关系等信息转换为OWL中相似或者等价的概念,对于函数的多态现象只保留一个函数,类图中类之间的层次关系被完整的保留下来,例如owl:equivalentClass表示两个类之间的继承关系,类中成员变量转换为本体类的DataProperty,类中的函数转换为本体类的子类,在本体中用subClassOf表示.
图2 类图转换为本体
3.3 基于多类本体的语义描述生成方法
在3.2节中从UML类图中转换得到的信息主要展示面向对象类之间的关系和属性,缺乏对类的功能和行为特性的描述,为了丰富软件的行为语义信息,对软件执行动态分析提取软件的运行过程中的系统调用序列,将系统调用信息作为索引从恶意软件领域本体和恶意软件行为本体中提取语义相似度最高的概念或属性,生成对软件行为的描述.
因为恶意软件代码中的操作实质上是一个系统调用序列,其中每一个函数调用以后对系统状态产生改变的有效操作都是通过一些关键系统调用序列实现的.本文在软件特征提取过程中,关注函数的关键系统调用序列,对提取到的系统调用序列进行分割处理,截取从函数调用开始到结束调用过程中的关键系统调用序列作为知识提取算法的索引使用.
算法1根据索引信息从恶意软件行为本体和恶意软件领域本体中提取相关知识完成从软件结构和软件行为角度对软件语义的描述.为了提高知识提取的准确度,算法根据公式(1)计算索引和本体知识之间的综合相似度匹配最优.
首先是读取json文件中的软件行为预处理信息,json文件中将软件行为信息按照定义4中行为三元组的形式存放,主语为func函数名;宾语表示func函数的操作对象,是对象索引信息;谓语表示函数的行为,是行为索引信息.
其次根据索引信息先在类图本体中查找是否存在和索引信息语义相似度大于0.7的信息,如果存在则标记语义描述本体中的相似信息,直接进行下一组索引信息查询,否则将行为索引信息和行为本体中的信息比较,对象索引信息和领域本体中的信息相比较,根据比较的结果标记相似度最高的信息.
然后使用OWLAPI中的Merge函数将标记的相关信息合并到语义描述本体中.最后根据索引信息在类图本体中生成函数行为的本体描述,语义描述信息作为类的实例存储在类图本体中,类图本体作为语义描述本体输出.
算法1.基于多类本体软件语义描述生成算法
输入:MBO(恶意软件行为本体)、MDO(恶意软件领域本体)、存储行为信息的json文件、CDO(软件类图本体)
输出:MSO软件语义描述本体
Begin {
1.N=json.ClassNum /*json文件里函数的个数*/
2.for i=0 to N do
3. J=json[i].class.behavior Num /*函数的行为个数*/
4. for j=0 to J do
5. if(simAttr(funcbehavior,CDO)>0.7)
/*若存在和索引相似的信息,则标记CDO中的信息,否则从源本体中查找相关信息.simAttr表示求相似度运算,funcbehavior表示函数的索引信息*/
6. j++
7. else{
8. AttrVerb=MarkSimMax(MBO,funcVerb)
/*标记MBO中相似度最高的行为信息,funcVerb表示索引中的行为信息*/
9. AttrNoun=MarkSimMax(MDO,funcNoun)
/*标记MDO中相似度最高的对象信息,funcNoun表示索引中的对象信息*/
10.Merge(CDO,AttrVerb,AttrNoun)}
/*提取标记信息到CDO中,AttrVerb表示标记的行为信息,AttrNoun表示标记的对象信息*/
11. endif
12. end for
13.end for
14.for n=0 toNdo
15. ConstructionInstance(json.class[n].behavior,CDO)
/*根据索引信息创建函数行为的实例用于描述软件行为*/
16.end for
17.OtologyChange(CDO,MSO) /*CDO作为MSO输出*/
}End
算法1基于OWL API实现,时间复杂度为O(N2),其核心是相似度比较和标记部分,即MarkSimMax()函数的实现,MarkSimMax()函数基于公式(1)查找并标记与索引相似度最高的本体概念和属性.该算法根据软件行为的抽象描述从数据源本体中提取知识填充语言描述本体,在保证语义描述本体质量的同时,节省数据处理时间.
3.4 基于多类本体关联的混合推理
为了提高推理的准确性,本文使用基于多类本体的混合推理方法,使用SWRL规则将语义描述本体与恶意软件领域本体和恶意软件行为本体中相关的概念和属性相互关联,提高语义描述本体语义的完备性和推理的可靠性,然后将关联后的本体与推理机绑定,使用恶意软件行为规则对软件行为进行推理,标记行为的危险系数.
算法2.基于多类本体关联的混合推理算法
输入:MBO(恶意软件行为本体)和MDO(恶意软件领域本体),MSO(语义描述本体)
输出:推理后的本体模型
Begin {
1.Ont=Ontology.CreateOntologyModel() /*创建模型*/
2.Ont.Load(ontomodel.read(“file loaction”)) /*加载本体*/
3.Stirngrule
4.ListRule_list=newarraylist()
5.While(rule=readline(“rule_loction”)!=null)/*读取推理规则*/
6. Rule_list.add(s)
7.Ontology.Propertyprop=ont.CreatProperty()
8.Ontology.objectobj=ont.Createobject()
9.Ont.add(prop,obj) /*本体关联*/
10.GenericRuleReason reason=(GenericRuleRea)GenericRuleReasonFactory.Instance().create(null); /*创建推理机*/
11.reasoner.setRules(Rule.parseRules(Rule_list))
/*加载推理规则到推理机*/
12.reasoner.setMode(GenericRuleReasoner.HYBRID)
/*设置推理模式*/
13.rea=reason.bindScheam /*将推理机绑定到模型*/
14.InfModelinfModel=modelFactory.createInfModel(reason,ont)
/*创建推理关系数据模型*/
}End
算法2在多类本体相互关联的基础上基于jenaOntologyAPI实现对本体的混合推理,本体之间的相互关联可以从更多的维度对本体中的概念进行描述,提高本体知识描述的丰富度,与单一本体推理方法相比多类本体混合推理的结果具有更高准确度.
4 实验分析
4.1 实验环境
实验所用的机器配置为Inteli5-8500CPU系统为windows10操作系统,实验工具为protégé5.4、Eclipse与jena,编程语言为java-1.8.0_251.
4.2 实验数据及方法
采用恶意软件领域本体MDO[15]和恶意软件行为本体MBO[17]作为源本体,为软件行为描述提供相应的概念和属性知识数据集.其中MDO是恶意软件领域相关的概念合集;MBO是软件对系统资源访问的相关知识和概念集合.选取5个开源软件作为测试数据,其中4个恶意软件是Alina、Mirai、Denroid和Carberp,正常软件为FTP下载器.
为了验证本文基于多类本体软件语义描述生成算法(算法1)的效果,采用人工方法(MethodA)和本体自动生成算法(MethordB)[18]与本文算法进行对比.使用基于多类本体关联的混合推理算法(算法2)对软件语义描述本体进行推理,标记恶意软件行为,采用基于本体的恶意软件分类算法(AlgorithmA)[15]作为对比.实验流程如图3所示.
图3 实验整体流程
Step 1.使用多类软件语义描述方法处理预处理数据生成软件行为描述本体;
Step 2.根据恶意软件行为的特征定义恶意软件行为规则;
Step 3.将软件行为描述本体和推理规则导入jena推理机,导出推理后的OWL文件;
Step 4.Protégé OWLAPI提供的查询接口统计结果,根据推理的结果计算软件特征值.
4.3 本体生成质量对比分析
为了验证生成本体的有效性和生成效率,对MethodA、MethodB和本文的方法对生成本体的效果进行对比,其中MethodA是人工方法生成本体,MethodB是一种自动从文档中生成本体的方法.3种方法分别针对同一款恶意软件从软件的代码和文档中生成本体,从生成的概念覆盖率、属性覆盖率和生成消耗时间等方面进行对比,其结果如图4、图5和表2所示.
表2 本体自动生成的消耗时间(s)
图4 概念覆盖率
图5 属性覆盖率
其中,概念覆盖率以α表示如公式(2)所示:
(2)
式中n表示生成的本体中概念和索引相同的个数,N表示生成本体的概念数.
属性覆盖率以φ表示如公式(3)所示:
(3)
式中R是自动构建本体中的属性个数,包括对象属性,P是索引中行为的个数.
由图4可知,本文方法与MethodB相比,在概念覆盖率方面整体较好,不过与人工方法相比仍有差距;根据图5,本文的方法在属性覆盖率方面效果较好,与人工生成方法相比整体比较接近,MethodB的效果最差.
在生成时间方面因为人工方法不具有对比性,所以只对比两个自动生成方法在本体生成过程中所消耗的时间,根据表2可知本文的方法和MethodB在使用相同的索引自动生成本体时所消耗的时间相比具有优势.
综上比较,本文提出的软件语义描述本体自动生成方法在生成本体质量上面与人工生成方法相比差距较小,但是在生成效率方面具有较明显优势.
4.4 基于本体特征值的恶意软件行为标记分析
恶意软件行为描述本体可以应用于恶意软件检测.根据恶意行为的主要特点制定本体推理规则,将本体推理规则绑定到推理机使用基于多类本体关联的混合推理算法(算法2)对恶意软件行为描述本体进行推理,标注恶意软件行为.针对行为危险程度的从高到低定义high、middle、low3个等级,各等级的权重不同,最后根据恶意软件行为标注的结果计算软件特征值.
设定3种恶意行为等级的权重,其中标记low为0.1,标记middle为0.3,标记high为0.7.软件特征值的计算公式如公式(4)所示:
(4)
其中,Q表示特征值,L、M、H分别代表恶意行为的3个等级,N表示未被标记的类,α为标记的权重,θ为相应函数的个数,特征值计算出具有恶意行为的类在所有类中所占的权重.对4.3节中生成的语义描述本体执行推理操作,对所测试的5个软件的代码行为的标记情况如表3所示.表4表示算法AlgorithmA对语义描述本体执行推理操作的分类情况.
表3 恶意软件行为标记
由表3和表4可知,因为算法2需要对本体进行关联后进行推理,所以在同等数据量的情况下和AlgorithmA相比推理消耗时间相对较长,但是算法2可以根据特征值判断软件的是否为恶意软件,而AlgorithmA只是通过恶意软件行为特征对恶意软件行为进行分类,分类结果只能表示恶意软件具有相应家族特征.使用算法2对软件进行检测,正常软件的特征值低于0.5,恶意软件的特征值均大于0.8.因此,基于本体特征值的恶意软件检测方法可以较好地识别出恶意软件和正常软件.
表4 恶意软件行为分类
5 结 论
本文提出一种基于多类本体的软件语义描述生成方法,通过软件类图和相关行为信息生成软件基于本体简单语义描述,然后根据软件行为信息使用知识提取合并算法从恶意软件行为本体和恶意软件领域本体中提取相关知识生成完整的软件语义描述本体.验证了本文的知识提取与合并算法生成的语义描述本体的质量和人工方法相比差距较小,而且生成效率较高;然后对软件语义描述本体执行推理操作标记软件的恶意行为,根据标记的结果计算特征值以判断软件是否为恶意软件,实验结果表明该方法在识别恶意软件方面有较好的效果.下一步将探索本体与软件控制流图相结合的语义描述方法,用本体方法和时序关系描述软件的执行过程,为本体在恶意软件检测中的应用提供新思路.