CN115733635A - 一种漏洞定位方法、装置、设备及介质 - Google Patents
一种漏洞定位方法、装置、设备及介质 Download PDFInfo
- Publication number
- CN115733635A CN115733635A CN202110995044.2A CN202110995044A CN115733635A CN 115733635 A CN115733635 A CN 115733635A CN 202110995044 A CN202110995044 A CN 202110995044A CN 115733635 A CN115733635 A CN 115733635A
- Authority
- CN
- China
- Prior art keywords
- message
- field
- category
- vulnerability
- determining
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004891 communication Methods 0.000 claims abstract description 24
- 230000004044 response Effects 0.000 claims abstract description 19
- 238000004422 calculation algorithm Methods 0.000 claims description 25
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012545 processing Methods 0.000 claims description 9
- 230000004807 localization Effects 0.000 claims description 5
- 238000012360 testing method Methods 0.000 abstract description 13
- 239000011159 matrix material Substances 0.000 description 35
- 238000010586 diagram Methods 0.000 description 18
- 230000005540 biological transmission Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 230000008569 process Effects 0.000 description 5
- 230000004048 modification Effects 0.000 description 4
- 238000012986 modification Methods 0.000 description 4
- 238000004364 calculation method Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000001960 triggered effect Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000003064 k means clustering Methods 0.000 description 1
- 238000002865 local sequence alignment Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提供了一种漏洞定位方法、装置、设备及介质,在本申请中,获取用于与服务器进行正常通信的报文,并对该报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文,修改该第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据该服务器发送的响应结果,确定该每个第二报文中触发漏洞的每个第三报文,根据每个目标报文和每个第三报文中包含的每个字段的数值,确定该第一报文中触发漏洞的目标字段。在本申请中,基于每个目标报文和触发漏洞的每个第三报文中包含的每个字段的数值,确定触发漏洞的第一报文中触发漏洞的字段,从而提高了漏洞测试的精确度。
Description
技术领域
本申请涉及安全技术领域,尤其涉及一种漏洞定位方法、装置、设备及介质。
背景技术
随着计算机和网络技术的发展,智能家电设备逐渐接入到互联网中,但是增加用户的使用感受的同时,也带来了一些安全风险,例如智能家电设备进行通信时使用的传输协议可能存在漏洞等。
为了保障智能家电设备的安全运行,现有技术中通常采用模糊测试技术对传输协议进行漏洞挖掘。具体的,通过对传输协议进行解析及变异,根据变异后的传输协议,构建非法的测试用例,并向与智能家电通过传输协议进行通信的服务器发送该测试用例,从而引发服务器异常,以实现漏洞挖掘。
虽然现有技术中确定引发服务器异常的测试用例,但是无法确定是测试用例中的哪一个或者哪几个字段触发了漏洞,也就导致无法准确地基于测试用例确定触发漏洞的传输协议的字段。
发明内容
本申请提供了一种漏洞定位方法、装置、设备及介质,用以解决现有技术中无法准确地基于测试用例确定触发漏洞的传输协议的字段,导致的漏洞定位的精确度低的问题。
第一方面,本申请提供了一种漏洞定位方法,所述方法包括:
获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
第二方面,本申请还提供了一种漏洞定位装置,所述装置包括:
分类模块,用于获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
处理模块,用于修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
漏洞定位模块,用于根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
第三方面,本申请还提供一种电子设备,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现上述所述的漏洞定位方法的步骤。
第四方面,本申请还提供一种计算机可读存储介质,其存储有计算机程序,所述计算机程序被处理器执行时实现上述所述的漏洞定位方法的步骤。
在本申请中,获取用于与服务器进行正常通信的报文,并对该报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文,修改该第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据该服务器发送的响应结果,确定该每个第二报文中触发漏洞的每个第三报文,根据每个目标报文和每个第三报文中包含的每个字段的数值,确定该第一报文中触发漏洞的目标字段。在本申请中,基于每个目标报文和触发漏洞的每个第三报文中包含的每个字段的数值,确定触发漏洞的第一报文中触发漏洞的字段,从而提高了漏洞测试的精确度。
附图说明
为了更清楚地说明本申请的技术方案,下面将对实施例描述中所需要使用的附图作简要介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一些实施例提供的一种漏洞定位过程示意图;
图2为本申请提供的任一报文与第一报文通过Smith-Waterman算法构建的矩阵的示意图;
图3为本申请提供的决策表和差别矩阵的示意图;
图4为本申请提供的第二报文的决策表;
图5为本申请提供的漏洞定位装置的结构示意图;
图6为本申请提供的一种电子设备结构示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在本申请中,当确定了触发漏洞的第一报文后,则获取用于与服务器进行正常通信的报文,并对该报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文,修改该第一报文中至少一个字段的数值,得到对应的每个第二报文,并每个第二报文发送给服务器,根据该服务器发送的响应结果,确定该每个第二报文中触发漏洞的每个第三报文,根据每个目标报文和每个第三报文中包含的每个字段的数值,确定该第一报文中触发漏洞的目标字段。
为了准确地确定触发漏洞的报文中触发漏洞的传输协议的字段,提高了漏洞测试的精确度,本申请实施例提供了一种漏洞定位方法、装置、设备及介质。
图1为本申请一些实施例提供的一种漏洞定位过程示意图,该过程包括:
S101:获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文。
本申请提供的一种漏洞定位方法应用于可以与服务器进行通信的电子设备,该电子设备可以为计算机、终端设备等。
在本申请中,服务器向服务器发送测试用例的第一报文,服务器对该第一报文进行响应,并发送响应结果,根据接收到的响应结果,确定该第一报文是否触发了漏洞。若该响应结果与该第一报文对应的正常响应结果不一致,例如该响应结果为服务器无法响应该第一报文,则确定该第一报文触发了漏洞。
为了提高漏洞定位的准确性,会选择多个与第一报文相似度高的目标报文。具体的,在本申请中,在获取到用于与服务器进行正常通信的报文后,对该报文进行分类,其中在本申请中在对报文进行分类时,是根据报文之间的相似度进行分类的,使得每个类别中的任两个报文的相似度不超于阈值,再比较触发漏洞的第一报文与每个类别的报文的相似度,确定与该触发漏洞的第一报文相似度最高的类别中包含的每个报文为目标报文。
其中,在本申请中,在计算触发漏洞的第一报文与每个类别中包含的报文的相似度时,针对每个类别,分别计算该第一报文与该类别包含的每个报文的相似度,在确定目标报文时,可以将所有类别中相似度总和最高的类别中包含的每个报文确定为目标报文,或者将所有类别中相似度的平均值最高的类别中包含的每个报文确定为目标报文。具体的,在本申请中,可以采用Smith-Waterman动态规划算法,根据第一报文每个字段的数值以及每个目标报文的每个字段的数值,计算第一报文与每个报文之间的相似度。
在本申请中,在计算第一报文与每个报文之间的相似度时,是根据第一报文和每个目标报文的每个字段的数值进行计算的。针对任一报文,该报文与第一报文的相似度越高,则该报文中与该第一报文中数值相同的字段数量越多,则排除的未触发漏洞的字段就越多。相对的,多个目标报文与第一报文的数值不同的字段的数量会较小,也就是触发漏洞的字段的范围较小。因此,在本申请中,会选择相似度最高的类别中的每个报文作为目标报文。
S102:修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文。
第一报文中每个字段可能都会导致漏洞,或者字段之间的组合可能会触发漏洞,为了确定第一报文中到底哪个字段触发了漏洞,或者哪几个字段的组合触发了漏洞,在本申请中,会对第一报文中的一个字段或者是几个字段的数值进行修改,并根据修改后得到的每个第二报文触发漏洞的情况,确定该第一报文中触发漏洞的字段的范围。
在本申请中,可能是第一报文的一个字段的作用触发了漏洞,还可能是该第一报文中的多个字段的共同作用触发了漏洞,因此,在本申请中,在修改触发漏洞的第一报文中的字段的数值时,可以针对每个字段的数值分别进行修改,或者同时修改至少两个字段的数值。即在本申请中,对于有N个字段的第一报文的字段进行调整时,最多能够得到个第二报文。
具体的,在本申请中,修改该第一报文中的至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,接收服务器发送的响应结果,根据该响应结果,确定每个第二报文中触发漏洞的第三报文,进一步缩小该第一报文中触发漏洞的字段的范围。
S103:根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
在本申请中,当确定从第二报文中确定了触发漏洞的第三报文之后,该第三报文与第一报文相比,存在至少一个数值不同的字段,由于该第一报文可以触发漏洞,该第三报文同样可以触发漏洞,则该至少一个数值不同的字段为触发漏洞的字段的概率极少,但是该第三报文中可能会引入新的触发漏洞的变量,因此不能确保该至少一个数值不同的字段为非触发漏洞的字段。相应地,也就无法确定触发漏洞的字段。因此,引入了目标报文,进一步地和该第三报文进行比较,以确定第一报文中触发漏洞的目标字段。
具体的,在本申请中会根据不会触发漏洞的目标报文和该第三报文中包含的每个字段的数值,确定该第一报文中触发漏洞的目标字段。
在本申请中,基于每个目标报文和每个第三报文中包含的每个字段的数值,确定第一报文中触发漏洞的字段,实现了准确地确定第一报文中触发漏洞的传输协议的字段,提高了漏洞测试的精确度。
为了对与服务器进行正常通信的报文进行分类,并提高分类的准确性,在上述实施例的基础上,在本申请中,所述对所述报文进行分类包括:
针对预先设置的每个类别数,对所述报文进行分类,获取对应每个类别包含的报文;根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和;
将类别数按照数值的大小进行排列,若任一类别数对应的误差平方和与该类别数相邻的前一类别数对应的误差平方和的差值小于预设的数值,则将该类别数对应的分类结果确定为所述报文的分类结果。
在本申请中预先设置了多个类别数,为了确定具体哪个类别数是最合适的类别数,在本申请中基于每个类别数分别对报文进行分类,获取对应每个类别包含的报文。
在对报文进行分类时,可以采用K-means算法,K-means算法是一种利用迭代求解聚类的算法,通过根据预设的K个类别数,并计算每个类别的聚类中心与其余数据对象的欧氏距离,依据欧氏距离确定每个数据对象所属的类别,聚类中心周围的数据对象代表一个聚类。聚类中每增加一个数据对象,其聚类中心需根据现有数据对象重新计算,该过程不断进行,直到符合结束条件。
传统K-means聚类算法利用欧氏距离划分数据对象的聚类簇,数据对象之间欧氏距离数值越小说明数据对象的相似度越大,欧氏距离数值越大则说相似度越小。但是这种基于欧氏距离的聚类算法无法直接将报文的差异以数值形式表示,在处理报文时具有一定的局限性。
为了实现对报文之间的相似性和差异性的直观对比,在本申请中,对原始K-means算法进行了改进,使用两个报文的相似度代替欧式距离,采用Smith-Waterman动态规划算法计算不同报文之间的相似度,替代K-means算法的欧式距离,对报文进行分类。
在本申请中,在使用K-means算法和Smith-Waterman动态规划算法进行分类时,类别数越多,分类越准确,并且在分类结果中同一类别的报文彼此之间距离越小,每个报文与该报文所在类别的中心报文的距离越近,即误差平方和(Sum of Squares Errors,SSE)越小。随着类别数的增多每个类别中的报文的紧凑程度急速增加,误差平方和随之快速下降,但是当类别数达到某一个数值时,继续增加类别数的数值大小,也不会对每个类别中报文的紧凑程度带来影响,此时误差平方和的减小速度变慢。
在本申请中,为了保证对与服务器正常通信的报文进行分类时,得到最好的分类结果,并且不会影响分类的效率,在本申请中,预先设置有多个类别数,然后针对每个类别数分别获取分类结果,并根据每个类别数对应的误差平方和,选择最优的分类结果作为获取的报文的分类结果。
具体的,在本申请中,针对预先设置的每个类别数,采用K-means算法和Smith-Waterman动态规划算法对获取到的报文进行分类,针对预先设置的每个类别数获取分类结果,并根据该类别数对应的每个类别中包含的报文,以及每个类别中包含的报文到该报文所在类别的中心报文的距离,确定该类别数对应的误差平方和。将所有的类别数按照数值的大小进行排列,并计算相邻的两个类别数对应的误差平方和的差值,按照类别数的排列顺序,确定首个小于预设的数值的差值,并将该差值对应的两个类别数中数值较小的类别数对应的分类结果确定为报文的分类结果。
为了确定每个类别数对应的误差平方和,基于每个类别数对应的误差平方和,确定报文最优的分类结果,在上述各实施例的基础上,在本申请中,所述根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和包括:
针对该类别数对应的每个类别,确定该类别中包含的每个报文与该类别的中心报文的距离的平方;
将该类别数对应的每个类别的距离的平方的和,确定为该类别数对应的误差平方和。
在本申请中,针对每个类别数,在确定该类别数对应的误差平方和时,计算该类别数的每个类别中包含的每个报文与该类别的中心报文的距离的平方,再将该类别数对应的每个类别中的每个报文到中心报文的距离的和,确定为该类别数对应的误差平方和。
为了确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文,在上述各实施例的基础上,在本申请中,所述确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文包括:
根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度;
针对每个类别,根据该类别中的报文的数量以及该类别中的每个报文与第一报文的相似度,确定该类别中的报文与所述第一报文的平均相似度;
将与所述第一报文的平均相似度最高的类别中包含的每个报文确定为每个目标报文。
在本申请中,将类别数按照数值的大小进行排列,若任一类别数对应的误差平方和与该类别数相邻的前一类别数对应的误差平方和的差值小于预设的数值之后,将该类别数对应的分类结果确定为获取的用于正常通信的报文的分类结果,基于该分类结果,确定与触发漏洞的第一报文相似度最高的类别。首先,确定获取的每个报文与该第一报文的相似度,然后,针对每个类别,计算该类别中的报文与该第一报文的相似度的平均值,并将计算得到的平均相似度,确定为该类别与该第一报文的相似度,识别与该第一报文的相似度最高的类别,并将与该第一报文的相似度最高的类别中包含的每个报文确定为每个目标报文。其中,在计算每个报文与第一报文的相似度时,根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度。
具体的,在本申请中,在计算每个类别与第一报文的平均相似度时,采用公式进行计算,其中Q(k,t)表示第k个类别的平均相似度,t表示触发漏洞的第一报文,Tki表示第k类别中的第i个报文,S(Tki,t)表示第k类别中的第i个报文和第一报文的相似度,mk表示第k类别中的报文数量。
在本申请中,该与第一报文的平均相似度最高的类别中包含的每个报文,也被称为相似流量聚类报文,相似流量聚类报文是指在格式和内容上与触发漏洞的第一报文非常相似,但却不会触发漏洞的正常通信报文。
为了确定每个报文与第一报文的相似度,在上述各实施例的基础上,在本申请中,所述根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度包括:
针对任一报文,根据该报文及所述第一报文的每个字段以及每个字段的数值,采用Smith-Waterman算法,计算该报文与第一报文的相似度。
在本申请中,在确定每个报文和第一报文的相似度时,采用Smith-Waterman算法,计算该报文与第一报文的相似度。
具体的,Smith-Waterman算法是一种局部序列比对算法,其原理是利用矩阵的迭代计算来计算序列之间的相似性,对于长度为m的报文和长度为m的第一报文,构造一个大小为(m+1)×(m+1)的矩阵H,其中长度为m的报文即包含有m个字段的报文。矩阵元素Hij的计算方法为:
Hi,0=-i,H0,j=-j,H0,0=0
在申请中,该矩阵H的行的编号分别为(0,1,……m),列的编号分别为(0,1,……m),其中,i∈[0,m],j∈[0,m]。在确定矩阵H中元素的数值时,引入了中间变量Dij。具体的,对于长度为m的报文和长度为m的第一报文,构造一个大小为m×m的矩阵D,Dij为该矩阵D的矩阵元素,其中i∈[1,m],j∈[1,m]。具体的,根据报文中的任一字段的在该报文中的位置和数值,以及第一报文中任一字段在该第一报文中的位置和数值的大小关系确定Dij,若数值相同,则用于计算矩阵H的中间变量Dij=2;若不相同,则Dij=-1。例如,若报文中第三个字段的数值为2,第一报文中的第二个字段的数值为1,则该矩阵D中,元素D32=-1。在确定了矩阵D中的Dij的值后,根据该Dij的值,确定矩阵H中每个元素的值。并将矩阵H的最后一列和最后一行中的元素的最大值确定为该报文与第一报文的相似度。
图2为本申请提供的任一报文与第一报文通过Smith-Waterman算法构建的矩阵的示意图,如该图2所述,任一报文的字段为“bdegeeyyxg”,第一报文的字段为“bcdggex”,该报文与第一报文通过Smith-Waterman算法构建的矩阵如图2所示,该矩阵的最后一列与最后一行中元素的最大值为4,则该报文与第一报文的相似度为4。
为了确定第一报文中触发漏洞的传输协议的字段,提高漏洞定位的精确度,在上述各实施例的基础上,在本申请中,所述根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段包括:
统计所述每个目标报文和所述每个第三报文中每个字段的数值,针对所述每个目标报文和所述每个第三报文中的任两个报文,确定该两个报文中数值不同的字段组合;
识别在每个字段组合中均存在的每个第一字段;
判断是否存在数值不超过两种非零值的第二字段;
若存在,则将所述第二字段和所述每个第一字段确定为所述第一报文中触发漏洞的目标字段。
为了确定第一报文中触发漏洞的字段,提高漏洞定位的精确度,在本申请中,会根据与该第一报文的相似度最高的每个目标报文,以及修改该第一报文的至少一个字段的数值后依旧能够触发漏洞的每个第三报文,确定该第一报文中触发漏洞的目标字段。
具体的,在本申请中,针对每个字段,统计该字段在每个目标报文和每个第三报文中的数值,然后从每个目标报文和该每个第三报文中的任意选取两个报文,根据统计的该字段的数值,确定该两个报文中该字段的数值是否相同。并比较该两个报文中每个字段的数值,确定数值不同的字段组合,该字段组合为触发漏洞的字段。在针对任意两个报文都确定了数值不同的字段组合后,识别在每个字段组合中都存在的每个第一字段,该第一字段即为触发漏洞的字段。但是,每个第一字段可能不是触发漏洞的全部字段,有可能是每个第一字段与其他字段组合触发了漏洞。因此,要从所有的字段中识别可能与每个第一字段组合,导致了触发漏洞的第二字段,该第二字段为数值不超过两种非零值的字段。若存在数值不超过两种非零值的第二字段,则将该第二字段和每个第一字段的组合确定为第一报文中触发漏洞的目标字段。
例如,在本申请中,在每个字段组合中均存在的每个第一字段为字段a和字段b,数值不超过两种非零值的第二字段为字段c,则第一报文中触发漏洞的目标字段为字段a和字段c,或是字段b和字段c。
其中,在本申请中,是基于粗糙集理论中基于差别矩阵的属性约简算法,确定第一报文中触发漏洞的目标字段。具体的,根据每个目标报文和每个第三报文构成用于进行属性约简的决策表,再将该决策表转化为差别矩阵。其中,该差别矩阵中的元素值为每个目标报文和每个第三报文中的任两个报文中数值不同的字段组合,在每个字段组合中均存在的每个第一字段为该差别矩阵的最小析取范式中每个元素,数值不超过两种非零值的第二字段为该差别矩阵的核属性,第一报文中触发漏洞的目标字段为决策表中的最简属性。
该差别矩阵中的元素定义为:其中,CD(i,j)表示差别矩阵中的元素,xi和xj表示两个报文,d(xi)和d(xj)表示xi和xj表示两个报文在同一字段的数值,P表示xi和xj两个报文中数值不同的字段组合,Mk表示xi和xj两个报文中数值不同的字段。
其中,差别矩阵对应有一个差别函数fc,根据该差别函数fc可以计算该差别矩阵的最小析取范式,差别函数fc的定义为:fc=∧Tij,CD(i,j)≠0;Tij=∨Mk,Mk∈CD(i,j),其中,CD(i,j)表示差别矩阵中的元素,Tij表示矩阵中任意两个元素的析取,Mk表示任意两个报文中数值不同的字段。
其中,核属性的定义为:Core(P)={Mk∈P,CD(i,j)={Mk}},其中,Core(P)表示数值不超过两种非零值的第二字段,即该差别矩阵的核属性,Mk表示任意两个报文中数值不同的字段,CD(i,j)表示差别矩阵中的元素,P表示任意报文中数值不同的字段组合。
图3为本申请提供的决策表和差别矩阵的示意图,如该图3所示,该决策表中包括U1、U2、U3、U4和U5五个报文,其中每个报文都包含a、b、c、和d字段,其中报文U2和U4为可以触发漏洞的第三报文,U1、U3和U5为与触发漏洞的第一报文相似度最高的目标报文。基于该决策表,得到该图3中的差别矩阵,根据该差别矩阵以及上述实施例中提到的差别函数fc的定义,计算出该图3中的差别矩阵的核属性为c,差别函数fc=(a∨b∨c)∧(a∨d)∧(a∨c∨d)∧(a∨b∨c∨d)∧(a∨d)∧(a∨b∨d),其中,该差别函数fc的最小析取范式为a∨d,根据核属性c确定该决策表的最简属性为{a,c}或{c,d}。则第一报文中的字段a和字段c共同作用触发了漏洞,或是第一报文中的字段c和字段d共同作用触发了漏洞。
为了确定第一报文中触发漏洞的传输协议的字段,提高漏洞定位的精确度,在上述各实施例的基础上,在本申请中,所述方法还包括:
若不存在数值不超过两种非零值的第二字段,则将所述每个第一字段确定为所述第一报文中触发漏洞的目标字段。
在本申请中,若不存在数值不超过两种非零值的第二字段,则将第一字段确定为第一报文中触发漏洞的目标字段。
图4为本申请提供的第二报文的决策表,在该表中将报文的N个字段看作N个条件属性,将是否触发漏洞看作是决策属性。每个字段的取值有两种:“1”代表触发漏洞的第一报文中该字段的数值,“random”代表对第一报文中的该字段进行了修改。每行数据组成一条第二报文,重新发送给服务器,并根据服务器发送的响应结果,记录是否能触发漏洞。
图5为本申请提供的漏洞定位装置的结构示意图,如图5所示,该装置包括:
分类模块501,用于获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
处理模块502,用于修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
漏洞定位模块503,用于根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
在一种可能的实施方式中,所述分类模块501,具体用于针对预先设置的每个类别数,对所述报文进行分类,获取对应每个类别包含的报文;根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和;将类别数按照数值的大小进行排列,若任一类别数对应的误差平方和与该类别数相邻的前一类别数对应的误差平方和的差值小于预设的数值,则将该类别数对应的分类结果确定为所述报文的分类结果。
在一种可能的实施方式中,所述分类模块501,具体用于针对该类别数对应的每个类别,确定该类别中包含的每个报文与该类别的中心报文的距离的平方;将该类别数对应的每个类别的距离的平方的和,确定为该类别数对应的误差平方和。
在一种可能的实施方式中,所述漏洞定位模块503,具体用于根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度;针对每个类别,根据该类别中的报文的数量以及该类别中的每个报文与第一报文的相似度,确定该类别中的报文与所述第一报文的平均相似度;将与所述第一报文的平均相似度最高的类别中包含的每个报文确定为每个目标报文。
在一种可能的实施方式中,所所述漏洞定位模块503,具体用于针对任一报文,根据该报文及所述第一报文的每个字段以及每个字段的数值,采用Smith-Waterman算法,计算该报文与第一报文的相似度。
在一种可能的实施方式中,所述漏洞定位模块503,具体用于统计所述每个目标报文和所述每个第三报文中每个字段的数值,针对所述每个目标报文和所述每个第三报文中的任两个报文,确定该两个报文中数值不同的字段组合;识别在每个字段组合中均存在的每个第一字段;判断是否存在数值不超过两种非零值的第二字段;若存在,则将所述第二字段和所述每个第一字段的组合确定为所述第一报文中触发漏洞的目标字段。
在一种可能的实施方式中,所述漏洞定位模块503,还用于若不存在数值不超过两种非零值的第二字段,则将所述每个第一字段确定为所述第一报文中触发漏洞的目标字段。
图6为本申请提供的一种电子设备结构示意图,在上述各实施例的基础上,本申请还提供了一种电子设备,如图6所示,包括:处理器601、通信接口602、存储器603和通信总线604,其中,处理器601,通信接口602,存储器603通过通信总线604完成相互间的通信;
所述存储器603中存储有计算机程序,当所述程序被所述处理器601执行时,使得所述处理器601执行如下步骤:
获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
在一种可能的实施方式中,所述对所述报文进行分类包括:
针对预先设置的每个类别数,对所述报文进行分类,获取对应每个类别包含的报文;根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和;
将类别数按照数值的大小进行排列,若任一类别数对应的误差平方和与该类别数相邻的前一类别数对应的误差平方和的差值小于预设的数值,则将该类别数对应的分类结果确定为所述报文的分类结果。
在一种可能的实施方式中,所述根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和包括:
针对该类别数对应的每个类别,确定该类别中包含的每个报文与该类别的中心报文的距离的平方;
将该类别数对应的每个类别的距离的平方的和,确定为该类别数对应的误差平方和。
在一种可能的实施方式中,所述确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文包括:
根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度;
针对每个类别,根据该类别中的报文的数量以及该类别中的每个报文与第一报文的相似度,确定该类别中的报文与所述第一报文的平均相似度;
将与所述第一报文的平均相似度最高的类别中包含的每个报文确定为每个目标报文。
在一种可能的实施方式中,所述根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度包括:
针对任一报文,根据该报文及所述第一报文的每个字段以及每个字段的数值,采用Smith-Waterman算法,计算该报文与第一报文的相似度。
在一种可能的实施方式中,所述根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段包括:
统计所述每个目标报文和所述每个第三报文中每个字段的数值,针对所述每个目标报文和所述每个第三报文中的任两个报文,确定该两个报文中数值不同的字段组合;
识别在每个字段组合中均存在的每个第一字段;
判断是否存在数值不超过两种非零值的第二字段;
若存在,则将所述第二字段和所述每个第一字段的组合确定为所述第一报文中触发漏洞的目标字段。
在一种可能的实施方式中,所述方法还包括:
若不存在数值不超过两种非零值的第二字段,则将所述每个第一字段确定为所述第一报文中触发漏洞的目标字段。
由于上述电子设备解决问题的原理与漏洞定位方法相似,因此上述电子设备的实施可以参见上述实施例,重复之处不再赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口602用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(RandomAccess Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选地,存储器还可以是至少一个位于远离前述处理器的存储装置。上述处理器可以是通用处理器,包括中央处理器、网络处理器(Network Processor,NP)等;还可以是数字指令处理器(Digital Signal Processing,DSP)、专用集成电路、现场可编程门陈列或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
在上述各实施例的基础上,本申请还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有可由处理器执行的计算机程序,当所述程序在所述处理器上运行时,使得所述处理器执行时实现如下步骤:
获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
在一种可能的实施方式中,所述对所述报文进行分类包括:
针对预先设置的每个类别数,对所述报文进行分类,获取对应每个类别包含的报文;根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和;
将类别数按照数值的大小进行排列,若任一类别数对应的误差平方和与该类别数相邻的前一类别数对应的误差平方和的差值小于预设的数值,则将该类别数对应的分类结果确定为所述报文的分类结果。
在一种可能的实施方式中,所述根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和包括:
针对该类别数对应的每个类别,确定该类别中包含的每个报文与该类别的中心报文的距离的平方;
将该类别数对应的每个类别的距离的平方的和,确定为该类别数对应的误差平方和。
在一种可能的实施方式中,所述确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文包括:
根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度;
针对每个类别,根据该类别中的报文的数量以及该类别中的每个报文与第一报文的相似度,确定该类别中的报文与所述第一报文的平均相似度;
将与所述第一报文的平均相似度最高的类别中包含的每个报文确定为每个目标报文。
在一种可能的实施方式中,所述根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度包括:
针对任一报文,根据该报文及所述第一报文的每个字段以及每个字段的数值,采用Smith-Waterman算法,计算该报文与第一报文的相似度。
在一种可能的实施方式中,所述根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段包括:
统计所述每个目标报文和所述每个第三报文中每个字段的数值,针对所述每个目标报文和所述每个第三报文中的任两个报文,确定该两个报文中数值不同的字段组合;
识别在每个字段组合中均存在的每个第一字段;
判断是否存在数值不超过两种非零值的第二字段;
若存在,则将所述第二字段和所述每个第一字段的组合确定为所述第一报文中触发漏洞的目标字段。
在一种可能的实施方式中,所述方法还包括:
若不存在数值不超过两种非零值的第二字段,则将所述每个第一字段确定为所述第一报文中触发漏洞的目标字段。
由于上述提供的计算机可读取介质解决问题的原理与漏洞定位方法相似,因此处理器执行上述计算机可读取介质中的计算机程序后,实现的步骤可以参见上述实施例,重复之处不再赘述。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种漏洞定位方法,其特征在于,所述方法包括:
获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
2.根据权利要求1所述的方法,其特征在于,所述对所述报文进行分类包括:
针对预先设置的每个类别数,对所述报文进行分类,获取对应每个类别包含的报文;根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和;
将类别数按照数值的大小进行排列,若任一类别数对应的误差平方和与该类别数相邻的前一类别数对应的误差平方和的差值小于预设的数值,则将该类别数对应的分类结果确定为所述报文的分类结果。
3.根据权利要求2所述的方法,其特征在于,所述根据该类别数对应的每个类别中包含的报文及每个类别的中心报文的距离,确定该类别数对应的误差平方和包括:
针对该类别数对应的每个类别,确定该类别中包含的每个报文与该类别的中心报文的距离的平方;
将该类别数对应的每个类别的距离的平方的和,确定为该类别数对应的误差平方和。
4.根据权利要求1所述的方法,其特征在于,所述确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文包括:
根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度;
针对每个类别,根据该类别中的报文的数量以及该类别中的每个报文与第一报文的相似度,确定该类别中的报文与所述第一报文的平均相似度;
将与所述第一报文的平均相似度最高的类别中包含的每个报文确定为每个目标报文。
5.根据权利要求4所述的方法,其特征在于,所述根据每个报文与第一报文的每个字段的数值,确定每个报文与所述第一报文的相似度包括:
针对任一报文,根据该报文及所述第一报文的每个字段以及每个字段的数值,采用Smith-Waterman算法,计算该报文与第一报文的相似度。
6.根据权利要求1所述的方法,其特征在于,所述根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段包括:
统计所述每个目标报文和所述每个第三报文中每个字段的数值,针对所述每个目标报文和所述每个第三报文中的任两个报文,确定该两个报文中数值不同的字段组合;
识别在每个字段组合中均存在的每个第一字段;
判断是否存在数值不超过两种非零值的第二字段;
若存在,则将所述第二字段和所述每个第一字段的组合确定为所述第一报文中触发漏洞的目标字段。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
若不存在数值不超过两种非零值的第二字段,则将所述每个第一字段确定为所述第一报文中触发漏洞的目标字段。
8.一种漏洞定位装置,其特征在于,所述装置包括:
分类模块,用于获取用于与服务器进行正常通信的报文,并对所述报文进行分类,确定与触发漏洞的第一报文相似度最高的类别包含的每个目标报文;
处理模块,用于修改所述第一报文中至少一个字段的数值,并将修改后得到的每个第二报文发送给服务器,根据所述服务器发送的响应结果,确定所述每个第二报文中触发漏洞的每个第三报文;
漏洞定位模块,用于根据每个目标报文和每个第三报文中包含的每个字段的数值,确定所述第一报文中触发漏洞的目标字段。
9.一种电子设备,其特征在于,所述电子设备至少包括处理器和存储器,所述处理器用于执行存储器中存储的计算机程序时实现权利要求1-7中任一所述的漏洞定位方法的步骤。
10.一种计算机可读存储介质,其特征在于,其存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7中任一所述的漏洞定位方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110995044.2A CN115733635A (zh) | 2021-08-27 | 2021-08-27 | 一种漏洞定位方法、装置、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110995044.2A CN115733635A (zh) | 2021-08-27 | 2021-08-27 | 一种漏洞定位方法、装置、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115733635A true CN115733635A (zh) | 2023-03-03 |
Family
ID=85290286
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110995044.2A Pending CN115733635A (zh) | 2021-08-27 | 2021-08-27 | 一种漏洞定位方法、装置、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115733635A (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300698A1 (en) * | 2016-04-19 | 2017-10-19 | Synack, Inc. | Distributed System for Discovery of Vulnerabilities in Applications Including Detecting and/or Filtering Out Vulnerability Duplicates |
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
CN112422515A (zh) * | 2020-10-27 | 2021-02-26 | 锐捷网络股份有限公司 | 一种协议漏洞的测试方法、装置及存储介质 |
-
2021
- 2021-08-27 CN CN202110995044.2A patent/CN115733635A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170300698A1 (en) * | 2016-04-19 | 2017-10-19 | Synack, Inc. | Distributed System for Discovery of Vulnerabilities in Applications Including Detecting and/or Filtering Out Vulnerability Duplicates |
CN110336827A (zh) * | 2019-07-15 | 2019-10-15 | 北京工业大学 | 一种基于异常字段定位的Modbus TCP协议模糊测试方法 |
CN112422515A (zh) * | 2020-10-27 | 2021-02-26 | 锐捷网络股份有限公司 | 一种协议漏洞的测试方法、装置及存储介质 |
Non-Patent Citations (1)
Title |
---|
冯文倩: "基于异常字段定位的Modbus TCP协议漏洞挖掘方法研究", 《信息科技辑》, 15 June 2021 (2021-06-15), pages 1 - 45 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105915555B (zh) | 网络异常行为的检测方法及系统 | |
Kuang et al. | An anomaly intrusion detection method using the CSI-KNN algorithm | |
US20220156367A1 (en) | System and method for detection of anomalous controller area network (can) messages | |
Bai et al. | Unsuccessful story about few shot malware family classification and siamese network to the rescue | |
CN110110160B (zh) | 确定数据异常的方法及装置 | |
CN107273746A (zh) | 一种基于apk字符串特征的变种恶意软件检测方法 | |
Chandolikar et al. | Efficient algorithm for intrusion attack classification by analyzing KDD Cup 99 | |
CN114556360A (zh) | 生成用于机器学习模型的训练数据 | |
CN104504334A (zh) | 用于评估分类规则选择性的系统及方法 | |
CN111291824A (zh) | 时间序列的处理方法、装置、电子设备和计算机可读介质 | |
CN114780606B (zh) | 一种大数据挖掘方法及系统 | |
CN114662602A (zh) | 一种离群点检测方法、装置、电子设备及存储介质 | |
CN106301979B (zh) | 检测异常渠道的方法和系统 | |
CN117312825A (zh) | 一种目标行为检测方法、装置、电子设备及存储介质 | |
CN115733635A (zh) | 一种漏洞定位方法、装置、设备及介质 | |
CN109800775B (zh) | 文件聚类方法、装置、设备及可读介质 | |
CN107403199B (zh) | 数据处理方法和装置 | |
CN111291370B (zh) | 网络数据入侵检测方法、系统、终端及存储介质 | |
CN112073360B (zh) | 超文本传输数据的检测方法、装置、终端设备及介质 | |
CN113900936A (zh) | 基于关联特征分析的接口测试方法、装置、设备及介质 | |
CN114528908A (zh) | 网络请求数据分类模型训练方法、分类方法及存储介质 | |
CN114398633A (zh) | 一种蜜罐攻击者的画像分析方法及装置 | |
CN109583590B (zh) | 数据处理方法及数据处理装置 | |
CN113742730A (zh) | 恶意代码检测方法、系统及计算机可读存储介质 | |
Lugo-Cordero et al. | What defines an intruder? an intelligent approach |
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 |