一种对GO语言项目进行交互式应用安全测试的方法与流程

文档序号:36888795发布日期:2024-02-02 21:22阅读:17来源:国知局
一种对GO语言项目进行交互式应用安全测试的方法与流程

本发明公开一种方法,涉及应用测试,具体地说是一种对go语言项目进行交互式应用安全测试的方法。


背景技术:

1、应用安全测试方法主要包括静态应用程序安全测试(sast)和动态应用程序安全测试(dast)。sast主要通过静态代码分析来检测应用程序中的安全漏洞,但它无法模拟应用程序的真实运行环境,同时会产生较高的误报率,并且无法检测到与运行时相关的漏洞。dast则通过模拟攻击来测试应用程序的安全性,但它通常需要在应用程序运行时进行测试,无法提供准确的漏洞定位信息,并且测试过程对应用程序的性能和可用性会产生一定的影响。

2、为了克服上述方法的局限性,交互式应用安全测试应运而生,结合了sast和dast的优点,通过在应用程序运行时进行测试,并结合静态和动态分析技术,提供准确的漏洞定位和更低的误报率。它可以模拟应用程序的真实运行环境,检测到与运行时相关的漏洞,并提供实时的安全保护。但现有的交互式应用安全测试对在go语言项目进行测试时,存在灵活性不够及安全性问题。


技术实现思路

1、本发明针对现有技术的问题,提供一种对go语言项目进行交互式应用安全测试的方法,具有通用性强、实施简便等特点,具有广阔的应用前景。

2、本发明提出的具体方案是:

3、本发明提供一种对go语言项目进行交互式应用安全测试的方法,包括:

4、步骤1:利用go语言的解析器和编译器将go语言项目的源代码解析为中间抽象语法树iast,

5、步骤2:在中间抽象语法树iast中根据规则和条件,定位需要插入安全测试探针的位置,

6、步骤3:根据所述需要插入安全测试探针的位置动态生成和插入安全测试探针代码,

7、步骤4:将插入安全测试探针代码后的中间抽象语法树iast转换为可执行的代码,并进行编译,生成可执行文件或库,

8、步骤5:进行安全测试,执行可执行文件,触发安全测试探针的逻辑,通过分析安全测试探针的输出和日志,获取go语言项目中的安全漏洞和弱点。

9、进一步,所述的一种对go语言项目进行交互式应用安全测试的方法中所述步骤2中需要插入安全测试探针的位置,包括与安全相关的代码块,所述代码块包括函数调用处代码块、网络请求处代码块和敏感数据处理处代码块。

10、进一步,所述的一种对go语言项目进行交互式应用安全测试的方法中所述安全测试探针代码,用于记录请求参数、检测敏感数据泄露、验证权限的操作,以及通过定义数据结构记录程序调用路径。

11、进一步,所述的一种对go语言项目进行交互式应用安全测试的方法中还包括步骤6:根据安全测试的结果对安全漏洞和弱点进行分析和评估,对检测到的问题定位到对应方法及代码行,输出可视化的测试结果。

12、本发明还提供一种对go语言项目进行交互式应用安全测试的装置,包括解析模块、定位模块、插入模块、转换模块和测试模块,

13、解析模块利用go语言的解析器和编译器将go语言项目的源代码解析为中间抽象语法树iast,

14、定位模块在中间抽象语法树iast中根据规则和条件,定位需要插入安全测试探针的位置,

15、插入模块根据所述需要插入安全测试探针的位置动态生成和插入安全测试探针代码,

16、转换模块将插入安全测试探针代码后的中间抽象语法树iast转换为可执行的代码,并进行编译,生成可执行文件或库,

17、测试模块进行安全测试,执行可执行文件,触发安全测试探针的逻辑,通过分析安全测试探针的输出和日志,获取go语言项目中的安全漏洞和弱点。

