计算机领域国际权威学术顶会ACM CCS 2023于11月26日在丹麦哥本哈根开幕。腾讯安全大数据实验室团队论文《Hopper: Interpretative Fuzzing for Libraries》被大会收录,昨天,实验室研究员谢雨轩受邀出席大会进行主题分享。
该论文提出了解释性模糊测试(Interpretative Fuzzing)方法,展示了如何基于动态反馈来学习API内外的约束进行代码自动化生成,从而在没有任何外部专家知识的前提下生成有效可用的代码调用方式,并且根据这些代码来挖掘漏洞。该研究方法的出现旨在解决模糊测试需要人工构造入口的问题,有望极大地提升漏洞自动化挖掘的效率和应用范围。
模糊测试技术(Fuzzing)最近几年被证明是最有效的漏洞挖掘手段,它的主要机制是通过构造大量的随机输入来测试软件是否能过正确的处理这些输入,从而帮助开发人员自动化地发现软件缺陷。目前,模糊测试技术在开源软件和商业软件上被广泛使用。
但是,模糊测试依赖于开发人员给目标对象人工构造测试入口(Fuzz Driver) ,而编写出逻辑正确且覆盖率高的测试入口既需要开发者对待测的库有深入的理解,也需要耗费较大的工作量。在居高不下的门槛之下,目前仍有非常多的代码(包括项目、API等等)没有被模糊测试所覆盖,漏洞挖掘的“自动化”程度有限。
腾讯安全大数据实验室提出的解释性模糊测试改变了这一现状。解释性模糊测试不需要开发人员编写测试入口,让Fuzzer可以直接生成待执行的程序,从而实现完全零人工地学习和测试任意库API,打通模糊测试全自动化的流程,极大地提升漏洞自动化挖掘的效率。
基于这个方法,腾讯安全大数据实验室实现了漏洞自动化挖掘工具Hopper,并在11个开源的库文件中评估了Hopper的效果。结果表明,Hopper在其中三个库中覆盖率表现有显著优势,在其他库能取得跟人工构造的入口不相上下的效果。
在API覆盖率上,Hopper能达到93.52%的极高水准,而对相同目标人工编写的模糊测试入口只能覆盖大约15%-30%的API。
此外,Hopper推断的API内约束能达到96.51%的准确率,大大提升生成代码的成功率和效率。
最后,实验中,Hopper直接借助执行的动态反馈来生成可以测试API的代码,在大大提升API测试覆盖率的同时,还成功地找出了一系列真实的软件缺陷,并提交给相关平台和开发者进行了修复。
研究人员将上述研究成果以论文方式发布,并被ACM CCS 2023收录。ACM CCS与IEEE S&P、USENIX Security、NDSS并称为计算机安全领域四大顶级会议,已有近30年的历史,并对计算机安全领域产生了重大深远的影响。该会议在计算机安全领域享有崇高的声誉,同时也被中国计算机学会(CCF)认定为网络与信息安全A类国际学术会议。
腾讯安全大数据实验室认为,网络安全面临的内外部技术都在不断发展,但网络安全的本质还是漏洞和攻防,因此,如何才能先于攻击者找到系统的漏洞是不变的主题。大模型时代, 腾讯安全也将持续探索如何让AI等新技术赋能于漏洞挖掘、提升效率。