CN107438083B - 一种Android环境下钓鱼网站检测方法及其检测系统 - Google Patents

一种Android环境下钓鱼网站检测方法及其检测系统 Download PDF

Info

Publication number
CN107438083B
CN107438083B CN201710795049.4A CN201710795049A CN107438083B CN 107438083 B CN107438083 B CN 107438083B CN 201710795049 A CN201710795049 A CN 201710795049A CN 107438083 B CN107438083 B CN 107438083B
Authority
CN
China
Prior art keywords
website
url
algorithm
feature vector
cluster
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
Application number
CN201710795049.4A
Other languages
English (en)
Other versions
CN107438083A (zh
Inventor
朱二周
马刚
刘锋
张静
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Anhui University
Original Assignee
Anhui University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Anhui University filed Critical Anhui University
Priority to CN201710795049.4A priority Critical patent/CN107438083B/zh
Publication of CN107438083A publication Critical patent/CN107438083A/zh
Application granted granted Critical
Publication of CN107438083B publication Critical patent/CN107438083B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1466Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/284Relational databases
    • G06F16/285Clustering or classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1483Countermeasures against malicious traffic service impersonation, e.g. phishing, pharming or web spoofing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic
    • H04L63/1491Countermeasures against malicious traffic using deception as countermeasure, e.g. honeypots, honeynets, decoys or entrapment
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开一种Android环境下钓鱼网站检测方法及其检测系统,包括以下步骤:手机端用户在浏览网页时,获取网站URL,并发给服务器端;服务器端在收到客户端发来的URL时,并根据URL获取网页内容,根据URL和网页内容构造特征向量;使用样本数据集对K‑means进行聚类形成两个聚类中心,同时训练朴素贝叶斯算法;使用K‑means和改进朴素贝叶斯相结合的算法对特征向量进行判定,并将判定结果发回给客户端用户;客户端用户根据返回的结果进行相应的提示,如果是钓鱼网站则显示提示框提醒用户,如果不是则正常浏览网页。本发明充分利用了K‑means算法聚类速度快与朴素贝叶斯算法准确率高的优点,大大提高分类速度和精度。

Description

一种Android环境下钓鱼网站检测方法及其检测系统
技术领域
本发明属于计算机软件以及移动安全技术领域,具体涉及一种Android环境下钓鱼网站检测方法及其检测系统。
背景技术
根据数据显示,2017年中国移动互联网用户数量已超过10亿人,较2016年增长了近20%。从智能手机的用户数量可以看出,我国的移动互联网规模巨大,并在迅速发展中。但是在移动互联网快速发展的同时,针对移动网络攻击和诈骗的现象时有发生。
网络钓鱼攻击是一种通过模拟正常网站的界面,诱骗用户输入用户名和密码等信息,从而达到盗取用户账号信息的目的。当前,对于PC端的网络钓鱼攻击已经有了较好的防御和保护手段,但针对移动端攻击的检测手段和方法还没有得到很好的解决。当前,对网页钓鱼攻击检测方法的研究主要包括基于黑名单的检测、基于机器学习的检测、基于启发式的检测和基于视觉相似的检测等四类,但这些现有技术或多或少存在一些缺陷。主要表现为:
(1)基于黑名单的检测技术
该技术主要根据知名IT企业提供的钓鱼网站黑名单的方式进行检测。基于黑名单的检测的技术虽然正确率很高,但是没办法检测不在黑名单内的钓鱼网站。与此同时,由于确认黑名单需要人工验证,故需花费大量的人力和时间等资源。
(2)基于机器学习的检测技术
该技术主要通过选择钓鱼网站URL的特征,以此来生成训练数据,构造分类器进行检测。在这种方法中,URL特征的选取和分类器的构建是非常关键的因素。
(3)基于启发式的检测技术
该技术主要根据网站存在的异常特征超出了设定的阈值和不合乎常规的访问等方式来对钓鱼网站进行判断。
(4)基于视觉相似的检测技术
该技术主要利用钓鱼网站与真实网站的视觉相似超过设定的阈值来进行检测。然而,由于需要复杂的图像处理操作,鉴于现在手机在性能还不能很好的满足此类计算需求,这种方法并不适合移动手机端。
发明内容
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种Android环境下钓鱼网站检测方法及其检测系统。
技术方案:本发明的一种Android环境下钓鱼网站检测方法,依次包括以下步骤:
(1)首先Android手机客户端用户在浏览网页时,获取网站URL,并将获取的网站URL发给安装在服务器端用以钓鱼网站检测的应用程序;
(2)服务器端通过Android手机客户端发来的URL获取对应的网页内容,并以此为依据构造特征向量V,V=<v1,v2,v3,v4,v5,v6,v7,v8>;
(3)使用由钓鱼网站和正常网站构成的样本数据集对K-means进行聚类,形成两个聚类中心,同时训练K-means算法和朴素贝叶斯算法;
(4)使用K-means和改进朴素贝叶斯相结合的算法对特征向量进行判定,并将判定结果发回给客户端用户;
(5)客户端用户根据返回的结果进行相应的提示,如果是钓鱼网站则显示提示框提醒用户,如果不是则正常浏览网页。
所述步骤(1)中URL的获取方式可以采取两种方式:一是客户端程序将用户在web浏览器中访问的URL提取出来,再将该URL发送给服务器进行检测;二是直接将该功能的实现转到服务器进行实现,即由服务器处理用户的HTTP请求。
浏览器在手机平台上是作为一个核心服务在运行的。在提供的应用程序编程接口中,应用程序只能够将指定的URL作为输入来调用浏览器进行访问,而没有提供相应的接口实现直接提取当前浏览器访问网址的功能,这样做的目的也是为了在应用程序级别保障数据交换的安全。对于用户越来越多样化的办公和娱乐需求,web浏览器的请求解析势必会导致占用不少的软硬件资源,将该功能移植到服务器上会增加用户使用体验。本发明采用第二种方式,是采用服务器端应用程序处理用户的HTTP请求。
钓鱼网站通常为了迷惑用户,将网站的URL和网页内容进行了伪装,根据总结和归纳钓鱼网站的特点,从中提取钓鱼网站的8个特性,将这些特性组成特征向量,即V=<v1,v2,v3,v4,v5,v6,v7,v8>。步骤(2)中,所述URL的特征向量包括URL中是否包含IP地址v1,网站的URL中是否包含‘_’和‘@’异常字符v2,URL是否具有多级域名v3,以及URL的字符长度是否大于30v4;所述网页内容的特征向量包括网页内容中是否包含‘form’表单v5,网页内容中是否包含‘username’关键字v6,网页内容中是否包含‘password’关键字v7,以及是否存在外部链接v8。其中,各个分量的具体含义分别为:
v1:URL中是否包含IP地址。攻击者经常用IP地址作为网站的URL来迷惑用户,而这样的URL极有可能是恶意的钓鱼网站。
v2:网站的URL中是否包含‘_’、‘@’等异常字符。钓鱼网站通常用添加特殊字符的方法来迷惑用户。
v3:URL是否具有多级域名。当网站域名过长时,大部分用户往往会忽视URL后半部分的内容,而很多钓鱼网站通过多级域名来达到迷惑用户的目的。本文通过检测URL中是否含有大于5个‘.’来判断该URL是否包含多级域名。
v4:URL的字符长度是否大于30。一般可信网站的长度都不会太长,如果URL的长度过长,极有可能是钓鱼网站。
v5:网页内容中是否包含‘form’表单。‘form’表单是用来提交用户信息的,存在‘form’表单,说明网页需要用户填写信息,用户需要特别注意。
v6:网页内容中是否包含‘username’关键字。‘username’在网页源代码中通常表示用户的登录ID,如果存在,极有可能是攻击者想要获取用户的ID。
v7:网页内容中是否包含‘password’关键字。‘password’在网页源代码中通常代表用户的登录密码,如果存在,很有可能是攻击者想要窃取用户的登录密码。
v8:是否存在外部链接。网页中存在外部链接是正常的,但是如果网页中外部链接的数量过多(这里指外部链接的数量超过20个),这个网页很有可能是可疑的。用户需要特别注意。
所述步骤(3)的具体过程为:
利用样本数据集对K-means算法进行聚类,形成两个聚类中心,因为网站判定的结果只有两种,一种为钓鱼网站,一种为正常网站,同时用样本数据对K-means和朴素贝叶斯算法进行训练。
上述样本数据集包括两类网站,即钓鱼网站数据和正常网站数据,钓鱼网站数据通过安全联盟网站实时获取,正常网站数据从Alexa网站实时获取获取。由于钓鱼网站的存活周期短,本发明以实时收集的网站信息作为数据集,钓鱼网站数据集是从安全联盟网站上获取的,安全联盟网站每天实时地更新最新发现的钓鱼网站,因此从安全联盟网站获取的钓鱼网站数据是最具代表性的。正常网站是从Alexa网站上获取的,Alexa网站公布了全球网站访问量的排行榜,因此可以作为正常网站数据集的来源。
K-means算法的目标是根据输入的参数K,将给定的数据集分为K个簇,同一个簇内的数据具有较高的相似度,而不同簇之间的相似度较底。
K-means算法的具体聚类过程为:
1)从样本数据对象中随机选择一个属于钓鱼网站的特征向量作为钓鱼网站聚类中心O1,再随机选择一个属于正常网站的特征向量作为正常网站的聚类中心O2
2)计算剩余每个对象与两个聚类中心位置的距离d1和d2,若d1>d2,就将当前对象赋给聚类中心O2,若d1<=d2,就将当前对象赋给聚类中心O1
3)重新计算两个聚类的均值(中心位置);
4)循环2)到3)直到样本数据集都完成聚类。
K-means聚类算法步骤2)中每个数据与聚类中心距离的计算:
钓鱼网站特征向量的属性值只有两个状态:0和1。则评价两个对象之间的相似度用的是Jaccard系数,如公式(1)所示:
由数学知识可得:
sim(i,j)=(r+s)/(q+r+s) (2)
其中,r是对于i的值为1而对于j的值为0的变量的个数;s是对于i的值为0而对于j的值为1的变量的个数;q是对于i和j的值都是1的变量的个数。
K-means聚类算法步骤(3)中均值的计算:若对象的属性值为数值型(连续性)数据,则均值其中n为属于该类的记录总数,Bi为属性值。若对象的属性值为离散型数据,则均值A=Bi,Bi为该类中相应属性使用频率最多的属性值。由于钓鱼网站使用的特征向量都是离散性数据,故采用第二种方法计算均值。
训练K-means算法得到阈值ε的过程如下所示:
本发明需要寻找一个固定的阈值ε,这个阈值ε在步骤(4)中需要用到,因此需要通过训练获取最佳的ε,如图4所示,随着ε的增大,训练样本集的正确率不断地增大,当达到阈值ε的时候,样本集的正确率会趋于稳定,这时的ε值正是需要的阈值。
贝叶斯定理的主要思想为:如果事件发生的可能性不确定,那么量化它的唯一方法就是事件发生的概率。如果事件出现的概率是已知的,那么可以根据数学方法计算出未来事件出现的概率。贝叶斯定理可以用一个数学公式进行表达,即为贝叶斯公式。具体如公式(3)所示:
在贝叶斯定理中,P(X)表示事件发生的概率,P(Bi)表示Bi的先验概率。之所以称之为先验概率是因为它的概率不和别的事件有关系。由于P(X|Bi)是根据Bi的概率得到的,因此被称为X的后验概率。简单地说,贝叶斯定理是基于先验概率,提供了一种计算后验概率的方法。
朴素贝叶斯算法是在贝叶斯算法的基础上通过假定各属性之间不存在任何关联,即属性之间完全独立而得到的一种简化算法。利用朴素贝叶斯算法进行分类的具体过程如下所示:
每个数据样本都由一个n维的特征向量X={x1,x2,…,xn}表示,xi(i=1,…,n)表示n个数据样本中第i个属性的度量值。
实验E的样本空间为S,而B1,B2,…,Bn为S的一个划分,且P(Bi)>0(i=1,2,…,n)。对于给定的数据样本X,分类器将计算X属于每个分类的概率,其中哪个分类的概率最大就将X归为那个分类。P(Bi|X)即为对应类Bi的后验概率。而P(Bi|X)可以根据公式(1)来确定。由于P(X)为常数,只需要P(X|Bi)P(Bi)最大,即可判断出样本X属于哪一个分类。其中类的先验概率可以用P(Bi)=si/s计算,si为训练样本中属于Bi的个数,s为训练样本的总数。
由于朴素贝叶斯算法假定各个属性之间是相互独立的,没有任何的依赖关系,所以有:
其中概率P(X1|Bi),P(X2|Bi),…,P(Xk|Bi)可由训练样本计算得到。P(Xk|Bi)=sik/si,其中si表示样本中类别属于Bi的样本数,sik表示样本中属于类别Bi,并且第k个属性对应的属性值为Xk的样本数。
于是朴素贝叶斯算法可以表述为公式(5):
利用公式(5)的朴素贝叶斯公式可以计算出每一个待分类网站X属于钓鱼网站和正常网站的概率:P(B1|X)(B1为钓鱼网站类别)和P(B2|X)(B2为可信网站类别)。如果按照传统的方法,当P(B1|X)>P(B2|X)时,就判定X属于钓鱼网站,否则就判定为正常网站。但是在实际的情况中,正常网站的数量往往比钓鱼网站的数量多很多,传统的朴素贝叶斯算法就会产生较高的误判率,如果直接使用的话,分类的偏差会比较大。因此,为了能更加准确的检测出钓鱼网站,减少检测过程中的误判率,需要对朴素的贝叶斯算法进行改进。
改进的方法如下所示:
在比较两个分类(P(B1|X)和P(B2|X))的概率时设定一个阈值K:若P(B1|X)除以P(B2|X)大于K时,表明X属于B1的概率远大于属于B2的概率,即将待检测的网站归为B1;否则将它归为B2。阈值K的确定需要通过数据集训练得到。
朴素贝叶斯的训练过程如下所示:
本发明通过样本数据集训练得到最佳的阈值K,通过调整K值得大小,观察测试数据集正确率的变化情况,随着K值得增大,如图5所示,测试数据的正确率会先增加,当达到最大值时,之后会随着K值得增加而减小,正确率最大时对应的K值即为所需要的阈值K。
所述步骤(4)的具体过程为:
1)首先计算特征向量V=<v1,v2,v3,v4,v5,v6,v7,v8>分别距离K-means的两个聚类中心O1和O2的距离d1和d2
2)判断d1-d2的距离的绝对值是否大于阈值ε;
3)如果d1-d2的距离的绝对值>ε,则表明特征向量离K-means的某一个聚类中心很近,此时利用K-means算法进行判定不会产生较大的误差;
4)如果d1-d2的距离的绝对值<=ε,则表明特征向量距离聚类中心O1和O2都很近,此时若采用K-means算法会产生较大的误差,这时则采用改进的朴素贝叶斯算法进行判定;
5)服务器端将检测的结果返回给客户端。
本发明还公开了一种实现Android环境下钓鱼网站检测方法的检测系统,包括手机客户端模块和服务器端模块,服务器端模块包括特征提取模块、训练模块和结果判定模块;所述客户端模块获取URL,发送URL给服务器端,根据服务器端返回的结果显示相应的提示警告信息;所述特征提取模块提取网址的URL特征和网页内容的特征作为特征向量;所述训练模块通过样本数据集对K-means算法进行聚类,形成聚类中心,同时对K-means算法和朴素贝叶斯算法进行训练;所述结果判定模块利用K-means和改进的朴素贝叶斯相结合的算法对特征向量进行判定,判断网址是否为钓鱼网站。
简而言之,上述检测系统包括客户端Android平台应用程序,以及以钓鱼网站检测系统为主的服务器端应用程序。其中,Android手机客户端程序主要负责对用户的上网请求给出相应的提示信息;服务器端应用程序即提供钓鱼网站检测服务,并将结果反馈给Android手机客户端。
有益效果:与现有技术相比,本发明具有以下优点:
(1)使用了服务器端应用程序进行检测,减轻了Android手机客户端的压力,提高了用户体验。
(2)同时使用URL和网页内容作为特征向量,提高了分类的正确率。
(3)利用钓鱼网站的特性,对传统的朴素贝叶斯算法进行相应的改进。
(4)使用K-means算法和改进的朴素贝叶斯相结合的方法对待检测网站进行判定,本发明充分利用了K-means算法聚类速度快与朴素贝叶斯算法准确率高的优点,大大的提高了分类的速度和精度。
附图说明
图1为本发明的整体流程图;
图2为本发明服务器端获取客户端URL流程图;
图3为本发明中步骤(3)中K-means聚类图;
图4为本发明K-means算法中阈值ε的确定示意图;
图5为本发明朴素贝叶斯算法中K值的确定示意图;
图6为本发明的步骤(4)中特征向量检测原理图。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
如图1所示,本发明的一种Android环境下钓鱼网站检测方法,包含以下步骤:
步骤(1)、手机端用户在浏览网页时,获取网站URL,并发给服务器端;如图2所,具体实施过程如下:
在手机用户上网经过的网络出口处安装一个流量设备后,用户的网络请求能够原封不动的发往服务器端。服务器端对网络上的数据包进行解包,之后提取出客户端访问的页面的详细信息,如可以从客户端的数据包头中提取出用户将要访问的UR。
步骤(2)、服务器端在收到客户端发来的URL时,并根据URL获取网页内容,根据URL和网页内容构造特征向量。
钓鱼网站通常为了迷惑用户,将网站的URL和网页内容进行了伪装。根据总结和归纳钓鱼网站的特点,本文从中提取了钓鱼网站的8个特性,将这些特性组成特征向量(V)。特征向量的具体定义为:V=<v1,v2,v3,v4,v5,v6,v7,v8>。V中各个分量的具体含义为:
v1:URL中是否包含IP地址。攻击者经常用IP地址作为网站的URL来迷惑用户,而这样的URL极有可能是恶意的钓鱼网站。
v2:网站的URL中是否包含‘_’、‘@’等异常字符。钓鱼网站通常用添加特殊字符的方法来迷惑用户。
v3:URL是否具有多级域名。当网站域名过长时,大部分用户往往会忽视URL后半部分的内容,而很多钓鱼网站通过多级域名来达到迷惑用户的目的。本文通过检测URL中是否含有大于5个‘.’来判断该URL是否包含多级域名。
v4:URL的字符长度是否大于30。一般正常网站的长度都不会太长,如果URL的长度过长,极有可能是钓鱼网站。
v5:网页内容中是否包含‘form’表单。‘form’表单是用来提交用户信息的,存在‘form’表单,说明网页需要用户填写信息,用户需要特别注意。
v6:网页内容中是否包含‘username’关键字。‘username’在网页源代码中通常表示用户的登录ID,如果存在,极有可能是攻击者想要获取用户的ID。
v7:网页内容中是否包含‘password’关键字。‘password’在网页源代码中通常代表用户的登录密码,如果存在,很有可能是攻击者想要窃取用户的登录密码。
v8:是否存在外部链接。网页中存在外部链接是正常的,但是如果网页中外部链接的数量过多(这里指外部链接的数量超过20个),这个网页很有可能是可疑的。
特征向量的取值如下所示:
步骤(3)、使用样本数据集对K-means进行聚类,形成两个聚类中心,如图3所示,同时训练K-means算法和朴素贝叶斯算法;
K-means算法的目标是根据输入的参数K,将给定的数据集分为K个簇,同一个簇内的数据具有较高的相似度,而不同簇之间的相似度较底。K-means算法的具体聚类过程为:
①从样本数据对象中随机选择一个属于钓鱼网站的特征向量作为钓鱼网站聚类中心O1,再随机选择一个属于正常网站的特征向量作为正常网站的聚类中心O2
②计算剩余每个对象与两个聚类中心位置的距离d1和d2,若d1>d2,就将当前对象赋给聚类中心O2,若d1<=d2,就将当前对象赋给聚类中心O1
③重新计算两个聚类的均值(中心位置);
④循环②到③直到样本数据集都完成聚类。
训练K-means得到阈值ε的过程如下所示:
本发明需要寻找一个固定的阈值ε,这个阈值ε在步骤(4)中需要用到,因此需要通过训练获取最佳的ε,通过改变ε的值,观察样本集正确率的变化,如图4所示,随着ε的增大,训练样本集的正确率先是不断地增大,当达到阈值ε的时候,样本集的正确率会趋于稳定,如果继续增加ε的值,样本集的正确率不会有所提高,所以这时的ε值正是需要的阈值。
朴素贝叶斯的训练过程如下所示:
传统的朴素贝叶斯公式可以计算出每一个待分类网站X属于钓鱼网站和可信网站的概率:P(B1|X)(B1为钓鱼网站类别,X为网站的特征向量)和P(B2|X)(B2为可信网站类别)。如果按照传统的方法,当P(B1|X)>P(B2|X)时,就判定X属于钓鱼网站,否则就判定为正常网站。但是在实际的情况中,正常网站的数量往往比钓鱼网站的数量多很多,传统的朴素贝叶斯算法就会产生较高的误判率,如果直接使用的话,分类的偏差会比较大。因此,为了能更加准确的检测出钓鱼网站,减少检测过程中的误判率,需要对朴素的贝叶斯算法进行改进。
改进的方法如下所示:
在比较两个分类(P(B1|X)和P(B2|X))的概率时设定一个阈值K:若P(B1|X)除以P(B2|X)大于K时,表明X属于B1的概率远大于属于B2的概率,即将待检测的网站归为B1;否则将它归为B2。阈值K的确定需要通过数据集训练得到。
本发明通过样本数据集训练得到最佳的阈值K,如图5所示,通过调整K值得大小,观察测试数据集的正确率,随着K值得增大,测试数据集的正确率会先增加,当达到最大峰值时,之后会随着K值得增加而减小,正确率最大时对应的K值即为所需要的阈值K。
步骤(4)、使用K-means和改进的朴素贝叶斯相结合的算法对特征向量进行判定,并将结果发回给客户端用户;如图6所示,具体实施过程如下:
1)首先计算特征向量分别距离K-means聚类中心的两个聚类中心O1和O2的距离d1和d2
2)判断d1-d2的距离的绝对值是否大于阈值ε;
3)如果d1-d2的距离的绝对值>ε,则表明特征向量离K-means的某一个聚类中心很近,此时利用K-means算法进行判断不会产生较大的误差,直接采用K-means算法进行判定;
4)如果d1-d2的距离的绝对值<=ε,则表明特征向量距离聚类中心O1和O2都很近,此时若采用K-means算法会产生较大的误差,这时则使用改进的朴素贝叶斯算法进行判定;
5)服务器端将检测的结果返回给客户端。
步骤(5)、具体实施过程如下:客户端用户根据返回的结果进行相应的提示,如果是钓鱼网站则显示提示框提用户,如果不是则正常浏览网页。
实现上述Android环境下钓鱼网站检测方法的检测系统,包括手机客户端模块和服务器端模块,服务器端模块又包括特征提取模块、训练模块和结果判定模块;客户端模块获取URL,发送URL给服务器端,根据服务器端返回的结果显示相应的提示警告信息;特征提取模块提取网址的URL特征和网页内容的特征作为特征向量;训练模块通过样本数据集对K-means算法进行聚类,形成聚类中心,同时对K-means算法和朴素贝叶斯算法进行训练;结果判定模块利用K-means算法和改进的朴素贝叶斯相结合的算法对特征向量进行判定,判断网址是否为钓鱼网站
实施例:
本实施例现结合具体场景讲述如何应用本发明来检测钓鱼网站。
假设Android客户端用户通过手机浏览进行浏览网页,如果用户访问网站的URL为www.8244028.nx57.cn,该网址的请求会通过中间设备转发到服务器端应用程序,服务器端应用程序会去访问www.8244028.nx57.cn,从而获得该URL的网页内容,之后根据本发明中特征向量的定义构造出如下的特征向量V=(1,0,0,0,1,1,1,1)。
服务器端程序会根据收集来的样本数据进行聚类,形成两个聚类中心,钓鱼网站聚类中心为(1,0,1,0,0,1,1,1),正常网站聚类中心为(1,0,1,0,1,1,0,0)并且训练得到阈值ε,ε的值为0.3,同时训练得到朴素贝叶斯算法的K值,K值为1.2,即一个网站为钓鱼网站的概率是正常网站概率的1.2倍时,才判定为钓鱼网站。
服务器端应用程序,计算特征向量V(1,0,0,0,1,1,1,1)距离两个聚类中心的距离d1=0.33和d2=0.5。因为d1-d2的绝对值小于等于0.3,则利用改进的朴素贝叶斯算法进行检测,通过样本数据得出P(B1|V)=0.64和P(B2|V)=0.48(B1为钓鱼网站类别,B2为正常网站类别),计算P(B1|V)/P(B2|V)是否大于1.2,所得概率比值为1.33,该值是大于1.2的。服务器端程序发送“是钓鱼网站”的检测结果,Android手机客户端程序会提示用户当前访问的网站是钓鱼网站。
上述实施例可以看出,Android手机客户端用户在浏览网页时,本发明可以在较短的时间内判断出该网页是否为钓鱼网站,并且及时地将结果反馈给用户。

