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

WebAssembly 安全的现在和未来 | Linux 中国

0
分享至

导读:WebAssembly 有计划推向 Web 之外,从各种服务器到物联网(IoT),其创造了很多机会,但也存在很多安全问题。

本文字数:2979,阅读时长大约: 4分钟

LCTT 译者 :Hans zhao

翻译: 5.0 篇

贡献: 13 天

2022-05-02

2022-05-14

https://linux.cn/lctt/hanszhao80

简介

正如我们 training.linuxfoundation.org,WebAssembly 是一种用于以任何语言编写的二进制格式的软件,旨在最终无需更改就能在任意平台运行。WebAssembly 的第一个应用是在 Web 浏览器中,以使网站更快、更具交互性。WebAssembly 有计划推向 Web 之外,从各种服务器到物联网(IoT),其创造了很多机会,但也存在很多安全问题。这篇文章是对这些问题和 WebAssembly 安全模型的一篇介绍性概述。

WebAssembly 跟 JavaScript 很像

在 Web 浏览器内部,WebAssembly 模块由执行 JavaScript 代码的同一 虚拟机(VM) 管理。因此,WebAssembly 和 JavaScript 一样,造成的危害也是相同的,只是效率更高,更不易被察觉。由于 JavaScript 是纯文本,运行前需要浏览器编译,而 WebAssembly 是一种可立即运行的二进制格式,运行速度更快,也更难被扫描出(即使使用杀毒软件)其中的恶意指令。

WebAssembly 的这种 “代码混淆” 效果已经被用来弹出不请自来的广告,或打开假的 “技术支持” 窗口,要求提供敏感数据。另一个把戏则是自动将浏览器重定向到包含真正危险的恶意软件的 “落地” 页。

最后,就像 JavaScript 一样,WebAssembly 可能被用来 “窃取” 处理能力而不是数据。2019 年, www.sec.cs.tu-bs.de 发现,其中约 32% 被用于加密货币挖掘。

WebAssembly 沙盒和接口

WebAssembly 代码在一个由虚拟机(而不是操作系统)管理的 webassembly.org 中封闭运行。这使它无法看到主机,也无法直接与主机交互。对系统资源(文件、硬件或互联网连接)的访问只能通过该虚拟机提供的 WebAssembly 系统接口(WebAssembly System Interface)(WASI) 进行。

WASI 不同于大多数其他应用程序编程接口(API),它具有独特的安全特性,真正推动了 WASM 在传统服务器和边缘(Edge)计算场景中的采用,这将是下一篇文章的主题。在这里,可以说,当从 Web 迁移到其他环境时,它的安全影响会有很大的不同。现代 Web 浏览器是极其复杂的软件,但它是建立在数十年的经验和数十亿人的日常测试之上的。与浏览器相比,服务器或物联网(IoT)设备几乎是未知领域。这些平台的虚拟机将需要扩展 WASI,因此,肯定会带来新的安全挑战。

WebAssembly 中的内存和代码管理

与普通的编译程序相比,WebAssembly 应用程序对内存的访问非常受限,对它们自己也是如此。WebAssembly 代码不能直接访问尚未调用的函数或变量,不能跳转到任意地址,也不能将内存中的数据作为字节码指令执行。

在浏览器内部,WASM 模块只能获得一个连续字节的全局数组(线性内存(linear memory))进行操作。WebAssembly 可以直接读写该区域中的任意位置,或者请求增加其大小,但仅此而已。这个线性内存(linear memory)也与包含其实际代码、执行堆栈、当然还有运行 WebAssembly 的虚拟机的区域分离。对于浏览器来说,所有这些数据结构都是普通的 JavaScript 对象,使用标准过程与所有其他对象隔离。

结果还好,但不完美

所有这些限制使得 WebAssembly 模块很难做出不当行为,但也并非不可能。

沙盒化的内存使 WebAssembly 几乎不可能接触到 外部 的东西,也使操作系统更难防止 内部 发生不好的事情。传统的内存监测机制,比如 ctf101.org(Stack Canaries) 能注意到是否有代码试图扰乱它不应该接触的对象, www.usenix.org。

