一种基于半监督学习的恶意代码分析方法和系统技术方案

技术编号:16233488 阅读:24 留言:0更新日期:2017-09-19 14:52
本发明专利技术公开了一种基于半监督学习的恶意代码分析方法,该方法基于多维特征进行分析,提取恶意代码的静态特征与动态特征;通过降维减少后续处理难度,并运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。

A malicious code analysis method and system based on semi supervised learning

The invention discloses a semi supervised learning method based on the analysis of malicious code, the method based on multi feature analysis, static feature extraction of malicious code and dynamic characteristics; reduce subsequent processing difficulty by dimension reduction, and the use of semi supervised learning method, solves the classification problem of a small amount of labeled samples of malicious code.

【技术实现步骤摘要】
一种基于半监督学习的恶意代码分析方法和系统
本专利技术涉及,尤其涉及。本专利技术涉及恶意代码分析技术,具体涉及一种基于半监督学习的恶意代码分析方法和系统。
技术介绍
恶意软件是指任何对计算机和网络存在着潜在危害的计算机软件。目前,恶意代码的数量和种类逐年增加,并且制作技术发展迅速,对全球网络环境安全带来巨大威胁。在商业领域广泛使用的是模式匹配方法,但是其对恶意代码的变种检测却无能为力。如今基于监督学习、无监督学习以及半监督的学习方式已经被采纳用于解决恶意代码变种的检测问题并在算法上已有成熟的研究成果,本专利技术从特征提取与特征降维的角度研究恶意代码的家族分类,而现有的研究成果中特征提取主要集中在单一特征的提取或一类特征(静态特征或动态行为特征)提取,并且对恶意代码特征的降维研究较少。在Kaggle上微软发起的恶意代码分类大赛[https://www.kaggle.com/c/malware-classification]中,一组获奖选手利用反汇编文件与字节码文件提取静态特征包括:文件属性特征和PESection、操作码序列、字节码序列等代码特征,并利用数据挖掘技术先用随机森林算法对特征进行选择,再利用NMF算法降维,最后用监督学习分类算法对样本分类。王毅等[王毅,唐勇,卢泽新,等.恶意代码聚类中的特征选取研究[J].信息网络安全,2016(9):64-68]人对恶意代码聚类中的特征选取展开了研究,提取Opcode序列、函数调用图、系统调用三类特征,并基于DBSCAN对多特征向量聚类,证明了单一特征中使用系统调用序列的效果最好,并且采用多特征向量进行聚类的结果要优于单一特征。另外,IgorSantos等人[SantosI,SanzB,LaordenC,etal.Opcode-Sequence-BasedSemi-supervisedUnknownMalwareDetection[J].LectureNotesinComputerScience,2011,6694(11):50-57.]提出采用LLGC(局部与全局一致性算法)来检测基于操作码序列特征的未知恶意软件。可见,现有的关于恶意代码分类技术研究成果中,大多提取单一的特征类型,会导致难以描述恶意软件的代码与行为的全部性质与特点。另外,对于提取了多特征的恶意代码分类研究中,对特征选择与特征抽取部分没有详细讨论,高维特征会使分类效率下降,并易出现过拟合现象。除此之外,目前基于监督学习的恶意代码分类无法解决标记样本数量较少的问题。基于上述原因,本专利技术研究并提出了基于多维特征的分析方法,提取恶意代码的静态特征与动态特征,并对高维特征的降维提出了行之有效的处理方法,最后运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。
技术实现思路
有鉴于此,本专利技术提供了一种基于半监督学习的恶意代码分析方法和系统,其基于多维特征进行分析,提取恶意代码的静态特征与动态特征,通过降维减少后续处理难度,并运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。为了解决上述技术问题,本专利技术是这样实现的:一种基于半监督学习的恶意代码分析方法,包括:步骤1、获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;步骤2、从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;步骤3、将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;步骤4、对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;步骤5、基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。优选地,所述步骤1在获取动态行为报告时,通过搭建的CuckooSandbox安全环境执行恶意代码,提取json格式的动态行为报告。优选地,所述加壳信息的序列化方式为:用1维特征项表示样本是否加壳,并用0,1标记;统计所有样本加壳类型共N1种,是否加某种壳也用0,1标记,产生N1维特征项;加壳信息序列化后得到M×(N1+1)的0、1矩阵,其中M为样本数量;所述操作码的序列化方式为:使用N-gram模型进行序列化处理,其中N=3,4,5;所述PE节的序列化方式为:统计所有样本中出现的分节共N5个,计算每个样本出现这N5个分节的次数,序列化后得到的是M×N5的数值矩阵;所述关键字FUNCTION后函数名称的序列化方式为:TF-IDF转化为词频矩阵;所述系统调用序列的提取和序列化方式为:提取动态行为分析报告中字段category为‘registry’、‘process’、‘file’、‘system’、‘services’和‘network’的API函数和时间点;再根据时间点的大小对API函数排序,得到具有执行先后顺序的API函数序列即为系统调用序列;使用N-gram模型对API函数序列进行序列化处理;所述IP地址的提取和序列化方式为:提取动态行为分析报告中的IP地址,判断IP地址所属区域;统计所有样本的区域类型N2种,每个样本使用0,1标记是否属某区域;序列化后得到的是M×N2的0、1矩阵;所述释放文件信息的序列化方式为:统计所有样本的释放文件类型共N3个,计算每个样本各类型的数量;序列化后得到M×(N3+2)的矩阵,其中两维记载样本中释放文件的总数和释放文件的类型总数;所述注册表路径的提取和序列化方式为:当调用的API函数名包含RegCreateKey、RegDeleteKey、RegSetValue、RegDeleteValue、RegReplaceKey、RegUnloadKey中的任何一个,则对此API对应的注册表操作路径‘regkey’的值进行提取;统计路径字符串个数N4,每个样本使用0,1标记是否修改某注册表路径;序列化后得到的是M×N4的0、1矩阵。优选地,使用N-gram模型对特征进行序列化处理为:令N-gram模型中的N分别取3,4,5,针对每一种取值,按照公式(1)获得的G值从大到小提取N-gram序列的前1000个序列;G=(每个N-gram总个数)/(包含该N-gram的样本数)(1)。优选地,所述步骤4的降维过程进一步包括:对筛选后的特征项集合进一步运用主成分分析法PCA进行抽取特征,得到更低维度的用于训练分类模型的特征项。优选地,步骤5的半监督分类算法采用局部与全局一致性算法LLGC。本专利技术提供的基于半监督学习的恶意代码分析系统包括:本文档来自技高网
...
一种基于半监督学习的恶意代码分析方法和系统

【技术保护点】
一种基于半监督学习的恶意代码分析方法,其特征在于,包括:步骤1、获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;步骤2、从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;步骤3、将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;步骤4、对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;步骤5、基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。...

【技术特征摘要】
1.一种基于半监督学习的恶意代码分析方法,其特征在于,包括:步骤1、获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;步骤2、从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;步骤3、将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;步骤4、对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;步骤5、基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。2.如权利要求1所述的方法,其特征在于,所述步骤1在获取动态行为报告时,通过搭建的CuckooSandbox安全环境执行恶意代码,提取json格式的动态行为报告。3.如权利要1所述的方法,其特征在于,所述加壳信息的序列化方式为:用1维特征项表示样本是否加壳,并用0,1标记;统计所有样本加壳类型共N1种,是否加某种壳也用0,1标记,产生N1维特征项;加壳信息序列化后得到M×(N1+1)的0、1矩阵,其中M为样本数量;所述操作码的序列化方式为:使用N-gram模型进行序列化处理,其中N=3,4,5;所述PE节的序列化方式为:统计所有样本中出现的分节共N5个,计算每个样本出现这N5个分节的次数,序列化后得到的是M×N5的数值矩阵;所述关键字FUNCTION后函数名称的序列化方式为:TF-IDF转化为词频矩阵;所述系统调用序列的提取和序列化方式为:提取动态行为分析报告中字段category为‘registry’、‘process’、‘file’、‘system’、‘services’和‘network’的API函数和时间点;再根据时间点的大小对API函数排序,得到具有执行先后顺序的API函数序列即为系统调用序列;使用N-gram模型对API函数序列进行序列化处理;所述IP地址的提取和序列化方式为:提取动态行为分析报告中的IP地址,判断IP地址所属区域;统计所有样本的区域类型N2种,每个样本使用0,1标记是否属某区域;序列化后得到的是M×N2的0、1矩阵;所述释放文件信息的序列化方式为:统计所有样本的释放文件类型共N3个,计算每个样本各类型的数量;序列化后得到M×(N3+2)的矩阵,其中两维记载样本中释放文件的总数和释放文件的类型总数;所述注册表路径的提取和序列化方式为:当调用的API函数名包含RegCreateKey、RegDeleteKey、RegSetValue、RegDeleteValue、RegReplaceKey、RegUnloadKey中的任何一个,则对此API对应的注册表操作路径‘regkey’的值进行提取;统计路径字符串个数N4,每个样本使用0,1标记是否修改某注册表路径;序列化后得到的是M×N4的0、1矩阵。4.如权利要求3所述的方法,其特征在于,使用N-gram模型对特征进行序列化处理为:令N-gram模型中的N分别取3,4,5,针对每一种取值,按照公式(1)获得的G值从大到小提取N-gram序列的前1000个序列;G=(每个N-gram总个数)/(包含该N-gram的样本数)(1)。5.如权利要求1所述的方法,其特征在于,所述步骤4的降维过程进一步包括:对筛选后的特征项集合进一步运用主成分分析法PCA进行抽取特征,得到更低维度的用于训练分类模型的特征项。6.如权利要...

【专利技术属性】
技术研发人员:薛静锋刘振岩何婷婷彭图王勇
申请(专利权)人:北京理工大学
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1