基于机器学习的钓鱼网站URL检测方法及系统与流程

文档序号:25421991发布日期:2021-06-11 21:33阅读:717来源:国知局
基于机器学习的钓鱼网站URL检测方法及系统与流程

本发明涉及信息安全领域,具体地涉及一种基于机器学习的钓鱼网站url检测方法以及一种基于机器学习的钓鱼网站url检测系统。



背景技术:

网络钓鱼是当今互联网上的一个主要问题,由于犯罪分子的欺骗手段,许多用户正成为受害者。网络钓鱼是一种欺诈性技术,以电子邮件欺骗作为其最初媒介进行欺骗性通信,然后通过欺骗性网站从受害者那里获取所需信息,例如用户名、密码、信用卡和银行帐户等信息。

电子邮件中请求的操作通常是打开web链接并在web页面上填写个人敏感信息,或作为对电子邮件的答复来提供其个人身份或银行信息。用户单击欺骗性电子邮件中提供的web链接后,将被定向到由网络钓鱼者创建的网络钓鱼网站。由于该网络钓鱼网站看起来与原始网站相似,因此,用户常常无法将其识别为恶意网站,并且按要求输入所要求的信息,从而被成功网络钓鱼。除电子邮件外,攻击者还可以通过在真实网站上嵌入广告宣传链接来引导用户访问恶意链接。此外,在某些情况下,受感染的dns可能导致用户重定向到异常网站和钓鱼网站。

黑名单技术仍然是用户抵御此类网络钓鱼网站的最常见防御措施,使用近似匹配算法来检查可疑url是否存在于黑名单中。但该方法存在如下不能解决的技术问题:

1、黑名单是一种被动的防御方法,需要不断维护,经常更新(删除已经过期的url,添加新的钓鱼网站url),这并不是一件简单的事。

2、攻击者在破坏网络钓鱼网页之后,可能会将其植入到被认为是安全的服务器中,在这种情况下,基于黑名单的方法将无法检测到钓鱼网站。

3、系统无法应对黑名单数量不断增长的情况,随着时间的增长,黑名单数量也越来越多,黑名单数据会占用越来越多的系统资源。因此黑名单技术已经无法满足用户的需求。



技术实现要素:

本发明实施方式的目的是提供一种基于机器学习的钓鱼网站url检测方法及系统,与传统的黑名单技术相比,本发明的url检测方法从url中提取特征训练模型进行预测,覆盖范围更广,检测结果更加准确,采用训练好的url模型进行检测,不需要频繁进行更新,且占用资源较少,普通计算机也能够运行,满足广大用户的需求。

为了实现上述目的,本发明第一方面提供一种基于机器学习的钓鱼网站url检测方法,所述方法包括:

对待测url进行解析,提取待测url的结构信息和组成待测url的单词;

根据所述待测url、所述待测url的结构信息和组成待测url的单词提取url特征;

将所述url特征输入训练好的url检测模型进行检测,得到待测url为异常url的概率。

可选的,所述url的结构信息包括:url子域名、url域名、url后缀和url路径;所述对待测url进行解析,提取url的结构信息和组成待测url的单词,包括:

对待测url进行解析,按照url的结构提取url的结构信息;

根据特殊字符对url进行划分,提取组成待测url的单词。将url解析分解后能够提取出更准确的特征,从而提高检测准确率。

可选的,所述url特征包括第一特征、第二特征和第三特征;所述根据所述待测url、所述url的结构信息和组成待测url的单词提取url特征,包括:

根据所述url的结构信息提取第一特征;

根据所述待测url提取第二特征;

根据所述组成待测url的单词提取第三特征。

进一步地,所述根据所述url结构信息提取第一特征,包括:

判断url域名是否为ip地址形式,得到url的ip地址形式判断结果;

判断url域名是否是dga域名,得到url域名判断结果;

判断所述待测url是否存在于排名前一百万的域名列表中;

