根据一项已发表的学术研究,使用 WebAssembly 的网站中大约有一半将其用于恶意目的。
WebAssembly 由 Mozilla、谷歌、微软和苹果这四个主要的浏览器供应商协同创建,它引入了一种新的二进制文件格式,用于将代码从 Web 服务器传输到浏览器。一旦到达浏览器,WebAssembly 代码(Wasm)就会以接近本地的速度执行,类似于已编译的 C、C++ 或 Rust 代码。创建 WebAssembly 的目的是兼顾速度和性能。由于 Wasm 代码具有机器友好的二进制格式,因此它比等效的 JavaScript 格式小,但执行时速度也快许多倍。
WebAssembly 于 2017 年首次被提出,并于 2019 年底被批准为正式的 W3C(万维网联盟)标准,目前受到所有主流浏览器的支持。
在去年进行的一项学术研究项目中,来自德国布伦瑞克工业大学的四名研究人员研究了 WebAssembly 在 Alexa 上排名前 100 万的流行站点上的使用情况,以评估这种新技术的普及程度。他们加载了 100 万个网站中每个网站的三个随机页面,测量了 WebAssembly 的使用情况,以及每个网站运行代码所花费的时间。
研究发现有 1,639 个站点装载了总计 1,950 个 Wasm 模块,只有 150 个模块是独一无二的,有很多站点都在使用相同的 Wasm 模块。
研究小组还对每个网站正在加载的 Wasm 代码的性质进行了研究。他们手动分析代码,查看函数名称和嵌入的字符串,然后映射出相似代码的集群。研究人员表示,他们分析的绝大多数代码样本都用于加密货币挖掘(样本的 32%)和在线游戏(样本的 29.3%)。这两类 Wasm 代码在本质上是恶意的。
用于加密货币挖掘的 Wasm 模块通常是所谓的加密劫持(通过挖矿驱动)攻击的一部分。另一类涉及打包在混淆的 Wasm 模块中的 WebAssembly 代码,这些模块有意隐藏其内容,一般来说是恶意广告的一部分。
由于代码经常在多个域中重复使用,这些模块已被用于超过一半的样本网站。且将 WebAssembly 代码用于恶意目的的行为有在不断增加的趋势。研究小组还表示,这可能还只是“冰山一角”。为此,他们呼吁网络安全公司参与进来,应对新技术带来的新威胁。
消息来源:ZDNet