网站指纹的计算方法、系统、存储介质和终端与流程

专利查询2023-8-4  100



1.本技术涉及网络安全领域,特别涉及一种网站指纹的计算方法、计算系统、存储介质和终端。


背景技术:

2.当前,在应用开发中,常需要获取网站应用的身份标识,即获取网站指纹,但针对批量网站样本进行指纹主要依赖于人工采集,需要针对每个网站采集其特征字段,并就特征字段进行网站之间的两两比对。一旦网站样本的样本数量较多,将大大降低网站指纹的计算效率,且容易出现误报。
3.因此,如何提高网站指纹的计算效率是本领域技术人员亟需解决的技术问题。


技术实现要素:

4.本技术的目的是提供一种网站指纹的计算方法、计算系统、存储介质和终端,能够提高网站指纹的计算效率。
5.为解决上述技术问题,本技术提供一种网站指纹的计算方法,具体技术方案如下:
6.获取网站样本,并从所述网站样本中确定目标网站;
7.计算所述目标网站对应文档对象化模型的结构向量值;
8.对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;
9.解析所述目标网站的特征字段;
10.根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;
11.将所述示例网站的特征作为所述网站指纹。
12.可选的,所述计算目标网站的文档对象化模型的结构向量值包括:
13.获取目标网站html页面,构造所述文档对象化模型;
14.在所述文档对象化模型中选取父节点为头部元素作为目标节点,将每个所述目标节点的元素名与属性拼接成字符串;
15.计算所述字符串的哈希值,将所述哈希值与所述目标节点的权重相乘得到所述目标节点对应的权重值;其中,所述目标节点的节点深度越大,与所述目标节点相同的节点越多,所述目标节点的权重越小;
16.累加所有目标节点的权重值,得到结构向量值。
17.可选的,所述解析所述目标网站的静态文件资源列表包括:
18.对所述静态文件资源列表中的静态资源预处理,去除公共库资源和静态资源的特征信息;
19.构造静态资源字典,对相邻静态文件资源名通过预设公式计算得到静态哈希值,并建立所述静态哈希值、所述静态文件资源名列表和所述静态文件资源对应网页地址的映
射关系;
20.计算所述静态文件资源列表中每个静态文件资源名的哈希值,得到所述静态文件资源列表对应的哈希值列表;
21.对相邻静态文件资源名通过预设公式计算得到静态哈希值;
22.判断所述静态资源字典是否包含所述静态哈希值;
23.若是,确定所述目标网站与其余网站的静态文件资源列表存在交集,在所述静态文件资源对应网页地址列表中添加所述目标网站的网页地址;
24.若否,保存所述静态哈希值和对应的静态文件资源名列表、所述静态文件资源对应网页地址。
25.可选的,所述预设公式为:
[0026][0027]
其中,i为每次计算取的相邻的静态文件资源个数且i大于2,j为每次计算取的若干静态文件资源中第一个静态文件资源在静态文件资源列表中的索引号,k为迭代遍历,用于遍历索引号在区间[j,j+i-1]内的所有静态资源,x
ij
为静态哈希值。
[0028]
可选的,对所述静态文件资源列表中的静态资源预处理,去除公共库资源和静态资源的特征信息包括:
[0029]
配置公共库资源的路径黑名单和/或文件名黑名单;
[0030]
删除所述静态文件资源名中版本号和随机数中的至少一种,并去除所述静态资源对应路径中的域名或ip地址。
[0031]
可选的,根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站包括:
[0032]
根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站样本中的网站进行关联分析并归类,每个类中任一原始网站至少存在一个相似网站,所述原始网站和所述相似网站至少存在所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站中的两项相同;
[0033]
在每一类网站中确定至少一个示例网站。
[0034]
可选的,确定示例网站时还包括:
[0035]
舍弃不存在对应相似网站的样本网站。
[0036]
本技术还提供一种网站指纹的计算系统,包括:
[0037]
网站获取模块,用于获取网站样本,并从所述网站样本中确定目标网站;
[0038]
结构向量值计算模块,用于计算所述目标网站对应文档对象化模型的结构向量值;
[0039]
静态资源分析计算模块,用于对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;
[0040]
特征字段获取模块,用于解析所述目标网站的特征字段;
[0041]
关联分析模块,用于根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;
[0042]
指纹计算模块,用于将所述示例网站的特征作为所述网站指纹。
[0043]
本技术还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
[0044]
本技术还提供一种终端,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如上所述的方法的步骤。
[0045]
本技术提供一种网站指纹的计算方法,包括:获取网站样本,并从所述网站样本中确定目标网站;计算所述目标网站对应文档对象化模型的结构向量值;对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;解析所述目标网站的特征字段;根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;将所述示例网站的特征作为所述网站指纹。
[0046]
本技术利用计算网站的结构向量值,分析网站的静态文件资源列表和特征字段,并根据结构向量值、每个静态资源对应的网站列表和特征字段对网站进行分类,从而确定具有代表性的示例网站,并将示例网站的特征作为网站指纹,能够自动地在海量样本网站中发现具有相似性的网站,并将相似网站的公共特征提取成指纹,可以大大减少人力投入,提高网站指纹的计算效率,降低人工成本。
[0047]
本技术还提供一种网站指纹的检测系统、计算机可读存储介质和终端,具有上述有益效果,此处不再赘述。
附图说明
[0048]
为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0049]
图1为本技术实施例所提供的一种网站指纹的计算方法的流程图;
[0050]
图2为本技术实施例所提供的结构向量值的计算流程图;
[0051]
图3为本技术实施例所提供的一种网站指纹的计算系统的构示意图:
[0052]
图4为本技术实施例所提供的一种终端的结构示意图。
具体实施方式
[0053]
为使本技术实施例的目的、技术方案和优点更加清楚,下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
[0054]
参见图1,图1为本技术实施例所提供的一种网站指纹的计算方法的流程图,该方法包括:
[0055]
s101:获取网站样本,并从所述网站样本中确定目标网站;
[0056]
本步骤旨在获取网站样本,并确定网站样本中的目标网站,该目标网站指待计算网页相似度的网站,通常网站样本中每个网站均可以作为目标网站,也可以从网站样本中选择部分网站作为集合,确定该集合中网站对应的网站指纹,则此时目标网站可以为该集
合中的任一网站。需要注意的是,在计算网站指纹过程中,需要参考网站的各网页,从而计算网页之间的相似度,以便在海量网站中发现具有相似性的网站,并将具有相似性的网站的公共特征作为网站指纹。
[0057]
在此对于如何获取网站样本不作限定,可以实时爬取网站,也可以从网站数据库中获取网站,作为本实施例中的网站样本。在具体确定目标网站时,需要确保各网站样本能够响应,具体的,可以利用python的requests库,构造请求头,向各网站样本发出请求。如果能够正确获取到网站样本的响应,则执行目标网站的解析操作,否则尝试获取下一个网站样本的响应。
[0058]
s102:计算所述目标网站对应文档对象化模型的结构向量值;
[0059]
本步骤旨在计算目标网站对应文档对象化模型的结构向量值,即dom(document object model tree structure))树的结构向量值,也可以称为dom_value。dom是w3c(万维网联盟)的标准,而html(hyper text markup language,超文本标记语言)dom是关于如何获取、修改、添加或删除html元素的标准。在html dom中,所有事物都是节点,而节点以树的形式呈现。这颗节点树从根节点开始,展示了节点的集合和节点之间的联系,然后在树的最低层级向文本节点长出枝条。
[0060]
在此对于如何计算结构向量值不作具体限定,通常基于计算字符串的哈希值,以及配置节点的权重等过程。本领域技术人员可以针对结构向量值计算过程进行自定义的配置,在此不一一具体限定。
[0061]
参见图2,图2图2为本技术实施例所提供的结构向量值的计算流程图,作为本步骤的一种具体实施方式,其过程可以如下:
[0062]
s1021:获取目标网站html页面,构造文档对象化模型;
[0063]
s1022:在文档对象化模型中选取父节点为头部元素作为目标节点,将每个目标节点的元素名与属性拼接成字符串;
[0064]
s1023:计算字符串的哈希值,将哈希值与目标节点的权重相乘得到目标节点对应的权重值;
[0065]
需要注意的是,目标节点的节点深度越大,与目标节点相同的节点越多,目标节点的权重越小;
[0066]
s1024:累加所有目标节点的权重值,得到结构向量值。
[0067]
首先针对目标网站的网站页面,即html页面,构造文档对象化模型,即针对网站页面之间的逻辑关系,将其转化为对应的节点,从而根据节点之间的逻辑关系得到文档对象化模型。此后,选取父节点为头部元素(也即“《head》元素”)作为目标节点,将每个目标节点的元素名与属性拼接成字符串,计算该字符串的哈希值,再将所有的哈希值与节点的权重相乘并进行累加,最后得到的值即为该网页的结构向量值。需要注意的是,节点深度越大,与该节点相同的节点越多,该节点的权重越小。
[0068]
且通过这种方式计算得到的结构向量值,有如下特点:
[0069]
如果两个网页头部元素中的内容一致,那么两个网站的结构向量值一致;如果两个网页在头部元素中区别不大,那么两个网站的结构向量值相近。
[0070]
s103:对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;
[0071]
本步骤需要对目标网站进行爬虫,从而得到目标网站的静态文件资源列表。静态文件资源列表中包含了可以用作为网站指纹的静态资源,因此本步骤需要爬虫得到静态文件资源列表,以便选取其中适合作为网站资源的静态资源文件。
[0072]
但需要注意的是,由于并非静态文件资源列表中的所有静态资源均适合作为网站指纹,因此,本步骤可以先对静态文件资源列表中的静态资源预处理,去除公共库资源和静态资源的特征信息。
[0073]
具体的,可以包括如下过程:
[0074]
第一步、配置公共库资源的路径黑名单和/或文件名黑名单;
[0075]
第二步、删除所述静态文件资源名中版本号和随机数中的至少一种,并去除所述静态资源对应路径中的域名或ip地址。
[0076]
由于公共库资源不能作为应用的指纹,如

