一种恶意代码检测的方法、装置、电子设备及存储介质制造方法及图纸

技术编号:31091192 阅读:13 留言:0更新日期:2021-12-01 12:54
本发明专利技术公开了一种恶意代码检测的方法、装置、电子设备及存储介质,所述方法包括:将可执行程序代码在动态沙箱中模拟运行,获取数据集;利用数据集训练XGBoost模型;利用数据集训练TextCNN模型;将实时采集的数据分别输入训练好的XGBoost模型和训练好的TextCNN模型,将两个模型的输出结果进行归一化处理得到最终的预测结果;本发明专利技术的优点在于:恶意代码的识别率高。别率高。别率高。

【技术实现步骤摘要】
一种恶意代码检测的方法、装置、电子设备及存储介质


[0001]本专利技术涉及网络安全领域,更具体涉及一种恶意代码检测的方法、装置、电子设备及存储介质。

技术介绍

[0002]恶意代码是指故意编制或设置的、对网络或系统会产生威胁或潜在威胁的计算机代码,传统的恶意代码包括蠕虫、木马等,这些恶意代码严重侵犯用户合法权益,甚至将给用户及他人带来巨大的经济或其他形式的利益损失。
[0003]传统的恶意程序检测主要通过机器学习进行,但往往单个模型的识别率并不高。中国专利授权公告号CN109379377B,提供一种加密恶意流量检测方法、装置、电子设备及计算机可读存储介质,包括如下步骤:基于正常流量样本和恶意流量样本提取特征;将所述提取特征中适用于深度学习的第一特征输入深度学习模型进行训练,形成基于深度学习的深度检测模型;将深度学习模型输出的特征集输入到机器学习模型,将所述提取特征中适用于机器学习的第二特征输入到所述机器学习模型,形成基于机器学习的机器检测模型;利用所述深度检测模型和所述机器学习检测模型,对真实网络流量进行检测,最终识别出加密恶意流量。该专利可以有效解决人工特征提取不全面的问题。同时可以更加有效地识别恶意加密流量,同时可以确保检测模型在语义上是用户可理解的。但是其属于单独深度检测模型和所述机器学习检测模型进行恶意流量识别,识别的结果考虑的是单一模型的结果,对恶意流量的识别率不高。

技术实现思路

[0004]本专利技术所要解决的技术问题在于现有技术对恶意流量的识别率不高的问题。
[0005]本专利技术通过以下技术手段实现解决上述技术问题的:一种恶意代码检测的方法,所述方法包括:
[0006]步骤一:将可执行程序代码在动态沙箱中模拟运行,获取数据集;
[0007]步骤二:利用数据集训练XGBoost模型;
[0008]步骤三:利用数据集训练TextCNN模型;
[0009]步骤四:将实时采集的数据分别输入训练好的XGBoost模型和训练好的TextCNN模型,将两个模型的输出结果进行归一化处理得到最终的预测结果。
[0010]本专利技术将实时采集的数据分别输入训练好的XGBoost模型和训练好的TextCNN模型,将两个模型的输出结果进行归一化处理得到最终的预测结果,将机器学习模型和深度学习模型相结合,输出的预测结果是融合了两种模型的结果,大大提高了恶意代码的识别率。
[0011]进一步地,所述步骤一包括:将windows可执行程序在动态沙箱中模拟运行,得到每个样本对应的API指令序列,每个样本的字段包括文件编号、文件标签、文件调用的API名称、API调用的顺序编号,其中,文件标签类型包括正常、勒索病毒、挖矿程序、DDOS木马、蠕
虫病毒、感染型病毒、后门程序以及木马程序。
[0012]进一步地,所述步骤二包括:
[0013]步骤201:将数据集中API指令序列输入word2vec模型中进行学习,获得每个API指令序列对应的词向量,再根据每个样本对应的API指令序列,通过相加求平均值的方式获得每个样本对应的词向量;
[0014]步骤202:将数据集中API指令序列输入N

gram模型中进行学习,得到每个API指令序列的N

gram特征,再根据每个样本对应的API指令序列的编号,获得每个样本的N

gram特征;
[0015]步骤203:将每个样本对应的词向量与每个样本的N