所述第一特征包括:url的ip地址形式判断结果、url域名判断结果、待测url是否存在于排名前一百万的域名列表中。第一特征基于url的结构信息提取,体现了url的结构的特性。

进一步地,所述根据所述待测url提取第二特征,包括:

统计所述待测url的长度;

统计所述待测url中特殊字符的个数;

判断所述待测url中是否存在特殊关键字;

计算所述待测url中的数字的个数;

计算url中数字与字母的比例值;

计算url的熵;

计算url的ks检验值;

计算url的kl距离值;

计算url的欧式距离值;

计算url中元音与辅音的比例值;

判断url是否存在html实体,得到url的html实体判断结果;

所述第二特征包括:待测url的长度、待测url中特殊字符的个数、待测url中的数字的个数、待测url中是否存在特殊关键字以及url中数字与字母的比例值、url的熵、url的ks检验值、url的kl距离值、url的欧式距离值、url中元音与辅音的比例值和url的html实体判断结果。第二特征基于url本身提取,体现了url的整体特性。

进一步地,所述根据所述组成待测url的单词提取第三特征,包括:

将所述组成待测url的单词添加到剩余单词列表中;

逐一判断所述剩余单词列表中的单词是否为随机字符,将为随机字符的单词添加到随机字符单词列表中,将未添加的单词保留在所述剩余单词列表中;

逐一判断所述剩余单词列表中长度大于设定长度阈值的单词是否为多个单词组成的组合词,将组合词添加到组合词列表中,将未添加的单词保留在所述剩余单词列表中;

逐一判断所述剩余单词列表中的单词是否拼写错误,将拼写错误的单词添加到错误单词列表中,将未添加的单词保留在所述剩余单词列表中;

逐一计算所述剩余单词列表中的单词与品牌名称的相似度,将相似度大于设定相似度阈值的单词判断为相似单词,将相似单词添加到相似单词列表,将未添加的单词保留在所述剩余单词列表中;

计算所述随机字符单词列表的长度、所述组合词列表的长度、所述错误单词列表的长度、所述相似单词列表的长度以及所述剩余单词列表的长度;

所述第三特征包括所述随机字符单词列表的长度、所述组合词列表的长度、所述错误单词列表的长度、所述相似单词列表的长度和所述剩余单词列表的长度。第三特征基于url的组成单词提取,提取出随机字符、组合单词、拼写错误、与知名品牌名称相似的词等特征,使检测结果更加准确。从url本身、url对应的结构信息,以及url的组成单词三个维度进行特征提取,提取的特征能够全面体现url的特点,使得检测结果更准确。

进一步地,所述逐一判断所述剩余单词列表中的单词是否为随机字符,包括:

根据n-gram语言模型建立马尔可夫链模型判断所述剩余单词列表中的单词是否为随机字符。n-gram语言模型通过常规文档来训练,训练过程简单,同时该语言模型能够准确判断单词是否为随机字符。

可选的,所述训练好的url检测模型为:随机森林算法模型、决策树模型、gbdt模型、xgboost算法模型或svm模型。

本发明第二方面提供一种基于机器学习的钓鱼网站url检测系统,所述系统包括:

url解析单元,用于对待测url进行解析,提取待测url的结构信息和组成待测url的单词;

特征提取单元,用于根据所述待测url、所述待测url的结构信息和组成所述待测url的单词提取url特征;

异常url检测单元,用于将所述url特征输入训练好的url检测模型进行检测,得到待测url为异常url的概率。通过本发明的系统能够有效检测出url为异常url的概率,系统结构简单,检测准确率高。

另一方面,本发明提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请所述的基于机器学习的钓鱼网站url检测方法。

通过上述技术方案,本发明的url检测方法从url中提取特征训练模型进行预测,覆盖范围更广,检测结果更加准确,采用训练好的url模型进行检测,不需要频繁进行更新,且占用资源较少,普通计算机也能够运行,满足广大用户的需求。

本发明实施方式的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施方式的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施方式,但并不构成对本发明实施方式的限制。在附图中:

