[发明专利]一种自动化检测恶意代码核心特征的方法有效
申请号: | 201810013616.0 | 申请日: | 2018-01-08 |
公开(公告)号: | CN107908963B | 公开(公告)日: | 2020-11-06 |
发明(设计)人: | 王栎汉;宁振虎;薛菲;蔡永泉;梁鹏 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F21/56 | 分类号: | G06F21/56;G06N20/00 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 沈波 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种自动化检测恶意代码核心特征方法,属于计算机系统安全的总体设计。该方法是一种基于机器学习算法的恶意代码核心特征的方法。通过静态分析,从恶意代码实际安全意义的角度出发,提取恶意代码的图像纹理、关键API调用、关键字符串特征。通过基于归一化双特征库的随机森林树算法对提取的特征进行学习,获得恶意代码家族核心特征库。恶意代码图像特征对于恶意代码来说,具有更好的表现力。因此构建双特征子库,将恶意代码图像特征单独入库。保证每次特征融合,都能够选取到图像特征向量中的某几个特征值用于训练。这样保证了训练得到的分类器,拥有一定的准确率。 | ||
搜索关键词: | 一种 自动化 检测 恶意代码 核心 特征 方法 | ||
【主权项】:
一种自动化检测恶意代码核心特征方法,其特征在于:该方法是一种基于机器学习算法的恶意代码核心特征的方法;通过静态分析,从恶意代码实际安全意义的角度出发,提取恶意代码的图像纹理、关键API调用、关键字符串特征;通过基于归一化双特征库的随机森林树算法对提取的特征进行学习,获得恶意代码家族核心特征库;第一、核心特征提取方法整体架构使用三种特征提取方法,并通过机器学习算法对三种特征进行学习;最终达到自动化提取恶意代码核心特征,并且保证提取的核心特征不易被混淆,检测效果好;对于一个恶意代码样本,提取出两份分析文件,一个是经过IDA反汇编的恶意代码操作序列,另一个是恶意代码可执行的二进制文件;恶意代码的反汇编文件记录了恶意代码API接口的调用顺序,以及传递和返回的参数;因此通过分析处理恶意代码的反汇编文件,从中提取出两种恶意代码特征n‑gram序列特征和关键字符串特征;这两个特征能够很好的反应出恶意代码的局部敏感信息和实际操作的特征信息;对于恶意代码二进制执行文件,直接通过统计学方式对特征进行提取很困难;因此考虑将该二进制文件通过分割的形式构建灰度图像,通过对该灰度图像的特征提取,得到一种含有非常丰富信息的恶意代码图像特征;对于三种特征向量,需要利用高斯归一化算法对特征向量进行标准化处理,保证最终三种特征的特征值分布范围相同;为了能够更好的融合三种特征,采用了随机森林树算法,随机的对训练样本以及三种特征向量进行选择;通过融合出多个特征向量并配合多个训练样本集,对分类器进行训练,提高模型的多样性;考虑到恶意代码图像特征对于恶意代码来说,具有更好的表现力;构建双特征子库,将恶意代码图像特征单独入库;保证每次特征融合,都能够选取到图像特征向量中的某几个特征值用于训练;保证训练得到的分类器,拥有一定的准确率;最终的分类结果,则由分类器集群进行投票表决;第二、恶意代码图像特征提取首先通过BM2(Boyer‑Moore two)算法将恶意代码二进制文件按每8bit为一长度进行分割,每8bit的二进制可以读取出一个范围为0到255的无符号整形数;固定行宽,产生一个二维数组的向量;向量中的每个原始的取值范围都为0到255;既一个灰度像素,0代表白色255代表黑色;通过这个二维数组,生成一个可视化的灰度图像;图像的宽度和高度则取决于样本文件的大小;映射后的灰度纹理图片将陪存储为一个无压缩的PNG图像;由于恶意代码二进制文件中存储的实际是代码运行的过程,因此不同阶段的运行情况对应的映射图片灰度也不一样;对于上述木马病毒的恶意代码图像文件,其中“.text”部分包含可执行代码,具有细粒度纹理,其余充满黑色,表示末尾填零;“.data”部分包含初始的代码块,未初始的代码块;“.rsrc”部分包含所有模块的资源;这些可能包括应用程序可能使用的图标;考虑如何对恶意代码图像进行特征提取,获取到得到较为稳定、不易受到干扰的图像特征;图像的特征提取分为几种类型:颜色、形状、关系空间、纹理特征方法;特征提取的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域;考虑到恶意图像代码为无压缩的灰度图像,每个区域相应对应了一个类型的操作,因此提取的特征应当能够提现图像中各个区域的特征,并且在面对翻转、变化、混淆情况下,提取的图像特征不能具有很大的差异性;因此利用灰度共生矩阵(GLCM)对恶意代码图像进行纹理特征的提取,灰度共生矩阵是一种通过计算图像中各个区域的边界,并统计各区域的概率信息反应图像中灰度有关方向和间隔整体信息;对于图像上任意一点(p,q),(p+Δp,q+Δq)为图像中移动后的另一点;这两点形成了一个点对,(m,n)为该点对的灰度值;即m为点(p,q)的灰度值,n为点(p+Δp,q+Δq)的灰度值;通过固定Δp和Δq,通过移动点(p,q)来确定相应的(m,n)值;则相应灰度值的组合为L2,灰度值的级数为L;通过计算灰度值(m,n)的出现频率,化积分为1,其概率为Pmn;得到灰度共生矩阵即灰度联合概率密度为[Pmn]L×L;灰度共生矩阵并不能直接用于恶意代码图像特征的表述,它反应的是图像灰度关于方向、相邻间隔、变化幅度的综合信息;通过灰度共生矩阵提取出图像的角二阶矩、对比度、灰度一系列纹理特征;通过对恶意图像的分析,为了能够降低特征的维度,提高计算效率;从安全属性相关的角度分析选取了几种恶意图像的纹理特征并通过PCA(Principal Component Analysis)算法对特征进行降维,选取出其中贡献值较高的5种特征,分别为:1)对比度其中|m‑n|=s;2)灰度相关其中σp,σq,μp,μq分别为与的标准差和均值;3)熵4)相异5)反差第三、n‑gram及关键字符串特征提取从恶意代码实际语义的角度,利用N‑gram模型对恶意代码的反汇编文件中操作码进行提取;对于一个“.asm”的反汇编程序,由段落开始标识符、内存中地址、字节码、操作码、参数组成;反汇编程序片段中的segment表示对应的当前指令所属段落,address表示内存地址,bytes对应的十六进制码,opcode表示操作码,operands则表示传递的参数;对于一个反汇编文件,通过定位“.text”,提取出对应的操作码;对操作码进行n‑gram建模,即可得到n‑gram特征向量;本方法还提取了恶意代码的关键字符串特征,通过对恶意代码进行反汇编操作,可以提取出许多直接可以打印出来的字符串;这些字符串展现了恶意代码的一些敏感操作;采用字符长度作为关键字符串特征,该特征提取方法将反汇编文件中所有可打印的字符串,按长度进行划分统计成向量;之所以采取这种方式提取关键字符串特征,是因为这些字符串信息数据当中含有非常多的噪音;对于IP地址,可以通过替换绕过检测;相关字符串信息在混淆处理后,长度却往往是不变的;因此选择统计字符串长度,可以有效消除噪音数据的干扰;第四、特征归一化为了能够统一多种特征向量融合的问题,本发明对三种特征向量进行了特征归一化处理;对于提取的多个特征,由于提取方法等因素的不同,导致各个特征的数值范围区间并不相同;传统上机器学习算法认为值越高的数据,占有越重要的比重;如果直接利用得到的特征值,进行学习,会导致某些特征值的影响被放大,有些特征值的影响被降低;因此对数据进行规范化非常重要,将所有的特征值通过一定的规则映射到某一特定区间,可以消除因为数值范围不同而对特征学习产生的影响;本方法主要提取了三种特征,每种特征向量都有多种维度的数据;只需要将这些多维向量都进行归一化操作,即可以消除因为取值不同对特征学习;具体的高斯归一化算法描述如下:1)对于任意一组n维的向量v(n)=(v1,v2,…,vn),首先利用高斯公式计算该多维特征向量集合的均值μn和方差σn;2)将v(n)特征向量归一化至区间[‑1,1],从而可以得到归一化的特征向量v(N):v(N)=vi-μi3σi,i=1,2,...n.]]>其中上标N表示归一化操作后,所有的向量转变为具有N(0,1)分布的向量v(N),使用2σi进行归一化,使得新生成的向量取值范围固定在[‑1,1];第五、随机森林树构建及核心特征选取;使用双特征库的随机森林树算法,重点考虑恶意代码图像特征;利用随机选择的方法,可以有效的消除恶意代码的混淆干扰;基于这种提取方法构建的特征库具有更强的抵抗力。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201810013616.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种响应方法及电子设备
- 下一篇:一种农网配变重过载短期预警模型的建模方法