一种恶意程序相似度计算的方法和装置转让专利
申请号 : CN201910926334.4
文献号 : CN110674497B
文献日 : 2021-07-02
发明人 : 蔡淑苹 , 许光锋 , 郑汉军 , 陈思德 , 陈腾跃
申请人 : 厦门安胜网络科技有限公司
摘要 :
权利要求 :
1.一种恶意程序相似度计算的方法,其特征在于,所述方法包括以下步骤:S1,将数据库的恶意程序转换为文本或图片进行深度学习训练,通过余弦算法进行恶意程序相似度静态计算;
所述步骤S1具体包括:
S11,将所述数据库中未运行的恶意程序和非恶意程序转化成文本或图片形式,通过所述深度学习训练对所述恶意程序和所述非恶意程序进行特征值计算;
S12,将所述非恶意程序的特征值过滤掉,再基于所述恶意程序的特征值对所述恶意程序进行关键特征分类,通过统计所述关键特征的数量确定各个特征的加权值;
S13,基于所述加权值对所述关键特征进行特征向量化,再通过所述余弦算法计算所述恶意程序的静态相似度;
S2,获取所述数据库的恶意程序的行为特征,基于所述行为特征,通过PMI点互信息算法获取恶意程序的行为轨迹并进行恶意程序相似度动态计算;
所述步骤S2具体包括:
S21,获取所述恶意程序的行为,通过沙箱模拟所述恶意程序的运行,分析关键指令,记录所述恶意程序在函数入口点、返回点和内存读写点的数据,基于API参数格式解析库获取关键API的调用序列和参数信息;
S22,基于所述API的调用序列和参数信息,提取所述恶意程序的行为特征;
S23,通过动态特征提取将所述行为特征视为可统计互信息的点,基于PMI点互信息算法得到所述行为特征与参考特征之间的互信息值,再通过轨迹判断获取所述行为特征的行为轨迹;
S24,设置所述恶意程序的每个行为特征由N个行为轨迹组成,通过行为轨迹对比和所述PMI点互信息算法得到所述恶意程序相互间的相同行为轨迹个数为n,则所述恶意程序的动态相似度为n/N;
S3,通过加权平均算法确定恶意程序的最终相似度。
2.根据权利要求1所述的恶意程序相似度计算的方法,其特征在于,所述步骤S3具体包括:
通过加权平均计算获取最终相似度结果:其中,J为所述恶意程序的静态相似度,D为所述恶意程序的动态相似度;f1为所述恶意程序适合用静态恶意程序相似度计算的概率且0.3<f1<0.7,f1≠0,f2为所述恶意程序适合用动态恶意程序相似度计算的概率且0.3<f2<0.7,f2≠0,同时f1+f2=1;α为静态相似度的阈值,0.5<α<1;β为动态相似度的阈值,0.5<β<1。
3.根据权利要求1所述的恶意程序相似度计算的方法,其特征在于,所述余弦算法的具体步骤包括:
假设特征向量FVa与FVb均为M维特征向量,则FVa为(x1,x2,…,xm),FVb为(y1,y2,…,ym),FVa与FVb的夹角相似度为:其中,cosθ在‑1到1之间,当cosθ越接近1则特征向量FVa与FVb的相似度越大,当cosθ越接近‑1则特征向量FVa与FVb的相似度越小。
4.根据权利要求1所述的恶意程序相似度计算的方法,其特征在于,所述PMI点互信息算法的具体步骤为:
其中,f1为所述恶意程序的行为特征,f2为参考特征,P(f1·f2)为f1和f2同时出现的概率,P(f1)为f1出现的概率,P(f2)为f2出现的概率。
5.一种恶意程序相似度计算的装置,其特征在于,所述装置包括:静态计算模块,设置用于将数据库的恶意程序转换为文本或图片进行深度学习训练,通过余弦算法进行恶意程序相似度静态计算;
所述静态计算模块包括:
特征值计算模块,设置用于将所述数据库中未运行的恶意程序和非恶意程序转化成文本或图片形式,通过所述深度学习训练对所述恶意程序和所述非恶意程序进行特征值计算;
加权值计算模块,设置用于将所述非恶意程序的特征值过滤掉,再基于所述恶意程序的特征值对所述恶意程序进行关键特征分类,通过统计所述关键特征的数量确定各个特征的加权值;
余弦计算模块,设置用于基于所述加权值对所述关键特征进行特征向量化,再通过所述余弦算法计算所述恶意程序的静态相似度;
动态计算模块,设置用于获取所述数据库的恶意程序的行为轨迹,基于所述行为轨迹,通过PMI点互信息算法进行恶意程序相似度动态计算;
所述动态计算模块包括:
信息获取模块,设置用于获取所述恶意程序的行为,通过沙箱模拟所述恶意程序的运行,分析关键指令,记录所述恶意程序在函数入口点、返回点和内存读写点的数据,基于API参数格式解析库获取关键API的调用序列和参数信息;
行为特征提取模块,设置用于基于所述API的调用序列和参数信息,提取所述恶意程序的行为特征;
行为轨迹获取模块,设置用于通过动态特征提取将所述行为特征视为可统计互信息的点,基于PMI点互信息算法得到所述行为特征与参考特征之间的互信息值,再通过轨迹判断获取所述行为特征的行为轨迹;
PMI点互信息计算模块,设置用于设置所述恶意程序的每个行为特征由N个行为轨迹组成,通过行为轨迹对比和所述PMI点互信息算法得到所述恶意程序相互间的相同行为轨迹个数为n,则所述恶意程序的动态相似度为n/N;
加权平均计算模块,设置用于通过加权平均算法确定恶意程序的最终相似度。
6.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1‑4中任一所述的方法。
说明书 :
一种恶意程序相似度计算的方法和装置
技术领域
背景技术
序的传播与执行。常见的恶意程序有病毒、蠕虫、木马、后台程序等,它们能够对计算机进行
系统控制、信息窃取和破坏,并能自动复制传播,这极大地危害了广大计算机用户的隐私安
全和财产安全,乃至影响到社会、国家的安全。
恶意程序。
模。在动态识别领域,则通过运行程序时捕获程序调用的windows API函数序列,将获取到
的API调用函数序列进行学习建模,然后将学习到的模型用于未知恶意程序的检测。但上述
两种方法各有利弊,有些恶意程序只适合采用静态识别或动态识别,若对每一种恶意程序
都只采用一种方法进行识别,且在大量恶意程序和非恶意程序的情况下,不仅检测的效率
低,而且速度慢,准确度差。
发明内容
的调用序列和参数信息;
n/N。
程序相似度计算的概率且0.3<f2<0.7,f2≠0,同时f1+f2=1;α为静态相似度的阈值,0.5<
α<1;β为动态相似度的阈值,0.5<β<1。
进行恶意程序相似度静态计算;动态计算模块,设置用于获取数据库的恶意程序的行为轨
迹,基于行为轨迹,通过PMI点互信息算法进行恶意程序相似度动态计算;加权平均计算模
块,设置用于通过加权平均算法确定恶意程序的最终相似度。
序进行特征值计算;加权值计算模块,设置用于将非恶意程序的特征值过滤掉,再基于恶意
程序的特征值对恶意程序进行关键特征分类,通过统计关键特征的数量确定各个特征的加
权值;余弦计算模块,设置用于基于加权值对关键特征进行特征向量化,再通过余弦算法计
算恶意程序的静态相似度。
读写点的数据,基于API参数格式解析库获取关键API的调用序列和参数信息;行为特征提
取模块,设置用于基于API的调用序列和参数信息,提取恶意程序的行为特征;行为轨迹获
取模块,设置用于通过动态特征提取将行为特征视为可统计互信息的点,基于PMI点互信息
算法得到行为特征与参考特征之间的互信息值,再通过轨迹判断获取行为特征的行为轨
迹;PMI点互信息计算模块,设置用于设置恶意程序的每个行为特征由N个行为轨迹组成,通
过行为轨迹对比和PMI点互信息算法得到恶意程序相互间的相同行为轨迹个数为n,则恶意
程序的动态相似度为n/N。
定恶意程序的最终相似度。该实施方式可有针对性地对不同种类的恶意程序进行静态相似
度计算或动态相似度计算或加权计算,有利于提高恶意程序相似度计算的效率和准确性。
附图说明
具体实施方式
便于描述,附图中仅示出了与有关发明相关的部分。
连接类型,例如有线、无线通信链路或者光纤电缆等等。
果(例如要素信息集合、标签)关联存储到事件信息库中。
可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实
现成单个软件或软件模块。
序和非恶意程序进行特征值计算;S12,将非恶意程序的特征值过滤掉,再基于恶意程序的
特征值对恶意程序进行关键特征分类,通过统计关键特征的数量确定各个特征的加权值;
S13,基于加权值对关键特征进行特征向量化,再通过余弦算法计算恶意程序的静态相似
度。优选的,通过Resnet18网络对恶意程序和非恶意程序的特征值计算进行深度学习训练。
学习理解为“特征学习”或“表示学习”。以往在机器学习用于现实任务时,描述样本的特征
通常需由人类专家来设计,这称为“特征工程”。众所周知,特征的好坏对泛化性能有至关重
要的影响,人类专家设计出好特征也并非易事,而特征学习(表征学习)则通过机器学习技
术自身来产生好特征,这使机器学习向“全自动数据分析”又前进了一步。深度学习还是一
种以人工神经网络为架构,对数据进行表征学习的算法,发展至今已有数种深度学习框架,
如深度神经网络、卷积神经网络、深度置信网络和递归神经网络等,在计算机视觉识别、语
音识别、自然语言处理、音频识别与生物信息学等领域广泛使用并获取了极好的效果。
是‑1,因此两个向量之间的角度的余弦值就可确定两个向量是否大致指向相同的方向。两
个向量有相同的指向时,余弦相似度的值为1,两个向量夹角为90°时,余弦相似度的值为0,
两个向量指向完全相反的方向时,余弦相似度的值为‑1。这种判断结果与向量的长度无关,
仅仅与向量的指向方向相关,而余弦相似度通常用于正空间,因此给出的值为0到1之间。同
时这上下界对任何维度的向量空间中都适用,而且余弦相似性最常用于高维正空间,例如
在信息检索中,每个词项被赋予不同的维度,而一个文档由一个向量表示,其各个维度上的
值对应于该词项在文档中出现的频率,因此余弦相似度可以给出两篇文档在其主题方面的
相似度。
点、返回点和内存读写点的数据,基于API参数格式解析库获取关键API的调用序列和参数
信息;S22,基于API的调用序列和参数信息,提取恶意程序的行为特征;S23,通过动态特征
提取将行为特征视为可统计互信息的点,基于PMI点互信息算法得到行为特征与参考特征
之间的互信息值,再通过轨迹判断获取行为特征的行为轨迹;S24,设置恶意程序的每个行
为特征由N个行为轨迹组成,通过行为轨迹对比和PMI点互信息算法得到恶意程序相互间的
相同行为轨迹个数为n,则恶意程序的动态相似度为n/N。
(x|y)除以x本身出现的概率p(x),自然就表示x跟y的相关程度。
程序相似度计算的概率且0.3<f2<0.7,f2≠0,同时f1+f2=1;α为静态相似度的阈值,0.5<
α<1;β为动态相似度的阈值,0.5<β<1。
终相似度。该实施方式可有针对性地对不同种类的恶意程序进行静态相似度计算或动态相
似度计算或加权计算,有利于提高恶意程序相似度计算的效率和准确性。
可以应用于各种电子设备中。
程序相似度静态计算;动态计算模块502,设置用于获取数据库的恶意程序的行为轨迹,基
于行为轨迹,通过PMI点互信息算法进行恶意程序相似度动态计算;加权平均计算模块503,
设置用于通过加权平均算法确定恶意程序的最终相似度。
度学习训练对恶意程序和非恶意程序进行特征值计算;加权值计算模块,设置用于将非恶
意程序的特征值过滤掉,再基于恶意程序的特征值对恶意程序进行关键特征分类,通过统
计关键特征的数量确定各个特征的加权值;余弦计算模块,设置用于基于加权值对关键特
征进行特征向量化,再通过余弦算法计算恶意程序的静态相似度。
意程序在函数入口点、返回点和内存读写点的数据,基于API参数格式解析库获取关键API
的调用序列和参数信息;行为特征提取模块,设置用于基于API的调用序列和参数信息,提
取恶意程序的行为特征;行为轨迹获取模块,设置用于通过动态特征提取将行为特征视为
可统计互信息的点,基于PMI点互信息算法得到行为特征与参考特征之间的互信息值,再通
过轨迹判断获取行为特征的行为轨迹;PMI点互信息计算模块,设置用于设置恶意程序的每
个行为特征由N个行为轨迹组成,通过行为轨迹对比和PMI点互信息算法得到恶意程序相互
间的相同行为轨迹个数为n,则恶意程序的动态相似度为n/N。
终相似度。该实施方式可有针对性地对不同种类的恶意程序进行静态相似度计算或动态相
似度计算或加权计算,有利于提高恶意程序相似度计算的效率和准确性。
围带来任何限制。
执行各种适当的动作和处理。在RAM 603中,还存储有系统600操作所需的各种程序和数据。
CPU 601、ROM 602以及RAM 603通过总线604彼此相连。输入/输出(I/O)接口605也连接至总
线604。
卡、调制解调器等的网络接口卡的通信部分609。通信部分609经由诸如因特网的网络执行
通信处理。驱动器610也根据需要连接至I/O接口605。可拆卸介质611,诸如磁盘、光盘、磁光
盘、半导体存储器等等,根据需要安装在驱动器610上,以便于从其上读出的计算机程序根
据需要被安装入存储部分608。
上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实
施例中,该计算机程序可以通过通信部分609从网络上被下载和安装,和/或从可拆卸介质
611被安装。在该计算机程序被中央处理单元(CPU)601执行时,执行本申请的方法中限定的
上述功能。
但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组
合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连
接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读
存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD‑ROM)、光存储器件、磁存储器
件、或者上述的任意合适的组合。在本申请中,计算机可读存储介质可以是任何包含或存储
程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在
本申请中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信
号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不
限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机
可读存储介质以外的任何计算机可读存储介质,该计算机可读存储介质可以发送、传播或
者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读存
储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF
等等,或者上述的任意合适的组合。
+,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可
以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、
部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。
在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)
或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务
提供商来通过因特网连接)。
表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用
于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标
注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上
可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注
意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执
行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令
的组合来实现。
子设备中。上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序
被该电子设备执行时,使得该电子设备:将数据库的恶意程序转换为文本或图片进行深度
学习训练,通过余弦算法进行恶意程序相似度静态计算;获取数据库的恶意程序的行为特
征,基于行为特征,通过PMI点互信息算法获取恶意程序的行为轨迹并进行恶意程序相似度
动态计算;通过加权平均算法确定恶意程序的最终相似度。
方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行
任意组合而形成的其它技术方案。例如上述特征与本申请中公开的(但不限于)具有类似功
能的技术特征进行互相替换而形成的技术方案。