图1是本发明一种实施方式提供的基于机器学习的钓鱼网站url检测方法流程图;

图2是本发明提供的一个url结构实例示意图;

图3是本发明一种实施方式提供的基于机器学习的钓鱼网站url检测系统框图。

具体实施方式

以下结合附图对本发明的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明,并不用于限制本发明。

图1是本发明一种实施方式提供的基于机器学习的钓鱼网站url检测方法流程图。如图1所示,所述方法包括:

对待测url进行解析,提取待测url的结构信息和组成待测url的单词;

根据所述待测url、所述待测url的结构信息和组成待测url的单词提取url特征;

将所述url特征输入训练好的url检测模型进行检测,得到待测url为异常url的概率。

可选的,所述url的结构信息包括:url子域名、url域名、url后缀和url路径;所述对待测url进行解析,提取url的结构信息和组成待测url的单词,包括:

对待测url进行解析,按照url的结构提取url的结构信息;

根据特殊字符对url进行划分,提取组成待测url的单词。将url解析分解后能够提取出更准确的特征,从而提高检测准确率。

url的基本结构如图2所示,整个url包括协议、域名、后缀、路径等等。url是由一些有意义或无意义的词和一些特殊字符组成的,这些字符将地址的一些重要组成部分分开。例如,点标记(“.”)用于分隔域名和子域名。在路径地址中,文件夹之间用“/”符号分隔。此外,url的每个组成部分还可以包含一些分隔符,也就是特殊字符,例如“.”、“_”、“?”、“=”等。

对于图2中的url,提取出的子域名、域名、后缀、路径信息依次为'www'、'abc-def'、'com'、'/details/index.html'。提取出的单词包括:https、www、abc、def、com、details、index、html。

可选的,所述url特征包括第一特征、第二特征和第三特征;所述根据所述待测url、所述url的结构信息和组成待测url的单词提取url特征,包括:

根据所述url的结构信息提取第一特征;

根据所述待测url提取第二特征;

根据所述组成待测url的单词提取第三特征。

进一步地,所述根据所述url结构信息提取第一特征,包括:

判断url域名是否为ip地址形式,得到url的ip地址形式判断结果;

判断url域名是否是dga域名,得到url域名判断结果;

判断所述待测url是否存在于排名前一百万的域名列表;

所述第一特征包括:url的ip地址形式判断结果、url域名判断结果、待测url是否存在于排名前一百万的域名列表中。第一特征基于url的结构信息提取,体现了url的结构的特性。

需要说明的是,dga是一种用于生成随机数的算法,dga域名指的是用dga算法生成的域名。

进一步地,所述根据所述待测url提取第二特征,包括:

统计所述待测url的长度;

统计所述待测url中特殊字符的个数;

判断所述待测url中是否存在特殊关键字;

计算所述待测url中的数字的个数;

计算url中数字与字母的比例值;

计算url的熵;

计算url的ks检验值;

计算url的kl距离值;

计算url的欧式距离值;

计算url中元音与辅音的比例值;

判断url是否存在html实体,得到url的html实体判断结果;

所述第二特征包括:待测url的长度、待测url中特殊字符的个数、待测url中的数字的个数、待测url中是否存在特殊关键字以及url中数字与字母的比例值、url的熵、url的ks检验值、url的kl距离值、url的欧式距离值、url中元音与辅音的比例值和url的html实体判断结果。第二特征基于url本身提取,体现了url的整体特性。

在一些实施例中,特殊关键字是根据用户需求设定的字,例如银行、钱等字样。

进一步地,所述根据所述组成待测url的单词提取第三特征,包括:

将所述组成待测url的单词添加到剩余单词列表中;

逐一判断所述剩余单词列表中的单词是否为随机字符,将为随机字符的单词添加到随机字符单词列表中,将未添加的单词保留在所述剩余单词列表中;

逐一判断所述剩余单词列表中长度大于设定长度阈值的单词是否为多个单词组成的组合词,将组合词添加到组合词列表中,将未添加的单词保留在所述剩余单词列表中;