事实上,WebAssembly 只能访问自己的线性内存(linear memory),但可以直接访问,这也可能为攻击者的行为 提供便利。有了这些约束和对模块源代码的访问,就更容易猜测覆盖哪些内存位置可能造成最大的破坏。破坏局部变量似乎也是 spectrum.ieee.org,因为它们停留在线性内存(linear memory)中的无监督堆栈中。

2020 年的一篇关于 www.usenix.org 的论文指出,WebAssembly 代码仍然可以在设定的常量内存中覆盖字符串文字。同一篇论文描述了在三个不同的平台(浏览器、Node.JS 上的服务端应用程序,和独立 WebAssembly 虚拟机的应用程序)上,WebAssembly 可能比编译为原生二进制文件时更不安全的其他方式。建议进一步阅读此主题。

通常,认为 WebAssembly 只能破坏其自身沙盒中的内容的想法可能会产生误导。WebAssembly 模块为调用它们的 JavaScript 代码做繁重的工作,每次都会交换变量。如果模块在这些变量中的任意一处写入不安全的调用 WebAssembly 的 JavaScript 代码,就 会 导致崩溃或数据泄露。

未来的方向

WebAssembly 的两个新出现的特性: github.com 和内部垃圾收集,肯定会影响其安全性(如何影响以及影响多少,现在下结论还为时过早)。

并发允许多个 WebAssembly 模块在同一个虚拟机中并行。目前,只有通过 JavaScript en.wikipedia.org 才能实现这一点,但更好的机制正在开发中。安全方面,他们可能会带来 googleprojectzero.blogspot.com,也就是更多出错的方法。

为了提高性能和安全性,我们需要一个 github.com,但最重要的是,要在经过良好测试的浏览器的 Java 虚拟机之外使用 WebAssembly,因为这些虚拟机无论如何都会在自己内部收集所有的垃圾。当然,甚至这个新代码也可能成为漏洞和攻击的另一个入口。

往好处想,使 WebAssembly 比现在更安全的通用策略也是存在的。再次引用 www.usenix.org,这些策略包括:编译器改进、栈/堆和常量数据的 分离 的线性存储机制,以及避免使用 不安全的语言(如 C)编译 WebAssembly 模块代码。

本文 training.linuxfoundation.org 首次发表在 training.linuxfoundation.org。

via:

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出

欢迎遵照 CC-BY-SA 协议规定转载,

如需转载,请在文章下留言 “ 转载:公众号名称”,

我们将为您添加白名单,授权“ 转载文章时可以修改”。

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

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.

相关推荐
热点推荐
知名主持人暴瘦认不出,五年四次进ICU,病重时前妻分走大半财产

知名主持人暴瘦认不出,五年四次进ICU,病重时前妻分走大半财产

聊历史的阿稼
2026-05-14 09:57:42
国乒格局洗牌,一天2位名将退队,王励勤下狠心,樊振东恐被弃用

国乒格局洗牌,一天2位名将退队,王励勤下狠心,樊振东恐被弃用

以茶带书
2026-05-14 16:05:16
52岁董卿近况:去重庆和友人聚餐,容颜不变很温柔,与丈夫没离婚

52岁董卿近况:去重庆和友人聚餐,容颜不变很温柔,与丈夫没离婚

小冠说娱
2026-05-14 03:52:24
中超第12轮焦点:国安枪炮齐鸣战黑马,青岛海牛五连胜梦碎?

中超第12轮焦点:国安枪炮齐鸣战黑马,青岛海牛五连胜梦碎?

世明讲球事
2026-05-14 16:09:59
转发周知!15日起售,60周岁及以上老年旅客可享淡季火车票优惠

转发周知!15日起售,60周岁及以上老年旅客可享淡季火车票优惠

每日经济新闻
2026-05-13 18:56:46
日本乒协没想到,世乒赛惨败中国队后,最先扛不住的,是张本智和

日本乒协没想到,世乒赛惨败中国队后,最先扛不住的,是张本智和

富贵体坛说
2026-05-14 16:28:08
欧美为什么希望我们也不要加班?

欧美为什么希望我们也不要加班?

罗sir财话
2026-05-11 17:35:24
伊朗危险了!特朗普专机抵京前,中美达成共识,霍尔木兹不许收费

伊朗危险了!特朗普专机抵京前,中美达成共识,霍尔木兹不许收费

