基于调用链路JavaScript组件的漏洞可达性分析及检测系统的制作方法

文档序号:40883350发布日期:2025-02-11 12:34阅读:6来源:国知局
基于调用链路JavaScript组件的漏洞可达性分析及检测系统的制作方法

本发明涉及信息安全领域,尤其涉及一种基于调用链路javascript组件的漏洞可达性分析及检测系统。


背景技术:

1、随着信息技术的发展,客户端上安装的web应用程序由javascript代码编写,该代码安全性往往被开发人员忽视,导致了大量安全漏洞的存在。

2、中国专利申请号为cn117610012a的专利文献公开了一种sca漏洞可达性分析方法,该方法包括:获取应用程序和与应用程序对应的依赖组件,并根据应用程序和依赖组件构建应用程序对应的依赖树;其中依赖组件中包括漏洞组件;根据依赖树确定应用程序的第一调用图和依赖组件的第二调用图;根据第一调用图和第二调用图,确定漏洞组件中的漏洞函数调用链;根据漏洞组件中漏洞函数调用链,确定漏洞函数调用链的控制流图;采用分段式路径搜索方式,根据漏洞函数调用链的控制流图,确定漏洞函数调用链的控制流图对应的路径约束信息;根据漏洞函数调用链的控制流图对应的路径约束信息,确定漏洞组件中漏洞的可达性分析结果。

3、现有技术中并未对应用程序的调用链分析,导致漏洞的遗漏问题,从而影响了系统的安全性。


技术实现思路

1、为此,本发明提供一种基于调用链路javascript组件的漏洞可达性分析及检测系统,可以通过构建多层级函数调用链路判断漏洞可达性保证了系统安全的问题。

2、为实现上述目的,本发明提供一种基于调用链路javascript组件的漏洞可达性分析及检测系统,包括:

3、获取模块,从项目源代码中获取若干风险文件;

4、构建模块,与所述获取模块连接,用以根据任意风险文件中的代码行的调用函数构建ast语法树;

5、链路生成模块,与所述构建模块连接,通过遍历技术访问所述ast语法树,获取函数表达式,以构建基础函数调用链路,从而进行层级结构的识别以形成多层级函数调用链路;

6、漏洞检测模块,与所述链路生成模块连接,利用漏洞链路规则对所述多层级函数调用链路进行查询,若查询到漏洞调用链路片段则确定漏洞可达,并收集所述漏洞,生成漏洞报告。

7、进一步地,所述构建模块包括:

8、词法分析单元,利用词法分析器将所述风险文件的代码行中字符串分解成词法单元;

9、语法分析单元,与所述词法分析单元连接,通过解析器将所述词法单元生成嵌套的语法结构;

10、语法树构建单元,与所述语法分析单元连接,利用语法分析器根据语法规则将所述语法结构构建成ast语法树;

11、语义分析单元,与所述源代码生成模块连接,根据所述ast语法树进行语义分析,用以检查代码语义的正确性。

12、进一步地所述语义分析单元包括:

13、创建子单元,用以创建数据结构,以存储代码中结构变量和函数声明信息;

14、检查子单元,用以根据数据结构对所述ast语法树节点进行检查,用以确保所述ast语法树节点中所有信息与代码信息一致,并符合类型要求。

15、进一步地,所述链路生成模块包括:

16、表达式提取单元,利用遍历技术访问ast语法树中函数调用节点,根据所述函数调用节点获取函数表达式;

17、调用信息提取单元,与所述表达式提取单元连接,基于所述函数表达式使用ack代码搜索工具查找相应的函数调用信息;

18、链路生成单元,与所述调用信息提取单元连接,对所述函数调用信息进行预处理,获取函数调用顺序结构和层级结构,从而确定基础函数调用链路,基于所述层级结构识别嵌套调用函数以构建嵌套函数调用链路,通过识别递归调用函数构建递归函数调用链路,从而将基础函数调用链路扩展为多层级函数调用链路。进一步地,所述链路生成单元包括:

19、基础调用链构建子单元,根据所述函数调用顺序构建基础函数调用链路;