index.css’、

jquery.js’等。因此需要为路径与文件名各自设置黑名单,例如可以设置path、css、js、ico四个黑名单。黑名单中保存一些常见的路径名或文件名。如果一个静态文件的路径与文件名都在黑名单中(如

/js/jquery.min.js’),则该数据就无法作为一条指纹,在解析静态文件资源列表时可以避开这一类数据。
[0077]
同样的,有一些静态资源的文件名中带有版本号,有一些静态资源的文件名中带有随机数,如果保留这两个内容会导致后面提取公共特征时无法将相同的静态文件归为一类,因此需要将版本号与随机数剔除。如

uni.webview.1.5.1.js’和

chunk-vendors.71719f9c.js’,分别在去除版本号和随机数后,保留得到

uni.webview.js’、

chunk-vendors.js’。
[0078]
而有一些静态资源的路径保留了该网站的域名或ip地址,同样无法作为指纹,需要将网站的域名与ip地址部分去除,仅保留静态资源的相对路径部分。
[0079]
如:
[0080]

https://truckresource.g7s.huoyunren.com/js/es6-promise/es6-promise.min.js’,即可去除网站域名后保留

/js/es6-promise/es6-promise.min.js’。
[0081]
在经过上述静态资源预处理后,可以得到目标网站有效的静态资源列表。但是如果直接用该静态资源列表作为网站的特征进行记数与比较,可能会有很多遗漏。如网站1的static_list1为['1.css','2.css','3.css','4.js'],网站2的static_list2为['1.css','2.css','3.css','5.js'],它们拥有共同的静态资源['1.css','2.css','3.css'],但是直接进行静态资源列表之间的比较无法获得有效的公共特征。
[0082]
为此,本步骤一种优选的执行思路可以如下:对于一个网站的静态文件资源列表,遍历其所有长度大于1的子集,对每一个子集利用预设公式计算出一个静态哈希值,判断该静态哈希值在资源字典中是否存在。如果存在,则说明这个网站和其他网站的静态文件资源列表有交集,可认为这些网站具有相似性,将这些网站归为一类;如果不存在,就先将这个静态哈希值与其相应的子集static_text_list和网站的网页地址保存。最后,一旦网页地址列表的长度大于1,说明有多个网站均包含这些静态资源文件,输出这些静态资源文件名和对应的网站列表。具体实施过程可以如下:
[0083]
s1031:构造静态资源字典,对相邻静态文件资源名通过预设公式计算得到静态哈希值,并建立静态哈希值、静态文件资源名列表和静态文件资源对应网页地址的映射关系;
[0084]
s1032:计算静态文件资源列表中每个静态文件资源名的哈希值,得到静态文件资源列表对应的哈希值列表;
[0085]
s1033:对相邻静态文件资源名通过预设公式计算得到静态哈希值;
[0086]
s1034:判断静态资源字典是否包含静态哈希值;若是,进入s1035;若否,进入s1036;
[0087]
s1035:确定目标网站与其余网站的静态文件资源列表存在交集,在静态文件资源对应网页地址列表中添加目标网站的网页地址;
[0088]
s1036:保存静态哈希值和对应的静态文件资源名列表、静态文件资源对应网页地址。
[0089]
该预设公式为:
[0090][0091]
其中,i为每次计算取的相邻的静态文件资源个数且i大于2,j为每次计算取的若干静态文件资源中第一个静态文件资源在静态文件资源列表中的索引号,k为迭代遍历,用于遍历索引号在区间[j,j+i-1]内的所有静态资源,x
ij
为静态哈希值。
[0092]
为了更好的描述上述过程,下文举例对步骤s1031至s1036进行说明:
[0093]
在步骤s1031中,构造一个静态资源字典static_hash_dict{},映射为

