【技术实现步骤摘要】
fastjson反序列化漏洞调用链挖掘方法及系统
[0001]本专利技术涉及计算机网络
,特别是一种fastjson反序列化漏洞调用链挖掘方法及系统。
技术介绍
[0002]fastjson是一款由阿里巴巴开发的高性能的Java JSON解析库,可用于将Java对象转换为其JSON表示形式,被企业广泛地应用在Java开发中。但是fastjson也存在着一些安全风险,其中最常见的是反序列化漏洞。fastjson反序列化漏洞是指攻击者通过构造恶意的JSON数据,在fastjson解析时,触发了反序列化漏洞,从而导致攻击者可以执行任意的命令或代码。
[0003]目前,已经有一些针对fastjson反序列漏洞的挖掘工具。这些工具通常会根据fastjson的语法规则和解析过程,构造不同的数据输入,并观察程序行为,从而判断程序是否存在漏洞;有的甚至直接根据fastjson的版本来判断是否存在漏洞。
[0004]但是,现有的挖掘方法还存在一些缺陷。首先,由于fastjson的语法和解析方式非常复杂,因此需要构造各种不同的数据输入,才能够全面地检查程序的安全性,需要大量的计算资源和时间,而且也不一定能够覆盖所有可能的漏洞。其次,由于fastjson的版本更新比较快,攻击者的攻击方式也在不断地变化。因此,现有的自动化挖掘方法很难及时跟进漏洞的变化,从而难以保障系统的安全性。
[0005]即,现有技术存在挖掘效率与准确性较低的问题。
技术实现思路
[0006]本专利技术的主要目的在于提供了一 ...
【技术保护点】
【技术特征摘要】
1.fastjson反序列化漏洞调用链挖掘方法,其特征在于,包括以下步骤:S1、配置项目代码仓库的Webhook,当项目代码仓库发生更新时,自动将更新的项目信息推送至指定的Webhook URL,项目信息至少包括项目代码的URL地址;S2、当接收到更新的项目信息后识别项目代码的URL地址,通过项目代码仓库的接口或者克隆的方式将项目的Java源代码进行存储;S3、将Java源代码解析为抽象语法树,再将抽象语法树转换为Python字典树;S4、遍历Python字典树,检测Java源代码中是否引用或使用Fastjson库,并且存在fastjson漏洞版本,若是,则执行步骤S5;S5、遍历Python字典树,检测JSON字符串是否存在解析漏洞,若是,则执行步骤S6;S6、遍历Java源代码,检测是否存在将JSON字符串反序列化成对象并对该对象进行操作的情况,并验证是否存在注入漏洞,若是,则执行步骤S7;S7、判断是否存在fastjson反序列化漏洞,若是,则遍历调用函数查找调用链,并输出存在fastjson反序列化漏洞的调用链结果。2.根据权利要求1所述的fastjson反序列化漏洞调用链挖掘方法,其特征在于:步骤S1中项目的详细信息还包括项目的ID和项目的名称。3.根据权利要求1所述的fastjson反序列化漏洞调用链挖掘方法,其特征在于:步骤S3中将Java源代码解析为抽象语法树,具体包括以下步骤:对Java源代码进行语法分析,将Java源代码分解成一系列的令牌;再次进行语法分析,将一系列的令牌组合成一个抽象语法树。4.根据权利要求3所述的fastjson反序列化漏洞调用链挖掘方法,其特征在于:步骤S3中将抽象语法树转换为Python字典树,具体包括以下步骤:获取抽象语法树的AST节点并作为参数,判断AST节点的类型;若AST节点为一个javalang.ast.Node类型的对象,则创建一个空字典,并遍历该AST节点的所有属性,将属性名作为该字典的键,将属性值通过递归调用后的返回值作为字典的值,最终返回该字典;若AST节点为一个列表类型的对象,则创建一个空列表,并遍历该列表中的每个元素,将每个元素通过递归调用后的返回值添加至该列表中,最终返回该列表;若AST节点为其他类型,则直接返回该节点。5.根据权利要求1所述的fastjson反序列化漏洞调用链挖掘方法,其特征在于:步骤S4具体包括以下步骤:S40、遍历Python字典树中的所有import语句,查找是否有以“com.alibaba.fastjson”开头的import语句,若是,则将其标记为True;S41、遍历Python字典树中的所有类和方法,查找是否有使用Fastjson库的代码,具体为遍历每个方法的语句列表,查找是否有任何语句中包含“com.alibaba.fastjson”字符串,若是,则将其标记为True;S42、对“com.alibaba.fastjson”引入的版本进行判断,若版本小于1.2.80,则将其标记为True,判断结果为Java源代码中引用或使用Fastjson库,并且存在fastjson漏洞版本,并执行步骤S5。6.根据权利要求1所述的fastjson反序列化漏...
【专利技术属性】
技术研发人员:薛素金,胡妙鑫,郑建民,
申请(专利权)人:厦门农芯数字科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。