漏洞发现方法、测试方法、安全测试方法及相关装置、平台制造方法及图纸

技术编号:28720598 阅读:26 留言:0更新日期:2021-06-06 03:39
本申请提供一种漏洞发现方法、测试方法、安全测试方法及相关装置、平台。其中的技术方案,通过在服务端的与目标程序耦合的代理,通过获取接收的第一合法请求,并利用第一合法请求识别可能潜藏的第一类型漏洞集合,自动触发和接受攻击测试,主动发现目标程序中相应的第一类型漏洞,以及对应地在测试端响应触发,提供相应的攻击测试,以解决在应用安全测试过程中为目标对象提供更具针对性的精准化安全测试的问题,以及解决其他如检测精确度、漏洞定位、漏洞收敛等的问题。漏洞收敛等的问题。漏洞收敛等的问题。

【技术实现步骤摘要】
漏洞发现方法、测试方法、安全测试方法及相关装置、平台


[0001]本申请涉及计算机应用程序安全测试
,具体涉及一种漏洞发现方法、测试方法、安全测试方法及相关装置、平台。

技术介绍

[0002]随着数字时代的到来,基于B/S的Web应用技术被广泛用于政企业务数字化转型中。然而,随之而来的应用安全威胁也显著增加。相关研究显示,越来越多的安全漏洞发生在应用程序层,而非我们以往认知的网络层。为了确保应用程序在交付部署后能够安全稳定的提供服务,通常都会在交付前使其通过应用安全测试,发现和修复其中的薄弱点和漏洞,以防止相关应用程序被黑客及非法人员利用,造成安全危害。那么,对于应用程序的安全测试,如何提供一个更为高效和广泛适用的技术方案,成为一个技术难题。

技术实现思路

