当前位置:主页 > 列表页 > 正文

行走笔记:Poly Network攻击事件技术复盘(下)

2021-08-16 02:01 | 出处: 行走


本篇笔记来自811日晚巴比特8问大事件的直播。直播分上下半场,上半场由主持人贾小别采访被黑客攻击的Poly Network上的一位受损当事人。下半场是由来自安全公司BlockSec联合创始人,浙江大学网络空间安全学院的教授博导周亚教授Poly被盗事件做了相对完整,虽然技术但基本能看懂的复盘。行走会把这一事件后续进展中一些大咖的评论贴在笔记后面供大家参考。

以下,Enjoy

主持人:根据目前的追踪来看,这一场攻击是不是预谋已久的?还是说攻击者可以突然之间很快的发起攻击

周亚:这次攻击非常smart有一些攻击细节因为需要有一些技术背景我没有太细讲攻击者在构造攻击交易的时候,目的是要去替换公钥而能替换公钥的函数实际上是比较固定的,就那么一个函数。

攻击者构造这个交易,为什么最后能调到这个函数以太坊智能合约选择哪个函数调用的选择机制是有关系的这里面又涉及到哈希碰撞等等一些东西

所以我觉得攻击者是掌握了非常深的攻击技巧,并且他对Poly上的整个机制是非常非常了解的否则其实很难精心构造出来这么一个具有哈希碰撞的恶意的从ONT构造出交易出来从这一点来看我们也认为攻击者是蓄谋已久的,并且可能是在攻击之前已经做了精心的实验和准备所以他最后的攻击是一气呵成,从替换公钥到最后完成提币,整个时间是非常短的。

主持人:之前网上有个信息,我没有确认过。的是攻击在攻击之后有三个小时没有动链上任何一个币的。

周亚攻击者在攻击之后,如果我记得没错的话,他并没有立即去转币。但是有一些其实是进了Curve等等的一些国外的交易所。

主持人:攻击者后来Curve上做了混币,这样有什么目的?如果混币成功话,这些币还能不能追踪到并还回来?

周亚其实攻击者一般在攻击成功以后,第一步要做的最快的时间内把赃款脱手,把赃款洗干净从而让执法机关很难去追踪服务经常被用于对赃款进行一定的匿名化处理实际上混币服务不仅仅在以太坊上有,Bitcoin里面也是长期以来困扰执法机关的问题。

我们看到在以太坊上,大部分的攻击者都倾向于在得手之后立即去进行混币操作那为什么在这次的攻击当中,攻击者还是露出了马脚,最后答应偿还被盗的数字货币呢?

主要的原因不在于他在得手之后的转账从目前公开的消息来看,他为了去做攻击,比如在以太坊去做攻击,他需要有一定的手续费支付手续费最初的数字货币的来源是从一个中心化的交易所转出来的(本体上的ONGDEX上买不到)。那从中心化的交易所转出来的时候,就不免会留下一定的痕迹。

虽然我们事后了解到,攻击者在中心化的交易所里并没有留下实名认证的东西,没有做KYC但是登录中心化交易所的一些IP地址客户端浏览器总是会留下蛛丝马迹的我们比较倾向于攻击者是由于在攻击准备阶段留下了一些蛛丝马迹,所以后续被一些安全团队追踪到,后续才会去做出退还账款操作。

主持人:目前攻击者是还到200多万美金,还有6亿多美金没有归还回来我们现在都不知道他究竟在做什么,他说还一直是拖拖拉拉的。对于攻击者目前的状态,你有没有一个评价,或者有没有怎样的看法?

周亚我个人的看法,攻击者应该会偿还比较多大部分的资金原因刚才讲了,攻击者在整个攻击的过程中,特别是在攻击准备阶段,还是留下了比较多的痕迹在整个数字货币或公链的世界里面,匿名化是一把双刃剑匿名化保护大家的隐私,但它也会使得我们对于数字货币的追踪变得比较困难特别是引入了混币服务以后

