一种漏洞分析方法及相关装置与流程

文档序号:36896062发布日期:2024-02-02 21:27阅读:15来源:国知局
一种漏洞分析方法及相关装置与流程

本申请涉及信息安全,具体涉及一种漏洞分析方法及相关装置。


背景技术:

1、web应用的敏感信息泄露漏洞,是指web应用在未经授权的情况下,将敏感信息泄露给攻击者或者其他未经授权的用户,导致敏感信息泄露的一种安全漏洞。在web应用的安全测试场景中,通常需要对web应用进行漏洞扫描,以发现潜在的敏感信息泄露漏洞,确保web应用的数据安全。

2、如何提高漏洞分析的效率成为亟需解决的技术问题。


技术实现思路

1、本申请实施例提供一种漏洞分析方法及相关装置,能够提高漏洞分析的效率。

2、本申请实施例第一方面提供一种漏洞分析方法,该方法包括:

3、获取待分析应用程序的源代码,并生成该源代码的抽象语法树ast;根据预设的敏感变量名,确定该ast中的敏感节点,该敏感节点的令牌包含该敏感变量名;根据该敏感节点,获取该敏感变量名对应的数据流;根据该数据流输出该源代码的漏洞分析报告,该漏洞分析报告用于指示该源代码中该敏感变量名对应的数据流向。

4、本申请实施例中,通过生成与待分析应用程序的源代码对应的ast,再从该ast中获取与预设的敏感变量名相关的敏感节点,生成与该敏感变量名对应的数据流,最后可以输出用于分析该敏感变量名对应的数据流向的漏洞分析报告。相较于传统的漏洞扫描技术中输出与漏洞特征相似的代码语句作为分析结果,敏感变量名的数据流向能够更好地展示该源代码对于敏感信息的处理流程,辅助分析人员分析该源代码中的敏感信息泄露漏洞,减少分析人员需要人工查看的代码语句,提高对源代码的敏感信息泄露漏洞的分析效率。

5、在一种可能的实现中,该漏洞分析报告包括第一分析结果;该根据该数据流输出该源代码的漏洞分析报告包括:若该数据流的输入和输出相同,则输出该数据流对应的代码存在敏感信息泄露漏洞的该第一分析结果。

6、本申请实施例中,通过以敏感变量名对应的数据流的输入和输出作为明确的判断依据,在该数据流的输入和输出相同时,确定该数据流对应的代码存在敏感信息泄露漏洞,相较于以漏洞特征作为判断依据的传统漏洞扫描技术,可以降低漏洞的误报率。

7、在一种可能的实现中,该漏洞分析报告包括第二分析结果;该根据该数据流输出该源代码的漏洞分析报告包括:若该数据流的输入和输出不同,则输出该数据流作为该第二分析结果。

8、本申请实施例中,在该数据流的输入和输出不同时,无法直接判断该数据流对应的代码是否存在敏感信息泄露漏洞;此时,可以通过输出该源代码中与敏感变量名对应的数据流,使得分析人员可以获知该源代码中该敏感变量名所反映的敏感信息的数据流向,以及可以根据该数据流快速定位至相关代码,并对该相关代码进行分析和渗透测试,从而提高分析效率。

9、在一种可能的实现中,该输出该数据流作为该第二分析结果,包括:根据该数据流生成有向图;输出该有向图作为该第二分析结果。

10、本申请实施例中,通过该有向图表示数据流,分析人员能够清晰且准确地得知敏感信息对应的敏感变量名在该数据流中的变换过程,并且能够在该数据流对应的代码部分存在疑似漏洞时,根据该有向图快速地找到对应的表达式或函数。

11、在一种可能的实现中,在该根据该敏感节点,获取该敏感变量名对应的数据流之后,该方法还包括:将该数据流中的数据依次保存至链表;该根据该数据流输出该源代码的漏洞分析报告还包括:根据该链表的头节点的值和尾节点的值,确定该数据流的输入和输出是否相同。

12、本申请实施例中,通过将数据流的数据保存在链表中,计算设备可以根据链表节点的指针域快速地找到头节点和尾节点,也即该数据流的输入和输出,进而判断该数据流的输入输出是否相同。

13、在一种可能的实现中,该根据该敏感节点,获取该敏感变量名对应的数据流,包括:获取该敏感节点在该ast中的关联节点;根据该敏感节点和该关联节点,以及该敏感变量名,生成该数据流。

