首页 › tech › 漏洞七成在内存:代码为何改写Rust

漏洞七成在内存:为什么"最该信的代码"正在被改写成 Rust

导语:当"最该信的代码"成了最危险的代码

你手机里、你刷的视频背后、你登录银行的那条加密通道——支撑这一切的,是一层薄得不可思议的 C/C++ 代码:Linux 内核、OpenSSL、glibc、curl、Windows 内核、Chromium。它们是数字世界的"信任根"(root of trust),恰恰因为足够老、被审过千万遍、跑在几十亿台设备上,所以全世界才敢"信"它。

但 Fireship 这支视频抛出了一个扎心的悖论:最该被信任的代码,恰恰也是最危险的代码。因为这些用 C/C++ 写成的地基,正在源源不断地制造全球约 70% 的严重安全漏洞——缓冲区溢出、释放后使用(use-after-free)、双重释放。这不是某个程序员的疏忽,而是语言本身的内存模型决定的。

视频的核心命题就一句话:这批"地球村最该信的代码",正在被一门年轻的语言 Rust 一行行地改写。本文就带你拆解这场被业内称为"内存安全革命"的迁移,看它到底解决什么、付出什么代价,以及普通开发者该怎么接招。


视频背景卡片

项目 内容
视频标题 The most trusted code on Earth is being rewritten in Rust
频道 Fireship(@Fireship,约 390 万订阅)
时长 约 12–15 分钟(深度长片)
播放量 53.6 万(截至 2026-06-30)
发布日期 2026-06-19(距本轮解读约 11 天)
核心主题 关键基础设施的 C/C++ 代码向 Rust 的"内存安全"大迁移

核心内容拆解

1. "最该信的代码"到底是哪些?

【视频核心论点】Fireship 用"地球上最该被信任的代码"这个钩子,指的并不是某一款 App,而是数字基础设施的"承重墙":操作系统内核、TLS 加密库、基础运行时库、浏览器引擎。它们有几个共同特征——部署量以十亿计、生命周期以十年计、几乎无法被替换。

【延伸分析】这层代码有个尴尬的身份:它之所以"可信",是因为它"老"。Linux 内核诞生于 1991 年,OpenSSL 的前身 SSLeay 始于 1995 年,glibc 更早。三十多年的实弹检验让它们获得了信任,但信任的来源(C 语言 + 时间)同时也是漏洞的来源。这就构成了视频要讲的第一个反转:你以为最稳的地基,恰恰埋着最多的雷。

2. 内存安全:七成漏洞的共同死因

【视频核心论点】把所有被攻击的安全漏洞摊开看,会发现一个惊人的共性——绝大多数都和"内存"有关。

【延伸分析】这不是夸张,而是被反复验证的硬数据:

内存安全漏洞的可怕在于它的"杀伤上限"——只要能越界读写内存,攻击者往往就能实现任意代码执行(RCE),直接接管整个进程。这就是为什么整个行业愿意为它掀起一场语言级的大换血。

3. 为什么 C"修不干净"?

【视频核心论点】视频反复强调一点:这类漏洞不是靠"写得更小心"或"多测几遍"就能消灭的。

【延伸分析】根子在 C/C++ 的内存模型。它们把"指针"交到你手里——一段内存地址,编译器不检查它是否越界、是否还活着(生命周期)、是否被别人同时改写。你可以用 AddressSanitizer、模糊测试(fuzzing)、静态分析、控制流完整性(CFI)来降低风险,但无法根除这个 bug 类别,因为它不是实现失误,而是语言设计本身就允许这样的操作。

这也解释了为什么标题用的是"rewritten(改写)"而不是"patched(修补)"。给一栋承重墙开裂的大楼反复打补丁,不如换一种结构。Rust 就是那根新承重柱。

4. Rust 的"魔法":把内存安全摁在编译期

【视频核心论点】Fireship 把 Rust 捧上天,但它的核心卖点并不是"语法漂亮",而是一套叫所有权(ownership)+ 借用检查器(borrow checker)+ 生命周期(lifetimes)的编译期机制。

【延伸分析】这是整段内容最硬核也最反直觉的部分:

代价是真实存在的:陡峭的学习曲线、和借用检查器"搏斗"的痛苦,以及当你必须调用硬件或对接 C 代码时,仍然逃不掉的 unsafe 关键字(Rust 并非 100% 无 unsafe,但能把不安全面压缩到极小的、可审计的边界)。所谓"只要能编译通过,就是内存安全的(在无 unsafe 区域内)",既是 Rust 最强的承诺,也是它劝退新手的门槛。

5. 三大真实战场:内核、TLS、Android

【视频核心论点】这不是纸上谈兵,迁移已经在最关键的几个战场上打响。

【延伸分析】视频大概率围绕这几条主线展开(以下为我的延伸考证):

无论 Fireship 把镜头对准哪一个具体项目,"信任根代码正在 Rust 化"这一现象本身是确凿的。

6. 不是没人反对:改写是场豪赌

【视频核心论点】视频没有把 Rust 吹成万能药,它也承认这是一条布满荆棘的路。

