CN107180191A - 一种基于半监督学习的恶意代码分析方法和系统 - Google Patents
一种基于半监督学习的恶意代码分析方法和系统 Download PDFInfo
- Publication number
- CN107180191A CN107180191A CN201710303017.8A CN201710303017A CN107180191A CN 107180191 A CN107180191 A CN 107180191A CN 201710303017 A CN201710303017 A CN 201710303017A CN 107180191 A CN107180191 A CN 107180191A
- Authority
- CN
- China
- Prior art keywords
- feature
- serializing
- sample
- malicious code
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/55—Detecting local intrusion or implementing counter-measures
- G06F21/56—Computer malware detection or handling, e.g. anti-virus arrangements
- G06F21/562—Static detection
- G06F21/563—Static detection by source code analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Virology (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于半监督学习的恶意代码分析方法,该方法基于多维特征进行分析,提取恶意代码的静态特征与动态特征;通过降维减少后续处理难度,并运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。
Description
技术领域
本发明涉及,尤其涉及。本发明涉及恶意代码分析技术,具体涉及一种基于半监督学习的恶意代码分析方法和系统。
背景技术
恶意软件是指任何对计算机和网络存在着潜在危害的计算机软件。目前,恶意代码的数量和种类逐年增加,并且制作技术发展迅速,对全球网络环境安全带来巨大威胁。在商业领域广泛使用的是模式匹配方法,但是其对恶意代码的变种检测却无能为力。如今基于监督学习、无监督学习以及半监督的学习方式已经被采纳用于解决恶意代码变种的检测问题并在算法上已有成熟的研究成果,本发明从特征提取与特征降维的角度研究恶意代码的家族分类,而现有的研究成果中特征提取主要集中在单一特征的提取或一类特征(静态特征或动态行为特征)提取,并且对恶意代码特征的降维研究较少。
在Kaggle上微软发起的恶意代码分类大赛[https://www.kaggle.com/c/malware-classification]中,一组获奖选手利用反汇编文件与字节码文件提取静态特征包括:文件属性特征和PE Section、操作码序列、字节码序列等代码特征,并利用数据挖掘技术先用随机森林算法对特征进行选择,再利用NMF算法降维,最后用监督学习分类算法对样本分类。王毅等[王毅,唐勇,卢泽新,等.恶意代码聚类中的特征选取研究[J].信息网络安全,2016(9):64-68]人对恶意代码聚类中的特征选取展开了研究,提取Opcode序列、函数调用图、系统调用三类特征,并基于DBSCAN对多特征向量聚类,证明了单一特征中使用系统调用序列的效果最好,并且采用多特征向量进行聚类的结果要优于单一特征。另外,IgorSantos等人[Santos I,Sanz B,Laorden C,et al.Opcode-Sequence-Based Semi-supervised Unknown Malware Detection[J].Lecture Notes in Computer Science,2011,6694(11):50-57.]提出采用LLGC(局部与全局一致性算法)来检测基于操作码序列特征的未知恶意软件。
可见,现有的关于恶意代码分类技术研究成果中,大多提取单一的特征类型,会导致难以描述恶意软件的代码与行为的全部性质与特点。另外,对于提取了多特征的恶意代码分类研究中,对特征选择与特征抽取部分没有详细讨论,高维特征会使分类效率下降,并易出现过拟合现象。除此之外,目前基于监督学习的恶意代码分类无法解决标记样本数量较少的问题。
基于上述原因,本发明研究并提出了基于多维特征的分析方法,提取恶意代码的静态特征与动态特征,并对高维特征的降维提出了行之有效的处理方法,最后运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。
发明内容
有鉴于此,本发明提供了一种基于半监督学习的恶意代码分析方法和系统,其基于多维特征进行分析,提取恶意代码的静态特征与动态特征,通过降维减少后续处理难度,并运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。
为了解决上述技术问题,本发明是这样实现的:
一种基于半监督学习的恶意代码分析方法,包括:
步骤1、获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;
步骤2、从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;
所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;
步骤3、将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;
步骤4、对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;
步骤5、基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。
优选地,所述步骤1在获取动态行为报告时,通过搭建的Cuckoo Sandbox安全环境执行恶意代码,提取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。
本发明提供的基于半监督学习的恶意代码分析系统包括:原始特征文件获取模块、特征提取模块、预处理模块、特征选择模块和分析模块;
原始特征文件获取模块,用于获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;
特征提取模块,用于从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;
所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;
所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;
预处理模块,用于将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;
特征选择模块,用于对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;
分析模块,用于基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。
优选地,所述预处理模块的序列化为:
对于加壳信息的序列化方式:用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转化为词频矩阵;
对于系统调用序列的序列化方式为:使用N-gram模型对API函数序列进行序列化处理;
对于IP地址的序列化方式为:判断IP地址所属区域,统计所有样本的区域类型N2种,每个样本使用0,1标记是否属某区域;序列化后得到的是M×N2的0、1矩阵;
对于释放文件信息的序列化方式为:统计所有样本的释放文件类型共N3个,计算每个样本各类型的数量;序列化后得到M×(N3+2)的矩阵,其中两维记载样本中释放文件的总数和释放文件的类型总数;
对于注册表路径的序列化方式为:统计路径字符串个数N4,每个样本使用0,1标记是否修改某注册表路径;序列化后得到的是M×N4的0、1矩阵。
优选地,所述特征提取模块的提取方式为:
对于所述系统调用序列的提取过程为:提取动态行为分析报告中字段category为‘registry’、‘process’、‘file’、‘system’、‘services’和‘network’的API函数和时间点;再根据时间点的大小对API函数排序,得到具有执行先后顺序的API函数序列,即为系统调用序列;
对于注册表路径的提取过程为:当调用的API函数名包含RegCreateKey、RegDeleteKey、RegSetValue、RegDeleteValue、RegReplaceKey、RegUnloadKey中的任何一个,则对此API对应的注册表操作路径‘regkey’的值进行提取,作为提取的注册表路径。
优选地,所述预处理模块使用N-gram模型对特征进行序列化处理为:
令N-gram模型中的N分别取3,4,5,针对每一种取值,按照公式(1)获得的G值从大到小提取N-gram序列的前1000个序列;
G=(每个N-gram总个数)/(包含该N-gram的样本数) (1)。
有益效果:
(1)本发明基于多维特征进行分析,提取恶意代码的静态特征与动态特征,通过降维减少后续处理难度,并运用半监督学习方式,解决了对少量标记恶意代码样本的分类问题。
(2)本发明基于静态和动态特征进行恶意代码族群分类,通过分析大量恶意代码样本提取能体现恶意代码之间差异性与相似性的4类静态特征和4类动态特征。4类静态特征包括加壳信息、PE分节、操作码序列和关键字FUNCTION后函数名称,均能够体现开发者在制作恶意软件中的编程习惯,例如同一家族的恶意代码通常会使用同种加壳算法叠加壳;4类动态特征包括:系统调用序列、释放文件、IP地址和注册表路径,能够反映恶意代码执行期间行为的共同特征,例如本发明提出的释放文件特征,勒索软件在执行期间会释放JPG格式文件而分析蠕虫软件释放文件类型均为可执行文件。
(3)本发明基于信息增益、随机森林和L1/L2的逻辑回归构建特征打分器,能够有效改善基于单一特征选择方法对特征重要性评估的局限性。由于本发明提取及预处理后得到的特征数据集,存在噪音、有关联与无关联等情况。对于相关联的特征项,使用L1/L2的逻辑回归方法,优化了仅使用L1逻辑回归时,只能保留多个对目标值具有同等相关性的特征中的一个的缺陷;而对于不相关特征,使用随机森林方法能够得到一个近似最优解;使用过滤式特征选择方法信息增益用来平衡了随机森林与L1/L2逻辑回归对特征打分的误判。并且,实验也证明使用随机森林与特征打分器分别选择后的特征集合在分类验证时,其准确率分别为0.50与0.94,分类准确率有显著提升。
(4)本发明使用N-gram处理操作码与系统调用序列时,选取N为3,4,5,并根据公式计算得到N-gram序列平均出现频率G,选取G值大小前1000的N-gram序列;在这个处理过程中,把N-gram序列特征维度进行约束,提高了特征选择时的处理效率。
附图说明
图1为本发明恶意代码分析方法的具体实施方式流程图。
具体实施方式
下面结合附图并举实施例,对本发明进行详细描述。
本发明提供了一种基于半监督学习的恶意代码分析系统,按照恶意代码分析流程,主要包含了原始特征文件获取模块、特征提取模块、预处理模块、特征选择模块和分析模块五个部分。如图1所示。
原始特征文件获取恶意代码样本集中每个样本的反汇编文件和动态行为报告。特征提取模块主要通过分析恶意代码的反汇编文件和行为,找到可以有效区分恶意代码家族的静态特征与动态特征,并从每个样本的反汇编文件和动态行为报告中提取这些原始特征数据,其包括多种静态特征与多种动态特征。预处理模块实现了利用自然语言处理的思想及模型等方式,将原始特征数据进行序列化,每一种特征均产生多维度的特征项,从而转化为可以直接用于特征选择的数据集。特征选择模块使用特征打分器对每一维的特征项进行分数计算,分数的高低反映了该项特征数据的重要性,特征打分器集成多种特征选择标准,对各项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,从而实现降维,最后得到了可以用于训练分类模型的、较低维度的特征向量。分析模块是实现恶意代码分析的核心部分,其基于降维后的特征项,通过训练模型得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果,从而实现对未知代码的家族化,并给出分析结果报告。
下面针对每一个环节进行详细描述。
步骤(1):原始特征文件获取
反汇编文件与动态行为报告的获取参考现有的静态与动态分析技术。获取反汇编文件时,首先分析文件类型即文件是否加壳;若查壳结果为加壳,则需要先进行脱壳处理再反汇编,否则直接进行反汇编。动态行为报告的获取,通过搭建的Cuckoo Sandbox安全环境执行恶意代码,提取其json格式的动态分析报告。
步骤(2):特征提取
特征提取部分提取了4类静态特征,分别是加壳信息、操作码序列、PE Section(节)、关键字FUNCTION后函数名称;和4类动态特征,分别为系统调用序列、释放文件信息、IP地址、注册表路径。静态特征与动态特征的提取要分别读取反汇编文件和解析json文件。本发明在研究中证明了以下特征均为可有效区分恶意代码族群的特征。具体提取方法如下:
加壳特征:包括是否加壳与加壳类型;本发明使用C++脚本模拟PEiD的查壳原理,实现对恶意软件的查壳分析。
PE Section特征:以行为单位遍历反汇编文件,提取每行冒号前的字符串。提取处理后,每一个恶意代码样本得到一个与其对应的PE节字符串文件。
操作码特征:遍历读取反汇编文件中的操作码,提取处理后,每个恶意代码样本得到一个与其对应的操作码序列文件。
关键字FUNCTION后函数名称:提取反汇编文件中关键字FUNCTION与PRESS之间的函数名称字符串,提取处理后,每个样本对应一个函数名称特征文件。
系统调用序列:提取json报告中字段category=‘registry’、‘process’、‘file’、‘system’、‘services’、‘network’的API函数和时间点(time字段);再根据时间点的大小对API函数排序,排序后得到具有执行先后顺序的API函数序列,也称系统调用序列。提取处理后,每一个恶意代码样本得到一个与其对应的系统调用序列文件。
释放文件信息:将释放文件类型数、释放文件总数、各个类型的释放文件数量作为一类区分恶意代码的动态特征。提取时,获取json文件中‘dropped’字段内关键字‘type’的值即为释放文件类型,然后对所有的类型进行处理。
IP地址:提报json报告中的建立连接的目的IP地址,使用接口判断IP地址所属区域,将“区域”字符串去重后,作为一类动态特征。
注册表路径:对json报告内注册表特征提取时,首先筛选category=‘registry’的API调用;若调用的API函数名包含RegCreateKey、RegDeleteKey、RegSetValue、RegDeleteValue、RegReplaceKey、RegUnloadKey中的任何一个,则对此API对应的注册表操作路径‘regkey’的值进行提取。
步骤(3):预处理(序列化)
预处理主要完成特征的序列化,将其转化为可以直接用于特征选择的数据类型。具体处理方法与处理结果如表1。
表1预处理方法与结果
如表中所述的预处理方法中,有5种特征使用简单的数学统计方法预处理;使用N-gram(N=3,4,5)的方法对操作码与系统调用序列进行划分;对FUNCTION函数字符串利用词袋模型结合统计方法TF-IDF进一步处理特征。
系统调用和操作码的N-gram序列数量庞大,需要进行筛选,筛选规则如公式(1),令N-gram模型中的N分别取3,4,5,针对每一种取值,按照公式(1)获得的G值从大到小提取N-gram序列的前1000个序列。
G=(每类N-gram总个数)/(包含该N-gram的样本数) (1)
例如:样本A的API的3-gram序列有(1,2,3)、(3,1,4)、(4,7,9),样本B的API的3-gram序列有(1,2,3)、(8,9,2)、(1,2,3);其中,3-gram序列(1,2,3)的总个数为3,包含序列(1,2,3)的样本数为2;因此,计算得到的G=3/2。
按照上述的筛选规则,N-gram序列对应的N取3、4、5时,各分别得到了1000个特征序列,一共有3000个,并统计每个样本中这3000个N-gram序列出现的次数;最终对系统调用序列N-gram预处理的结果是M*3000的特征矩阵,其中M为样本数量。
步骤(4):特征选择
特征选择部分提出了特征打分器,该打分器由信息增益、随机森林和L1/L2正则项的逻辑回归共三项特征选择标准构成,其中:信息增益则使用信息增益公式计算得到的数值作为分数;随机森林是利用训练模型中得到的特征重要性作为得分;使用L1/L2正则项的逻辑回归,由于仅使用L1逻辑回归选择时,只能保留多个对目标值具有同等相关性的特征中的一个,即L1中系数为0的特征不代表不重要,所以,使用L2正则项来优化。因此,使用L1与L2正则项的逻辑回归进行打分时,若一个特征项在L1中的权值是非0的,那么在L2中选择权值与其差别不大且在L1中权值是0的特征项构成同类集合,最后,将这个集合中的特征平分L1的权值,平分后的权值作为L1与L2逻辑回归模型的打分值。另外,对上述三项的得分进行归一化处理,使其得分范围都在[0,1]之间;最后计算三项分数的平均分作为特征打分器的打分结果,范围区间是[0,1]。
根据特征选择的打分器的结果,对特征项得分由大到小排序;选择得分在前25%的特征项,得到特征项集合A;最后,运用PCA(主成分分析)算法对A进行特征抽取,得到特征项集合B。
步骤(5):分析
恶意代码分析模块基于上述4个研究内容,利用得到的较低维度的特征向量,结合LLGC(learning with local and global consistent)半监督分类算法训练得到分类器;当有新增的恶意代码需要分析时,先将该样本经前期处理得到特征向量,再输入分类器,得到预测的该样本所属族群的报告。
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于半监督学习的恶意代码分析方法,其特征在于,包括:
步骤1、获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;
步骤2、从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;
所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;
步骤3、将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;
步骤4、对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;
步骤5、基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。
2.如权利要求1所述的方法,其特征在于,所述步骤1在获取动态行为报告时,通过搭建的Cuckoo Sandbox安全环境执行恶意代码,提取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.如权利要求1所述的方法,其特征在于,步骤5的半监督分类算法采用局部与全局一致性算法LLGC。
7.一种基于半监督学习的恶意代码分析系统,其特征在于,包括:原始特征文件获取模块、特征提取模块、预处理模块、特征选择模块和分析模块;
原始特征文件获取模块,用于获取恶意代码样本集中每个样本的反汇编文件和动态行为报告;
特征提取模块,用于从每个样本的所述反汇编文件和动态行为报告中提取原始特征数据,包括4种静态特征与4种动态特征;所需提取的原始特征数据是通过分析恶意代码的反汇编文件和行为所确定的有效区分恶意代码家族的特征;
所述静态特征包括:加壳信息、操作码序列、PE节以及关键字FUNCTION后的函数名称;加壳信息包括是否加壳与加壳类型;
所述动态特征包括:系统调用序列、释放文件信息、IP地址和注册表路径;释放文件信息包括释放文件类别数、释放文件总数和各个类型的释放文件对应数量;
预处理模块,用于将所述原始特征数据进行序列化,每一种特征均产生多维度的特征项;
特征选择模块,用于对所述特征项进行降维处理,得到较低维度的特征项:使用特征打分器对每一维的特征项进行打分,分数的高低反映特征数据的重要性;特征打分器集成信息增益、随机森林和L1/L2逻辑回归三项特征选择标准,对三项特征选择标准的得分进行归一化处理,然后取平均分作为特征打分器的打分结果;筛选掉分数较低的特征项,最后得到用于训练分类模型的特征项;
分析模块,用于基于降维后的特征项,利用半监督分类算法训练得到用于区分恶意代码所属种群的特征分类器;利用该特征分类器对待分析的恶意代码进行处理,得到预测的恶意代码所属种群的分析结果。
8.如权利要求7所述的系统,其特征在于,所述预处理模块的序列化为:
对于加壳信息的序列化方式:用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转化为词频矩阵;
对于系统调用序列的序列化方式为:使用N-gram模型对API函数序列进行序列化处理;
对于IP地址的序列化方式为:判断IP地址所属区域,统计所有样本的区域类型N2种,每个样本使用0,1标记是否属某区域;序列化后得到的是M×N2的0、1矩阵;
对于释放文件信息的序列化方式为:统计所有样本的释放文件类型共N3个,计算每个样本各类型的数量;序列化后得到M×(N3+2)的矩阵,其中两维记载样本中释放文件的总数和释放文件的类型总数;
对于注册表路径的序列化方式为:统计路径字符串个数N4,每个样本使用0,1标记是否修改某注册表路径;序列化后得到的是M×N4的0、1矩阵。
9.如权利要求7所述的系统,其特征在于,所述特征提取模块的提取方式为:
对于所述系统调用序列的提取过程为:提取动态行为分析报告中字段category为‘registry’、‘process’、‘file’、‘system’、‘services’和‘network’的API函数和时间点;再根据时间点的大小对API函数排序,得到具有执行先后顺序的API函数序列,即为系统调用序列;
对于注册表路径的提取过程为:当调用的API函数名包含RegCreateKey、RegDeleteKey、RegSetValue、RegDeleteValue、RegReplaceKey、RegUnloadKey中的任何一个,则对此API对应的注册表操作路径‘regkey’的值进行提取,作为提取的注册表路径。
10.如权利要求8所述的系统,其特征在于,所述预处理模块使用N-gram模型对特征进行序列化处理为:
令N-gram模型中的N分别取3,4,5,针对每一种取值,按照公式(1)获得的G值从大到小提取N-gram序列的前1000个序列;
G=(每个N-gram总个数)/(包含该N-gram的样本数) (1)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710303017.8A CN107180191A (zh) | 2017-05-03 | 2017-05-03 | 一种基于半监督学习的恶意代码分析方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710303017.8A CN107180191A (zh) | 2017-05-03 | 2017-05-03 | 一种基于半监督学习的恶意代码分析方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107180191A true CN107180191A (zh) | 2017-09-19 |
Family
ID=59831687
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710303017.8A Pending CN107180191A (zh) | 2017-05-03 | 2017-05-03 | 一种基于半监督学习的恶意代码分析方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107180191A (zh) |
Cited By (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679403A (zh) * | 2017-10-11 | 2018-02-09 | 北京理工大学 | 一种基于序列比对算法的勒索软件变种检测方法 |
CN107832611A (zh) * | 2017-10-21 | 2018-03-23 | 北京理工大学 | 一种动静态特征结合的僵尸程序检测与分类方法 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN108108616A (zh) * | 2017-12-19 | 2018-06-01 | 努比亚技术有限公司 | 恶意行为检测方法、移动终端及存储介质 |
CN108376220A (zh) * | 2018-02-01 | 2018-08-07 | 东巽科技(北京)有限公司 | 一种基于深度学习的恶意样本程序分类方法及系统 |
CN108923962A (zh) * | 2018-06-25 | 2018-11-30 | 哈尔滨工业大学 | 一种基于半监督聚类的局部网络拓扑测量任务选择方法 |
CN109190653A (zh) * | 2018-07-09 | 2019-01-11 | 四川大学 | 基于半监督密度聚类的恶意代码家族同源性分析技术 |
CN109543410A (zh) * | 2018-11-20 | 2019-03-29 | 北京理工大学 | 一种基于语义映射关联的恶意代码检测方法 |
CN109697361A (zh) * | 2017-10-20 | 2019-04-30 | 北京理工大学 | 一种基于木马特征的木马分类方法 |
CN109711160A (zh) * | 2018-11-30 | 2019-05-03 | 北京奇虎科技有限公司 | 应用程序检测方法、装置及神经网络系统 |
CN109784059A (zh) * | 2019-01-11 | 2019-05-21 | 北京中睿天下信息技术有限公司 | 一种木马文件溯源方法、系统及设备 |
CN109918906A (zh) * | 2017-12-12 | 2019-06-21 | 财团法人资讯工业策进会 | 异常行为侦测模型生成装置及其异常行为侦测模型生成方法 |
CN109933984A (zh) * | 2019-02-15 | 2019-06-25 | 中时瑞安(北京)网络科技有限责任公司 | 一种最佳聚类结果筛选方法、装置和电子设备 |
CN110059483A (zh) * | 2018-01-17 | 2019-07-26 | 湖南大学 | 一种基于二维操作码矩阵和密度聚类的恶意软件检测技术 |
CN110348214A (zh) * | 2019-07-16 | 2019-10-18 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN110414234A (zh) * | 2019-06-28 | 2019-11-05 | 奇安信科技集团股份有限公司 | 恶意代码家族识别方法及装置 |
CN110502897A (zh) * | 2018-05-16 | 2019-11-26 | 南京大学 | 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法 |
WO2019242442A1 (zh) * | 2018-06-20 | 2019-12-26 | 深信服科技股份有限公司 | 基于多模型特征的恶意软件识别方法、系统及相关装置 |
WO2020108357A1 (zh) * | 2018-11-26 | 2020-06-04 | 华为技术有限公司 | 一种程序分类模型训练方法、程序分类方法及装置 |
CN111262818A (zh) * | 2018-11-30 | 2020-06-09 | 北京奇虎科技有限公司 | 病毒检测方法、系统、装置、设备及存储介质 |
CN111538989A (zh) * | 2020-04-22 | 2020-08-14 | 四川大学 | 基于图卷积网络和主题模型的恶意代码同源性分析方法 |
CN112035836A (zh) * | 2019-06-04 | 2020-12-04 | 四川大学 | 一种恶意代码家族api序列挖掘方法 |
CN112367338A (zh) * | 2020-11-27 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 恶意请求检测方法及装置 |
CN112380535A (zh) * | 2020-11-13 | 2021-02-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
CN113139189A (zh) * | 2021-04-29 | 2021-07-20 | 广州大学 | 一种挖矿恶意软件的识别方法、系统和存储介质 |
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
CN113836528A (zh) * | 2020-06-08 | 2021-12-24 | 中国电信股份有限公司 | 安卓应用查壳方法和装置 |
WO2021259207A1 (zh) * | 2020-06-24 | 2021-12-30 | 广州大学 | 基于stacking集成的APT组织识别方法、系统及存储介质 |
CN113935022A (zh) * | 2021-12-17 | 2022-01-14 | 北京微步在线科技有限公司 | 一种同源样本捕获方法、装置、电子设备及存储介质 |
CN115249048A (zh) * | 2022-09-16 | 2022-10-28 | 西南民族大学 | 一种对抗样本生成方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205396A (zh) * | 2015-10-15 | 2015-12-30 | 上海交通大学 | 一种基于深度学习的安卓恶意代码检测系统及其方法 |
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN106096415A (zh) * | 2016-06-24 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于深度学习的恶意代码检测方法及系统 |
-
2017
- 2017-05-03 CN CN201710303017.8A patent/CN107180191A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105205396A (zh) * | 2015-10-15 | 2015-12-30 | 上海交通大学 | 一种基于深度学习的安卓恶意代码检测系统及其方法 |
CN106096405A (zh) * | 2016-04-26 | 2016-11-09 | 浙江工业大学 | 一种基于Dalvik指令抽象的Android恶意代码检测方法 |
CN106096415A (zh) * | 2016-06-24 | 2016-11-09 | 康佳集团股份有限公司 | 一种基于深度学习的恶意代码检测方法及系统 |
Non-Patent Citations (1)
Title |
---|
冯本慧: "基于数据挖掘与机器学习的恶意代码检测技术研究", 《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》 * |
Cited By (43)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107679403B (zh) * | 2017-10-11 | 2021-02-12 | 北京理工大学 | 一种基于序列比对算法的勒索软件变种检测方法 |
CN107679403A (zh) * | 2017-10-11 | 2018-02-09 | 北京理工大学 | 一种基于序列比对算法的勒索软件变种检测方法 |
CN109697361A (zh) * | 2017-10-20 | 2019-04-30 | 北京理工大学 | 一种基于木马特征的木马分类方法 |
CN107832611A (zh) * | 2017-10-21 | 2018-03-23 | 北京理工大学 | 一种动静态特征结合的僵尸程序检测与分类方法 |
CN109918906A (zh) * | 2017-12-12 | 2019-06-21 | 财团法人资讯工业策进会 | 异常行为侦测模型生成装置及其异常行为侦测模型生成方法 |
CN109918906B (zh) * | 2017-12-12 | 2022-09-02 | 财团法人资讯工业策进会 | 异常行为侦测模型生成装置及其异常行为侦测模型生成方法 |
CN108108616A (zh) * | 2017-12-19 | 2018-06-01 | 努比亚技术有限公司 | 恶意行为检测方法、移动终端及存储介质 |
CN107908963B (zh) * | 2018-01-08 | 2020-11-06 | 北京工业大学 | 一种自动化检测恶意代码核心特征的方法 |
CN107908963A (zh) * | 2018-01-08 | 2018-04-13 | 北京工业大学 | 一种自动化检测恶意代码核心特征方法 |
CN110059483A (zh) * | 2018-01-17 | 2019-07-26 | 湖南大学 | 一种基于二维操作码矩阵和密度聚类的恶意软件检测技术 |
CN108376220A (zh) * | 2018-02-01 | 2018-08-07 | 东巽科技(北京)有限公司 | 一种基于深度学习的恶意样本程序分类方法及系统 |
CN110502897A (zh) * | 2018-05-16 | 2019-11-26 | 南京大学 | 一种基于混合分析的网页恶意JavaScript代码识别和反混淆方法 |
WO2019242442A1 (zh) * | 2018-06-20 | 2019-12-26 | 深信服科技股份有限公司 | 基于多模型特征的恶意软件识别方法、系统及相关装置 |
CN108923962A (zh) * | 2018-06-25 | 2018-11-30 | 哈尔滨工业大学 | 一种基于半监督聚类的局部网络拓扑测量任务选择方法 |
CN108923962B (zh) * | 2018-06-25 | 2021-05-28 | 哈尔滨工业大学 | 一种基于半监督聚类的局部网络拓扑测量任务选择方法 |
CN109190653A (zh) * | 2018-07-09 | 2019-01-11 | 四川大学 | 基于半监督密度聚类的恶意代码家族同源性分析技术 |
CN109190653B (zh) * | 2018-07-09 | 2020-06-05 | 四川大学 | 基于半监督密度聚类的恶意代码家族同源性分析方法 |
CN109543410B (zh) * | 2018-11-20 | 2021-05-07 | 北京理工大学 | 一种基于语义映射关联的恶意代码检测方法 |
CN109543410A (zh) * | 2018-11-20 | 2019-03-29 | 北京理工大学 | 一种基于语义映射关联的恶意代码检测方法 |
WO2020108357A1 (zh) * | 2018-11-26 | 2020-06-04 | 华为技术有限公司 | 一种程序分类模型训练方法、程序分类方法及装置 |
CN111262818A (zh) * | 2018-11-30 | 2020-06-09 | 北京奇虎科技有限公司 | 病毒检测方法、系统、装置、设备及存储介质 |
CN109711160B (zh) * | 2018-11-30 | 2023-10-31 | 北京奇虎科技有限公司 | 应用程序检测方法、装置及神经网络系统 |
CN111262818B (zh) * | 2018-11-30 | 2023-08-15 | 三六零科技集团有限公司 | 病毒检测方法、系统、装置、设备及存储介质 |
CN109711160A (zh) * | 2018-11-30 | 2019-05-03 | 北京奇虎科技有限公司 | 应用程序检测方法、装置及神经网络系统 |
CN109784059B (zh) * | 2019-01-11 | 2020-11-17 | 北京中睿天下信息技术有限公司 | 一种木马文件溯源方法、系统及设备 |
CN109784059A (zh) * | 2019-01-11 | 2019-05-21 | 北京中睿天下信息技术有限公司 | 一种木马文件溯源方法、系统及设备 |
CN109933984A (zh) * | 2019-02-15 | 2019-06-25 | 中时瑞安(北京)网络科技有限责任公司 | 一种最佳聚类结果筛选方法、装置和电子设备 |
CN112035836A (zh) * | 2019-06-04 | 2020-12-04 | 四川大学 | 一种恶意代码家族api序列挖掘方法 |
CN110414234A (zh) * | 2019-06-28 | 2019-11-05 | 奇安信科技集团股份有限公司 | 恶意代码家族识别方法及装置 |
CN110348214B (zh) * | 2019-07-16 | 2021-06-08 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN110348214A (zh) * | 2019-07-16 | 2019-10-18 | 电子科技大学 | 对恶意代码检测的方法及系统 |
CN113392397A (zh) * | 2020-03-11 | 2021-09-14 | 四川大学 | 基于混合特征和emd的恶意代码半监督聚类方法 |
CN111538989A (zh) * | 2020-04-22 | 2020-08-14 | 四川大学 | 基于图卷积网络和主题模型的恶意代码同源性分析方法 |
CN113836528A (zh) * | 2020-06-08 | 2021-12-24 | 中国电信股份有限公司 | 安卓应用查壳方法和装置 |
CN113836528B (zh) * | 2020-06-08 | 2023-10-13 | 中国电信股份有限公司 | 安卓应用查壳方法和装置 |
WO2021259207A1 (zh) * | 2020-06-24 | 2021-12-30 | 广州大学 | 基于stacking集成的APT组织识别方法、系统及存储介质 |
CN112380535A (zh) * | 2020-11-13 | 2021-02-19 | 重庆科技学院 | 一种基于cbow的恶意代码三通道可视化识别方法 |
CN112367338A (zh) * | 2020-11-27 | 2021-02-12 | 腾讯科技(深圳)有限公司 | 恶意请求检测方法及装置 |
CN112632537A (zh) * | 2020-12-23 | 2021-04-09 | 北京鸿腾智能科技有限公司 | 恶意代码检测方法、装置、设备及存储介质 |
CN113139189A (zh) * | 2021-04-29 | 2021-07-20 | 广州大学 | 一种挖矿恶意软件的识别方法、系统和存储介质 |
CN113935022A (zh) * | 2021-12-17 | 2022-01-14 | 北京微步在线科技有限公司 | 一种同源样本捕获方法、装置、电子设备及存储介质 |
CN115249048B (zh) * | 2022-09-16 | 2023-01-10 | 西南民族大学 | 一种对抗样本生成方法 |
CN115249048A (zh) * | 2022-09-16 | 2022-10-28 | 西南民族大学 | 一种对抗样本生成方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107180191A (zh) | 一种基于半监督学习的恶意代码分析方法和系统 | |
CN106503558B (zh) | 一种基于社团结构分析的Android恶意代码检测方法 | |
CN102411563B (zh) | 一种识别目标词的方法、装置及系统 | |
Alam et al. | Cyberbullying detection: an ensemble based machine learning approach | |
CN108959924A (zh) | 一种基于词向量和深度神经网络的Android恶意代码检测方法 | |
CN107301171A (zh) | 一种基于情感词典学习的文本情感分析方法和系统 | |
CN109684840A (zh) | 基于敏感调用路径的Android恶意软件检测方法 | |
CN104346379B (zh) | 一种基于逻辑和统计技术的数据元识别方法 | |
CN110232280A (zh) | 一种基于树结构卷积神经网络的软件安全漏洞检测方法 | |
CN106202518A (zh) | 基于chi和分类别关联规则算法的短文本分类方法 | |
CN107577942A (zh) | 一种用于Android恶意软件检测的混合特征筛选方法 | |
CN105654144B (zh) | 一种基于机器学习的社交网络本体构建方法 | |
CN108491429A (zh) | 一种基于类内类间文档频和词频统计的特征选择方法 | |
CN109005145A (zh) | 一种基于自动特征抽取的恶意url检测系统及其方法 | |
CN106599041A (zh) | 基于大数据平台的文本处理及检索系统 | |
CN108228845B (zh) | 一种手机游戏分类方法 | |
CN108090216B (zh) | 一种标签预测方法、装置及存储介质 | |
CN106372060A (zh) | 搜索文本的标注方法和装置 | |
US7266554B2 (en) | Document extracting device, document extracting program, and document extracting method | |
CN110351301A (zh) | 一种http请求双层递进式异常检测方法 | |
CN107145516A (zh) | 一种文本聚类方法及系统 | |
CN108345587A (zh) | 一种评论的真实性检测方法与系统 | |
CN110472203B (zh) | 一种文章的查重检测方法、装置、设备及存储介质 | |
CN109918505A (zh) | 一种基于文本处理的网络安全事件可视化方法 | |
CN107679135A (zh) | 面向网络文本大数据的话题检测与跟踪方法、装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
WD01 | Invention patent application deemed withdrawn after publication | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20170919 |