坦荡的雪莉
2026-05-14 15:16:59
黄仁勋拿下第6个博士学位 毕业演讲:AI 可能不会取代你,但善用AI的人可能会

黄仁勋拿下第6个博士学位 毕业演讲:AI 可能不会取代你,但善用AI的人可能会

每日经济新闻
2026-05-12 11:03:00
数学家丘成桐在研讨会上晕倒,现场一片混乱,PPT不忘提及田刚

数学家丘成桐在研讨会上晕倒,现场一片混乱,PPT不忘提及田刚

妍妍教育日记
2026-05-14 09:22:03
王励勤下狠手!国乒选拔大洗牌,樊振东出局、蒯曼惨遭规则背刺

王励勤下狠手!国乒选拔大洗牌,樊振东出局、蒯曼惨遭规则背刺

野渡舟山人
2026-05-14 11:50:58
正式退出,樊振东遗憾,国乒选拔规则曝光,2小将+梁靖崑有戏

正式退出,樊振东遗憾,国乒选拔规则曝光,2小将+梁靖崑有戏

懂球社
2026-05-13 15:00:08
22岁大学生连夜开车1300多公里,自费5200多元送校友回家奔丧!利川宣布:4人全年免门票,为该校学子提供见习岗位、实践平台

22岁大学生连夜开车1300多公里,自费5200多元送校友回家奔丧!利川宣布:4人全年免门票,为该校学子提供见习岗位、实践平台

极目新闻
2026-05-13 12:26:13
韩国总统李在明会见何立峰

韩国总统李在明会见何立峰

每日经济新闻
2026-05-13 17:19:38
没有中方官员接待,日本代表团抵沪第三天,外交部摊牌亮明态度

没有中方官员接待,日本代表团抵沪第三天,外交部摊牌亮明态度

小叨娱乐
2026-05-14 14:23:34
“都绝户了,还拼命挣钱干嘛?”看见父亲50岁就躺平,我崩溃了

“都绝户了,还拼命挣钱干嘛?”看见父亲50岁就躺平,我崩溃了

素十三儿
2026-04-13 07:12:36
A股:突然跳水大跌,原因是什么?释放什么信号?行情到顶了吗?

A股:突然跳水大跌,原因是什么?释放什么信号?行情到顶了吗?

虎哥闲聊
2026-05-14 11:37:25
两性关系:男性过了75,不管跟谁处,牢记4句话,余生少心酸

两性关系:男性过了75,不管跟谁处,牢记4句话,余生少心酸

匹夫来搞笑
2026-05-14 00:32:20
朱珠穿上鲨鱼裤练瑜伽,身材好辣,一点也不像39岁的宝妈

朱珠穿上鲨鱼裤练瑜伽,身材好辣,一点也不像39岁的宝妈

草莓解说体育
2026-05-14 11:43:21
第一集就全裸出镜,女神新剧破格出演了

第一集就全裸出镜,女神新剧破格出演了

来看美剧
2026-04-27 16:21:10
2026-05-14 17:00:49
Linux
Linux
Linux 中国开源社区
8018文章数 73112关注度
往期回顾 全部

科技要闻

马斯克说会谈很顺利 黄仁勋点赞 库克比耶

头条要闻

重庆一栋百年古建筑以399万公开拍卖 仅限中国人竞买

头条要闻

重庆一栋百年古建筑以399万公开拍卖 仅限中国人竞买

体育要闻

登海报!哈登30+8+6创多项纪录 第8次赢天王山

娱乐要闻

何九华官宣当爸!全程不提孩子妈

财经要闻

习近平同美国总统特朗普会谈

汽车要闻

新时代传统豪华是什么样? 上汽奥迪E7X给出了自己的答案

态度原创

房产
数码
亲子
手机
公开课

房产要闻

海南楼市新政要出!拟调公积金贷款额度,最高可贷168万!

数码要闻

内存容量突破天花板!全何科技推出256GB单条RDIMM内存 全面适配英特尔至强6平台

亲子要闻

《致我心爱的孙子》

手机要闻

小米17 Max挑战极限!影像旗舰硬生生塞进8000mAh电池 机圈罕见

公开课

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

无障碍浏览 进入关怀版