static_hash:(static_text_list,url_list)’。其中static_hash为相邻多个静态资源文件名通过预设公式计算后得出的值,static_text_list代表该值所对应的多个静态资源文件名,url_list储存了所有拥有这几个静态资源文件的网站url。
[0094]
对每个网站爬虫获得的静态文件资源列表做如下处理:
[0095]
若该网站爬虫得到的静态文件资源列表为[s0,s1,...,sn-1],计算每个静态资源文件名的hash值,得到静态文件资源列表对应的哈希值列表hash_list[h0,h1,...,hn-1]。
[0096]
对于i=n,n-1,...,2,j=0,1,...,n-i,利用预设公式计算得到xij。其中i表示每次取的相邻的静态资源个数,j表示每次取的多个静态资源中第一个静态资源在静态文件资源列表中的索引号。k为迭代变量,会遍历索引号在区间[j,j+i-1]内的所有静态资源。xij为给定i与j利用预设公式计算出的值,相当于上文中的static_hash。
[0097]
如果静态资源字典static_hash_dict中是否包含静态哈希值xij,则在其对应的网页地址列表url_list中加上该网站的url网页地址;
[0098]
如果静态资源字static_hash_dict中不包含静态哈希值xij,则在static_hash_dict中添加

xij:([sj,sj+1,...,sj+i-1],[url])’的映射。
[0099]
对所有目标网站按照上述过程处理结束后,遍历静态资源字典static_hash_dict,一旦网页地址列表的长度大于1,即len(url_list)》1,则保存并输出静态资源文件名和对应的网站列表,即(static_text_list,url_list)。
[0100]
预设公式的公式含义为:每次选取长度为i的子集(i≥2),选取索引号j为迭代起点,利用迭代变量k在索引号区间[j,j+i-1]内进行迭代,将每一个hk乘上k在区间[j,j+i-1]间的序号(k-j+1),再做相邻异号的累加得到xij。举例,网站1的静态资源字典static_list1为['1.css','2.css','3.css','4.js'],设其对应的hash_list为[h1,h2,h3,h4],则其通过预设公式计算出的所有静态哈希值为:
[0101]

