一种恶意程序分析方法技术

技术编号:15640164 阅读:43 留言:0更新日期:2017-06-16 04:10
本发明专利技术提供一种恶意程序分析方法,该方法包括步骤:(1)将恶意程序样本库映射为一个以恶意程序基因为最小单元的恶意程序基因库;(2)利用恶意程序基因库进行恶意程序分析。本发明专利技术能够从底层有效语义刻画恶意程序的恶意行为,从而提高恶意程序分析和检测的匹配准确率;本发明专利技术能够有效克服代码层级的加壳、加密、多态等技术,从而能够有效应对未知恶意程序的快速动态增长。

【技术实现步骤摘要】
一种恶意程序分析方法
本专利技术涉及恶意程序检测领域,尤其是涉及一种恶意程序分析方法。
技术介绍
传统恶意程序分析方法,作为传统软件恶意行为检测技术的核心技术,主要包括程序恶意行为检测、文件特征和行为特征比对等方法,存在汇编指令级信息缺失,难以有效检测软件中隐藏的恶意行为,无法有效应对恶意程序不断采用新的混淆和隐藏技术。
技术实现思路
本专利技术的目的在于:针对现有技术存在的问题,提供一种恶意程序分析方法,解决传统方法难以有效检测软件中隐藏的恶意行为的问题。本专利技术的专利技术目的通过以下技术方案来实现:一种恶意程序分析方法,该方法包括步骤:(1)将恶意程序样本库映射为一个以恶意程序基因为最小单元的恶意程序基因库;(2)利用恶意程序基因库进行恶意程序分析。作为进一步的技术方案,将恶意程序样本库映射为恶意程序基因库的方法为:基于每个恶意程序运行时的汇编指令流,提取其中的关键汇编指令流片段,并建立关键汇编指令流片段与恶意行为的语义映射。作为进一步的技术方案,建立关键汇编指令流片段与恶意行为的语义映射的方法包括步骤:1)建立汇编指令流IS=I0,I1,...,IN中的任意汇编指令I进行抽象描述的映射关系I→ID;2)形式化恶意程序运行时的汇编指令流序列,将汇编指令流序列IS=I0,I1,...,IN映射为序列IDS=ID0,ID1,...,IDN;3)将恶意程序的样本集合中所有的恶意程序均执行步骤1)和步骤2),得到一个恶意程序的DNA行为序列集合,同时每个恶意程序DNA行为序列对应不同的恶意程序分类;4)针对每一类恶意程序DNA行为序列,提取每一类恶意程序DNA序列集合中K个相同的平凡子序列片段;5)计算得到最优的恶意程序基因信息。作为进一步的技术方案,步骤1)中,ID为六元组<C,OP,F,WR,d,t>,其中,C是描述指令操作码属性的三元组C=<c,m>,c表示指令的操作码,m表示指令的操作模式;OP是描述指令操作数的多元组OP=<n,op1,...,opn>,n表示指令的操作数个数,opi指向指令的第i个操作数;F是描述指令对标志寄存器置位的九元组F=<cf,pf,af,zf,sf,tf,if,df,of>,分别对应9个标志寄存器;WR是描述指令的内存和寄存器读写状态的三元组WR=<wrr,wrm,rm>,wrr表示指令是否有寄存器读写,wrm表示指令是否有内存读写,rm表示指令对内存读写的区间;d描述指令的循环嵌套深度;t描述指令在代码中位置的时间戳。作为进一步的技术方案,步骤2)中还包括步骤:定义两个ID间相似度SimID的计算公式:SimID=SimC*(λbSimB+λsSimS),根据六元组<C,OP,F,WR,d,t>,其中SimC表示两个ID间的指令语义相似度,即<C,OP>的相似度;SimB表示两个ID间的行为相似度,即<F,WR>的相似度,SimS表示两个ID间的结构相似度,即<d,t>的相似度;同时,公式需要满足如下要求:λb+λs=1,1≥SimC≥0,1≥SimB≥0,1≥SimS≥0。作为进一步的技术方案,步骤5)中,计算得到最优的恶意程序基因信息的公式:其中,参数πw表示阈值设定。作为进一步的技术方案,利用梯度下降法求解公式第n个最优化公式与现有技术相比,本专利技术具有以下优点:1、本专利技术能够从底层有效语义刻画恶意程序的恶意行为,从而提高恶意程序分析和检测的匹配准确率。2、本专利技术能够有效克服代码层级的加壳、加密、多态等技术,从而能够有效应对未知恶意程序的快速动态增长。具体实施方式下面结合具体实施例对本专利技术进行详细说明。实施例本专利技术是基于恶意程序运行时的汇编指令流,提取其中的关键汇编指令流片段,并建立其与恶意行为的语义映射。具体包括以下步骤:第一步,针对每一个汇编指令,设计将指令流IS=I0,I1,...,IN中的任意汇编指令I进行抽象描述的映射关系I→ID。其中,ID为六元组<C,OP,F,WR,d,t>。其中,C是描述指令操作码属性的三元组C=<c,m>,c表示指令的操作码,m表示指令的操作模式,包括读写赋值、逻辑运算、算术运算、控制跳转、函数调用等;OP是描述指令操作数的多元组OP=<n,op1,...,opn>,n表示指令的操作数个数(包括隐含操作数),opi指向指令的第i个操作数;F是描述指令对标志寄存器置位的九元组F=<cf,pf,af,zf,sf,tf,if,df,of>,分别对应9个标志寄存器;WR是描述指令的内存和寄存器读写状态的三元组WR=<wrr,wrm,rm>,wrr表示指令是否有寄存器读写,wrm表示指令是否有内存读写,rm表示指令对内存读写的区间,包括栈、堆、代码段等;d描述指令的循环嵌套深度;t描述指令在代码中位置的时间戳。第二步,形式化恶意程序运行时的汇编指令流序列。通过I→ID的映射关系,将指令流序列IS=I0,I1,...,IN映射为序列IDS=ID0,ID1,...,IDN,视为对程序从初始指令I0出发的指令执行路径的序列的抽象描述,抽象的正确性有语义包容来保证。IDS是通过六元组ID=<C,OP,F,WR,d,t>描述的汇编指令流序列,即IDS=ID0,ID1,...,IDN。为针对IDS进行序列比对,首先需要定义两个ID间相似度SimID的计算公式:SimID=SimC*(λbSimB+λsSimS)根据六元组<C,OP,F,WR,d,t>,其中SimC表示两个ID间的指令语义相似度,即<C,OP>的相似度;SimB表示两个ID间的行为相似度,即<F,WR>的相似度,SimS表示两个ID间的结构相似度,即<d,t>的相似度。由于指令操作码包含了最高程度的语义信息,因此Simc作为公式的乘法因子。同时,公式需要满足如下要求:λb+λs=1,1≥SimC≥0,1≥SimB≥0,1≥SimS≥0因此SimID满足1≥SimID≥0,描述了两个ID间的语义、行为和结构的归一化相似度。第三步,定义恶意程序的DNA行为序列集合。针对一个恶意程序的样本集合,我们可以通过提取每个恶意程序运行的汇编指令流序列IDS(即恶意程序的DNA行为序列)。因此,该恶意程序样本集合对应一个恶意程序的DNA行为序列集合,表示为IDS∈IN×Q,其中表示有N条恶意程序DNA行为序列,每个DNA序列长度为Q(DNA序列长度是不定长度的,为了建模方便,我们统一为相同长度)。同时每个恶意程序DNA行为序列对应不同的恶意程序分类,即该恶意程序样本集合有一个标签向量Y∈{1,...,C}N,其中恶意程序表示有C个分类。第四步,针对每一类恶意程序DNA行为序列,我们的目标是提取每一类恶意程序DNA序列集合中K个相同的平凡子序列片段,即提取一个长度为L(L<<Q)的恶意程序DNA序列片段,即恶意程序基因序列,表示为GK×L。不同长度的序列之间的距离采用如下公式计算:其中Mn,k表示第n个恶意程序DNA序列与第k个恶意程序基因的距离,下标表示中j(j=1,本文档来自技高网...

【技术保护点】
一种恶意程序分析方法,其特征在于,该方法包括步骤:(1)将恶意程序样本库映射为一个以恶意程序基因为最小单元的恶意程序基因库;(2)利用恶意程序基因库进行恶意程序分析。

【技术特征摘要】
1.一种恶意程序分析方法,其特征在于,该方法包括步骤:(1)将恶意程序样本库映射为一个以恶意程序基因为最小单元的恶意程序基因库;(2)利用恶意程序基因库进行恶意程序分析。2.根据权利要求1所述的一种恶意程序分析方法,其特征在于,将恶意程序样本库映射为恶意程序基因库的方法为:基于每个恶意程序运行时的汇编指令流,提取其中的关键汇编指令流片段,并建立关键汇编指令流片段与恶意行为的语义映射。3.根据权利要求2所述的一种恶意程序分析方法,其特征在于,建立关键汇编指令流片段与恶意行为的语义映射的方法包括步骤:1)建立汇编指令流IS=I0,I1,...,IN中的任意汇编指令I进行抽象描述的映射关系I→ID;2)形式化恶意程序运行时的汇编指令流序列,将汇编指令流序列IS=I0,I1,...,IN映射为序列IDS=ID0,ID1,...,IDN;3)将恶意程序的样本集合中所有的恶意程序均执行步骤1)和步骤2),得到一个恶意程序的DNA行为序列集合,同时每个恶意程序DNA行为序列对应不同的恶意程序分类;4)针对每一类恶意程序DNA行为序列,提取每一类恶意程序DNA序列集合中K个相同的平凡子序列片段;5)计算得到最优的恶意程序基因信息。4.根据权利要求3所述的一种恶意程序分析方法,其特征在于,步骤1)中,ID为六元组<C,OP,F,WR,d,t>,其中,C是描述指令操作码属性的三元组C=<c,m>,c表示指令的操作码,m表示指令的操作模式;OP是描述指令操作数的多元组OP=<n,op1,...,opn>...

【专利技术属性】
技术研发人员:丁建伟陈周国赵越郭宇斌苏宏
申请(专利权)人:中国电子科技集团公司第三十研究所
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1