【延伸分析】我的批判性补充:重写(rewrite)是软件工程里最危险的词之一。Joel Spolsky 那篇著名的《Things You Should Never Do》早就警告过——从零重写一个成熟系统,往往等于扔掉十几年修 bug 沉淀的"知识"。具体到 Rust 迁移,阻力来自三处:

  1. C 与 Rust 的边界(FFI)开销:跨语言调用要跨过"不安全边界",性能和心智负担都在这里。
  2. 社区撕裂:2024 年 Linux 内核就上演过 Rust vs C 维护者的公开冲突——核心 Rust-for-Linux 贡献者 Wedson Almeida Filho 黯然离场,C 侧维护者对 Rust 介入 DMA API 强烈反对。"最该信的代码"的改写,某种程度上也是两代程序员的路线之争。
  3. 现实预期:C 不会消失。正确的图景是 C 与 Rust 长期共存,Rust 从边界一点点向内蚕食,而不是推倒重来。

7. 从"要不要用"到"必须用":监管下场

【延伸分析】这是视频之外、但足以改变格局的一层。2024 年起,"内存安全"已经从开发者的小众偏好,升级为国家级议题:

当监管开始用合规要求倒逼语言选择,"改写 Rust"就不再只是技术审美,而是合规生存问题。这也是为什么这场迁移在未来五年只会加速。


知识结构图

flowchart TD
    A["信任根:最该信的代码<br/>Linux内核 / OpenSSL / Windows / Android"] --> B["共同病灶:C/C++ 内存模型<br/>指针无边界、无生命周期检查"]
    B --> C["后果:约70% 严重漏洞是内存安全类<br/>Heartbleed / EternalBlue / Stagefright"]
    C --> D{"为什么修不干净?"}
    D -->|"语言设计层面允许"| E["补丁无效 → 必须改写"]
    E --> F["解药:Rust<br/>所有权 + 借用检查器 + 生命周期<br/>编译期保证内存安全,零GC"]
    F --> G1["战场①:Linux内核<br/>Rust-for-Linux 自 6.1"]
    F --> G2["战场②:TLS<br/>OpenSSL → Rustls"]
    F --> G3["战场③:Android<br/>内存漏洞 76%→24%"]
    F --> G4["战场④:Windows/Chromium<br/>核心组件逐步 Rust 化"]
    G1 & G2 & G3 & G4 --> H["代价:FFI边界 / 学习曲线 / C-Rust社区冲突"]
    H --> I["监管入场:白宫ONCD / NSA / CISA<br/>内存安全 = 合规要求"]
    I --> J["图景:C 与 Rust 长期共存<br/>新代码默认 Rust,老代码边界蚕食"]

实战启示:普通开发者该怎么做?

看完视频别急着把手上所有 C 项目推倒重来。这场革命给不同人有不同的行动指南:

如果你在写新的系统级代码(网络服务、设备驱动、解析器、加密相关),默认就用 Rust(或 Go、Swift、Kotlin 等其他内存安全语言)。在新项目里,"内存安全"已经从加分项变成及格线。Google 的数据就是最好的 ROI 证明:换语言比堆补丁便宜得多。

如果你在维护一坨祖传 C 代码,别整体重写。用软件工程里的"绞杀者模式(strangler fig)"——把高风险的输入解析、协议处理边界逐步用 Rust 包裹,让 Rust 处理不可信数据,C 内核继续待在安全区。同时给老代码上 AddressSanitizer + 模糊测试,先把存量风险压下来。

无论哪类,先过借用检查器这一关。Rust 的所有权模型会逼你重新理解"数据谁拥有、谁借用、活多久",这本身就是一次对系统设计的认知升级。很多人发现,学 Rust 之后回去写 C/Python,代码质量都变好了——因为你开始本能地思考生命周期。

对企业而言,最现实的信号是:把"内存安全语言占比"写进安全 KPI。Google 用一个百分比(Android 76% 内存安全代码)就把漏洞砍掉一半以上,这是可量化、可汇报的工程胜利,值得抄作业。


延伸学习路径

  1. Google Security Blog —《Memory Safe Languages in Android 2024》:一手数据,内存漏洞从 76% 降到 24% 的来源,最适合拿去说服老板。
  2. White House ONCD 报告《Back to the Building Blocks》(2024):看监管层面如何定义"内存安全"为国家级议题。
  3. 《The Rust Programming Language》("the book")第 4 章"Ownership":亲身体验借用检查器,这是理解本文第 4 节的最佳入口。
  4. Joel Spolsky《Things You Should Never Do, Part I》:理解"为什么改写是豪赌",给迁移热泼一点清醒的冷水。
  5. Prossimo 项目(ISRG)官网:追踪 Rustls 等"内存安全关键库"的真实进展。

一句话总结

当全球七成安全漏洞都源于 C/C++ 的内存模型,把"最该被信任"的地基改写成 Rust,已经从技术审美升级成一场由数据、工程和监管共同推动的不可逆革命。


参考来源

  1. The most trusted code on Earth is being rewritten in Rust — Fireship — 本文深度解读的核心视频
  2. Google Security Blog: Memory safe languages in Android 2024 — Android 内存漏洞 76%→24% 一手数据
  3. White House ONCD: Back to the Building Blocks (2024) — 内存安全监管报告
  4. Microsoft MSRC — Trends in memory safety (Matt Miller, 2019) — "70% 漏洞是内存安全类"的经典数据来源
  5. Rust for Linux — The Linux Kernel Documentation — Rust 进入内核的官方说明

本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。

[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。

51学通信知识星球海报-扫码加入