去年Project Zero团队演示了一次攻击:从互联网直接入侵Pixel手机的基带芯片,拿到远程代码执行权限。整个过程不需要用户点击任何链接,手机信号栏显示满格,后台已经被人开了后门。

这不是实验室里的假设场景。Google安全研究员在真实Exynos基带上复现了攻击,随后两年又挖出18个"严重"级别的同类漏洞。基带这个黑盒子,终于藏不住了。

基带为什么是"法外之地"

基带为什么是"法外之地"

你的手机其实有两套操作系统。屏幕里那个是Android,负责拍照刷短视频;屏幕外面还藏着一个实时操作系统,专门处理蜂窝网络信号。这个基带系统跑的是几十年积累的C/C++代码遗产,3GPP协议栈一层层叠上来,技术债务重到没人敢动。

C/C++的快是出了名的。基带必须在毫秒级完成信号编解码,垃圾回收语言直接被踢出候选名单。但快的代价是内存安全全靠程序员手写,缓冲区溢出、Use-after-free这些经典漏洞就像地雷,埋在整个代码库里。

Google的演示攻击只是冰山一角。Project Zero统计的漏洞清单越来越长,补丁打完一茬又冒一茬。根本矛盾在于:基带代码太复杂,人类审计的速度追不上漏洞产生的速度。

重写基带?运营商认证周期以年计算,任何大改动都要重新走完全套合规流程。这个选项在商业上等于自杀。

Rust的"借道"方案

Rust的"借道"方案

Pixel 10的解法很产品经理思维:不改 legacy 代码,在旁边搭个 Rust 的"隔离舱"。

Rust的内存安全不靠垃圾回收,靠编译期的借用检查器(borrow checker)。变量所有权规则在代码运行前就锁死了内存泄漏的可能,性能损失接近于零。这对实时性苛刻的基带场景,是唯一能上桌的内存安全语言。

Google的具体做法是把基带里最容易出事的组件——比如数据包解析器——用Rust重新实现,然后通过FFI(外部函数接口)和原有C代码对接。新代码负责处理不可信的外部输入,老代码继续跑在沙箱里,两边通过严格定义的边界通信。

「我们不是在重写基带,是在关键路径上插了一道防火墙。」Google工程师在内部技术分享中这样描述。这种"渐进式替换"策略,让Rust模块可以逐个落地,不用等一个遥遥无期的整体重构。

为什么是现在

为什么是现在

行业压力正在累积。CISA(美国网络安全和基础设施安全局)去年把内存安全漏洞列为国家级优先事项,白宫后续备忘录直接点名要求关键基础设施采用内存安全语言。基带作为手机攻击面里最难修补的环节,自然在监管射程之内。

但技术债不会自己消失。Pixel 10的Rust组件目前只覆盖基带栈的特定层,更底层的DSP(数字信号处理器)固件仍然是C的天下。Google的路线图显示,未来几代Pixel会逐步扩大Rust的覆盖范围,前提是每一批新代码都要通过运营商的认证测试。

这个"挤牙膏"节奏暴露了现实困境:基带供应链的封闭性让外部审计几乎不可能,芯片厂商的SDK(软件开发工具包)又是黑箱。Google能推进Rust改造,很大程度上是因为Pixel 10用了自家设计的Tensor基带,握有完整源码权限。

其他安卓厂商想跟进,得先问高通或联发科答不答应开放接口。

安卓阵营的分化

Pixel的Rust实验正在产生示范效应。三星作为Exynos基带的设计方,被Project Zero连续点名后,也开始在内部评估Rust的适用场景。但进度明显慢于Google——Exynos要服务自家Galaxy产品线,还要供货给其他品牌,改动牵一发而动全身。

高通的态度更暧昧。骁龙基带的市场占有率决定了它承受的创新压力更小,但监管风向转变后,被动跟进只是时间问题。有供应链消息显示,高通下一代基带架构已经在预留Rust模块的插槽,具体上线时间表未定。

国内厂商的处境更复杂。华为海思的基带研发曾领先一代,制裁后被迫转向库存芯片;小米、OPPO、vivo的旗舰机普遍绑定高通平台,在基带安全上缺乏话语权。Pixel 10的Rust方案对它们而言,更像是一个看得见摸不着的参考设计。

「基带安全是整机的木桶短板,但修补成本太高了。」一位国内手机厂商的安全架构师评价。他的团队去年尝试审计供应商基带代码,拿到的文档比代码行数还少,最终只能依赖Google和高通的月度补丁。

用户能感知到什么

用户能感知到什么

短期内,几乎 nothing。Rust基带不会让你的5G信号多一格,也不会让下载速度翻倍。它的价值体现在攻击面缩小的统计概率里——某个CVE(通用漏洞披露)编号可能永远不会出现在Pixel 10的更新日志里,因为对应的代码路径已经被Rust替换掉了。

长期来看,这可能是安卓生态安全架构的分水岭。Google在Android系统层推Rust已经五年,从蓝牙栈到DNS解析器,新代码默认用Rust写。基带是最后一块硬骨头,也是最难啃的一块。

Pixel 10的发布日期临近,Rust基带组件的具体占比尚未公开。Project Zero团队表示会持续关注这一架构变革的实际效果——他们的下一波漏洞挖掘,很可能就是冲着这些新接口去的。

当你的手机下次收到"基带固件更新"提示时,里面可能就藏着几行Rust代码。它们不会出现在更新说明里,但攻击者扫描端口时,会发现这个黑盒子的缝隙,比三年前少了几条。

如果iPhone的基带也用上类似方案,你觉得苹果会公开承认C代码"不够好",还是像M系列芯片的内存设计一样,把安全改进包装成性能提升来讲?