Claims (6)

1.一种Android环境下钓鱼网站检测方法,其特征在于:依次包括以下步骤:
(1)首先Android手机客户端用户在浏览网页时,获取网站URL,并将获取的网站URL发给安装在服务器端用以钓鱼网站检测的应用程序;
(2)服务器端通过Android手机客户端发来的URL获取对应的网页内容,并以此为依据构造特征向量V,V=<v1,v2,v3,v4,v5,v6,v7,v8>;
(3)使用由钓鱼网站和正常网站构成的样本数据集对K-means进行聚类,形成两个聚类中心,同时训练K-means算法和朴素贝叶斯算法;
(4)使用K-means和改进朴素贝叶斯相结合的算法对特征向量进行判定,并将判定结果发回给客户端用户;
(5)客户端用户根据返回的结果进行相应的提示,如果是钓鱼网站则显示提示框提醒用户,如果不是则正常浏览网页;
上述过程中,步骤(4)的具体过程:
(4.1)首先计算特征向量V=<v1,v2,v3,v4,v5,v6,v7,v8>分别距离K-means的两个聚类中心O1和O2的距离d1和d2
(4.2)判断d1-d2的距离的绝对值是否大于阈值ε;
(4.3)如果d1-d2的距离的绝对值>ε,则表明特征向量离K-means的某一个聚类中心很近,此时利用K-means算法进行判定不会产生较大的误差,直接使用K-means算法对特征向量进行判定;
(4.4)如果d1-d2的距离的绝对值<=ε,则表明特征向量距离聚类中心O1和O2都很近,此时若采用K-means算法会产生较大的误差,这时则采用改进的朴素贝叶斯算法进行判定;
(4.5)服务器端将检测的结果返回给客户端。
2.根据权利要求1所述的Android环境下钓鱼网站检测方法,其特征在于:所述步骤(1)中URL的获取方式为:由服务器端应用程序处理用户的HTTP请求,将该功能移植到服务器上增加用户使用体验。
3.根据权利要求1所述的Android环境下钓鱼网站检测方法,其特征在于:所述步骤(2)中,所述URL的特征向量包括URL中是否包含IP地址(v1),网站的URL中是否包含‘_’和‘@’异常字符(v2),URL是否具有多级域名(v3),以及URL的字符长度是否大于30(v4);
所述网页内容的特征向量包括网页内容中是否包含‘form’表单(v5),网页内容中是否包含‘username’关键字(v6),网页内容中是否包含‘password’关键字(v7),以及是否存在外部链接(v8)。
4.根据权利要求1所述的Android环境下钓鱼网站检测方法,其特征在于:所述步骤(3)中的样本数据集包括两类网站,即钓鱼网站数据和正常网站数据,钓鱼网站数据通过安全联盟网站实时获取,正常网站数据从Alexa网站实时获取获取。
5.根据权利要求1所述的Android环境下钓鱼网站检测方法,其特征在于:所述步骤(3)中先利用样本数据对K-means算法进行聚类以形成两个聚类中心;同时,使用样本数据对K-means算法和朴素贝叶斯算法进行训练;
其中:(A)K-means算法的具体聚类过程为:
1)从样本数据集的对象中随机选择一个属于钓鱼网站的特征向量作为钓鱼网站聚类中心O1,再随机选择一个属于正常网站的特征向量作为正常网站的聚类中心O2
2)计算剩余每个对象与两个聚类中心位置的距离d1和d2:若d1>d2,说明当前对象距离聚类中心O2较近,所以将当前对象赋给聚类中心O2;若d1<=d2,就将当前对象赋给聚类中心O1
3)重新计算两个聚类的均值即中心位置;
4)循环2)到3)直到样本数据集都完成聚类;
(B)训练K-means算法得到阈值ε的过程为:
训练过程中通过改变ε值,观察样本数据集的正确率;随着ε的增大,训练样本数据集的正确率不断地增大,当达到阈值ε的时候,样本数据集的正确率会趋于稳定,这时的ε值正是需要的阈值;
(C)朴素贝叶斯的训练过程为:
在比较两个分类(P(B1|X)和P(B2|X))的概率时设定一个阈值K:若P(B1|X)除以P(B2|X)大于K时,表明X属于B1的概率远大于属于B2的概率,即将待检测的网站归为B1;否则将它归为B2
其中,P(B1|X)和P(B2|X)分别是指每一个待分类网站X属于钓鱼网站和正常网站的概率,B1为钓鱼网站类别,B2为正常网站类别,X为网站的特征向量;
上述阈值K通过数据集训练得到:在训练过程中通过调整K值的大小,观察测试数据集正确率的变化情况;随着K值的得增大,测试数据的正确率会先增加;当达到最大值时,之后会随着K值得增加而减小,正确率最大时对应的K值即为所需要的阈值K。
6.一种实现根据权利要求1至5任意一项所述的Android环境下钓鱼网站检测方法的检测系统,其特征在于:包括手机客户端模块和服务器端模块,服务器端模块包括特征提取模块、训练模块和结果判定模块;
所述客户端模块获取URL,发送URL给服务器端,根据服务器端返回的结果显示相应的提示警告信息;所述特征提取模块提取网址的URL特征和网页内容的特征作为特征向量;所述训练模块通过样本数据集对K-means算法进行聚类,形成聚类中心,同时对K-means算法和朴素贝叶斯算法进行训练;所述结果判定模块利用K-means和改进的朴素贝叶斯相结合的算法对特征向量进行判定,判断网址是否为钓鱼网站。
CN201710795049.4A 2017-09-06 2017-09-06 一种Android环境下钓鱼网站检测方法及其检测系统 Active CN107438083B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710795049.4A CN107438083B (zh) 2017-09-06 2017-09-06 一种Android环境下钓鱼网站检测方法及其检测系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710795049.4A CN107438083B (zh) 2017-09-06 2017-09-06 一种Android环境下钓鱼网站检测方法及其检测系统

