计算机工程应用技术
信息与电脑
China Computer&Communication
2018 年第 3 期
大数据环境下基于决策树的恶意 URL 检测模型
冯国震
(安邦保险集团,北京 100022)
摘 要:恶意网址 URL 检测一直是信息安全防御技术领域的研究热点之一。针对传统恶意 URL 检测技术无法自主探
测未知 URL,并且缺乏适应大数据时代发展的能力等问题,设计并实现了一种基于大数据技术,结合决策树算法与黑白
名单技术的恶意 URL 检测模型。该模型基于 Spark 分布式计算框架,利用已知 URL 训练集提取特征、训练决策树分类模型,
然后用已有分类模型对黑白名单无法检测出的 URL 进行分类预测,达到检测目的。实验证明,构建的检测模型具有很好
的检测效果和稳定性。
关键词:恶意 URL;机器学习;黑白名单技术;大数据技术;Spark
中图分类号:TP311.13 文献标识码:A 文章编号:1003-9767(2018)03-006-04
Detection Model for Malicious URL Based on Decision Tree under the Big
Data Environment
Feng Guozhen
(Anbang Insurance Group, Beijing 100022, China)
Abstract: Malicious URL detection has been one of the hot topics in information security defense technology. In view of the
problems that the traditional malicious URL detection technology can not detect the unknown URL autonomously and lack the ability
to adapt to the development of big data era, this paper designs and implements a malicious URL detection model which based on the
combination of big data technology and decision tree algorithm and black-and-white list technology. Based on the Spark distributed
computing framework, this model uses the known training set to extract the features and training the decision tree classification model,
and then uses the existing classification model to classify the URLs that can not be detected by the black-and-white list, so as to
achieve the purpose of testing. Experiments show that the detection model constructed in this paper has a good detection effect and
stability.
Key words: malicious URL; machine learning; black and white list technology; big data technology; Spark
1 引言
大数据时代下,随着互联网的持续快速发展,网络深入
人们生活的各个领域中,扮演着越来越重要且不可取代的角
色。特别是大数据时代的到来,海量、多变、井喷式增长的
数据持续通过网络融入人类的生活,给人类带来了很大的便
利。然而在网络逐渐融入人类社会的同时,带来的潜在风险
也随之增大。利益驱使下,一些不法分子利用网络做出不法
行为,给用户造成经济损失,更甚者会造成社会管理混乱。
网络信息安全因其重要性受到国家领导人的高度重视,已上
升到了国家层面,并于 2016 年 11 月正式颁布了《中华人民
共和国网络安全法》。在此大环境下,网络安全技术得到了
大力发展。
检测并阻止恶意网站威胁行为已成为避免信息安全风险
的重要措施 [1-3]。恶意网址 URL 检测一直是信息安全领域的
研究热点,因为网站的唯一入口一般都是 URL 地址,在网站
入口处进行检查和鉴别,从根源上避免恶意网站带来的安全
威胁,是最理想的解决方案。目前,国内外在恶意网站 URL
检测方面已有很多研究 [4-7]。其中最常用的技术是 URL 黑白
名单技术,该技术优缺点分明,优点是简洁有效,缺点是只
能检测到已知 URL[8-9]。然而,绝大部分的恶意 URL 都是未
知的,特别是大数据环境下,传统的黑白名单技术已无法满
足检测需求。当前,基于机器学习分类算法的恶意 URL 检
测技术成为另一种比较主流的识别方式 [8,10,11]。基于机器学习
的恶意 URL 检测技术的主要流程为:选择并提取 URL 的特
作者简介:冯国震(1975-),男,江苏扬州人,硕士研究生,信息安全总监。研究方向:信息安全。
— 6 —
2018 年第 3 期
信息与电脑
China Computer&Communication
计算机工程应用技术
征向量,生成符合格式的训练数据,训练并构建分类模型,
并利用分类模型进行分类检测。其中的关键是特征提取和分
类模型的构建。此外,由于数据多变及井喷式增长、数据量
级的增大,传统的检测方式无法满足快速、高效检测恶意
URL 的安全需求,引入大数据技术结合机器学习算法实现恶
意 URL 检测势在必行 [12-13]。
2 相关研究
2.1 黑白名单技术
黑白名单技术是传统的恶意网站的检测方法之一。黑名
单就是指在网络的搜索引擎的垃圾制造者列表,列表中的垃
圾制造者是由搜索引擎收集到的,黑名单可以用于从搜索引
擎封杀或者抵制这些垃圾制造者,白名单与黑名单相对应。
在当前黑白名单技术运用得非常广泛,几乎所有涉及控制方
面技术的都应用到了黑白名单技术,比如,在电脑操作系统、
杀毒软件、防火墙、邮件系统等很多软件中都应用到了黑白
名单规则。如果启用黑名单,用户(或 IP 地址、邮件、IP 包、
病毒等)一旦被列入黑名单,那么就完全不能通过。如果启
用白名单,白名单中的用户(或 IP 地址、IP 包、邮件等)
不仅不会被拒绝,而且能够优先通过。将其含义进一步扩展,
则凡是应用了黑名单技术,就应有白名单技术与之对应。在
邮件系统中运用比较广泛,如最早被使用在反垃圾邮件网关
技术之一的静态黑名单。
2.2 Spark
Spark 是加州大学伯克利分校 AMP 实验室(Algorithms,
Machines, and People Lab)开发的内存并行计算框架,是用
Scala 语言实现的。Scala 是一种面向对象的函数式编程语言,
能像操作本地集合对象一样操作分布式数据集。Spark 是借
鉴 MapReduce 发展而来的,相较于 Hadoop 具有运行速度快、
易用性好、通用性强以及可以随处运行等特点。
(1)Spark 迭代运算效率高。MapReduce 的计算结果需
要落地,保存到磁盘上,影响整体速度,而 Spark 支持 DAG
图的分布式并行计算框架,中间数据存在内存中,减少了迭
代中数据的落地,提高了运行效率。
(2)Spark 容错性高。Spark 引进了弹性分布式数据集
RDD(Resilient Distributed Dataset)的抽象,它是分布在一
组节点中的只读的弹性对象集合,若数据集部分丢失,可以
根据数据的衍生过程(“血统”)进行重建。
(3)Spark 通用性强。除了 Map 和 Reduce 操作,Spark
图 1 Spark 生态圈
2.3 决策树
决策树分为分类树和回归树,若决策树的训练样本类别
为离散值,则训练后得到分类决策树;若样本类别为连续变
量,则得到回归决策树。决策树算法通过构建树形结构分类
规则来发掘数据中蕴含的知识,决策树算法研究的要点是如
何构建规模小、精度高的决策树。
研究分类决策树算法时一般需要两个数据集:训练集和
测试集。训练集用来训练决策树,构建分类器,而测试集用
来测试已构建好的决策树。决策树的非叶子节点是满足特定
约束条件的样本集合,叶子节点为一个类别标签。决策树的
一个分枝即为一条分类规则,整棵决策树就是一个分类规则
集合。决策树解决分类问题可分为两个部分:(1)在已知
类别的训练集上训练构建一个决策树分类模型;(2)利用
生成的决策树分类模型对待测样本进行分类。
(1)在训练集上构建决策树模型。
由于训练集样本类别己知,所以分类决策树算法属于有
监督学习。构建决策树分类模型时递归划分特征空间,若当
前叶子节点包含的所有训练样本的类别标签均相同停止这一
分枝的生长。构建决策树分类模型过程中选择不同特征属性
进行分裂得到的决策树分类模型是不同的,并且会影响决策
树的生长及性能。因此,分裂属性标准的选择是决策树研究
的最重要的问题。常用的分裂属性选择标准包括信息增益、
GINI index 及信息增益率等。
信息增益是指选择某个特征分裂数据集,分裂前后的数
据集信息熵之差。分类前的信息熵的计算如下式(1)所示。
Info D
(1)
其中 D 表示训练集数据,c 为样本类别数,pi 是类别 i
的样本数量占总样本数量的比例。选择特征 A 为属性节点分
裂后信息熵的计算如下式(2)所示。
log
c
i
1
p
i
p
i
2
A
(2)
Info D
其中 k 为样本 D 被分为 k 各部分。D 在按 A 分裂后的信
Info D
k
j
j
D
j
D
1
还提供很多类型的数据集操作。
息增益计算公式如下式(3)所示。
围绕 Spark,伯克利 APM 实验室打造了一套生态系统,
称为 Spark 生态圈(BDAS),力图通过大规模集成,在算法
(Algorithms)、机器(Machines)和人(People)之间通过
大规模集成来展现大数据应用的一个平台。该生态圈已涉及机
器学习、数据挖掘、信息检索、数据库、自然语言处理和语音
识别等多个领域。Spark 生态圈的核心模块架构如图 1 所示。
Gain(A)=Info(D)-InfoA(D)
(3)
Gain(A) 取最大的特征 A 就是决策树最适合的分裂特征。
(2)利用分类模型对待测样本进行分类。
分类过程就是将待测样本与决策树节点的属性从树的根
节点开始逐层进行比较,直到到达树的某一叶子节点停止,
该叶子节点的类别就是该样本的分类结果。
— 7 —
计算机工程应用技术
信息与电脑
China Computer&Communication
2018 年第 3 期
特征
F1
F2
F3
F4
F5
F6
F7
F8
含义
URL 中“.”的个数
是否含特殊字符(#、@、_、-、&、~)
是否含有 IP 地址
数字的个数
URL 总长度
数字占的比重
最长域名段长度
分隔符“/”的个数
表 1 特征提取规则
特征
F9
F10
F11
F12
F13
F14
F15
F16
含义
分隔符“/”之间字符的最大长度
大写字母个数
最长连续数字长度
最长连续字母长度
数字、字母转换频率
大小写字母转换频率
顶级域名是否为五大域名(com、cn、net、org、cc)
主域名中有意义系数
通常情况下,训练决策树的真实训练集数据集会含有噪
声数据。若不处理噪声数据,完全拟合训练集就会导致过拟
合,且会产生大量复杂分类规则,造成决策树模型分类规则
的可解释性下降。因此,一般需要对决策树进行剪枝来消除
噪声数据对模型造成的不良影响,剪枝技术主要包括预剪枝
和后剪枝。
3 检测模型构建
3.1 特征提取
MA[4] 和 BARERA[5] 在 URL 特 征 选 择 方 面 进 行 了 较 为
全面的研究,本文从 URL 域名的结构特点以及正常与异常
URL 的差异性等方面,挑选了如表 1 所示的特征进行建模。
表 1 中 F16 的计算方法为:首先选取常用的 5 490 个英
文单词和 187 200 个中文拼音共同组成的有意义单词树,其
次将 URL 的主域名的字符串与单词树里的有意义单词进行
匹配,若匹配成功,则字符串有意义,最后将这个匹配字符
串与主域名字符长度的比值作为有意义系数 [3]。特征提取后
用特征向量表示,如 http://www.sina.com.cn/,其中的域名段
为“www.sina.com.cn”。F1 的 值 为 3;URL 中 不 包 含 特 殊
字符,所以 F2 的值为 0;URL 中不包含 IP 地址,F3 的值为 0;
URL 中数字个数为 0,所以 F4 的值为 0;F5 的值为 23;F6
的值为 F4 与 F5 的比值,所以为 0;总域名中最长的域名段
是“sina”,长度为 4,所以 F7 的值为 4;URL 中“/”的个
数是 3,所以 F8 的值为 3;分隔符“/”之间最大长度字符串
为“www.sina.com.cn”, 所 以 F9 的 值 为 15; 由 于 URL 中
没有大写字母,所以 F10 和 F14 的值均为 0;URL 中不含有
数字,所以 F11 的值为 0;URL 中最长连续字母串是“sina”,
所以 F12 的值为 4;由于 URL 中不存在数字和字母之间转换
的情况,所以 F13 的值为 0;由于域名段中顶级域名为“cn”,
所以 F15 的值为 1。经过匹配单词树,得到主域名“sina”与
单词树匹配的词是“sina”,有意义长度是 4,主域名长度是 4,
所以它的有意义系数是 4/4=1,即 F16 的值是 1。由此得到该
URL 的特征向量表示为 <3,0,0,0,23,0,4,3,15,0,0,4,0,0,1,1>。
3.2 恶意 URL 检测模型
恶意 URL 检测模型如图 2 所示。恶意 URL 检测工作包
括训练和检测两个部分。
图 2 恶意 URL 检测模型
(1)训练阶段。通过已知类别的正、负样本构建训练集,
然后提取训练数据特征,并用特征向量形式表示。再添加样
本类别标签值(正常 URL 标签值为 0,异常 URL 标签值为 1),
形成符合模型数据输入格式的特征矩阵。最后进行训练,并
通过调整模型参数得到最优的分类模型。
(2)检测阶段。分为传统黑白名单过滤和分类模型检
测两个部分。
①黑白名单过滤。首先对待测的 URL 利用黑白名单技
术进行过滤,即将已知的恶意网站 URL 地址和正常网站的
URL 地址分别放入黑白名单中,利用黑白名单对待测 URL
进行匹配。利用传统黑白名单技术进行初步过滤,能大大提
高恶意 URL 检测效率与检测正确率,降低误判率。
②分类模型检测。提取黑白名单没有匹配成功的 URL
特征,建立特征向量,并将特征向量作为训练阶段已建立好
的分类模型的数据输入,利用该模型预测该 URL,输出预测
结果。若预测结果为 0,则该条 URL 为正常 URL 地址;反之,
若预测结果为 1,则代表该 URL 为恶意 URL 地址。最后,
通过人工验证后,反馈输出结果,更新黑白名单。
4 实验结果及分析
4.1 数据准备及环境搭建
本文实验中恶意 URL 数据包括从实际业务中获取、收
集和整理的部分数据以及从开源的恶意网站实验室获取的部
分数据。正常 URL 数据是通过爬虫程序从一些常用的网站上
抓取的。数据集中恶意 URL 的数量为 33 195 条,正常 URL
的数量为 103 972 条,正常 URL 与恶意 URL 的比例约为 3:1。
为了适应大数据时代的发展,本文恶意 URL 检测模型
是基于 Spark 分布式计算框架设计的,本文的实验环境是以
Spark 的本地模式运行的,特征提取程序和建模程序都是以
— 8 —
2018 年第 3 期
信息与电脑
China Computer&Communication
计算机工程应用技术
Java 语言实现的,其中调用了 Spark ML 模块中的 Feature 和
Classification 等程序包。
4.2 模型训练
本文实验中,训练集数据以文件形式存储在 HDFS 中。
将数据集中 137 167 条 URL 随机划分为训练集和测试集两部
分,以约 8:2 的比例划分,如表 2 所示。
数据集
训练集
测试集
表 2 URL 数据集
内容
83 177 条正常 URL,26 556 条异常 URL
20 795 条正常 URL,6 639 条异常 URL
需要说明的是,由于黑白名单技术是权威可信的,所以
在模型训练过程中,并不考虑黑白名单,直接使用训练分类
模型。
实验过程如下。
(1)搭建 Spark 集群环境,以本地模式运行 Spark 集群。
将数据集以文件形式存储到 HDFS 中。
(2)调用特征提取程序,将训练集数据从 HDFS 中读
取到内存,进行数据预处理和特征提取。将从训练集 URL
中提取的特征向量与标签的值组合构成训练特征矩阵,将从
测试集 URL 中提取的特征向量构成测试特征矩阵。
(3)调用 Spark ML 中的相应程序包,对训练集特征进
行决策树分类模型的训练,记录准确率、召回率和精确率,
通过交叉验证得到精确度最优的分类模型,并将模型落地保
存到 HDFS 中。
(4)使用训练得到的分类模型对测试特征进行预测,
输出并记录预测结果,并关联到该条待测 URL,以便后续验
证并更新黑白名单。
4.3 结果分析
为了验证本文设计的大数据环境下基于 Spark 集群的恶
意 URL 检测模型的可行性、稳定性和性能,本文进行了相
关实验。具体实验结果如表 3 所示。
表 3 实验结果
实验次数 训练样本 / 条 测试样本 / 条 准确率 /% 召回率 /% 精确率 /%
85.07
88.96
90.15
89.64
90.40
84.35
86.15
86.50
87.03
86.93
91.16
95.53
97.63
97.07
97.94
27 434
27 434
27 434
27 434
27 434
6 000
12 500
25 000
50 000
109 733
1
2
3
4
5
需要说明的是,实验中前 4 次实验的训练样本中,恶意
URL 与正常 URL 样本均以 1:3 的比例从训练集中随机抽取,
第 5 次是以所有训练集样本为实验数据进行实验,5 次实验
的测试样本均为测试集的所有样本。由表 3 的实验结果可
知:首先,在本文实验条件下,设计的基于 Spark 集群的恶
意 URL 检测模型是可行的;其次,在训练样本较小的情况下,
训练不充分,模型没有达到最优,属于欠拟合情况,随着样
本数量增加,模型逐渐达到最优状态,并保持稳定,且达到
了很好的检测效果,说明本文实验条件下模型具有很好的稳
定性和很高的检测准确率。
5 结 语
针对大数据环境下,信息安全面临的考验日益严峻的问
题,本文设计并构建了结合大数据技术与机器学习算法,并
辅以黑白名单技术的恶意 URL 检测模型。该模型不仅将决
策树算法运用于恶意 URL 检测,弥补了传统黑白名单检测
技术的不足,而且结合大数据技术,利用 Spark 分布式计算
框架来实现恶意 URL 检测模型,以适应当前大数据环境下,
数据井喷式爆发的发展形势。最后通过实验证明,本文设计
的检测模型能有效检测恶意 URL,并且具有很高的检测准确
率和稳定性,符合当前大数据环境下的安全需求。然而,受
限于恶意 URL 样本量,本文的实验设计仍待完善,随着样
本数量的不断增加,模型的数据处理能力可以得到验证,这
将是本文即将深入展开的研究工作之一。
参考文献
[1] 王永娟 , 郝家宝 . 网络信息安全的威胁与防范技术研
究 [J]. 中国管理信息化 ,2015,18(20):146.
[2] 卿 斯 汉 . 关 键 基 础 设 施 安 全 防 护 [J]. 信 息 网 络 安
全 ,2015(2):1-6.
[3] 刘健 , 赵刚 , 郑运鹏 . 恶意 URL 多层过滤检测模型的
设计与实现 [J]. 信息网络安全 ,2016(1):75-80.
[ 4 ] M a J , S a u l L K , S a v a g e S , e t a l . B e y o n d
blacklists:learning to detect malicious web sites from suspicious
URLs[C]//Acm Sigkdd International Conference on Knowledge
Discovery & Data Mining, 2009:1245-1254.
[5]Garera S, Provos N, Chew M, et al. A framework
for detection and measurement of phishing attacks[C]//Acm
Workshop on Recurring Malcode, 2007:1-8.
[6] 刘昂 . 基于文本匹配的钓鱼网站检测系统的设计和实
现 [D]. 北京 : 北京邮电大学 ,2013.
[7] 曹玖新 , 董丹 , 毛波 , 等 . 基于 URL 特征的 Phishing
检测方法 [J]. 东南大学学报 ( 英文版 ),2013(2).
[8] 蔺亚东 . 基于 URL 特征的钓鱼网站检测方式 [J]. 电
子测试 ,2014(3):70-72.
[9] 张茜 , 延志伟 , 李洪涛 , 等 . 网络钓鱼欺诈检测技术
研究 [J]. 网络与信息安全学报 ,2017(7):7-24.
[10] 胡 忠 义 , 王 超 群 , 吴 江 . 融 合 多 源 网 络 评 估 数 据
及 URL 特征的钓鱼网站识别技术研究 [J]. 现代图书情报技
术 ,2017,1(6):47-55.
[11]Khonji M, Iraqi Y, Jones A. Phishing Detection:
A Literature Survey[J]. IEEE Communications Surveys &
Tutorials, 2013, 15(4):2091-2121.
[12] 李文栋 . 基于 Spark 的大数据挖掘技术的研究与实
现 [D]. 济南 : 山东大学 ,2015.
[13] 孙科 . 基于 Spark 的机器学习应用框架研究与实现
[D]. 上海 : 上海交通大学 ,2015.
— 9 —