你的电脑正在帮人挖币致富?小心成为挖矿劫持的受害者
2017年9月,有人在盗版下载种子站“海盗湾”(ThePirateBay)上发现了数字加密货币的挖矿程序。当用户访问海盗湾的网页时,他们的电脑实际上成为了矿机,挖掘着一种名叫Monero的数字货币。
此事发酵后,海盗湾的管理员出面认了罪。他们指出,网站需要生存,他们在“测试”这种新的收入方式,因为网站上堆积如山的广告已经备受诟病。
这种劫持事件,在过去一年里曾经多次发生。遗憾的是,并非每次都有人出来认错。
就在这周,有人报告称,居然在YouTube的网页上发现了同样的挖矿程序……这次问题出在了广告上。在YouTube网页的右上角位置,视频播放控件的右侧、推荐视频的上方,展示的是来自于GoogleDoubleClick广告平台的广告。涉事的广告上没有内容,一片空白,显得十分蹊跷。
调查后研究人员发现,这个广告里的JavaScript代码里,包含了一段挖矿脚本。
至于这次YouTube事件里,挖的又是哪款数字货币呢?很巧,又是Monero。
这种劫持技术,被安全专家称为:
Cryptojacking
首先我们来了解一下,Cryptojacking到底是什么东西:
Cryptojacking=Cryptocurrency(数字加密货币)+Hijacking(劫持)
它的字面意义是劫持数字货币,实际意义则是劫持用户的设备,利用CPU或其他处理器进行挖矿,因而可以叫做:挖矿劫持。
它的定义:在受害者不知情的前提下,使用受害者的计算设备来挖取数字货币。
很多流行的数字货币,比如比特币(BTC)、以太坊(ETH)等,在市场上都有着较高的价值。但它们本质上只是符合某种特定数学公式或规律的字段,发现它需要使用计算资源,也就有了所谓的“挖矿”。如果购买市面上已经挖出的数字货币需要付钱,挖出新的数字货币则可以称得上凭空印钞。
但挖矿并不是一件容易的事。按照原始设计,符合某个特定规律的字段数量是有限的,意味着可以挖出的数字货币也是有限的。谁有更多的算力,囤积了更多的CPU、GPU,谁才能更快挖出更多数字货币。而问题在于,不是每个人都拥有一座位于偏远山区享受廉价电费的“矿场”。
这也是为什么一些别有用心之人想出了挖矿劫持这个主意:让挖矿变成一个众包的任务,用网页偷跑挖矿程序,每个中招的人都贡献一点CPU,不就成了自己的矿场。
Cryptojacking能够实现的原因在于:它可能只是一段,一行或几行JavaScript代码。
而几乎所有的网站网页都有JavaScript代码,它们在你打开网页后自动静默运行,没有提示,不需要安装,更不需要你的同意。
一旦中招,普通的用户通常很难察觉——除非你平时一直开着任务管理器,发现CPU占用率突然升高,或者你的电脑有风扇,突然开始狂转,才可能发现蹊跷。
应用内劫持也是一种挖矿劫持方法,包括并不限于桌面软件和手机应用。比如,有研究者发现,在GooglePlay上有不少下载量过百万的App内包含挖矿劫持。
由于JavaScript的通用以及静默运行的特性,浏览器内挖矿劫持是目前最流行的挖矿劫持方式。2017年11月,安全研究员TroyMursch分析了海量网站,发现全网已经有超过30,000个网站内已经被植入了挖矿劫持代码——包括网站本身被黑客劫持(像YouTube),以及网站主有意为之(像海盗湾)。
如果你也发现了类似的网站,而且是你经常访问的网站——请考虑删除你的用户信息。因为deGroot还发现,这些网站中有八成本身就含有其他的恶意代码/软件,可能窃取用户的付款信息。
了解了Cryptojacking的本质后,我们接下来分析:谁是挖矿劫持的幕后黑手?
硅星人统计,包括海盗湾、YouTube等在内的几次比较知名的挖矿劫持事件,涉事的数字货币都是Monero(XMR)。
根据其网站,Monero(缩写XMR)是一种安全、隐私和无法追踪的数字加密货币,开源,并且任何人都可以获取和使用。
按照美元对价计算的市值,XMR在所有数字货币中排名第13。本周,暗网领先的电商网站DreamMarket已经全面启用XMR作为推荐的支付方式。其网站还提到,通过XMR进行的交易都将完全保密,外界无法查看。正是由于隐私和无法追踪的特性,XMR才备受挖矿劫持者的青睐。
看完了数字货币,我们再来看实现路径。
安全研究员指出,在绝大多数挖矿劫持事件中,都能发现来自Coinhive的代码。
如果你一定要给Coinhive一个中立的、技术的定义:它是一个分布式挖矿服务的供应商。但大部分计算机安全人士都认为Coinhive是一种恶意软件(malware)。
计安分析机构TrendMicro在去年11月将Coinhive评为全球第六大恶意软件。发生在去年9月的海盗湾事件,正值Coinhive正式推出第一代分布式数字货币挖掘服务(以下简称Coinhive),也成为了它的成名之作。
然而最初,Coinhive的开发者声称的作用,却是为网站主创收。网页中植入Coinhive代码,访客打开网页后,每秒可以进行20或更多次哈希计算。越多访客访问网页,挖到的XMR越多,为网站主带来更多的收入,取代在线广告存在的地位。
Coinhive的网站上明确写下了一些文字,简单来说:如果植入的只是个人网站,每天流量极小的话,那么为网站主带来的收入只会是微乎其微的,网站必须有“可观”的用户量才会产生靠谱的收入;另外,这些植入了脚本的网页,在用户的浏览器中打开时间越长,挖矿的总体效果越好。
脑筋活络的黑客盯上YouTube的原因也正是在此:YouTube每天都有着数以亿计的访问量,且一个视频时长几分钟到数十分钟。YouTube用户停留在网页上的时间,远比用户浏览一个电商产品页面或者新闻网站、博客页面要长,挖矿的效果要好得多。
在这起事件中,广告中的JavaScript代码植入了Coinhive挖矿指令,这些广告被喂给了日本、法国、意大利、西班牙和台湾等国家和地区的用户,尽管不是全平台,而且不是这些国家/地区所有用户都有机会看到,但访问量仍十分惊人。
相信黑客做过计算,最后通过挖矿得到的收入,能够弥补投放这些广告的支出……抑或他只是想玩票,试一下这样做的可行性。挖矿得出的XMR,Coinhive抽三成,网站主得七成。据估算,如果网站有10-20个“活跃用户”,不停地挖一个月,网站主的月收入也才0.3个XMR,或约100美元。
总的来说,通过植入挖矿劫持代码营收,对于网站主来说风险高,收益也没想象的那么多。小网站主赚不到钱,大网站主做了一旦被发现面临着信任破产用户流失,不是一件经济的事。独立开发者MaxenceCornet曾经做过一个测试,一个日均1000独立访客,每人每session50秒左右的网站,在60个小时内产生了0.00947个XMR,折合每天36美分,连一个汉堡都买不了。
但对于Coinhive来说,每个网站主的每个网页都可以抽三成,如果真的有30,000个网站,甚至更多的网站的海量网页在挖矿,为Coinhive开发者带来的收入倒是十分可观。
也就是说,挖矿劫持整件事,压根和为用户创收没有关系,更像是Coinhive编造,伪装在奖励网站主的外衣下,实际上动用数万个奴隶主从更多奴隶的身上赚钱的谎言。
安全研究员TroyMursch指出,Coinhive已经成为了网络犯罪分子的最新收入来源,“我觉得Coinhive当真是个挺不错的主义。它本来应该是一种网站营利的新方式。但现在,我们可以看到它已经被滥用了。这就是恶意软件。”
如果你关注数字货币和区块链,可能经常访问国内外相关的交易所、资讯新闻站、新币发行网站等等。事实上,身为所谓的“币圈”、“链圈”人士的你,正是挖矿劫持最有可能的潜在受害者。
既然挖矿劫持是一件坏事,既然Coinhive是一款恶意软件,接下来的问题很显然:我们该怎样发现它?
硅星人为你带来以下几种方法:
01风扇狂转
显然,风扇转速暴增是CPU利用率提高的一个表象。如果你的风扇突然狂转,可以继续查看CPU利用率。
02查看CPU利用率
观察CPU占用是发现潜在挖矿劫持最容易的方法。在PC上打开任务管理器,点击性能;在Mac上打开自带的活动监视器(ActivityTracker),就可以看到CPU占用情况了。
如果某个浏览器/浏览器标签占用了大量CPU,而你清楚没有打开一个很重型的网页,那么你可能中招了。但有的脚本不会将CPU推到太高,比如{throttle:0.5},其中0.5即为CPU占用率,此时观察就不管用了。
如果你不确定是否遭遇了挖矿劫持,请继续下一步检查,查找相应代码。
03查找相应代码
采用Coinhive服务进行挖矿劫持的网页,会留下清晰的脚印。如果在一个正常的网站的网页里找到了Coinhive的字样,这个网站八成有鬼。
代码可能长得像下面这样:
你也可能会遇到脚本来源不是Coinhive的情况,所以也可以观察会不会有
B4ShXfNHJy3nEDclHBuc5i2bKJ3Sok8P
类似这么一段字段出现。这就是钱包的地址了。
当然,也不是所有做了挖矿劫持得网站都是坏人。有些良心尚存的网站会弹出明显的提示,告诉你网站植入了代码,问你是否同意,如果不同意即不执行,如下:
一旦你确定了挖矿劫持的存在,你可以选择拒绝执行,或者不再继续访问这个网站。但如果你想要确保今后不会再中招,可以安装挖矿劫持隔离插件。
04安装挖矿劫持隔离插件
主流浏览器如Chrome、Firefox的插件平台上都已经有了隔离器,如NoCoin、minerBlock等。这些插件可以屏蔽Coinhive等目前已知的挖矿脚本来源的域名,理论上不影响你所浏览网页的其他功能。
05时刻保持警惕
自从首个挖矿劫持脚本出现,已经有很多网站沦陷了,其中不乏知名网站和大公司的官网。除了海盗湾,还有星巴克(yuhou.cn)、无限制格斗(yuhou.cn)等,就连YouTube都因为Google广告平台的漏洞而失守。
你需要保持警惕,因为任何一个网站都可能被利用。