一种恶意代码检测方法、终端设备及存储介质技术

技术编号:27536085 阅读:12 留言:0更新日期:2021-03-03 11:22
本发明专利技术涉及一种恶意代码检测方法、终端设备及存储介质,该方法中包括:采集多个恶意家族的多个变种样本的可执行文件;针对每个变种样本,对其可执行文件进行预处理,以得到变种样本的权值矩阵;针对每个恶意家族,采用签名迭代算法,将恶意家族的多个变种样本的权值矩阵叠加生成恶意家族的权值矩阵;接收待检测可执行文件,并对其预处理得到待检测可执行文件的权值矩阵;计算待检测可执行文件与恶意家族的权值矩阵之间的相似度,当相似度大于阈值时,计算两者之间的偏移量,当偏移量落在偏移量范围内时,判定属于该恶意家族。本发明专利技术相对于传统的文法分析,提升了恶意代码静态检测的精确度。精确度。精确度。

【技术实现步骤摘要】
一种恶意代码检测方法、终端设备及存储介质


[0001]本专利技术涉及恶意代码检测领域,尤其涉及一种恶意代码检测方法、终端设备及存储介质。

技术介绍

[0002]当前恶意软件数量呈井喷式增长,但其中的大部分并非新生的恶意软件,而是在原始恶意家族的基础上进行一系列异构变换而产生的变种。在这些异构变换处理中,模糊化是较为常用的方法。模糊即是故意混淆代码,通过掩盖其目的或者它的逻辑来防止篡改,阻止逆向工程。代码模糊技术被大量应用于恶意代码中。通过对现有恶意代码进行修改,恶意代码的字节序列被模糊化,基于签名的原始静态检测技术越发难以满足反病毒检测工作。
[0003]目前传统的恶意代码分析方法分为静态分析和动态分析两种。动态分析是指在一个可控的环境内运行恶意代码,分析恶意代码与运行环境之间交互行为的方法。该方法通过比较环境在运行样本前后产生的变化,从多个方面给出样本的指令以及系统调用的描述来大致还原恶意代码实际功能。动态分析实质上就是运行程序,再根据各种寄存器、变量等的变化来描述其行为。用户可以直接对这些寄存器、变量进行观察,也可以使用一些辅助工具。这些辅助工具一般会在样本程序中加入部分代码来实现动态监视功能。静态分析方法是指不运行恶意程序而是通过文件结构进行分析的方法。一般而言,静态分析需要首先对可执行文件或源代码进行反汇编、反编译等方法进行处理,然后再做相应的分析。与动态分析相反,静态分析不编译运行程序,而是通过对程序源代码进行分析以发现其中的错误。静态分析一般是作为动态分析的补充来施行的。
[0004]程序的运行时间可能远超预期,如果每次分析都完整运行整个程序的成本过高,并且由于未对其进行静态分析,程序的不可预见性也大大提高。这些都是不利于动态分析的。在程序运行前尽可能多地分析程序的特征就显得很有必要。手工检测需要做大量重复冗余的操作,检测效果可能也并不尽如人意。由于有些分支条件在实际执行中极难满足,而使用静态分析方法可以了解恶意代码在执行中极难获取的分支细节,能够提炼出恶意代码的静态特征。另外,词法分析技术和二进制比对技术是静态检测中常用的两种专门针对软件代码审查的检测技术。这类针对代码审查的检测技术普遍具有简单高效的特点,但是只针对代码本身特征的检测并不能很好的检测出代码语义层级的缺陷,虽然可以对其中引入模式识别来加强检查特征的匹配类型,但这只能略微突出其检测的特征,实际检测效果的提升并不明显。

技术实现思路

[0005]为了解决上述问题,本专利技术提出了一种恶意代码检测方法、终端设备及存储介质。
[0006]具体方案如下:
[0007]一种恶意代码检测方法,包括以下步骤:
[0008]S1:采集多个恶意家族的多个变种样本的可执行文件;
[0009]S2:针对每个变种样本,对其可执行文件进行预处理,以得到变种样本的权值矩阵;
[0010]S3:针对每个恶意家族,采用签名迭代算法,将恶意家族的多个变种样本的权值矩阵叠加生成恶意家族的权值矩阵;
[0011]S4:接收待检测可执行文件,并对其预处理得到待检测可执行文件的权值矩阵;
[0012]S5:将待检测可执行文件的权值矩阵与每个恶意家族的权值矩阵进行对比,计算两者之间的相似度,当相似度大于阈值时,计算待检测可执行文件的权值矩阵与恶意家族的权值矩阵的偏移量,当偏移量落在由恶意家族的所有变种样本计算的恶意家族对应的偏移量范围内时,判定待检测可执行文件属于该恶意家族;当偏移量落在由恶意家族的所有变种样本计算的恶意家族对应的偏移量范围之外时,则判定待检测可执行文件不属于该恶意家族,继续与下一个恶意家族的权值矩阵进行对比。
[0013]进一步的,对可执行文件进行预处理的过程包括以下步骤:
[0014]S201:对可执行文件进行脱壳处理;
[0015]S202:将脱壳处理后的文件进行反汇编,得到可执行文件的汇编指令;
[0016]S203:提取汇编指令中的call语句,根据call语句中的操作数得到call语句包含的库函数调用集,同时根据call语句提取call语句包含的子函数的调用关系,得到子函数偏序集;
[0017]S204:将库函数调用集与子函数调用集进行合并后,得到可执行文件对应的权值矩阵。
[0018]进一步的,权值矩阵为函数的二元组映射,将函数内包含的所有类型和所有动作进行一一组合,得到多个函数对应的类型动作映射码,根据所有的类型动作映射码构建二维的权值矩阵,其中权值矩阵的行和列的个数均为所有的类型动作映射码的总数,权值矩阵中每个元素的值的计算公式为:
[0019]V
ij
=N
ij
/N
max
[0020]其中,V
ij
为权值矩阵中第i行第j列元素的值,N
ij
表示第i行的类型动作映射码对应的函数与第j列的类型动作映射码对应的函数组成的偏序对在可执行文件中出现的次数,N
max
表示可执行文件中包含的偏序对的总数。
[0021]进一步的,步骤S3中采用签名迭代算法生成恶意家族的权值矩阵的过程包括以下步骤:
[0022]S301:构建恶意家族的权值矩阵,并初始化设定恶意家族的权值矩阵中每个元素的值均为0,即V

