基于深度学习的钓鱼网页层次化检测方法及系统与流程

文档序号:25602021发布日期:2021-06-25 12:12阅读:226来源:国知局
基于深度学习的钓鱼网页层次化检测方法及系统与流程

1.本发明属于网络安全技术领域,特别涉及一种基于深度学习的钓鱼网页层次化检测方法 及系统。


背景技术:

2.近年来,互联网快速发展,基于互联网的应用如在线购物,电子商务,网络社交等为人 们的工作、生活、娱乐带来了巨大便利。因此,越来越多的人开始接触、使用互联网。据中 国互联网络信息中心cnnic统计,截至2020年3月,中国网民规模达9.04亿,互联网普及率 达64.5%。与此同时,网民信息亦面临着安全威胁,如网络攻击者通过网络钓鱼。窃取个人 敏感信息进而获取经济利益。因此,如何及时、有效地检测钓鱼网页已经成为亟待解决的问 题。
3.针对钓鱼网页,当前主要有三类检测方法:基于黑名单检测,基于网页内容特征检测, 基于url特征检测。其中,基于黑名单检测是一种传统的钓鱼网站检测方法,只需进行简单 的数据库查询操作,因此实现简单且检测速度快,但该方法过度依赖黑名单的规模,无法识 别新出现而未在黑名单中的钓鱼网址。基于网页内容特征检测,根据网页内容相似度来判别 网页的合法性或者利用机器学习训练生成一个检测模型来识别钓鱼网页。钓鱼网页经常使用 大量被模仿网页的信息,如css架构、logo、布局等,与被模仿合法网页具有较高的相似度, 通过计算与合法网页的相似度来检测钓鱼网页具有较高的检测准确率,但该类方法往往会先 收集大量的合法网页,构造一个参照集,然后将待测网页与参照集中的每个网页进行相似度 计算,取其中的最大值与预先定义好的阈值进行比较,所以这种检测方式计算复杂度高且检 测速率低,很难应用于实际场景。利用机器学习来检测钓鱼网页也有很大的局限性:需要大 量的手动特征工程,其中许多特征需要相关专家来确认;需要获取网页内容,增加了客户端 开销和风险且检测算法的时间复杂度高;某些钓鱼网站能够隐藏其网页内容。基于url特征 检测,利用机器学习或深度学习训练生成一个检测模型来检测钓鱼网页。利用机器学习检测钓 鱼网页需要人工提取url的结构特征(如url中“.”的个数,url长度等)和主机特征(whois 信息,位置信息等)。因此其性能严重依赖于人工提取的特征的好坏,且因特征较为固定容易 被钓鱼攻击者绕开其检测模型。利用深度学习技术可以自动提取url的特征来检测钓鱼网页, 当前已有的方法大都使用“.”,“/”等特殊字符或者逐个字符对url划分,然后使用单一的 神经网络模型提取url特征以对url进行分类。这种方法存在以下的弊端:利用特殊字符划 分url可能会使单词的数量相当大,造成该数据集的特征也按比例地增大,导致在进行特征 向量的转换时内存受到限制;在测试检测模型时无法获取新出现单词的嵌入向量表示;利用 特殊字符如“.”、“\”、“?”等对url分词时没有获取这些特殊字符所具有的有效信息:特 殊字符的分布与类型;特殊字符与周围词的前后关系;逐个字符划分url会导致钓鱼url中 存在一些特有的敏感词,如“login”、“password”、“registed”等丢失有效信息;使用单一 的神经网络模型如卷积神经网络对url的特征提取不充分。


技术实现要素:

4.为此,本发明提供一种基于深度学习的钓鱼网页层次化检测方法及系统,结合黑名单和 深度学习的优点,通过拦截并自动提取特征检测未知的钓鱼网页,检测模型提取更为充分的 特征,提升对钓鱼网页的检测能力,检测速度快、准确率高。
5.按照本发明所提供的设计方案,提供一种基于深度学习的钓鱼网页层次化检测方法,包 含:
6.利用黑名单对待测url进行匹配,拦截已知钓鱼网页;
7.基于敏感词对待测url分词,并通过词嵌入矩阵将分词后的url转化为特征向量矩阵;
8.利用已训练的卷积神经网络cnn提取特征向量矩阵中的局部特征,并结合双向长短记忆 网络bi

