黑客來襲,狂卷6億美金,如何最大力度挽回損失?

8月10日晚,跨鏈PolyNetwork遭攻擊,超6.1億美元資產被盜,O3躺槍。這是DEFI有史以來資金被盜最大的一次事故!事件發生后,全行業為之震驚,業內安全公司、KOL都在密切的關注黑客鏈上地址的動向。截至今日上午,黑客已經歸還了價值3.42億美元的代幣。

事故原委究竟如何?跨鏈協議安全性究竟如何?如何最大力度挽回損失?8月11日晚,Poly受損事件當事人“郭德綱”(化名),BlockSec聯合創始人、浙江大學網絡空間安全學院教授、博導周亞金做客巴比特《8問大事件》直播間,圍繞這場史詩級安全事件展開分析。

黑客來襲,狂卷6億美金,如何最大力度挽回損失?

以下是直播主要內容:

主持人賈小別:你損失了多少?

郭德綱:

我損失了大概有20萬,一部分穩定幣,還有一部分是ETH。

主持人:你是在哪一條鏈上挖礦的,什麼時候參與的O3?

郭德綱:

在BSC和以太坊上挖的。

最早接觸到o3是在bsc上的Pancakeswap上的糖漿池,然後去玩O3。O3的挖礦年化非常高,我參與的時候能達到30%~40%,外面正常的一些室挖礦年化大概是20%左右。

我參與投資的決策是:第一,O3是新項目,項目方還是在國內的。第二,年化高,當然風險可能也高。第三,O3是做跨鏈的,我個人比較看好跨鏈賽道。

我拿了5%的倉位去玩了一下,分散投資。還好沒有把資金全放在一個籃子里,不然可能就竹籃打水一場空了。

主持人:你去參與O3挖礦的時候,有沒有了解過這個項目的背景?

郭德綱:

背景沒有特別多的了解,我只知道他是一個國內的項目方,技術上跟DOT不一樣。後來看很多的幣圈的老用戶都參與進來了,而且看到池子上的資金量也很足,所以說就放心的。

主持人:你是什麼時候發現自己受到損失的?

郭德綱:

最近的工作比較忙,然後發現的時候已經全網傳播了,我是在8月10號晚上9點多的時候在一個O3群里看到O3出事了。知道的太晚了,沒有什麼辦法了。

俗話說的好,常在河邊走,哪有不濕鞋。以前都是看別人,這次被別人看。其實錢損失還好,主要就是情緒可能有點不是特別好,感覺有點丟人。

主持人:我看已經有“受害者群”建立起來了,群里的有效信息多不多?有哪些是有效的?

郭德綱:

我加了一個“受害者群”,群里還是很多有效信息的,比如說昨天晚上黑客在鏈上與大家對話以及資金被盜的去向,還有黑客在Curve添加了流動性轉移資金。這些信息都是在群里第一時間看到的。

昨天下午黑客揚言要還錢,也還了點兒。為什麼一點點還?可能黑客有他自己的想法。這些消息都是從群里第一時間看到的,還是有一定的幫助的,畢竟能了解這件事情的整個過程。

主持人:下一步你有什麼打算?

郭德綱:

群里的那些人可能損失比我還要大,因為我看他們已經很氣憤了,已經要到了報警的程度。

從情感上來講,自己的財產受到損失,第一時間還是說是要去報警的。但是稍微冷靜一下,也會有一些猶豫,因為目前國家對於公鏈,尤其是公鏈上的金融領域是非常抵觸的,特別是今年自從519之後會國內出來很多的政策來打壓金融。

這次損失的資金量是區塊鏈產生這些年最大的一次了。其實報案的話,現在國家正愁沒有機會強勢下手,如果說真正的報案了,其實相當於遞了一把刀過去。

我們這些人用了十幾年的時間看到區塊鏈從一小圈人到現在,就像自己家的孩子一樣,從小到大,然後走到現在,我當然不希望有人去傷害它。我很大一部分資產都是區塊鏈給的,我很熱愛它,但是它在昨天傷害了我。

主持人:這件事情帶來的經驗教訓是什麼?

郭德綱:

我在我這裡談經驗教訓可能有點過了,因為我在圈子只是滄海一粟,只能說是有一點小的反思。

這件事就是給了我一個警示,就是區塊鏈數字貨幣在2017年的時候就有點出圈了,到了2020年之後,它的成長真的是太快了。

我見證了它的成長,也參與進去了,帶給我的喜悅甚至有時候讓我忘乎所以了。

其實我們要意識到區塊鏈還是在起步階段,還是在人的在幼年階段。我想到了7月24號巴比特牽頭舉辦的區塊鏈大會的主題——無限未來。我覺得“無限未來”用在區塊鏈上真的是太貼切了。

下一步,我準備整理一下自己的資產,盡量多關注一下DeFi生態上的安全性。最近關注到BSC上的DeFi還算不錯,如果說黑客把錢還回來了,我可能會把這些資金投入到BSC上的Pancakeswap上。因為O3我是從Pancakeswap上接觸到的,最終如果拿回資金還是回歸到Pancakeswap,算是一個有始有終。

