基于BP神经网络的恶意URL检测模型

2020-05-20 00:33安徽刘一利张家钢施凡
网络安全和信息化 2020年5期
关键词:域名黑名单特征提取

■ 安徽 刘一利 张家钢 施凡

编者按:恶意网址URL检测问题是网络安全领域研究的一个热点。本文提出了基于BP神经网络的恶意URL检测模型,可实现对大批量URL快速、有效判别。

随着计算机网络技术的快速发展,互联网已经深入到人们生产生活的方方面面,担负着越来越重要的角色。互联网金融、互联网商务、互联网农业、互联网医疗等新兴行业逐渐改变着人们的生活方式。

然而,在计算机网络快速发展的同时,网络安全事件层出不穷,网络攻击工具泛滥、网络威胁时刻相伴,据国家计算机网络应急技术处理协调中心发布的《2019年上半年我国互联网安全态势》显示,仅上半年新捕获的恶意程序达3200万个,恶意程序日均传播达998万次,受影响的IP约3762万个,发现恶意邮件数超过5600万封。

如何检测恶意网站已成为维护网络安全的一项重要措施。恶意URL检测是网络安全研究的热点,URL是网站的入口地址,对其进行鉴别可有效提升安全检测的效果。

恶意URL检测方法的相关研究

关于恶意URL检测的方法,国内外学者也进行了广泛的研究,主要有基于黑名单的方法、基于TF-IDF的方法、基于深度学习的方法、基于段模式的方法等,下面对几种典型的方法进行介绍。

黑名单方法广泛运用于网络安全领域,主要是通过建立黑名单库,对URL进行特征比对,具有识别准确率高、识别速度快、简单方便的优点。但由于其采用黑名单库,对新增的恶意URL无法检测,同时其需要维护庞大的黑名单数据库需消耗大量资源。基于黑名单的过滤方法在Google、eBay Toolbar等浏览器中得到了使用。

甘宏等提出利用TF-IDF方法计算各个分词的权重作为统计特征,来进行恶意URL检测。

潘司晨等提出的使用卷积神经网络的深度学习方法,通过将URL字符进行编码映射成二维数组,通过多层神经网络,自动学习高层次特征并预测结果,不需要特征提取。但该方法需要高质量带标签数据。

林海伦等提出了基于段模式的恶意URL检测方法,是通过对恶意URL中的域名、路径名和文件名3个语义段,通过建立三元组为词项的快速计算恶意URL每个语义段的模式,判定给定的URL是否是恶意URL。

Ma等提出一种基于URL的词汇特征和主机属性训练模型,对恶意URL进行检测的方法。该方法的有效性基于对特征的准确选取和计算。

本文提出的利用BP(Back Propagation)神经网络方法构建的恶意URL检测方法,通过提取URL特征,利用历史数据训练BP神经网络分类模型。运用训练好的分类模型对未知URL进行预测。

图1 模型流程图

表1 访问控制规则

模型设计

BP神经网络是一种按照误差反向传播算法训练的多层前馈神经网络,是应用最广泛的神经网络。

BP神经网络模型无需事先确定输入输出之间映射关系的数学方程,仅通过使用历史数据对模型进行训练,学习规则,实现对未知数据的预测。

本文通过设计BP神经网络分类模型,对恶意URL进行检测。模型基于sklearn库实现。

完整的处理流程如图1所示。

1.数据集特征提取

本文从URL域名的结构特点,以及正常与恶意URL的差异性等方面,选取的特征如表1所示。

表1中各特征参数的计算方法为,第11个特征通过网络爬虫工具爬取12000个常用域名主域名,在选取常用的6000个英文单词和15000个常用的中文拼音通过去重处理后,共同组成常用主域名词数据库。将URL的主域名字符串与主域名词数据库进行比对,若比对成功,则字符串有意义,最后将这个匹配的字符串与主域名总长度的比值作为有意义系数。

例如,“http://www.baidu.com.cn”,去掉“http://”,仅对“www.baidu.com.cn”进行特征提取。其中的URL总长度为16,数字个数为0,是否含有IP地址为布尔型变量为0,数字占比为0,最长域名段为“baidu”长度为5,分隔符“/”的个数为0,大写字母个数0,最长连续字母长度为5,顶级域名是否为五大域名为1,是否含特殊字符为0,主域名中有意义系数中,主域名仅有一个字符串“baidu”,通过匹配查找能够匹配,有意义长度为5,主域名总长度为5,有意义系数为5/5=1。得到该URL的特征提取向量为<16,0,0,0,5,0,0,5,1,0,1>。

2.训练模型

通过对训练集URL进行特征提取,得到特征向量。将正例样本标记为1,将反例样本标记为0。模型训练步骤如图2所示。

(1)划分数据集

将数据集进行合理划分,一般按照7:3的比例将数据集划分为训练数据和测试数据。使用训练数据训练模型,Adagrad、Adadelta、Adam、Adamax、Nadam。

图2 模型训练步骤

(3)判断训练结果

将BP神经网络模型对验证集数据的分类结果进行分析,判断正确率和召回率是否达到要求。如果正确率和召回率达到要求,停止训练,模型训练完毕。如果不满足要求,返回步骤2,重新设置模型超参数,进行训练,直到达到要求。用测试数据来验证模型的正确率和召回率,判断模型的有效性。当数据集数量不够可采用k折交叉验证,k一般取值为10,我们将数据集划分为k个子集,其中每个子集做一次验证集,共进行k次训练,将平均值正确率和召回率作为最终的结果。

(2)设置模型超参数

BP神经网络模型在训练之前需要设置超参数,如网络模型的层数;输入层、输出层和隐含层的神经元数量;初始权值设定;学习率,最小训练速率;激活函数,常用的激活函数为sigmoid、tanh、relu、leaky relu、elu;优化器选择,常见优化器有SGD,

结语

当今,信息安全面临日益严峻的考验。本文基于BP神经网络机器学习算法,设计了一种快速、有效的对恶意URL的识别方法。通过对URL数据的11个特征进行提取,转化为特征向量,使用数据集划分为训练集和验证集,对BP神经网络模型进行训练和验证,模型达到指标要求可实现对大批量待检测URL实现快速识别,可有效实现对恶意URL的实时在线识别。

本文设计的恶意URL识别检测模型,还需要用更广泛的URL数据进行验证,下一步将针对模型泛化能力进行深入研究。

猜你喜欢
域名黑名单特征提取
防晒黑名单?第2款就翻车了!
你的卫生巾上“黑名单”了吗?
《江苏教育研究》官方网站域名变更公告
空间目标的ISAR成像及轮廓特征提取
基于Gazebo仿真环境的ORB特征提取与比对的研究
基于特征提取的绘本阅读机器人设计方案
基于Daubechies(dbN)的飞行器音频特征提取
震惊!100多个地方政府上了失信黑名单
黑名单
顶级域名争夺战:ICANN放出1930个通用顶级域名,申请者有上千家