lstm提取特征向量中的长距离依赖特征;针对长距离依赖特征,利用网络全连接层 来获取待测url属于钓鱼网页的概率,利用概率来判定待测url类型。
9.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,待测url分词中,将 敏感词作为整体与其他非敏感词进行区分,利用特殊字符对待测url进行单词级别划分,对 非敏感词进行字符级别划分。
10.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,特征向量转化中,根 据url数据集和敏感词汇表构建字符和敏感词映射表,为url中的字符和敏感词赋予唯一 数字编码;利用词嵌入矩阵将url数字编码转化为二维特征向量矩阵。
11.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,特征向量转化中,首 先确定url中字符及关键字总长度,若总长度超过设定阈值,则截断url末尾多余字符, 若总长度未达到设定阈值,则在url末尾利用附加词标记做填充;并对url中未知字符做 统一表示。
12.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,卷积神经网络cnn中, 设定卷积核尺寸、数量及卷积核滑动步长;针对卷积核在滑动窗口处获取的url字符和敏感 词的嵌入矩阵,通过卷积操作产生新特征,利用卷积核遍历特征向量矩阵生成特征图;对特 征图经过池化窗口进行最大池化来获取局部特征。
13.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,卷积操作产生的新特 征表示为:其中,x
i
'为卷积核f在第i个滑动窗口获取的嵌入矩阵, w
f
和b
f
分别为权重矩阵和偏置项,σ为激活函数relu。
14.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,双向长短记忆网络 bi

lstm中,将卷积神经网络cnn输出mp作为bi

lstm输入,将mp作为时间轴序列信 息,通过正向lstm利用遗忘门、输入门、输出门三个门来记忆某一时刻i之前的信息,并利 用之前的信息影响当前时刻的输出;并通过反向lstm利用遗忘门、输入门、输出门三个门来 记忆某一时刻i之后的信息,并利用之后的信息影响当前时刻的输出;将两个不同方向的 lstm最后时刻的输出进行拼接,获取url不同方向的长距离依赖特征。
15.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,正向lstm利用之前信 息影响当前时刻输出中,首先通过遗忘门从前一时刻细胞状态中丢弃设定比例信息;然后通 过输入门控制当前时刻输入并保存到当前时刻临时细胞状态中,并利用旧细胞状态与遗忘门 输出相乘以丢弃旧细胞中设定比例信息,利用临时细胞状态与输入门输出
相乘获取当前时刻 细胞状态;利用输出门获取输出比例,并确定当前时刻输出。
16.作为本发明基于深度学习的钓鱼网页层次化检测方法,进一步地,网络全连接层中,通 过softmax函数计算待测url属于钓鱼或合法网页的概率,计算公式表示为其中,z
i
=w
i
h+b
i
,h为url不同方向的长距离依赖特征,w
i
和b
i
分别为权重和偏置参数,i 为url类别索引,k为url类别总数。若判断待测url为钓鱼网址,则将其加入黑名单中。
17.进一步地,基于上述的方法,本发明还提供一种基于深度学习的钓鱼网页层次化检测系 统,包含:拦截模块、转化模块和分类模块,其中,
18.拦截模块,用于利用黑名单对待测url进行匹配,拦截已知钓鱼网页;
19.转化模块,用于基于敏感词对待测url分词,并通过词嵌入矩阵将分词后的url转化 为特征向量矩阵;
20.分类模块,用于利用已训练的卷积神经网络cnn提取特征向量矩阵中的局部特征,并结 合双向长短记忆网络bi

