今年 2 月,DeFi 借貸協議 bZx 才因智能合約漏洞連續遭受兩次攻擊,損失共計約達 94.5 萬美元。時隔半年,昨(13)日 bZx 又再傳今年第三度攻擊事件,程式碼漏洞讓駭客劫走了以太幣(ETH)、LINK 和 USDT 等多種資產,損害金額高達 810 萬美元。
(前情提要:閃電貸款|駭客二次對「各 DeFi 產品壓力測試攻擊」,從 bZx 再獲利 66 萬美元(2,378 ETH))
(背景補充:怎麼用 Defi 工具「十幾秒零成本」獲利上千萬?詳細還原 bZx 駭客事件始末)
昨日稍晚,DeFi 協議 bZx 的總鎖定價值(TVL)突然急劇下滑,經團隊檢查後發現其智能合約中出現了重複程式碼漏洞,儘管 bZx 迅速反應暫停了 iToken 的鑄造和銷毀作業,但已讓駭客搶得先機奪走了價值約 810 萬美元的資產。
根據 bZx 發表的事件報告,官方首先是注意到了 TVL 奇異的變化,下跌幅度達 70% 以上,讓 bZx 協議的 TVL 僅剩 630 萬美元。隨後,bZx 在 the _internalTransferFrom() 函數上察覺了 iToken 智能合約上的異常行為,因此暫停了 iToken 的鑄造和銷毀作業,並重設新的智能合約版本,對重複計算的餘額進行修正。
目前,bZx 已經將修正後的程式碼交由派盾(Peckshield)以及 Certik 進行後續的審計作業。bZx 並強調,此次攻擊並未對鎖定在其智能合約中的資金釀成風險,因為 bZx 在 Nexus Mutual 設有保險基金,據悉約有 18,780 枚 NXM 擔保了這次的損失。
延伸閱讀:Yearn核心業務「機槍池 放貸基金 保險」告訴你 DeFi 後半場會怎麼玩?
損害金額
去中心化交易所 1inch 的共同創辦人 Anton Bukov 在獲悉 bZx 攻擊事件後,也旋即展開了調查 。他發現,有 9 筆交易透過重複程式碼複印了 101,788 枚 iETH,價值約為 4,700 枚 ETH,同時也披露出駭客的地址是0xd1c0f1316140D6bF1a9e2Eea8a227dAD151F69b7。
Our small investigation thread (with @semenov_roman_) on @bZxHQ "duplication incident".https://t.co/en6LGTnW5z
— Anton Bukov (e/acc)🦇🔊 (@k06a) September 13, 2020
不過,根據 bZx 官方說法,此次攻擊事件中由保險基金承保的資產如下:
- 219,199.66 LINK(約 260 萬美元)
- 4,502.70 ETH(約 160 萬美元)
- 1,756,351.27 USDT(約 170 萬美元)
- 1,412,048.48 USDC(約 140 萬美元)
- 667,988.62 DAI(約 68 萬美元)
也就是說,這場攻擊的影響程度遠比 Anton Bukov 當初預期來得嚴重,損害金額達 810 萬美元。
社群反應
今年似乎對 bZx 來說並不是什麼好運當頭的時機,因為這已經不是 bZx 首度遭到攻擊了,在今年 2 月就連續發生了兩起利用閃電貸(flash loan)發起的攻擊事件,雖然這兩起攻擊的損害金額還不到 100 萬美元,但也依舊引起各方關注。
動區先前報導,今年 2 月 14 日發生的第一起攻擊事件中,駭客從 dYdX 和 Kyberswap 上借走了 15,000 多枚以太幣,並透過在 Fulcrum 上開槓桿,造成系統嚴重延遲,最終獲利達 1,193 枚以太幣,換算價值約有 31.8 萬美元。
第二次攻擊則發生在 4 天後,駭客操控了協議中的預言機系統,詐取約 60 萬美元的資產。
延伸閱讀:什麼是「閃電貸 Flash Loan」?十幾秒內從”借貸協議 bZx”狠賺 35 萬美元的 DeFi 策略
有趣的是,因為 bZx 在這三次攻擊都無怨無悔地包辦了用戶的損失,也為他們贏來社群的尊重
Aave 創辦人庫勒修(Stani Kulechov)就跳出來說道:
從 bZx 最近發生的事件中可以發現,做分叉項目比起從零開始建構一個協議要簡單得多。bZx 進行了多次的審計、通過正式的驗證,還花費了大量時間才重返以太坊主網,但上述種種努力都不能確保協議的安全,這是每一位 DeFi 用戶都應該要明瞭的事。
https://twitter.com/StaniKulechov/status/1305265162400788485?s=20
推特用戶 @PeterChantrasook 也在 bZx 推特貼文下方留言稱:
沒有多少人明白,作為一個在這個市場上最早期的創新項目,bZx 自然會吸引到很多想利用漏洞攻擊的人。即便通過了嚴格的安全審核,再怎麼野心勃勃的項目都有可能會發生這樣的事情,就算這並不應該發生。
當然,bZx 在攻擊事件中確實有失職的部分,也受到了一定程度的指責。
像是 Bitcoin.com 的首席工程師 Marc Thalen 就聲稱,他昨晚發現有用戶利用漏洞攻擊 bZx 後,立即就通知了 bZx 官方團隊,然而當下沒有任何一位 bZx 的創辦人醒著。而在他一邊嘗試利用該漏洞、另一邊與社群管理員持續溝通的同時,便發現駭客已經快把 bZx 協議中的 DAI 和 USDC 耗盡了。
Marc Thalen 重申,他無意指責 bZx,畢竟沒有多少協議會願意補償用戶損失;但是,他相信假如 bZx 再晚一些做出反應的話,bZx 協議中的資產可能會全數被駭客奪去。雖說 Marc Thalen 態度中立,但不難看出他正是在點出 bZx 略微緩慢地處理動作。
1/4 Last night I found an exploit in BRZX. I noticed that a user were capable of duplicating “i tokens”. There was 20+ million $ at risk. I informed the team telling them to stop the protocol and explained the exploit to them. At this point none of the founders were up.. pic.twitter.com/MdJqOH2IPu
— 0xCommodity (@0xCommodity) September 14, 2020
另一方面,Compound 的創辦人也對於 bZx 在緊急暫停合約後,僅經短暫修復便重啟合約的做法表示反對:
拜託,拜託先暫停所有合約的運作,直到協議被重新完整的審計,並經過徹底的分析。不要再用一句『這沒什麼大不了的』帶過,這不是你應該對待駭客攻擊的方式。
If I understand correctly, bZx lost:
$2.6m of $LINK
$1.6m of $ETH
$3.8m of stablecoins
——
$8.0mPlease, please pause operations until this can be re-audited and thoroughly analyzed–instead of saying "no big deal".
This is NOT how you respond to a hack 🚨 https://t.co/CqZltmNt1o
— Robert Leshner (@rleshner) September 14, 2020
不過,bZx 共同創辦人 Kyle Kistner 對 The Block 則對說道,雖然有一些意見領袖建議他們要重新審核該協議,但是 bZx 的安全審計人員建議不要那麼做。根據 bZx 官方公告給出的時間表,Peckshield 的審計作業約需長達 12 週的工作量,而 Certik 則是 7 週的工作量。