20、嵌套调用识别子单元,与所述基础调用链构建子单元连接,根据所述基础函数调用链路与所述层级结构识别嵌套调用函数,并在所述基础函数调用链路中构建嵌套函数调用链路;

21、多层级调用链路构建子单元,与所述嵌套调用识别子单元连接,根据所述嵌套函数调用链路与所述层级结构识别递归调用函数,并在所述嵌套函数调用链路中构建递归函数调用链路,从而将基础函数调用链路扩展为多层级函数调用链路。

22、进一步地,所述基础调用链构建子单元能够根据所述函数调用顺序和函数层级结构确定被调用的主函数体,基于所述主函数体与所述函数调用顺序构建基础函数调用链路。

23、进一步地,所述嵌套调用识别子单元能够在程序执行过程中,识别所述基础函数调用链路中主函数体发生的调用关系,并在基础函数调用链路中构建表示主函数体的嵌套函数调用链路,以形成层级间的调用链由父级指向子级调用链。

24、进一步地,所述漏洞检测模块包括:

25、漏洞链路构建单元,确定检测的漏洞类型并构建相应的漏洞链路规则;

26、调用链路查询单元,与所述漏洞链路构建单元连接,在所述多层级函数调用链路中查询是否存在与所述漏洞链路规则相匹配的漏洞调用链路片段,如果存在,则认为该漏洞在系统中是可达的;

27、漏洞报告生成单元,与所述调用链路查询单元连接,收集匹配到的漏洞,并生成漏洞报告。

28、进一步地,所述漏洞链路构建单元能够确定需要检测的漏洞类型,在漏洞数据库查找所述漏洞类型的漏洞信息与触发方式,基于所述漏洞信息和触发方式构建漏洞链路规则。

29、进一步地,所述调用链路查询单元能够利用查询语言将所述漏洞链路规则转换为查询语句,并在多层级函数调用链路中执行所述查询语句。

30、与现有技术相比,本发明的有益效果在于,构建模块通过ast语法树对项目源代码进行深入解析,保证了代码逻辑的正确性,为后续的函数分析提供基础。链路生成模块通过构建多层级函数调用链路有助于理解复杂函数调用关系,通过识别嵌套调用函数和递归调用函数,有助于深入分析代码和识别系统的安全问题。漏洞检测模块通过漏洞链路规则在多层级函数调用链路进行查询确定漏洞可达,并生成漏洞报告,从而提高了漏洞检测的准确性与系统的安全性。

31、尤其,将源代码中字符串分解成词法单元,并将词法单元生成嵌套的语法结构,从而根据语法规则将所述语法结构构建成ast语法树,有助于明晰代码的逻辑结构,通过对ast语法树进行语义分析,以保证代码的准确性。

32、尤其,通过创建数据结构对ast进行检查确保变量和函数声明与代码信息的一致性,减少了ast的生成错误,从而实现了结果的准确性。

33、尤其,通过提取函数调用的表达式为后续基础函数调用链路的分析提供基础,利用代码搜索工具查找相应函数调用信息确保能够捕获代码中所有相关的函数调用,为构建完整的函数调用链路图提供了必要的数据,通过分析代码中的复杂调用关系从而构建多层级函数调用链路,为代码漏洞的查询提供了基础。

34、尤其,通过构建基础函数调用链是为后续构建多层级调用链路提供的基础框架,用于函数间的基础交互,通过识别嵌套调用函数与递归调用函数更清晰化代码逻辑间的结构,有助于识别系统漏洞。

35、尤其,通过确定主函数体与函数调用顺序从而有规划地构建基础函数调用链路,使其底层框架逻辑更加完整。

36、尤其,通过识别和构建嵌套函数调用链路为分析递归函数调用链路提供了支撑,优化了执行流程。

37、尤其,通过精准地确定漏洞类型并构建与之相匹配的漏洞链路规则,判断漏洞的可达性,从而识别与漏洞链路规则相匹配的漏洞,维护软件系统的安全性减少了潜在的安全威胁。

38、尤其,通过精确定义漏洞特征和触发条件,可以减少误报和漏报,提高漏洞检测的准确性。

39、尤其,通过漏洞查询方式提高了漏洞检测的效率,有助于及时发现和修复软件系统中的安全漏洞。

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