lstm提取特征向量中的长距离依赖特征;针对长距离依赖特征,利 用网络全连接层来获取待测url属于钓鱼网页的概率,利用概率来判定待测url类型。
21.本发明的有益效果:
22.本发明综合使用黑名单和深度学习技术进行钓鱼网页检测,能够对已在黑名单的url进 行快速的检测和响应,对未知的url能够自动提取特征进行检测;基于敏感词划分url, 避免了利用特殊字符划分url和逐字符划分url存在的问题:单词的数量大,内存受限; 无法获取新出现单词的嵌入向量表示;无法获取特殊字符所具有的有效信息;丢失敏感词的 有效信息;并使用混合的神经网络模型提取url特征来检测钓鱼网页,通过卷积神经网络 cnn提取url的局部特征,通过双向长短记忆网络bilstm提取url的长距离依赖特征, 这样检测模型能够提取更为充分的特征,提升对钓鱼网页的检测能力,具有较好的应用前景。
附图说明:
23.图1为实施例中钓鱼网页检测流程示意;
24.图2为实施例中cnn特征提取示意;
25.图3为实施例中bilstm特征提取与分类示意。
具体实施方式:
26.为使本发明的目的、技术方案和优点更加清楚、明白,下面结合附图和技术方案对本发 明作进一步详细的说明。
27.针对钓鱼网页的识别,本发明实施例,参见图1所示,提供一种基于深度学习的钓鱼网 页层次化检测方法,包含:利用黑名单对待测url进行匹配,拦截已知钓鱼网页;基于敏感 词对待测url分词,并通过词嵌入矩阵将分词后的url转化为特征向量矩阵;利用已训练 的卷积神经网络cnn提取特征向量矩阵中的局部特征,并结合双向长短记忆网络bi

lstm 提取特征向量中的长距离依赖特征;针对长距离依赖特征,利用网络全连接层来获取
待测url 属于钓鱼网页的概率,利用概率来判定待测url类型。结合黑名单和深度学习的优点,同时 对现有的深度学习检测方法在现有的基础上加以改进,以使检测模型提取更为充分的特征, 提升对钓鱼网页的检测能力,检测速度快、准确率高,能够自动提取特征检测未知的钓鱼网 页。
28.作为本发明实施例中基于深度学习的钓鱼网页层次化检测方法,进一步地,待测url分 词中,将敏感词作为整体与其他非敏感词进行区分,利用特殊字符对待测url进行单词级别 划分,对非敏感词进行字符级别划分。
29.首先,通过黑名单对待测url进行匹配,若匹配成功则直接拦截,否则进入模型检测。 利用黑名单可以快速检测到在黑名单中存在的钓鱼网页,提升对已知钓鱼网页的检测速度。 然后,基于敏感词分词方法对url进行分词。如表1所示,根据特殊字符如“.”,“/”,“?”,
ꢀ“
@”等对url进行单词级别划分,并将特殊字符看作单词处理以获得特殊字符的有效信息, 然后对其中的非敏感词进行字符级别划分,而将其中的敏感词作为一个整体与其余字符进行 区分,这样能够明显标记网址url中的重点信息,有利于神经网络分类器提取更具有代表性 的特征。
30.表1基于敏感词划分url
[0031][0032]
作为本发明实施例中基于深度学习的钓鱼网页层次化检测方法,进一步地,特征向量转 化中,根据url数据集和敏感词汇表构建字符和敏感词映射表,为url中的字符和敏感词 赋予唯一数字编码;利用词嵌入矩阵将url数字编码转化为二维特征向量矩阵。进一步地, 特征向量转化中,首先确定url中字符及关键字总长度,若总长度超过设定阈值,则截断 url末尾多余字符,若总长度未达到设定阈值,则在url末尾利用附加词标记做填充;并 对url中未知字符做统一表示。
[0033]
据url数据集和敏感词汇表确定每条url中字符及关键字的总长度l,若url长度超 过300,则在url末尾将多余的字符截断,若url的长度小于300,则在其末尾用<pad> 标记作为附加词填充。若url中出现未知字符,则用未知字符标记<unk>表示,敏感词汇表 如表2所示。据url数据集和敏感词汇表构建字符和敏感词映射表为url中的字符和敏感 词赋予唯一数字编码,如表3所示。通过词嵌入矩阵将url的数字编码转化为二维稠密特征 向量矩阵。首先将url根据字符与敏感词映射表转换为300*1的矩阵x,如以下公式所示: x=(x1,x2,...x
300
),式中,x
i
是一维的列向量,i=1,2,3,...300。随后将矩阵x经神经网络中的 embedding层转换为300*32的包含语义信息的二维稠密矩阵x'=(x'1,x'2,...x'
300
),式中x
i
'是 32维的列向量。
[0034]
表2敏感词汇表
[0035][0036]
表3字符与敏感词映射表
[0037][0038]
作为本发明实施例中基于深度学习的钓鱼网页层次化检测方法,进一步地,卷积神经网 络cnn中,设定卷积核尺寸、数量及卷积核滑动步长;针对卷积核在滑动窗口处获取的url 字符和敏感词的嵌入矩阵,通过卷积操作产生新特征,利用卷积核遍历特征向量矩阵生成特 征图;对特征图经过池化窗口进行最大池化来获取局部特征。进一步地,卷积操作产生的新 特征表示为:其中,x
i
'为卷积核f在第i个滑动窗口获取的嵌入矩 阵,w
f
和b
f
分别为权重矩阵和偏置项,σ为激活函数relu。
[0039]
如图2所示,通过卷积神经网络的卷积核从特征矩阵自动提取局部特征,卷积核高度h 设置为2,宽度与字符向量的维度一致为32,卷积核的数量n设置为200,卷积核滑动步长 设置为1。对于某个卷积核f在第i个滑动窗口处获取的url字符与敏感词的嵌入矩阵设为 x