但是在这次攻击当中,由于攻击者在攻击准备阶段,从中化交易所里转出了很多的资金所以是暴露出了一定的信息因为我们从外部不是很清楚项目方和其他的安全团队到底掌握了攻击者什么样的信息,但是我们比较倾向于如果继续追踪的话,攻击者更多的信息是可以被挖掘出来的。

另外一个原因6亿美元这么大额的安全事件,无论在哪个国家,都是执法机关应该要去监管和查处的事情从威慑的角度来讲,我个人觉得攻击者后续偿还大部分的资金。只是从目前的表现来看还是比较慢的

主持人:10号晚上事件发生时,TetherUSDT的发行方)是冻结了3000多万的usdt但是其他被盗的币种,比如USDCETHBTC都没有被冻结有很多用户就呼吁BSCPolygon让他们去冻结。其中Polygon,就是Matic回应,自己没有冻结的权限。您认为这些链有没有权限来冻结代币

周亚我觉得主要是看设计对于以太坊这样的链来说,我不觉得以太坊的官方可以去冻结某一个用户的资产

本身区块链就是一个去中心化平台,即使是以太坊的项目方,也不对以太坊具有绝对的控制力我不觉得可以去冻结以太坊上的ETH

但是像其他的一些ERC20token,项目方如果在token的合约里有一些安全机制的考量,当然是可以去做一定的冻结但是像以太坊BSC这样原生的数字货币,可能确实没有办法去做到这样的事情。

主持人:这一次黑客采用的攻击手法,在Defi跨链被攻击的事件中来看,是不是一个常用的手段?

周亚我觉得确实不是常规的一个手段我们研究Defi也有一、两年了,从我们过去对Defi的整个安全事件捋下来Defi安全事件很多是由于合约和合约之间的交互出现了问题

比如一个借贷的APP,它的价格机制如果过于依赖于一个去中心化交易所的价格提供者,那就有可能会被价格操纵攻击

如果一个智能合约关键函数,没有在最开始做一些权限的控制,如果权限控制被攻击者利用了以后,可能会造成严重的后果

但是这种跨的平台实际上和我们所看到的传统的Defi应用还不一样因为的平台它实际上是既有去中心化的合约,又有中心化的基础架构,并且又需要和多条链之间去做连接所以它整个协议的复杂度是非常高的

如果在协议的设计阶段没有对安全做比较好的评估和考量,或者没有把安全作为整个协议设计的第一要务不免就有可能在安全方面存在着疏漏

虽然我们现在没有找到ont为什么会上这条恶意交易的最终分析结果但是从我们初步掌握的结果来看,主要还是因为ONT链本身支持跨链的属性和Poly这个跨链聚合器器之间交互一些沟通上出现了一些问题

链平台到聚合器之间的沟通交互,实际上是过去的Defi安全事件里我们很少看得到的我们也是第一次看到

我觉得随着整个区块链基础架构越来越复杂,上面支撑的应用类型越来越多,应用之间交互的越来越频繁,可能将来会有更多的或者更复杂的不同于传统安全威胁出现

这也需要项目方在做项目的时候,一定要把安全在设计开始之初就考量在内,而不是在整个项目完成之后,找一个安全审计公司公去做一个简单安全审计和评估就可以这也是一个教训吧。

主持人:之前大家觉得Defi是去中心化的,是安全的,会有代码法律这一类的言论。但攻击出现后,受害群体的用户都在要报警这个时候大家在怀念好像中心化才更好。

区块链包括Defi,基本上大家都认为一定要去中心化去中介化的,那它们在在去中心化去中介化的过程中,究竟不安全呢?

周亚我个人觉得安全和是否中心化去中心化,没有本质和必然的联系。可以举一个简单的例子,比如Linux操作系统是开源的大家都可以引用它的代码window系统是闭的。Linuxwindows到底谁更安全,这个是不太好去评估的。

是不是去中心化和是不是安全没有必然联系去中心化,虽然代码是法律,但是如果代码出现了问题,就相当于出现了坏的法律

所以要如何

相关文章