[发明专利]一种基于语义映射关联的恶意代码检测方法有效
申请号: | 201811385352.8 | 申请日: | 2018-11-20 |
公开(公告)号: | CN109543410B | 公开(公告)日: | 2021-05-07 |
发明(设计)人: | 韩伟杰;薛静锋;王勇;黄露;钱克昌;贾录良;熊达鹏 | 申请(专利权)人: | 北京理工大学;中国人民解放军战略支援部队航天工程大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56 |
代理公司: | 北京理工大学专利中心 11120 | 代理人: | 高燕燕;付雷杰 |
地址: | 100081 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语义 映射 关联 恶意代码 检测 方法 | ||
1.一种基于语义映射关联的恶意代码检测方法,其特征在于,具体包括如下步骤:
步骤1.1、针对恶意代码样本空间中的每个样本代码,分别提取其静态和动态API序列,形成初始API序列;
步骤1.2、对步骤1.1中得到的动态和静态API序列进行净化处理,去除其中隐藏的API噪声;
步骤1.3、基于动态和静态API语义类型的相关性,对步骤1.2得到的动态和静态API序列进行关联融合,生成混合带有权值的API序列,计算每个API的贡献度,再按照贡献度的数值由大到小的顺序对所有API进行排序;
步骤1.4、在步骤1.3中得到的API排序中,选择排名靠前的N个API作为特征向量,并以各个API在每个样本中出现的次数作为特征值,为每个样本生成特征向量;
步骤1.5、使用步骤1.4生成的恶意代码样本的特征向量作为机器学习方法的输入,对样本进行自动化的分类与检测;
所述步骤1.3中所述关联融合包括以下步骤:
步骤2.1、从步骤1.2得到的同一样本的动态和静态API中,分别选取相同类型的API各自组成一个语义块;
步骤2.2、比较步骤2.1生成的同一样本的动态和静态语义块序列,从较短的序列中选取两个连续的语义块节点作为一个长度为2的语义块节点对,在较长的序列中寻找与语义块节点对中第一个语义节点类型相同的节点作为起始点,再在较长的序列中寻找与语义块节点对中另一个语义节点类型相同的节点作为终点,形成包含起始点、终点及中间所有语义块的语义块序列子串,所包含语义块的个数为该子串的长度;
步骤2.3、按照式(1)将这两个子串进行合并,形成一个新的混合序列:
其中,表示第1个序列中下标i1至j1的语义块子串,表示第2个序列中下标i2至j2的语义块子串,表示将两个序列中的语义串融合之后得到的新语义串,ω1表示语义串的长度,ω2表示语义串的长度,α表示长度为ω1的子串的权重,另一子串的权重为1-α,所述语义块子串内的API的权值与语义块子串的权值相同;
步骤2.4、比较此次融合之后两个序列的剩余长度,当两个序列的剩余长度都不为零时,返回步骤2.2;当有一个序列的剩余长度为零时,结束该处理过程。
2.基于权利要求1所述的方法,其特征在于,所述基于API的特征向量的生成包括如下步骤:
步骤3.1、基于混合API序列及每个API的权重,以加权统计的方式,分别统计所有样本中每个API出现的次数、每一类样本中每个API出现的次数及每一个样本中每个API出现的次数;
步骤3.2、基于步骤3.1得到的结果信息,计算所有样本API的贡献度并进行排序;
步骤3.3、选取贡献度排序Top-N的API组成特征向量;
步骤3.4、基于Top-N API对每一个样本进行匹配,以该API在每个样本的动静态API序列中出现的次数作为其在该样本中的特征值;
步骤3.5、为每一个样本生成API序列特征向量;
步骤3.6、生成所有样本的基于API序列的特征向量矩阵。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京理工大学;中国人民解放军战略支援部队航天工程大学,未经北京理工大学;中国人民解放军战略支援部队航天工程大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811385352.8/1.html,转载请声明来源钻瓜专利网。