h1-2h2+3h3-4h4,h1-2h2+3h3,h2-2h3+3h4,h1-2h2,h2-2h3,h3-2h4’。
[0102]
采用相邻异号的方式既可以防止该值过大造成溢出,又包含了对静态资源部署顺序的要求,而乘上一个系数可以有效防止出现同名现象而导致计算结果为0。
[0103]
为防止对同一个静态资源进行重复的比较,可为每一个静态资源设立一个标识,如果判定存在其他网站的静态资源与该静态资源一致则不再进行后续的比较。如上例static_list1['1.css','2.css','3.css','4.js'],static_list2['1.css','2.css','3.css','5.js'],已经识别到它们有相同的静态资源['1.css','2.css','3.css'],就不会再识别['1.css','2.css']了。
[0104]
s104:解析所述目标网站的特征字段;
[0105]
对于爬虫过程中获取到的其他特征信息,还需要解析得到相应的特征字段,在此对于具体的特征字段不作限定,可以包括下文所示的一种,或者任意几种的组合,当然本领域技术人员还可以解析得到其他特征字段,在此不一一举例限定:
[0106]

server:http响应头中的server字段;
[0107]

cookies:http响应头中的set-cookie字段,仅取其键作为特征;
[0108]

www-authenticate:http响应头中的www-authenticate字段;
[0109]