[0003]有鉴于此,本申请旨在提供一种漏洞发现方法、测试方法、安全测试方法及相关装置、平台,以解决上述技术问题。
[0004]根据本申请公开的示例实施例,提供一种自动化漏洞发现方案,以及对应的攻击测试方案和基于此的用于自动化安全测试的IAST灰盒安全测试方案。本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种漏洞发现方法,其特征在于,该方法基于Agent技术,应用于服务端,包括:在服务端,对目标程序中的关键函数插桩探针;对应任一可能潜藏的类型的漏洞,在目标程序中包括至少一个与之对应的关键函数;获取服务端接收的自客户端发出的第一合法请求报文;根据目标程序中处理第一合法请求报文的内部逻辑结构,确定第一类型漏洞集合;第一类型漏洞集合中包括至少一种第一类型漏洞;转发第一合法请求报文及第一类型漏洞集合信息到测试端;所述的第一合法请求报文及所述集合信息中的每一种第一类型漏洞信息,用于测试端在发起攻击测试时根据其中的所述第一类型漏洞信息中的漏洞类型构造与之对应的有效载荷,并以此替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;第一攻击测试报文用于攻击服务端,诱发目标程序中对应的第一类型漏洞;在服务端受到自测试端发出的第一攻击测试报文的攻击过程中,在每次第一攻击测试报文攻击时,获取服务端接收的第二攻击测试报文,第二攻击测试报文是指当前攻击的第一攻击测试报文;解析提取第二攻击测试报文中的有效报文内容,并在目标程序处理第二攻击测试报文过程中获取对应其的有效实时响应数据;根据所述的有效报文内容和有效实时响应数据,验证目标程序中是否潜藏了第二类型漏洞,第二类型漏洞是指对应第二攻击测试报文的第一类型漏洞;其中,所述有效报文内容,包括第二攻击测试报文中的有效载荷参数内容;所述有效实时响应数据,包括目标程序处理第二攻击测试报文过程中的运行上下文;所述运行上下文,包括:有效运行时数据,及其对应的关键函数信息;所述有效运行时数据,是指使插桩探针在第二攻击测试数据流执行到插桩点时所获取的运行时数据;第二攻击测试数据流,是指在目标程序处理第二攻击测试报文过程中对应第二攻击测试报文的攻击测试数据流;所述关键函数信息,是指获取所述有效运行时数据的插桩点对应的被插桩关键函数的信息。2.根据权利要求1所述的方法,其特征在于,所述的确定第一类型漏洞集合的过程,包括:在插桩探针后,使在目标程序中的插桩探针监控目标程序中处理第一合法请求报文的过程,获取该处理过程的内部逻辑结构,并据此确定第一类型漏洞集合。3.根据权利要求1所述的方法,其特征在于,所述的对目标程序中的关键函数插桩探针,包括:采用运行时插桩的方式对其插桩探针。4.根据权利要求1所述的方法,其特征在于,所述的验证目标程序中是否潜藏第二类型漏洞,包括:根据所述有效报文内容和有效实时响应数据,判定第二攻击测试报文攻击过程中涉及的关键函数是否异常执行;利用第二攻击测试报文攻击过程中涉及的关键函数是否异常执行,验证是否潜藏了第二类型漏洞。5.根据权利要求4所述的方法,其特征在于,所述判定关键函数是否异常执行的过程,包括:
D1:判断第二攻击测试报文中是否第二攻击测试报文对应的有效载荷参数内容;若是,则继而,D2:根据第二攻击测试报文中的有效载荷参数内容,判断该关键函数对应的有效运行时数据中是否包括经无害化处理的第二攻击测试报文有效载荷参数内容;若否,则判定该关键函数异常执行。6.根据权利要求4所述的方法,其特征在于,获取所述有效报文内容时,使其包括第二攻击测试报文中的请求参数值;所述判定关键函数是否异常执行的过程,包括:D1:判断第二攻击测试报文中是否第二攻击测试报文对应的有效载荷参数内容;若是,则继而,D2:根据第二攻击测试报文中的有效载荷参数内容,判断该关键函数对应的有效运行时数据中是否包括经无害化处理的第二攻击测试报文有效载荷参数内容;以及D3:判断该关键函数对应的有效运行时数据中是否包括所述请求参数值;若D2为否且D3为是,则判定该关键函数异常执行。7.根据权利要求1所述的方法,其特征在于,对于所述第一类型漏洞,对应其,在目标程序中,包括多个与之对应的关键函数;对所述关键函数插桩探针;和/或,目标程序的关键函数,包括多个插桩点;则,对于被验证的第二类型漏洞,分别获取各个插桩点的有效运行时数据,及其对应的关键函数信息;当所述关键函数包括多个插桩点时,所述关键函数信息,包括:插桩点在所述关键函数的位置信息。8.根据权利要求7所述的方法,其特征在于,在任一所述关键函数/插桩点获取的有效运行时数据及其对应的关键函数信息,能够用于独立地验证目标程序中是否潜藏了第二类型漏洞。9.根据权利要求7所述的方法,其特征在于,结合在所述关键函数/插桩点获取的有效运行时数据及其对应的关键函数信息,综合分析验证目标程序中是否潜藏了第二类型漏洞。10.根据权利要求1所述的方法,其特征在于,所述有效实时响应数据中,包括将反馈给测试端的对应第二攻击测试报文的响应报文内容;所述的响应报文内容,用于辅助验证目标程序中是否潜藏了第二类型漏洞。11.根据权利要求1或10任一所述的方法,其特征在于,所述第二攻击测试报文及其有效报文内容/响应报文内容,是通过预先插桩的探针获取的。12.根据权利要求1所述的方法,其特征在于,所述的插桩探针,是根据插桩点位置、对获取所述有效报文内容或有效实时响应数据的需要的不同而差异化设计的。13.根据权利要求1或10任一所述的方法,其特征在于,所述的有效实时响应数据,包括:函数调用栈信息;当发现第二类型漏洞时,根据所述函数调用栈信息确定第二类型漏洞触发的代码行信
息;在上报发现第二类型漏洞的安全测试结果时,将所述函数调用栈信息、第二类型漏洞触发代码行信息一并上报,辅助第二类型漏洞定位;和/或,在上报发现第二类型漏洞的安全测试结果时,将获取的对应的响应报文内容一并上报,辅助第二类型漏洞分析。14.一种测试方法,用于自动化漏洞发现过程中的攻击测试,其特征在于,该方法,应用于测试端,包括:在测试端,接收自服务端转发的第一合法请求报文、及其对应的第一类型漏洞集合信息;第一类型漏洞集合中包括至少一种第一类型漏洞;根据所述集合信息中的每一种第一类型漏洞信息,构造与所述第一类型漏洞信息中的漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文,攻击服务端;第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。15.一种安全测试方法,其特征在于,该方法包括:在服务端,接收自客户端发出的第一合法请求报文,执行权利要求1

13任一所述的方法,通过自动触发和接受测试端发起的攻击测试,主动发现目标程序中的第一类型漏洞;在测试端,执行权利要求14所述的方法,接收服务端的转发,并据此向服务端发起相应的攻击测试。16.一种用于自动化漏洞发现的装置,其特征在于,该装置,部署在服务端,包括:程序插桩模块、自动化攻击测试触发模块和漏洞验证发现模块;程序插桩模块,被配置为对目标程序中的关键函数插桩探针;自动化攻击测试触发模块,被配置为获取服务端接收的自客户端发出的第一合法请求报文,根据目标程序中处理第一合法请求报文的内部逻辑结构确定第一类型漏洞集合,以及转发第一合法请求报文及第一类型漏洞集合信息到测试端;其中,自动化攻击测试触发模块确定的第一类型漏洞集合中,包括至少一种第一类型漏洞;漏洞验证发现模块,被配置为在服务端受到自测试端发出的第一攻击测试报文的攻击过程中的每次第一攻击测试报文攻击时,获取服务端接收的第二攻击测试报文,解析提取第二攻击测试报文中的有效报文内容,并在目标程序处理第二攻击测试报文过程中获取对应的有效实时响应数据,...

【专利技术属性】
技术研发人员:张涛宁戈牛伟颖董毅
申请(专利权)人:北京安普诺信息技术有限公司
类型:发明
国别省市:

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

1