5月15日BCH升级遭到攻击,慢雾安全团队及时跟进,并在社区里注意到相关分析工作,通过交流将此分析文完整转载于此。这是一场真实攻击,从行为上分析来看确实预谋已久,但BCH响应很及时,成功化解了一场安全危机。
BCH的5月15日升级遭到攻击,导致节点报出toomanysigops错误。经分析,攻击载荷为一个精确构造的P2SHTransaction,利用了BCH去年11月升级引入的OP_CHECKDATASIG操作码。
攻击导致了矿工节点无法打包,BCH方面通过类似于空块攻击的方式,紧急挖出十个空块以触发滚动检查点保证升级。攻击发生约1小时后,BCH矿池上线紧急修复后的代码成功继续出块。
不过同时也有人观察到,在582698区块高度,有矿工挖出了哈希结尾为6bf418af的区块,大小139369字节。但随后该区块被10分钟后BTC
补丁位置:https://reviews.bitcoinabc.org/D3053
https://github.com/Bitcoin-ABC/bitcoin-abc/blob/f27da0752c0a3b7382df54a65ca3cf1c3629aad4/hide/validation.cpp#L592
//原代码int64_tnSigOpsCount=GetTransactionSigOpCount(tx,view,STANDARD_SCRIPT_VERIFY_FLAGS);//补丁代码int64_tnSigOpsCount=GetTransactionSigOpCount(tx,view,STANDARD_CHECKDATASIG_VERIFY_FLAGS);
可见原代码组块过程中在计算Transaction中的SigOP数量时,错误地使用了STANDARD_SCRIPT_VERIFY_FLAGS,而非STANDARD_CHECKDATASIG_VERIFY_FLAGS。
在policy中我们可以找到他们。
https://github.com/Bitcoin-ABC/bitcoin-abc/blob/f27da0752c0a3b7382df54a65ca3cf1c3629aad4/hide/policy/policy.h#L108
staticconstuint32_tSTANDARD_CHECKDATASIG_VERIFY_FLAGS=STANDARD_SCRIPT_VERIFY_FLAGS|SCRIPT_ENABLE_CHECKDATASIG;
所以我们可以见到,当仅使用了STANDARD_SCRIPT_VERIFY_FLAGS时,计算脚本中SigOP数量时,是不包含OP_CHECKDATASIG的。所以这个包含20010个SigOP的攻击载荷,在组块时,统计出来的SigOP数量为零。
总结
攻击者利用了BCH引入OP_CHECKDATASIG时产生的,又未完全修复的漏洞,巧妙地构造了攻击载荷。攻击者应该高度了解客户端代码,并熟悉OP_CHECKDATASIG漏洞。
2018年1月28日,由MGCGroup区块链技术团队精心研发的冷钱包LeiterWallet上线公测。一经推出,便受到了市场的广泛认可.
中央财经大学法学教授邓建鹏今日发表《区块链监管的未来之路——深度思考》一文,文中就区块链监管给出了7点建议。他表示,其一,我们首先建议监管机构加强国际协作,强化国际监管.
据路透社报道,Facebook于5月2日在日内瓦注册了一家名为LibraNetworks的新公司。这与其内部缓慢推出加密货币项目相吻合,这也是该公司首次涉足区块链技术.
链闻ChainNews:Solidity是以太坊上最主流的函数修改器。本篇文章从技术角度展示了如何针对异常情况在代码层面进行详细分析,最后总结出异常情况最易出现的一些场景,并给出相对应的建议.
北京时间2019年05月07日,区块链安全公司Zeppelin对以太坊上的DeFi明星项目MakerDAO发出安全预警,宣称其治理合约存在安全漏洞,希望已锁仓参与投票的用户尽快解锁MKR提并出.
日本地方法院首次在「加密劫持」案件中对罪犯判刑。在10个县逮捕利用Coinhive软件实施非法行为的犯罪嫌疑人后,对这起案件作出了判决.