一种面向TLS协议实现的逻辑漏洞检测方法及系统

文档序号:37009799发布日期:2024-02-09 12:57阅读:23来源:国知局
一种面向TLS协议实现的逻辑漏洞检测方法及系统

本发明涉及网络安全自动化分析,特别是涉及一种面向tls协议实现的逻辑漏洞检测方法及系统。


背景技术:

1、本部分的陈述仅仅是提到了与本发明相关的背景技术,并不必然构成现有技术。

2、tls(transport layer security)协议位于tcp/ip参考模型的应用层与传输层之间,提供了internet上的客户端与服务器之间通信的机密性、完整性及真实性保护,可以有效防止数据在传输过程中恶意第三方的监听、篡改及仿冒,浏览器、邮箱、即时通信等应用程序已广泛支持tls协议。为实现对网络通信数据的安全保护,基于tls相关的rfc(requestfor comments)文档规范,市场上出现了大量不同开发语言、不同应用平台的tls实现库用以支持tls通信,比如openssl(一种开源tls实现库)、matrixssl(一种开源tls实现库)等。但是由于tls协议自身设计的复杂性及开发人员的实现问题,这些实现库不断被曝出存在严重的安全漏洞,这些漏洞中有很大一部分是逻辑漏洞,此类漏洞通常不会表现出明显的软件错误行为(如程序崩溃),软件测试人员难以实现此类漏洞的检测,但是其往往会造成严重的安全风险,比如openssl的心脏滴血漏洞以及ccs(changecipherspec)注入漏洞。

3、目前,模糊测试技术是软件测试领域较为成熟且流行的技术,通过向测试对象发送不同的输入数据监测软件实现中的安全问题。但是,目前缺少面向tls协议实现的深层次协议状态逻辑漏洞检测的方法,利用当前的模糊测试技术方法检测tls协议实现的逻辑漏洞主要存在以下缺陷:

4、(1)主流的通用型模糊测试方法(如afl)在软件测试领域发挥了重要作用,但是其基于比特级变异的测试用例生成方式不适用于tls这类结构复杂的加密类协议。其难以正确完成tls握手过程的前期交互,从而不能高效地实现tls深层次协议状态潜在安全问题的检测。

5、(2)针对tls特定领域的模糊测试方法,基于tls消息语法结构可以生成有效的测试用例,但是检测软件实现的逻辑漏洞需要明确的测试oracle。目前针对tls的模糊测试工作tls-attacker、tls-anvil等均基于人工定义测试oracle的方法,测试的覆盖范围有限,无法实现测试人员认知范围之外的逻辑漏洞检测。

6、(3)差分模糊测试是一种检测软件实现逻辑漏洞的有效方法,tls-diff首次将差分测试的思想应用于tls握手协议的测试,但是由于其没有解决深层次协议状态的测试输入及响应消息的一致性判断问题,仅实现了第一个握手消息clienthello的测试,而实际tls协议相关的逻辑漏洞均存在于较深层次的协议状态,因此,其对于检测tls协议实现中深层次协议状态的逻辑漏洞是不足的。


技术实现思路

1、为了解决现有技术的不足,本发明提供了一种面向tls协议实现的逻辑漏洞检测方法及系统,在实际差分模糊测试过程中,通过去除加密封装及提炼关键信息的处理,对精简后的响应消息进行一致性判断,并提出tls差分模糊测试一致性判断的方式,实现了tls协议的深层次协议状态测试的目的,有效地解决了tls协议实现测试oracle的问题,进而可以实现隐藏的tls协议实现深层次协议状态的逻辑漏洞检测。

2、第一方面,本发明提供了一种面向tls协议实现的逻辑漏洞检测方法;

3、一种面向tls协议实现的逻辑漏洞检测方法,包括:

4、获取tls协议消息结构定义相关的rfc文档;

5、对于所述rfc文档,提取消息字段的类型及描述信息后,进行归类,得到消息元组,并为每类消息元组定义变异策略;

