[发明专利]一种自动化检测恶意代码核心特征的方法有效
| 申请号: | 201810013616.0 | 申请日: | 2018-01-08 |
| 公开(公告)号: | CN107908963B | 公开(公告)日: | 2020-11-06 |
| 发明(设计)人: | 王栎汉;宁振虎;薛菲;蔡永泉;梁鹏 | 申请(专利权)人: | 北京工业大学 |
| 主分类号: | G06F21/56 | 分类号: | G06F21/56;G06N20/00 |
| 代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 沈波 |
| 地址: | 100124 *** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 自动化 检测 恶意代码 核心 特征 方法 | ||
1.一种自动化检测恶意代码核心特征的方法,其特征在于:该方法是一种基于机器学习算法的检测恶意代码核心特征的方法;通过静态分析,从恶意代码实际安全意义的角度出发,提取恶意代码的图像纹理、关键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算法对特征进行降维,选取出其中贡献值较高的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):
其中上标N表示归一化操作后,所有的向量转变为具有N(0,1)分布的向量v(N),使用2σi进行归一化,使得新生成的向量取值范围固定在[-1,1];
第五、随机森林树构建及核心特征选取
使用双特征库的随机森林树算法,重点考虑恶意代码图像特征;利用随机选择的方法,可以有效地消除恶意代码的混淆干扰;基于这种提取方法构建的特征库具有更强的抵抗力。
2.根据权利要求1所述的一种自动化检测恶意代码核心特征的方法,其特征在于:对于三种所提取的特征,虽然每个特征属性都具有自己的安全意义;但是在针对恶意代码的检测过程中,不同的特征面临的干扰、混淆影响是不同的,对恶意代码家族的核心特征来说,能否更好的代表同一家族也是不同的;对于n-gram和关键字符串特征来说,是从恶意代码的实际语义的角度来描述的;恶意代码图像特征从相同的执行代码,调用资源的角度来对恶意代码进行描述;因此在对样本特征集进行选择时,应当着重考虑恶意代码图像特征;从安全属性角度出发,提出一种改进的随机森林树算法;该随机森林树算法将特征库拆分为两个部分,一个部分为恶意代码图像特征的图像特征库,另一个部分为n-gram和关键字符串特征组成的语义特征库;在对特征库中多维特征进行选择的同时,考虑恶意代码图像特征;每次特征提取都会随机在恶意代码图像特征库中随机选择几个特征维度,并在另外一个特征库中也进行随机的选取,构建核心特征库。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810013616.0/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种响应方法及电子设备
- 下一篇:一种农网配变重过载短期预警模型的建模方法





