当前位置:首页 期刊杂志

基于CNN-XGBoost的恶意URL检测

时间:2024-05-04

赵世雄,韩 斌,张紫妍

(江苏科技大学 计算机学院,江苏 镇江 212000)

0 引言

互联网的高速发展给人们带来便利的同时也带来了诸多安全问题,其中以Web 安全问题最为显著。国外知名安全厂商赛门铁克在2020 年5 月发出的安全报告中统计,目前通过Web 进行攻击的行为占据所有网络非法攻击的70%以上[1];国内360 安全厂商发布的2020 年安全态势报告中指出,钓鱼邮件的比例大幅增加,攻击者通过伪造邮件诱导用户点击其构造的恶意URL,进而获取用户信息,账户甚至密码;根据OWASP 组织发布的Web 应用安全攻击排名中可以看出,跨站脚本、注入缺陷、恶意文件执行这三大攻击方式占据了榜单的前三名。这些不同攻击方式的相同点都是攻击者构造恶意URL 来伪装成正常请求诱导用户或者绕过企业安全机制以达到获得服务器权限的目的,对企业或者用户造成数据甚至财产损失。因此高效检测恶意URL 能给企业和用户带来安全保障,同时也是构建网络安全解决方案的重要方向之一,具有重要的研究意义。

近年来,在恶意统一资源标识符(Uniform Resource Locator,URL)判断方面主要有两大类方法。第一种是传统的基于黑名单方式检测恶意URL,这种方式有两大局限性:一是无法防御未知或不在黑名单中的恶意攻击。这种方法往往是在出现了新型的恶意攻击后再通过人工把规则写进黑名单库,此时已经亡羊补牢,规则还未来得及写入黑名单库,系统可能就被攻击者攻破,因此时效性较低,跟不上攻击者的速度,只是一味的被动防御,做不到自动识别各种各样的攻击行为;二是基于黑名单的识别需要耗费较大的人力物力维护一个恶意URL 库,防守方需要一个专业的安全人员无时无刻地更新规则,规则维护成本和规则构造成本比较高。

二种是基于机器学习检测恶意URL。机器学习检测的准确率较高,但是机器学习所需要的特征都基于人工去提取,这种方式有三大弊端:第一,特征更新速度慢。恶意URL 变幻多端,手工提取的特征无法适应恶意URL 的多样性,因此会对整个检测系统产生较大的误报和漏报,误报会导致误拦截的情况,影响业务的稳定,而漏报会导致攻击者趁虚而入,影响业务的安全性;第二,完成庞大的特征工程耗费的不仅是人力更是时间,这种方法对设计者攻防的要求比较高,需要精通Web 安全的各种攻击行为和特征;第三,机器学习模型的精确率很大程度依赖于参数的选择,基于目前的研究,大多学者都是根据现有的测试集通过主观经验去调整参数,而生产环境中的恶意URL 复杂多样,其主观调整的参数会影响真实的准确率。

随着深度学习的不断发展,其不仅在计算机视觉领域取得优越的成果,在文本分类等诸多神经语言程序学(Neuro Linguistic Programming,NLP)领域中也被广泛学者运用[2]。恶意URL 本身就是一个长短文本,同时考虑到机器学习无法自动提取特征,因此本文提出利用深度学习来进行URL 特征的提取,一方面可以减少机器学习中通过人工提取特征所消耗的人力和时间,另一方面通过深度学习可以对原始的URL 进行自动特征提取,所提取的特征能较大程度地适应恶意URL 的多样性,检测出各种复杂的攻击场景。近年来在机器学习的比赛中,极限梯度算法(Extreme Gradient Boosting,XGBoost)被许多参赛者使用,其有效性和精确性得到了很好的回报,因此本文提出将深度学习与机器学习相结合的恶意URL 检测模型。该模型主要通过Word2vec 将预处理好的URL 训练成词向量,输入到卷积神经网络(Convolutional Neural Networks,CNN)中去提取特征,最终将提取的特征输入到XGBoost 分类器中进行分类,并通过烟花算法(Fireworks Algorithm,FWA)优化XGBoost关键参数来提高恶意URL 的准确率。

1 相关研究