x-csrf-token:http响应头中的x-csrf-token字段;
[0110]

x-powered-by:http响应头中的x-powered-by字段;
[0111]

title:网站的标题信息;
[0112]

application-name:html页面meta标签中name="application-name",取其content值;
[0113]

meta_copyright:html页面meta标签中name="copyright",取其content值;
[0114]

description:html页面meta标签中name="description",取其content值;
[0115]

generator:html页面meta标签中name="generator",取其content值;
[0116]
keywords:html页面meta标签中name="keywords",取其content值;
[0117]
author:html页面meta标签中name="author",取其content值;
[0118]
copyright:html页面body中标识有"版权所有"或"copyright"处的说明,如"copyright©2001-2020,tencent cloud.";
[0119]
powered_by:html页面body中表示有"powered by"处的说明,如"powered by discuz!x3.4";
[0120]
favicon:网站的页面图标,取其md5值进行存储;
[0121]
robots.txt:网站路径加上"robots.txt"后获得的文件,取其md5值进行存储。
[0122]
需要注意的是,在本技术的其他应用实施例中,本步骤可以与上一步骤同时执行,也可以先执行本步骤,再执行上一步骤,即解析目标网站的特征字段的过程,与解析目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表这一过程之间并不存在既定的执行顺序关系。
[0123]
s105:根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网
站进行分类,并确定示例网站;
[0124]
经过上述步骤,根据得到的结构向量值、网站列表和特征字段对网站进行分类,从而确定示例网站。
[0125]
在此对于如何分类不作具体限定,其实质在执行特征之间的关联分析。有一些特征,如'server'、'x-powered-by'等,单独就可以生成指纹。但另有一些特征,单独用来生成指纹可信度并不高。比如favicon特征作为网站的页面图标,可能有一些公司的所有产品都使用同一个favicon,那么就不能使用favicon特征作为单一应用的指纹。像这种,就需要将多个特征结合起来生成一条指纹。特征关联分析的目的就是在爬虫结果中发现具有多个相同特征的网站,并将它们归为一类。
[0126]
可以根据结构向量值、每个静态资源对应的网站列表和特征字段对网站样本中的网站进行关联分析并归类,每个类中任一原始网站至少存在一个相似网站,原始网站和相似网站至少存在结构向量值、每个静态资源对应的网站列表和特征字段对网站中的两项相同,则可以在每一类网站中确定至少一个示例网站。
[0127]
举例而言:网站1与网站2拥有相同的结构向量值和favicon特征,网站2与网站3拥有相同的网站列表和favicon特征,这3个网站采用同一个系统的概率很高。首先以结构向量值为基本特征,可以发现网站1与网站2相似,将网站1与网站2归为一类。再以static_list为基本特征,可以发现网站2与网站3相似,再将网站3归入网站1与网站2的类中。
[0128]
特征关联可以发现爬虫网站样本中的相似网站,并将相似网站归为一类,这样海量的爬虫网站样本就被分为了多个相似网站类。如果一个网站在样本中无法找到与其相似的网站,就将该网站舍去。
[0129]
在本步骤的执行过程中,还可以舍弃不存在对应相似网站的样本网站。选取一个特征,将具有相同该特征的网站归为一类,用一个网站归类列表保存所有具有该特征的网站,并显示具有该特征的网站数量。如果一个特征在整个爬虫结果中只出现了一次,那么它无法作为指纹数据,需要将该特征舍去。相应的,如果一个网站在样本中无法找到与其相似的网站,就将该网站舍去。
[0130]
s106:将所述示例网站的特征作为所述网站指纹。
[0131]
相似网站的公共特征,就有可能成为指纹。而示例网站是几个相似网站的代表,它的特征信息即是多个相似网站的公共特征,很可以将实例网站的特征提取得到指纹。
[0132]
本技术实施例利用计算网站的结构向量值,分析网站的静态文件资源列表和特征字段,并根据结构向量值、每个静态资源对应的网站列表和特征字段对网站进行分类,从而确定具有代表性的示例网站,并将示例网站的特征作为网站指纹,能够自动地在海量样本网站中发现具有相似性的网站,并将相似网站的公共特征提取成指纹,可以大大减少人力投入,降低人工成本。
[0133]
下面对本技术实施例提供的一种网站指纹的计算系统进行介绍,下文描述的网站指纹的计算系统与上文描述的网站指纹的计算方法可相互对应参照。
[0134]
参见图3,图3为本技术实施例所提供的一种网站指纹的计算系统的构示意图,本技术还提供一种网站指纹的计算系统,包括:
[0135]
网站获取模块,用于获取网站样本,并从所述网站样本中确定目标网站;
[0136]
结构向量值计算模块,用于计算所述目标网站对应文档对象化模型的结构向量
值;
[0137]
静态资源分析计算模块,用于对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;
[0138]
特征字段获取模块,用于解析所述目标网站的特征字段;
[0139]
关联分析模块,用于根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;
[0140]
指纹计算模块,用于将所述示例网站的特征作为所述网站指纹。
[0141]
基于上述实施例,作为优选的实施例,结构向量值计算模块包括:
[0142]
文档对象化模型构建单元,用于获取目标网站html页面,构造所述文档对象化模型;
[0143]
字符串构造单元,用于在所述文档对象化模型中选取父节点为头部元素作为目标节点,将每个所述目标节点的元素名与属性拼接成字符串;
[0144]
哈希值计算单元,用于计算所述字符串的哈希值,将所述哈希值与所述目标节点的权重相乘得到所述目标节点对应的权重值;其中,所述目标节点的节点深度越大,与所述目标节点相同的节点越多,所述目标节点的权重越小;
[0145]
结构向量值计算单元,用于累加所有目标节点的权重值,得到结构向量值。
[0146]
基于上述实施例,作为优选的实施例,静态资源分析计算模块包括:
[0147]
预处理单元,用于对所述静态文件资源列表中的静态资源预处理,去除公共库资源和静态资源的特征信息;
[0148]
字典生成单元,用于构造静态资源字典,对相邻静态文件资源名通过预设公式计算得到静态哈希值,并建立所述静态哈希值、所述静态文件资源名列表和所述静态文件资源对应网页地址的映射关系;
[0149]
哈希值列表生成单元,用于计算所述静态文件资源列表中每个静态文件资源名的哈希值,得到所述静态文件资源列表对应的哈希值列表;
[0150]
静态哈希值计算单元,用于对相邻静态文件资源名通过预设公式计算得到静态哈希值;
[0151]
静态资源分析单元,用于判断所述静态资源字典是否包含所述静态哈希值;若是,确定所述目标网站与其余网站的静态文件资源列表存在交集,在所述静态文件资源对应网页地址列表中添加所述目标网站的网页地址;若否,保存所述静态哈希值和对应的静态文件资源名列表、所述静态文件资源对应网页地址。
[0152]
所述预设公式为:
[0153][0154]
其中,i为每次计算取的相邻的静态文件资源个数且i大于2,j为每次计算取的若干静态文件资源中第一个静态文件资源在静态文件资源列表中的索引号,k为迭代遍历,用于遍历索引号在区间[j,j+i-1]内的所有静态资源,x
ij
为静态哈希值。
[0155]
基于上述实施例,作为优选的实施例,预处理单元包括:
[0156]
黑名单配置子单元,用于配置公共库资源的路径黑名单和/或文件名黑名单;
[0157]
无效数据处理单元,用于删除所述静态文件资源名中版本号和随机数中的至少一
种,并去除所述静态资源对应路径中的域名或ip地址。
[0158]
基于上述实施例,作为优选的实施例,所述关联分析模块为用于执行如下步骤的模块:
[0159]
根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站样本中的网站进行关联分析并归类,每个类中任一原始网站至少存在一个相似网站,所述原始网站和所述相似网站至少存在所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站中的两项相同;
[0160]
在每一类网站中确定至少一个示例网站。
[0161]
本技术还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的恶意加密流量检测方法的步骤。该存储介质可以包括:u盘、移动硬盘、只读存储器(read-only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
[0162]
本技术还提供了一种终端,可以包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时,可以实现上述实施例所提供的网站指纹的计算方法的步骤。当然所述终端还可以包括各种网络接口,电源等组件。请参见图4,图4为本技术实施例所提供的一种终端的结构示意图,本实施例的终端可以包括:处理器2101和存储器2102。
[0163]
可选的,该终端还可以包括通信接口2103、输入单元2104和显示器2105和通信总线2106。
[0164]
处理器2101、存储器2102、通信接口2103、输入单元2104、显示器2105、均通过通信总线2106完成相互间的通信。
[0165]
在本技术实施例中,该处理器2101,可以为中央处理器(central processing unit,cpu),特定应用集成电路,数字信号处理器、现成可编程门阵列或者其他可编程逻辑器件等。
[0166]
该处理器可以调用存储器2102中存储的程序。具体的,处理器可以执行上文的实施例中终端所执行的操作。
[0167]
存储器2102中用于存放一个或者一个以上程序,程序可以包括程序代码,所述程序代码包括计算机操作指令,在本技术实施例中,该存储器中至少存储有用于实现以下功能的程序:
[0168]
获取网站样本,并从所述网站样本中确定目标网站;
[0169]
计算所述目标网站对应文档对象化模型的结构向量值;
[0170]
对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;
[0171]
解析所述目标网站的特征字段;
[0172]
根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;
[0173]
将所述示例网站的特征作为所述网站指纹。
[0174]
在一种可能的实现方式中,该存储器2102可包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、以及至少一个功能(比如话题检测功能等)所需的应用程序
等;存储数据区可存储根据计算机的使用过程中所创建的数据。
[0175]
此外,存储器2102可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件或其他易失性固态存储器件。
[0176]
该通信接口2103可以为通信模块的接口,如gsm模块的接口。
[0177]
本技术还可以包括显示器2105和输入单元2104等等。
[0178]
图4所示的终端的结构并不构成对本技术实施例中终端的限定,在实际应用中终端可以包括比图4所示的更多或更少的部件,或者组合某些部件。
[0179]
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0180]
本文中应用了具体个例对本技术的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本技术的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本技术原理的前提下,还可以对本技术进行若干改进和修饰,这些改进和修饰也落入本技术权利要求的保护范围内。
[0181]
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

