
Google正把安全焦点瞄准当代智高手机中永久戒备薄弱的一块:蜂窝基带。但公司并非试图推翻重写数十年的调制解调器固件九游体育app娱乐,而是通过在 Pixel 10 调制解调器中引入一个基于 Rust 的 DNS 贯通器,来强化这一传统操作系统退守难以秘籍的挫折面。
Google在多年连接中还是发现,一朝挫折者告捷打入基带层面,操作系统常用的沙箱与罅隙缓解机制常常就不再成效。

问题领先出在蜂窝调制解调器的构建神态上。 手机基带试验上相称于一套零丁的操作系统,常常使用 C/C++ 编写,初始着体量达数十兆字节的大量闭源代码,肃肃从信号处理到条约协商的方方面面。 在这种环境下进行内存责罚极为可贵,恶果常常是固件“内存不安全”,容易出现缓冲区溢出、开释后使用、内存表示等谬误,并被串联讹诈成汉典代码膨胀罅隙。
Google Project Zero 团队此前还是在 Pixel 所用的 Exynos 调制解调器上,演示了不错通过互联网汉典终了代码膨胀,并整理出二十多个 Exynos 基带罅隙,其中 18 个被评为严重品级。 尽管这些具体谬误随后陆续被修补,但并未改换底层风险:代码库依旧复杂、闭源且高度深入在外部挫折面上。 将整套固件透彻改写为使用内存安全讲话,在现实中短期果然不行能。 基带厂商在往时数十年中,围绕 3GPP 范例握住类似代码眉目,其中大量内容被视作生意好意思妙。
与此同期,基带必须在及时性极高的条款下初始,这也使得 C 和 C++ 永久成为性能优先的当然选拔。 其他内存安全讲话,如 Python 或 C#,依赖垃圾回收机制,这会带来不行预期的延时抖动,对基带这类对时延极为敏锐的负载来说不行经受。 Rust 为Google提供了一条新的旅途。 该讲话通过所有权与借用模子,在编译阶段强制内存安全,由严格的“借用查验器”而非垃圾回收来把关。 在 Rust 中,某一类内存乌有根柢无法通过编译,这让它得当用于既要求高性能又需要安全保险的关节组件。
在现时阶段,Google并未始试全面重写,而是遴选了一个显出面卓绝、界限相对了了的子系统:基带里面的 DNS 贯通。 跟着蜂窝网罗功能握住迁徙到基于 IP 的数据网罗,DNS 已成为手机查找管事、路由呼唤滚动等功能的中枢依赖。 DNS 贯通器必须接收不受信任的数据包并贯通一套相称复杂的条约,当它们以 C 或 C++ 终了时,还是屡次被施展会成为可被讹诈的罅隙泉源。
为强化这一起径,Google选拔了 Rust 生态中泛泛使用的 hickory-proto DNS 库,该库领有完善测试与活跃养息。 由于 Pixel 调制解调器并不存在极点严苛的内存为止,团队不错将剪辑后的、基于 no_std 的 hickory-proto 版块胜仗集成到基带固件中。 在剔除圭表库依赖以安妥基带附近之后,这些 Rust 组件为固件特别带来的体积约为 371KB。 在新的架构下,抵达调制解调器的 DNS 苦求将领先由 Rust 代码处理,然后才可能波及留传的 C/C++ 旅途。 针对坏心 DNS 数据包发起的内存碎裂挫折,会优先撞上 Rust 在编译期施加的安全附近,而非拓荒者手写的指针运算。
Pixel 10 是首款在调制解调器中搭载 Rust DNS 贯通器的拓荒。 Google将这一举措定位为将来职责的模板:先从最危机、贯通逻辑复杂的代码起原九游体育app娱乐,将其阻隔并迁徙到内存安全的 Rust 环境中,跟着时辰推移安静收缩深入在不受信任数据眼前的留传代码占比。 这一渐进式纠正道路,试图在不推翻既有基带生态的前提下,为Android体系中最薄弱的步调加上一谈更牢靠的防地。