18、进一步,所述的一种对go语言项目进行交互式应用安全测试的装置中所述定位模块插入安全测试探针的位置,包括与安全相关的代码块,所述代码块包括函数调用处代码块、网络请求处代码块和敏感数据处理处代码块。

19、进一步,所述的一种对go语言项目进行交互式应用安全测试的装置中涉及的安全测试探针代码,用于记录请求参数、检测敏感数据泄露、验证权限的操作,以及通过定义数据结构记录程序调用路径。

20、进一步,所述的一种对go语言项目进行交互式应用安全测试的装置中还包括分析模块,分析模块根据安全测试的结果对安全漏洞和弱点进行分析和评估,对检测到的问题定位到对应方法及代码行,输出可视化的测试结果。

21、本发明的有益之处是:

22、本发明提供一种对go语言项目进行交互式应用安全测试的方法,通过使用iast(intermediate abstract syntax tree)的插桩方式,结合go语言的反射和动态代理技术,通过解析器和编译器的能力,实现在不修改原始对象的情况下完成交互式应用安全测试,可以在应用程序运行时检测到漏洞,并提供准确的漏洞定位信息,帮助开发人员及时发现和修复漏洞,并且使用代理模式不修改原始对象,提高应用程序的安全性。



技术特征:

1.一种对go语言项目进行交互式应用安全测试的方法,其特征是包括:

2.根据权利要求1所述的一种对go语言项目进行交互式应用安全测试的方法,其特征是所述步骤2中需要插入安全测试探针的位置,包括与安全相关的代码块,所述代码块包括函数调用处代码块、网络请求处代码块和敏感数据处理处代码块。

3.根据权利要求1或2所述的一种对go语言项目进行交互式应用安全测试的方法,其特征是所述安全测试探针代码,用于记录请求参数、检测敏感数据泄露、验证权限的操作,以及通过定义数据结构记录程序调用路径。

4.根据权利要求1所述的一种对go语言项目进行交互式应用安全测试的方法,其特征是还包括步骤6:根据安全测试的结果对安全漏洞和弱点进行分析和评估,对检测到的问题定位到对应方法及代码行,输出可视化的测试结果。

5.一种对go语言项目进行交互式应用安全测试的装置,其特征是包括解析模块、定位模块、插入模块、转换模块和测试模块,

6.根据权利要求5所述的一种对go语言项目进行交互式应用安全测试的装置,其特征是所述定位模块插入安全测试探针的位置,包括与安全相关的代码块,所述代码块包括函数调用处代码块、网络请求处代码块和敏感数据处理处代码块。

7.根据权利要求5或6所述的一种对go语言项目进行交互式应用安全测试的装置,其特征是涉及的安全测试探针代码,用于记录请求参数、检测敏感数据泄露、验证权限的操作,以及通过定义数据结构记录程序调用路径。

8.根据权利要求5所述的一种对go语言项目进行交互式应用安全测试的装置,其特征是还包括分析模块,分析模块根据安全测试的结果对安全漏洞和弱点进行分析和评估,对检测到的问题定位到对应方法及代码行,输出可视化的测试结果。


技术总结
本发明公开一种对GO语言项目进行交互式应用安全测试的方法,涉及应用测试技术领域;包括:步骤1:利用GO语言的解析器和编译器将GO语言项目的源代码解析为中间抽象语法树IAST,步骤2:在中间抽象语法树IAST中根据规则和条件,定位需要插入安全测试探针的位置,步骤3:根据所述需要插入安全测试探针的位置动态生成和插入安全测试探针代码,步骤4:将插入安全测试探针代码后的中间抽象语法树IAST转换为可执行的代码,并进行编译,生成可执行文件或库,步骤5:进行安全测试,执行可执行文件,触发安全测试探针的逻辑,通过分析安全测试探针的输出和日志,获取GO语言项目中的安全漏洞和弱点。

技术研发人员:陈金龙,魏子重,李锐
受保护的技术使用者:山东浪潮科学研究院有限公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1