i
=[x

i
,x'
i+1
,...,x'
i+h
‑1],通过卷积操作产生的新特征设为其中w
f
和b
f
为权 重矩阵和偏置项,σ为激活函数relu,relu函数表达式为re lu(x)=max(0,x),使神经网络具 有拟合非线性函数的能力。卷积核遍历整个嵌入矩阵后产生一个特征图feature map为 对c
f
经池化窗口pl进行最大池化以获取更具有代表性的特征(池化窗 口大小为2,池化步长为1),设在第i个池化窗口处,池化后新的特征图为 则池化窗口遍历整个c
f
后得到新的特征图 将x'经所有卷积核卷积池化后得到的新特征图堆叠得到一 个序列矩阵mp=[mp1,mp2,...,mp
s
],其中
[0040]
作为本发明实施例中基于深度学习的钓鱼网页层次化检测方法,进一步地,双向
长短记 忆网络bi

lstm中,将卷积神经网络cnn输出mp作为bi

lstm输入,将mp作为时间轴 序列信息,通过正向lstm利用遗忘门、输入门、输出门三个门来记忆某一时刻i之前的信息, 并利用之前的信息影响当前时刻的输出;并通过反向lstm利用遗忘门、输入门、输出门三个 门来记忆某一时刻i之后的信息,并利用之后的信息影响当前时刻的输出;将两个不同方向的 lstm最后时刻的输出进行拼接,获取url不同方向的长距离依赖特征。
[0041]
如图3所示,bilstm包含一个正向lstm和一个反向lstm。将卷积神经网络的输出mp 作为bilstm的输入,mp
i
与bilstm第i个时刻的输入对应,将mp看作时间轴上的序列信息。 正向lstm通过遗忘门、输入门、输出门三个门来记忆某一时刻i之前的信息,并利用之前的 信息影响当前时刻的输出。反向lstm通过遗忘门、输入门、输出门三个门来记忆某一时刻i之 后的信息,并利用之后的信息影响当前时刻的输出。以正向lstm为例,具体可分为以下四个 步骤:
[0042]
步骤1:通过遗忘门从t

1时刻的细胞状态c
t
‑1中丢弃一定比例的信息。计算遗忘门t时 刻的值如公式f
t
=sigmoid(w
f
*[h
t
‑1,mp
t
]+b
f
)所示,式中w
f
为遗忘门权重矩阵,b
f
为遗忘门 偏置。
[0043]
步骤2:通过输入门控制当前时刻t的输入mp
t
有多少信息保存到细胞状态c
t
中。首先通 过sigmoid层计算更新信息的比例i
t
,i
t
=sigmoid(w
i
*[h
t
‑1,mp
t
]+b
i
),通过tanh层计算临时细 胞状态
[0044]
步骤3:更新t