14、本申请实施例中,通过该敏感节点和该敏感节点对应的关联节点,计算设备可以完整地获取该敏感变量名在该源代码中相关的表达式和函数,从而生成该敏感变量名在该源代码中完整的数据流,提高漏洞分析的准确度。

15、在一种可能的实现中,该获取该敏感节点在该ast中的关联节点,包括:步骤1:获取该敏感节点的第一相邻节点,再获取该第一相邻节点在源代码中对应的第一语句;若该第一语句用于对该敏感变量名进行引用、调用或赋值,则可以确定该ast中该第一语句对应的非敏感节点为关联节点;步骤2:获取该关联节点的第二相邻节点,再获取该第二相邻节点在源代码中对应的第二语句;若该第二语句用于对该敏感变量名进行引用、调用或赋值,则可以确定该ast中该第二语句对应的非敏感节点为该关联节点;重复步骤2,直至所有关联节点的所有第二相邻节点均被确定为关联节点或非关联节点。

16、本申请实施例中,通过逐步判断敏感节点的第一相邻节点和关联节点的第二相邻节点是否为关联节点,直至关联节点的所有第二相邻节点均被确定为关联节点或非关联节点,可以完整地获取所有的关联节点。

17、在一种可能的实现中,该根据预设的敏感变量名,确定该ast中的敏感节点,包括:获取该ast中的变量名节点,该变量名节点的节点类型为变量名;若该变量名节点的令牌包含该敏感变量名,则确定该变量名节点为该敏感节点。

18、本申请实施例中,通过根据节点类型获取变量名节点,再从这些变量名节点中确定敏感节点的方式,相较于逐一遍历ast中的各个节点的令牌确定敏感节点的方式,效率更高。

19、在一种可能的实现中,该应用程序为web应用。

20、本申请实施例第二方面提供一种计算设备,该计算设备包括:处理器、存储器;该存储器中存储有指令操作或代码;该处理器配置为与该存储器通信,并执行该存储器中的指令操作或代码以执行如第一方面中任一项所述的方法。

21、本申请实施例第三方面提供一种计算机可读存储介质,该计算机可读存储介质包括指令,当该指令在计算机上运行时,使得计算机执行如第一方面中任一项所述的方法。



技术特征:

1.一种漏洞分析方法,其特征在于,所述方法包括:

2.根据权利要求1所述的方法,其特征在于,所述漏洞分析报告包括第一分析结果;所述根据所述数据流输出所述源代码的漏洞分析报告包括:

3.根据权利要求1或2所述的方法,其特征在于,所述漏洞分析报告包括第二分析结果;所述根据所述数据流输出所述源代码的漏洞分析报告包括:

4.根据权利要求3所述的方法,其特征在于,所述输出所述数据流作为所述第二分析结果,包括:

5.根据权利要求2-4中任一项所述的方法,其特征在于,在所述根据所述敏感节点,获取所述敏感变量名对应的数据流之后,所述方法还包括:

6.根据权利要求1-5中任一项所述的方法,其特征在于,所述根据所述敏感节点,获取所述敏感变量名对应的数据流,包括:

7.根据权利要求1-6中任一项所述的方法,其特征在于,所述根据预设的敏感变量名,确定所述ast中的敏感节点,包括:

8.根据权利要求1-7中任一项所述的方法,其特征在于,所述待分析应用程序为web应用。

9.一种计算设备,其特征在于,所述计算设备包括:

10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质包括指令,当所述指令在计算机上运行时,使得计算机执行如权利要求1-8中任一项所述的方法。


技术总结
本申请实施例公开了一种漏洞分析方法及相关装置,该方法包括:获取待分析应用程序的源代码,并生成该源代码的AST;根据预设的敏感变量名,确定该AST中的敏感节点;根据该敏感节点,获取该敏感变量名对应的数据流;根据该数据流输出该源代码的漏洞分析报告,该漏洞分析报告用于指示该源代码中该敏感变量名对应的数据流向。相较于输出与漏洞特征相似的代码语句作为漏洞分析结果,本申请实施例得到的漏洞分析报告中敏感变量名的数据流向能够更好地展示源代码对于敏感信息的处理流程,以辅助分析人员分析源代码中的敏感信息泄露漏洞,减少分析人员需要人工查看的代码语句,提高对源代码的敏感信息泄露漏洞的分析效率。

技术研发人员:郝原
受保护的技术使用者:超聚变数字技术有限公司
技术研发日:
技术公布日:2024/2/1
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1