現在看來,區塊鏈依然是未來的趨勢,國內依然去在大力的發展聯盟鏈,只不過公鏈在國內不被認可。這次被盜不是最後一次,但我依然還會參與到公鏈當中。

主持人:跨鏈協議polynetwork被盜,這否是一次有預謀的攻擊?黑客從開始攻擊開始做了哪些操作?(攻擊者關鍵的操作有哪些?目的是什麼)

周亞金:

我們團隊從昨天晚上8點多鐘第一時間知道以後就一直在分析,從昨天晚上到今天不到24小時的時間,我們是對整個攻擊的了解越來越深,已經快接近真相了。我用一個PPT把整個的攻擊和原理給大家分享一下。

PolyNetwork是一個跨鏈的聚合器,為以太坊、BSC以及其他的一些鏈的數字資提供交換和傳遞的解決方案。

黑客來襲,狂卷6億美金,如何最大力度挽回損失?

我這裡引用的是PolyNetwork官方的給出的文檔,假設這裡有一個用戶在以太坊上想把資產轉移到其他鏈,用戶首先會去調用以太坊上面的一個智能合約把資產鎖在智能合約裡面,然後PolyNetwork有個Realyer中繼器,會把這個交易傳播到目標鏈上.在整個傳播的過程當中,它必須要對交易的合法性做很多的校驗。

在目標鏈上同樣有一個proxy的合約,調用一個叫unlockd函數。unlock會把用戶鎖在以太坊上的資產換算成目標鏈上相應資產的餘額,通過PolyNetwork完成兩條鏈之間資產的轉移。

在跨鏈的過程中,涉及到交互還是比較複雜的,它涉及到合約用戶和合約之間的交互,和鏈的交互,鏈和Poly之間的交互,Polly和relay之間的交互,relay和目標鏈之間的交互,所以它整個的交互的鏈條還是比較長。

從最基本的安全設計來說,為了保證在整個跨鏈時候的交易的安全性,實際上我們需要對跨鏈的消息進行簽名校驗。

黑客來襲,狂卷6億美金,如何最大力度挽回損失?

在Polly的整個的設計當中,它實際上是成立了4個的校驗者,攻擊者如果想完成整個攻擊過程,他基本上需要做兩件事情。第一件事情就是要繞過這些校驗,第二步就是在繞過交易過程之後,可以發送crafted消息。

黑客來襲,狂卷6億美金,如何最大力度挽回損失?

繞過校驗的時候,通常有幾種不同的方法。

第一種方法,在設計的時候密碼學的一些算法本身就存在漏洞,你去做簽名校驗的,算法本身有一些後門戶的漏洞被攻擊者知道了。

第二種可能性,算法實現可能有錯誤,即便加密的算法和簽名校驗的算法沒有問題,但是因為你的算法實現存在的漏洞,攻擊者可以去利用它。

第三種情況,你用來校驗簽名這些消息的私鑰泄露了,攻擊者是可以用你泄露的私鑰去嵌入出來各種各樣任意的交易消息。

第四種,我可以去修改簽名交易者的公鑰。這個是什麼意思呢?因為我在做校驗的時候,必須要使用預知好的一些公鑰去對我的消息去做校驗,如果我有某一種方法能去修改簽名校驗的公鑰,就可以把公鑰修改成攻擊者自身所控制的公鑰,這樣就可以用自己所有的私鑰來去簽署消息。

我們昨天晚上在分析攻擊的時候,能看到的只是說有一筆合法簽名的交易在鏈上,並且它的整個簽名校驗的過程確實都過了。而且在簽名校驗的過程中,我們發現校驗公鑰只有一半,所以當時安全性有很多的猜測。

後來進一步的研究發現,其實攻擊者是通過第4種方法去修改了簽名交易的公鑰。他是怎麼去修改的?交易的公鑰實際上是存在某一個合約的變量裡面,而能去修改變量的合約是特定的,也就是說,不是誰都可以去修改變量。

再回到我們一開始講的,如果一個資產從以太坊的鏈轉到另外一個鏈,需要進行哪些步驟?我們略過前面兩步,我們就講最後一步。最後一步是比較關鍵的,也就是在目標鏈上如果要完成資產的轉移,需要調用一個叫unknock函數來去完成資產的轉移。

如果攻擊者通過某一種方法,調用的不是Unlock函數,並且這個方法本身就有權限去修改校驗的公鑰,這樣的話就可以通過惡意調用修改公鑰的函數,從而替換籤名交易的公鑰。

我們發現,攻擊者最初的攻擊交易是從ONT發送了一個精心構造的惡意交易,唯一的目的就是去修改在以太坊上用來做簽名校驗的公鑰,交易本身是合法的。為什麼會有一條合法的交易到ont的鏈上?

目前大家都還不知道,我們懷疑可能是ont鏈上polyNetwork合約有問題,或者說ont本身做跨鏈的接口有問題,導致攻擊者可以惡意構造這麼一個交易,最後來完成對密鑰的替換。

