CN113438209B - 一种基于改进的Stacking策略的钓鱼网站检测方法 - Google Patents
一种基于改进的Stacking策略的钓鱼网站检测方法 Download PDFInfo
- Publication number
- CN113438209B CN113438209B CN202110624230.5A CN202110624230A CN113438209B CN 113438209 B CN113438209 B CN 113438209B CN 202110624230 A CN202110624230 A CN 202110624230A CN 113438209 B CN113438209 B CN 113438209B
- Authority
- CN
- China
- Prior art keywords
- learner
- website
- url
- features
- primary
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1483—Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/243—Classification techniques relating to the number of classes
- G06F18/24323—Tree-organised classifiers
Landscapes
- Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Biology (AREA)
- Evolutionary Computation (AREA)
- Physics & Mathematics (AREA)
- Bioinformatics & Computational Biology (AREA)
- General Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种基于改进的Stacking策略的钓鱼网站检测方法,针对目前大多数钓鱼网站检测技术准确率低、计算资源消耗大和检测不及时等问题,通过将多个分类表现优异的基学习器通过Stacking策略集成为一个高性能模型,并且把该Stacking算法第一级的输入特征与预测结果同时作为第二级的输入特征,充分发挥各模型精度高、速度快等优势,从而进一步提高模型性能。实验结果表明,与传统的机器学习钓鱼网站检测技术相比,在10万级数据集上此集成学习算法在多个指标上都表现出更好的性能,其精确率达到了97.82%,F1值达到97.54%,可以有效的检测钓鱼网站。
Description
技术领域
本发明涉及网络安全监测领域,更具体地说,它涉及一种基于改进的Stacking策略的钓鱼网站检测方法。
背景技术
钓鱼网站通过伪装将其包装成正常合法的网站,诱导用户输入自己的账户密码等隐私信息,对用户的隐私和财产构成了很大威胁。为应对日益增长的网络钓鱼以及其愈发复杂的网络钓鱼技术,需要继续深入对钓鱼网站检测的研究。
钓鱼网站检测最常用的技术是使用黑白名单,但是这种方法无法检测未列入黑名单的钓鱼网站,具有一定的滞后性。
发明内容
为解决上述技术问题,本发明提供一种基于改进的Stacking策略的钓鱼网站检测方法,从公开的钓鱼检测网站Alexa和Phishtank获取的数据集,设计了一种基于改进的Stacking策略的钓鱼网站检测集成学习算法。具体来说,我们从数据集中提取网站的URL特征,仅处理当前页面信息,而不依赖第三方服务,理论上可以获得最优的检测速度。通过Stacking策略将DF、GBDT、XGBoost和LightGBM模型高效融合,从而获得更优的检测效果。
本发明的上述技术目的是通过以下技术方案得以实现的:
一种基于改进的Stacking策略的钓鱼网站检测方法,包括以下步骤:
S1:选定至少两个基础分类器,将其分为一级学习器和二级学习器;
S2:提取已知网站的URL特征,并作筛选,将筛选出来的URL特征作为一级学习器的输入特征;
S3:对提取URL特征的网站制作标签,标签为是否为钓鱼网站,制作的标签与其网站的输入特征,作为一个数据集;
S4:重复S2和S3步骤,对多个网站URL特征进行提取筛选,得到包含多个数据集的原始数据集;
S5:将S4得到的原始数据集输入至一级学习器中,一级学习器输出多个初级特征;
S6:使用一级学习器的输出的初级特征、S2中提取的网站的URL特征和对应网站的标签作为二级学习器的输入特征,构成一个新的数据集;
S7:将S6得到的新的数据集输入至二级学习器中,对二级学习器进行训练;
S8:将需要测试的未知网站的URL特征依次经过一级学习器和二级学习器进行检测,得到检测结果。
作为一种优选方案,S1过程中,使用DF、XGBoost、LightGBM三个基础分类器作为一级学习器,使用GBDT算法作为二级学习器,一级学习器中,提取的网站的URL特征均分别通过三个基础分类器进行分类。
作为一种优选方案,S2过程中,网站URL特征进行筛选,筛选出来的特征包括该网站的域名是否包含IP地址,URL长度信息,是否存在可疑符号,是否存在重定向,是否存在相似的域名标签,URL的子域名数,URL的子域名长度,活跃时间和域名中点的个数。
作为一种优选方案,S4步骤后,将原始数据集分割为训练集和测试集,再进行S5步骤,训练集用于输入至一级学习器中进行训练,测试集用于测试基础分类器的泛化性能。
作为一种优选方案,训练集占比为60~75%,剩余为测试集。
作为一种优选方案,S5过程中,将训练集分为N个子集使用交叉验证的方法对一级学习器进行训练。
综上所述,本发明具有以下有益效果:
(1)从公开数据集中筛选出一个有效的10万级钓鱼网站数据集,其中合法网站从Alexa网站收集、非法钓鱼网站从Phishtank网站收集。
(2)在特征提取方面,从网站的URL中提取出众多有效特征,并通过实验按照重要性从中筛选出9个较为有效的特征用于模型训练。
(3)我们结合多种机器学习模型的优点,提出了一种用于检测钓鱼网站的Stacking算法,并对此Stacking算法改进优化,可以更加快速有效的检测出钓鱼网站,同时减少计算开销。
附图说明
图1为本发明实施例中的改进的Stacking算法示意图;
图2为本发明实施例中的URL结构示意图。
具体实施方式
本说明书及权利要求并不以名称的差异来作为区分组件的方式,而是以组件在功能上的差异来作为区分的准则。如在通篇说明书及权利要求当中所提及的“包含”为一开放式用语,故应解释成“包含但不限定于”。“大致”是指在可接受的误差范围内,本领域技术人员能够在一定误差范围内解决所述技术问题,基本达到所述技术效果。
以下结合附图对本发明作进一步详细说明,但不作为对本申请的限定。
Stacking算法的基学习器算法
GBDT算法
梯度提升决策树(Gradient Boosting Decision Tree,GBDT)作为AdaBoost算法的改进,由梯度提升算法和决策树算法两部分组成,其核心为减小残差,即负梯度方向生成一棵决策树以减小上一次的残差。GBDT算法在建立模型的时候让损失函数迭代下降,使得模型在不断往优化的方向上改进。
XGBoost算法
极限梯度提升树(Extreme Gradient Boosting,XGBoost)算法是陈天奇基于梯度提升算法提出的一种Boosting算法,在梯度提升的基础上改进了目标函数的计算方式,并将目标函数的优化问题转化为求二次函数的最小值问题,利用损失函数的二阶导数信息训练决策树模型,以此加快训练速度,减少模型运行时间。同时,将树的复杂度作为正则项加入到目标函数中,提升了模型的泛化性能。
LightGBM算法
轻量级梯度提升机(Light Gradient Boosting Machine,LightGBM)算法是一种新颖的GBDT算法。为了以最快的速度和最小的内存开支寻找到最优分裂节点,LightGBM使用了直方图算法、单边梯度抽样算法(Gradient Based One-side Sampling,GOSS)和互斥特征捆绑算法(Exclusive Feature Building,EFB),其核心是使用了叶子生长(leaf-wise)策略来生长树,从当前叶子节点中找到增益值最大的一个叶子节点进行分裂。同时,为了发生过拟合,对树的深度进行限制,也缩短了寻找最优深度树的时间。
DF算法
深度森林(Deep Forest,DF)是周志华提出的一种使用树集成来构建多层模型的算法,通过引入细粒度的扫描和级联操作,使其具有更加稳定良好的学习性能。此外,深度森林算法需要的超参数相对也较少,并且根据数据自动决定复杂度,所以在小数据集上也会有非常好的表现。
钓鱼网站检测的Stacking算法搭建
Stacking是一种用于最小化一个或多个学习器的泛化误差的方案,通过形成不同预测变量的线性组合以提高预测准确性。Stacking的基本思想是:选定多个学习器,将其分为一级、二级学习器,首先使用原始的训练数据集来训练一级学习器;之后,使用一级学习器的输出作为输入特征,并使用对应原始标签作为新标签,组成一个新数据集来训练二级学习器,将二级学习器的输出结果最为最终的模型输出。
改进的Stacking钓鱼网站检测模型
改进的Stacking算法概述
在Stacking的训练阶段,一级分类器需要生成一个新的数据集。但是直接使用该数据集来训练二级学习器,不可避免的会出现过拟合,导致模型较高的泛化误差。针对此问题,本申请提出一种改进的Stacking算法。我们不仅仅把第一级学习器的结果作为新的特征直接输入第二级学习器,而是结合用于训练第一级学习器的特征一起输入到第二级学习器里进行训练。
本申请设计的Stacking算法使用DF、XGBoost和LightGBM三个基础分类器作为第一级学习器,使用GBDT算法作为第二级分类器。
交叉验证
为了进一步增强模型的泛化能力,防止第一级学习器到第二级学习器训练过程发生过拟合,本申请在第一层学习器训练过程中采用了5-折交叉验证。首先,将原始训练数据集D随机切分为k个相同大小的数据集D1,…,D5。设Dj和D(-j)=D\Dj为第j次执行对应的测试集和训练集。给定T个学习算法,使用第t个学习算法在D(-j)上训练得出一级学习器对于第j次执行的测试集Dj中的每一样本xi,设zit为学习器在xi上的输出结果。则在全部交叉验证过程结束时,通过T个基学习器可以生成如下新数据集。二级学习器将使用该数据集进行训练,最终学习器h′即为一个从(z1,…,zT)的映射,在本申请中T取3,即选取3个基学习器作为Stacking算法的第一级。
实验分析
钓鱼网站URL特征提取
本申请通过提取钓鱼网站URL的基本特征,使用基于数学统计的计算词频和基于领域知识的人工选择等方法进行特征统计,最终筛选出9维特征用于对分类器的训练。
特征重要性排名
如钓鱼网站URL特征提取中所述,我们从众多钓鱼网站的URL特征中提取出9个最有效的特征,但是仍然需要确定各个特征对钓鱼检测模型精确度的影响。我们使用XGBoost算法中的特征重要性功能来可视化特征的重要性得分。
本申请通过将XGBoost、LightGBM和DF算法作为基学习器构建第一级Stacking算法,并通过改进Stacking算法,将用于训练第一级基学习器的原始特征与第一级学习器的预测结果相结合,为模型构建了更深层的特征,最终从而提高了模型对钓鱼网站的检测效果。实验结果表明,相较于单一优质分类器和其他基准分类模型,本申请提出的基于改进的Stacking策略的钓鱼网站检测模型具有更高的精确率和查准率,可以有效的对钓鱼网站进行及时检测。
检测流程:
其中:
特征提取包括:
网络访问者主要通过URL(Uniform Resource Locator,统一资源定位符)进行寻址,URL是访问服务器某个特定资源的唯一地址,一般由四个部分构成:协议、域名、文件路径及查询字符串。URL的结构如图2所示。
钓鱼网站可以仿冒URL结构中的子域名,文件路径和查询字符串等,引诱用户访问其URL。根据仿冒后URL可能存在的状态,例如将URL字符的长度设置过长以此来欺骗用户,改变知名网页的域名某个字符来迷惑用户等。因此,我们提出从URL中提取一些统计特征,再从中提取一些词汇特征。
通过XGBoost算法的特征排名功能,我们根据重要性最终筛选出9维特征,具体如下:
(1)IP地址。网络钓鱼网页的域名有很大比例包含IP地址。本申请用二值表示URL的域名是否包含IP地址,‘1’表示URL包含IP地址。
(2)URL长度信息。长度信息包括URL中的字符数及其域名。
(3)可疑符号。钓鱼网址通常会出现一些很少使用的符号,包括‘@’和‘-’等等。本申请用二值表示URL的域名是否包含特殊字符,‘1’表示URL包含特殊字符。
(4)重定向。URL重定向跳转中最常见的跳转到登陆口、支付口。本申请用二值表示URL的域名是否包含重定向,‘1’表示包含重定向。
(5)相似的域名标签。钓鱼网站通常会仿冒目标网站的URL,以此来迷惑用户。
(6)URL的子域名数。通常合法网站的URL中只包含一个子域名。
(7)URL的子域名长度。类似整个URL长度信息,子域名的长度信息也同样可以作为判别网站是否合法的有效特征。
(8)活跃时间。钓鱼网站的存活时间普遍很短,根据此可以用来训练模型。
域名中点的个数。网络钓鱼网页倾向于在其URL中使用更多的‘.’。
数据集分割
为提高算法的泛化性能,我们将数据集分为训练集和测试集,本文采取sklearn算法的数据集分割方法。将70%数据作为训练集,用于训练各基学习器;30%数据作为测试集,用于测试基学习器的泛化性能。另外在训练数据中分出一部分作为验证数据,用来评估模型的训练效果。验证数据取自训练数据,但不参与训练,这样可以相对客观的评估模型对于训练集之外数据的匹配程度。
本具体实施例仅仅是对本发明的解释,其并不是对本发明的限制,本领域技术人员在阅读完本说明书后可以根据需要对本实施例做出没有创造性贡献的修改,但只要在本发明的权利要求范围内都受到专利法的保护。
Claims (6)
1.一种基于改进的Stacking策略的钓鱼网站检测方法,其特征在于,包括以下步骤:
S1:选定至少两个基础分类器,将其分为一级学习器和二级学习器;
S2:通过XGBoost算法的特征排名功能,提取已知网站的URL特征,并作筛选,将筛选出来的URL特征作为一级学习器的输入特征;
S3:对提取URL特征的网站制作标签,标签为是否为钓鱼网站,制作的标签与其网站的输入特征,作为一个数据集;
S4:重复S2和S3步骤,对多个网站URL特征进行提取筛选,得到包含多个数据集的原始数据集;
S5:将S4得到的原始数据集输入至一级学习器中,一级学习器输出多个初级特征;
S6:使用一级学习器的输出的初级特征、S2中提取的网站的URL特征和对应网站的标签作为二级学习器的输入特征,构成一个新的数据集;
S7:将S6得到的新的数据集输入至二级学习器中,对二级学习器进行训练;
S8:将需要测试的未知网站的URL特征依次经过一级学习器和二级学习器进行检测,得到检测结果。
2.根据权利要求1所述的基于改进的Stacking策略的钓鱼网站检测方法,其特征在于,所述S1过程中,使用DF、XGBoost、LightGBM三个基础分类器作为一级学习器,使用GBDT算法作为二级学习器,一级学习器中,提取的网站的URL特征均分别通过三个基础分类器进行分类。
3.根据权利要求1所述的基于改进的Stacking策略的钓鱼网站检测方法,其特征在于,所述S2过程中,网站URL特征进行筛选,筛选出来的特征包括该网站的域名是否包含IP地址,URL长度信息,是否存在可疑符号,是否存在重定向,是否存在相似的域名标签,URL的子域名数,URL的子域名长度,活跃时间和域名中点的个数。
4.根据权利要求1所述的基于改进的Stacking策略的钓鱼网站检测方法,其特征在于,所述S4步骤后,将原始数据集分割为训练集和测试集,再进行S5步骤,训练集用于输入至一级学习器中进行训练,测试集用于测试基础分类器的泛化性能。
5.根据权利要求4所述的基于改进的Stacking策略的钓鱼网站检测方法,其特征在于,所述训练集占比70%,测试集占比30%。
6.根据权利要求4或5所述的基于改进的Stacking策略的钓鱼网站检测方法,其特征在于,所述S5过程中,将训练集分为N个子集使用交叉验证的方法对一级学习器进行训练。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110624230.5A CN113438209B (zh) | 2021-06-04 | 2021-06-04 | 一种基于改进的Stacking策略的钓鱼网站检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110624230.5A CN113438209B (zh) | 2021-06-04 | 2021-06-04 | 一种基于改进的Stacking策略的钓鱼网站检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113438209A CN113438209A (zh) | 2021-09-24 |
CN113438209B true CN113438209B (zh) | 2022-03-08 |
Family
ID=77803691
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110624230.5A Active CN113438209B (zh) | 2021-06-04 | 2021-06-04 | 一种基于改进的Stacking策略的钓鱼网站检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113438209B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115001763B (zh) * | 2022-05-20 | 2024-03-19 | 北京天融信网络安全技术有限公司 | 钓鱼网站攻击检测方法、装置、电子设备及存储介质 |
CN115860933A (zh) * | 2022-11-17 | 2023-03-28 | 北京理工大学 | 基于集成学习和图核分类技术的比特币混合服务检测方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10313352B2 (en) * | 2016-10-26 | 2019-06-04 | International Business Machines Corporation | Phishing detection with machine learning |
CN106789888B (zh) * | 2016-11-18 | 2020-08-04 | 重庆邮电大学 | 一种多特征融合的钓鱼网页检测方法 |
CN108965245B (zh) * | 2018-05-31 | 2021-04-13 | 国家计算机网络与信息安全管理中心 | 基于自适应异构多分类模型的钓鱼网站检测方法和系统 |
CN109510815B (zh) * | 2018-10-19 | 2022-01-25 | 杭州安恒信息技术股份有限公司 | 一种基于有监督学习的多级钓鱼网站检测方法及检测系统 |
-
2021
- 2021-06-04 CN CN202110624230.5A patent/CN113438209B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113438209A (zh) | 2021-09-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108965245B (zh) | 基于自适应异构多分类模型的钓鱼网站检测方法和系统 | |
CN109510815B (zh) | 一种基于有监督学习的多级钓鱼网站检测方法及检测系统 | |
CN105956472B (zh) | 识别网页中是否包含恶意内容的方法和系统 | |
US11762990B2 (en) | Unstructured text classification | |
CN113438209B (zh) | 一种基于改进的Stacking策略的钓鱼网站检测方法 | |
Ren et al. | A DGA domain names detection modeling method based on integrating an attention mechanism and deep neural network | |
CN112019651B (zh) | 利用深度残差网络和字符级滑动窗口的dga域名检测方法 | |
CN112073550B (zh) | 融合字符级滑动窗口和深度残差网络的dga域名检测方法 | |
CN110191096A (zh) | 一种基于语义分析的词向量网页入侵检测方法 | |
CN114050912B (zh) | 一种基于深度强化学习的恶意域名检测方法和装置 | |
CN113055386A (zh) | 一种攻击组织的识别分析方法和装置 | |
CN110830489B (zh) | 基于内容抽象表示的对抗式欺诈网站检测方法及系统 | |
CN108038173A (zh) | 一种网页分类方法、系统及一种网页分类设备 | |
CN112073551A (zh) | 基于字符级滑动窗口和深度残差网络的dga域名检测系统 | |
Nowroozi et al. | An adversarial attack analysis on malicious advertisement url detection framework | |
Peng et al. | Malicious URL recognition and detection using attention-based CNN-LSTM | |
Ren et al. | Integrating an attention mechanism and deep neural network for detection of DGA domain names | |
CN116684144A (zh) | 一种恶意域名检测方法及装置 | |
Zhu et al. | Detecting malicious domains using modified SVM model | |
KR102405799B1 (ko) | 사이버 공간에서 실시간 공격 탐지를 위한 시간에 따른 지속적인 적응형 학습을 제공하는 방법 및 시스템 | |
Ding et al. | Detecting Domain Generation Algorithms with Bi-LSTM. | |
KR101893029B1 (ko) | 머신 러닝 기반의 취약점 정보를 분류하는 방법 및 장치 | |
Wan et al. | Generation of malicious webpage samples based on GAN | |
CN113065348B (zh) | 基于Bert模型的互联网负面信息监控方法 | |
CN117235532B (zh) | 一种基于M-Bert的恶意网站检测模型的训练及检测方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |