基于CBA 算法的恶意URL 检测*

2023-11-12 15:16盛蒙蒙史建晖沈立峰
数字技术与应用 2023年10期
关键词:分词卷积向量

盛蒙蒙 史建晖 沈立峰

1.浙江警察学院;2.浙江省杭州市公安局拱墅区分局

随着网络应用的普及,恶意URL 攻击给人们的个人隐私和财产安全构成了严重威胁。为有效检测恶意URL,本文构建了基于机器学习方法的CBA 模型。该模型以Bi-LSTM 模型为基础,结合卷积神经网络,在有效提取数据局部特征的同时解决输入文本长度不均衡的问题。通过引入注意力机制,按不同权重对数据特征进行重新排序,提高了模型的识别准确率。实验数据表明,CBA 模型在恶意URL 检测任务中相比其他模型表现出更优异的性能。

互联网的迅猛发展为社会带来了巨大的便利,但同时也给攻击者提供了高效的作案平台。其中,恶意URL(恶意统一资源定位符)作为一种隐蔽、具有欺骗性的网络威胁,正逐渐成为网络安全领域的突出问题。不法分子通过钓鱼网站、垃圾邮件链接、社交媒体消息等方式引诱用户点击或访问恶意URL,从而在用户不知道的情况下对其进行分发恶意软件、窃取个人信息、实施网络诈骗等恶意活动[1],从而造成数据泄露、金融损失以及个人隐私泄露等一系列严重后果。根据CNCERT/CC发布的《2020 年中国互联网网络安全报告》,检测到多个冒充境内网站的钓鱼页面,这种恶意攻击具有极高的灵活性和多样性,攻击者通常只需要对网站的URL 稍作修改便可绕过已过时的监管,极大破坏了互联网生态,对公民的切身利益构成了严重威胁。因此,开发有效的恶意URL 检测方法至关重要。

近年来,机器学习技术在恶意URL 检测中得到了广泛的应用,常用的方法有支持向量机[2,3]、逻辑回归[4]、朴素贝叶斯[5]、决策树[6]、随机森林[6,7]和集成学习方法[8]等。通过分析URL 的内容、结构和行为特征,机器学习模型能够识别出恶意URL,并提供一定的预防措施。然而,由于恶意URL 的多样性和不断变化,传统的机器学习方法在恶意URL 检测中常会面临新的挑战,如特征选取困难、数据不平衡等。随着深度学习的持续发展,深度学习算法在自然语言处理、图像处理、机器翻译等领域都有着出色的表现,越来越多的学者开始将其引入到恶意URL 处理问题中。Anu Vazhayil 等[9]将经典机器学习技术(Logistic Regression,逻辑回归)、卷积神经网络(Convolutional Neural Networks, CNN)和CNN 长短期记忆(CNN-LSTM))算法用于检测恶意URL 并进行了比较研究,结果表明,CNN-LSTM对钓鱼网站的分类准确率最高。张慧[10]等提出一种基于CNN 的URLs 特征自动提取方法来提升特征的区分能力和普适性。吴晓英[11]等采用Bi-LSTM 和注意力机制(Attention)构建检测模型。卜佑军[12]等使用CNN 来获取URL 的空间局部特征,通过Bi-LSTM 来获取URL的双向长距离依赖特征,从而提高模型的检测准确率。

为有效检测恶意URL,在已有研究的基础上,本文构建了基于CNN、Bi-LSTM 和注意力机制的CBA 模型。该模型以Bi-LSTM 模型为基础,通过将文本数据中的单词映射到一个低维的向量空间中,从而提取单词的语义和上下文信息。然后通过CNN 网络来用于提取输入数据的局部关联特征,并引入注意力机制,保证模型能够在输入的特征中最大程度学习到所有关键特征并按重要性进行排序重组。相较于传统方法,CBA 模型的创新之处在于将多种机器学习技术进行有机结合,从而充分利用各自的优势,提高恶意URL 检测的准确性。

1 模型结构设计