6、根据测试对象的状态,选取测试用例的消息类型,并按照预定义的tls消息模板选取经过概率性突变的消息元组进行拼接和封装,生成最终测试用例,同步发送至多个测试对象后,接收测试对象的响应数据,对所述响应数据去除加密封装及提炼信息,得到精简测试信息,并判断测试对象间的精简测试信息是否存在差异,若不存在差异,则更新测试对象的状态,进行下一层次协议状态的测试,并得到测试记录结果;

7、采用编码分类统计分析方法,对测试记录结果文件进行分析,得到tls协议实现库存在的安全问题。

8、进一步地,所述提取消息字段的类型及描述信息的方法包括:文档块划分、正则表达式匹配、分词、依存解析及词性标注。

9、进一步地,所述定义变异策略的步骤包括:获取tls实现库的漏洞,对密码实现及证书验证的漏洞进行筛除,仅保留消息流触发的漏洞后,对漏洞的触发条件进行统计分析,记录触发条件是否与某个消息字段的异常相关,并结合不同消息元组的特性,对每类消息元组定义变异策略。

10、进一步地,若测试对象间的精简测试信息存在差异,则中断tls会话。

11、进一步地,所述测试记录结果包括:tls会话计数、是否为正常响应、是否存在响应差异、测试用例及测试响应的精简测试信息、测试用例涉及的消息元组突变记录及测试时间。

12、进一步地,所述编码分类统计分析方法的第一阶段为:对于未能产生差异响应的元组突变记录进行筛除,并对造成差异响应且响应中存在正常响应的元组突变记录,标记为需进行第二阶段分析。

13、进一步地,所述编码分类统计分析方法的第二阶段为:对标记为需进行第二阶段分析的元组突变记录,通过多个过滤条件进行筛选,对筛选结果进行分析,判断差异响应的成因。

14、第二方面,本发明提供了一种面向tls协议实现的逻辑漏洞检测系统;

15、一种面向tls协议实现的逻辑漏洞检测系统,包括:

16、消息元组及变异策略定义模块,其被配置为:获取tls协议消息结构定义相关的rfc文档,对于所述rfc文档,提取消息字段的类型及描述信息后,进行归类,得到消息元组,并为每类消息元组定义变异策略;

17、tls协议实现深度差分模糊测试模块,其被配置为:根据测试对象的状态,选取测试用例的消息类型,并按照预定义的tls消息模板选取经过概率性突变的消息元组进行拼接和封装,生成最终测试用例,同步发送至多个测试对象后,接收测试对象的响应数据,对所述响应数据去除加密封装及提炼信息,得到精简测试信息,并判断测试对象间的精简测试信息是否存在差异,若不存在差异,则更新测试对象的状态,进行下一层次协议状态的测试,并得到测试记录结果;

18、测试结果分类统计分析模块,其被配置为:采用编码分类统计分析方法,对测试记录结果文件进行分析,得到tls协议实现库存在的安全问题。

19、第三方面,本发明提供了一种电子设备,包括:

20、存储器,用于非暂时性存储计算机可读指令;以及

21、处理器,用于运行所述计算机可读指令,

22、其中,所述计算机可读指令被所述处理器运行时,执行上述第一方面所述的方法。

23、第四方面,本发明还提供了一种存储介质,非暂时性地存储计算机可读指令,其中,当所述非暂时性计算机可读指令由计算机执行时,执行第一方面所述方法的指令。

24、与现有技术相比,本发明的有益效果是:

25、本发明在实际差分模糊测试过程中,通过去除加密封装及提炼关键信息的处理,对精简后的响应消息进行一致性判断,并通过tls差分模糊测试一致性判断的方式,实现了tls协议的深层次协议状态测试的目的,有效地解决了tls协议实现测试oracle的问题,进而可以实现隐藏的tls协议实现深层次协议状态的逻辑漏洞检测。

26、本发明在测试结果分析阶段,基于编码分类统计分析的方法,先依据分类统计结果,筛除掉无需进一步分析的元组突变类型,之后对重点元组突变进行更加细粒度的分析,实现了海量差异测试结果的快速、有效分析。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1