#data-flow

共收录 1 条相关安全情报。

← 返回所有主题
👥 作者: Yunseong Kim

本文提出了一种名为 BOUNDARY FLOW 的 LLVM 插桩框架,旨在解决传统覆盖率引导的内核模糊测试(如 syzkaller)仅依赖边覆盖率(trace-pc)而无法区分仅参数值不同的执行路径的问题。例如,copy_from_user() 函数的不同 size 参数会命中相同的基本块,但安全影响截然不同。BOUNDARY FLOW 扩展了 Linux KCOV,在函数入口和返回处捕获结构化的数据流信息:入口处记录 <PC, arg_idx, arg_size, ptr, offsets[]>,返回处记录 <PC, ret_size, ptr, offsets[]>。复合类型通过 DWARF DICompositeType 元数据自动分解,无需任何源代码注释。该框架通过独立的内核设备 /sys/kernel/debug/kcov_dataflow 提供无锁的每任务环形缓冲区,与现有 KCOV 和 syzkaller 基础设施无冲突。其双重用途包括:模糊测试器获得状态感知反馈以引导涉及值依赖的状态转换的变异;安全分析师获得确定性参数记录,无需 printk 或 kprobe 开销即可进行根因分析。此外,一个后编译流水线(rustc, opt, llc)支持 Rust 内核模块插桩,无需修改 rustc,这是目前唯一能在 -O2 DWARF 省略情况下捕获 Rust 函数参数的运行时方法。在五种漏洞类别(OOB、UAF、double-free、10 层深度链传播、Rust FFI、Rust for Linux Modules)上进行了评估,插桩路径的开销低于 3%。

💡 推荐理由: 该工作为内核模糊测试提供了超越边覆盖率的数据流反馈,能显著提升对值依赖漏洞的发现能力,同时为安全分析提供了低开销的参数级追踪手段。

🎯 建议动作: 研究跟进

排序因子: 影响边界/网络设备 (+5) | 来自 arXiv 其他板块 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)