中文

通过重写引导的对象生成改进 Java 反序列化利用链挖掘

密码学与安全 2023-04-05 v2 软件工程

摘要

Java 反序列化易于导致安全关键漏洞,攻击者可在应用程序的类路径上调用已有方法(小工具)来构造利用链以执行恶意行为。已有若干技术被提出用于静态识别可疑利用链并动态生成注入对象以进行模糊测试。然而,由于其对动态程序特性(如 Java 运行时多态)支持不完整,以及为模糊测试生成注入对象效果不佳,现有技术仍远不能令人满意。本文首先基于手动收集的 86 条公开已知利用链进行实证研究,调查 Java 反序列化漏洞的特征。实证结果表明:1) Java 反序列化小工具通常通过对运行时多态的滥用而被利用,使攻击者能复用可序列化的重写方法;2) 攻击者通常通过动态绑定调用可利用的重写方法(小工具)来生成注入对象以构造利用链。基于实证发现,我们提出一种新颖的利用链挖掘方法 \emph{GCMiner},其捕获显式与隐式方法调用来识别更多利用链,并采用重写引导的对象生成方法为模糊测试生成有效注入对象。评估结果表明 \emph{GCMiner} 显著优于最先进技术,并发现了基线方法无法识别的 56 条独特利用链。

关键词

引用

@article{arxiv.2303.07593,
  title  = {Improving Java Deserialization Gadget Chain Mining via Overriding-Guided Object Generation},
  author = {Sicong Cao and Xiaobing Sun and Xiaoxue Wu and Lili Bo and Bin Li and Rongxin Wu and Wei Liu and Biao He and Yu Ouyang and Jiajia Li},
  journal= {arXiv preprint arXiv:2303.07593},
  year   = {2023}
}

备注

To appear in the Technical Track of ICSE 2023