在国外,基于已知黑名单库的识别中比较有知名度的是IBM 的 x -force Exchange,这是一个开源的威胁情报平台,为企业和安全人员提供查询已知的恶意URL、恶意软件、垃圾邮件、Web 漏洞等威胁情报。在国内,比较具有知名度的就是微步在线的威胁情报库,其开放API 接口供安全人员去调用其黑名单库进行恶意URL 的识别。基于黑名单库识别恶意URL 的另一种表现形式就是国内外各大安全厂商例如绿盟、Mcafee、奇安信等都出的一款名为WEB 应用防火墙的产品。该产品里面内置了目前曝光在互联网上的所有Web 漏洞,利用正则写成规则库,通过匹配规则库的方式来验证是否为恶意攻击行为。这种方式带来的局限就是需要频繁更新厂商发布的规则库以及需要面对业务中因为开发的不规范导致规则库在解析时候带来误报而影响业务的问题,往往给企业的业务造成巨大的影响,同时还无法应对在规则库外的新型攻击行为。这种局限性在很多企业组织的攻防演练中体现的较为突出。攻击方往往会放出很多0day(未在互联网上爆出的漏洞),这种0day100%会绕过WEB 应用防火墙,此时防守方只能被动挨打,任由攻击方拿到服务器权限获取最终的胜利。

基于机器学习算法检测的原理是手工提取特征,然后通过训练庞大的数据生成威胁检测模型对未知的URL 进行判断。例如,吴少华等[3]、甘宏等[4]通过TF-IDF 提取文本特征后输入SVM 进行训练,虽然便捷但TF-IDF 选取的特征都是频率较低的值,不能较好地提取出恶意URL 的关键特征。同时恶意URL 是一个文本,使用TF-IDF 进行特征提取会忽略词与词之间的上下文联系,使得提取的特征不精确导致最终模型精度较低。且文献中数据集相对较少,但是生产环境中面对以亿为单位的数据量,使用TFIDF 会生成庞大的特征向量增加计算的复杂度和空间开销,最终影响模型的检测效率;刘建等[5]利用决策树、SVM、朴素贝叶斯3 种机器学习算法构造一个多层过滤的检测模型,该模型对3 种算法设定一个阈值,满足阈值条件则判断URL 类别,不满足则进行下一个分类器的阈值判断,这种方式充分发挥了3 种算法各自的优势,提高了模型准确率;李泽宇等[6]利用集成算法训练多个弱分类器,再并行地将这些弱分类器训练的模型组合起来提高模型的准确率,相较单个模型预测更准确,但集成算法在没有经过优化的条件下容易出现过拟合以及陷入局部最优的问题。同时,该作者手工提取了10 多种特征,根本无法适应恶意URL 的多样性,将该模型应用于生产环境中,面对每天按亿为单位的URL 数据量,最终精度会大大折扣且产生大量误报,最终影响正常业务。

近年来,深度学习在自然语言领域取得了很多成功的实践。例如,梁斌[7]、高彦琳等[8]、孙敏等[9]均利用CNNLSTM 网络对电影以及微博评论进行情感分析,通过CNN进行提取文本特征,LSTM 层进行特征排序与分类,最后与CNN、LSTM 网络进行对比,得出CNN-LSTM 的准确率更高证明了CNN-LSTM 模型的有效性。同时也有越来越多的学者将深度学习运用到恶意URL 检测上,例如王欢欢等[10]将URL 分为主机和参数两大部分,分别提取了20 种恶意的主机特征和参数特征,并组合起来输入到其提出的Bi-IndRNN 网络中进行分类,作者对比了KNN、IndRNN、LSTM 在该模型中的分类精度,最终证明其提出的Bi-IndRNN 精确率最高,达到95.96%;张婷[11]利用skip-gram 对恶意URL 进行词向量编码,并输入到LSTM 中,利用平均池化的方式融合LSTM 提取到的特征,提高了分类的准确率,最终准确率达到97.2%;梁飞[12]对URL 通过N-gram 进行分词处理,embedding 成词向量输入到BiLSTM 模型中进行特征提取,同时加入Attention 机制捕捉文本中词与词之间的关联性,最后输入到分类器进行分类,该模型在BiLSTM 算法中加入Attention 机制准确提取了恶意URL 的特征,提高了模型准确率。潘司晨[13]、陈康等[14]利用CNN 算法提取特征并将提取到的特征输入到softmax 进行分类,相较于通过机器学习进行恶意URL 检测的方法减少了特征提取时间,丰富了特征提取的多样性,进而提高了识别的精确率,可见深度学习在提取文本特征上具有良好的效果。此外在商业领域,国内著名安全厂商长亭科技利用深度学习算法发布了国内第一款出了基于语义分析的WAF,其通过接入Web 访问流量,进行协议解析与深度解码,调动深度学习引擎,对攻击行为特征进行威胁定级,生成基于客户业务流量的威胁检测模型。随着样本数据的增加,威胁模型越来越精准,在防护0day 漏洞的同时也实现真正意义上的主动防御,给诸多企业带来了安全保障。

