#kernel-fuzzing

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

← 返回所有主题
👥 作者: 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)
👥 作者: Alexander Bulekov, Bandan Das, Stefan Hajnoczi, Manuel Egele

操作系统内核的安全性对整个计算生态至关重要,但由于代码规模庞大,每年都会发现数百个安全漏洞。模糊测试已成为自动发现软件安全问题的关键技术,并被用于内核漏洞挖掘,例如 Syzkaller 已发现数千个内核缺陷。然而,Syzkaller 等现代内核模糊器依赖于精确且详尽的人工编写的 harness 和语法描述(grammar)来定义每个系统调用接口,这带来了可扩展性问题。本文提出了 FUZZNG,一种无需系统调用描述即可对操作系统内核进行模糊测试的通用方法。与 Syzkaller 不同,FUZZNG 不需要复杂的接口描述,而是利用内核基本设计特性(如系统调用号、文件路径等)来重塑和简化模糊器的输入空间。FUZZNG 仅需少量配置:一个目标文件列表和一组系统调用号。作者在 Linux 内核上实现了 FUZZNG,并在 10 个已有 Syzkaller 详细描述的 Linux 组件上进行了测试。结果表明,FUZZNG 达到了 Syzkaller 覆盖率的 102.5%(平均),并发现了 9 个新漏洞(其中 5 个位于 Syzkaller 已长期模糊测试的组件中)。此外,FUZZNG 的配置文件大小仅为 Syzkaller 手工编写语法的 1.7%,且无需初始种子输入或专家指导。该工作显著降低了内核模糊测试的配置成本和人力依赖,为大规模自动化内核安全测试提供了新思路。

💡 推荐理由: FUZZNG 消除了传统内核模糊器对复杂语法描述的依赖,极大降低了测试准备成本,有望加速内核漏洞的发现,对提升操作系统整体安全性具有重要价值。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)