技术特征:
1.一种网站指纹的计算方法,其特征在于,包括:获取网站样本,并从所述网站样本中确定目标网站;计算所述目标网站对应文档对象化模型的结构向量值;对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;解析所述目标网站的特征字段;根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;将所述示例网站的特征作为所述网站指纹。2.根据权利要求1所述的网站指纹的计算方法,其特征在于,所述计算目标网站的文档对象化模型的结构向量值包括:获取目标网站html页面,构造所述文档对象化模型;在所述文档对象化模型中选取父节点为头部元素作为目标节点,将每个所述目标节点的元素名与属性拼接成字符串;计算所述字符串的哈希值,将所述哈希值与所述目标节点的权重相乘得到所述目标节点对应的权重值;其中,所述目标节点的节点深度越大,与所述目标节点相同的节点越多,所述目标节点的权重越小;累加所有目标节点的权重值,得到结构向量值。3.根据权利要求1所述的网站指纹的计算方法,其特征在于,所述解析所述目标网站的静态文件资源列表包括:对所述静态文件资源列表中的静态资源预处理,去除公共库资源和静态资源的特征信息;构造静态资源字典,对相邻静态文件资源名通过预设公式计算得到静态哈希值,并建立所述静态哈希值、所述静态文件资源名列表和所述静态文件资源对应网页地址的映射关系;计算所述静态文件资源列表中每个静态文件资源名的哈希值,得到所述静态文件资源列表对应的哈希值列表;对相邻静态文件资源名通过预设公式计算得到静态哈希值;判断所述静态资源字典是否包含所述静态哈希值;若是,确定所述目标网站与其余网站的静态文件资源列表存在交集,在所述静态文件资源对应网页地址列表中添加所述目标网站的网页地址;若否,保存所述静态哈希值和对应的静态文件资源名列表、所述静态文件资源对应网页地址。4.根据权利要求3所述的网站指纹的计算方法,其特征在于,所述预设公式为:其中,i为每次计算取的相邻的静态文件资源个数且i大于2,j为每次计算取的若干静态文件资源中第一个静态文件资源在静态文件资源列表中的索引号,k为迭代遍历,用于遍
历索引号在区间[j,j+i-1]内的所有静态资源,x
ij
为静态哈希值。5.根据权利要求3所述的网站指纹的计算方法,其特征在于,对所述静态文件资源列表中的静态资源预处理,去除公共库资源和静态资源的特征信息包括:配置公共库资源的路径黑名单和/或文件名黑名单;删除所述静态文件资源名中版本号和随机数中的至少一种,并去除所述静态资源对应路径中的域名或ip地址。6.根据权利要求1所述的网站指纹的计算方法,其特征在于,根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站包括:根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站样本中的网站进行关联分析并归类,每个类中任一原始网站至少存在一个相似网站,所述原始网站和所述相似网站至少存在所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站中的两项相同;在每一类网站中确定至少一个示例网站。7.根据权利要求6所述的网站指纹的计算方法,其特征在于,确定示例网站时还包括:舍弃不存在对应相似网站的样本网站。8.一种网站指纹的计算系统,其特征在于,包括:网站获取模块,用于获取网站样本,并从所述网站样本中确定目标网站;结构向量值计算模块,用于计算所述目标网站对应文档对象化模型的结构向量值;静态资源分析计算模块,用于对所述目标网站爬虫,得到静态资源列表,解析所述目标网站的静态文件资源列表,输出所述网站样本中每个静态资源对应的网站列表;特征字段获取模块,用于解析所述目标网站的特征字段;关联分析模块,用于根据所述结构向量值、每个静态资源对应的网站列表和所述特征字段对网站进行分类,并确定示例网站;指纹计算模块,用于将所述示例网站的特征作为所述网站指纹。9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-7任一项所述的网站指纹的计算方法的步骤。10.一种终端,其特征在于,包括存储器和处理器,所述存储器中存有计算机程序,所述处理器调用所述存储器中的计算机程序时实现如权利要求1-7任一项所述的网站指纹的计算方法的步骤。

技术总结
本申请提供一种网站指纹的计算方法,包括:获取网站样本,并从网站样本中确定目标网站;计算目标网站对应文档对象化模型的结构向量值;对目标网站爬虫,得到静态资源列表,解析目标网站的静态文件资源列表,输出网站样本中每个静态资源对应的网站列表;解析目标网站的特征字段;根据结构向量值、每个静态资源对应的网站列表和特征字段对网站进行分类,并确定示例网站;将示例网站的特征作为网站指纹。本申请能够自动地在海量样本网站中发现具有相似性的网站,并将相似网站的公共特征提取成指纹,可以提高网站指纹的计算效率,减少人力投入,降低人工成本。本申请还提供一种网站指纹的检测系统、计算机可读存储介质和终端,具有上述有益效果。上述有益效果。上述有益效果。


技术研发人员:黄明义 何松
受保护的技术使用者:深信服科技股份有限公司
技术研发日:2021.12.07
技术公布日:2022/3/8

最新回复(0)