在上述研究的基础上,本文结合深度学习与机器学习的优缺点,提出基于CNN-XGBoost 相结合的恶意URL 检测模型。该模型利用CNN 提取恶意URL 特征,较大程度降低了人工提取特征所消耗的时间,利用 FWA 算法自动调整XGBoost 参数,避免了XGBoost 算法在训练时陷入局部最优以及过拟合的现象,同时XGBoost 分布式计算能力也极大降低了模型训练时间,提高了运行效率和准确率。

2 特征提取

2.1 数据处理

Http 协议通过URL 建立数据的连接和传输,URL 主要分为协议、域名、端口、文件名和参数5 个部分,本文主要研究的是恶意URL,而恶意URL 的变换主要在URL 后面4个部分,因此协议部分可以不作处理。从网上爬取的URL都是经过浏览器URL 编码过的,会将一些字符串转换成编码后的形式,直接作为数据集会导致特征提取有误差,因此对爬取到的数据集先进行URL 解码,再统一转换为UTF-8 的形式,最后将各个URL 协议部分去掉只保留其余4 个字段,同时对数据集进行去重处理得到最终的数据集,预处理结果如图1所示。

2.2 字符向量

Fig.1 URL preprocessing图1 URL预处理

利用 Word2Vec 对已经预处理好的URL 进行词向量训练,Word2vec 是Google 开发的开源生成词向量工具,包括连续词袋模型(Continuous Bag of Words,CBOW)和Skipgram 两种模型。CBOW 模型通过上下文或者是周边的词语预测当前词语,Skip-gram 模型通过当前词预测词的上下文或周边的词。本文利用CBOW 模型对预处理好的URL 进行并训练生成词向量。CBOW 的输入层由URL 中每个单词的one-hot 向量组成,隐藏层为one-hot 向量经过与权重矩阵相乘后组成的向量,输出层为将隐藏层得到的向量乘以输出权重矩阵得到最终的输出向量。设URL 为U,单词个数为x,URL 长度为L,其中L 的长度设置为200,不足用O 补齐,输出向量的维数为N,那么最终每个URL被表示为L行N 列的矩阵。

2.3 CNN网络

URL 可以看作文本形式,故本文采用CNN 自动对URL进行特征提取。由图2 可知,CNN 网络模型主要包括3 个卷积层,3 个max pooling 以及1 个全连接层,结构如图2 所示。3 个卷积层对URL 中的主机名+端口、文件名、参数这3 个部分进行训练以提取相应特征。对于长度为h 的卷积窗口,输入矩阵的卷积操作表示为:

式中,w ∈Rh*q表示卷积核的权重;b∈R表示偏差项bias,vi:i±h表示第i个单词到第i+h个单词组成的矩阵;f为激活函数,本文选取ReLu 函数,其比sigmoid 收敛速度更快,有利于降低CNN 网络的运算量,在处理大数据集时优势突出。

Fig.2 CNN network structure图2 CNN网络结构

考虑到恶意URL 的特征复杂多样,会影响模型的运行速度和准确率,因此采用池化的方式减少特征图大小,提高模型运行效率。常见池化方式为最大池化和平均池化,观察数据集可以发现URL 中恶意词语比例往往比正常词语低且差异比正常词语大,而最大池化的作用就是保留文本中差异最大的特征,去除一些冗余无关的特征。因此,相较于平均池化着重保留文本的上下文信息,最大池化更有利于恶意特征的提取。通过最大池化方式提取特征图中的关键特征c=max{ }c,将提取到的关键特征进行拼接,得到以下输出矩阵:

将得到的C→输入全连接层,然后加入dropout,防止过拟合产生。

3 FWA-XGBoost

3.1 XGBoost算法

XGBoost 是广泛应用的树形学习算法,其是在GBDT(Gradient Boosting Decision Tree)的基础上改进而来,计算速度和精度有所改善[15-17]。XGBoost 的核心是对目标函数进行二阶泰勒展开,利用不断分裂的新树拟合上次预测的残差以保证模型准确性。XGBoost 增加了随机采样比例,通过遍历随机选取的特征降低遍历所有特征带来时间的浪费以及过拟合现象,通过设置树的最大深度和阈值防止树生长过深的现象。同时XGBoost 支持并行化,可以对每个特征进行分块并排序,允许以树状结构排列对输出变量进行预测,大大提高了模型训练速度。模型推导公式为:

