多数Web站点将Wasm代码用于恶意目的
极客时间编辑部
讲述:初明明大小:3.56M时长:03:54
今年 6 月发布的一项研究显示,在 Alexa 排名前 100 万的网站中,每 600 个网站中就有 1 个在执行 WebAssembly 即 Wasm 代码。此外,研究发现,50% 以上使用 WebAssembly 的 Web 站点将其用于恶意目的,如挖矿和恶意代码的混淆。
该研究团队来自布伦瑞克工业大学,他们检查了 Alexa 样本中四天内的 Web 站点,并成功研究了 947,704 个网站,最终访问了 3,465,320 个网页。
他们在 1639 个站点中发现了 1950 个 Wasm 模块。这些模块很重要的一点在于,它们不是通过网站的首页加载的,而是通过第三方脚本或其他源的 iframe(样本中的 795 个网站)加载到子页面上的。该研究报告称,1950 个 Wasm 模块代表了 150 个唯一的样本,这表明在多个站点中都发现了某些 Wasm 模块,极端情况是在 346 个不同站点中都存在同一个模块。相反,有 87 个样本是某些 Web 站点特有的,表示它是该网站自定义开发的。
按照研究,使用 WebAssembly 的网站在每页上平均使用 1.2 个 Wasm 模块。在排名方面,拥有较高用户访问量的网站,倾向于更频繁地使用 WebAssembly。
该研究还提供了 WebAssembly 在相关网站中使用程度的数据,为了达到该目的,他们使用了两个指标。第一个是 WebAssembly 模块的大小,范围从 8 个字节到 25.3MB 不等,每个模块的中位数为 100KB。这样的差异可以通过站点使用 WebAssembly 的不同目的来解释。报告指出,有的站点仅仅是测试一下浏览器是否支持 WebAssembly,而另一些站点则完全依赖于模块所暴露的功能。
第二个则是由 Chrome 浏览器的集成性能 profiler 所提取到的 WebAssembly 与 JavaScript 的相对使用数据,在这方面呈现出了两个极端情况。一方面,大多数站点(1121 个站点或者说大约样本的三分之二)几乎从来没有用到 WebAssembly。而另一方面,其余的站点几乎把所有的时间都用在了运行 Wasm 代码上了。
研究团队将 Wasm 模块手动分成六类,以反映使用 WebAssembly 的目的:自定义(Custom)、游戏(Game)、库(Library)、挖矿(Mining)、混淆(Obfuscation)和测试(Test)。在这六个分类中,占网站样本 55.6% 的挖矿和占网站样本 0.2% 的混淆代表了对 WebAssembly 的恶意使用。
与其他分类的样本相比,挖矿类别的 Wasm 样本具有独特的特征。所收集到的 WebAssembly 挖矿代码具有高度的相似性。此外,profiling 数据表明,大量使用 Wasm 的网站确实是在挖掘加密货币。另外,对挖矿类别中的模块进行的手动分析,未呈现出大量 Wasm 代码使用的情况(相对 CPU 份额低于 50%),研究团队发现 Wasm 代码运行失败的四个主要原因有:
包含了挖矿脚本,但是矿工没有启动或被禁用了,脚本没有被移除。
矿工只有在用户与 Web 页面交互的时候或者在特定的延迟之后才会启动。
矿工已经不可用,这可能是因为不合法的修改或者远程 API 已修改。
WebSocket 后端没有响应,这阻碍了矿工的运行。
研究表明,人们仅仅看到了新一代恶意软件的冰山一角,因此,结合 WebAssembly 代码分析对未来的有效防御机制至关重要。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(1)
- 最新
- 精选
- 人人搞科研可以开个课吗
收起评论