信息流驱动模糊测试:Information Flow Fuzzing 如何发现隐蔽信息泄露

发布时间:2026/7/13 14:26:36

信息流驱动模糊测试:Information Flow Fuzzing 如何发现隐蔽信息泄露 “ 信息泄露是软件系统中极具隐蔽性却危害巨大的安全问题。不同于崩溃类漏洞信息泄露往往不会直接触发异常而是在程序正常执行路径中悄然传播敏感数据。传统模糊测试主要以覆盖率或崩溃为导向难以精准发现密钥或敏感变量是否被传播至不安全输出隐式控制依赖导致的间接信息泄露不触发异常但违反信息流策略的执行路径。针对这一难题论文提出Information Flow Fuzzing将信息流分析融入模糊测试过程以自动化发现信息泄露漏洞。 ”论文标题Finding Information Leaks with Information Flow Fuzzing发表时间34th USENIX Security Symposium2025作者单位德国航空航天中心、亥姆霍兹信息安全中心 开源代码https://gitlab.com/dlr-dw/automated-threat-modeling/flowfuzz01—方法介绍该工作的核心思想是让Fuzzer不再只关注“程序是否崩溃”而是关注“敏感数据是否流向不安全位置”。整体流程可以概括为三步① 敏感源标记Source Identification标记敏感输入或秘密数据。② 动态信息流跟踪Taint Tracking监测敏感数据在程序执行中的传播路径。③ 信息流导向变异Flow-Guided Mutation根据数据传播情况引导输入生成扩大泄露路径探索空间。图 1. flowfuzz的工作原理。对于每个输入flowfuzz会运行程序两次一次是在原始状态下另一次是在对秘密数据进行变异后的状态下小结将“覆盖率反馈”升级为“信息流反馈”使模糊测试具备语义感知能力。02—关键机制信息流引导的模糊测试框架首次将信息流分析与Fuzzing深度融合。语义级反馈信号不再仅依赖覆盖率或崩溃作为优化目标。动态控制依赖建模考虑隐式信息流传播路径。高效运行时机制在保持检测精度的同时控制性能开销。模块设计思路作用敏感源建模定义需保护的数据或变量明确安全策略目标动态污点传播运行时追踪数据依赖与控制依赖识别潜在泄露路径信息流反馈机制以泄露传播深度或范围作为反馈信号引导输入变异泄露检测判定判断敏感数据是否到达危险 sink报告信息泄露漏洞小结该方法将模糊测试从“语法驱动”升级为“语义驱动”。03—实验结果实验在一组具有不同复杂度的10个C语言项目上评估flowfuzz都选自NVD包含各种可能导致信息泄露的漏洞。主要实验结果如下。1为了确定该预言的实用性实验使用flowfuzz和地址检测器ASan检查了10个不同的项目结果见表1。flowfuzz能够识别所有项目和每次试验中的信息泄露。相比之下AddressSanitizer仅在10个案例中的1个案例中检测成功。表1. 显示信息泄露是否被flowfuzz和地址检测器ASan检测到2采用三种引导策略进行了消融实验1在R中基于边覆盖率的标准引导2基于R与R’之间覆盖差异的引导并结合标准引导3完整引导策略在前一种策略的基础上进一步融合R与R’之间的数据差异。结果见表2-4。结果显示在执行时间和调用次数这两个指标上引导策略“覆盖差异标准引导”相较于单纯的标准引导和完整引导整体表现最佳。表2. flowfuzz和地址检测器ASan检测到信息泄露之前的平均执行时间ms表3. flowfuzz和地址检测器ASan检测到信息泄露之前调用的平均次数表4. 当信息泄露被flowfuzz和地址检测器ASan检测到时所达到的平均覆盖率小结信息流模糊测试是一种让模糊测试器检测信息泄露的新方法它优于静态和动态数据流分析因为它不会受到过度拟合和可扩展性问题。实验证明flowfuzz能够检测出具有不同底层漏洞的测试对象中的全部10种信息泄露。 总结该论文的重要意义在于重新定义模糊测试的优化目标—从路径覆盖率走向信息安全属性验证。证明只有让模糊测试理解“数据流向何处”才能真正发现隐蔽的信息泄露问题。这项工作为未来“语义感知型模糊测试”奠定了基础也为自动化安全分析提供了新的研究范式。 欢迎留言讨论你认为未来 Fuzzing 的主流方向是否会从覆盖率驱动转向语义驱动信息流分析与大模型是否可以进一步结合 点赞 收藏 分享你的支持是我们持续解析高水平软件安全论文的最大动力

相关新闻