Publications (2)

Publication Number Publication Date
CN107438083A CN107438083A (zh) 2017-12-05
CN107438083B true CN107438083B (zh) 2019-08-20

Family

ID=60460706

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710795049.4A Active CN107438083B (zh) 2017-09-06 2017-09-06 一种Android环境下钓鱼网站检测方法及其检测系统

Country Status (1)

Country Link
CN (1) CN107438083B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113079123B (zh) * 2020-01-03 2022-11-22 中国移动通信集团广东有限公司 一种恶意网站的检测方法、装置及电子设备
CN111556042B (zh) * 2020-04-23 2022-12-20 杭州安恒信息技术股份有限公司 恶意url的检测方法、装置、计算机设备和存储介质
CN112468501B (zh) * 2020-11-27 2022-10-25 安徽大学 一种面向url的钓鱼网站检测方法
CN113283909B (zh) * 2021-06-09 2022-11-08 广东工业大学 一种基于深度学习的以太坊钓鱼账户检测方法
CN113689138B (zh) * 2021-09-06 2024-04-26 北京邮电大学 一种基于眼动追踪和社工要素的网络钓鱼易感性预测方法
CN115001811A (zh) * 2022-05-31 2022-09-02 中国电信股份有限公司 一种网址检测方法和装置

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663754A (zh) * 2012-04-17 2012-09-12 北京博研新创数码科技有限公司 一种基于区域高斯加权的图像匹配计算方法
CN104217160A (zh) * 2014-09-19 2014-12-17 中国科学院深圳先进技术研究院 一种中文钓鱼网站检测方法及系统

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102663754A (zh) * 2012-04-17 2012-09-12 北京博研新创数码科技有限公司 一种基于区域高斯加权的图像匹配计算方法
CN104217160A (zh) * 2014-09-19 2014-12-17 中国科学院深圳先进技术研究院 一种中文钓鱼网站检测方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
A Hybrid Model to Detect Phishing-Sites using Clustering and Bayesian Approach;Rahul Patil等;《International Conference for Convergence of Technology》;20150423;文章正文第2-3部分
基于改进朴素贝叶斯算法的垃圾邮件过滤器的研究;郑炜等;《北工业大学学报》;20101124;文章正文第3部分