将所有样本Xi划入第j个叶子结点样本集中,表示为:

将公式(6)和(7)代入公式(5)中,得到的目标函数表示为:

以上推导过程可以得出一棵最佳决策树以及决策树每个节点对应的的最优得分。

3.2 FWA算法

FWA 算法是通过观察燃放烟花产生火花这一现象而提出的一种智能优化算法[18-20]。对于FWA 算法来说,每一朵烟花都可以作为一个可行解,每一朵烟花爆炸产生火花的过程就是FWA 算法不断搜索最优解的过程。FWA 算法爆炸产生的爆发性和多样性使其在全局搜索和局部搜索上都具有良好的寻优能力,其具体实现步骤如下:

步骤1:初始化种群数位N,随机产生一部分烟花,每朵烟花xi代表一个解。

步骤2:在N 个位置上分别释放烟花,并且计算烟花的适度值f(xi),同时计算每朵烟花产生的火花个数Si以及爆炸半径Ai,分别表示为:

式中,ymin和ymax分别当前种群中适应度的最小值和最大值;表示爆炸半径大小;ε表示机器最小量,用于避免分母为0;M 是用于调整爆炸产生火花数量的常数。

步骤3:根据适应度值,通过公式(13)调整火花数量;公式(14)主要对爆炸和变异导致超出范围的火花进行映射;公式(15)为变异算子,主要用于负责种群的多样性,其目的是为了保存超出范围的火花。

步骤4:采用轮盘赌法的方式在区域N-1 个烟花中选出适应值最小的烟花直接进入下一代种群,每个烟花被选中的概率为:

式中,D(xi)表示xi到其他个体之间距离总和;d(xi,xj)表示任意一个xi到xj之间的欧式距离;k 表示候选烟花种群。

步骤5:满足终止条件则结束,不满足则返回步骤2。

3.3 XGBoost算法改进

目前XGBoost 常用的参数优化方法有人工调参和网格搜索两种。人工调参需要调参者对各个参数很熟悉,并且需要通过大量实验确定最终参数,时间成本大而且太过依赖主观判断。网格搜索法又称穷举搜索法,其会在指定参数范围内按照步长遍历所有参数,直到找到精度最高的一个参数。该方法会导致在选取参数范围较大的情况下计算复杂度呈指数形式增长,增加设备性能消耗,降低整个模型的效率,一般适合于规模较小的超参数优化。

本文采用FWA 算法对XGBoost 参数进行优化。XGBoost 参数主要分为通用参数、Booster 参数以及学习目标参数,其中通用参数主要对宏观函数进行控制,学习目标参数主要控制分类类型是二分类还是多分类,而Booster 参数可以调控XBOOST 最终分类的效果和计算代价。考虑到本实验数据集较大,调整过多的参数反而会导致模型运行慢降低计算效率。因此,本次实验主要调整Booster 中三大关键参数,其中Learning_rate 表示每一步迭代的步长,设置太大会降低准确率,设置太低会影响训练的速度。取值范围设置为[0,1],缺省值为0.3,该参数决定模型的运行速度和准确率;Subsample 表示对于每棵树随机进行采用的比例值,取值范围在(0,1],缺省值为1;Max_depth 表示树的最大深度,数值过大模型学习到的样本会更具体但会出现过拟合状态,取值范围[0,∞],缺省值为6。Subsample和Max_depth 决定模型的复杂程度,防止模型出现过拟合现象,使模型学习更加具体。将这三组参数作为FWA 寻优解进行优化,利用测试集进行预测,将平均误差作为适应度函数,表示为:

4 实现流程

如图3 所示,本文实验分为三大部分,第一部分为数据预处理,主要对公网爬取的数据集进行数据清理以及均衡正负样本集;第二部分为特征提取,对数据集进行编码输入到CNN 网络中进行特征提取;第三部分为模型训练和优化,将提取到的特征输入到XGBoost 中进行回归分析,同时结合FWA 算法对XGBoost 关键参数进行优化以提高模型精确率。

根据国家疾病控制中心性病诊断标准中对于梅毒诊断标准施行诊断,记录不同检查结果的灵敏度、特异度、阴性预测值以及阳性预测值[5-6]。

Fig.3 Model implementation process图3 模型实现流程

5 实验方法与结果分析

