WildSync:通过Wild API 使用恢复实现自动化 Fuzzing Harness 合成

" 在现代模糊测试(Fuzzing)中,测试套件的质量往往直接决定了漏洞挖掘的深度与效率。然而,在真实工业代码中,API 使用方式复杂、多样且高度依赖上下文,人工编写 Harness 成本高昂,自动生成方法又常常缺乏对真实使用场景的理解。

为此,研究者提出了WildSync,一种通过恢复"野生代码(Wild Code)"中真实 API 使用模式,自动合成高质量 Fuzzing 测试套件 的新方法,为提升模糊测试覆盖率与实用性提供了新的思路。 "

  • 📄 论文标题:WildSync: Automated Fuzzing Harness Synthesis via Wild API Usage Recovery
  • 📅 发表时间: Proceedings of the ACM on Software Engineering, ISSTA, 2025

  • 🏫 作者单位:达特茅斯学院、犹他大学

  • 💡开源代码:

    https://github.com/spencerwuwu/WildSync

01---方法介绍

图1展示了调用vorbis库ov_time_seek的外部代码。基于已完成 OggVorbis_File初始化的测试框架,作者扩展其对ov_time_seek进行模糊测试,通过模糊输入填充双精度参数s,并覆盖其条件检查,以确保 API 调用正确且避免触发已知限制或冗余崩溃。

图 1. ov_time_seek 的外部使用。

WildSync 的核心思想是:与其从文档或头文件推测 API 如何使用,不如直接从真实世界代码中学习。整体流程分为四个关键阶段:

① 野生代码收集

从大规模开源项目中挖掘真实 API 调用实例;

② API 使用模式恢复

分析参数依赖、调用顺序与资源管理语义;

③ 依赖同步(Sync)建模

构建 API 之间的隐式依赖关系图;

④ 测试套件自动合成

生成可直接用于 Fuzzing 的测试驱动代码。

图 2. WildSync整体框架

小结:WildSync将真实世界代码作为"隐式规范",显著提升了测试套件的真实性与可执行性。

02---关键机制

  1. 以真实世界代码作为 API 规范来源,避免文档不完整或过时的问题。
  2. 依赖感知的测试套件合成,显式建模 API 调用间的顺序与状态约束。
  3. 高度自动化,显著降低人工参与成本,适配大规模库级 Fuzzing。
模块 实现方式 主要作用
API 使用挖掘 静态分析真实项目中的 API 调用片段 获取高质量真实使用样本
参数与状态依赖分析 数据流与控制流联合分析 恢复 API 之间的隐式约束
使用模式同步(Sync) 跨函数、跨文件依赖对齐 保证生成 Harness 的语义一致性
测试套件生成 模板化代码合成 + 自动填充参数 生成可直接执行的 Fuzzing 驱动

小结:WildSync 的关键在于"依赖同步",避免了传统自动测试套件中常见的无效调用与崩溃初始化问题。

03---实验结果

WildSync专注于为C风格库API生成测试框架,并利用OSS-Fuzz平台托管的现有库测试框架。实验保留了所有编译选项和初始模糊测试种子选择机制,仅对每个待测库的脚本进行微调以集成新测试框架。

表1显示了WildSync的有效性。第一部分展示了已纳入OSS-Fuzz库的覆盖率提升情况。第二部分手动测试环节呈现了从stretch版本开始测试的3个库的成果。作者基于开发者提供的示例代码手动创建初始测试框架,随后通过WildSync扩展了API覆盖范围。每个测试框架均使用libFuzzer进行24小时、5轮的模糊测试。UC = 总唯一崩溃次数,S = 虚假崩溃,N = 正常崩溃(含超时/内存不足),B = 经人工复核后确认为缺陷的崩溃。

表1. 采用WildSync技术合成的全新测试套件覆盖范围提升

小结**:基于现有测试框架,WildSync成功为27个库中的469个API合成了新的测试框架。结果是新增近2万行代码,覆盖了超过1300个新函数,显著提升了被测库的测试能力。**

📌 总结

WildSync 从"API 实际如何被使用"这一角度重新审视 Fuzzing 测试套件合成问题,为解决长期存在的自动化测试套件质量瓶颈提供了切实可行的方案。

该思路对库级模糊测试、API 安全评估以及自动化测试生成均具有重要启示意义。

📣 欢迎留言讨论

  • 你认为未来Fuzzing的核心瓶颈在于输入生成,还是语义约束建模?

  • 真实世界代码是否可以作为更多程序分析任务的"隐式真值"?

📌 点赞 + 收藏 + 分享,你的支持,是我们持续解析高水平软件安全论文的最大动力!

相关推荐
zlinear数据采集卡1 小时前
模拟输入限流保护电路深度解析:从理论原理到ZLinear采集卡的实战设计
c语言·单片机·嵌入式硬件·fpga开发·自动化
凌波粒1 小时前
深度学习入门(鱼书)第4章笔记——神经网络的学习
笔记·深度学习·神经网络
信创工程师-小杨1 小时前
OpenEuler系统如何升级OpenSSh10.3P1版本
linux·运维·服务器
机 _ 长1 小时前
【项目03】基于ResNet实现猫狗识别
人工智能·深度学习
yyuuuzz1 小时前
运维场景中AI模型的常见问题
运维·服务器·人工智能·深度学习·机器学习·云计算·aws
三十..10 小时前
Ceph 三大存储接口深度实践与数据保护指南
运维·ceph
蝶豆花11 小时前
基于商城系统的功能,自动化,性能-测试报告
运维·自动化
袋鼠云数栈11 小时前
从前端到基础设施,ACOS 如何打通企业全链路可观测
运维·前端·人工智能·数据治理·数据智能
黎阳之光11 小时前
视频孪生智护供水生命线:黎阳之光赋能医疗与园区水务高质量升级
运维·物联网·算法·安全·数字孪生