news 2026/7/14 5:00:14

Linus 9 年前说「模糊测试有效」——今天已成 OSS-Fuzz 时代铁律

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linus 9 年前说「模糊测试有效」——今天已成 OSS-Fuzz 时代铁律

2017 年 10 月 Linux 4.14 RC5 发布时,Linus Torvalds 在邮件列表里罕见地夸了一段 fuzzing——这位平时对工具和方法论保持距离的工程师,这次直接说「很高兴可以看到」人们在驱动子系统等地方做针对性的模糊测试。那时候 Google 的 OSS-Fuzz 才运行一年多,syzkaller 还在内部孵化,微软同期推出 Project Springfield(后改名 Security Risk Detection)想把 fuzzing 商业化。Linus 那段话当年是 Linux 内核安全史的转折点——把 fuzzing 从「少数派用的额外工具」定调为「系统性提升内核安全的关键方法」。

9 年后回看,syzkaller 帮内核找了 5000+ bug,OSS-Fuzz 覆盖 1000+ 项目,KASAN / KCSAN 进内核主线。Linus 当年的判断完全被验证,但他 9 年前没料到的是——fuzzing 在 AI 时代反而更重要,因为 AI 生成的代码量、可读性、单元测试覆盖都不如人类写的。

文章讲了啥

ZDNet 报道了 Torvalds 在 4.14 RC5 发布说明里关于 fuzzing 的言论,整篇文章围绕一段简短但份量重的引语展开:

另外值得一提的是人们做了多少随机化模糊测试,而且这正在发现东西。我们一直在做模糊测试(谁还记得只是生成随机代码,并跳转过去的老 “crashme” 程序?我们过去很早就这样做),人们在驱动子系统等方面做了一些很好的针对性模糊测试,而且已经有了各种各样的修复(不仅仅是上周的这些)。很高兴可以看到。

Linus 这段话可以拆成几个论点。

第一,fuzzing 不是新技术。1991 年的 crashme 就是最早的 fuzz 工具之一——它随机生成代码并跳转过去,看系统会不会崩。Linux 内核社区用 fuzzing 至少 20 年,但 2017 年之前这事没人系统性投入。

第二,targeted fuzzing 是关键。随机化测试 + 针对特定子系统的深度测试双管齐下,比纯随机 fuzz 有效得多。Linus 当时在夸的具体工具是 Google 的 syzkaller(前身是 trinity 和 ikos),它针对特定系统调用做深度 fuzzing。

第三,驱动子系统已被 fuzz 覆盖。Linux 内核代码里驱动占了大约 70%,也是 bug 最密集的地方。targeted fuzzing 的重点就是驱动子系统。

第四,已发现大量 bug。不仅是 4.14 这一版本,「各种修复」贯穿了多个版本——这是 Linus 在用 release notes 的口吻告诉业界:fuzzing 已经在持续产出成果。

第五,Linus 罕见肯定。Torvalds 通常对工具和方法论保持距离,邮件列表里他的语气一般是「这个 bug 必须修」或「这个设计不行」。这次他直接说「很高兴可以看到」,是他少有的对工具方法论点赞。

第六,Linux 4.14 是个 LTS。这是个延伸论点——4.14 内核被多家厂商选作长期支持版本,fuzzing 找出的 bug 修复会进入未来多年生产环境。

ZDNet 那篇报道同时指出,Google 用各种 fuzzing 工具来查找它及其它供应商软件中的错误。微软同期推出 Project Springfield(后改名 Security Risk Detection)做商业化 fuzzing 服务。

重读

这些观点今天还成立吗

  • targeted fuzzing 比随机 fuzz 有效—— syzkaller 已成为 Linux 内核持续 fuzzing 的工业标准
  • fuzzing 能发现驱动子系统 bug—— syzkaller 在 9 年里发现超过 5000 个 Linux 内核 bug
  • Linus 重视 fuzzing 工具—— Linux 内核已内置 KASAN、KCSAN、syzkaller 集成
  • fuzzing 是开源安全的关键工具—— Google OSS-Fuzz 已覆盖 1000+ 开源项目
  • ⚠️内存安全漏洞是主要威胁—— Rust for Linux 6.1+ 合并,开始用类型安全语言重写

Torvalds 当时不会想到的变量是 Rust for Linux

9 年后看,syzkaller 是 Torvalds 当年判断的最强注脚。Google 的 syzkaller 是 Linux 内核持续 fuzzing 的工业标准,9 年里发现超过 5000 个内核 bug,其中相当一部分是安全相关的内存错误。syzkaller 的设计哲学就是 Torvalds 当年说的「targeted fuzzing」——针对特定系统调用、特定驱动做深度 fuzzing。

Linus 当时不会想到的变量是 Rust for Linux。2022 年 6.1 内核合并了 Rust 基础设施,2026 年 Linux 内核中 Rust 代码已达数万行。fuzzing 找的是「已写错的 C 代码」,Rust 直接在类型系统层消灭了大部分内存错误——这是 Torvalds 当年方法论的自然延伸。