ij
(0)=0;初始化设定变量k=1,样本的总数N;
[0023]S302:接收第k个样本的权值矩阵;
[0024]S303:将第k个样本的权值矩阵叠加至恶意家族的权值矩阵,对恶意家族的权值矩阵进行更新;
[0025]S304:判断k=N是否成立,如果是,输出恶意家族的权值矩阵,结束;否则,令k=k+1,返回S302。
[0026]进一步的,步骤S303中恶意家族的权值矩阵中各元素的更新公式为:
[0027]V

ij
(k)=V
ij
(k)*Θ+V

ij
(k-1)*(1-Θ)
[0028]其中,V

ij
(k)表示恶意家族的权值矩阵更新k次后的第i行第j列元素的值,V
ij
(k)表示第k个样本的权值矩阵的第i行第j列元素的值,Θ=1/(k+1)。
[0029]进一步的,步骤S5中相似度的计算采用图相似性比对算法。
[0030]进一步的,步骤S5中偏移量的计算公式为:
[0031][0032]其中,O表示待检测可执行文件与恶意家族的偏移量,V
ij(family)
表示恶意家族的权值矩阵中第i行第j列元素的值,V
ij(sample)
表示待检测可执行文件的权值矩阵中第i行第j列元素的值,M表示权值矩阵中行和列的总数。
[0033]进一步的,步骤S5中由恶意家族的所有变种样本计算的恶意家族对应的偏移量范围的方法为,计算恶意家族的每个变种样本与恶意家族的偏移量,将其中的最小值作为偏移量范围本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意代码检测方法,其特征在于,包括以下步骤:S1:采集多个恶意家族的多个变种样本的可执行文件;S2:针对每个变种样本,对其可执行文件进行预处理,以得到变种样本的权值矩阵;S3:针对每个恶意家族,采用签名迭代算法,将恶意家族的多个变种样本的权值矩阵叠加生成恶意家族的权值矩阵;S4:接收待检测可执行文件,并对其预处理得到待检测可执行文件的权值矩阵;S5:将待检测可执行文件的权值矩阵与每个恶意家族的权值矩阵进行对比,计算两者之间的相似度,当相似度大于阈值时,计算待检测可执行文件的权值矩阵与恶意家族的权值矩阵的偏移量,当偏移量落在由恶意家族的所有变种样本计算的恶意家族对应的偏移量范围内时,判定待检测可执行文件属于该恶意家族;当偏移量落在由恶意家族的所有变种样本计算的恶意家族对应的偏移量范围之外时,则判定待检测可执行文件不属于该恶意家族,继续与下一个恶意家族的权值矩阵进行对比。2.根据权利要求1所述的恶意代码检测方法,其特征在于:对可执行文件进行预处理的过程包括以下步骤:S201:对可执行文件进行脱壳处理;S202:将脱壳处理后的文件进行反汇编,得到可执行文件的汇编指令;S203:提取汇编指令中的call语句,根据call语句中的操作数得到call语句包含的库函数调用集,同时根据call语句提取call语句包含的子函数的调用关系,得到子函数偏序集;S204:将库函数调用集与子函数调用集进行合并后,得到可执行文件对应的权值矩阵。3.根据权利要求1所述的恶意代码检测方法,其特征在于:权值矩阵为函数的二元组映射,将函数内包含的所有类型和所有动作进行一一组合,得到多个函数对应的类型动作映射码,根据所有的类型动作映射码构建二维的权值矩阵,其中权值矩阵的行和列的个数均为所有的类型动作映射码的总数,权值矩阵中每个元素的值的计算公式为:V
ij
=N
ij
/N
max
其中,V
ij
为权值矩阵中第i行第j列元素的值,N
ij
表示第i行的类型动作映射码对应的函数与第j列的类型动作映射码对应的函数组成的偏序对在可执行文件中出现的次数,N
max
表示可执行文件中包含的偏序对的总数。4.根据权利要求1所述的恶意代码检测方法,其特征在于:步骤S3中采用签名迭代算法生成恶意家...

【专利技术属性】
技术研发人员:姚刚陈奋陈荣有孙晓波龚利军
申请(专利权)人:厦门服云信息科技有限公司
类型:发明
国别省市:

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

1