具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的基于特征库检测钓鱼欺诈网页的方法,如图1所示,该方法包括如下步骤:
步骤S110,在访问页面加载完成后,提取页面的多个内容片段,获取每个内容片段对应的特征ID。
对内容片段的提取在访问页面加载完成后进行。内容片段可以是页面上的文本内容按特定的编码转换后的二进制编码数据。页面加载完成是指页面中全部的显示内容加载完成,包括文字、图片、表单等。
具体的,在对网站的访问过程中,首先需要根据网站的URL获取网页对应的网页文档,一般为HTML(Hyper Text Mark-up Language,超文本标记语言)文档,并由浏览器解析该HTML文档,将运行HTML文档中的JS脚本,下载HTML文档中的规定的资源文件,再进行网页的加载,以显示到显示屏幕上。
在一次网页的访问过程中,BHO(Browser Helper Object,浏览器辅助对象)机制提供了三个事件:BeforeNavigate2,NavigateComplete2和DocumentComplete2事件。
在IE浏览器中,通过响应“BeforeNavigate2”事件可以获取IE当前加载的URL。
而在其他浏览器中,如在火狐(Firefox)浏览器中使用火狐扩展机制提供的指定响应事件接口,获取火狐浏览器当前加载的URL。在谷歌(chrome)浏览器中使用网景插件应用程序编程接口(Netscape Plugin Application Programming Interface,简称:NPAPI)插件机制,获取谷歌浏览器当前加载的URL。
特征ID是由特定算法生成的,与提取出的每个内容片段唯一对应的一组二进制数据。
例如,可以获取浏览器调用meta协议时必须调用的函数,例如可以是CWindow::MetaRefreshTimerCallback函数;或者浏览器运行jscript时必须调用的函数,例如可以为CDoc::DoNavigate函数。
在HTML文档中,规定有网页上的各种资源文件的地址、属性、显示方式的标签,包括有<meta>标签,还可能包括有js脚本。浏览器在解析网页文档的过程中,会依次根据标签调用浏览器或系统函数进行解析。
步骤S120,将多个内容片段对应的特征ID与特征库中的特征ID进行匹配。
特征库是大量的恶意/欺诈/钓鱼页面中的包含恶意信息的内容片段对应的特征ID的集合。如果从访问页面提取的特征ID在特征库中找不到与其匹配的特征ID,就表明页面中不具有常见的恶意/欺诈/钓鱼的内容片段,可以将该页面识别为安全页面,允许用户的访问行为。
步骤S130,若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则根据页面的信息,计算页面的评估分。
如果存在特征ID的匹配,该页面可能是恶意/欺诈/钓鱼页面。在该步骤中通过对页面各项信息的评分进行进一步的判定。
页面信息包括:URL,页面的refer信息,注册时间,注册邮箱,公司名称,HOST、IP及其变动时间、变动频率等。
步骤S140,根据页面的评估分与设定阈值的比较结果,对页面的访问行为进行处理。
页面的评估分高于设定阈值,则拦截页面的访问行为或进行风险提示;否则,允许页面的访问行为。
根据本发明上述实施例提供的方法,根据提取的页面的多个内容片段,获取与每个内容片段对应的特征ID,将多个内容片段对应的特征ID与特征库中的特征ID进行匹配,对页面进行初步的识别,如果存在特征ID的匹配,认为该页面是可能的恶意页面,根据页面的信息,计算页面的评估分;根据页面的评估分与设定阈值的比较结果,对页面的访问行为进行处理。根据该方案,对页面的识别结合了页面中的多个内容片断的特征ID,以及多项页面信息;该方案不依赖于服务器端的黑白名单数据库,而是通过特征库和对页面信息的综合评分实现对恶意/欺诈/钓鱼页面的高效率的识别。通过上述多层次的识别,降低了误判率,提高了识别准确率。
图2示出了根据本发明另一个实施例的基于特征库检测钓鱼欺诈网页的方法,如图2所示,该方法包括如下步骤:
步骤S210,提取页面的多个内容片段,获取每个内容片段对应的特征ID。
对内容片段的提取在访问页面加载完成后进行。内容片段可以是页面上的文本内容按特定的编码转换后的二进制编码数据。页面加载完成首先是指页面中全部的显示内容加载完成,包括文字、图片、表单等。对于动态网页,显示的内容却可能随着时间或数据库操作的结果而发生改变,过早的提取页面内容可能无法包含全部必需的内容片段,从而造成误判。例如,页面代码中可能脚本,脚本运行中可能会替换页面中的部分内容。这时,对内容片段的提取应在所有脚本加载、运行完成之后,以及DOM组件加载完成后进行。
页面可能是具有多个子框架页面的嵌套网页,在内嵌页中显示其他页面的内容。这种情况下,页面事件加载完成还包括所有内嵌页面也加载完成。
在某些情况下,也可以为页面的加载设置一个等待时间,等待时间结束后即认为页面已加载完成,开始提取内容片段。例如,一些恶意网站在页面内容展示完成之后,也一直保持加载状态,造成等待的时间过长,无法及时检测。通过设置等待时间,可以避免这种情况的发生。
内容片段的提取具体是指提取不定长的网页片段,对这些网页片段做穷举,筛选和淘汰,得到最终的内容片段。具体地,可以这样进行:从第一个字节开始,依次遍历后面长度为1,2,3,……直到预设上限字节长度的二进制数据片段;对每个片段进行筛选,如果是无用片段,则丢弃,如果是有用片段,记录该片段;当前字节片段遍历完成后,按照相同的逻辑处理下一字节。
为每个记录的片段生成特征ID,特征ID是二进制数据。内容片段与生成的特征ID唯一对应。具体地,可以利用哈希算法为每个内容片段生成特征ID。
步骤S220,将多个内容片段对应的特征ID与特征库中的特征ID进行匹配,如果提取的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,执行步骤S240,否则执行步骤S230。
特征库由服务器生成,是大量的恶意/欺诈/钓鱼页面中的恶意内容片段对应的特征ID的集合。具体地,服务器通过机器学习算法对大量的网站页面提取内容片段,获取恶意/欺诈/钓鱼页面的样本,统计出经常在恶意/欺诈/钓鱼网站中出现的内容片段。例如,对学习样本进行数据挖掘,得到样本特征,对这些样本特征进行特征选取,计算出特征向量,对特征向量进行机器学习,建立识别模型,利用模拟测试的方法检查模型的精度,根据精度检查的结果将该样本加入正常样本或恶意样本。然后,按照特定的算法,例如,哈希算法,为这些片段生成特征ID,将生成的特征ID加入到特征库中。例如,可以利用贝叶斯统计概率模型和神经网络模型,对样本进行机器学习建立特征库。
服务器对生成的特征库进行维护。该步骤中所说的与特征库中的特征ID进行匹配是在本地完成的,这样更具有效率和灵活性。具体地,服务器根据最新的统计样本定期地对特征库中的特征ID做更新,将更新的特征库同步给客户端。进一步地,服务器可以对特征库进行删除,得到一个精简的特征库,例如,精简的数据库中保留根据一段时间内的统计的样本,将恶意/欺诈/钓鱼页面上最常见的内容片段对应的特征ID,客户端将该精简的特征库下载到本地。服务器端的特征库与本地相比更全面精准。这样,对于常见页面的识别不需要经过服务器端,提高了效率。
步骤S230,允许页面的访问行为。
如果从访问页面的内容片段中提取的特征ID中在本地的特征库中找不到与其匹配的特征ID,就表明页面中不具有常见的恶意/欺诈/钓鱼的内容片段,将该页面识别为安全页面,允许用户的访问行为
步骤S240,根据页面的信息,计算页面的评估分。
具体地,根据以下有关页面的逻辑结果中的一个或多个的组合,计算页面的评估分:页面的URL是否属于本地黑/白名单;页面的URL是否属于高危域名或高危IP;页面的refer信息是否为高危refer信息;根据匹配的至少一个特征ID而判定的页面内容是否为高危页面内容;页面对应的网站服务器是否为高危服务器;页面对应的网站注册邮箱是否属于邮箱黑名单;页面对应的网站注册时间是否短于预设时长。以上的逻辑结果仅为示例,可以将任何,例如,还可以包括网站备案信息、网站漏洞以及恶意关键词等。
为网站设定初始分值。为上述每项逻辑结果设定预设分值,从初始分值开始,依次判定上述逻辑结果是否正常,对正常的逻辑结果,在页面当前分值上减去该逻辑结果的预设分值,作为新的页面分值,对非正常的逻辑结果,加上预设分值。重复上述过程,直到所有逻辑结果检验完成,获得最终评估分。
每项逻辑结果的预设分值可能不同,这可以根据该逻辑结果对页面安全性的影响而确定。例如,对于页面URL是否属于白名单,可以为其设置较高的分值,如40分,即如果该页面URL属于白名单(可信网站、政府机关网站),则在当前分值减去40分;而对IP,refer信息,注册时间等逻辑结果,可将预设分值设定为10分。
对于一些对页面识别结果有决定性的逻辑结果,可以在判定该逻辑结果之后中断上述评估分过程,而直接得出最终评估分。例如,如果页面URL是已经过人工审核的恶意网站,不再进行后续结果的判定,直接将评估分设为100分。
步骤S250,将计算的页面评估分与预设的阈值相比较,如果页面评估分高于预设阈值执行步骤S260,否则执行步骤S230。
将评估分低于预设阈值的页面确认为安全页面,例如,可以将预设阈值设为60分。
步骤S260,将计算的匹配的特征ID上报给服务器端,以供服务器端将匹配的至少一个特征ID进行组合计算得到至少一个模板ID。
对评估分高于预设阈值的页面,进一步根据页面的模板ID做精准的识别,以降低对页面的误判率。
页面的模板ID是对步骤S210中获取的一个或多个特征ID组合计算得到的一组二进制数据。模板ID可以是通过特定的快速哈希算法生成的定长的二进制数据,例如,通过MD5算法生成的64位的二进制串。与特征ID类似地,不同特征ID以相同的顺序组合,按照相同的算法计算得到的模板ID是唯一的并且是不可逆的。
可选地,该步骤中还可以向服务器上传匹配的模板ID对应页面的URL,以供服务器将该页面的URL加入恶意网址库。为保护用户的隐私,可以对URL加密,计算URL的特征值作为密文。可选地,特征值可以为根据MD5(Message Digest Algorithm,消息摘要算法第五版)计算得到的哈希值,或SHAl(Secure Hash Algorithm,安全哈希算法)码,或CRC(CyclicRedundancy Check,循环冗余校验)码等可唯一标识原信息的特征码。需要说明的是,在上传URL的密文到服务器的时候,需要首先屏蔽可能带有用户密码的网址字符串,不上传此类URL,以便保证用户信息的安全。
步骤S270,若至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,确定页面为恶意/欺诈/钓鱼页面,将结果返回至客户端。
模板库的生成方式与特征库类似,服务器端获取恶意/欺诈/钓鱼页面的样本,对样本进行机器学习,建立模板库。机器学习的过程与步骤S220中描述的相同。例如,模板库中的模板ID是按照贝叶斯统计概率模型和神经网络模型对恶意/欺诈/钓鱼页面的恶意内容片段的组合方式进行机器学习,然后根据相应片段在特征库中的特征ID,将特征ID进行组合后通过MD5算法生成得到的。
只通过特征ID无法对页面做出准确的判断,因为用于生成该特征ID的内容片段也可能出现在安全网站中。例如,该内容片段是对应于“中奖”这一关键词的一组编码,“中奖”是恶意网站中一种常见的欺诈手段,但也可能出现在官方的彩票管理网站或合法抽奖活动等安全网站上。因此,只根据这特征ID将该网页识别为恶意网站会导致较高的误判率。而在该步骤中通过匹配多个特征ID组合生成的模板ID能够进行准确的判断。例如,在访问页面中除了“中奖”,还包括奖金数额“XX万元”,“手续费”,“验证码”,“汇款地址”等字样,可以确定该页面属于恶意/欺诈/钓鱼页面。模板ID就是将上述字样对应的内容片段生成的特征ID按一定顺序组合计算产生的一个二进制数据,由于内容片段、特征ID和模板ID之间的唯一对应关系,根据模板ID就可以对页面内容做出判断。
如果至少一个模板ID中具有与钓鱼网页识别库中的模板ID匹配的模板ID,将访问页面确定为恶意/欺诈/钓鱼页面。
可选地,该步骤中还可以包括:确定匹配的模板ID所对应的分类信息,将分类信息返回给客户端。
具体的分类类别名称在本实施例的方法实施之前由人工设定,主要类别包括:中奖页面,虚假银行页面,虚假购物页面等,在每个主要类别下还可以进行更精细的分类,例如中奖页面可以进一步包括“中国好声音”中奖页面,“我要上春晚”中奖诈骗页面等。
具体地,服务器端通过对大量的恶意/欺诈/钓鱼页面类型和页面生成的模板ID进行机器学习,得到分类的规则,预先建立模板ID与分类信息之间的对应关系,接收客户端上报的模板ID后,根据分类规则将该模板ID划分到相应的类别下。机器学习的具体方式可参照步骤S220中的描述进行。
步骤S280,客户端接收返回结果,根据该结果,对页面进行拦截,或给出风险提示,风险提示中还可以包括服务器获取的页面分类信息。
图2所示的方法仅为本发明实施例的一种可选的实施方式。作为另一种实施方式,在步骤S250判断出页面的评估分高于预设的阈值,就可以直接对页面进行拦截。
根据本发明上述实施例提供的方法,判定访问页面加载完成后,从页面中提取多个内容片段,为提取的内容片段生成特征ID,首先将多个内容片段对应的特征ID与特征库中的特征ID进行匹配,如果存在匹配的特征ID,则认为该页面可能是恶意/欺诈/钓鱼页面,进一步结合页面评估分和模板ID对页面做更准确的判断。计算页面评估分,将评估分低于阈值的页面确认为安全页面,允许访问,将评估分高于阈值的页面的特征ID上报至服务器,服务器生成模板ID根据模板ID进行确认根据该方案,通过特征ID、页面评估分以及模板ID对页面进行了多层次的识别,能够极大地降低误判率。对页面的识别可以在客户端完成,或通过客户端与服务器交互,具有灵活性,在网购中能及时地防止钓鱼和欺诈行为,可以检测到虚假票务,虚假中奖,假冒网银,虚假购物。
图3示出了根据本发明另一个实施例的基于特征库检测钓鱼欺诈网页的方法,如图3所示,该方法包括如下步骤:
步骤S310,提取页面的多个内容片段,获取每个内容片段对应的特征ID。
步骤S320,将多个内容片段对应的特征ID与特征库中的特征ID进行匹配,如果提取的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,执行步骤S330,否则执行步骤S390。
步骤S310,S320的实施方式与上一实施例中的步骤S210,S220相同,此处不再赘述。
步骤S330,将匹配的至少一个特征ID进行组合计算得到至少一个模板ID。
步骤S340,将至少一个模板ID与模板库中的模板ID进行匹配,如果至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,执行步骤S370,否则执行步骤S350。
模板ID的计算方式以及服务器如何生成模板库已在上一实施例中描述。区别在于,本实施例中,模板ID的计算和匹配在本地完成。则在本实施例方法执行之前,还包括将服务器中的模板库下发至本地。可选地,服务器可以对特征库进行删除,得到一个精简的模板库,例如,根据一段时间内的统计的样本,将恶意/欺诈/钓鱼页面上最常见的内容片段组合对应的模板ID保留在精简的模板库中。
具体的,可以采用DOM树的技术对网页内容进行检测并设定可信度值。将用户上传的网页内容进行解析,解析出多个特征项,根据设定的规则将多个特征项生成DOM树。
云服务器端的学习装置具有学习的功能,在云服务器端存储有多种检测样本,检测样本包括:虚假信息、医疗广告、钓鱼网站等等的样本,检测样本也都是采用DOM树的形式,每个DOM树的节点包括节点名称、节点值等信息。通过对检测样本进行解析,获取当网页是虚假信息、医疗广告、钓鱼网站等时,DOM树结构上的各个特征项所对应的特征数据。
当对用户上传的网页内容进行检测时,解析由网页内容生成的DOM树,判断DOM树中的特征项所对应的数据,是否与学习装置学习的检测样本的特征项所对应的特征数据相等或相近,如果相等或相近,则被检测的网页被认定与检测样本相同或相近,即用户上传的网页内容为是虚假信息、医疗广告或钓鱼网站等的网页。
例如,对于钓鱼网站网页的判断,学习装置解析对钓鱼网站的检测样本进行解析,获取钓鱼网站网页中的各个特征项所对应的特征数据。云服务器端将用户上传的支付页面生成DOM树,针对支付页面内容DOM树中的n个节点的特征值进行DOM树解析、识别,判断该网页内容是否与已经确定为钓鱼网站的内容相似度,得出该网页的可信度等。选取用户上传的支付页面生成DOM树中的特征,例如,解析出用户上传的支付页面生成DOM树中第3层中的第5个元素带有class名称“alipay”,与钓鱼网站检测样本中的特征数据相同,根据DOM树结构上的特征值的匹配可以判定该网页为钓鱼网站的网页,在网购中能及时地防止钓鱼和欺诈行为,可以检测到虚假票务,虚假中奖,假冒网银,虚假购物。
客户端将该精简的模板库下载到本地。这样,对于常见页面的识别不需要经过服务器端,提高了效率。
步骤S350,根据页面的信息,计算页面的评估分。
步骤S360,将计算得到的页面评估分与预设的阈值比较,如果高于预设阈值执行步骤S380,否则执行步骤S390。
关于页面评估分的具体方式可参见上一实施例中的步骤S240。
步骤S370,将匹配的模板ID上报给服务器端,确定匹配的模板ID对应的分类信息。
关于分类信息的确定,详见步骤S270中的介绍。
该步骤为可选步骤,在步骤S340判断结果为是的情况下,可以直接执行步骤S380,无需查询分类信息。
步骤S380,拦截页面的访问行为或进行风险提示。
该步骤由客户端根据返回结果完成,风险提示中还可以包括步骤S370中获得的分类信息。
步骤S390,允许页面的访问行为。
在不存在匹配的特征ID时,允许访问;或存在匹配的特征ID而不存在匹配的模板ID,且页面评估分不高于预设阈值时,允许访问。
根据本发明上述实施例提供的方法,判定访问页面加载完成后,从页面中提取多个内容片段,为提取的内容片段生成特征ID,首先将多个内容片段对应的特征ID与特征库中的特征ID进行匹配,如果存在匹配的特征ID,则认为该页面可能是恶意/欺诈/钓鱼页面,进一步结合页面评估分和模板ID对页面做更准确的判断;首先在本地计算模板ID并在本地模板库中匹配,如果模板ID匹配,将页面确认为恶意/欺诈/钓鱼页面,否则,计算页面的评估分,将评估分低于阈值的页面确认为安全页面。根据该方案,通过特征ID、页面评估分以及模板ID对页面进行了多层次的识别,能够极大地降低误判率。对页面的识别可以在客户端完成,或通过客户端与服务器交互,具有灵活性,在网购中能及时地防止钓鱼和欺诈行为,可以检测到虚假票务,虚假中奖,假冒网银,虚假购物。
图4示出了根据本发明一个实施例的客户端的结构示意图,如图4所示,该客户端包括:
服务器下发的特征库,用于存储服务器对恶意/欺诈/钓鱼页面的样本进行机器学习而得到的特征ID。
服务器生成特征库,对服务器可以对特征库进行精简和删除,得到一个精简的特征库,下发到本地。
提取模块410,用于在访问页面加载完成后,提取页面的多个内容片段。
提取模块410对内容片段的提取在页面加载完成后进行。提取的内容片段可以是页面上的文本内容按特定的编码转换后的二进制编码数据。这里,页面加载完成首先是指页面中全部的显示内容加载完成,包括文字、图片、表单等。对于动态网页,显示的内容却可能随着时间或数据库操作的结果而发生改变,过早的提取页面内容可能无法包含全部必需的内容片段,从而造成误判。例如,页面代码中可能脚本,脚本运行中可能会替换页面中的部分内容。这时,对内容片段的提取应在所有脚本运行完成之后,以及DOM组件加载完成后进行。
页面可能是具有多个子框架页面的嵌套网页,在内嵌页中显示其他页面的内容。这种情况下,页面加载完成还包括所有内嵌页面也加载完成。
在某些情况下,也可以为页面的加载设置一个等待时间,等待时间结束后即认为页面已加载完成,开始提取内容片段。例如,一些恶意网站在页面内容展示完成之后,也一直保持加载状态,造成等待的时间过长,无法及时检测。通过设置时间,可以避免这种情况的发生。
提取模块410对内容片段的提取是通过提取不定长的网页内容片段实现的,提取模块410对网页的片段做穷举,筛选和淘汰,得到最终的内容片段。具体地,可以这样进行:提取模块410从第一个字节开始,依次遍历后面长度为1,2,3,……直到预设上限字节长度的二进制数据片段;对每个二进制数据片段进行筛选,如果是无用片段,则丢弃,如果是有用片段,记录该二进制数据片段作为内容片段;当前字节片段遍历完成后,提取模块410按照相同的逻辑处理下一字节。
特征ID获取模块420,用于获取每个内容片段对应的特征ID。特征ID获取模块420生成的特征ID是二进制数据,并且生成的特征ID与提取模块410获取的页面元素唯一对应。具体地,特征ID获取模块420可以利用哈希算法为每个页面元素生成特征ID。
第一匹配模块430,用于将特征ID获取模块420获取的特征ID与特征库中的特征ID进行匹配。
评估分获取模块440,用于若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则根据页面的信息,计算页面的评估分。
评估分获取模块440根据以下有关页面的逻辑结果的一个或多个的组合,计算页面的评估分:页面的URL是否属于本地黑/白名单;页面的URL是否属于高危域名或高危IP;页面的refer信息是否为高危refer信息;根据匹配的至少一个特征ID而判定的页面内容是否为高危页面内容;页面对应的网站服务器是否为高危服务器;页面对应的网站注册邮箱是否属于邮箱黑名单;页面对应的网站注册时间是否短于预设时长。
具体地,评估分获取模块440为网站设定初始分值。为上述每项逻辑结果设定预设分值,从初始分值开始,依次判定上述逻辑结果是否正常,对正常的逻辑结果,在页面当前分值上减去该逻辑结果的预设分值,作为新的页面分值,对非正常的逻辑结果,加上预设分值。重复上述过程,直到所有逻辑结果检验完成,获得最终评估分。
评估分获取模块440为每项逻辑结果预设的分值可能不同,这可以根据该逻辑结果对页面安全性的影响而确定。例如,对于页面URL是否属于白名单,可以为其设置较高的分值,如40分,即如果该页面URL属于白名单(可信网站、政府机关网站),则在当前分值上减40分;而对IP,refer信息,注册时间等逻辑结果,可将预设分值设定为10分。
对于一些对页面识别结果有决定性的逻辑结果,评估分获取模块440可以在判定该逻辑结果之后中断上述评估分过程,而直接得出最终评估分。例如,如果页面URL是已经过人工审核的恶意网站,不再进行后续结果的判定,直接将评估分设为100分。
处理模块450,用于根据页面的评估分与设定阈值的比较结果,对页面的访问行为进行处理。
处理模块450包括:比较单元4501,用于将页面的评估分与设定阈值进行比较。处理单元4502,用于若比较单元4501经过比较得到页面的评估分高于设定阈值,则拦截页面的访问行为或进行风险提示;否则,允许页面的访问行为。
处理单元4502还用于:若多个内容片段对应的特征ID中不具有与特征库中的特征ID匹配的至少一个特征ID,则允许页面的访问行为。
客户端还包括:上报接口460,用于若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则将匹配的至少一个特征ID上报给服务器端,以供服务器端将匹配的至少一个特征ID进行组合计算得到至少一个模板ID,将该至少一个模板ID与模板库中的模板ID进行匹配;若至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,根据预先建立的模板ID与分类信息的对应关系,确定匹配的模板ID所对应的分类信息;将分类信息返回给客户端;
接收接口470,用于接收服务器端返回的匹配的模板ID所对应的分类信息.
处理单元4501还用于在进行风险提示的同时展示分类信息。
上报接口460还用于:若比较单元4501确定页面的评估分高于设定阈值,则将页面的URL以及鉴定识别信息加密成密文上报给服务器端,以供服务器端将页面的URL加入恶意网址库。图4中未示出比较单元4501与上报接口460的连接关系。
客户端还包括:服务器下发的模板库,用于存储由特征库中的多个特征ID进行各种组合计算得到的多个模板ID。
模板ID获取模块480,用于若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则将该匹配的至少一个特征ID进行组合计算得到至少一个模板ID。
模板ID获取模块480对第一匹配模块430得出的匹配的特征ID组合计算得到模板ID。模板ID可以是模板ID获取模块480通过特定的快速哈希算法生成的定长的二进制数据,例如,通过MD5算法生成的64位的二进制串。与特征ID类似地,不同特征ID以相同的顺序组合,按照相同的算法计算得到的模板ID是唯一的并且是不可逆的。
第二匹配模块490,用于将至少一个模板ID与模板库中的模板ID进行匹配。
处理模块450还用于若至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则拦截页面的访问行为或进行风险提示。图4中未示出第二匹配模块490与处理模块450中处理单元4502的连接关系。
评估分获取模块440还用于若至少一个模板ID中不具有与模板库中的模板ID匹配的模板ID,则根据页面的信息,计算页面的评估分。
上报接口460还用于若至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则将匹配的模板ID上报给服务器端,以供服务器端根据预先建立的模板ID与分类信息的对应关系,确定匹配的模板ID所对应的分类信息;
上报接口460还用于:若至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则将页面的URL以及鉴定识别信息加密成密文上报给服务器端,以供服务器端将页面的URL加入恶意网址库。
图5示出了根据本发明一个实施例的服务器的结构示意图,如图5所示,该服务器包括:
特征库,用于存储对恶意/欺诈/钓鱼页面的样本进行机器学习而得到的特征ID;
网络接口510,用于将特征库下放给客户端。
服务器还包括:模板库,用于存储由特征库中的多个特征ID进行各种组合计算得到的多个模板ID。
模板库的生成方式与特征库类似,服务器端获取恶意/欺诈/钓鱼页面的样本,对样本进行机器学习,建立模板库。例如,模板库中的模板ID是按照贝叶斯统计概率模型和神经网络模型对恶意/欺诈/钓鱼页面的恶意内容片段的组合方式进行机器学习,然后根据相应片段在特征库中的特征ID,将特征ID进行组合后通过MD5算法生成得到的。
匹配模块520,用于将经由网络接口510接收到的客户端上报的匹配的至少一个特征ID进行组合计算得到至少一个模板ID,将该至少一个模板ID与模板库中的模板ID进行匹配;
分类模块530,用于若至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,根据预先建立的模板ID与分类信息的对应关系,确定匹配的模板ID所对应的分类信息。
分类类别名称由人工预先设定,主要类别包括:中奖页面,虚假银行页面,虚假购物页面等,在每个主要类别下还可以进行更精细的分类,例如中奖页面可以进一步包括“中国好声音”中奖页面,“我要上春晚”中奖诈骗页面等。
具体地,分类模块530通过对大量的恶意/欺诈/钓鱼页面类型和页面生成的模板ID进行机器学习,得到分类的规则,预先建立模板ID与分类信息之间的对应关系,网络接口510接收客户端上报的模板ID后,分类模块530根据分类规则将该模板ID划分到相应的类别下。
网络接口510还用于向客户端返回匹配的模板ID所对应的分类信息。
网络接口510还用于接收客户端上报的由页面的URL以及鉴定识别信息加密得到的密文.
服务器还包括:恶意网址库540,用于存储网络接口510接收的页面的URL。
图6示出了根据本发明一个实施例的钓鱼网页的检测系统的结构示意图,如图6所示,该系统包括客户端400和服务器500,其中有关客户端400的具体结构和功能可参见客户端实施例的描述,有关服务器500的具体结构和功能可参见服务器实施例的描述,在此不再赘述。
根据本发明上述实施例提供的客户端、服务器和基于特征库检测钓鱼欺诈网页的系统,客户端判定访问页面加载完成后,提取模块从页面中提取多个内容片段,特征ID获取模块为提取的内容片段生成特征ID,第一匹配模块将多个内容片段对应的特征ID与特征库中的特征ID进行匹配,如果存在匹配的特征ID,则认为该页面可能是恶意/欺诈/钓鱼页面,进一步通过页面评估分和模板ID对页面做更准确的判断。具体地,可以先通过评估分获取模块计算页面评估分,将评估分低于阈值的页面确认为安全页面,允许访问,将评估分高于阈值的页面的特征ID通过上报接口上报至服务器,服务器通过网络接口接收特征ID后,由匹配模块生成模板ID根据模板ID进行确认;或者,首先在客户端的模板ID获取模块计算中计算得到模板ID并在本地模板库中匹配,如果模板ID匹配,将页面确认为恶意/欺诈/钓鱼页面,否则,执行上述页面评估的过程。根据该方案,通过特征ID、页面评估分以及模板ID对页面进行了多层次的识别,能够极大地降低误判率。对页面的识别可以在客户端完成,或通过客户端与服务器交互,具有灵活性,在网购中能及时地防止钓鱼和欺诈行为,可以检测到虚假票务,虚假中奖,假冒网银,虚假购物。
在此提供的算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与基于在此的示教一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的基于特征库检测钓鱼欺诈网页的系统中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
本发明公开了:
A1、一种基于特征库检测钓鱼欺诈网页的方法,包括:
在访问页面加载完成后,提取页面的多个内容片段,获取每个内容片段对应的特征ID;
将多个内容片段对应的特征ID与特征库中的特征ID进行匹配;
若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则根据所述页面的信息,计算所述页面的评估分;
根据所述页面的评估分与设定阈值的比较结果,对所述页面的访问行为进行处理。
A2、根据A1所述的方法,所述特征库是预先从服务器端下载的;所述服务器端获取恶意/欺诈/钓鱼页面的样本,对所述样本进行机器学习建立所述特征库;所述服务器端定期更新所述特征库并同步给客户端。
A3、根据A2所述的方法,所述对样本进行机器学习建立所述特征库具体为:利用贝叶斯统计概率模型和神经网络模型,对样本进行机器学习建立所述特征库。
A4、根据A1-A3任一项所述的方法,所述根据所述页面的评估分与设定阈值的比较结果,对所述页面的访问行为进行处理进一步包括:
将所述页面的评估分与所述设定阈值进行比较,若所述页面的评估分高于设定阈值,则拦截所述页面的访问行为或进行风险提示;否则,允许所述页面的访问行为。
A5、根据A1-A3任一项所述的方法,还包括:若多个内容片段对应的特征ID中不具有与特征库中的特征ID匹配的至少一个特征ID,则允许所述页面的访问行为。
A6、根据A1-A4任一项所述的方法,所述根据所述页面的信息,计算所述页面的评估分具体为:根据以下有关所述页面的逻辑结果中的一个或多个的组合,计算所述页面的评估分:
所述页面的URL是否属于本地黑/白名单;
所述页面的URL是否属于高危域名或高危IP;
所述页面的refer信息是否为高危refer信息;
根据所述匹配的至少一个特征ID而判定的所述页面内容是否为高危页面内容;
所述页面对应的网站服务器是否为高危服务器;
所述页面对应的网站注册邮箱是否属于邮箱黑名单;
所述页面对应的网站注册时间是否短于预设时长。
A7、根据A4所述的方法,所述服务器端还包含模板库,所述模板库中包含由所述特征库中的多个特征ID进行各种组合计算得到的多个模板ID;
所述方法还包括:若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则将所述匹配的至少一个特征ID上报给服务器端,以供所述服务器端将所述匹配的至少一个特征ID进行组合计算得到至少一个模板ID,将该至少一个模板ID与所述模板库中的模板ID进行匹配;若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,根据预先建立的模板ID与分类信息的对应关系,确定所述匹配的模板ID所对应的分类信息;将所述分类信息返回给客户端;
接收所述服务器端返回的所述匹配的模板ID所对应的分类信息,在进行风险提示的同时展示所述分类信息。
A8、根据A4所述的方法,还包括:
若所述页面的评估分高于设定阈值,则将所述页面的URL以及鉴定识别信息加密成密文上报给服务器端,以供服务器端将所述页面的URL加入恶意网址库。
A9、根据A1-A8任一项所述的方法,所述提取页面的多个内容片段进一步包括:
从所述页面的第一个字节开始,依次遍历多个预定长度的二进制数据片段;
对每个二进制数据片段进行筛选,若为无用片段,则丢弃;若为有用片段,则记录该二进制数据片段作为所述内容片段。
A10、根据A1所述的方法,还包括:
若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则将该匹配的至少一个特征ID进行组合计算得到至少一个模板ID,将所述至少一个模板ID与模板库中的模板ID进行匹配;
若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则拦截所述页面的访问行为或进行风险提示;
若所述至少一个模板ID中不具有与模板库中的模板ID匹配的模板ID,则执行根据所述页面的信息,计算所述页面的评估分的步骤。
A11、根据A10所述的方法,还包括:
若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则将匹配的模板ID上报给服务器端,以供所述服务器端根据预先建立的模板ID与分类信息的对应关系,确定所述匹配的模板ID所对应的分类信息;
接收所述服务器端返回的所述匹配的模板ID所对应的分类信息,在进行风险提示的同时展示所述分类信息。
A12、根据A10所述的方法,还包括:
若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则将所述页面的URL以及鉴定识别信息加密成密文上报给服务器端,以供服务器端将所述页面的URL加入恶意网址库。
B13、一种客户端,包括:
服务器下发的特征库,用于存储服务器对恶意/欺诈/钓鱼页面的样本进行机器学习而得到的特征ID;
提取模块,用于在访问页面加载完成后,提取页面的多个内容片段;
特征ID获取模块,用于获取每个内容片段对应的特征ID;
第一匹配模块,用于将多个内容片段对应的特征ID与特征库中的特征ID进行匹配;
评估分获取模块,用于若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则根据所述页面的信息,计算所述页面的评估分;
处理模块,用于根据所述页面的评估分与设定阈值的比较结果,对所述页面的访问行为进行处理。
B14、根据B13所述的客户端,所述处理模块包括:
比较单元,用于将所述页面的评估分与所述设定阈值进行比较;
处理单元,用于若所述比较单元经过比较得到所述页面的评估分高于设定阈值,则拦截所述页面的访问行为或进行风险提示;否则,允许所述页面的访问行为。
B15、根据B14所述的客户端,所述处理单元还用于:若多个内容片段对应的特征ID中不具有与特征库中的特征ID匹配的至少一个特征ID,则允许所述页面的访问行为。
B16、根据B13或B14所述的客户端,所述评估分获取模块根据以下有关所述页面的逻辑结果的一个或多个的组合,计算所述页面的评估分:
所述页面的URL是否属于本地黑/白名单;
所述页面的URL是否属于高危域名或高危IP;
所述页面的refer信息是否为高危refer信息;
根据所述匹配的至少一个特征ID而判定的所述页面内容是否为高危页面内容;
所述页面对应的网站服务器是否为高危服务器;
所述页面对应的网站注册邮箱是否属于邮箱黑名单;
所述页面对应的网站注册时间是否短于预设时长。
B17、根据B14所述的客户端,还包括:
上报接口,用于若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则将所述匹配的至少一个特征ID上报给服务器端,以供所述服务器端将所述匹配的至少一个特征ID进行组合计算得到至少一个模板ID,将该至少一个模板ID与所述模板库中的模板ID进行匹配;若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,根据预先建立的模板ID与分类信息的对应关系,确定所述匹配的模板ID所对应的分类信息;将所述分类信息返回给客户端;
接收接口,用于接收所述服务器端返回的所述匹配的模板ID所对应的分类信息;
所述处理单元还用于在进行风险提示的同时展示所述分类信息。
B18、根据B17所述的客户端,所述上报接口还用于:若所述页面的评估分高于设定阈值,则将所述页面的URL以及鉴定识别信息加密成密文上报给服务器端,以供服务器端将所述页面的URL加入恶意网址库。
B19、根据B13-B18任一项所述的客户端,所述提取模块进一步用于:从所述页面的第一个字节开始,依次遍历多个预定长度的二进制数据片段;对每个二进制数据片段进行筛选,若为无用片段,则丢弃;若为有用片段,则记录该二进制数据片段作为所述内容片段。
B20、根据B13所述客户端,还包括:
服务器下发的模板库,用于存储由特征库中的多个特征ID进行各种组合计算得到的多个模板ID;
模板ID获取模块,用于若多个内容片段对应的特征ID中具有与特征库中的特征ID匹配的至少一个特征ID,则将该匹配的至少一个特征ID进行组合计算得到至少一个模板ID;
第二匹配模块,用于将所述至少一个模板ID与模板库中的模板ID进行匹配;
所述处理模块还用于若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则拦截所述页面的访问行为或进行风险提示;
所述评估分获取模块具体用于若所述至少一个模板ID中不具有与模板库中的模板ID匹配的模板ID,则根据所述页面的信息,计算所述页面的评估分。
B21、根据B20所述的客户端,还包括:
上报接口,用于若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则将匹配的模板ID上报给服务器端,以供所述服务器端根据预先建立的模板ID与分类信息的对应关系,确定所述匹配的模板ID所对应的分类信息;
接收接口,用于接收所述服务器端返回的所述匹配的模板ID所对应的分类信息;
所述处理模块还用于在进行风险提示的同时展示所述分类信息。
B22、根据B21所述的客户端,所述上报接口还用于:若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,则将所述页面的URL以及鉴定识别信息加密成密文上报给服务器端,以供服务器端将所述页面的URL加入恶意网址库。
C23、一种服务器,包括:
特征库,用于存储对恶意/欺诈/钓鱼页面的样本进行机器学习而得到的特征ID;
网络接口,用于将所述特征库下放给客户端。
C24、根据C23所述的服务器,还包括:
模板库,用于存储由所述特征库中的多个特征ID进行各种组合计算得到的多个模板ID;
匹配模块,用于将经由所述网络接口接收到的客户端上报的匹配的至少一个特征ID进行组合计算得到至少一个模板ID,将该至少一个模板ID与所述模板库中的模板ID进行匹配;
分类模块,用于若所述至少一个模板ID中具有与模板库中的模板ID匹配的模板ID,根据预先建立的模板ID与分类信息的对应关系,确定所述匹配的模板ID所对应的分类信息;
所述网络接口还用于向客户端返回所述匹配的模板ID所对应的分类信息。
C25、根据C23所述的服务器,所述网络接口还用于接收客户端上报的由所述页面的URL以及鉴定识别信息加密得到的密文;
所述服务器还包括:恶意网址库,用于存储所述页面的URL。
D26、一种基于特征库检测钓鱼欺诈网页的系统,包括:B13-B22任一项所述的客户端和C23-C25任一项所述的服务器。