CN112818344B - 一种运用人工智能算法提高病毒查杀率的方法 - Google Patents
一种运用人工智能算法提高病毒查杀率的方法 Download PDFInfo
- Publication number
- CN112818344B CN112818344B CN202010828745.2A CN202010828745A CN112818344B CN 112818344 B CN112818344 B CN 112818344B CN 202010828745 A CN202010828745 A CN 202010828745A CN 112818344 B CN112818344 B CN 112818344B
- Authority
- CN
- China
- Prior art keywords
- feature
- model
- sample
- training
- features
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 23
- 241000700605 Viruses Species 0.000 title claims abstract description 12
- 238000013473 artificial intelligence Methods 0.000 title claims abstract description 9
- 238000012549 training Methods 0.000 claims abstract description 48
- 238000012216 screening Methods 0.000 claims abstract description 17
- 238000011156 evaluation Methods 0.000 claims abstract description 15
- 238000007781 pre-processing Methods 0.000 claims abstract description 10
- 238000000605 extraction Methods 0.000 claims abstract description 6
- 238000012795 verification Methods 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 5
- 238000003066 decision tree Methods 0.000 claims description 3
- 230000000694 effects Effects 0.000 claims description 3
- 239000011159 matrix material Substances 0.000 claims description 3
- 230000036316 preload Effects 0.000 claims description 3
- 238000004806 packaging method and process Methods 0.000 claims 1
- 238000010801 machine learning Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 8
- 230000002155 anti-virotic effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000010365 information processing Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Abstract
本发明涉及人工智能与机器学习技术领域,尤其是本发明提供一种运用人工智能算法提高病毒查杀率的方法,包括样本特征预处理系统和模型训练评估系统,样本预处理系统包括:用于对Windows PE文件特征提取的样本特征提取模块、用于对样本特征进行向量化处理的样本特征向量化模块以及用于对特征进行筛选的特征筛选模块;模型训练评估系统包括:利用XGBoost算法来训练一个分类器对黑白样本进行分类的训练模块和来对样本特征预处理系统中训练好的模型进行评估并找到合适的参数的评估模块,本发明能够提高对未知样本病毒的查杀率,同时可以随着模型不停的迭代更新。
Description
技术领域
本发明涉及计算机信息处理领域,尤其涉及一种运用人工智能算法提高病毒查杀率的方法。
背景技术
现有的传统杀毒引擎需要大量病毒分析人员对病毒进行分析研究从而制定规则,来达到查杀的目的。
因为目前的病毒分析是人工处理,对未知样本需要先获得病毒样本,才能制定规则,因此往往具有滞后性。
发明内容
本发明的目的是为了解决现有技术中存在的缺点,而提出的一种运用人工智能算法提高病毒查杀率的方法。
为达到以上目的,本发明采用的技术方案为:一种运用人工智能算法提高病毒查杀率的方法,包括样本特征预处理系统和模型训练评估系统,其特征在于,所述样本特征预处理系统包括:
样本特征提取模块:来对Windows PE文件特征的提取;
样本特征向量化模块:来对样本特征进行向量化;
特征筛选模块:来对特征进行筛选,使特征空间降维;
其具体步骤如下:
(i)从存储样本的Hadoop HDFS平台上分布式下载样本;
(ii)样本下载完成后,在各个机器上运行特征提取的程序,提取特征的同时将之前未知的特征上传到特征数据库,其中特征数据库是一个存储特征的名称和特征的序号对应关系的Redis数据库;
(iii)特征提取后的样本需要经过向量化处理,将每个样本都转换为与特征空间大小相同的数组,将该数组的值初始化为0,然后根据Redis数据库中存储的特征名称和特征序号的对应关系,获取特征的序号,然后给数组的该序号位置赋值,其中特征空间大小为20万;
(iv)最后需要进行特征筛选,特征筛选使用XGBoost算法,针对单次训练所使用的样本利用全量特征数据来用于特征筛选模型的训练;模型的损失函数采用Softmax分类函数;模型训练完毕后,可以得到一个在本次训练中特征的重要性指标;
所述模型训练评估系统包括:
训练模块:利用XGBoost算法来训练一个分类器对黑白样本进行类;
评估模块:来对样本特征预处理系统中训练好的模型进行评估,并找到合适的参数,来使检出率和误报率达到平衡;
其具体步骤如下:
(i)使用经过筛选的特征对要用于模型训练评估的样本进行重新向量化处理,将每个样本都转换为与特征空间大小相同的数组,将该数组的值初始化为0,然后根据Redis数据库中存储的特征名称和特征序号的对应关系,获取特征的序号,然后给数组的该序号位置赋值,其中特征空间大小由样本特征预处理系统中的20万降低到8000;
(ii)将样本按照80%,15%和5%的比例分解成训练集、测试集和验证集;其中,训练集和验证集用于模型的训练;测试集不参与训练,因此对于训练好的模型属于未知样本,并用于在模型评估工作中对模型进行评估;
(iii)当所有参数都调整好,可以对模型进行编译打包成MATRIX引擎加入产品;
(iv)整个流程每两周循环一次,最新一次的训练会预先加载上一次已经训练好的模型,对该模型的参数进行更新并且根据情况增加树的个数。
进一步的,所述XGBoost算法具体包括以下方法:
XGBoost算法不断地枚举不同树的结构,然后利用打分函数来寻找出一个最优结构的树,接着加入到模型中,不断重复这样的操作;并在最优结构的树中,选择一个特征分裂,计算损失函数最小值,然后再选一个特征分裂,又得到一个损失函数最小值,枚举完,找一个效果最好的特征,把一个节点分裂成两个子节点,这样不断加深树的深度;
其中在以下情况下可以停止增长树的深度:
(1)当引入的分裂带来的增益小于设定阈值的时候,可以忽略掉这个分裂;
(2)当树达到最大深度时则停止建立决策树,避免树太深导致学习局部样本,从而过拟合;
(3)样本权重和小于设定阈值时则停止建树,防止过拟合;
当一棵树停止增长时,计算损失函数的值,得到预测的残差;然后再次添加树,重复之前的特征分裂来生长一棵新树,去拟合上棵树预测的残差。
与现有技术相比,本发明具有以下有益效果:对未知样本的查杀率远高于传统引擎,对一些启发式杀毒引擎也具有检出率高的优势,并且误报率在可接受的范围内;本发明使用机器学习算法结合大数据,使用大量样本对模型进行训练,单次训练样本数都在500万左右,累计的训练样本已到达2500千万以上;并且随着模型不停的迭代更新,对未知样本的检出率还会有所提升。
本发明的其他优点、目标和特征在某种程度上将在随后的说明书中进行阐述,并且在某种程度上,基于对下文的考察研究对本领域技术人员而言将是显而易见的,或者可以从本发明的实践中得到教导。本发明的目标和其他优点可以通过下面的说明书来实现和获得。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。
以下描述用于揭露本发明以使本领域技术人员能够实现本发明。以下描述中的优选实施例只作为举例,本领域技术人员可以想到其他显而易见的变型。
从存储样本的Hadoop HDFS平台上下载样本,Hadoop HDFS是一个分布式的数据存储系统,支持PB级别的信息存储;在多台机器上进行分布式下下载;
样本下载完成后,在各个机器上运行特征提取的程序,提取特征的同时将之前未知的特征上传到特征数据库,特征数据库是一个Redis数据库,Redis数据库是一个服务启动后将数据存放在内存中的key-value型的数据库;因为存放在内存中所以速度很快,非常适合下一步的向量化工作;
特征提取后的样本需要经过向量化才能成为被计算机识别的数据,向量化的原理十分简单,具体方法如下:将每个样本都转换为与特征空间大小相同的数组,将该数组的值初始化为0,然后根据Redis数据库中存储的特征名称和特征序号的对应关系,获取特征的序号,然后给数组的该序号位置赋值;
特征筛选模块;特征筛选使用XGBoost算法,针对单次训练所使用的样本使用全量特征数据(特征空间20万左右,也就是说单个样本数组长度也是20万)来用于特征筛选模型的训练;模型的损失函数采用Softmax分类函数;模型训练完毕后,可以得到一个在本次训练中特征的重要性指标,简单的来说,一个特征被更多的被选择为模型中决策树的分裂节点,那么这个特征的就越重要;根据特征的重要性指标从高到低对特征进行排序,选择排名top n的特征作为新的模型训练特征存入Redis数据库中的另一个表格,这个表格只存储历次特征筛选被选中的特征,因为Redis是key-value型的数据库,key值是unique的,因此会自动去重。
使用经过筛选的特征对要用于模型训练评估的样本进行重新向量化,向量化过程与样本预处理的第3步一样,只是特征空间大小由之前的20万降低到8000左右,也就是单个样本的数组的长度是8000;这样就极大的减少了数据集的存储大小和训练时的计算量;
将样本按照80%,15%和5%的比例分解成,训练集,测试集和验证集;A.训练集和验证集用于模型的训练;训练集的作用就是用来训练模型;验证集用于评估模型的训练过程,比如需要建立一个由10000棵树组成的XGBoost模型,但是有过拟合的风险;那么可以每建立100棵树就用验证集来验证一下模型的效果,如果在建立5000棵树后,再建立更多的树,只会让模型在验证集上的结果越来越差,那么就可以提前停止训练,直接使用这个有5000棵树的模型;B.测试集不参与训练,因此对于训练好的模型属于未知样本,用来在下一步评估工作中对模型进行评估;
模型的评估工作在测试集上完成;
当所有参数都调整好,就可以对模型进行编译打包成MATRIX引擎加入的产品;
整个流程每两周循环一次,最新一次的训练会预先加载上一次已经训练好的模型,对该模型的参数进行更新并且根据情况增加树的个数;也就是每两周就有一个新的模型输出。
以上显示和描述了本发明的基本原理、主要特征和本发明的优点。
本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是本发明的原理,在不脱离本发明精神和范围的前提下本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明的范围内。
本发明要求的保护范围由所附的权利要求书及其等。
Claims (2)
1.一种运用人工智能算法提高病毒查杀率的方法,包括样本特征预处理系统和模型训练评估系统,其特征在于,所述样本特征预处理系统包括:
样本特征提取模块:来对Windows PE文件特征的提取;
样本特征向量化模块:来对样本特征进行向量化;
特征筛选模块:来对特征进行筛选,使特征空间降维;
其具体步骤如下:
(i)从存储样本的Hadoop HDFS平台上分布式下载样本;
(ii)样本下载完成后,在各个机器上运行特征提取的程序,提取特征的同时将之前未知的特征上传到特征数据库,其中特征数据库是一个存储特征的名称和特征的序号对应关系的Redis数据库;
(iii)特征提取后的样本需要经过向量化处理,将每个样本都转换为与特征空间大小相同的数组,将该数组的值初始化为0,然后根据Redis数据库中存储的特征名称和特征序号的对应关系,获取特征的序号,然后给数组的该序号位置赋值,其中特征空间大小为20万;
(iv)最后需要进行特征筛选,特征筛选使用XGBoost算法,针对单次训练所使用的样本利用全量特征数据来用于特征筛选模型的训练;模型的损失函数采用Softmax分类函数;模型训练完毕后,得到一个在本次训练中特征的重要性指标;
根据特征的重要性指标从高到低对特征进行排序,选择排名topn的特征作为新的模型训练特征存入Redis数据库中的另一个表格,这个表格只存储历次特征筛选被选中的特征,因为Redis是key-value型的数据库,key值是unique的,因此会自动去重;
所述模型训练评估系统包括:
训练模块:利用XGBoost算法来训练一个分类器对黑白样本进行类;
评估模块:来对样本特征预处理系统中训练好的模型进行评估,并找到合适的参数,来使检出率和误报率达到平衡;
其具体步骤如下:
(i)使用经过筛选的特征对要用于模型训练评估的样本进行重新向量化处理,将每个样本都转换为与特征空间大小相同的数组,将该数组的值初始化为0,然后根据Redis数据库中存储的特征名称和特征序号的对应关系,获取特征的序号,然后给数组的该序号位置赋值,其中特征空间大小由样本特征预处理系统中的20万降低到8000;
(ii)将样本按照80%,15%和5%的比例分解成训练集、测试集和验证集;其中,训练集和验证集用于模型的训练;测试集不参与训练,因此对于训练好的模型属于未知样本,并用于在模型评估工作中对模型进行评估;
(iii)当所有参数都调整好,对模型进行编译打包成MATRIX引擎加入产品;
(iv)整个流程每两周循环一次,最新一次的训练会预先加载上一次已经训练好的模型,对该模型的参数进行更新并且根据情况增加树的个数。
2.根据权利要求1所述的一种运用人工智能算法提高病毒查杀率的方法,其特征在于,所述XGBoost算法具体包括以下方法:
XGBoost算法不断地枚举不同树的结构,然后利用打分函数来寻找出一个最优结构的树,接着加入到模型中,不断重复这样的操作;并在最优结构的树中,选择一个特征分裂,计算损失函数最小值,然后再选一个特征分裂,又得到一个损失函数最小值,枚举完,找一个效果最好的特征,把一个节点分裂成两个子节点,这样不断加深树的深度;
其中在以下情况下停止增长树的深度:
(1)当引入的分裂带来的增益小于设定阈值的时候,忽略掉这个分裂;
(2)当树达到最大深度时则停止建立决策树,避免树太深导致学习局部样本,从而过拟合;
(3)样本权重和小于设定阈值时则停止建树,防止过拟合;
当一棵树停止增长时,计算损失函数的值,得到预测的残差;然后再次添加树,重复之前的特征分裂来生长一新树,去拟合上棵树预测的残差。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828745.2A CN112818344B (zh) | 2020-08-17 | 一种运用人工智能算法提高病毒查杀率的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010828745.2A CN112818344B (zh) | 2020-08-17 | 一种运用人工智能算法提高病毒查杀率的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112818344A CN112818344A (zh) | 2021-05-18 |
CN112818344B true CN112818344B (zh) | 2024-06-04 |
Family
ID=
Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346829A (zh) * | 2011-09-22 | 2012-02-08 | 重庆大学 | 基于集成分类的病毒检测方法 |
WO2016201575A1 (en) * | 2015-06-17 | 2016-12-22 | Uti Limited Partnership | Systems and methods for predicting cardiotoxicity of molecular parameters of a compound based on machine learning algorithms |
CN107370752A (zh) * | 2017-08-21 | 2017-11-21 | 北京工业大学 | 一种高效的远控木马检测方法 |
WO2018077285A1 (zh) * | 2016-10-31 | 2018-05-03 | 腾讯科技(深圳)有限公司 | 机器学习模型训练方法、装置、服务器及存储介质 |
EP3346410A1 (en) * | 2017-01-10 | 2018-07-11 | Crowdstrike, Inc. | Validation-based determination of computational models |
CN108304720A (zh) * | 2018-02-06 | 2018-07-20 | 恒安嘉新(北京)科技股份公司 | 一种基于机器学习的安卓恶意程序检测方法 |
CN109063478A (zh) * | 2018-07-19 | 2018-12-21 | 中国人民解放军61660部队 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
CN109543406A (zh) * | 2018-09-29 | 2019-03-29 | 广东工业大学 | 一种基于XGBoost机器学习算法的Android恶意软件检测方法 |
CN109858247A (zh) * | 2018-12-26 | 2019-06-07 | 江苏博智软件科技股份有限公司 | 一种基于XGBoost的静态三特征模型的恶意软件分类方法 |
CN109948340A (zh) * | 2019-03-27 | 2019-06-28 | 集美大学 | 一种卷积神经网络和XGBoost相结合的PHP-Webshell检测方法 |
US10366233B1 (en) * | 2016-11-18 | 2019-07-30 | Symantec Corporation | Systems and methods for trichotomous malware classification |
EP3534283A1 (en) * | 2018-03-01 | 2019-09-04 | Crowdstrike, Inc. | Classification of source data by neural network processing |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN112822150A (zh) * | 2020-08-19 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 可疑ip的检测方法 |
Patent Citations (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102346829A (zh) * | 2011-09-22 | 2012-02-08 | 重庆大学 | 基于集成分类的病毒检测方法 |
WO2016201575A1 (en) * | 2015-06-17 | 2016-12-22 | Uti Limited Partnership | Systems and methods for predicting cardiotoxicity of molecular parameters of a compound based on machine learning algorithms |
WO2018077285A1 (zh) * | 2016-10-31 | 2018-05-03 | 腾讯科技(深圳)有限公司 | 机器学习模型训练方法、装置、服务器及存储介质 |
US10366233B1 (en) * | 2016-11-18 | 2019-07-30 | Symantec Corporation | Systems and methods for trichotomous malware classification |
EP3346410A1 (en) * | 2017-01-10 | 2018-07-11 | Crowdstrike, Inc. | Validation-based determination of computational models |
CN107370752A (zh) * | 2017-08-21 | 2017-11-21 | 北京工业大学 | 一种高效的远控木马检测方法 |
CN108304720A (zh) * | 2018-02-06 | 2018-07-20 | 恒安嘉新(北京)科技股份公司 | 一种基于机器学习的安卓恶意程序检测方法 |
EP3534283A1 (en) * | 2018-03-01 | 2019-09-04 | Crowdstrike, Inc. | Classification of source data by neural network processing |
CN109063478A (zh) * | 2018-07-19 | 2018-12-21 | 中国人民解放军61660部队 | 可移植的可执行文件的病毒检测方法、装置、设备及介质 |
CN109543406A (zh) * | 2018-09-29 | 2019-03-29 | 广东工业大学 | 一种基于XGBoost机器学习算法的Android恶意软件检测方法 |
CN109858247A (zh) * | 2018-12-26 | 2019-06-07 | 江苏博智软件科技股份有限公司 | 一种基于XGBoost的静态三特征模型的恶意软件分类方法 |
CN109948340A (zh) * | 2019-03-27 | 2019-06-28 | 集美大学 | 一种卷积神经网络和XGBoost相结合的PHP-Webshell检测方法 |
CN110704840A (zh) * | 2019-09-10 | 2020-01-17 | 中国人民公安大学 | 一种基于卷积神经网络cnn的恶意软件检测方法 |
CN112822150A (zh) * | 2020-08-19 | 2021-05-18 | 北京辰信领创信息技术有限公司 | 可疑ip的检测方法 |
Non-Patent Citations (2)
Title |
---|
Miguel Oyler-Castrillo ; Nicolas Bohm Agostini ; Gadiel Sznaier ; David Kaeli.Research on computer virus source modeling with immune characteristics.《2017 29th Chinese Control And Decision Conference (CCDC)》.2017,4616-4619. * |
基于机器学习的Android恶意软件检测技术研究;王雪敬;《中国优秀硕士学位论文全文数据库 信息科技辑》(第02期);I138-292 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Marcus et al. | Plan-structured deep neural network models for query performance prediction | |
CN110232280B (zh) | 一种基于树结构卷积神经网络的软件安全漏洞检测方法 | |
CN105279397B (zh) | 一种识别蛋白质相互作用网络中关键蛋白质的方法 | |
Arbin et al. | Comparative analysis between k-means and k-medoids for statistical clustering | |
CN109697162A (zh) | 一种基于开源代码库的软件缺陷自动检测方法 | |
CN113221960B (zh) | 一种高质量漏洞数据收集模型的构建方法及收集方法 | |
CN109886021A (zh) | 一种基于api全局词向量和分层循环神经网络的恶意代码检测方法 | |
CN109145948A (zh) | 一种基于集成学习的注塑机堵料异常检测方法 | |
CN113297580B (zh) | 基于代码语义分析的电力信息系统安全防护方法及装置 | |
CN107368526A (zh) | 一种数据处理方法及装置 | |
CN115361176B (zh) | 一种基于FlexUDA模型的SQL注入攻击检测方法 | |
CN111581086B (zh) | 一种基于RankNet的混合软件错误定位方法及系统 | |
CN109471889A (zh) | 报表加速方法、系统、计算机设备和存储介质 | |
CN113741886A (zh) | 一种基于图的语句级程序修复方法及系统 | |
CN116245019A (zh) | 一种基于Bagging抽样及改进随机森林算法的负荷预测方法、系统、装置及存储介质 | |
CN109740722A (zh) | 一种基于Memetic算法的网络表示学习方法 | |
CN107194468A (zh) | 面向情报大数据的决策树增量学习方法 | |
CN112818344B (zh) | 一种运用人工智能算法提高病毒查杀率的方法 | |
CN112362292B (zh) | 对风洞试验数据进行异常检测的方法 | |
CN113743453A (zh) | 一种基于随机森林的人口数量预测方法 | |
CN114356744A (zh) | 基于机器学习的应用程序界面遍历方法及设备 | |
CN108710912B (zh) | 基于二分类机器学习的时序逻辑近似模型检测方法及系统 | |
CN113722230B (zh) | 针对模糊测试工具漏洞挖掘能力的集成化评估方法及装置 | |
CN112818344A (zh) | 一种运用人工智能算法提高病毒查杀率的方法 | |
Bo | Research on the classification of high dimensional imbalanced data based on the optimizational random forest algorithm |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |