网易首页 > 网易号 > 正文 申请入驻

WhatsApp 在 30 亿台设备上部署基于 Rust 的媒体解析器以阻止恶意软件

0
分享至


作者 | Steef-Jan Wiggers

译者 | 马可薇

WhatsApp 的工程团队将其媒体处理库从 C++ 重写为 Rust,将代码规模从 16 万行减少至 9 万行,同时引入了内存安全保护机制。该库运行在数十亿台设备上,包括 Android 手机、iPhone、桌面设备、智能手表以及网页浏览器,这使其成为迄今为止规模最大的客户端 Rust 代码部署之一。

这一工作可以追溯到 2015 年的 Stagefright 漏洞事件。当时人们发现攻击者可以将恶意软件隐藏在看似正常的图片或视频文件中。这些恶意文件利用了 Android 媒体库中的漏洞,而像 WhatsApp 这样的应用无法直接修补底层操作系统。那时,WhatsApp 使用一个名为 “wamedia” 的 C++ 库,在发送前对 MP4 文件进行合规性检查。公司意识到,这段代码处理的是来自潜在恶意来源的非可信数据,因此非常适合使用内存安全语言进行重写。


Meta 工程博客 – 安全与隐私专栏

尽管 Meta 此次部署在规模上前所未有,但其策略并非没有先例。Mozilla 的首席工程师 Andrew Lilley Brinker 在 Bluesky 上 提到:

很多人知道 Mozilla 在 Rust 早期发展阶段提供了大量资助,但可能不知道,Firefox 第一个上线的 Rust 组件其实是 2016 年的一个 MP4 解析器!

这同样是对 Stagefright 时代所揭示问题的回应——即当 C++ 媒体处理代码在解析非可信二进制数据时,存在固有的安全风险。

WhatsApp 并没有采用渐进式替换方式,而是同时构建了完整的 Rust 版本与原 C++ 版本并行运行。团队通过差分模糊测试以及大量集成测试,验证两个版本之间的兼容性,然后才完成迁移。WhatsApp 软件工程师 Daniel Sommermann 和 Baojun Wang 表示,这种策略不仅带来了性能提升,还降低了内存使用量。

不过,二进制文件大小成为一个现实问题。博客文章提到,Rust 标准库最初增加了文件体积,但并未详细说明解决方案。在 Hacker News 的 讨论 中,WhatsApp 工程师 Daniel Sommermann 解释道:

“我们在构建系统优化方面投入了大量工作,随着时间推移逐步将体积压缩下来。虽然一开始确实接受了大约 200 KiB 的标准库体积开销。”团队将构建系统从 Gradle、CMake 和 Cargo 迁移到 Buck2。Sommermann 表示,Buck2 “在缩小体积方面帮助巨大,比如改进了 LTO(链接时优化)并使用了最新的 clang 工具链优化。”

该媒体库已经不仅仅用于基础格式校验。WhatsApp 将这一扩展系统命名为 “Kaleidoscope”。它会检测可疑模式,例如:嵌入文件或脚本的 PDF、文件扩展名与实际内容不匹配的文件、伪装成图片的可执行文件等。一旦发现风险内容,系统会在用户界面中发出警告。这些检测无法拦截所有攻击,但能够阻挡许多常见的利用技术。

Meta 表示,这是他们所知规模最大的 Rust 库面向终端用户设备的部署。每个月,这段代码都会通过 WhatsApp、Messenger 和 Instagram 推送到数十亿台设备,包括手机、笔记本电脑、桌面设备、智能手表和各种操作系统上的浏览器。

在 Hacker News 的讨论中,还有人 探讨 了技术细节。例如,用户 Cong-or 指出二进制体积的重要性:

在服务器环境中,Rust 标准库带来的开销通常不算什么,但当你要向数十亿台移动设备发布软件时,每一个 KB 都至关重要。很高兴看到他们投入资源优化构建工具,而不是简单接受体积膨胀。

另一位用户 storystarling 则强调测试难度:

这种重写工作最难的部分通常不是 Rust 实现本身,而是要保持与旧版解析器在行为上的‘bug 级兼容’。

WhatsApp 的安全策略分为三条路径:尽可能减少攻击面;对仍然使用的 C 和 C++ 代码加强保护(如控制流完整性与强化内存分配器);对于新代码优先使用内存安全语言。使用 C/C++ 的开发者需要接受专门的安全培训,其代码会经过自动化分析工具审查,公司对发现的问题设有严格的修复期限。

Meta 的安全团队正在推动公司内部更多团队采用 Rust,并预计未来几年采用速度将加快。这一趋势也反映了整个行业的发展方向。谷歌在 2025 年 11 月的安全博客中 表示,Android 中 Rust 代码的引入,使内存安全漏洞占比从 2019 年的 76% 降至 2025 年底的不足 20%,公司将这一变化直接归因于用 Rust 替代新代码中的 C 和 C++。Chrome 已经在 字体渲染和图像解码 模块中使用 Rust 库,而 Microsoft 自 2023 年起也开始用 Rust 重写 部分 Windows 组件。

https://www.infoq.com/news/2026/02/whatsapp-rust-media-malware/

声明:本文为 InfoQ 翻译,未经许可禁止转载。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
进攻欲望不强,詹姆斯全场16投7中得到15分6板5助,正负值+5

进攻欲望不强,詹姆斯全场16投7中得到15分6板5助,正负值+5

懂球帝
2026-02-27 12:49:07
谢贤前女友再曝猛料!相识第一天拒绝了两次谢贤,当时行情非常好

谢贤前女友再曝猛料!相识第一天拒绝了两次谢贤,当时行情非常好

念得小柔
2026-02-13 02:19:33
赢日本7分!杨鸣大赞中国男篮1人:三分很关键,起到了奇兵作用

赢日本7分!杨鸣大赞中国男篮1人:三分很关键,起到了奇兵作用

体育哲人
2026-02-26 20:44:43
皮尔斯:瓜迪奥拉卸任主教练后,曼城应该让他担任足球总监

皮尔斯:瓜迪奥拉卸任主教练后,曼城应该让他担任足球总监

懂球帝
2026-02-27 18:25:11
牺牲时仅19岁:被20多名土匪轮番侵犯,行刑前高呼“毛主席万岁”

牺牲时仅19岁:被20多名土匪轮番侵犯,行刑前高呼“毛主席万岁”

晓风洞察
2026-02-27 13:19:44
伊朗吃肉的时候,对中国防得严严实实,生怕中国占一点便宜

伊朗吃肉的时候,对中国防得严严实实,生怕中国占一点便宜

百态人间
2026-02-24 15:37:37
张继科做梦没想到,德国总理访华仅1天,29岁樊振东竟意外火出圈

张继科做梦没想到,德国总理访华仅1天,29岁樊振东竟意外火出圈

白面书誏
2026-02-27 12:58:15
Shams:李凯尔与灰熊达成买断协议 将在澄清期后加盟森林狼

Shams:李凯尔与灰熊达成买断协议 将在澄清期后加盟森林狼

北青网-北京青年报
2026-02-27 09:20:10
三进万安滩,从屈辱撤离到扬眉吐气,越南已不在威胁中国的名单中

三进万安滩,从屈辱撤离到扬眉吐气,越南已不在威胁中国的名单中

触摸史迹
2026-02-26 11:28:32
以色列已经告诉世界:日本若敢拥有核武器,美国并不会第一个翻脸

以色列已经告诉世界:日本若敢拥有核武器,美国并不会第一个翻脸

八斗小先生
2025-12-26 09:33:27
Coco说她很怀念在香港的日子,很怀念和谢贤在一起的12年

Coco说她很怀念在香港的日子,很怀念和谢贤在一起的12年

西楼知趣杂谈
2026-02-19 21:09:49
美贸易代表:特朗普改主意了,除中国之外,其他国家一个都跑不掉

美贸易代表:特朗普改主意了,除中国之外,其他国家一个都跑不掉

凡知
2026-02-27 11:28:43
火箭逆转魔术!杜兰特+谢泼德轰60分统治级,史密斯精准,2将辣眼

火箭逆转魔术!杜兰特+谢泼德轰60分统治级,史密斯精准,2将辣眼

篮球资讯达人
2026-02-27 11:08:20
这就是巨星坯子?爱德华兹不听战术自己干,命中后霸气回呛主教练

这就是巨星坯子?爱德华兹不听战术自己干,命中后霸气回呛主教练

大眼瞄世界
2026-02-27 14:48:29
这块肉从民国传了六代没舍得吃,专家估值3800万,这肉还能吃吗?

这块肉从民国传了六代没舍得吃,专家估值3800万,这肉还能吃吗?

名石故事
2026-02-07 01:56:39
国台办经济局局长彭庆恩升任国台办副主任

国台办经济局局长彭庆恩升任国台办副主任

澎湃新闻
2026-02-27 18:04:26
记者:梅伦多出席海港出征仪式,蒋光太、张琳芃因伤未出席

记者:梅伦多出席海港出征仪式,蒋光太、张琳芃因伤未出席

懂球帝
2026-02-27 17:48:20
开封大梁门墙体被撞出豁口,碎石散落一地!官方回应:已报警,破损墙体非文物本体,已连夜修缮完成

开封大梁门墙体被撞出豁口,碎石散落一地!官方回应:已报警,破损墙体非文物本体,已连夜修缮完成

大风新闻
2026-02-27 16:06:54
00后博士涉案!上海知名游戏公司多款未公开内容遭泄露,3人被抓

00后博士涉案!上海知名游戏公司多款未公开内容遭泄露,3人被抓

新民晚报
2026-02-27 14:45:31
笑喷!申裕斌被王曼昱打到21-19飙中文:太累了!鳗鱼连忙夸她打得好

笑喷!申裕斌被王曼昱打到21-19飙中文:太累了!鳗鱼连忙夸她打得好

818体育
2026-02-26 23:59:33
2026-02-27 19:52:51
InfoQ incentive-icons
InfoQ
有内容的技术社区媒体
12087文章数 51771关注度
往期回顾 全部

科技要闻

单张不到五毛!谷歌深夜发布Nano Banana 2

头条要闻

世界经济论坛总裁辞职 曾私信爱泼斯坦称对方"天才"

头条要闻

世界经济论坛总裁辞职 曾私信爱泼斯坦称对方"天才"

体育要闻

一场必须要赢的比赛,男篮何止击败了裁判

娱乐要闻

继网暴谷爱凌后 美国欲没收其全部收入

财经要闻

沈明高提共富建议 百姓持科技股国家兜底

汽车要闻

岚图泰山黑武士版3月上市 搭载华为四激光智驾方案

态度原创

游戏
手机
旅游
艺术
公开课

微软立大功!Xbox商店曝光《红色沙漠》发售时间

手机要闻

三星版“豆包手机”发布 深度绑定AI

旅游要闻

国家植物园雪落初春,蜡梅披上了雪衣

艺术要闻

紫气东来,好运一整年!

公开课

李玫瑾:为什么性格比能力更重要?

无障碍浏览 进入关怀版