1时刻的细胞状态c
t
‑1,计算t时刻的细胞状态首先 利用旧细胞状态与遗忘门输出相乘以丢弃旧细胞的部分信息,然后利用临时细胞状态与输入 门输出相乘以得到需要加入细胞的新信息,最后利用二者的和得到新的细胞状态。
[0045]
步骤4:通过输出门的sigmoid层计算输出比例,如公式o
t
=sigmoid(w
o
*[h
t
‑1,mp
t
]+b
o
)所 示。然后将新的细胞状态输入tanh层进行处理,最后将二者相乘得到确定输出的值,如公式 所示。
[0046]
以此循环,正向lstm最终时刻的输出包含之前所有时刻的信息,即正向lstm能够记忆 mp
s
之前输入的特征,因此正向lstm能够获取url的长距离依赖特征。将正向lstm最后 时刻的输出记为h
f
,将反向lstm最后时刻的输出记为h
r
,将两个不同方向的lstm最后时刻 的输出进行拼接记为(表示拼接运算符),以获取url不同方向的长距离依赖特征。
[0047]
作为本发明实施例中基于深度学习的钓鱼网页层次化检测方法,进一步地,网络全连接 层中,通过softmax函数计算待测url属于钓鱼或合法网页的概率,计算公式表示为其中,z
i
=w
i
h+b
i
,h为url不同方向的长距离依赖特征,w
i
和b
i
分别为权重 和偏置参数,i为url类别索引,k为url类别总数。若判断待测url为钓鱼网址,则将 其加入黑名单中。
[0048]
通过神经网络全连接层计算url属于钓鱼网页的概率,以此对url分类,若url属于 钓鱼网页,则将其加入黑名单中。
[0049]
本案实施例中,针对黑名单中已经存在的钓鱼url,能够迅速反馈结果;针对黑名单中 不存在的url,通过cnn

bilstm充分提取url的特征进行快速检测,并同时更新黑名
单。随 着黑名单的不断扩充,cnn

bilstm模型也进行自动学习并定时更新以优化其模型参数,使得 本发明不仅能够迅速检测已知的钓鱼url,也能够对未知的钓鱼url进行快速识别。
[0050]
进一步地,基于上述的方法,本发明实施例还提供一种基于深度学习的钓鱼网页层次化 检测系统,包含:拦截模块、转化模块和分类模块,其中,
[0051]
拦截模块,用于利用黑名单对待测url进行匹配,拦截已知钓鱼网页;
[0052]
转化模块,用于基于敏感词对待测url分词,并通过词嵌入矩阵将分词后的url转化 为特征向量矩阵;
[0053]
分类模块,用于利用已训练的卷积神经网络cnn提取特征向量矩阵中的局部特征,并结 合双向长短记忆网络bi

lstm提取特征向量中的长距离依赖特征;针对长距离依赖特征,利 用网络全连接层来获取待测url属于钓鱼网页的概率,利用概率来判定待测url类型。
[0054]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例 的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由 于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0055]
结合本文中所公开的实施例描述的各实例的单元及方法步骤,能够以电子硬件、计算机 软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已按照 功能一般性地描述了各示例的组成及步骤。这些功能是以硬件还是软件方式来执行,取决于 技术方案的特定应用和设计约束条件。本领域普通技术人员可以对每个特定的应用来使用不 同方法来实现所描述的功能,但是这种实现不认为超出本发明的范围。
[0056]
本领域普通技术人员可以理解上述方法中的全部或部分步骤可通过程序来指令相关硬件 完成,所述程序可以存储于计算机可读存储介质中,如:只读存储器、磁盘或光盘等。可选 地,上述实施例的全部或部分步骤也可以使用一个或多个集成电路来实现,相应地,上述实 施例中的各模块/单元可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本发 明不限制于任何特定形式的硬件和软件的结合。
[0057]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些 实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理 可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被 限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的 范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1