恶意URL 检测研究的目标是通过对URL 的文本特征进行判断,输出URL 文本判断结果属于“良性”还是“恶意”,因此,该问题本质是属于自然语言处理的二分类问题。本文运用多机制融合思想,深入分析各深度学习方法的优缺点,构建了融合CNN、BiLSTM 和Attention 机制的CBA 模型,模型算法的整体流程图如图1 所示。

图1 CBA 模型结构流程图Fig.1 CBA model structure flow chart

该模型能充分运用各种机制的优点,快速有效地提取URL 特征表达信息,增强模型的分类能力。总体而言,模型主要包括:(1)使用NLTK 开源工具包对实验数据集中的URL 进行分词;(2)通过Word2Vec 词嵌入技术将URL 进行向量化表示,并生成词嵌入矩阵作为模型的嵌入层;(3)将数据输入CNN 层提取其中的局部关联特征;(4)Bi-LSTM 层接受CNN 层的特征并进行进一步信息提取,同时提取每个URL 样本的时序特征;(5)通过注意力机制对所有提取的特征按照重要指数进行排序,并为不同特征构建权重向量;(6)将处理完的特征向量输入全连接层,运用分类器完成URL 分类;(7)通过计算损失函数,调节模型参数来优化模型。

1.1 分词技术

分词是自然语言处理中的关键任务,它将连续的文本划分为一个个有意义的单元,如单词或短语。在恶意URL 检测等领域,分词能够有效地提取URL 文本的特征,为后续的特征提取和模型训练打下基础。分词质量直接影响着特征的表达和模型的性能,因此选择适合的分词方法十分重要。

目前,常用的分词方法有基于规则、统计、机器学习和深度学习等。基于规则的方法使用预定义的规则来进行分词,但这种方法往往无法处理复杂的语言结构和不规则的现象,且规则需要手动定义,难以适应多样性的文本。基于统计的方法则根据词频、频率等统计信息进行分词。这种方法需要大量的训练数据来学习分词规律,但在处理生僻词或新词时可能表现不佳。机器学习方法使用训练数据来学习分词模式,如条件随机场(CRF)和隐马尔可夫模型(HMM)。然而,这些方法需要大量的标注数据和特征工程,且对于不同领域的数据泛化能力可能有限。

宾夕法尼亚大学NLTK Project 发布的NLTK(Natural Language Toolkit)开源工具包,是一个用于处理和分析自然语言文本的Python 库,提供了一系列的工具和资源,使开发者能够快速构建自然语言处理应用。它已经成为自然语言处理领域的重要工具之一,被广泛应用于学术研究、教学以及工业界的实际应用中。本文选择使用NLTK 来完成URL 文本的分词操作。

1.2 URL 向量化

URL 向量化是将URL 文本转换为向量的过程,由于在训练数据集中,所有的样本皆以文本格式存储,但神经网络并不能直接处理文本格式的数据,因此就需要先将URL 文本转换为计算机可理解的数值特征,以便后续进行神经网络的训练和处理。然而,与仅包含数字或单词的普通文本不同,URL 文本由各种单词缩写、前缀、符号、拼音、IP 甚至转义字符等元素构成。因此,选择合理的文本向量化方式十分重要。

在自然语言处理研究领域,目前常用的文本向量化方法有独热编码(One-Hot Encoding),词袋模型(Bag of Words, BoW),词频逆词频模型(Term Frequency-Inverse Document Frequency, TF-IDF)以及词嵌入模型(Word2Vec)。其中,Word2Vec 是一种基于深度学习的词向量表示方法,它能够将词语映射为实数向量,并且能够捕捉词语之间的语义关系。因此,本文选择Word2Vec 进行URL 向量化处理,以便更好理解URL 文本的语义信息与特征。

在Word2Vec 模式下有两个常用模型:连续词袋(Continuous Bag-of-Words, CBOW)模型和跳词(Skip-Gram)模型。CBOW 模型是一种基于神经网络的词嵌入方法,其主要目标是将每个单词表示为固定维度的实数向量,使得这些向量能够捕捉到单词之间的语义和上下文关系;Skip-Gram 模型则是CBOW 模型的逆过程,虽然两者都能捕捉语义和上下文关系,但Skip-Gram 模型对罕见词汇和小规模数据集表现较差。因此本文中选择CBOW 模型,具体采用的是Gensim 库中Word2Vec函数对输入URL 参数进行向量化,并获取词嵌入矩阵作为模型的嵌入层。

