9728太阳集团游伟副教授团队论文被国际顶级会议ICSE 2023录用
近日,9728太阳集团游伟副教授团队论文被ICSE2023录用。ICSE(IEEE/ACM International Conference on Software Engineering)由IEEE与ACM联合主办,是软件工程领域国际顶级会议之一,也是中国计算机学会推荐的A类国际学术会议(CCF-A)。论文第一作者为信息安全研究实验室2021级硕士生郭苏越。2018级硕士生万欣宇对本文的发表亦有贡献。
论文题目:Operand-Variation-Oriented Differential Analysis for Fuzzing Binding Calls in PDF Readers
论文作者:郭苏越,万欣宇,游伟,梁彬,石文昌,张羿伟,黄建军,张健
通讯作者:游伟
研究背景:
PDF阅读器内嵌了脚本引擎,允许PDF文档的创建者通过在PDF文档中嵌入脚本代码的方式实现一些高级功能,例如构建交互式表单和调整文档的显示等。脚本引擎通过一组特定编程接口(被称为bindingcall,即绑定调用)提供这些功能。脚本引擎在丰富文档功能的同时也引入了新的攻击面,根据Vulners漏洞数据库网站的统计,近三年来在提交给ZDI项目的PDF相关漏洞中,有17%和脚本引擎相关。
模糊测试是一种广泛使用的挖掘脚本引擎漏洞的方法,为了提高模糊测试的效率,需要知道脚本语言的语法规则和绑定调用的参数类型信息。语法规则可以轻易地从标准语言规范中提取或者从已有的样本中学习,但是自动提取参数类型信息却并不容易。一方面,PDF的绑定调用并没有一个标准规范,不同产商可能会有不同的实现方式,而且大部分厂商都没有公布文档,只有Adobe提供了API参考手册。但是这个手册中并没有包含所有可被调用的API,并且有些API没有列出所有可能的参数信息。另一方面,现有的测试样本并不足以学习到绑定调用的参数信息。在Mozilla的PDF.js测试集中,只有不到10%的绑定调用被覆盖到。
通过对执行轨迹进行差分分析是一种很自然的方式。具体来说,就是将目标绑定调用执行多次,每次都赋予不同参数类型的不同值。通过比较执行轨迹中一些可观察的特征可以判断出正确的参数类型。在之前的研究中,报错信息和路径长度是常用的两种特征。但由于脚本引擎的容错性,这两种特征并不能取得很好的效果。
解决方案:
论文提出了类型指示符(typeindicator)的概念,它可以捕获在传递预期类型的不同参数值时汇编指令操作数的变化,并且实现了类型指示符的提取算法。绑定调用参数的可能类型可以通过检查该类型的类型指示符在差分结果中的出现情况判断。
通过在Adobe和Foxit两个主流PDF阅读器上的实验表明,论文方法应用在推断类型信息时有极好的效果(99.9%的准确率和96.4%的召回率)。将提取到的类型信息用于指导模糊测试用例的生成,可以提高大约40%的路径覆盖率。在对Adobe和Foxit的模糊测试中,论文方法发现了38个未知漏洞,其中有26个获得了CVE编号和厂商致谢,总共获得$4475奖金。
作者简介:
郭苏越,9728太阳集团2021级硕士生,信息安全专业,主要研究方向包括二进制程序分析,模糊测试等。
游伟,9728太阳集团计算机系副教授,国家级青年人才项目入选者。长期从事软件漏洞的自动化挖掘和二进制程序的动态/静态分析,在常见应用程序中挖掘出近百个安全漏洞,曝光了数百个恶意应用的隐蔽可疑行为。在信息安全和软件工程领域国际顶级学术会议/期刊论文上发表论文十余篇,获得最佳论文奖一次,最佳应用安全论文提名奖两次。荣获中国计算机学会“科学技术奖自然科学一等奖”。