基于字符卷积神经网络的违法URL识别
汪俊明1,2,俞诗博1,2,李素云3
(1.公安部第三研究所,上海200031;2.信息网络安全公安部重点实验室,上海201204;中国电信股份有限公司苏州分公司,江苏苏州215000)
摘要:违法URL是网络违法犯罪传播的方式之一,当前,依托互联网进行的、赌博等违法行为日益猖獗,上当受骗者众多,严重危害人民众财产安全和正常生活秩序。针对上述问题,该实验利用深度学习方法,挖掘历史违法URL数据特征,建立违法URL快速识别模型,为打击网络犯罪提供支撑。
关键词:深度学习;神经网络;恶意URL
中图分类号:TP183文献标识码:A
文章编号:1009-3044(2021)11-0181-03开放科学(资源服务)标识码(OSID):
近年来,随着移动网络应用的蓬勃发展,依托互联网进行的违法行为日益猖獗,通过App、网站进行的
网络犯罪现象持续高发,虽然经过公安、电信、银行、互联网企业等单位的多方努力,进行了大量宣传、采取各种防范措施,但上当受骗者仍不在少数,严重危害人民众财产安全,扰乱正常生产生活秩序,已成为影响社会稳定的突出问题。特别是网络,具有方式多样、手段翻新快、隐匿性强、技术化程度高、目标针对性广等特点,大量通过短信和通联应用向不特定对象传播、发送恶意URL,诱使当事人访问违法页面,进而落入各种陷阱。因此,及时准确识别违法URL,采取有效措施预先防范潜在违法行为,是构建网络安全防护体系的重要环节。
本文提出了一种基于字符卷积神经网络(Char-CNN)的违法URL识别算法[1],在第一节中,我们介绍当前识别违法URL 的主流技术手段;第二节中,我们对本文提出的违法URL识别算法进行了详细介绍,第三节报告该算法在真实数据上的实验结果,最后对算法的应用进行了总结。
1相关技术
1.1启发式学习
针对违法URL的识别,黑名单是使用时间最久且目前仍然广泛使用的技术。使用黑名单作为违法URL的判别标准具有明显的优势和劣势,一方面,由于黑名单数据均经过人工确认,正确率高;另一方面,违法URL活跃时间较短,历史积累的黑名单数据随着时间推移会逐渐失效,基于人工举报、标记的黑名单数据更新速度远低于犯罪分子启用新URL的速度,导致无法识别新近出现的违法URL,漏报
率高,仅能提供给较低程度的防护[2]。
为弥补其缺点,启发式算法应运而生。启发式算法利用累计的黑名单数据,挖掘历史数据的相似性规律,寻历史数据的违法“签名”,使用相似性规则对违法URL进行判别。这些算法常常基于针对页面的动态分析,抓取多次重定向、非常规操作步骤等特征[3,4],因此有一定概率遭受网络攻击。这些算法可在一定程度上弥补黑名单技术仅使用精准碰撞来判别的弊端,但仍然具有规则更新慢、准确率低的缺点,时效性仍然较差。1.2机器学习
机器学习算法通过分析URL页面信息,提取页面内容特征,训练预测模型对页面内容进行判别[5-7]。机器学习算法主要分为监督学习和无监督学习两类。监督学习基于标注数据,不断基于已标注URL,提取页面特征进行训练,常用于URL识别的算法有支持向量机(SVM)、随机森林、C5.0等。无监督学习则使用没有标注的数据,通过对无标签样本的学习来揭示数据的内在特性及规律,按照数据的相对标准进行学习。无监督学习的URL识别模型中,常使用聚类方法来进行特征提取,将相似度较高的对象聚到同一个簇,不同簇间相似度较低,以此来区分违法URL和正常URL[8]。
相对启发式学习,使用机器学习方法判别违法URL不必拘泥于历史数据集,基于样本数据训练的模型可以挖掘更多违法
URL,具有一定主动性。但“数据决定了机器学习的上限,而算法只是尽可能逼近这个上限”,高度依赖
于训练集数据及特征工程的机器学习方法依然有其局限性。要建立价值较高的判别模型,首先需要准确率非常高的样本,且需不断更新,以适应违法URL的更新速度;其次,还需要通过特征工程进行特征构建、特征提取和特征选择,以最大限度地从原始数据中提取特征供算法和模型使用,人工预处理对模型的效果仍然有着至关重要的作用。
收稿日期:2021-01-05
作者简介:汪俊明(1980—),男,上海人,实习研究员,学士,主要研究方向为网络安全、网络违法犯罪分析技术;俞诗博(1995—),女,上海人,实习研究员,硕士,主要研究方向为网络违法犯罪分析技术;李素云(1979—),男,江苏苏州人,助理研究员,硕士,主要研究方向为网络安全。
Computer Knowledge and Technology 电脑知识与技术第17卷第11期(2021年4月)
1.3深度学习
深度学习是机器学习的一个分支,是一种基于对数据进行表征学习的算法。相较于需要大量人工参与进行特征工程的机器学习,深度学习预处理工作较少,使用非监督式或半监督式的特征学习和高效分层特征提取算法来代替人工,可以实现自动提取数据中包含的特征,避免人工耗费和可能出现的主观错误,本文使用的卷积神经网络(CNN)即为常用的一种深度学习算法[1,9,10]。
CNN 与普通神经网络非常相似,由可学习的权重和偏置常
量神经元组成。每个神经元都接收一些输入,并做点积计算,输出是每个分类的分数。卷积神经网络常应用于计算机视觉和自然语言处理领域,它能将大信息量数据在不影响结果的前提下降维为小量数据,并保留数据特征。CNN 包含卷积层、池化层和全连接层。卷积层对信息的局部进行提取,保留数据的重要特征,类似于人类视觉原理,在每一小块中深入分析从而得到抽象程度更高的特征;池化层即下采样,通过数据降维减少运算量,可以有效避免过拟合;全连接层则根据算法需要,输出最终结果。CNN 通过叠加上述三种结构,设计出适合应用场景的算法。
2基于字符级卷积神经网络的违法URL 识别模型与
实现
图1Char-CNN 模型流程字符级别的卷积神经网络,即Character-level Convolution⁃
al Networks(Char-CNN)。相较于基于短语和单词的自然语言处
理算法,Char-CNN 从字符粒度训练神经网络,不需要预先掌握单词、语法和语义知识,可以跨语言使用。不同于普通文本文章,URL 文本较短,可提取信息量有限,且URL 生成方式多样,多数不以单词为基本单位组成,缺乏语法语义特征,故对于URL 的判别,使用字符作为基本单位是更加合适的信息挖掘方式[1,11]。
Char-CNN 识别算法分为生成嵌入式表示、特征挖掘和分
类三个阶段。生成特征图像环节需固定URL 长度,将输入URL
通过索引方式生成输入神经网络的二维张量;特征挖掘通过多个尺寸的卷积层,提取URL 编辑距离、前后顺序等重要信息,并将这些信息合成为一个固定长度的特征向量;最后,被提取的信息通过全连接层进行判别分类。
图1为模型流程,整个算法由训练和预测两部分构成。在模型训练完成后,我们使用测试集对模型进行评估,通过准确率、召回率、F1值对模型进行评价,并依据结果对模型进行参数和层数调整。下面将详细阐述模型的训练过程。2.1生成特征图像
模型使用单个字符作为语义单元,单条URL 可以看作是一个由基本语义单元组成的普通语句。根据RFC3986编码规范,URL 只允许包含英文字母(a-zA-Z)、数字(0-9)、-_.~4个特殊字符以及所有保留字符!*'();:@&=+$,/?#[],共计84个有效字符[12]。
在本次实验中,我们尝试将所有大写字母转换为小写字母,即使用58个有效字符,作为模型的语料库,同时,考虑到可能出现的非法字符,我们另增加一个词语unknown 作为非法字符的表示,若出现语料库之外的字符,则使用unknown 作为代替。
卷积神经网络最初运用于计算机视觉领域,对数据输入大小有一定要求,例如在LeNet-5中,每个输入都是32×32的图像文件[10]。一旦图像分辨率发生了变化,造成多余卷积操作结果丢失,就会对模型结果产生影响,或者使得网络内部状态发生混乱,在图像处理中,主要通过设置输入图像固定分辨率来解决这个问题。但是,在自然语言处理中,由于输入的是文档或者语句,输入内容长度是不固定的,通常采用截断过长文本、填充不足文本的方式进行处理,以保持文本长度的一致性[8]。不同于普通文本,URL 的前半部分相对于后半部分而言包含的有用的信息更多,本实验中我们选择从后段进行截断或者填充。在对实验数据进行预处理和统计分析后发现数据集中95%的URL 的字符数小于等于80个字符,使用80作为输入长度可以保留绝大部分实验样本的信息,在本文模型试验中,长度长于80个字符的URL 从尾部进行截断,短于80的使用填充字符填充。
由于URL 语料库较小,不会造成维度灾难,为方便实验,使用1-60代表语料库中60个字符(59个原始字符及1个填充字符)建立索引,根据索引使用一个一维向量对URL 中字符进行表示,使得每条URL 都生成一个80×60特征图像,输入后续的卷积层中。2.2特征挖掘
实验使用CNN 作为分类模型,将上述阶段生成的特征图像作为输入,进行特征挖掘和分类。特征挖掘过程包含多个并列的卷积层Conv ()t,k 和对应的池化层,其中t 为卷积核个数,
k 为卷积层大小。为提取足够多的上下文信息,实验中使用多个不同大小的卷积层,设置k ∈{}2,3,4,5,并依据经验设置t 值为256。
特征挖掘过程中,设初始输入一个长度为M 的URL 字符串,一个大小为k 的卷积核应用到第i 个长度为k 的窗口上,将生成一个新特征z i ,新特征z i 生成计算式如下文所示,其中ωm
Computer Knowledge and Technology 电脑知识与技术
第17卷第11期(2021年4月)
表示卷积核的m 位置的权重,
x i:i +k -1表示URL 从i 位置到i +k -1位置的字符数据,b 是偏置项,f 是一个非线性函数,实验
使用RELU 作为激活函数。
z i =f
()
∑
m =0
M -k -1
ωm ×x i :i +k -1+b
(1)
每一个卷积层对应一个最大池化层,只保留区域内的最大特征,忽略其他值,以降低噪声的影响、提高模型健壮性、避免过拟合。实验中256个卷积核在经过池化层后会得到256个1×1维度的输出,4个大小为1×256的卷积层输出结果将拼
接展开为一个长度为1024的向量,进入RELU 全连接层后再接一个sigmoid 全连接层,最后输出二分类结果。2.3过拟合处理
在深度学习中,经常会出现某些神经元比另一些神经元具有更重要的预测能力,这种现象导致预测模型过度依赖于个别神经元以致模型对新样本的预测能力较差,通常使用dropout 解决该问题,即随机移除神经网络中的一些神经元,防止过拟合,同时实现提高模型训练速度。在本文模型实验中,我们增加了Spatial dropout ,并依据经验设置dropout 参数为0.5,每个卷积层在经过池化后和第一次经过全
连接层后做一次dropout ,以防止本实验样本量不大的情况下出现过拟合。
然而,在实际实验中,因为初始epoch 值设置过大,依然出现了过拟合问题。因此,除去dropout ,在实验中我们还设置了早停机制,以解决epoch 数量需要手动设置的问题,即使用一个及时停止的标准来提前结束训练,使模型尽可能产生最低的泛化错误[13]。具体过程如下所示。
1)将原始训练数据集划分成训练集和验证集。
2)只在训练集上进行训练,在验证集上进行验证并计算误差。实验中,我们使用100步作为计算周期,即每100步计算一次验证集误差,并统计比较验证集历史最低误差值。
3)当模型效果经过多轮训练后无明显提升时,结束实验。实验中,我们设置模型训练效果在1000轮后仍未提升,则结束训练。4)使用最后一次迭代参数作为模型最终参数,生成预测
模型。
3实验
3.1实验数据及评估标准
本次实验违法样本数据来源于公安、互联网安全公司,包含赌博、情、等违法URL 数据共70648条。合法样本则使用爬虫从Alexa 爬取,共70571条数据。实验共包含141219条URL 数据。
实验使用准确率、召回率及F1值对模型进行评估。由于实际运用中,违法网站被错误识别为合法网站可能产生较大风险,故在对比算法准确程度时,本文使用召回率作为主要评价标注。
3.2实验结果及分析
本文实验使用一台Centos 7服务器进行训练,服务器均安装python3.7.7及TensorFlow 2.0.0软件环境,使用scikit-learn 对实验结果进行评估。
实验设置训练集、验证集及测试集样本比例为8:1:1。为防止过拟合问题,设置1000步为早停参数,每100步使用当前模型对验证集进行测试,若1000步后模型对验证集预测的准确率没有提升,
则停止训练。
图2模型训练过程
图2为模型训练过程,试验中,约400步后准确率逐渐稳定
于0.95。由于实验加入了早停机制,验证集正确率未因epoch 值设置有误出现明显过拟合。
表1为训练完成后准确率、召回率及F1值,表2为测试集上的混淆矩阵。在实验测试集上,完成训练后的模型准确率达到0.980,召回率达到0.987,F1值为0.983,三个判别评价标准均显示出良好的模型拟合效果。
表1测试集准确率
01
Accuracy
Macro avg
Weighted avg
precision 0.990.980.980.98
recall 0.980.990.980.98
F1-score 0.980.980.980.980.98
Support 71036977
140801408014080
表2测试集混淆矩阵
01
696492
11396885
实验中,早停机制发挥出了极大效果。前期测试中,因ep⁃
och 设置过大,训练过程耗时过长,超过10个小时,且验证集准
确率一度低于0.6。因此,对于该类型数据集而言,加入过拟合机制尤为重要。经试验,在本文数据集上,当全连接层核数为1024,截断长度为80,批处理数量为128,学习率为0.005时,试验效果最好。
Computer Knowledge and Technology电脑知识与技术第17卷第11期(2021年4月)
未识别的网络4结语
URL作为大量网络违法犯罪过程中的要素信息之一,实时识别并阻断违法网络请求可有效降低犯罪行为的发生,当前,各类模型和算法识别违法URL的效果还有待提高,但是计算机智能模型作为快速识别、自动处置的手段之一,具有较高的工程应用价值。本文针对如何利用机器学习算法进行违法URL 识别的问题,提出了一种基于URL字符串的深度学习分类算法,并利用TensorFlow进行了代码实现。实验证明,本文提出的违法URL识别分类方法,在准确率与召回率方面都达到了较好的效果。目前模型仅实现了违法URL识别的二分类,主要用于判断URL是否为违法,随着数据的积累,我们将开展多分类模型研究,识别违法URL具体类型,促进网络违法行为的精确识别。
参考文献:
[1]ZhangXiang,ZhaoJun-bo,LeCunYann.Character-level Convolu⁃tional Networksfor Text Classification[J].NIPS'15:Proceedings of the28th International Conferenceon Neural Information Pro⁃cessing Systems-Volume1,2015(12):649-657.
[2]KivinenJ,Smola A J,Williamson R C.Online learning with ker⁃nels[J].IEEE Transactions on Signal Processing,2004,52(8): 2165-2176.
[3]Moshchuk Alexander,Bragin Tanya,Deville Damien,GribbleSte⁃ven D,Levy Henry M.SpyProxy:Executionbased Detection of Malicious Web Content[M].In Proceeding of the16th USEN
IX Security Symposium.Berkeley,CA,United States:USENIX Asso⁃ciation,2007:27-42.
[4]Khonji M,Iraqi Y,Jones A.Phishing detection:a literature survey [J].IEEE Communications Surveys&Tutorials,2013,15(4):2091-
2121.
[5]PatilDharmaraj Rajaram,Patil J B.Surveyon Malicious Web Pages Detection Techniques[J].International Journal of uande Service,Science and Technology,2015,8(5):195-206 [6]沙泓州,刘庆云,柳厅文,等.恶意网页识别研究综述[J].计算
机学报,2016,39(3):529-542.
[7]凡友荣,杨涛,王永剑,等.基于URL特征检测的违法网站识别
方法[J].计算机工程,2018,44(3):171-177.
[8]Kim,Y.ConvolutionalNeuralNetworksforSentenceClassification [M].Proceedingsof the2014ConferenceonEmpiricalMethodsin⁃NaturalLanguageProcessing(EMNLP),Doha,Qatar:Association for Computational Linguistics,2014:1746-1751.
[9]Sinha S,Bailey M,Jahanian F.Shades of grey:On the effective⁃ness of reputation-based“blacklists”[C]//20083rd Internation⁃al Conference on Malicious and Unwanted Software(MAL⁃WARE).October7-8,2008,Alexandria,VA,USA.IEEE,2008: 57-64.
[10]LeCun Y,BottouL,Bengio Y,et al.Gradient-based learning ap⁃plied to document recognition[J].Proceedings of the IEEE,1998, 86(11):2278-2324.
[11]陈康,付华峥,向勇.基于深度学习的恶意URL识别[J].计算
机系统应用,2018,27(6):27-33.
[12]Internet Engineering Task Force.Uniform Resource Identifier (URI):GenericSyntax(RFC3986)[Z].2005.
[13]Prechelt Lutz.Early Stopping But When?[M].Neural Networks: Tricks of the Trade,volume1524of LNCS,chapter2,Berlin: Springer Verlag,1997:55-69.
【通联编辑:唐一东】
发布评论