基于混合分析的Java反序列化利用链挖掘方法

Chinese Journal of Network and Information Security(2022)

引用 0|浏览9
暂无评分
摘要
Java反序列化漏洞已经成为当下Java应用安全的常见威胁,其中能够找到反序列化利用链是该类型漏洞能否利用的关键.由于Java应用及依赖库的代码空间大和Java本身多态的问题,人工分析Java反序列化利用链,需消耗大量的时间和精力,且高度依赖分析人员的经验知识.因此,研究如何高效且准确地自动化挖掘反序列化利用链至关重要.提出了基于混合分析的Java反序列化利用链挖掘方法.根据变量声明类型构造调用图,通过调用图分析筛选可能到达危险函数的反序列化入口函数.将筛选出的入口函数作为混合信息流分析的入口,开展同时面向指针和污点变量的混合信息流分析,对隐式创建的对象标记污点,在传播指针信息的同时传播污点信息,构建混合信息流图.基于混合信息流图判断外部污点数据传播到危险函数的可达性.根据污点传播路径构造相应的反序列化利用链.混合分析兼顾了调用图分析的速度和混合信息流分析的精度.基于提出的混合分析方法,实现相应的静态分析工具——GadgetSearch.GadgetSearch 在 Ysoserial、Marshalsec、Jackson 历史 CVE、XStream 历史 CVE4个数据集上的误报率和漏报率比现有的工具Gadgetlnspector低,并且发现多条未公开利用链.实验结果证明,所提方法能够在多个实际Java应用中高效且准确地挖掘Java反序列化利用链.
更多
查看译文
关键词
deserialization vulnerability,pointer analysis,taint analysis,hybrid analysis
AI 理解论文
溯源树
样例
生成溯源树,研究论文发展脉络
Chat Paper
正在生成论文摘要