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的核心瓶颈在于输入生成,还是语义约束建模?

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

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

相关推荐
阿里云云原生1 小时前
可用性从 99.9% 跃升至 99.995%:畅捷通如何用 AI 重塑运维底座?
运维·网络·人工智能
阿童木写作2 小时前
Python实现Temu图片批量翻译自动化教程
运维·人工智能·python·自动化
iori97king3 小时前
库存不足自动通知:第一次使用自动化
运维·自动化
@insist1233 小时前
信息系统管理工程师-信息系统运维资源、技术与智能运维核心考点解析
运维·软考·信管·软件水平考试·信息系统管理工程师
木子欢儿3 小时前
Intel 架构的 MacBook Pro 运行 Linux 发热量高解决
linux·运维·服务器
DogDaoDao4 小时前
DeepQTMT: 深度学习加速VVC帧内编码CU划分 —— 论文深度解读与源码拆解
人工智能·深度学习·视频编解码·h266·vvc·帧内预测·deepqtmt
KKKlucifer5 小时前
运营商全域安全运维支撑体系落地实践
运维·安全
wyg_0311135 小时前
从0搭建极简transformer大模型
人工智能·深度学习·transformer
EAIReport5 小时前
工业电气自动化数据治理破局:多Agent大模型赋能全景智能决策
大数据·运维·自动化
会编程的土豆6 小时前
Go 模板初识
linux·运维·服务器