[发明专利]一种基于Golang语言的IAST安全测试方法和系统在审
| 申请号: | 202110886735.9 | 申请日: | 2021-08-03 |
| 公开(公告)号: | CN113590489A | 公开(公告)日: | 2021-11-02 |
| 发明(设计)人: | 陈路 | 申请(专利权)人: | 杭州默安科技有限公司 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F21/57 |
| 代理公司: | 杭州裕阳联合专利代理有限公司 33289 | 代理人: | 王贞利 |
| 地址: | 311100 浙江省杭州市余杭*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 golang 语言 iast 安全 测试 方法 系统 | ||
1.一种基于Golang语言的IAST安全测试方法,其特征在于,所述方法包括:
获取应用Golang源码,并在所述源码中添加编译参数;
解析所述源码,获取AST语法树;
在所述AST语法树中编入IAST安全测试逻辑代码,生成修改后的Golang源码;
将所述修改后的Golang源码进行编译,生成执行文件;
启动应用,执行IAST安全测试逻辑,所述执行文件收集应用的环境数据和第三方库数据,获取应用漏洞信息。
2.根据权利要求1所述的一种基于Golang语言的IAST安全测试方法,其特征在于,在述源码中添加toolexec编译参数,且在添加所述toolexec编译参数后加载agent_tool工具,通过所述agent_tool工具对所述Golang源码进行分析,以获取所述AST语法树。
3.根据权利要求1所述的一种基于Golang语言的IAST安全测试方法,其特征在于,在获取所述AST语法树后,在所述AST语法树的指定节点编入agent代码,所述agent代码包括IAST安全测试逻辑,其中所述指定节点包括表达式类型节点、语句节点和声明节点中的任意至少一种。
4.根据权利要求1所述的一种基于Golang语言的IAST安全测试方法,其特征在于,所述Golang源码的分解析方法包括:
采用agent_tool工具中的词法分析器对源码进行词法分析,生成token;
采用agent_tool工具中的语法分析器检索所述token,进一步生成AST语法树。
5.根据权利要求1所述的一种基于Golang语言的IAST安全测试方法,其特征在于,所述Golang源码包括Golang应用源码,第三方库Golang源码和Golang语言自身源码。
6.根据权利要求3所述的一种基于Golang语言的IAST安全测试方法,其特征在于,在所述指定节点编入agent代码后,生成修改后的Golang源码文件,并将所述修改后的Golang源码文件存放在指定编译目录中。
7.根据权利要求6所述的一种基于Golang语言的IAST安全测试方法,其特征在于,生成执行文件的方法包括:
调用go_build对所述修改后的Golang源码文件进行编译;
生成包括agent代码的Golang二进制执行文件。
8.根据权利要求6所述的一种基于Golang语言的IAST安全测试方法,其特征在于,在启动应用后,所述agent代码执行漏洞检测,并将获取的的环境数据、第三方库数据和漏洞检测结果发送给IAST服务端,用于展示漏洞检测结果。
9.根据权利要求1所述的一种基于Golang语言的IAST安全测试方法,其特征在于,所述IAST安全测试逻辑包括:
采用重放请求在原始请求中拼接payload字符;
检测sink点,并判断所述sink点是否存在payload字符;
若存在,则判断应用存在漏洞。
10.一种基于Golang语言的IAST安全测试系统,其特征在于,所述系统执行上述权利要求1-9中任意一项所述的一种基于Golang语言的IAST安全测试方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州默安科技有限公司,未经杭州默安科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110886735.9/1.html,转载请声明来源钻瓜专利网。





