一种挖矿恶意软件的识别方法、系统和存储介质转让专利
申请号 : CN202110471943.2
文献号 : CN113139189B
文献日 : 2021-10-26
发明人 : 李树栋 , 张倩青 , 吴晓波 , 蒋来源 , 韩伟红 , 方滨兴 , 田志宏 , 殷丽华 , 顾钊铨 , 秦丹一
申请人 : 广州大学
摘要 :
权利要求 :
1.一种挖矿恶意软件的识别方法,其特征在于,包括以下步骤:数据预处理,对二进制样本进行多维度数据操作,得到对应的不同维度的特征数据;
所述多维度数据操作包括:
对二进制文件样本以二进制字节码的形式读取文件,然后再解码成字符串,并筛选出长度在一定区间内的字符串;
提取二进制文件样本中的定义的文本数据,包括特征操作函数名、动态链接库以及与挖矿软件有关的文本数据;
对二进制文件样本反汇编,对其节区大小进行特征统计;
对二进制文件样本进行反汇编获取其入口函数数据;
文本特征提取,使用TF‑IDF算法结合n‑gram对所述不同维度的特征数据进行特征提取并向量化;
基于Stacking构建多模型集成的挖矿恶意软件识别模型并得到预测结果,所述Stacking的步骤包括:将不同维度的特征数据集划分为训练数据集和测试数据集;基于XGBoost算法在训练集中进行K折交叉验证训练并得到基学习器以及基学习器的训练结果;
基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元学习器;利用所述基学习器和元学习器对测试数据集进行预测并得到最终预测结果。
2.根据权利要求1所述的一种挖矿恶意软件的识别方法,其特征在于,所述使用TF‑IDF算法结合n‑gram对所述不同维度的特征数据进行特征提取并向量化具体步骤为:利用所述不同维度的特征数据先生成n‑gram的词条;
分别统计每个词条出现的词频,为其附上一个权值参数;
计算每个词条的最终权重。
3.根据权利要求2所述的一种挖矿恶意软件的识别方法,其特征在于,所述每个词条出现的词频计算公式为:
其中,TFi,j为词条i在样本j中出现的频率;ni,j为词条i在样本j中出现的次数;∑knk,j为样本j中出现的总词条数;
所述权值参数计算公式为:
其中,IDFi,j为样本j中词条i附上的权值参数;|D|为总样本数,|j:i∈dj|为包含词条i的样本数目;
所述每个词条的最终权重TF‑IDFi,j的计算公式为:TF‑IDFi,j=TFi,j×IDFi,j。
4.根据权利要求2所述的一种挖矿恶意软件的识别方法,其特征在于,所述生成n‑gram的词条的过程中,过滤频率占比高于0.8以及频率值低于3的词条,根据实际生成的词条情况,限制词条个数在[1000,5000]区间内;所述统计每个词条出现的词频的过程中,对字符串数据的n‑gram统计1‑gram的词条特征,对文本数据的n‑gram统计1‑gram和2‑gram的词条特征,对入口函数的n‑gram统计2‑gram、3‑gram、4‑gram和5‑gram的词条特征。
5.根据权利要求1所述的一种挖矿恶意软件的识别方法,其特征在于,所述将不同维度的特征数据集划分为训练数据集和测试数据集具体为:原始数据集经预处理及向量化后的得到的四组不同维度的特征数据集划分为训练数据集和测试数据集;
所述训练数据集包括D1、D2、D3和D4:D1={(x1i,yi),i=1,2,...,m},D2={(x2i,yi),i=1,2,...,m},D3={(x3i,yi),i=1,2,...,m},D4={(x4i,yi),i=1,2,...,m},其中,xni为第n个训练数据集Dn的第i个样本的特征向量,n=1,2,3,4,以此类推;yi为第i个样本对应的标签;m为每个数据集中样本的数量;
所述测试数据集设为T。
6.根据权利要求1所述的一种挖矿恶意软件的识别方法,其特征在于,所述基于XGBoost算法在训练数据集中进行K折交叉验证训练并得到基学习器以及基学习器的训练结果,基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元学习器的具体方法为:
对于K折交叉验证训练中,设D‑nK为第n个训练数据集Dn的第K折训练集,设DnK为第n个训练数据集Dn的第K折测试集;
基于XGBoost算法在D‑nK中进行训练得到4个基学习器XGBoost_n,其中n=1,2,3,4;对于DnK中的每一个样本xi,
基学习器XGBoost_n对其的预测结果表示为ZKi,并构成新的数据集Dnew={(Z1i,Z2i,...,ZKi,yi),i=1,2,...,m};
基于LightGBM算法在Dnew中进行训练并得到元学习器LightGBM模型。
7.根据权利要求1所述的一种挖矿恶意软件的识别方法,其特征在于,利用所述基学习器和元学习器对测试数据集进行预测并得到最终预测结果具体为:利用所述基学习器对测试集T进行预测,得到预测结果W1、W2、W3和W4,并构建新的测试数据集Tnew={(W1,W2,W3,W4)};利用所述元学习器对Tnew进行预测,即得最终的预测结果。
8.一种挖矿恶意软件的识别系统,其特征在于,应用于权利要求1‑7中任一项所述的一种挖矿恶意软件的识别方法,包括预处理模块、文本特征提取模块以及模型构建模块;
所述预处理模块,用于进行数据预处理,对二进制样本进行多维度数据操作,得到对应的不同维度的特征数据;
所述多维度数据操作包括:
对二进制文件样本以二进制字节码的形式读取文件,然后再解码成字符串,并筛选出长度在一定区间内的字符串;
提取二进制文件样本中的定义的文本数据,包括特征操作函数名、动态链接库以及与挖矿软件有关的文本数据;
对二进制文件样本反汇编,对其节区大小进行特征统计;
对二进制文件样本进行反汇编获取其入口函数数据;
所述文本特征提取模块,用于进行文本特征提取,使用TF‑IDF算法结合n‑gram对所述不同维度的特征数据进行特征提取并向量化;
所述模型构建模块,作用为基于Stacking构建多模型集成的挖矿恶意软件识别模型并得到预测结果,所述Stacking的步骤包括:将不同维度的特征数据集划分为训练数据集和测试数据集;基于XGBoost算法在训练集中进行K折交叉验证训练并得到基学习器以及基学习器的训练结果;基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元学习器;利用所述基学习器和元学习器对测试数据集进行预测并得到最终预测结果。
9.一种存储介质,存储有程序,其特征在于:所述程序被处理器执行时,实现权利要求
1‑7任一项所述的一种挖矿恶意软件的识别方法。
说明书 :
一种挖矿恶意软件的识别方法、系统和存储介质
技术领域
背景技术
而获取加密货币牟利。挖矿恶意软件一般隐蔽性较强,难以被检测到,一旦计算机被入侵,
恶意软件就会在后台默默运行。由于挖矿程序会消耗大量的CPU或GPU资源,占用大量的系
统资源和网络资源,会造成系统运行卡顿或状态异常,使得受入侵者计算机性能有所下降,
且性能下降的程度会随着挖矿恶意软件占用计算资源的增多而增加。由于获益的直接性,
挖矿恶意软件已经成为不法分子使用最为频繁的攻击方式之一,每年全国有大量服务器被
挖矿恶意软件感染。
相关的数据包。网页挖矿脚本检测方法主要是获取待测页面与挖矿脚本有关的特征,并判
断其特征值与预设特征值阈值的大小关系,来判定待测页面中是否存在挖矿脚本。而对于
二进制文件的挖矿木马样本的检测方法比较少,基于二进制的挖矿样本检测主要分为静态
分析和动态分析两种方式。静态分析在不执行程序的情况下,通过反汇编、反编译等方法使
用词法分析、文本解析、控制流等技术来挖掘程序,提取其有用特征信息。而动态的分析是
通过实际运行软件,捕捉行为进行分析。
静态方法由于无须实际执行恶意软件,因此速度相对较快且不会产生危害操作系统的恶意
行为,但对恶意软件多态,变形和加壳的手段很难提取有效的特征。静态方法中基于特征码
的检测方法和基于启发的检测方法简单有效,但分别依赖于特征库和安全人员对于挖矿恶
意软件的分析,都会随着挖矿恶意样本的增大受到局限性,导致检测效率低下。基于二进制
文件的挖矿恶意样本检测的动态分析方法需要真正地运行恶意软件,对于不能运行的挖矿
恶意样本就无法使用动态方法对其进行检测。另外,模拟所有恶意软件行为需要对恶意软
件行为进行持续监控,导致计算机资源的巨大浪费,所以在检测大量挖矿恶意软件时,动态
分析方法并不很适用。
发明内容
析方法对其进行预处理,并向量化提取出有效的挖矿恶意软件的多维度特征,然后构建多
模型集成的挖矿恶意软件识别模型,可以应用于实际网络环境中,有效地识别挖矿恶意软
件。
XGBoost算法在训练集中进行K折交叉验证训练并得到基学习器以及基学习器的训练结果;
基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元学习器;利用所述基学
习器和元学习器对测试数据集进行预测并得到最终预测结果。
内;所述统计每个词条出现的词频的过程中,对字符串数据的n‑gram统计1‑gram的词条特
征,对文本数据的n‑gram统计1‑gram和2‑gram的词条特征,对入口函数的n‑gram统计2‑
gram、3‑gram、4‑gram和5‑gram的词条特征。
分为训练数据集和测试数据集;
练结果中进行训练并得到元学习器的具体方法为:
果。
集和测试数据集;基于XGBoost算法在训练集中进行K折交叉验证训练并得到基学习器以及
基学习器的训练结果;基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元
学习器;利用所述基学习器和元学习器对测试数据集进行预测并得到最终预测结果。
的动态方法不适用于不能运行的二进制样本,另外动态方法随着样本量的增加,会导致计
算机资源的巨大浪费;现有的基于二进制文件的挖矿恶意软件的静态方法,特征提取的维
度单一,模型的识别准确率低。而本发明是基于由挖矿恶意软件和非挖矿恶意软件的二进
制文件样本组成的数据集,通过多个维度分析,并使用静态分析方法对其进行预处理,然后
对预处理后的文本数据分别进行特征提取,得到挖矿恶意软件的多维度特征,并对不同维
度的特征设计了多模型集成的方法,基于XGBoost算法分别在不同维度特征训练出不同分
类器,并将这些分类器作为Stacking集成模型的初级学习器,以LightGBM算法作为次级学
习器,构造了挖矿恶意软件识别组合模型,该模型识别准确率高,误报率低,综合性能较好,
消耗的资源少。
附图说明
具体实施方式
本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没
有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
维度特征,然后构建多模型集成的挖矿恶意软件识别模型。
有关的文本数据(pool、https、connection、Reg、cpu、gpu、coin等);
征向量数据集,具体步骤为:
况,限制词条特征的个数在[1000,5000]区间内;在步骤S2.2所述统计每个词条出现的词频
的过程中,对字符串数据的n‑gram统计1‑gram的词条特征,对文本数据的n‑gram统计1‑
gram和2‑gram的词条特征,对入口函数的n‑gram统计2‑gram、3‑gram、4‑gram和5‑gram的词
条特征,实际的词条长度选取情况可结合模型得分情况进行选择。
{(Z1i,Z2i,…,ZKi,yi),i=1,2,…,m};基于LightGBM算法在Dnew中进行训练并得到元学习器
LightGBM。
即得最终的预测结果。
对应的不同维度的特征数据;
集和测试数据集;基于XGBoost算法在训练集中进行K折交叉验证训练并得到基学习器以及
基学习器的训练结果;基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元
学习器;利用所述基学习器和元学习器对测试数据集进行预测并得到最终预测结果。
构划分成不同的功能模块,以完成以上描述的全部或者部分功能,该系统是应用于上述实
施例的一种挖矿恶意软件的识别方法。
XGBoost算法在训练集中进行K折交叉验证训练并得到基学习器以及基学习器的训练结果;
基于LightGBM算法在所述基学习器的训练结果中进行训练并得到元学习器;利用所述基学
习器和元学习器对测试数据集进行预测并得到最终预测结果。
或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下
列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路
的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场
可编程门阵列(FPGA)等。
均应为等效的置换方式,都包含在本发明的保护范围之内。