#kernel-fuzzing

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

← 返回所有主题
👥 作者: Yue Sun, Yan Kang 0002, Chenggang Wu 0002, Kangjie Lu, Jiming Wang, Xingwei Li, Yuhao Hu, Jikai Ren, Yuanming Lai, Mengyao Xie, Zhe Wang 0017

本文针对Linux内核驱动模糊测试中一个被忽视的维度——运行时参数——进行了系统性研究。Linux内核采用宏内核架构,所有组件运行在统一地址空间,其中设备驱动代码占比超过一半,但也是漏洞高发区。已有研究主要通过系统调用和硬件中断对驱动进行模糊测试。然而,作者通过深入分析Linux内核设备模型发现,驱动的执行还受到运行时参数的影响,这些参数包括设备属性和内核模块参数,它们通过一个名为sysfs的特殊虚拟文件系统暴露给用户空间。作者的分析表明,很大一部分未被覆盖的代码正是被这些参数所屏蔽。此外,同一设备树中相互连接的相邻设备也会影响驱动的行为。基于此,作者提出了一种新的模糊测试方法SyzParam,它能够自动识别并利用这些运行时参数来触发更深层的驱动代码路径。SyzParam通过解析内核模块参数和设备属性定义,生成有效的参数值和序列,并结合经典的syscall模糊器(如syzkaller)进行协同测试。实验表明,SyzParam在多个主流内核版本上发现了大量之前未被覆盖的代码区域,并成功检测出若干新漏洞。该工作为内核驱动安全测试提供了新视角,强调了参数配置在触发边界条件中的关键作用。适合内核安全研究员、模糊测试工具开发者及系统管理员阅读。

💡 推荐理由: 传统内核驱动模糊测试仅关注系统调用和中断,忽略了通过sysfs暴露的运行时参数这一重要攻击面。本文揭示该面并提供了自动化利用方法,能有效提升驱动漏洞发现率。

🎯 建议动作: 研究跟进

排序因子: 来自网络安全顶级会议 (+8) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.5)
👥 作者: Alexander Bulekov, Bandan Das, Stefan Hajnoczi, Manuel Egele

该论文提出了一种名为FUZZNG的新型内核模糊测试方法,旨在解决现有操作系统模糊测试工具(如Syzkaller)依赖手动编写的系统调用接口描述(语法规则)的扩展性问题。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)
推荐 11.6
Conf: 50%
👥 作者: Zezhong Ren, Han Zheng 0006, Zhiyao Feng, Qinying Wang, Marcel Busch, Yuqing Zhang 0001, Chao Zhang 0008, Mathias Payer

内核模糊测试是发现内核漏洞的有效手段,但现有工具如Syzkaller过度追求代码覆盖率,导致低频代码区域测试不足。本文提出SYSYPHUZZ,一种面向代码频率的内核模糊器,旨在提升对未充分测试代码区域的探索。首先,通过对Linux内核中Syzkaller的精细评估,揭示了代码覆盖不平衡的问题。SYSYPHUZZ引入两个关键技术:选择性任务调度(Selective Task Scheduling)动态优先管理探索任务,避免任务爆炸;上下文保持突变(Context-Preserving Mutation)减少对低频系统调用上下文依赖的破坏。与Syzkaller和SyzGPT的对比实验表明,SYSYPHUZZ显著减少了未探索代码区域,发现31个被Syzkaller遗漏和27个被SyzGPT遗漏的独特bug,并发现5个被持续运行的Syzbot遗漏的漏洞。将SYSYPHUZZ与SyzGPT集成后,新工具SyzGPTsysy多发现33%的独占bug,证明了其增强效果。所有漏洞已负责任披露,代码已开源。该研究为内核模糊测试提供了新方向,有望提升Linux内核的安全性。

💡 推荐理由: 内核漏洞是高危目标,传统覆盖率导向的模糊测试已陷入瓶颈。SYSYPHUZZ从代码频率角度切入,可发现大量被现有工具遗漏的漏洞,对提升内核安全性有直接价值,值得安全研究人员和内核开发者关注。

🎯 建议动作: 关注SYSYPHUZZ开源项目,评估将其集成到内部内核模糊测试流程的可能性,以增强对低频代码区域的覆盖。

排序因子: 来自网络安全顶级会议 (+8) | 命中热门研究主题 (+2) | Community 数据源 (+1) | LLM 评分加成 (+0.6)
👥 作者: 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)