逐一判断所述剩余单词列表中的单词是否拼写错误,将拼写错误的单词添加到错误单词列表中,将未添加的单词保留在所述剩余单词列表中;

逐一计算所述剩余单词列表中的单词与品牌名称的相似度,将相似度大于设定相似度阈值的单词判断为相似单词,将相似单词添加到相似单词列表,将未添加的单词保留在所述剩余单词列表中;

计算所述随机字符单词列表的长度、所述组合词列表的长度、所述错误单词列表的长度、所述相似单词列表的长度以及所述剩余单词列表的长度;

所述第三特征包括所述随机字符单词列表的长度、所述组合词列表的长度、所述错误单词列表的长度、所述相似单词列表的长度和所述剩余单词列表的长度。第三特征基于url的组成单词提取,提取出随机字符、组合单词、拼写错误、与知名品牌名称相似的词等特征,使检测结果更加准确。从url本身、url对应的结构信息,以及url的组成单词三个维度进行特征提取,提取的特征能够全面体现url的特点,使得检测结果更准确。

需要说明的是,根据第三特征中随机字符、组合词、错误单词及相似单词的判断步骤可以随机调整先后顺序,本申请仅记载了其中多种顺序中的一种。

在本发明的一些实施例中,使用python的拼写检查库判断单词是否拼写错误。在本发明的一些实施例中,实用编辑距离计算单词与品牌名称的相似度,编辑距离越小相似度越高,编辑距离小于设定的编辑距离阈值则判定为相似单词。

进一步地,所述逐一判断所述剩余单词列表中的单词是否为随机字符,包括:

根据n-gram语言模型建立马尔可夫链模型判断所述剩余单词列表中的单词是否为随机字符。n-gram语言模型通过常规文档来训练,训练过程简单,同时该语言模型能够准确判断单词是否为随机字符。

可选的,所述训练好的url检测模型为:随机森林算法模型、决策树模型、gbdt模型、xgboost算法模型或svm模型。

在本发明的一些实施例中,训练好的url检测模型通过如下过程进行训练:

首先收集大量的钓鱼网站url和正常url,将正常url标记为0,将钓鱼网站url标记为1;

然后依照前述的待测url的处理过程,提取出收集的url的结构信息和组成url的单词;

根据结构信息、url本身以及组成url的单词提取出收集的url对应的特征;

根据收集的url和提取的特征构建url检测模型,并使用贝叶斯优化寻找使交叉验证误差最小的参数组合,作为url检测模型的最优参数,建模完成后保存模型,保存的模型就是训练好的url检测模型。在其他一些实施例中,使用网格搜索等优化方法进行url检测模型优化。

图3是本发明一种实施方式提供的基于机器学习的钓鱼网站url检测系统框图。如图3所示,所述系统包括:

url解析单元,用于对待测url进行解析,提取待测url的结构信息和组成待测url的单词;

特征提取单元,用于根据所述待测url、所述待测url的结构信息和组成所述待测url的单词提取url特征;

异常url检测单元,用于将所述url特征输入训练好的url检测模型进行检测,得到待测url为异常url的概率。通过本发明的系统能够有效检测出url为异常url的概率,系统结构简单,检测准确率高。

另一方面,本发明提供一种机器可读存储介质,该机器可读存储介质上存储有指令,该指令用于使得机器执行本申请所述的基于机器学习的钓鱼网站url检测方法

本领域技术人员可以理解实现上述实施方式的方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本发明各个实施方式所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

以上结合附图详细描述了本发明的可选实施方式,但是,本发明实施方式并不限于上述实施方式中的具体细节,在本发明实施方式的技术构思范围内,可以对本发明实施方式的技术方案进行多种简单变型,这些简单变型均属于本发明实施方式的保护范围。另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施方式对各种可能的组合方式不再另行说明。

此外,本发明的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施方式的思想,其同样应当视为本发明实施方式所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1