1.3 卷机神经网络层

卷积神经网络是一种前馈神经网络,是经典的深度学习模型,在计算机视觉领域取得了不俗的成绩。然而,将卷积神经网络从计算机视觉领域扩展到自然语言处理领域并非易事。比如在对图像的处理过程中,研究者可以将每张图片的尺寸和分辨率设为固定值,从而使用多种长度不变的卷积核处理图像。但在文本分类领域,如果直接将输入文本长度截断为固定值,就无法确保输入信息的完整性。输入文本长度的不同就可能导致后续卷积操作的异常,从而导致数据丢失,进而影响最终训练效果。

针对上述问题,研究者们采用了不同的技术以确保网络能够有效地进行特征提取和学习,部分研究者采用单层CNN 模型结构,并在最大池化阶段采用1-max pooling 操作[13]。这种做法将每个卷积核产生的特征图中最大特征值作为该卷积核对整个句子的特征值,从而保留了每个卷积核提取到最显著的特征。在池化操作之后得到的特征向量,其维度大小就等于卷积核数量,这些特征便可用于进行文本分类任务。这种方法可有效解决文本长度不同的问题。本文借鉴上述思路,将CNN 融入模型来获取输入数据的局部关联特征。

首先,卷积层是CNN 模型中的核心组成部分,它能在局部范围内有效提取相邻词语间的语义关系。本文采用一维卷积层(Conv1D)对文本特征进行卷积操作。其中卷积核的尺寸通常是3 或5,卷积操作后得到的特征图是一个一维向量,其操作过程如式(1)所示:

其中,x为输入的文本序列,k为卷积核的长度,W为卷积核权重矩阵,b为偏置项。

首先,卷积操作使用ReLU 激活函数,使输出特征向量中的负值变为0,提高特征的非线性表达能力。其次,池化层是在卷积层后对特征图进行下采样操作,以进一步减少文本的长度。池化操作有最大池化和平均池化等,可以减少特征的数量,并且对输入文本的长度不敏感。本设计采用最大池化层(Max Pooling)对卷积操作后的特征图进行下采样,将每个特征子序列的最大值作为下采样后的特征值,缩小特征图的尺寸和数量。MaxPooling1D 的参数通常是3 或4,表示下采样时从3个或4 个相邻特征值中选择最大值作为该特征子序列的特征值,其表达式如式(2)所示:

其中,c为卷积操作后的特征向量,p为最大池化操作后得到的特征向量,s为池化层的步长。

通过采用单层CNN 模型结构,并在最大池化阶段采用1-max pooling 操作,在最大保留特征的前提下又使输出维度保持一致,解决了输入文本长度不相等的问题,理论上对URL 的分类效果能起到积极作用。

1.4 Attention 机制

使用Bi-LSTM 模型对序列进行处理时,该模型会对每个时刻的输入都产生一个隐藏状态。这些隐藏状态组成了一个矩阵,可以把它看作是一个由时间步组成的序列。但是并不是每个时刻的隐藏状态对最终结果都有同等的贡献,而某些时刻的隐藏状态可能更重要。因此,本文中引入Attention 机制,来对不同时刻的隐藏状态进行加权,可以更好捕捉较为重要的信息。

模型采用了基于注意力机制的加权求和方式,计算每个时刻的权重。先通过两个全连接层对BiLSTM 输出进行处理,将其转换成一个对应的向量,再利用这个向量来计算每个时刻的权重。计算过程如式(3)所示:

其中,ht为时间步上的隐藏状态,va为注意力向量,Wa为注意力权重矩阵,ba为偏置向量。

在得到权重向量后,将其归一化处理,得到每个时刻的权重系数如式(4)所示:

