一、事件背景
Balancer官網上對于其具體功能的描述為『EasilyswapERC20tokens.Exchangetokenswithoutdeposits,bids/asks,andordermanagement.Allon-chain.』。簡單來說Balancer就是提供在鏈上進行tokens交換的區塊鏈智能合約應用。
2020年6月29日凌晨,Balancer項目的兩個資金池遭受攻擊。攻擊者在此次事件中獲利約46萬美元,資金池市商損失約50萬美元。
根據此次安全事件的具體過程,可以將此次事件比喻為攻擊者『偷梁換柱』。
二、抽絲剝繭還原攻擊者『偷梁換柱』經過
2.1、安全事件概述
?根據鏈上交易數據顯示:
1、攻擊者利用自建合約
對存在通縮貨幣STA的資產池
進行了攻擊;
2、攻擊者利用自建合約
對存在通縮貨幣STONK的資產池
BSN開放聯盟鏈成都鏈已上線:金色財經報道,近日,區塊鏈服務網絡BSN表示,開放聯盟鏈成都鏈已在BSN環境內上線,這是基于BSN環境上線的第9條開放聯盟鏈。BSN開放聯盟鏈(簡稱OPB)包括多條基于公有鏈框架和聯盟鏈框架搭建的公用鏈,此次上線的成都鏈是基于公鏈Casper框架進行合規化改造而來。[2022/12/15 21:46:38]
進行了攻擊。
2.2、攻擊步驟簡介
攻擊者首先通過閃電貸借款大量WETH,而后使用借得的WETH將被攻擊資金池中的通縮貨幣兌換出來,僅留下1e-18個通縮貨幣。完成上述準備工作后,攻擊者開始發動攻擊,不斷使用1e-18個通縮貨幣兌換資金池內的其他代幣,以達到『偷梁換柱』的目的。直到池內資金基本被轉移完后,攻擊者將獲利存入如下地址:
0xBF675C80540111A310B06e1482f9127eF4E7469A
攻擊過程如下圖所示:
成都鏈安:ApolloX 項目方因簽名系統缺陷被攻擊,損失約160萬美元:金色財經消息,據成都鏈安“鏈必應-區塊鏈安全態勢感知平臺”安全輿情監控數據顯示,ApolloX 項目遭受攻擊,根據成都鏈安技術團隊分析,發現ApolloX簽名系統存在缺陷,攻擊者利用簽名系統缺陷生成了255個簽名,總共從合約中提取了53,946,802$APX,價值約160萬美元,目前被盜金額通過跨鏈已打入以太坊0x9e532b19abd155ae5ced76ca2a206a732c68f261地址。此前,ApolloX代幣APX在今日19:00左右從0.054美元快速跌至0.019美元,閃跌約60%。[2022/6/9 4:11:35]
△圖1
此次事件發生后,Balancer團隊表示已對資產池進行審計,正在進行第三次審計,并將在UI界面啟用通縮貨幣黑名單,禁止用戶建立存在通縮貨幣的資產池。
2.3、漏洞原理詳細分析
在分析漏洞具體信息之前我們需要知道以下兩點:
1、Balancer項目允許個人建立資金池。資金池本質上是一個智能合約,用戶可以調用資金池的函數進行代幣兌換。資金池中可以存在多種貨幣,用戶可以使用資金池中存在的貨幣進行兌換,兌換的比例按照一種固定的算法,如圖所示:
成都鏈安:正在追查Ronin攻擊事件的資金去向:據成都鏈安鏈必應-區塊鏈安全態勢感知平臺輿情監測顯示,Axie Infinity側鏈Ronin遭到攻擊,17.36萬枚ETH和2550萬USDC被盜,總金額約合價值為6.15億美元。在這里,成都鏈安對此類跨鏈橋項目給出以下建議:
1.注意簽名服務器的安全性;
2.簽名服務在相關業務下線時,應及時更新策略,關閉對應的服務模塊,并且可以考慮棄用對應的簽名賬戶地址;
3.多簽驗證時,多簽服務之間應該邏輯隔離,獨立對簽名內容進行驗證,不能出現部分驗證者能夠直接請求其它驗證者進行簽名而不用經過驗證的情況;
4.項目方應實時監控項目資金異常情況。[2022/3/30 14:25:56]
△圖2
我們以用STA兌換WETH為例:
?TokenAmountOut表示可以兌換出的WETH的值
仙人掌CTS智能合約已通過Beosin(成都鏈安)安全審計:據官方消息,Beosin(成都鏈安)近日已完成仙人掌CTS智能合約項目的安全審計服務。
?仙人掌CTS是基于波場底層打造的一個去中心化開放金融底層基礎設施。結合跨鏈,同時包含去中心化穩定數字貨幣,去中心化預言機,去中心化保險,流動性挖礦,智能挖礦等等功能的創新和聚合,進而打造全面的去中心化金融平臺。仙人掌CTS代幣無ICO、零預挖且零私募,社區高度自治。仙人掌CTS將會在9月28日晚20點上線Justswap,并開啟流動性挖礦。
合約地址:TST5pvck2DSYXJk3hkuGH3t1AisCAT4t1s
審計報告編號:202009262149[2020/9/28]
?TokenBalanceOut表示當前池內的WETH的值
?TokenBalanceIn表示當前池子內的STA的值
?TokenAmountIn表示用戶輸入的STA的值
?TokenweightIn表示STA的權重,為一個固定值,只能由資金池的管理者更改
OneSwap智能合約代碼通過慢霧、成都鏈安、PeckShield安全審計:據海外媒體消息,OneSwap已9月6日順利通過智能合約代碼安全審計,此次審計工作由三家業內知名的安全公司慢霧科技,派盾PeckShield,成都鏈安完成。在審計過程中,三家獨立的審計團隊采取自身獨特的策略對OneSwap智能合約代碼進行全方位開展代碼審計工作,以最大程度確保及時發現漏洞。
審計團隊分別從攻擊漏洞測試、合約復雜度分析、代碼通用性、鏈上數據安全、代碼邏輯等方面對OneSwap智能合約代碼進行全方位的測試分析。OneSwap智能合約代碼均符合三家安全公司的安全審核標準,審計中發現的問題目前都已解決或正在解決中。
OneSwap是一個基于智能合約的完全去中心化的交易協議,在CFMM模型的基礎之上引入鏈上訂單簿來改善AMM用戶的交易體驗。上幣無需許可,可支持自動化做市、支持掛單挖礦、流動性挖礦和交易挖礦。據官方消息,Oneswap將在2020年9月7日正式上線并開啟公測。[2020/9/7]
?TokenweightOut表示WETH的權重,為一個固定值,只能由資金池的管理者更改
?SwapFee表示手續費,為一個固定值,只能由資金池的管理者更改
綜上所述,當一種貨幣STA在一個資金池中的存量較少時,也就是bI較小時,就可以使用STA兌換更多的WETH。
2、STA代幣是一種通縮貨幣,當進行轉賬操作時,會自動銷毀一定量的STA。如下圖所示:
△圖3
tokensToBurn即為每次交易銷毀的值,其銷毀數額是轉賬數額的1/100,如當數值為1e-18時,其銷毀值也是1e-18。銷毀值的計算源碼如下圖所示:
△圖4
△圖5
接下來我們對本次攻擊事件進行分析,以存在STA的被攻擊資金池為例。攻擊者向自建合約
發起了一筆交易
。在此筆交易中,攻擊者首先從閃電貸借出了104331個WETH,如下圖所示:
△圖6
而后使用借來的WETH兌換被攻擊資產池中的STA,因為STA是通縮貨幣,每次transfer都會使得STA銷毀轉賬金額的1/100。如下圖為一次兌換:
△圖7
這筆交易共進行了20余次兌換,使得被攻擊資金池中的STA余量為一個極小值后開始使用STA兌換其他代幣,如下圖所示:
△圖8
我們可以發現,在此筆交易中,攻擊者轉給被攻擊合約的STA個數是『0』,但卻扣除了1e-18個STA,這不符合正常兌換情況。于是我們對此進行深入分析,通過事件日志確定攻擊者發送了1e-18個STA。如下圖所示:
△圖9
由此可得出結論,在發送過程中,因為STA的通縮機制,發送給資金池的STA會被銷毀,導致被攻擊資金池無法收到STA,但資金池合約仍然會認為收到了1e-18個STA,并更新STA的存量。如下圖所示:
△圖10
如果STA的存量增加,就會使得STA能夠兌換其他代幣的比例下降,因此攻擊者又調用了gulp()方法來更新STA的余額,使得資金池的STA余額等于實際余額。如圖所示:
△圖11
每進行一次兌換,攻擊者就會調用一次gulp()對STA的余額進行更新,這樣使得STA的余額始終為1e-18個,因此每次攻擊取出余額的比例都是不變的,如下圖所示:
△圖12
攻擊者使用這種方式,將資金池中的所有代幣以每次1/2的比例進行兌換,最終幾乎將資金池中的所有代幣全部提出。
2.4、攻擊事件總結
根據我們日常智能合約安全審計經驗來看,本次事件產生的原因,可能是資金池合約對流入資金的處理方式不夠完善,并沒有考慮到通縮性代幣的情況,在計算應當輸出的值tokenAmountOut和貨幣余額inRecord.balance的增減時,都是使用由用戶控制的tokenAmountIn參數,而不是實際收到的代幣數,導致實際池中的流入資金與記錄資金不相符,如下圖所示:
△圖13
另外,用于更新代幣余額的gulp函數的權限是external,這兩點組合起來,導致了本次事件漏洞的產生,如下圖所示:
△圖14
Tags:STAKENTOKETOKENBitcoin and Ethereum Standard TokenXDEFI Governance TokenDxChain Tokenblockidentitytoken
如今,多方安全計算技術作為隱私計算領域的重要應用,逐步邁向市場,也面臨著許多亟待解決的問題。本期算力隱私數據安全專欄特邀郭嘉探索多方安全計算留在客戶那邊的懸疑.
1900/1/1 0:00:00做交易,心態應放在第一位,其次才是技術。只有先修煉好了心境,才能在錯綜復雜的市場里心如止水。投資者要能戒驕戒躁,戒貪戒婪,戒自大戒恐懼.
1900/1/1 0:00:008月5日-7日,由Cointelegraph中文和Cointelegraph聯合主辦的2020“同一個世界,同一個愿景,同一個夢想”大灣區·國際區塊鏈周在深圳大灣區完美收官.
1900/1/1 0:00:00市場要聞 最近市場沒有熱點,咱們就吃著粽子看看行情的情況。 BTC行情分析 這兩天大家都在劃水,所以行情沒什么說的,玩的時候盡情地玩,該賺錢的時候全心全意地賺錢!金色財經合約行情分析 | 市場各.
1900/1/1 0:00:002020年7月4日,比特幣弱勢盤整,9200的多單依然沒有保本的機會,那該如何是好呢?比特幣昨日行情只要在開盤的時候來了一波下探和拉升,日間行情盤整在9100附近,日間整體波動沒有超過100點.
1900/1/1 0:00:00交易理念: 解決進場時候的心態。盡可能絕對分類自己交易系統的細節。細節越是清晰,方法越是明確,模糊情形越少,越是容易掌控自己的行為。開車過路口的地上的線畫的清清楚楚,是走不錯的.
1900/1/1 0:00:00