<!-- title: 漏洞七成在内存：代码为何改写Rust -->
<!-- domain: tech -->
<!-- video: https://www.youtube.com/watch?v=Sntj4HmuykI -->

# 漏洞七成在内存：为什么"最该信的代码"正在被改写成 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. 内存安全：七成漏洞的共同死因

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

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

- **微软 MSRC**（Matt Miller，BlueHat 2019）：过去十几年微软产品修复的安全漏洞里，约 **70% 是内存安全问题**。
- **Google Project Zero**：野外被实际利用的 0-day 漏洞中，约 **70% 是内存破坏类**。
- 历史级的灾难几乎清一色是内存漏洞：**Heartbleed**（OpenSSL，CVE-2014-0160，让攻击者从服务器内存里直接"偷"数据）、**EternalBlue**（SMB 缓冲区溢出，WannaCry 勒索病毒的入口）、**Stagefright**（Android 媒体库，一条彩信就能 RCE）。

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

### 3. 为什么 C"修不干净"？

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

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

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

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

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

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

- **所有权**：每一块内存在任一时刻都只能有**一个**所有者；所有者离开作用域，内存自动释放。这一条直接消灭了"双重释放"和绝大多数"内存泄漏"。
- **借用与生命周期**：你想读或写这块内存，必须"借用"，而编译器会在编译时验证：所有引用都不会活过它指向的数据（消灭 use-after-free），可变引用与不可变引用不能同时存在（消灭**数据竞争**）。
- **零成本**：这一切都在**编译期**完成，运行时几乎不付代价，也**不需要垃圾回收器（GC）**。这正是它能进操作系统内核的关键——内核不能容忍 GC 停顿。

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

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

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

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

- **Linux 内核**：`Rust-for-Linux` 自 Linux 6.1（2022 年 12 月）正式被 Linus Torvalds 接受。到 2024–2025 年，第一批 Rust 驱动（如 NVIDIA GPU 的 Nova 驱动框架）陆续合入。内核内 TLS 也在探索用 Rustls 替代。
- **OpenSSL → Rustls**：由 ISRG（Let's Encrypt 母机构）的 Prossimo 项目推动的 **Rustls**，是一个内存安全的 TLS 库，正逐步成为 OpenSSL 的安全替代。毕竟 Heartbleed 至今仍是"为什么不能信 C 加密库"的头号反面教材。
- **Google Android**：Android 15/16 已有**上百万行 Rust 代码**（蓝牙栈、密钥库、虚拟化 crosvm 等）。Google 官方 2024 年数据：Android 内存安全漏洞占比从 2019 年的 **76%** 降到 2024 年的 **24%**，而 **Rust 代码贡献的内存安全漏洞为零**。
- **Microsoft Windows / Chromium**：微软把 Windows 的部分核心图形与字体处理代码用 Rust 重写；Google 自 2023 年起允许 Chromium 中引入 Rust，新代码中 Rust 占比持续上升。

无论 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 年起，"内存安全"已经从开发者的小众偏好，升级为**国家级议题**：

- **美国白宫 ONCD**（2024 年 2 月）《Back to the Building Blocks》报告，点名要求关键基础设施迁移到内存安全语言。
- **NSA、CISA** 相继发布指南；CISA 的"产品安全不良实践"甚至把"在关键基础设施中用内存不安全语言"列为反面典型。

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

---

## 知识结构图

```mermaid
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](https://www.youtube.com/watch?v=Sntj4HmuykI) — 本文深度解读的核心视频
2. [Google Security Blog: Memory safe languages in Android 2024](https://security.googleblog.com/2024/11/memory-safe-languages-in-android-2024.html) — Android 内存漏洞 76%→24% 一手数据
3. [White House ONCD: Back to the Building Blocks (2024)](https://www.whitehouse.gov/oncd/briefing-room/2024/02/26/press-release-technical-report/) — 内存安全监管报告
4. [Microsoft MSRC — Trends in memory safety (Matt Miller, 2019)](https://msrc.microsoft.com/blog/2019/07/a-proactive-approach-to-more-secure-code/) — "70% 漏洞是内存安全类"的经典数据来源
5. [Rust for Linux — The Linux Kernel Documentation](https://docs.kernel.org/rust/) — 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学通信知识星球海报-扫码加入](https://wiki.500nian.com/images/zhixingqiu_qrcode.png)