AI Agent 元年让 fuzzing 更重要

2026 年是 AI Agent 元年。AI 生成的代码反而让 fuzzing 变得更重要——AI 生成的代码量大、可读性差、单元测试覆盖低,AI Agent 写代码时容易产生边界错误、空指针解引用,大量 AI 生成的「小工具」、「小脚本」、「小胶水代码」涌入生产,人类 reviewer 越来越难 catch AI 写的微 bug。

fuzzing 9 年前是「高阶安全工具」,今天成了「AI 代码唯一可靠的验证手段」。LibFuzzer、AFL、honggfuzz 在 AI 代码生态里被广泛集成。

「fuzzing 有效」的前提是有钱有时间

2017 年 Torvalds 那段关于 fuzzing 的话,背景是 Google 投了大钱做 OSS-Fuzz、Microsoft 投了大钱做 Project Springfield、各大厂都有自己的安全团队。但 9 年后看,fuzzing、代码审计、安全响应这些「隐性基础设施」的投入是永远追不上漏洞产生速度的——Torvalds 9 年前夸 fuzzing 时,OSS-Fuzz 才运行 1 年;9 年后 OSS-Fuzz 覆盖 1000+ 项目,但每天仍有新的 CVE 爆出。

真正决定开源项目安全的,不是「投入多少钱」——是「维护机制是否可持续」。Heartbleed 后的 CII、log4j 后的 OpenSSF、xz 后的 Alpha-Omega,都是在反复试错「如何让开源维护可持续」。9 年后回头看,「开源安全靠大公司投钱」这条路走到了尽头:Google、Microsoft、IBM 这几家投了几十亿美元在开源安全上,但 xz-utils 后门证明单点失守仍然能让这些投入付之东流;AI 时代下,开源代码的「生成速度」远超过「审计速度」——投入再多钱也审计不过来。

真正能解决开源安全的,不是「更多钱」——是「维护者激励 + 自动化验证 + 分发链协同」这三件事。少问「开源安不安全」,多问「这个项目的维护者是否在拿工资」——这才是 2026 年该问的真正问题。Torvalds 9 年前说 fuzzing 有效是技术判断;但 9 年后看,「fuzzing 有效」的前提是有钱、有时间、有能力去跑 fuzzingFuzzing 本身是机制不是道德——一个维护者工资没着落的项目,再多 fuzzing 工具也救不了。


出处

  • 原文(ARR 风险):zdnet.com{rel=“nofollow noopener”}
  • LCTT 译稿源档:github.com/LCTT/TranslateProject
  • 原译:lctt.x-cmd.com
  • 发布:2017-10-17
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/14 4:58:12

嵌入式历史与生态

目录 1、历史生态问题 1.1、计算机发展的底层驱动力 1.2、计算机从军用转化为民用 1.3、摩尔定律 1.4、通用与专业计算机 1.5、为什么叫做嵌入式系统 2:发展生态问题 2.1 arm发展史 1. 起源:Acorn计算机公司(1983-1990) …

作者头像 李华
网站建设 2026/7/14 4:57:57

使用Visual C++创建Windows快捷方式:IShellLink与IPersistFile接口详解

1. 项目概述:为什么我们需要在程序中创建快捷方式? 在Windows桌面应用开发中,程序安装后自动在桌面或开始菜单创建快捷方式,是一个提升用户体验的经典功能。这不仅仅是安装程序(如InstallShield、Advanced Installer&a…

作者头像 李华
网站建设 2026/7/14 4:55:04

告别古董浏览器:为Windows XP寻找现代Chromium内核的替代方案

1. Windows XP用户的浏览器困境还在用Windows XP的朋友们,相信你们最近上网一定遇到了不少麻烦。那些曾经熟悉的浏览器图标点开后,不是打不开网页就是疯狂弹警告。我上周帮邻居老张修电脑时就深有体会——他珍藏的XP老爷机打开淘宝首页直接变成乱码&…

作者头像 李华
网站建设 2026/7/14 4:54:50

Windows C/C++文件操作实战:从API到filesystem的避坑指南

1. 项目概述:为什么Windows下的文件操作是C/C开发者的必修课?在Windows平台上用C或C写程序,文件操作几乎是绕不开的一道坎。无论是开发一个需要读写配置的工具,还是构建一个处理大量数据的应用,甚至是写一个简单的日志…

作者头像 李华
网站建设 2026/7/14 4:54:35

大肠杆菌蛋白表达纯化:从诱导条件优化到包涵体处理

一、影响可溶性表达的关键参数 多数真核蛋白在大肠杆菌中表达时倾向于形成不溶性包涵体(Baneyx & Mujacic, 2004)。影响可溶性表达的核心参数包括: 诱导温度:降低温度至16-25℃可显著减缓蛋白合成速率,为正确折叠…

作者头像 李华