将每个时刻的隐藏状态和其对应的权重系数相乘,并将这些加权和求和,得到一个加权后的向量如式(5)所示:

这个加权后的向量表示包含了所有时刻的隐藏状态,但每个时刻的重要性不同,因此能够更好地捕捉序列中的重要信息。

2 实验

2.1 实验数据集

本实验数据均采集自互联网,时间范围从2020 年5月至2023 年4 月。数据的获取渠道涵盖多个来源,主要包括GitHub 开源训练数据集(约290,000 条)、Kaggle开源训练数据集(约50,000 条)以及Alexa 全球网站排名数据(10,000 条)。通过对这些数据源进行整合,确保了实验数据的充分性和代表性。在数据整合的过程中,针对所有的网站主域名进行了存活性检测,以确保模型的输入数据在时效性上的准确性。

2.2 数据处理

为提高模型的泛化能力和准确性,实验对于正面和负面数据进行平衡处理,按1:1 的比例进行采样,即正负面样本各取10,000 条,形成最终的实验数据集,样例如表1 所示。可以看出,恶意URL 往往巧妙地模仿正常URL 的样式,使得它们在外观上高度相似,从而引导用户进行访问。因此,普通网民很难根据URL 地址来区分该访问是否安全。鉴于此,对于那些具有误导性和高度相似性的恶意URL 的识别和分析变得至关重要。

表1 正常与恶意URL 样本Tab.1 Benign and malicious URL samples

本实验中,统一对样本数据集进行二八分处理,即80%的样本数据作为训练集,剩下20%的数据作为测试集。

2.3 实验环境

本实验采用的编程语言为Python3.8,计算设备配备了Intel(R)Core(TM)i7-10875H 中央处理器,NVIDIA GeForceRTX2060 显卡,内存为32GB。运行环境为64位Windows10Version22H2 操作系统。

2.4 模型相关参数

CBA 模型的相关参数如表2 所示。

表2 CBA 模型相关参数表Tab.2 Parameters of CBA model

2.5 实验结果分析

为验证CBA 模型的性能,本文采用控制变量法进行对比试验,旨在比较改进后的模型与单一模型及其他改进模型的性能差异。对比实验各模型参数如表3 ~表6所示。

表3 CNN 模型参数表Tab.3 Parameters of CNN model

表4 Bi-LSTM 模型参数表Tab.4 Parameters of Bi-LSTM model

表5 CNN + Bi-LSTM 模型参数表Tab.5 Parameters of CNN + Bi-LSTM model

表6 Bi-LSTM + Attention 模型参数表Tab.6 Parameters of Bi-LSTM + Attention model

CBA 模型与各模型的对比实验结果如表7 所示,下面对各模型的表现进行分析,并探讨造成这些差异的原因。

首先,从准确率(Accuracy)、精确率(Precision)和F1 分数(F1-score)来看,单一CNN 模型的效果最差。这主要是因为卷积神经网络在处理可变长度文本上的优势不及循环神经网络,且在1-max pooling 操作下仍有小部分特征丢失,所以只有约83%的准确率。

其次,可以看到Bi-LSTM 模型的表现优于CNN。这是由于Bi-LSTM 模型作为一种循环神经网络,能更好地处理可变长度文本并从中提取全局时序信息。此外,在Bi-LSTM 模型基础上引入了Attention 机制后,Attention 机制对全局特征的加权和排序能让模型关注到更有意义的特征,对模型的性能有较大的提升。相比而言,CNN 只能关注到局部特征,因此Bi-LSTM +Attention 模型相比CNN + Bi-LSTM 有更好的表现。

最后,在所有模型中,CBA 模型在完成恶意URL检测的任务上的表现最为优异,其正确率已接近90%。其中,Attention 机制的引入对于模型性能的提升帮助较高,可以看出Attention 机制的全局特征排序有利于神经网络习得更多有价值的特征,以获得更好的分类效果。同时卷积神经网络的引入也能在一定程度上帮助神经网络在局部上关注到更有价值的特征,从而提高整体性能。

