基于机器学习的恶意URL识别--选自《通信技术》

基于机器学习的恶意URL识别

原文作者:李泽宇,施勇,薛质

原文期刊:信息安全与通信保密杂志社 选自《通信技术》2020年第二期 2020-03-10

原文链接:https://www.secrss.com/articles/17764

一、论文主要内容

对多种机器学习模型特别是集成学习模型在恶意URL识别问题上的效果进行研究,结果表明,集成学习方法在召回率、准确率、正确率、F1值、AUC值等多项指标上整体优于传统机器学习模型,其中随机森林算法表现最优。可见,集成学习模型在恶意URL识别问题上具有应用价值。

本文提出了一种特征选取方法,尝试多种机器学习模型,特别是几种近年来较为流行的集成学习模型,比较不同模型在同一测试集上的效果。

二、作者工作

2.1 相关工作

恶意URL识别最传统的方法是黑名单方法,即将已知的恶意URLs建立黑名单,并通过多种手段进行维护,从而根据黑名单直接判断待检测URL是否为恶意。该方法简单直接,查准率高,但只能识别已有的恶意URL,查全率低,时效性差。在此基础上,一些启发式算法和基于网页内容的方法被提出,是黑名单方法的改进,但依然存在准确率低、规则制定难等问题。

近年来,随着人工智能的发展,机器学习方法被应用于恶意URL检测,包括逻辑回归、支持向量机等。机器学习的特征提取和模型选择,很大程度上决定了最终检测效果的好坏。

2.2 模型设计

设计思想

本文提出了一种特征选取方法,尝试多种机器学习模型,特别是几种近年来较为流行的集成学习模型,比较不同模型在同一测试集上的效果。第1章介绍实验的整体流程,包括数据集的获取、特征选择、模型选择和训练;第2章给出不同模型的实验结果,并进行对比分析;第3章对实验作出总结。

具体实现

本实验由数据获取、特征选取、特征计算、模型训练以及结果分析等环节构成,流程下图所示。

img

特征提取:

通过分析1.2中所述恶意URL数据集,可以发现恶意URL往往具有某些共性。基于这些共性可以提取相关的特征,进而用于机器学习模型的训练。这里以URL长度这一特征为例,说明数据分析和特征选取的方法。

观察大量恶意URL数据可以发现,攻击者常常使用很长的URL,试图掩盖URL中可疑的部分。例如:

https://greatertuckertonfoodpantry.org/wp-users/?id=EgjC8KkaZh&email=renaud.chambolle。

为从数据角度证实这一观点,分别画出恶意/良性URL的长度分布曲线,见下图。从下图可以较为直观地看出,恶意URL的平均长度更大,两类URL的长度分布存在明显差异。因此,URL的长度可以作为构建分类模型的一个重要特征。

img

经试验,最终总结出的重要特征如下表所示。

img

模型训练:

集成学习的基本思想是先训练若干个弱分类器,再通过某种串行或并行方式将这些弱分类器组合起来,从而达到提高预测准确率的效果。基于组合方法和弱分类器的不同,有多种不同的集成学习模型。实验中选取几种最具代表性的集成学习算法进行研究,包括梯度提升算法(Gradient Boosting)、AdaBoost、随机森林(Random Forest)和XGBoost。

在集成学习算法以外,实验还选取了几种经典的机器学习算法,包括决策树(Decision Tree)、朴素贝叶斯(Gaussian NB)和逻辑回归(Logistic Regression),以进行对比研究。

三、实验

3.1 实验数据

  • 对恶意URL,实验从知名反钓鱼网站PhishTank使用爬虫获取经认证的恶意URL共计20 954条。

  • 对良性URL,实验从流量统计网站Alexa获取访问量排行前100万的所有网址,保留其中排名前1 000的网址,1 000至100万名的网址按一定比例进行抽样,共计获得18 900条良性URL。

  • 考虑到PhishTank提供的恶意URL仅包含钓鱼网站,实验还参考了开源数据集ISCX-URL-2016获取包括钓鱼、垃圾邮件、病毒等多种类型的恶意URL作为补充。

将上述渠道获得的URL进行汇总、去重,得到实验最终使用的数据集,共包含76 446条数据。其中,恶意URL共计22 808条,占比29.8%;良性URL共计53 638条,占比70.2%,数据示例如下表所示。

img

其中,标签为“1”表示该URL为恶意URL,标签为“0”表示该URL为良性。

3.2 实验结果

评估方法

实验将1.2中所述数据集进行划分,随机抽取其中20%作为测试集,其余作为训练集和交叉检验集。测试集共包含15 290条训练数据,将恶意URL作为正样本,良性URL作为负样本。

评价分类模型好坏的常见指标有准确率(Precision)、召回率(Recall)、正确率(Accuracy)和F1值(F1-score)。由于恶意URL往往具有严重威胁,在对比各模型好坏的过程中,优先考虑召回率,其余指标作为参考。各常见指标的含义或计算方法如下表所示。

img

此外,为了更直观地对比各模型的好坏,绘制各模型的受试者工作特征曲线(Receiver Operating Characteristic Curve,ROC)并进行对比。

ROC曲线的横坐标为假阳性率(False Positive Rate,FPR),纵坐标为真阳性率(True Positive Rate,TPR),描述了在一定制约下模型所能达到的预测准确率。真/假阳性率的定义为:

img

ROC曲线下面积(Area under ROC Curve,AUC)是指ROC曲线与横坐标轴围成的面积大小。AUC值越大,代表模型的分类效果越好。

AUC值受正负样本分布变化的影响较小。实验使用的数据集与真实情景下正负样本的分布可能差异较大,因此AUC值是一项重要的评估指标。

结果分析

为控制无关变量,各模型训练时的迭代次数均采用默认参数,其余训练参数简单调优或使用默认值。

各模型的实验指标由下表列出,其中每一项的最优值用*标明。

img

实验结果表明,集成学习算法的整体表现优于传统机器学习算法。其中,梯度提升算法(Gradient Boosting)有最高的预测准确率,而XGBoost算法有最高的正确率,随机森林算法(Random Forest)在召回率、F1值、AUC值3项指标上均为最优。综合来看,随机森林算法是研究算法中解决恶意URL识别问题的最优模型。

在传统机器学习算法方面,决策树算法(Decision Tree)表现尚可,而朴素贝叶斯算法(GNB)和逻辑回归算法(Logistic Regression)则表现不佳。此外,不同机器学习模型的ROC曲线如下图所示。

img

由ROC曲线得到的结论类似,即在解决恶意URL识别问题上,集成学习方法的整体表现优于传统机器学习方法。

四、总结

实验结果表明,集成学习方法在恶意URL识别问题上的效果优于传统机器学习模型。其中,随机森林算法综合表现最优,能够达到76.26%的召回率和95.88%的准确率,表明集成学习方法在恶意URL的识别领域具有应用价值。

本文使用的数据集规模偏小(76 446条数据),在训练集成学习模型时会出现过拟合等问题。预期随着训练数据的扩充和硬件水平的提高,集成学习方法在恶意URL识别问题上能够取得更好的效果。

参考文章:
安全内参 https://www.secrss.com/articles/17764

  • 1
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值