内容简介:WF曲速未来有话要说:古人的盗亦有道,在虚拟货币领域也有着它独特的定义。只有对区块链技术足够了解,才能在这场盛宴中获取足够多的金钱。他们似那黑暗中独行的狼,无论是否得手都会在被发现前抽身而去。本文为作者“区块链安全档案”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
2018-08-22 23:10 技术 ETH 217 收藏
WF曲速未来有话要说:古人的盗亦有道,在虚拟货币领域也有着它独特的定义。只有对区块链技术足够了解,才能在这场盛宴中获取足够多的金钱。他们似那黑暗中独行的狼,无论是否得手都会在被发现前抽身而去。
WF曲速未来有话要说:古人的盗亦有道,在虚拟货币领域也有着它独特的定义。只有对区块链技术足够了解,才能在这场盛宴中获取足够多的金钱。他们似那黑暗中独行的狼,无论是否得手都会在被发现前抽身而去。
前言:
WF曲速未来带你回顾:
2018-03-21, 在《揭秘以太坊中潜伏多年的「偷渡」漏洞,全球黑客正在疯狂偷币》和《以太坊生态缺陷导致的一起亿级代币盗窃大案》两文揭秘以太坊偷渡漏洞(又称为以太坊黑色情人节事件)相关攻击细节后,已根据已有的信息进一步完善了相关蜜罐。
2018-05-16, 再次对偷渡漏洞事件进行预警并指出该端口已存在密集的扫描行为。
2018-06-29,慢雾社区里预警了以太坊黑色情人节事件(即偷渡漏洞)新型攻击手法,该攻击手法在本文中亦称之为:离线攻击。
黑暗中的盗币方式:偷渡时代
攻击流程复现
攻击复现环境位于ropsten测试网络。
被攻击者 IP: 10.0.0.2,启动客户端命令为:geth –testnet –rpc –rpcapi eth –rpcaddr 0.0.0.0 console账户地址为:
0x6c047d734ee0c0a11d04e12adf5cce4b31da3921, 剩余余额为5 ether;
攻击者 IP: 10.0.0.3 , 账户地址为:
0xda0b72478ed8abd676c603364f3105233068bdad;
攻击者步骤如下:
1. 攻击者通过端口扫描等方式发现被攻击者开放了JSON-RPC端口后,调用eth_getBlockByNumbereth_accounts接口查询当前节点最新的区块高度以及该节点上已有的账户。
2. 攻击者调用eth_getBalance接口查询当前节点上所有账户的余额。
3. 攻击者对存在余额的账户持续发起转账请求。
一段时间后,被攻击者需要进行交易:
按照之前的知识点,用户需要先解锁账户然后才能转账。当我们使用 personal.unlockAccount 和密码解锁账户后,就可以在终端看到恶意攻击者已经成功发起交易。
恶意攻击者的交易信息:
攻击的流程图如下所示:
攻击成功的关键点解析
看完前面的偷渡漏洞攻击流程,你可能会有这样的疑问:
1)攻击者为什么可以转账成功?
2)如例子中所示,该地址只有 5 ether,一次被转走了 4.79 ether,如果我们解锁账户后在被攻击前发起转账,转走 1 ether,是否攻击者就不会攻击成功?
下文将详细分析这两个问题并给出答案。
攻击者可以通过 rpc 接口转账的原因:
首先,分析一下关键的unlockAccount函数:
在判断传入的解锁时间是否为空、是否大于最大值后,调用 TimedUnlock() 进行解锁账户的操作,而 TimedUnlock() 的代码如下:
首先通过getDecryptedKey()从keystore文件夹下的文件中解密出私钥,再判断该账户是否已经被解锁,如果没有被解锁,则将解密出的私钥存入名为unlocked的map中。如果设置了解锁时间,则启动一个协程进行超时处理go ks.expire()。
再看向实现转账的函数的实现过程SendTransaction()-> wallet.SignTx() -> w.keystore.SignTx():
可以看到,在w.keystore.SignTx()中,直接从ks.unlocked中取出对应的私钥。这也就意味着如果执行了unlockAccount()函数、没有超时的话,从ipc、rpc调用SendTransaction()都会成功签名相关交易。
由于默认参数启动的 Go-Ethereum 设计上并没有对 ipc、rpc 接口添加相应的鉴权模式,也没有在上述的代码中对请求用户的身份进行判断,最终导致攻击者可以在用户解锁账号的时候完成转账操作,偷渡漏洞利用成功。
攻击者和用户竞争转账的问题
由于用户解锁账户的目的是为了转账,所以存在用户和攻击者几乎同时发起了交易的情况,在这种情况下,攻击者是如何保证其攻击的成功率呢?
在攻击者账号0x957cD4Ff9b3894FC78b5134A8DC72b032fFbC464的交易记录中,交易0x8ec46c3054434fe00155bb2d7e36d59f35d0ae1527aa5da8ec6721b800ec3aa2能够很好地解释该问题。
相较于目前主流的gasPrice维持在1Gwei,该笔交易的gasPrice达到了惊人的1,149,246 Gwei。
也正是由于较高的gasPrice, 使得该攻击者在与其它攻击者的竞争中(有兴趣的可以看看上图红框下方两笔dropped Txns)得到这笔巨款。
蜜罐捕获数据
蜜罐是一台无人使用但却被严密监控的网络主机,它包含虚假的高价值资源和一些漏洞,以此吸引入侵者攻击主机。并且在被入侵的讨程中,实时记录和审计攻击者的攻击流量、行为和数据。以此了解攻击者的方式、手段和目的,并且完成对攻击溯源取证等进一步的工作。
数据捕获:数据捕获技术包括网络流量数据捕获以及主机上系统行为的捕获。网络流量数据的捕获结合网络入侵检测系统,配置相关敏感信息的检测规则,触发入侵检测规则时立即记录网络流量。
在偷渡漏洞被曝光后,就有在已有的蜜罐数据中寻找到部分攻击的痕迹。
下图是2017/10/01到2018/03/21间蜜罐监控到的相关攻击情况:
被攻击端口主要是8545端口,8546、10332、8555、18082、8585端口等也有少量扫描痕迹。
攻击来源IP主要集中在46.166.148.120/196和216.158.238.178/186/226上:
46.166.148.120/196攻击者使用的探测payload主要是:
216.158.238.178/186/226攻击者使用的探测payload主要是:
具有团队在全球节点蜜罐监测结果显示,黑客针对以太坊 JSON-RPC 进行盗币攻击一直在持续。区块链安全公司WF曲速未来再次建议广大注意安全防御。
本文为作者“区块链安全档案”,原创文章,转载时请保留本声明及附带文章链接。 内容仅供读者参考,并非投资建议,本网站将保留所有法律权益。
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
XML 在线格式化
在线 XML 格式化压缩工具
RGB HSV 转换
RGB HSV 互转工具