李 雪
(安徽工贸职业技术学院 计算机信息工程系,安徽 淮南 232001)
互联网技术快速发展在给国民日常生活带来便利的同时互联网安全问题日益凸显,网络攻击、网络窃密等现象层出不穷。网民的个人信息和隐私被违法窃取,甚至进行买卖交易,这在很大程度上对社会的和谐稳定与经济的快速发展产生了威胁。有关统计数据表明,2019年的钓鱼网站数量是2018年钓鱼网站数量的4倍之多,同时网络技术的快速发展使得钓鱼网站和正规网站页面之间具有极高的相似度,难以辨别[1]。目前的钓鱼网站和传统的钓鱼网站有所不同,钓鱼网站攻击者的诈骗技巧呈现多样化,利用网络链接来盗取公民的个人隐私,消费者的人身和财产安全受到一定程度的威胁。创造和谐稳定的社会环境,确保经济的快速发展必须严厉打击钓鱼网站。因此,采用神经网络对钓鱼网站检测进行研究,以提高对钓鱼网站的识别率,保障网络安全具有重要现实意义。
人工智能快速发展,机器学习是人工智能的核心,在工程中具有广泛的应用。神经网络是机器学习的一个重要分支,具有极强的自学习和高效寻优能力,本文拟采用BP神经网络对钓鱼网站进行检测。BP网络是典型的多层前馈网络,是众多神经网络模型中应用最为广泛的一种,具体结构如图1所示。
图1 BP神经网络典型结构
BP神经网络训练的过程包含两个部分,即信号的正向传播部分和信号的反向传播部分。信号的正向传播为输入数据经过输入层到达隐含层,同时从隐含层到达输出层,正向传播的过程中网络的权值保持不变。BP神经网络在输入层到隐含层之间产生权值矩阵和偏差矩阵,分别记为w1和b1,在隐含层到输出层之间产生权值矩阵和偏差矩阵,分别记为w2和b2。隐含层与输出层之间的神经元传输函数记为f1和f2,那么输出数据Y和输入数据X之间的关系为:
Y=f2(w2·f1(w1X-b1)-b2)
(1)
信号的反向传播是根据每一层神经元的值来计算误差的,在误差最小化原则下对网络中的权值进行不断地修正,确保网络的输出值和期望值之间误差最小。采用数学上的梯度下降法,通过对所建立网络不断地进行训练来调整权值和阈值,使得BP网络的输出和期望的输出之间的均方误差达到最小,定义目标函数为M,表达式为:
(2)
BP神经网络在实际中具有十分广泛的应用,但是由于网络的输入层和隐含层、隐含层和输出层之间的神经元连接初始权值对网络输出的结果具有比较大的影响,如果连接初始权值设置不合理将导致收敛速度较慢,同时可能导致网络陷入局部最优。遗传算法(GA)具有良好的全局搜索能力,通过选择、交叉、变异等过程而获得全局最优解。因此,采用GA对BP神经网络的初始权值进行优化,从而获得GA-BP神经网络[2]。图2给出了GA-BP神经网络流程图。
图2 GA-BP神经网络流程图
种群随机初始化,同时采用实数编码的方式对每一个物种进行编码处理。自然界的每一个物种个体由神经网络的输入层与隐含层的连接权值、阈值,隐含层与输出层的连接权值、阈值所构成。计算适应度函数F,
(3)
从种群中选择个体作为双亲去繁衍后代,每一个个体被选择的概率为Pi,
(4)
对于配对的两个个体以交叉概率Pc来进行基因的交换,从而产生两个新的个体。k1个体和k2个体在第j位置基因交叉的办法为:
(5)
对变异概率pv比较小的选择第i个体的第j位置基因gij进行变异操作,变异操作的方法为:
(6)
gk1,j为第k1个体在第j位置基因,gk2,j为第k2个体在第j位置基因,r为区间[0,1]上的随机数,gmin为基因gij的最小值,gmax为基因gij的最大值,r、r1、r2为区间[0,1]上的随机数,s为迭代次数,smax为最大迭代次数。
通过计算适应度函数的值来判断是否达到全局最优,如果适应度函数值达到最大,那么达到全局最优;如果适应度函数值没有达到最大,那么继续进行优化,确保适应度函数值达到最大。采用GA对BP神经网络的初始化权值和阈值进行优化,从而获得GA-BP网络预测模型。
GA-BP网络识别模型的输入是网站URL,通过对URL特征的提取来检测钓鱼网站。URL提取的特征包括两类,一类为显性的特征向量,另一类为隐性的特征向量。显性特征向量所反映的是钓鱼网站的可能性大小,而隐性特征向量是无法直接判断的特征向量[3]。通过GA-BP神经网络对隐性特征向量进行预测,同时预测的结果和显性特征向量综合起来进行判断网站是否为钓鱼网站。钓鱼网站检测模型如图3所示。
图3 钓鱼网站检测模型
1.显性特征。URL的显性特征主要包括三个方面,分别为是否为IP形式、地址长度、域名年龄和有效时间。对于钓鱼网站的攻击者来讲,将IP地址表示为钓鱼网站的URL域名是比较常见的,这样就可以使得使用者的注意力被分散,使用者会点击URL。为了使得钓鱼网站的真实域名被隐藏,钓鱼网站的攻击者往往是采用增加地址长度的形式,这样使得使用者难以辨别是否为钓鱼网站。对于钓鱼网站的攻击者而言,其网站域名更新比较频繁,同时为了应对安全检查,必须不断地更换域名服务器,因此钓鱼网站的域名年龄比较短。将钓鱼网站的显性特征分为三组,分别记为D1、D2和D3,那么显性特征向量为D=(D1,D2,D3)。
2.隐性特征。URL的隐性特征主要包括三个方面,分别为主域名、子域名和路径名。记待检测的URL主域名和其在谷歌搜索引擎拼写建议结果之间的距离为V1。如果V1=0,那么主域名的值R1=1,为合法的网址;如果V1≠0,那么R1=1-1/V1。记待检测的URL子域名和其在谷歌搜索引擎拼写建议结果之间的距离为V2。如果V2=0,那么子域名的值R2=1,为合法的网址;如果V2≠0,那么R2=1-1/V2。记待检测的URL路径名和其在谷歌搜索引擎拼写建议结果之间的距离为V3。如果V3=0,那么路径名的值R3=1,为合法的网址;如果V3≠0,那么R3=1-1/V3。将钓鱼网站的隐性特征分为三组,分别记为R1、R2和R3,那么隐性特征向量为R=(R1,R2,R3)。
将钓鱼网站的显性特征和隐性特征结合起来进行评价,即分别赋予显性特征和隐性特征一定的权重,这样对钓鱼网站的评价预测准确率更高[4]。采用百分制将显性特征的权重记为60,隐性特征的权重记为40。由于显性特征值共有3个,因此每一个特征值的权重为20;由于隐性特征值共有3个,因此每一个特征值的权重为13.3。综合评价公式为:
(7)
如果计算所得Z值大于等于60,那么该网站为钓鱼网站;如果计算所得Z值小于60,那么该网站为正规网站。
实验数据来自国际反钓鱼组织[5],其中包含有正向样本(钓鱼网站)5000个和反向样本(合法网站)3000个。将样本分为训练集数据和测试集数据,具体如表1所示。
一般来讲,正规合法网站的数量要远大于钓鱼网站的数量,国民所访问的网站中钓鱼网站所占比的比例也不是太高的。本文选择3500个正向样本和1500个反向样本采用GA-BP神经网络进行训练。训练结束之后需要对GA-BP网络进行测试,选择正向样本1500个和反向样本1500个进行测试。采用总体识别率(Accuracy)、正向样本识别率(PA)和总体漏报率(MR)来判断识别的效果。
(8)
(9)
(10)
W=TP+FP+TN+FN
(11)
其中,TP为正向样本识别为钓鱼网站的个数;TN为反向样本识别为正规网站的个数;W为样本总数;FP为正向样本识别为正规网站的个数;FN为反向样本识别为钓鱼网站的个数。
采用GA-BP网络对正向样本1500个和反向样本1500个进行测试,测试的结果如表2所示。
由表2可见,采用GA-BP网络总体的漏报率为0.19%,维持在比较低的水平,同时正向样本的识别率为98.87%,识别率比较高,因此提出的GA-BP神经网络对整体样本的识别效果良好,具有较好的应用前景。
为了更好地对钓鱼网站进行检测,采用将钓鱼网站的显性特征和隐性特征结合起来进行评价的办法,评价的结果如表3所示。
表3 钓鱼网站检测结果
对比表2和表3,采用将钓鱼网站的显性特征和隐性特征结合起来进行评价的办法使得对钓鱼网站的总体识别率、正向样本识别率和总体漏报率都有了明显的提高。
针对BP网络神经元连接初始权值对网络输出结果影响比较大的问题,采用GA算法对BP神经网络初始权值进行优化,得到优化后的GA-BP神经网络。将优化后的GA-BP神经网络应用于钓鱼网站监测中,实例仿真结果表明GA-BP网络对整体样本的识别效果良好,总体识别率高达98.21%,正向样本识别率为98.87%,总体漏报率为0.19%,同时综合评价方法使得钓鱼网站的总体识别率为98.36%、正向样本识别率为99.21%和总体漏报率为0.11%。