2021-08-16 02:01 | 出处: 行走
本篇笔记来自8月11日晚巴比特8问大事件的直播。直播分上下半场,上半场由主持人贾小别采访被黑客攻击的Poly Network上的一位受损当事人。下半场是由来自安全公司BlockSec的联合创始人,浙江大学网络空间安全学院的教授、博导周亚金教授对Poly被盗事件做了相对完整,虽然技术但基本能看懂的复盘。行走会把这一事件后续进展中一些大咖的评论贴在笔记后面供大家参考。
以下,Enjoy:
主持人:根据目前的追踪来看,这一场攻击是不是预谋已久的?还是说攻击者可以突然之间很快的发起攻击?
周亚金:这次攻击非常的smart。有一些攻击细节因为需要有一些技术背景我没有太细讲。攻击者在构造攻击交易的时候,目的是要去替换公钥。而能替换公钥的函数实际上是比较固定的,就那么一个函数。
那攻击者构造这个交易,为什么最后能调到这个函数?是和以太坊智能合约选择哪个函数调用的选择机制是有关系的。这里面又涉及到哈希碰撞等等一些东西。
所以我觉得攻击者是掌握了非常深的攻击技巧,并且他对Poly链上的整个机制是非常非常了解的。否则他其实很难精心构造出来这么一个具有哈希碰撞的,恶意的从ONT上构造出交易出来。从这一点来看,我们也认为攻击者是蓄谋已久的,并且可能是在攻击之前已经做了精心的实验和准备。所以他最后的攻击是一气呵成,从替换公钥到最后完成提币,整个时间是非常短的。
主持人:之前网上有个信息,我没有确认过。说的是攻击者在攻击之后有三个小时没有动链上任何一个币的。
周亚金:攻击者在攻击之后,如果我记得没错的话,他并没有立即去转币。但是有一些币其实是进了Curve等等的一些国外的交易所。
主持人:攻击者后来在Curve上做了混币,这样做有什么目的?如果混币成功的话,这些币还能不能追踪到并还回来?
周亚金:其实攻击者一般在攻击成功以后,第一步要做的是在最快的时间内把赃款脱手,把赃款洗干净从而让执法机关很难去追踪。混币服务就经常被用于对赃款进行一定的匿名化处理。实际上混币服务不仅仅在以太坊上有,在Bitcoin里面也是长期以来困扰执法机关的问题。
我们看到在以太坊上,大部分的攻击者都倾向于在得手之后立即去进行混币操作。那为什么在这次的攻击当中,攻击者还是露出了马脚,最后答应偿还被盗的数字货币呢?
主要的原因不在于他在得手之后的转账。从目前公开的消息来看,他为了去做攻击,比如在以太坊去做攻击,他需要有一定的手续费。而支付手续费最初的数字货币的来源是从一个中心化的交易所转出来的(本体上的ONG在DEX上买不到)。那从中心化的交易所转出来的时候,就不免会留下一定的痕迹。
虽然我们事后了解到,攻击者在中心化的交易所里并没有留下实名认证的东西,没有做KYC。但是登录中心化交易所的一些IP地址、客户端、浏览器,总是会留下蛛丝马迹的。我们比较倾向于,攻击者是由于在攻击准备阶段留下了一些蛛丝马迹,所以后续被一些安全团队追踪到,后续才会去做出退还账款的操作。
主持人:目前攻击者是还到了200多万美金,还有6亿多美金没有归还回来。我们现在都不知道他究竟在做什么,他说还,但一直是拖拖拉拉的。对于攻击者目前的状态,你有没有一个评价,或者有没有怎样的看法?
周亚金:我个人的看法,攻击者应该会偿还比较多、大部分的资金。原因刚才讲了,攻击者在整个攻击的过程中,特别是在攻击准备阶段,还是留下了比较多的痕迹。在整个数字货币或公链的世界里面,匿名化是一把双刃剑。匿名化保护了大家的隐私,但它也会使得我们对于数字货币的追踪变得比较困难。特别是引入了混币服务以后。
但是在这次攻击当中,由于攻击者在攻击准备阶段,从中化交易所里转出了很多的资金。所以是暴露出了一定的信息。因为我们从外部不是很清楚项目方和其他的安全团队到底掌握了攻击者什么样的信息,但是我们比较倾向于如果继续追踪的话,攻击者更多的信息是可以被挖掘出来的。
另外一个原因,6亿美元这么大额的安全事件,无论在哪个国家,都是执法机关应该要去监管和查处的事情。从威慑的角度来讲,我个人觉得攻击者后续会偿还大部分的资金。只是从目前的表现来看还是比较慢的。
主持人:10号晚上事件发生时,Tether(USDT的发行方)是冻结了3000多万的usdt。但是其他被盗的币种,比如USDC、ETH、BTC都没有被冻结。有很多用户就呼吁BSC和Polygon,让他们去冻结。其中Polygon,就是Matic回应,自己没有冻结的权限。您认为这些链有没有权限来冻结代币?
周亚金:我觉得主要是看设计。对于以太坊这样的公链来说,我不觉得以太坊的官方可以去冻结某一个用户的资产。
本身区块链就是一个去中心化的平台,即使是以太坊的项目方,也不对以太坊具有绝对的控制力。我不觉得可以去冻结以太坊上的ETH。
但是像其他的一些ERC20的token,项目方如果在token的合约里有一些安全机制的考量,当然是可以去做一定的冻结。但是像以太坊、像BSC这样原生的数字货币,可能确实没有办法去做到这样的事情。
主持人:这一次黑客采用的攻击手法,在Defi跨链被攻击的事件中来看,是不是一个常用的手段?
周亚金:我觉得确实不是常规的一个手段。我们研究Defi也有一、两年了,从我们过去对Defi的整个安全事件捋下来,Defi里的安全事件很多是由于合约和合约之间的交互出现了问题。
比如一个借贷的APP,它的价格机制如果过于依赖于一个去中心化交易所的价格提供者,那就有可能会被“价格操纵”攻击;
如果一个智能合约的关键函数,没有在最开始做一些权限的控制,如果权限控制被攻击者利用了以后,可能会造成严重的后果。
但是这种跨链的平台,实际上和我们所看到的传统的Defi应用还不一样。因为跨链的平台它实际上是既有去中心化的合约,又有中心化的基础架构,并且又需要和多条链之间去做连接。所以它整个协议的复杂度是非常高的。
如果在协议的设计阶段没有对安全做比较好的评估和考量,或者没有把安全作为整个协议设计的第一要务,不免就有可能在安全方面存在着疏漏。
虽然我们现在没有找到,ont为什么会上链这条恶意交易的最终分析结果,但是从我们初步掌握的结果来看,主要还是因为ONT链本身支持跨链的属性和Poly这个跨链聚合器器之间的交互在一些沟通上出现了一些问题。
从公链平台到聚合器之间的沟通、交互,实际上是过去的Defi安全事件里我们很少看得到的。我们也是第一次看到。
我觉得,随着整个区块链的基础架构越来越复杂,上面支撑的应用类型越来越多,应用之间交互的越来越频繁,可能将来会有更多的或者更复杂的,不同于传统的安全威胁出现。
这也需要项目方在做项目的时候,一定要把安全在设计开始之初就考量在内,而不是在整个项目完成之后,找一个安全审计公司公去做一个简单的安全审计和评估就可以的。这也是一个教训吧。
主持人:之前大家会觉得Defi是去中心化的,是安全的,会有代码即法律这一类的言论。但攻击出现后,受害群体的用户都在要报警。这个时候大家都在怀念好像中心化才更好。
区块链、包括Defi,基本上大家都认为一定要去中心化、去中介化的,那它们在在去中心化、去中介化的过程中,究竟安不安全呢?
周亚金:我个人觉得安全和是否中心化或去中心化,没有本质和必然的联系。可以举一个简单的例子,比如Linux操作系统是开源的,大家都可以引用它的代码。window系统是闭源的。但Linux和windows到底谁更安全,这个是不太好去评估的。
是不是去中心化和是不是安全没有必然联系。去中心化,虽然代码是法律,但是如果代码出现了问题,就相当于出现了坏的法律。
所以要如何样
您可能感兴趣的文章: