发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的网址访问方法和相应的网址访问***。
根据本发明的一个方面,提供了一种网址访问方法,包括:
客户端获取请求访问的网址对应的网址信息;
所述客户端根据所述网址信息,提取网址密文;
所述客户端将所述网址密文提交给服务器;
所述服务器将网址密文与数据库中存储的密文进行匹配;
若网址密文与数据库中标记为恶意网址的密文匹配,则向所述客户端返回恶意网址查询结果;所述客户端根据所述恶意网址查询结果,阻断对所述网址的访问行为;
若网址密文不与数据库中标记为恶意网址的密文匹配,则向所述客户端返回正常网址查询结果;所述客户端根据所述正常网址查询结果,继续进行对所述网址的访问行为。
可选地,所述网址信息具体为至少一个第一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的特征值与数据库中标记为恶意网址的密文进行匹配;若所述至少一个第一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。
可选地,所述监控模块包括:
第三监控单元,用于监控所述客户端的浏览器内部与下载有关的函数;当所述浏览器发生下载行为时,获取所述下载文件的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的第一域名段的特征值与数据库中标记为恶意网址的密文进行匹配;若所述至少一个第一URL中任一第一URL的第一域名段的特征值与数据库中标记为恶意网址的密文匹配,则向所述客户端返回恶意网址查询结果;若所述至少一个第一URL中任一第一URL的第一域名段的特征值不与数据库中标记为恶意网址的密文匹配,则向所述客户端返回正常网址查询结果。
可选地,所述服务器还包括:构建模块,用于构建所述数据库;
所述构建模块包括:
第一获取单元,用于获取已知为恶意网址且第一域名段相同的至少一个第二URL;
第二获取单元,用于获取所述至少一个第二URL中包含子域名级数最高的第三URL,从右至左逐级追溯第三URL所包含的子域名,提取至少一级子域名;
第一标记单元,用于若所述第二URL的第一域名段属于预设的可信名单,将所述每个第二URL的特征值和每个第二URL的主机名的特征值标记为恶意网址的密文,存储在数据库中;
第二标记单元,用于若所述第二URL的第一域名段属于预设的不可信名单,获取至少一个第二URL中包含子域名级数最低的第四URL,将所述每个第二URL的特征值、每个第二URL的主机名的特征值以及除了各个第二URL的主机名以外的追溯提取的至少一级子域名中级数高于第四URL的子域名的特征值标记为恶意网址的密文,存储在数据库中。
根据本实施例提供的网址访问方法及***,当客户端请求访问网址时,从网址信息中提取网址密文,将网址密文提交给服务器,服务器将网址密文与数据库中存储的密文匹配,完成网址的安全查询和验证,客户端根据服务器的验证结果决定是否继续对网址的访问行为。该方法不依赖客户端本地的数据库,将网址的安全查询和验证放在服务器侧完成。由于服务器侧的数据库可以及时的更新互联网上的各类恶意网址,它的升级周期远远短于客户端本地的数据库,而且服务器侧的数据库中恶意网址的信息存储量很大,覆盖面很广,从而能够快速有效地拦截恶意网站。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的网址访问方法的流程图。本实施例中,以客户端访问的网址为统一资源定位符(Universal Resource Locator,以下简称:URL)为例进行介绍。如图1所示,该方法包括如下步骤:
步骤101、客户端获取请求访问的网址对应的网址信息。
监控客户端各种类型的浏览器的网页访问行为,所请求访问的网址信息称为第一URL。该第一URL可以包括如下几种:
i.请求访问的网址对应的网页的URL;
例如,客户端请求访问“新浪”主页,该网页的URL即为:http://www.sina.com.cn/。
ii.请求访问的网址对应的网页内容中链接的URL;
在客户端请求访问的网页的内容中有可能存在一些链接网址,这些链接网址的URL也属于监控的范围。
iii.下载文件的URL。
客户端请求下载文件,该下载文件的URL也属于监控的范围。
客户端的某一网页访问行为可能涉及到以上三种URL中的一种或多种,即第一URL包括以上三种URL中的任一种或任意几种的组合。
步骤102、客户端根据网址信息,提取网址密文。
客户端根据第一URL所包含的信息,提取第一URL对应的网址密文。
步骤103、客户端将网址密文提交给服务器。
步骤104、服务器将网址密文与数据库中存储的密文进行匹配,数据库中存储的密文包括被标记为恶意网址的密文;若网址密文与数据库中标记为恶意网址的密文匹配,执行步骤105;否则,执行步骤107。
本实施例在服务器侧预先构建了数据库,该数据库中至少存储了被标记为恶意网址的密文。这些密文都是根据大量已知为恶意网址的URL而获得的。
步骤105、服务器向客户端返回恶意网址查询结果,执行步骤106。
客户端提交的网址密文与数据库中标记为恶意网址的密文匹配表明客户端要访问的第一URL为恶意网址,在此种情况下,服务器向客户端返回恶意网址查询结果。
步骤106、客户端根据恶意网址查询结果,阻断对网址的访问行为,结束。
步骤107、服务器向客户端返回正常网址查询结果,执行步骤108。
客户端提交的网址密文与数据库中标记为恶意网址的密文不匹配表明客户端要访问的第一URL为正常网址,在此种情况下,服务器向客户端返回正常网址查询结果。
步骤108、客户端根据正常网址查询结果,继续进行对网址的访问行为,结束。
根据本实施例提供的网址访问方法,当客户端请求访问网址时,从网址信息中提取网址密文,将网址密文提交给服务器,服务器将网址密文与数据库中存储的密文匹配,完成网址的安全查询和验证,客户端根据服务器的验证结果决定是否继续对网址的访问行为。该方法不依赖客户端本地的数据库,将网址的安全查询和验证放在服务器侧完成。由于服务器侧的数据库可以及时的更新互联网上的各类恶意网址,它的升级周期远远短于客户端本地的数据库,而且服务器侧的数据库中恶意网址的信息存储量很大,覆盖面很广,从而能够快速有效地拦截恶意网站。
图2示出了根据本发明一个实施例的网址访问方法的流程图。本实施例提供了一种基于云安全的网址访问方法,不依赖客户端本地的网址数据库,将网址的安全查询和验证放在服务器侧完成。如图2所示,该方法包括如下步骤:
步骤201、客户端获取请求访问的至少一个第一URL。
本实施例的至少一个第一URL可以包括上述实施例所述的三种URL中的任一种或任意几种的组合。
上述三种URL的获取方法分别描述如下:
通过指定响应事件接口,例如通过实现标准插件机制的指定响应事件接口,获取客户端请求访问的网址对应的网页的URL。例如,在IE(InternetExplorer)浏览器中使用浏览器辅助对象(Browser Helper Object,简称:BHO)插件机制,通过响应“BeforeNavigate2”事件可以获取IE当前加载的URL。在火狐(Firefox)浏览器中使用火狐扩展机制提供的指定响应事件接口,获取火狐浏览器当前加载的URL。在谷歌(chrome)浏览器中使用网景插件应用程序编程接口(Netscape Plugin Application Programming Interface,简称:NPAPI)插件机制,获取谷歌浏览器当前加载的URL。
从浏览器环境中获得浏览器访问的网页内容中的链接URL,包括但不限于页面内的超级链接地址。具体方法是,获得浏览器内部的页面对象,再通过调用页面对象的方法,获取网页内容中的链接URL。其中,可以通过浏览器提供的标准插件机制获得浏览器内部的页面对象。
从浏览器环境中获得浏览器正在下载文件的URL。具体方法是,监控浏览器内部与下载有关的函数,当发现浏览器发生下载行为时,能够分析获得下载文件的URL。其中,可以使用钩子(HOOK)机制监控浏览器内部与下载有关的函数。
步骤202、客户端对至少一个第一URL进行规范化处理。
该规范化处理过程可以包括:将第一URL中的字母大小写进行统一,包括协议、主机名、路径名、文件名和参数等信息;去除第一URL中重复多余的路径符和参数。
例如,第一URL为:HTTp://www.A.com//aBc/abc.Php?A=1。
将其中的大小写字母统一为小写:http://www.a.com//abc/abc.php?a=1;
去除其中重复多余的路径符:http://www.a.com/abc/abc.php?a=1。
步骤203、客户端根据第一URL,提取网址密文。
对于第一URL来说,第一URL本身(url)、第一URL的主机名(host)和第一URL的第一域名段(domain)是三段关键信息。在得到第一URL之后,获取第一URL的主机名和第一URL的第一域名段。其中,第一URL的主机名是去除掉第一URL中的路径符、协议头和端口号等信息之后的主机部分;第一URL的第一域名段是根据第一URL的主机名从右至左逐级追溯得到的。优选地,在获取第一URL的第一域名段时,从右至左最高追溯7级。
若第一URL的主机名从右至左的第一级根域名为国际顶级域名,则第一URL的第一域名段为第一URL的主机名的第一级子域名。其中国际顶级域名是指“com”、“net”、“org”、“edu”、“gov”等常见顶级域名。例如,第一URL的主机名为www.a.com,它从右至左的第一级根域名为“com”,那么提取它的第一级子域名“a.com”为第一URL的第一域名段。
若第一URL的主机名从右至左的第一级根域名为国家地区顶级域名,第一级子域名包括国际顶级域名,则第一URL的第一域名段为第一URL的主机名的第二级子域名。其中国家地区顶级域名是指“cn”、“hk”等特殊顶级域名。例如,第一URL的主机名为www.a.com.cn,它从右至左的第一级根域名为“cn”,第一级子域名为“com.cn”,那么提取它的第二级子域名“a.com.cn”为第一URL的第一域名段。
若第一URL的主机名使用了动态域名,则第一URL的第一域名段为第一URL的主机名从动态域名开始,向右提取的下一级子域名。其中动态域名是指一些二级或三级动态域名,如“3322.org”、“s.3322.org”、“s.3322.net”等动态域名。例如,第一URL的主机名为www.a.3322.org,它使用了动态域名“3322.org”,那么从动态域名开始,向右提取下一级子域名“a.3322.org”为第一URL的第一域名段。
本实施例分别计算上述三段关键信息的特征值作为网址密文。所述特征值可以具体为哈希值,优选地,所述特征值可以为根据消息摘要算法第五版(Message Digest Algorithm,以下简称:md5)计算得到的哈希值,或SHA1码,或CRC (Cyclic Redundancy Check,循环冗余校验)码等可唯一标识原程序的特征码。在下面的例子中,以特征值为32位md5哈希值为例进行说明。
例如,第一URL为:http://www.a.com/abc/abc.php?a=1;根据上述方法,获取第一URL的主机名为:www.a.com;获取第一URL的第一域名段为:a.com。
计算第一URL本身的32位md5哈希值为:
md5(http://www.a.com/abc/abc.php?a=1,32)=e2a6b69ff15c6a8e276f089250ab3f7d
计算第一URL的主机名的32位md5哈希值为:
md5(www.a.com,32)=30f4a7bbefe70d75616707c80921a7e8
计算第一URL的第一域名段的32位md5哈希值为:
md5(a.com,32)=b3655bd7aad56513fcdacbd4254ed6b7
对于具有一个第一URL的情况,上述计算得到的第一URL的32位md5哈希值、第一URL的主机名的32位md5哈希值和第一URL的第一域名段的32位md5哈希值即为第一URL的网址密文。对于多个第一URL的情况,分别计算每个第一URL的上述三段关键信息的32位md5哈希值,将每个第一URL的上述三段关键信息的32位md5哈希值形成一组,从而得到包括但不限于一组32位md5哈希值的网址密文。
在上述第一URL为:http://www.a.com/abc/abc.php?a=1的例子中,得到的第一URL的一组网址密文如下:
domain|host|url
a.com|www.a.com|http://www.a.com/abc/abc.php?a=1
b3655bd7aad56513fcdacbd4254ed6b7|30f4a7bbefe70d75616707c80921a7e8|e2a6b69ff15c6a8e276f089250ab3f7d
步骤204、客户端将网址密文提交给服务器。
步骤205、服务器将网址密文与数据库中存储的密文进行匹配,数据库中存储的密文至少包括被标记为恶意网址的密文;若网址密文与数据库中标记为恶意网址的密文匹配,执行步骤206;否则,执行步骤208。
本实施例在服务器侧预先构建了网址数据库,该网址数据库中至少存储了被标记为恶意网址的密文。具体地,网址数据库中的数据键值按照网址url、网址host和网址domain三种关键信息的特征值进行存储,三种关键信息的键值可以分别按照正常网址和恶意网址进行标记。具体地,标记为恶意网址的密文包括以下信息的一种或多种:恶意URL的特征值、恶意URL的主机名的特征值和恶意URL的子域名的特征值。
网址数据库中的密文都是根据大量已知为恶意网址的URL而获得的。
本实施例中,构建网址数据库可以包括以下步骤:
(a)获取已知为恶意网址且第一域名段相同的至少一个第二URL。
在获取到大量已知为恶意网址的URL之后,按照客户端提取主机名和第一域名段的方法,获取这些恶意网址的URL的主机名和第一域名段。在这些恶意网址的URL中,经常会出现第一域名段相同的URL。例如,对于以下恶意网址的URL:
http://a.b.c.d.e.f.g.com/abc/abc1.php?a=1
http://b.c.d.e.f.g.com/abc/abc.php?a=1
http://d.e.f.g.com/abc/abc.php?a=1
其第一域名段均为g.com。在这里,以上三个URL被称为第二URL。
(b)获取至少一个第二URL中包含子域名级数最高的第三URL,从右至左逐级追溯第三URL所包含的子域名,提取至少一级子域名;
在上述例子中,三个第二URL中包含子域名级数最高的第三URL是:http://a.b.c.d.e.f.g.com/abc/abc1.php?a=1,它共包含7级子域名。从右至左逐级追溯第三URL所包含的子域名,提取到如下7级子域名:
第一级子域名:g.com
第二级子域名:f.g.com
第三级子域名:e.f.g.com
第四级子域名:d.e.f.g.com
第五级子域名:c.d.ef.g.com
第六级子域名:b.c.d.e.f.g.com
第七级子域名:a.b.c.d.e.f.g.com
优选地,本步骤追溯提取的至少一级子域名的级数为设定阈值N。由于一个域名中的多个子域名中既有恶意网址也有正常网址,一般6级以下都会出现这种情况,所以优选地,N大于或等于6。
(c)若第二URL的第一域名段属于预设的可信名单,例如,白名单,则将每个第二URL的特征值、每个第二URL的主机名的特征值标记为恶意网址的密文,存储在数据库中。
对于一些访问量较大的正常网站,例如:sina.com.cn,sohu.com等网站,可将它们写入预设的可信名单。如果第二URL的第一域名段属于这样的可信名单,那么将每个第二URL的特征值和每个第二URL的主机名的特征值标记为恶意网址的密文,存储在数据库中。
在上述例子中,如果g.com属于预设的可信名单,那么被标记为恶意网址的密文包括以下信息的特征值:
各个第二URL:
http://a.b.c.d.e.f.g.com/abc/abc1.php?a=1
http://b.c.d.e.f.g.com/abc/abc.php?a=1
http://d.e.f.g.com/abc/abc.php?a=1
各个第二URL的主机名:
a.b.c.d.e.f.g.com
b.c.d.e.f.g.com
d.e.f.g.com
将上述信息的特征值存储在云端网址数据库中,且被标记为恶意网址的密文。然而,未出现恶意网址的其他子域名的特征值,可以被标记为正常网址也存储在云端网址数据库中,包括:
g.com
f.g.com
e.f.g.com
c.d.e.f.g.com
(d)若第二URL的第一域名段属于预设的不可信名单,例如,黑名单,则获取至少一个第二URL中包含子域名级数最低的第四URL,将每个第二URL的特征值、每个第二URL的主机名的特征值以及除了各个第二URL的主机名以外的追溯提取的至少一级子域名中级数高于第四URL的子域名的特征值标记为恶意网址的密文,存储在数据库中。
对于一些访问量很小的网站,可以将它们写入不可信名单。如果第二URL的第一域名段属于这样的不可信名单,那么获取至少一个第二URL中包含子域名级数最低的第四URL,将每个第二URL的特征值、每个第二URL的主机名的特征值以及除了各个第二URL的主机名以外的追溯提取的至少一级子域名中级数高于第四URL的子域名的特征值标记为恶意网址的密文,存储在数据库中。
在上述例子中,如果g.com属于预设的不可信名单,获取其中包含子域名级数最低的第四URL为:http://www.d.e.f.g.com/abc/abc.php?a=1,它共包含4级子域名,那么被标记为恶意网址的密文包括以下信息的特征值:
各个第二URL:
http://a.b.c.d.e.f.g.com/abc/abc1.php?a=1
http://b.c.d.e.f.g.com/abc/abc.php?a=1
http://d.e.f.g.com/abc/abc.php?a=1
各个第二URL的主机名:
a.b.c.d.e.f.g.com
b.c.d.e.f.g.com
d.e.f.g.com
所述追溯提取的至少一级子域名中级数高于第四URL的子域名包括:a.b.c.d.e.f.g.com,b.c.d.e.f.g.com,c.d.e.f.g.com,其中a.b.c.d.e.f.g.com和b.c.d.e.f.g.com是第二URL的主机名,那么除了各个第二URL的主机名以外的追溯提取的至少一级子域名中级数高于第四URL的子域名就是:
c.d.e.f.g.com
将上述信息的特征值存储在云端网址数据库中,且被标记为恶意网址的密文。然而,未出现恶意网址的其他子域名的特征值,可以被标记为正常网址也存储在云端网址数据库中,包括:
g.com
f.g.com
e.f.g.com
本步骤所提到的特征值应该是与客户端所提交的特征值是相同类型的。该特征值可以具体为哈希值,优选地,该特征值可以为根据md5算法计算得到的哈希值。
服务器将客户端提交的网址密文与云端网址数据库中标记为恶意网址的密文匹配,具体匹配过程如下:
若至少一个第一URL中任一第一URL的特征值、至少一个第一URL中任一第一URL的主机名的特征值和至少一个第一URL中任一第一URL的第一域名段的特征值中的任一个与云端网址数据库中标记为恶意网址的密文匹配,则执行步骤206;否则,执行步骤208。
图3示出了本发明实施例中网址密文匹配过程的流程图。图3所示的匹配过程是本发明实施例一种优选的实施方式,但本发明不仅限于此。如图3所示,服务器将客户端提交的网址密文与数据库中存储的密文进行匹配的过程还可以包括如下步骤:
步骤301、将至少一个第一URL中任一第一URL的特征值与数据库中标记为恶意网址的密文进行匹配;若匹配,执行步骤206;否则,执行步骤302;
步骤302、将至少一个第一URL中任一第一URL的主机名的特征值与数据库中标记为恶意网址的密文进行匹配;若匹配,执行步骤206;否则,执行步骤303;
步骤303、将至少一个第一URL中任一第一URL的第一域名段的特征值与数据库中标记为恶意网址的密文进行匹配;若匹配,执行步骤206;否则,执行步骤208。
综上所述,上述匹配过程包括如下三种情况:
(1)至少一个第一URL的三段关键信息的特征值中的任一特征值与云端网址数据库中标记为恶意网址的密文匹配,执行步骤206;
(2)至少一个第一URL的三段关键信息的特征值都不与云端网址数据库中标记为恶意网址的密文匹配,执行步骤208;
(3)至少一个第一URL的三段关键信息的其中一特征值与云端网址数据库中标记为正常网址的密文匹配,且其他特征值都不与云端网址数据库中标记为恶意网址的密文匹配,执行步骤208。
步骤206、服务器向客户端返回恶意网址查询结果,执行步骤207。
客户端提交的网址密文与数据库中标记为恶意网址的密文匹配表明客户端要访问的第一URL为恶意网址,在此种情况下,服务器向客户端返回恶意网址查询结果。
步骤207、客户端根据恶意网址查询结果,阻断对网址的访问行为,结束。
客户端根据恶意网址查询结果,阻断对网址的访问行为,并提示用户。
步骤208、服务器向客户端返回正常网址查询结果,执行步骤209。
客户端提交的网址密文与数据库中标记为恶意网址的密文不匹配表明客户端要访问的第一URL为正常网址,在此种情况下,服务器向客户端返回正常网址查询结果。
步骤209、客户端根据正常网址查询结果,继续进行对网址的访问行为,结束。
根据本实施例提供的网址访问方法,当客户端请求访问网址时,从网址信息中提取网址密文,将网址密文提交给服务器,服务器将网址密文与数据库中存储的密文匹配,完成网址的安全查询和验证,客户端根据服务器的验证结果决定是否继续对网址的访问行为。该方法不依赖客户端本地的数据库,将网址的安全查询和验证放在服务器侧完成。由于服务器侧的数据库可以及时的更新互联网上的各类恶意网址,它的升级周期远远短于客户端本地的数据库,而且服务器侧的数据库中恶意网址的信息存储量很大,覆盖面很广,从而能够快速有效地拦截恶意网站。
图4示出了根据本发明一个实施例的网址访问***的结构示意图。如图4所示,该网址访问***包括:客户端1和服务器2。
客户端1包括:监控模块10、提取模块11、通信模块12、保护模块13和访问模块14。其中,监控模块10用于获取请求访问的网址对应的网址信息;提取模块11用于根据网址信息,提取网址密文;通信模块12用于将网址密文提交给服务器2;保护模块13用于根据服务器2返回的恶意网址查询结果,阻断对网址的访问行为;访问模块14用于根据服务器2返回的正常网址查询结果,继续进行对网址的访问行为。
服务器2包括:数据库20和查询模块21。其中,数据库20用于存储密文;查询模块21用于将网址密文与数据库20中存储的密文进行匹配;若网址密文与数据库20中标记为恶意网址的密文匹配,则向客户端1返回恶意网址查询结果;若网址密文不与数据库20中标记为恶意网址的密文匹配,则向客户端1返回正常网址查询结果。
进一步的,监控模块10具体用于获取请求访问的网址对应的至少一个第一URL,所述至少一个第一URL包括:请求访问的网址对应的网页的URL或请求访问的网址对应的网页内容中链接的URL或下载文件的URL或以上信息的任一组合。所述数据库中标记为恶意网址的密文包括以下信息的一种或多种:恶意URL的特征值、恶意URL的主机名的特征值和恶意URL的子域名的特征值。
监控模块10可以包括:第一监控单元10a,用于通过指定响应事件接口,获取客户端1请求访问的网址对应的网页的URL。
监控模块10也可以包括:第二监控单元10b,用于获得客户端1的浏览器内部的页面对象;通过调用页面对象的方法,获取客户端1请求访问的网址对应的网页内容中链接的URL。
监控模块10还可以包括:第三监控单元10c,用于监控客户端1的浏览器内部与下载有关的函数;当浏览器发生下载行为时,获取下载文件的URL。
客户端1还可以包括:处理模块15,用于对至少一个第一URL进行规范化处理。进一步的,处理模块15可以包括:统一单元15a和去除单元15b,统一单元15a用于将第一URL中的字母大小写进行统一;去除单元15b用于去除第一URL中重复多余的路径符和参数。
提取模块11可以包括:获取单元11a和计算单元11b。其中,获取单元11a用于获取第一URL的主机名和第一URL的第一域名段;计算单元11b,用于分别计算第一URL的特征值、第一URL的主机名的特征值和第一URL的第一域名段的特征值;所述第一URL的特征值、所述第一URL的主机名的特征值和所述第一URL的第一域名段的特征值即为所述网址密文。
若第一URL的主机名从右至左的第一级根域名为国际顶级域名,则获取单元11a具体用于获取第一URL的主机名的第一级子域名为第一URL的第一域名段;
若第一URL的主机名从右至左的第一级根域名为国家地区顶级域名,第一级子域名包括国际顶级域名,则获取单元11a具体用于获取第一URL的主机名的第二级子域名为第一URL的第一域名段;
若第一URL使用了动态域名,则获取单元11a具体用于获取从动态域名开始,向右提取的下一级子域名为第一URL的第一域名段。
查询模块21具体用于将网址密文与数据库20中存储的密文进行匹配;若至少一个第一URL中任一第一URL的特征值、至少一个第一URL中任一第一URL的主机名的特征值和至少一个第一URL中任一第一URL的第一域名段的特征值中的任一个与数据库20中标记为恶意网址的密文匹配,则向客户端1返回恶意网址查询结果。
作为一种优选的实施方式,该查询模块21可以具体用于:
将所述至少一个第一URL中任一第一URL的特征值与数据库中标记为恶意网址的密文进行匹配;若所述至少一个第一URL中任一第一URL的特征值与数据库中标记为恶意网址的密文匹配,则向所述客户端返回恶意网址查询结果;
若所述至少一个第一URL中任一第一URL的特征值不与数据库中标记为恶意网址的密文匹配,则将所述至少一个第一URL中任一第一URL的主机名的特征值与数据库中标记为恶意网址的密文进行匹配;若所述至少一个第一URL中任一第一URL的主机名的特征值与数据库中标记为恶意网址的密文匹配,则向所述客户端返回恶意网址查询结果;
若所述至少一个第一URL中任一第一URL的主机名的特征值不与数据库中标记为恶意网址的密文匹配,则将所述至少一个第一URL中任一第一URL的第一域名段的特征值与数据库中标记为恶意网址的密文进行匹配;若所述至少一个第一URL中任一第一URL的第一域名段的特征值与数据库中标记为恶意网址的密文匹配,则向所述客户端返回恶意网址查询结果;若所述至少一个第一URL中任一第一URL的第一域名段的特征值不与数据库中标记为恶意网址的密文匹配,则向所述客户端返回正常网址查询结果。
服务器2还包括构建模块22,该构建模块22可以包括:第一获取单元22a、第二获取单元22b、第一标记单元22c和第二标记单元22d。其中,第一获取单元22a用于获取已知为恶意网址且第一域名段相同的至少一个第二URL;第二获取单元22b用于获取至少一个第二URL中包含子域名级数最高的第三URL,从右至左逐级追溯第三URL所包含的子域名,提取至少一级子域名;第一标记单元22c用于若第二URL的第一域名段属于预设的可信名单,将每个第二URL的特征值和每个第二URL的主机名的特征值标记为恶意网址的密文,存储在数据库20中;第二标记单元22d,用于若第二URL的第一域名段属于预设的不可信名单,获取至少一个第二URL中包含子域名级数最低的第四URL,将每个第二URL的特征值、每个第二URL的主机名的特征值以及除了各个第二URL的主机名以外的追溯提取的至少一级子域名中级数高于第四URL的子域名的特征值标记为恶意网址的密文,存储在数据库20中。
根据本实施例提供的网址访问***,当客户端请求访问网址时,从网址信息中提取网址密文,将网址密文提交给服务器,服务器将网址密文与数据库中存储的密文匹配,完成网址的安全查询和验证,客户端根据服务器的验证结果决定是否继续对网址的访问行为。该方法不依赖客户端本地的数据库,将网址的安全查询和验证放在服务器侧完成。由于服务器侧的数据库可以及时的更新互联网上的各类恶意网址,它的升级周期远远短于客户端本地的数据库,而且服务器侧的数据库中恶意网址的信息存储量很大,覆盖面很广,从而能够快速有效地拦截恶意网站。
在此提供的算法和显示不与任何特定计算机、虚拟***或者其它设备固有相关。各种通用***也可以与基于在此的示教一起使用。根据上面的描述,构造这类***所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多的特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
本发明的各个部件实施例可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的网址访问***中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
应该注意的是上述实施例对本发明进行说明而不是对本发明进行限制,并且本领域技术人员在不脱离所附权利要求的范围的情况下可设计出替换实施例。在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的元件或步骤。位于元件之前的单词“一”或“一个”不排除存在多个这样的元件。本发明可以借助于包括有若干不同元件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二、以及第三等的使用不表示任何顺序。可将这些单词解释为名称。