一种字节数组检测方法、装置及计算机可读存储介质制造方法及图纸

技术编号:33284590 阅读:19 留言:0更新日期:2022-04-30 23:49
根据本申请方案所提供的一种字节数组检测方法、装置及计算机可读存储介质,根据插桩技术将检测逻辑插入到被测应用程序;在检测到包括有效污点数据的第一字节数组经过变化函数得到第二字节数组之后,获取第一字节数组与第二字节数组的第一相似度;若第一相似度取值为零,则对第二字节数组进行状态位标记;在第二字节数组执行敏感函数时,根据第二字节数组是否具有状态位标记,确定有效污点数据在第二字节数组中的传播结果状态。通过本申请方案的实施,对经过变化函数后的字节数组进行相似度验证,对相似度为零的字节数组进行状态位标记,根据状态位标记确定有效污点数据在字节数组中的传播结果状态,提升了基于数据流跟踪方法识别漏洞的准确性。法识别漏洞的准确性。法识别漏洞的准确性。

【技术实现步骤摘要】
一种字节数组检测方法、装置及计算机可读存储介质


[0001]本申请涉及网络安全
,尤其涉及一种字节数组检测方法、装置及计算机可读存储介质。

技术介绍

[0002]数据流漏洞跟踪是指跟踪请求中污点数据的输入阶段,传播阶段,执行阶段,判断污点数据是否经历了完整的三阶段并且没有经过任何安全方法,即会认为该污点数据存在漏洞,通常利用其检测SQL注入,命令行注入等。
[0003]目前常见的数据流跟踪方法,只能基于污点数据的内存地址进行标识,无法识别到污点数据本身的修改操作,当污点数据本身发生一些变化的时候,正常的数据流跟踪方法就无法进行正常跟踪,这时候就会出现一系列的误报问题。

技术实现思路

[0004]本申请实施例提供了一种字节数组检测方法、装置及计算机可读存储介质,至少能够解决相关技术中当污点数据本身发生一些变化的时候,正常的数据流跟踪方法就无法进行正常跟踪,这时候就会出现一系列的误报问题。
[0005]本申请实施例第一方面提供了一种字节数组检测方法,包括:
[0006]根据插桩技术将检测逻辑插入到被测应用程序;
[0007]在检测到包括有效污点数据的第一字节数组经过变化函数得到第二字节数组之后,获取所述第一字节数组与所述第二字节数组的第一相似度;
[0008]若所述第一相似度取值为零,则对所述第二字节数组进行状态位标记;
[0009]在所述第二字节数组执行敏感函数时,根据所述第二字节数组是否具有所述状态位标记,确定所述有效污点数据在所述第二字节数组中的传播结果状态;其中,所述传播结果状态包括存在状态和丢失状态,在所述第二字节数组具有所述状态位标记时,所述传播结果状态位所述丢失状态。
[0010]本申请实施例第二方面提供了一种字节数组检测装置,包括:
[0011]插入模块,用于根据插桩技术将检测逻辑插入到被测应用程序;
[0012]获取模块,用于在检测到包含有效污点数据的第一字节数组经过变化函数得到第二字节数组之后,获取所述第一字节数组与所述第二字节数组的第一相似度;
[0013]标记模块,用于若所述第一相似度取值为零,则对所述第二字节数组进行状态位标记;
[0014]确定模块,用于在所述第二字节数组执行敏感函数时,根据所述第二字节数组是否具有所述状态位标记,确定所述有效污点数据在所述第二字节数组中的传播结果状态;其中,所述传播结果状态包括存在状态和丢失状态,在所述第二字节数组具有所述状态位标记时,所述传播结果状态位所述丢失状态。
[0015]本申请实施例第三方面提供了一种电子装置,包括:存储器、处理器及总线,所述
总线用于实现所述存储器、处理器之间的连接通讯;所述处理器用于执行存储在所述存储器上的计算机程序,所述处理器执行所述计算机程序时上述本申请实施例第一方面提供的字节数组检测方法中的各步骤。
[0016]本申请实施例第四方面提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时,实现上述本申请实施例第一方面提供的字节数组检测方法中的各步骤。
[0017]由上可见,根据本申请方案所提供的一种字节数组检测方法、装置及计算机可读存储介质,根据插桩技术将检测逻辑插入到被测应用程序;在检测到包括有效污点数据的第一字节数组经过变化函数得到第二字节数组之后,获取所述第一字节数组与所述第二字节数组的第一相似度;若所述第一相似度取值为零,则对所述第二字节数组进行状态位标记;在所述第二字节数组执行敏感函数时,根据所述第二字节数组是否具有所述状态位标记,确定所述有效污点数据在所述第二字节数组中的传播结果状态;其中,所述传播结果状态包括存在状态和丢失状态,在所述第二字节数组具有所述状态位标记时,所述传播结果状态位所述丢失状态。通过本申请方案的实施,对第一字节数组经过变化函数后得到的第二字节数组进行相似度验证,对相似度为零的第二字节数组进行状态位标记,当第二字节数组在执行阶段经过敏感函数时,根据第二字节数组是否具有状态位标记,确定有效污点数据在第二字节数组中的传播结果状态,可以进一步提升基于数据流跟踪方法识别漏洞的准确性。
附图说明
[0018]图1为本申请第一实施例提供的字节数组检测方法的基本流程示意图;
[0019]图2为本申请第二实施例提供的字节数组检测方法的细化流程示意图;
[0020]图3为本申请第三实施例提供的字节数组检测装置的程序模块示意图;
[0021]图4为本申请第四实施例提供的电子装置的结构示意图。
[0022]具体实施内容
[0023]为使得本申请的专利技术目的、特征、优点能够更加的明显和易懂,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而非全部实施例。基于本申请中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0024]为了解决相关技术中当污点数据本身发生一些变化的时候,正常的数据流跟踪方法就无法进行正常跟踪,这时候就会出现一系列的误报的问题,本申请第一实施例提供了字节数组检测方法。
[0025]如下所示为污点数据在输入阶段、传播阶段、执行阶段的程序代码:
[0026]①
String taintedData=request.getParameter("taintedData");//world
[0027]②
taintedData="hello"+taintedData;//helloworld
[0028]③
char[]chars=taintedData.toCharArray();
[0029]④
chars[5]='g';//hellogorld
[0030]⑤
chars[6]='a';//hellogarld
[0031]⑥
chars[7]='m';//hellogamld
[0032]⑦
chars[8]='e';//hellogamed
[0033]⑧
String value=String.valueOf(chars);
[0034]⑨
Runtime.getRuntime().exec(value);
[0035]其中

