LOADING...
LOADING...
LOADING...
当前位置: 玩币族首页 > 区块链资讯 > 行走笔记:Poly Network攻击事件技术复盘(下)

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

2021-08-16 行走 来源:区块链网络

本篇笔记来自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到底谁更安全,这个是不太好去评估的。

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

所以要如何Defi的代码变得更安全我觉得是整个社区需要去探讨的问题而不是纠结于中心化和去中心化,中心化就一定不安全,去中心化就一定安全

大家为什么最近都特别拥抱去中心化,还是因为信任和单点故障的问题去中心化最大的问题是会存在单点的故障如果中心化的,比如交易所它的安全做得好,那它整安全水位就会非常的高由于它是中心化的,只要一个人做好了,整个交易所的安全系数就非常高

但是如果在去中心化的生态中,玩家会更多,会涉及到大小各种不同类型的玩家由于技术实力和资金实力的差别,在安全上质量可能是参差不齐的所以总体来说我个人认为去中化和中心化安全没有本质的必然的联系还是取决于这个项目方对安全的投入和重视程度

主持人:链协议在哪些方面特别容易出现安全问题?今年在Defi的安全事故中,我们看到将近有一半是在跨上出了事情的

周亚我们在课堂上给学生讲课经常会讲人不可能写出来没有bug的代码。

你的代码里有bug的数量,和你的代码行数可能是有一定关系的

这就意味着当项目的规模变得复杂了以后,如果把控不好,实际上会出bug,甚至会引起安全漏洞的可能性是非常大的。

跨链最近引起大家重视出了那么多安全问题,主要还是因为比传统的Defi的应用和传统的DAPP变得更加的复杂。链之间的交互,和合约之间的交互,合约和合约之间的交互以及链和跨链聚合器,底层架构之间的交互整个的数据和资金的流向是非常复杂的

我们觉得项目方一定要设计整个跨协议的时候,要想清楚首先要把整个项目里可能攻击点识别出来识别出来之后,需要抵御这样的攻击点和攻击界面,需要做哪些安全防御的事情一定是要从一开始就把安全引入到整个的系统架构设计里面去然后识别出来风险点和攻击点,然后建立好威胁模型,才能保证比较复杂的像跨链这种基础架构安全性。

另外一点,希望和大家去探讨我们看到了很多项目的风险和攻击,实际上是可以被监控,并且是可以使得损失变得比较小的这是什么意思呢?

区块链从一条攻击交易发出到最终上,是有10秒到12秒之间的延时的如果项目方可以比较好的去监控去看链上目前有哪些人正在做什么事情,这个交易到底会不会对我的合约和资产造成安全的损害?如果一旦有风险发生,项目方可以立刻强制合约将攻击交易关掉就可以避免掉一部分的损失

但我们比较遗憾发现好像项目方很少有这么做,或者很少去和专业的安全公司一起来去做这样的事情。

更多的都是在项目上线之后找了安全公司审计,那我的项目就是安全的。但实际上它不是这样子的安全是一个持续的长期的和全面的投入。安全需要项目方在项目上线之前上线之后都需要有持续的安全的监控和投入。

主持人:教授有没有给这次PolyNetwork上受损用户一些建议他们很焦急,很无助,但又没有办法,只能等待。

周亚从我们的角度来看,目前用户能做的事情确实比较少第一是希望黑客能把钱还回来,还回到用户的手里面第二是和项目方去商议后续怎么去处理

说到建议,也许就是可以分担风险,不要把你的投资和数字货币放在同一个平台里面。一个篮子打翻了,还有其他篮子。但是我觉得真的好像普通用户能做的事情比较少。

主持人这一次攻击,对行业里的用户伤害是非常深的能够参与到03的挖矿,做LP的这些用户都应该算区块链行业里高阶的玩家了当时03确实非常火热,对于项目的安全,好像大家也没有太去关注只是知道审计被通过了

对于一个项目的安全性,普通的用户该如何去判断呢?

周亚这确实也是目前整个行业的误区,包括用户的误区认为项目被审计之后就一定安全的。这是一个非常大的误区项目被审计过之后,只说明这个项目被相应的审计公司以安全的视角去审核过它的代码并不代表没有安全威胁的存在我觉得这是项目方和用户都需了解到的

从用户的角度,可以多维的去评估项目方的安全程度比如项目方有没有定期的去披露项目监测到的风险的情况能反映一个项目方对安全风险是不是有持续监控的重要指标如果项目会定期的披露,比如每天或者每周去披露项目大概遇到疑似的攻击有多少次,或者疑似的恶意交易有多少次。项目方是怎么去阻断它的,或者怎么去监控到的那至少说明项目方在这方面投入非常大的时间和成本这样的项目安全相对来说会比较高一点。

同时,用户也需要督促项目方。用户可以从用脚来投票的角度,更多的去支持一些对安全投入比较大的项目。整个Defi的TVL现在这么大,但是每个项目在安全上的投入到底是多少?是不是项目方也可以做相应的披露,以赢得用户对项目安全的信心用户和项目方可以有更好的良性的互动去提高整个项目的安全性。

主持人:关于这次黑客攻击事件,您还有没有其他需要补充的话题呢?

周亚算是整个行业规模最大的一次攻击堪称是史诗级的一次攻击。

这一次攻击暴露了整个行业的一些问题第一个问题,个人觉得项目方可以更透明一些对自己的安全事件有个披露。从我们外部的角度来看,很多时候的分析都是在去做盲人摸象我们只能根据我们所掌握的公开信息去推测事情的原因到底是什么但项目方会比安全公司掌握更详细的信息

项目方可以有更迅速和更透明的响应使得在有安全事件发生的时候,可以第一时间积极的和多家安全公司来沟通,一起找出来背后的原因是什么

对于整个Defi行业,比较幸运的是这一次的事件虽然整个损失的数额比较大,但我们预期攻击者可能会把钱还回来对用户的伤害比预期的来的小。

另外角度来看,虽然有安全事件的发生,但也是一次教训也许有这样的教训和这么大的安全事件发生以后,我们才可以让整个DEFI生态发展的更安全

因为人总是会从跌倒中吸取教训的,可以下一次做的更好

不幸中的万幸有这么大的一安全事件,但是最终的损失可能会被还回来又对整个社区和整个行业有了一个比较好的安全教育未尝不是一件好事。

主持人谢谢教授的分享最后我也要向攻击者喊一下话区块链并不是法外之地非法盗用占用如此大额的资金,其实已经构成了刑事犯罪,无论处在哪个国家。我们呼吁攻击者立即归还所有的资金,争取法律宽恕。

以上是笔记的全部内容。附上参与这次攻击追索的安全公司慢雾创始人余弦以及Poly链上巨鲸用户,矿圈大佬神鱼两人的复盘截图。

正如周亚金教授讲的,不幸中的万幸,这次攻击者退回了几乎全部的被攻击资产。行走记得,519事件发生后,孙宇晨复盘谈到最多的也是幸运,幸好及时补到了仓,没有彻底爆掉。但一个行业不能一而再,再而三的依靠幸运活着。资产安全,稳健投资这些基础性“常识”,也许需要行业从业者和参与者共同去补课。行走也希望这样的事件真的不要再反复发生了,因为幸运真的不会一直存在。

—-

编译者/作者:行走

玩币族申明:玩币族作为开放的资讯翻译/分享平台,所提供的所有资讯仅代表作者个人观点,与玩币族平台立场无关,且不构成任何投资理财建议。文章版权归原作者所有。

LOADING...
LOADING...