Also Published As

Publication number Publication date
CN107438083A (zh) 2017-12-05

Similar Documents

Publication Publication Date Title
CN107438083B (zh) 一种Android环境下钓鱼网站检测方法及其检测系统
CN104615760B (zh) 钓鱼网站识别方法和系统
CN104077396B (zh) 一种钓鱼网站检测方法及装置
CN102737019B (zh) 机器行为确定方法、网页浏览器及网页服务器
CN101894134B (zh) 一种基于空间布局的钓鱼网页检测及其实现方法
CN109873810B (zh) 一种基于樽海鞘群算法支持向量机的网络钓鱼检测方法
CN109005145A (zh) 一种基于自动特征抽取的恶意url检测系统及其方法
CN107798027B (zh) 一种信息热度预测方法、信息推荐方法及装置
CN104504335B (zh) 基于页面特征和url特征的钓鱼app检测方法及系统
CN103595576B (zh) 一种基于内容提供商标识的互联口icp流量统计系统及方法
CN103617235B (zh) 一种基于粒子群算法的网络水军账号识别方法及系统
CN107835113A (zh) 一种基于网络映射的社交网络中异常用户检测方法
CN103838754B (zh) 信息搜索装置及方法
CN106776946A (zh) 一种欺诈网站的检测方法
CN106130756B (zh) 一种预测访问内容点击率的方法及装置
CN105337987B (zh) 一种网络用户身份认证方法及系统
CN103259805B (zh) 基于用户评价的域名访问控制方法及系统
CN109218124A (zh) Dns隧道传输检测方法和装置
CN104050243B (zh) 一种将搜索与社交相结合的网络搜索方法及其系统
KR20080052097A (ko) 웹 구조정보를 이용한 유해 사이트 차단 방법 및 장치
CN109922065A (zh) 恶意网站快速识别方法
CN105871585A (zh) 终端关联方法及装置
CN111597446B (zh) 基于人工智能的内容推送方法、装置、服务器和存储介质
CN112104642A (zh) 一种异常账号确定方法和相关装置
CN106681989A (zh) 一种预测微博转发概率的方法

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