使用 WebAssembly 的网站中有50%将其用于恶意目的

2020 年 1 月 10 日

使用 WebAssembly 的网站中有50%将其用于恶意目的


WebAssembly并没有那么受欢迎:前100万个网站中,只有1639个网站使用WebAssembly。


根据一份发表的学术研究使用 WebAssembly 的网站中,大约有 50%将其用于恶意目的。


众所周知,WebAssembly(wasm )是由 Mozilla、谷歌、微软和苹果四大浏览器供应商协同创建。它是一种全新的编码方式,可以在现代的网络浏览器中运行。


据了解,WebAssembly是一种低级的类汇编语言,具有紧凑的二进制格式,能以接近原生的性能运行,并为诸如 C / C ++等语言提供一个编译目标,以便它们能在 Web 上运行。同时,它也被设计为可以与 JavaScript 共存,允许两者一起工作。



对网络平台而言,WebAssembly 提供了一条途径,使得用各种语言编写的代码都能以接近原生的速度在 Web 中运行。


当初创建 WebAssembly 的目的是为了兼顾速度和性能。由于它是体积小且加载快的二进制格式,因此它比同等的 JavaScript 格式小,但执行速度却快上许多倍。


巨头背书、自身优势,让 WebAssembly 成为 Adobe Flash 的下一个版本,它使网站可以运行复杂的 CPU 密集型代码而无需冻结浏览器,而 JavaScript 却从未针对此设计或优化。


2017 年,WebAssembly 被首次提出,并于2019年底正式被 W3C(万维网联盟)接受,成为第 4 种 Web 语言。同时,它受到 PC 和移动设备上所有主流浏览器的支持。


WebAssembly 的使用情况


2019 年开展了一项学术研究项目,德国布伦瑞克工业大学的四名研究人员研究了 WebAssembly 在 Alexa 上排名前 100 万受欢迎网站的使用情况,来评估这种新技术的普及程度。


四天时间里,他们加载了 100 万个网站中每个网站的三个随机页面,测量 WebAssembly 的使用情况,以及每个网站运行代码所耗费的时间。


研究团队表示,它分析了 Alexa 排名前 100 万网站中 947704 个网站的 WebAssembly 使用情况,还分析了 3465320 个单独页面中的代码。



结果发现,有 1639 个站点装载了 1950 个 Wasm 模块,只有 150 模块是唯一的,很多站点则使用相同的 Wasm 模块。研究人员说,“这意味着某些模块很受欢迎,能在不同的站点上找到。另一种情况是,有 346 个不同的站点上存在完全相同的模块。”


两类恶意 Wasm 代码


研究小组更进一步,他们还针对每个网站正在加载的 Wasm 代码性质进行研究。他们手动分析代码,查看函数名称和嵌入的字符串,然后映射出相似代码的集群。


研究人员表示,他们分析的绝大多数代码样本都用于加密货币挖掘(占样本数的 32%)、在线游戏(占样本数的 29.3%)。



尽管绝大多数样本都是基于合法目的的使用,但是有两类 Wasm 代码本质上却是恶意的。


  1. 用于加密货币挖掘的WebAssembly代码。这种类型的Wasm模块通常会在被黑客入侵的网站上发现,这是所谓的Cryptojacking攻击的一部分;

  2. 涉及打包在混淆的Wasm模块中的WebAssembly代码,这些模块有意隐藏其内容。研究团队称,这些模块是恶意广告活动的一部分。


研究人员表示,这两个类别的 WebAssembly 代码占发现样本的 38.7%,但是这些模块在他们分析的网站中使用了一半以上,主要是因为该代码经常跨多个域重复使用,很大部分是黑客操作。


研究人员预测,未来,将 WebAssembly 代码用于恶意目的或将变得越来越受欢迎。


不过,这仅仅是看到的冰山一角。


研究小组呼吁,网络安全公司应该在这方面加大投资,更新安全产品,从而帮助企业应对这种新技术出现的新威胁。


参考文章:


Half of the websites using WebAssembly use it for malicious purposes


2020 年 1 月 10 日 07:304312
用户头像
万佳 InfoQ编辑

发布了 446 篇内容, 共 160.8 次阅读, 收获喜欢 898 次。

关注

评论

发布
暂无评论
发现更多内容

第六章学习总结

李白

架构师培训第六周习题

小蚂蚁

架构师训练营第六周作业

Bruce Xiong

架构师训练营 第六周 作业

极客

架构是训练营

架构师0期第六周命题作业

何伟敏

架构师训练营第六章作业

吴吴

分布式总结

周冬辉

nosql zookeeper 分布式 CAP原理

官方剧透:1.11 发版前我们偷看了 Flink 中文社区发起人的聊天记录

Apache Flink

flink

架构师训练营——第6周学习总结

jiangnanage

第六周学习总结

CP

week06 作业

雪涛公子

第六周总结

晨光

java 后端博客系统文章系统——No6

猿灯塔

Lesson 6 分布式系统架构-分布式数据库、NoSql、ZooKeeper -心得笔记

edd

Doris服务节点临时失效处理过程时序图

任小龙

极客大学架构师训练营

高并发下数据库方案演进

superman

分库分表 极客大学架构师训练营

week6 学习总结

任小龙

极客大学架构师训练营

极客大学架构师训练营-cap原理

Geek_zhangjian

WEEK6-作业-对CAP理解

蒜泥精英

字节跳动基于Flink的MQ-Hive实时数据集成

Apache Flink

flink

第六周·命题作业·CAP原理

刘璐

WEEK6-学习心得

蒜泥精英

week06作业

Safufu

架构师第六周培训学习总结

小蚂蚁

架构师训练营——第6周作业

jiangnanage

week6 总结

雪涛公子

架构师训练营第六章总结

吴吴

信创舆情一线--英国禁用华为5G设备

统小信uos

5G

分布式数据库设计中关键几点

dony.zhang

CAP原理

Android | 《看完不忘系列》之Glide

哈利迪

android

架构师课程第六周总结

dongge

使用 WebAssembly 的网站中有50%将其用于恶意目的-InfoQ