我們具體詳細過程還在分析當中。昨天很多的媒體和安全公司都認為polyNetwork的keeper只有一個公鑰,實際上確實是這樣,是因為他原先有4個公鑰,但是被攻擊者修改成只有1個公鑰。

黑客來襲,狂卷6億美金,如何最大力度挽回損失?

攻擊者修改了公鑰之後,接下來的攻擊益就變得比較簡單,可以任意的去偽造的交易,整個鏈就變成攻擊者的提款機。

主持人:polynetwork准哪個環節出了問題,讓資金被盜?目前爭議比較大的是有分析團隊認為攻擊者通過此函數傳入精心構造的數據修改了EthCrossChainData合約的keeper為攻擊者指定的地址,不是由於keeper私鑰泄漏導致這一事件的發生。 BlockSec這邊追蹤到的信息更傾向於哪一個?

周亞金:

關鍵問題所在就是有一條精心構造的交易從ont鏈然後送到了polynetwork,再到了以太坊。為什麼這條交易能夠上到ONT上,我們還不清楚,我們現在目前還在做進一步的調查。

這個攻擊非常smart,攻擊者構造攻擊交易的時候,目的是要去修改替換公鑰,而能替換公鑰的函數是比較固定的,就那麼一個函數。

構造的交易最後能調到那個函數,跟以太坊智能合約函數調用的選擇的機制是有關係的,所以我覺得攻擊者掌握了非常深的攻擊技巧,並且對polynetwork鏈上的整個的機制是非常了解的,否則的話它其實很難構進行構造出來這麼一個具有碰撞的這麼一個惡意的從ont上的這麼一個交易出來。

從這一點來看,我們認為攻擊者應該是蓄謀已久的,並且可能是在攻擊之前已經做了精心的實驗和準備,所以他最後的攻擊從替換公鑰到最後完成交易整個時間是非常短的。

主持人:黑客混幣是什麼目的?混幣成功了還能追蹤出來嗎?

周亞金:

攻擊者在攻擊成功以後,一般來說會儘快把贓款脫手,要把它洗乾淨從而很難讓執法機關去追蹤。

混幣服務其實就是經常被用於對贓款進行一定的匿名化處理。在這一次的攻擊當中,其實攻擊者還是露出了馬腳,他為了去做攻擊,需要有一定的手續費,而這個手續費的來源是從一個中心化的交易所轉出來的,不免會留下一定的痕迹,後續被一些安全團隊發現,才會去做出退還贓款的操作。

主持人:今天我們看到黑客歸還了200多萬的美金的,他不是一下子歸還,而是拖拖拉拉,你怎麼看?

周亞金:

我覺得攻擊者應該會償還比較多的大部分的資金,因為攻擊者在整個攻擊的過程中留下了比較多的痕迹。

在數字貨幣世界裡面,匿名是一把雙刃劍,匿名保護我們的隱私,但也會使得我們對於數字貨幣的追蹤變得比較困難,特別是引入了混幣服務以後。

在這一次攻擊當中,攻擊者由於在攻擊準備階段從中心化交易所裡面轉出了很多的資金,暴露出了一定的信息,我們不清楚項目方和其他的安全團隊到底掌握了攻擊者什麼樣的信息,但是我們認為,如果繼續追蹤的話,黑客的整個信息是可以被挖掘出來的。

另外,6億美元是比較大額的安全事件,無論哪個國家的執法機關都應該去監管和查處的這個事情。所以從威懾的角度來講,我個人覺得攻擊者可能會後續償還大部分的資金。

主持人:在沒被攻擊前,大家都覺得DeFi是去中心化的,代碼及法律。被攻擊之後,受害群體的用戶都在說要報警。安全取決於中心化還是去中心化?

周亞金:

安全與否,無關於中心化和去中心化。

雖然代碼是法律,但是如果你的代碼出現了問題,其實不就相當於出現了壞的法律了?怎麼樣讓DeFi的代碼變得更安全,我覺得可能是整個社區需要去探討的問題,而不是糾結於中心化就一定不安全,去中化就一定安全。

主持人:給這次polynetwork受損用戶的建議是什麼?

周亞金:

不要把雞蛋放在一個籃子里。

主持人:除了監管上要加大力度,普通投資在投資defi時候應該注意哪些?對於一個項目的安全性應該如何判斷?

周亞金:

我覺得用戶有一個誤區,認為項目被審計之後就一定安全。這是一個非常大的誤區,項目被審計只說明這個項目被相應的審計公司以安全的視角去review過它的代碼,並不代表沒有安全威脅的存在。

從用戶的角度來說,可以多維的評估項目方的安全程度,比如說這個項目方有沒有定期的去披露監測到的風險的情況,比如每天或者每周去披露項目大概遇到疑似的攻擊有多少次,怎麼去阻斷它的,至少說明項目方其實在這方面投入非常大的時間和成本。

另外一塊,用戶也需要更多的去支持一些對安全投入比較大的一些項目,和項目方可以有更好的這種良性的互動來去提高整個項目的安全性。

本文鏈接:https://www.8btc.com/article/6673671

轉載請註明文章出處

(0)
上一篇 2021-08-12 18:10
下一篇 2021-08-12 18:48

相关推荐