综上所述,CBA 模型能有效融合多种机制,并有效提送恶意URL 检测效果。其中,CNN 在提取局部特征方面表现出色,Bi-LSTM 则能够捕获序列的长程依赖关系,而Attention 机制则强化了全局信息的理解能力。CBA 模型的综合优势使其能够更全面地理解和分析URL 文本,从而在恶意URL 检测任务中取得了出色的结果。

3 总结与展望

本文针对现有基于机器学习的恶意URL 检测方法的缺点,运用多机制融合思想,提出在Bi-LSTM 模型的基础上,引入卷积神经网络和Attention 机制,构建了CBA 模型。实验结果表明,CBA 模型通过综合运用不同机制,能够从不同角度捕捉URL 文本的各种特征,使得模型更全面地理解和分析URL 的语义和结构信息。这种综合性特点使得CBA 模型在特征表达能力上较单一机制更具优势,能够更准确地判别恶意和非恶意URL,这为未来的研究和应用提供了有益的参考。今后,在数据集方面,可以更好地兼顾样本的时效性、多样性和数据量,使用更多更全面的数据来进行模型训练,从而进一步提升模型的准确性;同时,还可以考虑将CBA 模型与更多深度学习技术进行整合,以进一步提升模型的序列建模和特征提取能力,此外,通过更优化的数据预处理和模型调参,也有望进一步提升CBA 模型的性能。

引用

[1] 沙泓州,刘庆云,柳厅文,等.恶意网页识别研究综述[J].计算机学报,2016,39(3):529-542.

[2] LI T,KOU G,PENG Y.Improving Malicious URLs Detection Via Feature Engineering:Linear and Nonlinear Space Transformation Methods[J].Information Systems,2020(91):1-18.

[3] 吴森焱,罗熹,王伟平,等.融合多种特征的恶意URL检测方法[J].软件学报,2021,32(9):2916-2934.

[4] JAIN A K,GUPTA B B.A Machine Learning Based Approach for Phishing Detection Using Hyperlinks Information[J].Journal of Ambient Intelligence and Humanized Computing,2019,10(5):2015-2028.

[5] WANG Z,FENG X,NIU Y,et al.TSMWD:A High-speed Malicious Web Page Detection System Based on Two-step Classifiers[C]//2017 International Conference on Networking and Network Applications (NaNA).IEEE,2017:170-175.

[6] TELO J.Supervised Machine Learning for Detecting Malicious URLs:An Evaluation of Different Models[J].Sage Science Review of Applied Machine Learning,2022,5(2):30-46.

[7] XUAN C D,NGUYEN H D,TISENKO V N.Malicious URL Detection Based on Machine Learning[J].International Journal of Advanced Computer Science and Applications,2020,11(1).

[8] 张永刚,吕鹏飞,张悦,等.基于Stacking集成学习的恶意URL检测系统设计与实现[J].现代电子技术,2023,46(10):105-109.

[9] VAZHAYIL A,VINAYAKUMAR R,SOMAN K P.Comparative study of the detection of malicious URLs using shallow and deep networks[C]//2018 9th International Conference on Computing,Communication and Networking Technologies(ICCCNT).IEEE,2018:1-6.

[10] 张慧,钱丽萍,汪立东,等.基于CNN和多分类器的恶意URLs检测[J].计算机工程与设计,2019,40(10):2991-2995+3019.

[11] 吴晓英,朱劲松.基于BI-lstm+attention的网站多结构异常检测分析实证研究[J].情报探索,2022(3):49-55.

[12] 卜佑军,张桥,陈博,等.基于CNN和BiLSTM的钓鱼URL检测技术研究[J].郑州大学学报(工学版),2021,42(6):14-20.

[13] 朱锦程.基于机器学习的恶意URL检测技术研究[D].成都:电子科技大学,2022.

猜你喜欢
分词卷积向量
向量的分解
基于3D-Winograd的快速卷积算法设计及FPGA实现
聚焦“向量与三角”创新题
分词在英语教学中的妙用
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
一种基于卷积神经网络的性别识别方法
论英语不定式和-ing分词的语义传承