采用准确率、召回率、精确率、F1 以及时间成本5 个指标评估模型分类能力,并与通过手工提取特征-XGBoost 的检测模型以及其他机器学习算法模型进行比较,验证本文CNN-XGBoost 模型检测恶意URL 的有效性。

5.1 实验数据集

恶意URL 来源于Github 中的部分数据集以及知名钓鱼网站PhishTank 中爬虫获取的数据,共计8 万条,作为正样本。正常URL 来源于Alexa 公布的正常网站,从中随机选取前100万个数据中的5万条作为负样本。

上述URL 经过去重以及数据清洗工作得到126 593 个样本,其中正样本71 785 条,负样本54 808 条,正负样本比约为6∶4。随机选取数据集中的30%作为测试样本,70%作为训练样本。

5.2 实验环境

硬件环境:CPU 为Intel(R)Core i5-10210U;内存为DDR4 16G;硬盘为512G 固态。

软件环境:gensim==2.0.0;numpy==1.12.0;pandas==0.19.2;sklearn==0.18.1;tensorflow==1.1.0。

5.3 CNN模型参数设置

利用CNN 模型对恶意URL 的主机名、路径+文件名、参数域3 个部分进行特征提取。根据数据集样本大小,将3 个部分的卷积核大小分别设置为5×20×8、5×30×8、5×40×8,防止CNN 出现过拟合现象,使用Dropout 机制同时加入L2 正则化参数,采用Adam 优化器,最终通过最大池化方式以及全连接层输出一个128 维的一维向量,作为后续XGBoost算法的输入,具体参数如表1所示。

Table 1 CNN parameters表1 CNN参数

5.4 基于FWA的XGBoost参数优化

基于FWA 的XGBoost 参数优化实验分为3 个,结果见表2。实验一中FWA 算法初始总群数量为30,最大振幅为40,正常火星总数为25,特殊火星总数为5,寻优迭代次数为100。在迭代40 次时,适应度值下降的幅度降低,表明此时算法收敛速度变得缓慢,从而导致算法在后续迭代过程中全局搜索能力开始降低,60~100 之间的适应度值一直徘徊在9±0.2 之间,即该条件下搜索能力逐渐下降,此时容易导致产生较少火花,火花减少带来的影响就是算法只能在一个很小的范围内不断搜索从而陷入局部最优,从最终适应度值9.105 可以发现,该条件下的算法确实已经陷入局部最优中。

Table 2 Experimental data of fireworks algorithm表2 FWA算法实验数据

为提高FWA 算法的收敛速度,实验二中使用曼哈顿距离计算公式代替原有的欧式距离计算公式的选择策略,表示为:

与欧式距离不同的是,曼哈顿距离计算两点之间的距离只需要进行加减而不需要开平方,不仅降低了计算开销,也消除了开平方导致取近似值带来的误差,加快了算法收敛速度,又增强了全局搜索能力,最终提高了搜索精度。实验二中,算法在迭代40 次时适应度值已经搜索到了8.713,而实验一100 次迭代时才搜索到9.015,实验二以较少的迭代次数搜索到了最优值。同时实验二算法在迭代60 次时的适应度值降低到了7.927,此时算法前期的全局寻优能力和收敛速度得到显著提高,但与实验一一样,实验二在迭代60 次后也只是在搜索到的最优值附近继续搜索,并没有跳出最优值,可见该算法跳出局部最优的能力较弱。

为跳出局部最优,实验三将火星种群数量增加至50,将每次迭代产生的正常火星总数减少至15,其余与实验二保持一致,这样增加了后续迭代过程中选择较优火星的概率和较优火星产生的正常火星被保留的概率,有利于后续跳出局部最优。可以看出,迭代到40 次时适应度值已经降低至7.265,比前两组实验的适应度值降低许多,可见算法收敛速度增加了很多。同时算法在60~80 次迭代的过程中由原本的6.576 跳出至最终的5.734,已跳出局部最优,算法整体优化性能提高。

FWA 算法和网格搜索初始种群数量为50,寻优迭代次数取100,二者比较结果见图4。FWA 算法在尚未迭代至40 次时便已迅速收敛至网格搜索的最优值,在迭代至60 次时已经达到全局最优解;在60~100 次的迭代过程中进行局部搜索,跳出了6.576 的最优值,达到最终的5.617。而反观网格搜索在20~40 次迭代的过程中便已经逐步陷入局部最优解,由于寻优参数的区间值较大,后续40~100次迭代相当于在进行无效搜索,最终适应度值远低于FWA算法。综上所述,FWA 算法无论是收敛速度、全局寻优能力还是局部寻优能力均高于网格搜索。因此,本文最终选取FWA 算法搜索出来的最优值作为XGBoost 关键参数值,其最优参数为Subsample=0.5,Max_depth=11Learning_rate=0.2。

