使用WebAssembly的网站有一半是出于恶意目的
根据去年发表的学术研究,大约有一半的网站使用WebAssembly,一种新的网络技术,用于恶意目的。
WebAssembly是一种低级字节码语言,它是在所有主要浏览器厂商联合协作之后创建的。
它引入了一种新的二进制文件格式,用于将代码从web服务器传输到浏览器。一旦到达浏览器,WebAssembly代码(Wasm)就以接近本机的速度执行,类似于已编译的C、c++或铁锈代码。
WebAssembly是为速度和性能而创建的。由于其二进制机器友好的格式,Wasm代码比同等的JavaScript表单更小,但在执行时也快很多倍。这使得WebAssembly成为Adobe Flash的下一个化身,它允许网站运行复杂的cpu密集型代码,而不会冻结浏览器,而JavaScript从未为此设计或优化过。
WebAssembly于2017年首次提出,并于2019年底被正式批准为W3C (World Wide Web Consortium)标准,目前所有主流浏览器都支持它,包括桌面和移动设备。
在去年进行的一项学术研究中,来自德国布劳恩斯威格技术大学的四名研究人员研究了WebAssembly在互联网上100万个最受欢迎的Alexa网站上的使用情况,试图衡量这项新技术的受欢迎程度。
在四天的时间里,研究小组加载了Alexa前100万个网站中的每个,以及三个随机页面,并测量了WebAssembly的使用情况,以及每个网站运行代码所花费的时间。
研究团队表示,他们总共分析了来自Alexa Top 100万个站点的947704个站点的WebAssembly使用情况(其中一些站点处于离线状态,或者在测试期间超时),共分析了3465320个独立页面的代码。
研究小组说:“总的来说,我们发现了1639个地点装载1950个Wasm模块,其中150个是独特的样本。”
“这意味着一些Wasm模块非常受欢迎,可以在许多不同的站点上找到,”他们说。“在一个案例中,相同的模块出现在346个不同的网站上。”
“另一方面,87个样品是完全独特的,只在一个网站上找到,这表明许多模块是一个网站的定制开发。”
但是研究小组也研究了每个网站加载的Wasm代码的性质。他们手动分析代码,查看函数名和嵌入的字符串,然后绘制出类似代码的集群。
研究人员说,他们分析的绝大多数代码样本用于加密货币挖掘(占样本的32%)和网络游戏(占样本的29.3%)。
然而,尽管绝大多数示例都是用于合法目的,但有两类Wasm代码在本质上是恶意的。
第一类是用于加密货币挖掘的WebAssembly代码。这些类型的Wasm模块经常出现在被攻击的站点上,这是所谓的加密劫持(drive-by mining)攻击的一部分。
第二类是打包在模糊的Wasm模块中的WebAssembly代码,这些模块故意隐藏它们的内容。研究小组称,这些模块是恶意宣传活动的一部分。
研究团队表示,这两类代码占了他们找到的样本的38.7%,但在他们分析的网站中,超过一半的网站都使用了这些模块,主要是因为这些代码经常跨多个域重用,这是大规模黑客行动的一部分。
展望未来,研究人员表示,他们认为恶意使用WebAssembly代码的趋势将在未来得到越来越多的关注。
研究小组表示:“我们目前看到的只是新一代网络恶意软件混淆的冰山一角。”
学者们建议网络安全公司投资更新安全产品,以应对来自这项新技术的新威胁。