具体实施方式
为了使本技术领域的人员更好地理解本申请中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
本说明书实施例的思想在于,在提取URL的指纹特征时,将URL的字符信息和结构信息均考虑在内,这样所提取的指纹特征可以更准确的表征URL,即准确性更高,即使对于结构性很强的URL,所提取出的指纹特征也是可以准确表征该URL的,因此,本实施例的方案,适用性较强、且所提取的指纹特征的准确性高;基于此,本说明书实施例提供了一种URL指纹特征的提取方法、装置、设备及存储介质,下述将一一详细进行介绍。
首先,本说明书实施例提供了一种URL指纹特征的提取方法,该方法可以应用于服务器,即该方法的执行主体为服务器,具体的,可以为安装在服务器上的URL指纹特征的提取模块。
可选的,本说明书实施例提供的URL指纹特征的提取方法可以应用在黑灰产行业打击中,即通过服务器拦截URL,并对拦截到的URL进行指纹特征的提取,从而根据提取的URL指纹特征判断所拦截的URL是否为黑灰产活动。
另外,需要说明的是,URL是因特网的万维网服务程序上用于指定信息位置的表示方法,URL的指纹特征是指通过数字化表征URL文本、结构等特点的关键信息。通过URL的指纹特征可以区分出不同的URL是否为相似的URL或者不同的URL。
图1为本说明书实施例提供的URL指纹特征的提取方法的方法流程图之一,图1所示的方法至少包括如下步骤:
步骤102,基于目标URL的字符信息确定目标URL所对应的第一向量;其中,第一向量包括目标URL中各个字符所对应的分向量。
在具体实施时,在接收到访问请求时,拦截该访问请求中所携带的URL,将所拦截到的URL作为目标URL,确定该目标URL所对应的第一向量。
可选的,在本说明书实施例中红,可以采用Word2Vec模型确定目标URL所对应的第一向量。在具体实施时,可以基于大量的样本URL训练Word2Vec模型,训练Word2Vec模型实际上就是训练构成URL的所有字符(包括大写字母、小写字母、数字和各种符号等)中各个字符所对应的分向量。这样,在采用Word2Vec模型确定目标URL所对应的第一向量时,则将目标URL输入至Word2Vec模型中,Word2Vec模型根据自身已有的各个字符所对应的分向量,查找目标URL中各个字符所对应的分向量,从而实现将目标URL中的各个字符进行向量化,即将url=<c
1,c
2,...,c
n>转化为emd=<e
1,e
2,e
3,...,e
n>,其中,
为c
i对应的向量。其中,n为正整数。
步骤104,确定目标URL中的URL共性结构信息和URL非共性结构信息,根据URL共性结构信息、URL非共性结构信息和第一向量,确定目标URL所对应的第二向量;其中,第二向量为表征目标URL的结构的向量。
其中,URL共性结构信息,指的是URL中字段位置以及字段内容均相同的部分,URL非共性结构信息,也可以称为可变字段,指的是URL中字段位置相同但字段内容不同的部分。
为便于理解,下述以具体URL为例说明URL共性结构信息和URL非共性结构信息。
例如,两个URL如下所示:
Market.***.com/products/52732001/01.html
Market.***.com/products/52732001/02.html
在上述两个URL中,URL的共性结构信息包括Market.***.com/、products/、52732001/、.html;URL的非共性结构信息包括01和02。
步骤106,根据上述第一向量和第二向量,确定目标URL所对应的指纹特征。
可选的,在上述步骤106中,可以对第一向量和第二向量进行融合处理,根据融合处理结果确定目标URL所对应的指纹特征,这样,所得到的指纹特征融合了目标URL的字符信息和结构信息,从而使得所得到的指纹特征可以更准确的表征目标ULR,进而提高了黑灰产活动检测的准确性。
为便于理解本说明书实施例提供的方法,下述将详细介绍各个步骤的具体实现方式。
可选的,上述步骤104中,确定目标URL的URL共性结构信息和URL非共性结构信息,具体可以通过如下过程实现:
将第一向量输入至预先训练的孪生神经网络模型中进行处理,获取孪生神经网络模型输出的结构掩码序列;根据上述结构掩码序列,确定URL共性结构信息和URL非共性结构信息;其中,上述结构掩码序列中的各个结构掩码值位于第一数值和第二数值之间的范围内,且上述结构掩码值的个数与目标URL的长度一致;结构掩码值靠近第二数值时表征目标URL中对应位置处的字符属于URL共性结构信息,结构掩码值靠近第一数值时表征目标URL中对应位置处的字符属于URL非共性结构信息。
其中,上述孪生神经网络模型中的每支神经网络可以为双向长短期记忆网络(Long Short-Term Memory,LSTM)。当然,也可以是其他网络模型,此处只是示例性说明,并不构成对本说明书实施例的限定。
其中,在一种具体实施方式中,上述第一数值的取值可以为0,上述第二数值的取值可以为1,相应的,孪生神经网络模型所输出的结构掩码序列中的各个结构掩码值则为(0,1)范围内的数值。当然,也可以是其他数值,本说明书实施例只是以第一数值为0、第二数值为1举例进行说明,并不构成对本说明书实施例的限定。
所谓结构掩码值靠近第二数值,可以理解为结构掩码值与第二数值之间的差值,小于结构掩码值与第一数值之间的差值。结构掩码值靠近第一数值,可以理解为结构掩码值与第一数值之间的差值,小于结构掩码值与第二数值之间的差值。为便于理解,下述将举例进行说明。
例如,若是某个结构掩码值为0.93,则0.93与1之间的差值为0.07,0.93与0之间的差值为0.93,因此0.07小于0.93,因此,该结构掩码值对应位置处的字符属于URL共性结构信息。
为便于理解,下述将举例进行说明如何根据结构掩码确定URL共性结构信息和URL非共性结构信息。
例如,在一种具体实施方式中,目标URL如下所示:
Market.***.com/products/52732001/01.html
将上述目标URL所对应的第一向量输入至孪生神经网络中,假设输出的结构掩码为:
(0.980.990.960.890.920.990.980.920.910.880.910.930.950.940.890.970.880.990.920.910.930.960.980.910.900.880.760.840.870.920.970.980.050.090.990.980.890.910.93)
当某个位置处的结构掩码值靠近1时,则说明该位置处的字符属于URL共性结构信息,若是某个位置处的结构掩码值靠近0时,则说明该位置处的字符属于URL非共性结构信息。因此,根据上述结构掩码值一一的判断其对应位置处的字符属于URL共性结构信息还是URL非共性结构信息。
通过判断,可以确定出上述目标URL中的URL共性结构信息为:Market.***.com/products/52732001/和.html,URL非共性结构信息为01。
当然,此处只是示例性说明,并不构成对本说明书实施例的限定。
另外,需要说明的是,在本说明书实施例中,可以将目标URL所对应的第一向量输入至孪生神经网络模型中的任意一支神经网络模型中,通过神经网络模型根据目标URL所对应的第一向量生成目标URL所对应的结构掩码序列。因此,为了实现通过孪生神经网络模型确定目标URL所对应的结构掩码序列,在执行本说明书实施例提供的方法之前,还需要训练孪生神经网络模型。其中,孪生神经网络模型的训练过程如下所示:
一般的,相同域名下的URL具有相似的URL结构,因此,在训练孪生神经网络时,首先将具有相同长度且相同字符的个数达到设定数量的两个样本URL构造成样本对。假设样本URLi和样本URLj满足上述条件,则可以将样本URLi和样本URLj构造成样本对<URLi,URLj>,按照上述方式,将所有的样本URL均构造成样本对。
接下来,则构造样本对<URLi,URLj>所对应的初始结构掩码序列,将上述样本对<URLi,URLj>所对应的结构掩码序列记为:
mask(i,j)=(m1,m2,...,mn)
具体的,对将样本URLi和样本URLj中的相同位置的字符进行比对,若是某个位置处样本URLi和样本URLj两个样本URL中的字符相同,则确定该位置处的初始结构掩码值记为1,否则该位置处的初始结构掩码值记为0,即当样本URLi和样本URLj的第k个字符相同时,则mk=1,否则,mk=0。通过上述方式,确定各个样本对所对应的结构掩码值。
之后,将上述样本对所对应的第一向量输入至孪生神经网络模型中进行模型的训练,具体的,可以将样本URLi所对应的第一向量输入至孪生神经网络模型中的其中一支神经网络中,样本URLj所对应的第一向量输入至孪生神经网络中的另外一支神经网络中。
需要说明的是,孪生神经网络模型中的两支神经网络共享权值,在将样本对输入至孪生神经网络模型中后,将孪生神经网络模型每一层的输出连接到一个全连接网络,全连接网络的输出层神经元数量为2,用于对孪生神经网络模型每一步输出的结果进行二分类,进行二分类的目的实际上述将输出的接近1的掩码值和接近0的掩码值分开。在具体实施时,不断调整孪生神经网络模型的参数以使得孪生神经网络模型输出的结构掩码值与样本对的初始结构掩码值不断靠近,直至孪生神经网络模型输出的结构掩码序列与样本对的初始结构掩码序列一致或者基本一致为止,这时完成了孪生神经网络模型的训练。
具体的,在本说明书实施例中,上述步骤104中,根据URL共性结构信息、URL非共性结构信息和第一向量,确定目标URL所对应的第二向量,具体包括如下过程:
针对URL共性结构信息所包含的各个字符,从第一向量获取该字符所对应的分向量,以及,针对URL非共性结构信息所包含的各个字符,使用指定分向量作为该字符所对应的分向量或者使用目标URL中同类型字符所对应分向量的平均值作为该字符所对应的分向量;将URL共性结构信息中各个字符所对应的分向量和URL非共性结构信息中各个字符所对应的分向量组成第二向量;其中,上述字符类型包括大写字母、小写字母、数字和符号。
可选的,在本说明书实施例中,对于URL共性结构信息中所包含的各个字符,则直接使用步骤102中所确定出的相应字符所对应的分向量即可;例如,对于URL共性结构信息中的某个字符A,则可以直接获取将步骤102中所确定出的字符A所对应的分向量,将所获取的分向量作为URL共性结构信息中字符A所对应的分向量。
而对于URL非共性结构信息中所包含的各个字符,至少可以通过如下两种方式确定出该字符所对应的分向量;
第一种,使用指定分向量作为URL非共性结构信息中的字符所对应的分向量。
例如,可以全部使用0或者1表示URL非共性结构信息中各个字符所对应的分向量。具体的,URL非共性结构信息中各个字符所对应的分向量相同。第二种,针对URL非共性结构信息中的每个字符,确定目标URL中与该字符属于相同类型字符的所有字符,基于第一向量获取与上述字符属于相同类型字符的所有字符对应的分向量,计算相同类型字符的所有分向量的平均值,将该平均值作为URL非共性结构信息中该字符所对应的分向量。
为便于理解,下述将举例进行说明。
例如,在一种具体实施方式中,假设URL非共性结构信息中的某个字符为A,则在确定该字符所对应的分向量时,则需要找出目标URL中所有的大写字母,并从第一向量中确定出各个大写字母所对应的分向量,计算所有大写字母所对应的分向量的平均值,将该平均值作为字符A所对应的分向量。需要说明的是,通过该种方法所确定出的URL非共性结构信息中字符类型相同的字符的分向量相同。
当然,此处举例只是示例性说明,并不构成对本说明书实施例的限定。
可选的,在本说明书实施例中,上述步骤106中,根据第一向量和第二向量,确定目标URL所对应的指纹特征,至少包括如下两种实现方式:
方式一、
对第一向量和第二向量进行融合处理,得到第一向量和第二向量所对应的融合向量,将该融合向量确定为目标URL所对应的指纹特征。
具体的,在本说明书实施例中对第一向量和第二向量进行融合处理,可以是计算第一向量和第二向量的加权和向量,其具体过程如下所示:
确定第一向量所对应的第一权重系数和第二向量所对应的第二权重系数;根据第一权重系数和第二权重系数计算第一向量和第二向量的加权和向量,将该加权和向量作为上述融合向量。
另外,需要说明的是,在本说明书实施例中,当目标URL中的URL共性结构信息所占的比例较大时,则说明该目标URL主要以字符信息为主,这时,α的取值较大,当目标URL中的URL非共性结构信息所占的比例较大时,则说明该目标URL主要以结构信息为主,这时,α的取值较小。
具体的,在本说明书实施例中,可以通过如下过程确定第一向量所对应的第一权重系数和第二向量所对应的第二权重系数:
计算目标URL中各个字符所对应的结构掩码值的和值;计算上述和值与目标URL的长度的比值;将上述比值确定为第一权重系数,将设定数值与第一权重系数的差值确定为第二权重系数;其中,上述结构掩码值位于第一数值和第二数值之间的范围内;目标URL的长度表征目标URL所包含字符的个数。
可选的,在一种具体实施方式中,上述第一数值可以为0,第二数值可以为1,上述设定数值的取值为1。当然,此处只是示例性说明,并不构成对本说明书实施例的限定。
其中,上述目标URL的长度可以理解为目标URL中字符的个数。例如,目标URL包含20个字符,则目标URL的长度为20。
为便于理解,下述将举例说明上述第一权重系数和第二权重系数的具体计算过程。
例如,在一种具体实施方式中,假设目标URL的长度为39,目标URL所对应的结构掩码序列为(0.98 0.99 0.96 0.89 0.92 0.99 0.98 0.92 0.91 0.88 0.91 0.93 0.950.94 0.89 0.97 0.88 0.99 0.92 0.91 0.93 0.96 0.98 0.91 0.90 0.88 0.76 0.840.87 0.92 0.97 0.98 0.05 0.09 0.99 0.98 0.89 0.91 0.93),则第一权重系数可以通过如下公式计算:
(0.98+0.99+0.96+0.89+0.92+0.99+0.98+0.92+0.91+0.88+0.91+0.93+0.95+0.94+0.89+0.97+0.88+0.99+0.92+0.91+0.93+0.96+0.98+0.91+0.90+0.88+0.76+0.84+0.87+0.92+0.97+0.98+0.05+0.09+0.99+0.98+0.89+0.91+0.93)/39=0.88
第二权重系数可以通过如下公式计算:1-0.88=0.12。当然,此处只是示例性说明,并不构成对本说明书实施例的限定。
其中,在一种具体实施方式中,上述第一权重系数和第二权重系数的和值为1。具体的,可以通过如下公式计算第一向量和第二向量的加权和向量:
其中,在上述公式中,
表示融合向量,α表示第一权重系数,1-α表示第二权重系数,emd表示第一向量,emd′表示第二向量。
方式二、
对上述第一向量和第二向量进行融合处理,得到第一向量和第二向量所对应的融合向量;按照设定的编码算法对上述融合向量进行压缩处理,将压缩后的融合向量确定为目标URL所对应的指纹特征。
需要说明的是,由于URL包括多个字符,每个字符所对应的向量为1×N维,因此,整个目标URL所对应的向量矩阵较大,相应的,融合向量矩阵也较大。这样,后续在根据指纹特征检测目标URL所对应的访问是否为黑灰产活动时,计算量较大。因此,在本说明书实施例中,在得到第一向量和第二向量所对应的融合向量后,还需要对该融合向量进行压缩处理。
在一种具体实施方式中,上述设定的编码算法可以为AutoEncoder算法,因此,在得到第一向量和第二向量的融合向量后,将该融合向量输入至AutoEncoder模型中,获取AutoEncoder模型的中间bottleneck层的输出结果,作为目标URL所对应的指纹特征。
另外,在执行上述步骤102之前,则需要预先训练Word2Vec模型,Word2Vec模型的具体训练过程如下所示:
在本说明书实施例中,可以将目标URL中的每个字符看作是Word2Vec模型中的一个word。在训练Word2Vec模型时,首先获取多个样本URL,按照每个样本URL的长度将该样本URL进行切分,对于长度为n的样本URL,该样本URL可以切分为url=<c1,c2,...,cn>。
需要说明的是,在训练Word2Vec模型时所使用的样本URL可以为与训练孪生神经网络模型时使用的样本URL为同一批样本URL,也可以为不同的样本URL,本说明书实施例并不对此进行限定。
为便于理解,下述以具体URL举例进行说明对URL进行切分的过程。
例如,假设某个样本URL如下所示:
样本URL:
/paychannelforalipay/limr9/9njst/zbvkdpfvhk1eem8o?orderid==r1o4qat6=
对上述URL进行切分后,切分的结果如下所示:
url=</,p,a,y,c,h,a,n,n,e,l,f,o,r,a,l,i,p,a,y,/,l,i,m,r,9,/,9,n,j,s,t,/,z,b,v,k,d,p,f,v,h,k,1,e,e,m,8,o,?,o,r,d,e,r,i,d,=,=,r,1,o,4,q,a,t,6,=>
对于每个样本URL,都进行上述切分处理;然后,针对每个样本URL中的每个字符,提取出上下窗口大小为C(其中,C为正整数)的上下字符关系,得到对应的样本,例如,URL中的字符ct所对应的样本如下所示:
s=(ct,<ct-C,ct-C+1,...,ct-1,ct+1,...,ct+C-1,ct+C>)
在得到所有样本URL中的所有字符所对应的上述样本后,将所有的上述样本输入至Skip-gram模型中进行训练,从而得到用于构成URL的各个字符所对应的分向量。例如,上述样本URL中的字符c1所对应的分向量记为:
e1=(e1,e2,...,eN)
在得到每个字符所对应的分向量后,则Word2Vec模型训练完毕,因此,训练Word2Vec模型实际上就是训练构成URL的各个字符所对应的分向量。
图2为本说明书实施例提供的URL指纹特征的提取方法的方法流程图之二,图2所示的方法,至少包括如下步骤:
步骤202,基于目标URL的字符信息,使用Word2Vec模型确定目标URL所对应的第一向量。
其中,上述第一向量中包含目标URL中各个字符所对应的分向量。
步骤204,将上述第一向量输入至预先训练的孪生神经网络模型中进行处理,获取孪生神经网络模型输出的结构掩码序列。
其中,上述结构掩码序列包括多个结构掩码值,且结构掩码值的个数与目标URL中的字符的个数相等。
步骤206,根据上述结构掩码序列,确定目标URL中的URL共性结构信息和URL非共性结构信息。
步骤208,针对URL共性结构信息中的各个字符,从第一向量中获取该字符所对应的分向量,针对URL非共性结构信息中的各个字符,使用指定分向量作为该字符所对应的分向量。
步骤210,将URL共性结构信息中各个字符所对应的分向量和URL非共性结构信息中各个字符所对应的分向量组成第二向量。
步骤212,计算第一向量和第二向量的加权和向量。
步骤214,通过AutoEncoder技术对上述加权和向量进行压缩处理,将压缩后的加权和向量确定为目标URL所对应的指纹特征。
一般的,URL主要是由协议、主机、端口、路径和URL地址参数五部分组成,而本说明书实施例提供的方法主要针对URL的路径部分进行处理,因此,本说明书实施例中,在执行上述步骤102基于目标URL的字符信息确定目标URL所对应的第一向量之前,还包括如下步骤:
确定目标URL中的URL路径信息;
相应的,上述步骤102,基于目标URL的字符信息确定目标URL所对应的第一向量,包括:
基于URL路径信息确定URL路径信息所对应的第一向量;
上述步骤104,确定目标URL中的URL共性结构信息和URL非共性结构信息,包括:
确定URL路径信息中的URL共性结构信息和URL非共性结构信息。
由于URL一般是由协议、主机、端口、路径和URL地址参数五部分组成,因此,在本说明书实施例中,可以直接截取目标URL中的第四部分及第四部分之后的部分,作为目标URL的URL路径信息。
图3为本说明书实施例提供的URL指纹特征的提取方法的方法流程图之三,图3所示的方法,至少包括如下步骤:
步骤302,确定目标URL中的URL路径信息。
步骤304,基于URL路径信息的字符信息,使用Word2Vec模型确定URL路径信息所对应的第一向量。
其中,上述第一向量中包含URL路径信息中各个字符所对应的分向量。
步骤306,将上述第一向量输入至预先训练的孪生神经网络模型中进行处理,获取孪生神经网络模型输出的结构掩码序列。
其中,结构掩码序列由多个结构掩码值构成,且结构掩码值的个数与URL路径信息中字符的个数相等。且各个结构掩码值为位于0和1之间的数值。
步骤308,根据上述结构掩码序列,确定URL路径信息中的URL共性结构信息和URL非共性结构信息。
当结构掩码值靠近0时,说明该结构掩码值所在位置处的字符属于URL非共性结构信息,当结构掩码值靠近1时,说明该结构掩码值所在位置处的字符属于URL共性结构信息。
步骤310,针对URL共性结构信息中的各个字符,从第一向量中获取该字符所对应的分向量,针对URL非共性结构信息中的各个字符,使用指定分向量作为该字符所对应的分向量。
例如,在本说明书实施例中,假设字符A属于URL共性结构信息,则直接从第一向量中获取字符A所对应的分向量;假设字符A属于URL非共性结构信息,则可以使用由0或者1构成的分向量作为字符A所对应的分向量。
步骤312,将URL共性结构信息中各个字符所对应的分向量和URL非共性结构信息中各个字符所对应的分向量组成第二向量。
步骤314,计算URL路径信息中各个字符所对应的结构掩码值的和值。
步骤316,计算上述和值和URL路径信息的长度的比值,将该比值作为第一向量所对应的第一权重系数,将设定数值与第一权重系数的差值确定为第二向量所对应的第二权重系数。
步骤318,根据第一权重系数和第二权重系数计算第一向量和第二向量的加权和向量。
步骤320,通过AutoEncoder技术对上述加权和向量进行压缩处理,将压缩后的加权和向量确定为目标URL所对应的指纹特征。
其中,上述实施例中各个步骤的具体实现过程可参考图1所示实施例,此处不再赘述。
本说明书实施例提供的方法的一种具有应用场景为识别黑灰产活动,因此,结合上述应用场景,图4示出了本说明书实施例提供的URL指纹特征的提取方法的方法流程图之四,图4所示的方法,至少包括如下步骤:
步骤402,拦截访问请求中的URL,并确定所拦截的URL中的URL路径信息。
步骤404,基于上述URL路径信息的字符信息,使用Word2Vec模型确定URL路径信息所对应的第一向量。
其中,上述第一向量中包含URL路径信息中各个字符所对应的分向量。
步骤406,将上述第一向量输入至预先训练的孪生神经网络模型中进行处理,获取孪生神经网络模型输出的结构掩码序列。
步骤408,根据上述结构掩码序列,确定URL路径信息中的URL共性结构信息和URL非共性结构信息。
步骤410,针对URL共性结构信息中的各个字符,从第一向量中获取该字符所对应的分向量,针对URL非共性结构信息中的各个字符,使用指定分向量作为该字符所对应的分向量。
步骤412,将URL共性结构信息中各个字符所对应的分向量和URL非共性结构信息中各个字符所对应的分向量组成第二向量。
步骤414,计算URL路径信息中各个字符所对应的结构掩码值的和值。
步骤416,计算上述和值和URL路径信息的长度的比值,将该比值作为第一向量所对应的第一权重系数,将设定数值与第一权重系数的差值确定为第二向量所对应的第二权重系数。
步骤418,根据第一权重系数和第二权重系数计算第一向量和第二向量的加权和向量。
步骤420,通过AutoEncoder技术对上述加权和向量进行压缩处理,将压缩后的加权和向量确定为所拦截的URL所对应的指纹特征。
步骤422,将上述指纹特征与预先建立的黑灰产指纹特征库中各个指纹特征进行匹配。
具体的,可以通过计算上述指纹特征与黑灰产指纹特征库中各个指纹特征之间的欧式距离的方式进行匹配,若是黑灰产指纹特征库中存在与上述指纹特征之间的欧式距离小于或等于设定阈值的指纹特征,则认为黑灰产指纹特征库中存在与上述指纹特征相匹配的指纹特征。
步骤424,若是黑灰产指纹特征库中存在与上述指纹特征相匹配的指纹特征,则确定所拦截的URL所对应的访问为黑灰产活动。
本说明书实施例提供的URL指纹特征的提取方法,根据目标URL的字符信息确定目标URL所对应的第一向量,并根据URL的共性结构信息、URL的非共性结构信息和上述第一向量,确定与目标URL的结构相关的第二向量,最后,根据第一向量和第二向量确定目标URL所对应的指纹特征;本实施例中,第一向量表征目标URL的字符信息,第二向量表征目标URL的结构信息,即在确定目标URL的指纹特征时,将目标URL的字符信息和结构信息均考虑在内,这样所提取的指纹特征可以更准确的表征目标URL,即准确性更高,即使对于结构性很强的目标URL,所提取出的指纹特征也是可以准确表征目标URL,因此,本实施例的方案,适用性较强、且提取的指纹特征的准确性高。
对应于本说明书图1-图4所示实施例提供的方法,基于相同的思路,本说明书实施例还提供了一种统一资源定位符URL指纹特征的提取装置,用于执行本说明书实施例提供的统一资源定位符URL指纹特征的提取方法,图5为本说明书实施例提供的URL指纹特征的提取装置的模块组成示意图,图5所示的装置,包括:
第一确定模块502,基于目标URL的字符信息确定目标URL所对应的第一向量;其中,第一向量包括目标URL中的各个字符所对应的分向量;
第二确定模块504,确定目标URL中的URL共性结构信息和URL非共性结构信息,并根据URL共性结构信息、URL非共性结构信息和第一向量,确定目标URL所对应的第二向量;其中,第二向量为表征目标URL的结构的向量;
第三确定模块506,根据第一向量和第二向量,确定目标URL所对应的指纹特征。
可选的,上述第三确定模块506,包括:
第一确定单元,对第一向量和第二向量进行融合处理,得到第一向量和第二向量所对应的融合向量,将融合向量确定为目标URL所对应的指纹特征;
或者,
第二确定单元,对第一向量和第二向量进行融合处理,得到第一向量和第二向量所对应的融合向量;按照设定编码算法对融合向量进行压缩处理,将压缩后的融合向量确定为目标URL所对应的指纹特征。
可选的,上述第一确定单元或者第二确定单元,具体用于:
确定第一向量所对应的第一权重系数和第二向量所对应的第二权重系数;根据第一权重系数和第二权重系数计算第一向量和第二向量的加权和向量,将加权和向量作为融合向量。
可选的,上述第一确定单元或者第二确定单元,还具体用于:
计算目标URL中各个字符所对应的结构掩码值的和值;其中,结构掩码值位于第一数值和第二数值之间的范围内;计算和值与目标URL的长度的比值;其中,目标URL的长度表征目标URL所包含字符的个数;将比值确定为第一权重系数,将设定数值与第一权重系数的差值确定为第二权重系数。
可选的,上述第二确定模块504,包括:
获取单元,将第一向量输入至预先训练的孪生神经网络模型中进行处理,获取孪生神经网络模型输出的结构掩码序列;其中,结构掩码序列中的各个结构掩码值位于第一数值和第二数值之间的范围内,且结构掩码值的个数与目标URL的长度一致;结构掩码值靠近第二数值时表征目标URL中对应位置处的字符属于URL共性结构信息,结构掩码值靠近第一数值时表征目标URL中对应位置处的字符属于URL非共性结构信息;
第三确定单元,根据结构掩码序列,确定URL共性结构信息和URL非共性结构信息。
可选的,上述第二确定模块504,还包括:
执行单元,针对URL共性结构信息所包含的各个字符,从第一向量获取字符所对应的分向量,以及,针对URL非共性结构信息所包含的各个字符,使用指定分向量作为字符所对应的分向量或者使用目标URL中同类型字符所对应分向量的平均值作为字符所对应的分向量;其中,字符类型包括大写字母、小写字母、数字和符号;
组成单元,将URL共性结构信息中各个字符所对应的分向量和URL非共性结构信息中各个字符所对应的分向量组成第二向量。
可选的,本说明书实施例提供的装置还包括:
第四确定模块,确定目标URL中的URL路径信息;
相应的,第一确定模块502,包括:
第四确定单元,基于URL路径信息确定URL路径信息所对应的第一向量;
第二确定模块504,包括:
第五确定单元,确定URL路径信息中的URL共性结构信息和URL非共性结构信息。
本说明书实施例提供的URL指纹特征的提取装置还可执行图1-图4中URL指纹特征的提取装置执行的方法,并实现URL指纹特征的提取装置在图1-图4所示实施例的功能,在此不再赘述。
本说明书实施例提供的URL指纹特征的提取装置,根据目标URL的字符信息确定目标URL所对应的第一向量,并根据URL的共性结构信息、URL的非共性结构信息和上述第一向量,确定与目标URL的结构相关的第二向量,最后,根据第一向量和第二向量确定目标URL所对应的指纹特征;本实施例中,第一向量表征目标URL的字符信息,第二向量表征目标URL的结构信息,即在确定目标URL的指纹特征时,将目标URL的字符信息和结构信息均考虑在内,这样所提取的指纹特征可以更准确的表征目标URL,即准确性更高,即使对于结构性很强的目标URL,所提取出的指纹特征也是可以准确表征目标URL,因此,本实施例的方案,适用性较强、且提取的指纹特征的准确性高。
进一步地,基于上述图1至图4所示的方法,本说明书实施例还提供了一种URL指纹特征的提取设备,如图6所示。
URL指纹特征的提取设备可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上的处理器601和存储器602,存储器602中可以存储有一个或一个以上存储应用程序或数据。其中,存储器602可以是短暂存储或持久存储。存储在存储器602的应用程序可以包括一个或一个以上模块(图示未示出),每个模块可以包括对URL指纹特征的提取设备中的一系列计算机可执行指令信息。更进一步地,处理器601可以设置为与存储器602通信,在URL指纹特征的提取设备上执行存储器602中的一系列计算机可执行指令信息。URL指纹特征的提取设备还可以包括一个或一个以上电源603,一个或一个以上有线或无线网络接口604,一个或一个以上输入输出接口605,一个或一个以上键盘606等。
在一个具体的实施例中,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至图4所示的方法,本说明书实施例还提供了一种存储介质,用于存储计算机可执行指令信息,一种具体的实施例中,该存储介质可以为U盘、光盘、硬盘等,该存储介质存储的计算机可执行指令信息在被处理器执行时,能实现以下流程:
基于目标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,因此,本实施例的方案,适用性较强、且提取的指纹特征的准确性高。
在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(Programmable Logic Device,PLD)(例如现场可编程门阵列(Field Programmable GateArray,FPGA))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片PLD上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(Hardware Description Language,HDL),而HDL也并非仅有一种,而是有许多种,如ABEL(Advanced Boolean Expression Language)、AHDL(Altera Hardware DescriptionLanguage)、Confluence、CUPL(Cornell University Programming Language)、HDCal、JHDL(Java Hardware Description Language)、Lava、Lola、MyHDL、PALASM、RHDL(RubyHardware Description Language)等,目前最普遍使用的是VHDL(Very-High-SpeedIntegrated Circuit Hardware Description Language)与Verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:ARC 625D、Atmel AT91SAM、Microchip PIC18F26K20以及Silicone Labs C8051F320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本申请时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本说明书实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令信息实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令信息到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令信息产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令信息也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令信息产生包括指令信息装置的制造品,该指令信息装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令信息也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令信息提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令信息、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请可以在由计算机执行的计算机可执行指令信息的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本申请,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。