去年Project Zero团队演示了一次攻击:从互联网直接入侵Pixel手机的基带芯片,拿到远程代码执行权限。整个过程不需要用户点击任何链接,手机信号栏显示满格,后台已经被人开了后门。
这不是实验室里的假设场景。Google安全研究员在真实Exynos基带上复现了攻击,随后两年又挖出18个"严重"级别的同类漏洞。基带这个黑盒子,终于藏不住了。
基带为什么是"法外之地"
你的手机其实有两套操作系统。屏幕里那个是Android,负责拍照刷短视频;屏幕外面还藏着一个实时操作系统,专门处理蜂窝网络信号。这个基带系统跑的是几十年积累的C/C++代码遗产,3GPP协议栈一层层叠上来,技术债务重到没人敢动。
C/C++的快是出了名的。基带必须在毫秒级完成信号编解码,垃圾回收语言直接被踢出候选名单。但快的代价是内存安全全靠程序员手写,缓冲区溢出、Use-after-free这些经典漏洞就像地雷,埋在整个代码库里。
Google的演示攻击只是冰山一角。Project Zero统计的漏洞清单越来越长,补丁打完一茬又冒一茬。根本矛盾在于:基带代码太复杂,人类审计的速度追不上漏洞产生的速度。
重写基带?运营商认证周期以年计算,任何大改动都要重新走完全套合规流程。这个选项在商业上等于自杀。
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系列芯片的内存设计一样,把安全改进包装成性能提升来讲?
热门跟贴