System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本专利技术属于网络安全和机器学习,特别是涉及一种计算机恶意程序中间代码行为的图式表征方法。
技术介绍
1、恶意程序是指在损害计算机,移动设备,数据或网络的一类程序。通过分析恶意行为、识别计算机或网络传播中存在的恶意文件,可以保护用户的财产免受侵害。检测恶意程序的一个前提是收集到充分的程序样本特征,通过规则化或机器学习等方式对样本特征进行判别,从而检测出计算机或网络中的恶意程序。
2、按照数据源的不同,现有的恶意程序表征方法可以分为源码、流量信息、行为日志和执行信息的表征方法,这些表征都有一项共同特征,即恶意程序通常会被进行混淆、加密或正常化等方式进行改造,或是攻击者通过大量正常操作掩盖恶意程序的真实意图,从而很大程度避开了基于静态检测层面的表征方法,同时由于正常操作的稀释效果,基于行为的表征方法的漏检率过高而导致难以奏效。
3、由高级语言编写的程序在机器执行指令前,会将高级语言编译为中间代码,最后通过执行器将中间代码转换为机器码执行指令操作,如解释器中的操作码。中间代码中的一个指令通常包含明确的原子操作行为信息,同时相比机器码具有更高层次的语义信息和结构信息,这意味着采用中间代码拥有更多的结构化行为语义信息。但如何正确地对中间代码的行为进行表征,并将特征应用于恶意程序的检测依旧是一项挑战。
技术实现思路
1、本专利技术的目的在于提供一种计算机恶意程序中间代码行为的图式表征方法,有效解决了现有技术中存在的对混淆后的程序表征不准确和用以检测的表征方法漏检率过高的
2、为解决上述技术问题,本专利技术所采用的技术方案是,
3、一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,包括以下步骤:
4、s0:从恶意程序库中选择样本程序,放入待检测程序中;
5、s1:获取所有待检测程序在词法分析后的结果;
6、s2:构建操作码调用关联图ocg;
7、s3:计算每两个ocg的相似度,构成相似度矩阵;
8、s4:将相似度矩阵转换成特征矩阵;
9、s5:对待检测程序进行定位与匹配。
10、进一步的,所述s1包括:
11、s1.1:获取所有待检测程序在词法分析后的结果;
12、s1.2:提取结果中所有的操作码op、操作码对应的操作值oprands、操作码间调用关联信息opref,同时按照操作码在结果中的出现顺序,标记每一个操作码的标识符opid。
13、进一步的,所述s2包括:
14、s2.1:对于每个程序对应的词法分析结果,根据操作码和操作码间调用关联信息构建操作码调用关联图ocg,标记为:
15、ocg=(v,e),
16、v=(op,oprands,opid),v∈v
17、e=(vi,vj),e∈e
18、其中,v是ocg的点集,v为v中的任意节点,v由操作码、操作值、标识符信息组成;e是ocg的边集,e为e中的任意边,e包含操作码间调用关联信息,vi,vj是v中任意两个存在调用关联的节点;
19、s2.2:将每个词法分析结果中同一操作码聚合为同一个节点,聚合后操作码的opid以所聚合的操作码中数值最小的opid为准;
20、同时,将聚合后同一操作码的操作值保存在同一个操作值列表l中,l=[oprands1,…,oprandsi],其中,i指操作值的个数。
21、进一步的,所述s3包括:
22、s3.1:在保留ocg1和ocg2原本所有节点和边的基础上,将ocg1和ocg2之间操作码相同的节点连边,得到ocg1和ocg2的直积图ocg×;ocg1和ocg2表示用于计算相似度的两个调用关联图;
23、s3.2:在直积图ocg×上,对操作值接近的节点进行连边,得到新的直积图ocg×’;是否为操作值接近的节点的判断规则如下:
24、对于ocg1和ocg2中操作码不同的节点,计算每两个不同的操作码对应的操作值列表l的变种jaccard系数,
25、若变种jaccard系数>0.5,则该节点是操作值接近的节点;
26、若变种jaccard系数≤0.5,则该节点不是操作值接近的节点;
27、变种jaccard系数计算公式如下:
28、
29、其中,l1,l2是ocg1和ocg2中不同节点对应的操作值列表,|l1∪l2|是l1与l2的并集的元素个数,c(·)是计数函数,c(·)的初始值为0,c(·)的计数规则如下:
30、情况1:若两个操作码的oprands类型不相同,c(·)在数值上不作+1;
31、情况2:若两个操作码的oprands都是数值型,c(·)在数值上+1;
32、情况3:若两个操作码的oprands都是长度小于16的短字符串型,c(·)在数值上+1;
33、情况4:若两个操作码的oprands都是长度不小于16的长字符串型,采用模糊哈希算法对字符串进行分片,计算分片对应的散列值,若通过模糊哈希算法计算得到的相似度超过设定的阈值m,阈值为0.3,则c(·)在数值上+1;若通过模糊哈希算法计算得到的相似度不超过设定的阈值m,c(·)在数值上不作+1;
34、s3.3:在直积图ocg×’中,采用随机游走核函数计算ocg1和ocg2的相似度,计算公式如下:
35、
36、其中,k(ocg1,ocg2)表示ocg1和ocg2的相似度;v×表示ocg×’中的点集合;p表示随机游走的步长,步长p不超过3;λ表示衰减权重,λp表示步长为p时的衰减权重,a×表示直积图ocg×’的邻接矩阵,α和β表示ocg×’中任意节点,表示步长为p时,α和β在ocg×’中的不同路径数,表示步长p从0到3时,节点α和β的不同路径数与权重乘积之和;
37、在计算不同路径数的过程中:
38、若路径中不包含ocg1和ocg2之间的连边,游走的方向只能是从opid数值小的节点到opid数值大的节点;
39、若路径中包含ocg1和ocg2之间的连边,对于在ocg1和ocg2的连边上的游走方向不做要求,剩余路径游走的方向只能是从opid数值小的节点到opid数值大的节点;
40、s3.4:重复s3.1~s3.3,直至得到所有操作码调用关联图两两之间的相似度,构成相似度矩阵wsim∈rn×n,其中n是待检测程序的个数。
41、进一步的,所述s4包括:
42、s4.1:计算标准化的拉普拉斯矩阵lsym=d-1/2ld-1/2,
43、其中,d是wsim的对角矩阵,l是未标准化的拉普拉斯矩阵,l=d-wsim;
44、s4.2:计算lsym的k个最小特征值,得到对应的n个k维特征向量v[v1,…,vn],组成特征矩阵m∈rn×k,其中,rn本文档来自技高网...
【技术保护点】
1.一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述S1包括:
3.根据权利要求2所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述S2包括:
4.根据权利要求3所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述S3包括:
5.根据权利要求4所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述S4包括:
6.根据权利要求5所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述S5包括:
【技术特征摘要】
1.一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,包括以下步骤:
2.根据权利要求1所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述s1包括:
3.根据权利要求2所述的一种计算机恶意程序中间代码行为的图式表征方法,其特征在于,所述s2包括:
4....
【专利技术属性】
技术研发人员:黄罕添,毛元喜,邓辉,阮理斌,袁键,赵颖,
申请(专利权)人:湖南惟维科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。