gram特征进行拼接融合,得到融合后的特征向量;
[0016]步骤204:将每个样本融合后的特征向量输入到XGBoost模型进行训练,不断调整XGBoost模型的参数,直到XGBoost模型的目标函数收敛时停止训练,得到训练好的XGBoost模型。
[0017]进一步地,所述步骤三包括:
[0018]步骤301:将数据集中API指令序列输入word2vec模型中进行学习,获得每个API指令序列对应的词向量,在每个API指令序列对应的词向量中添加零向量使得每个API指令序列对应的词向量维度相同得到样本向量;
[0019]步骤302:将每个样本向量输入到TextCNN模型进行训练,不断调整TextCNN模型的参数,直到TextCNN模型的目标函数收敛时停止训练,得到训练好的TextCNN模型。
[0020]更进一步地,所述TextCNN模型的模型参数filter_size设置为[2,4,6,8,10,12,14,16,18,20]。
[0021]更进一步地,步骤301之前还包括:对每个样本的API指令序列进行统一长度的处理,对于API指令序列长度低于预设值的,将其填充到预设值,对于API指令序列长度超过预设值的,只保留前预设值个API。
[0022]本专利技术还提供一种恶意代码检测的装置,所述装置包括:
[0023]数据集获取模块,用于将可执行程序代码在动态沙箱中模拟运行,获取数据集;
[0024]XGBoost模型训练模块,用于利用数据集训练XGBoost模型;
[0025]TextCNN模型训练模块,用于利用数据集训练TextCNN模型;
[0026]预测结果输出模块,用于将实时采集的数据分别输入训练好的XGBoost模型和训练好的TextCNN模型,将两个模型的输出结果进行归一化处理得到最终的预测结果。
[0027]进一步地,所述数据集获取模块还用于:将windows可执行程序在动态沙箱中模拟运行,得到每个样本对应的API指令序列,每个样本的字段包括文件编号、文件标签、文件调用的API名称、API调用的顺序编号,其中,文件标签类型包括正常、勒索病毒、挖矿程序、DDOS木马、蠕虫病毒、感染型病毒、后门程序以及木马程序。
[0028]进一步地,所述XGBoost模型训练模块包括:
[0029]词向量获取单元,用于将数据集中API指令序列输入word2vec模型中进行学习,获得每个API指令序列对应的词向量,再根据每个样本对应的API指令序列,通过相加求平均值的方式获得每个样本对应的词向量;
[0030]N

gram特征获取单元,用于将数据集中API指令序列输入N

gram模型中进行学习,
得到每个API指令序列的N

gram特征,再根据每个样本对应的API指令序列的编号,获得每个样本的N

gram特征;
[0031]特征向量获取单元,用于将每个样本对应的词向量与每个样本的N

gram特征进行拼接融合,得到融合后的特征向量;
[0032]XGBoost训练单元,用于将每个样本融合后的特征向量输入到XGBoost模型进行训练,不断调整XGBoost模型的参数,直到XGBoost模型的目标函数收敛时停止训练,得到训练好的XGBoost模型。
[0033]进一步地,所述T本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种恶意代码检测的方法,其特征在于,所述方法包括:步骤一:将可执行程序代码在动态沙箱中模拟运行,获取数据集;步骤二:利用数据集训练XGBoost模型;步骤三:利用数据集训练TextCNN模型;步骤四:将实时采集的数据分别输入训练好的XGBoost模型和训练好的TextCNN模型,将两个模型的输出结果进行归一化处理得到最终的预测结果。2.根据权利要求1所述的一种恶意代码检测的方法,其特征在于,所述步骤一包括:将windows可执行程序在动态沙箱中模拟运行,得到每个样本对应的API指令序列,每个样本的字段包括文件编号、文件标签、文件调用的API名称、API调用的顺序编号,其中,文件标签类型包括正常、勒索病毒、挖矿程序、DDOS木马、蠕虫病毒、感染型病毒、后门程序以及木马程序。3.根据权利要求1所述的一种恶意代码检测的方法,其特征在于,所述步骤二包括:步骤201:将数据集中API指令序列输入word2vec模型中进行学习,获得每个API指令序列对应的词向量,再根据每个样本对应的API指令序列,通过相加求平均值的方式获得每个样本对应的词向量;步骤202:将数据集中API指令序列输入N

gram模型中进行学习,得到每个API指令序列的N

gram特征,再根据每个样本对应的API指令序列的编号,获得每个样本的N

gram特征;步骤203:将每个样本对应的词向量与每个样本的N

gram特征进行拼接融合,得到融合后的特征向量;步骤204:将每个样本融合后的特征向量输入到XGBoost模型进行训练,不断调整XGBoost模型的参数,直到XGBoost模型的目标函数收敛时停止训练,得到训练好的XGBoost模型。4.根据权利要求1所述的一种恶意代码检测的方法,其特征在于,所述步骤三包括:步骤301:将数据集中API指令序列输入word2vec模型中进行学习,获得每个API指令序列对应的词向量,在每个API指令序列对应的词向量中添加零向量使得每个API指令序列对应的词向...

【专利技术属性】
技术研发人员:马影魏国富周晓勇夏玉明刘胜徐明王启凡梁淑云余贤喆陶景龙殷钱安
申请(专利权)人:上海观安信息技术股份有限公司
类型:发明
国别省市:

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

1