代表了污点数据的输入阶段,
②‑⑧
代表了污点数据的传播阶段,

代表了污点数据的执行阶段。
[0036]如图1为本实施例提供的字节数组检测方法的基本流程图,该字节数组检测方法包括以下的步骤:
[0037]步骤101、根据插桩技术将检测逻辑插入到被测应用程序。
[0038]具体的,插入是指利用Java虚拟机技术将检测逻辑的组件插入到被测应用程序中,其中检测逻辑的组件是与被测应用程序所处同一个容器的agent进程,所以组件可本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种字节数组检测方法,其特征在于,包括:根据插桩技术将检测逻辑插入到被测应用程序;在检测到包含有效污点数据的第一字节数组经过变化函数得到第二字节数组之后,获取所述第一字节数组与所述第二字节数组的第一相似度;若所述第一相似度取值为零,则对所述第二字节数组进行状态位标记;在所述第二字节数组执行敏感函数时,根据所述第二字节数组是否具有所述状态位标记,确定所述有效污点数据在所述第二字节数组中的传播结果状态;其中,所述传播结果状态包括存在状态和丢失状态,在所述第二字节数组具有所述状态位标记时,所述传播结果状态位所述丢失状态。2.根据权利要求1所述的字节数组检测方法,其特征在于,所述获取所述第一字节数组与所述第二字节数组的第一相似度的步骤之前,还包括:根据所述检测逻辑实时检测数据流在输入阶段是否存在所述有效污点数据;当存在所述有效污点数据时,检测所述有效污点数据是否变化为所述第一字节数组。3.根据权利要求1所述的字节数组检测方法,其特征在于,所述获取所述第一字节数组与所述第二字节数组的第一相似度的步骤,包括:将所述第一字节数组的目标坐标位置与所述第二字节数组相应坐标位置进行字节比对;其中,所述目标坐标位置为所述有效污点数据在所述第一字节数组中所处的坐标位置;根据比对一致的字节的长度,确定所述第一字节数组与所述第二字节数组的第一相似度。4.根据权利要求1所述的字节数组检测方法,其特征在于,所述获取所述第一字节数组与所述第二字节数组的第一相似度的步骤之后,还包括:若所述第一相似度取值不为零,则对所述第一相似度进行准确性验证;若验证不通过,则对所述第二字节数组进行状态位标记,然后执行所述在所述第二字节数组执行敏感函数时,根据所述第二字节数组是否具有所述状态位标记,确定所述有效污点数据在所述第二字节数组中的传播结果状态的步骤;若验证通过,则执行所述在所述第二字节数组执行敏感函数时,根据所述第二字节数组是否具有所述状态位标记,确定所述有效污点数据在所述第二字节数组中的传播结果状态的步骤。5.根据权利要求4所述的字节数组检测方法,其特征在于,所述对所述第一相似度进行准确性验证的步骤,包括:生成与第一字节数组长...

【专利技术属性】
技术研发人员:刘海涛万振华王颉李华郑明
申请(专利权)人:深圳开源互联网安全技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1