Fig.4 Comparison of firework algorithm and grid search parameter optimization图4 FWA算法与网格搜索参数寻优比较

5.5 结果分析

为评估 CNN-XGBoost 模型在恶意URL 检测上的适用性,选取文献[14]和文献[20]中的特征选择方法和分类算法以及常用分类器SVM、逻辑回归以及随机森林进行比较,从精确率、准确率、召回率、F1 分数以及训练时间5 个方面评估模型的检测能力,结果见表3。可以看出,CNNXGBoost 的精确率、召回率、F1 在几个模型中最高,其中精确率达到97.2%,召回率达到94.1%,F1 值达到93.5%,表明其能很好地提取特征并基于提取的特征准确分类。文献[14]中基于手工提取—XGBoost 的方法精确率只达到90.9%,原因是手工提取的特征并没有适应训练样本中恶意URL 特征的多样性,导致有部分恶意样本由于其特征未在手工提取的特征中而影响了整体模型精度;文献[20]中的Bi-IndRNN 模型精确率达到94.5%,与本文算法相比降低2.7%,可见通过CNN 自动提取特征的准确率明显高于手工提取特征。CNN-RF 模型的精确率仅次于CNN-XGBoost,达到96.1%,而CNN-SVM 模型的精确率只达到92.7%,可见SVM 算法虽然适合进行二分类,但在数据集庞大时效率低下。CNN-LR 模型精确率为93.6%,其使用极大似然估计函数对目标函数进行求解,在数据集庞大的情况下会使模型不断拟合数据,从而导致最终模型陷入过拟合状态。而XGBoost 算法加入了正则化,控制了模型复杂度,自动调整learning_rate,max_depth 以及subsample 这3 个参数,避免了在样本集过大时叶子节点过多而造成的巨大开销,同时可避免限制树的最大深度以及树的采样率陷入过拟合状态。XGBoost 最大的优点是利用损失函数进行二阶泰勒展开,通过学习新的函数拟合上次预测的残差,使模型更接近真实值,加快了模型收敛,提高了模型准确率。

在相同的实验环境下,CNN-XGBoost模型只用了1 361s便完成了模型训练,可见其并行计算的能力大大降低了模型训练时间。而SVM 由于二次规划求解支持向量,在数据量庞大的情况下求解速度变低导致时间消耗大,比CNN-XGBoost 多消耗近50%的时间。CNN-LR 使用梯度下降算法,利用较少的资源处理庞大数据,在时间成本方面有很大优势。CNN-RF 完成模型训练花费了1 721s,相较XGBoost 提高25%以上。因此,CNN-XGBoost 模型无论是准确率还是时间成本均优于其他机器学习模型。

Table 3 Indicators comparison of different models表3 不同模型评价指标比较

本次实验还观察了各模型在训练过程中CPU 的使用情况,结果见图5。可以看出,各模型消耗的CPU 均在80%以上,CPU 使用率较高不仅会降低模型准确率和检测速度,还会影响设备稳定性。在生产环境中,设备的稳定性决定着业务的稳定性。因此,如何在保证模型准确率的同时降低设备负载是未来需要克服的重要问题。

Fig.5 CPU% usage of each mode图5 各模型CPU%使用情况

6 结语

Web 安全目前成为各大企业以及安全厂商的关注重点,市面上90%的防护采用传统的黑名单防范机制,攻击的多样性导致黑名单防范的局限性日益凸显,使得越来越多的安全厂商和安全研究员研究新型恶意URL 检测。因此,针对日益严峻的Web 安全问题,本文分析了目前已有研究的优点以及缺点,提出基于CNN-XGBoost 的新型恶意URL 检测模型。该模型利用深度学习进行特征提取,其能随着模型训练不断调整从而提取最优特征,能更好地适应恶意URL 特征的多样性,发现更多未知恶意攻击,精确率高达97.2%。然而,本次实验在设备性能消耗方面没有进行较多优化,导致模型在训练过程中使CPU 超负荷运行,影响了最终检测率与稳定性。后续将继续研究如何在保证模型准确率的同时降低对设备性能的消耗,使其适应更大数据量的环境。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!