BTC
ETH
HTX
SOL
BNB
查看行情
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt

TokenPocket閃兌服務商被盜,快檢查你開通了多少“無限授權”

Loopy Lu
读者
2022-10-02 03:53
本文約3021字,閱讀全文需要約5分鐘
超2300萬美元被盜,每個web3用戶都該讀這篇。
AI總結
展開
超2300萬美元被盜,每個web3用戶都該讀這篇。

今日,跨鏈DEX 聚合器Transit Swap 遭受攻擊,導致大量用戶的資金從錢包中被取出。截至目前,預計損失超2300 萬美元。

發現被盜後,Transit Swap 技術團隊緊急暫停服務,合約已完全暫停,無法進行任何操作。發稿前Transit Swap 官方發佈公告稱,此前黑客攻擊事件原因係代碼錯誤,目前已確定黑客IP、電子郵件地址,以及相關的鏈上地址。 Transit Swap 團隊表示將盡力追踪黑客,並嘗試與黑客溝通,幫助用戶挽回損失。

慢霧分析,此次攻擊的主要原因在於Transit Swap 協議在進行代幣兌換時並未對用戶傳入的數據進行嚴格檢查,導致了任意外部調用的問題。具體而言,路由合約本身沒有對transferFrom 參數進行任何限制、也並未對解析後的兌換合約地址與調用數據進行檢查。攻擊者利用路由代理合約、路由橋合約與權限管理合約均未對傳入的數據進行檢查的缺陷,通過路由代理合約傳入構造後的數據調用路由橋合約的callBytes 函數,實現了竊取所有對權限管理合約進行授權的用戶的代幣。

目前黑客已將2500 BNB 轉移到Tornado Cash,剩餘資金分散保留在黑客地址中。經過黑客痕跡分析發現,黑客存在從LATOKEN 等平台存提款的痕跡。

二級標題

二級標題

什麼是閃兌?

目前,幾乎所有錢包都嵌入了DeFi 功能,而一些錢包出於易用性的考量,更是創造了“閃兌” 這一概念並加以應用。

二級標題

二級標題

合約授權潛藏了多少風險?

“沒有人可以強行拿走你的加密資產”,是投資者對區塊鏈特性的一種廣泛共識。鏈上資產一旦被錢包所有,沒有任何強製手段將其轉移。但當我們使用DEX 進行鏈上交易之時,DEX 是如何將一種資產拿走再轉移給你另一種資產的?

二級標題

二級標題

審計=安全?

即使授權之後合約擁有轉移加密資產的能力,但這種能力只在合理的範圍內使用,這依然是安全的。而如果經過可信安全機構審計,是否即表示這種能力不會被濫用,只在用戶進行交易時轉走交易額的必要資產?

靜態來看,這一邏輯是成立的。就如同Uniswap 儘管擁有隨時將用戶錢包清空的能力,但並不會真的這麼做一樣。但動態來看,這一邏輯依然是危險的。

現代軟件開發,升級是一項必不可缺的能力。智能合約也是如此。在Solidity 智能合約中,擁有Transparent 和UUPS 兩種升級方法,借助於這兩個功能,合約代理和升級幾乎是業界合約的標配。

項目方是如何進行合約升級的呢?通常,用戶所訪問的合約並非直接運行業務邏輯的核心合約,而是一個“代理合約”,代理合約接收到用戶請求之後將其轉發到核心的業務合約,再由業務合約進行處理。而合約升級即是更換掉最終轉發至的業務合約。簡單來說,智能合約儘管不可修改,但用戶所最終訪問的、運行業務邏輯的合約是可以替換的。這也是業界的通用做法。

二級標題

二級標題

無限授權有多危險?

所幸的是,授權並不代表用戶隨時暴露於錢包清空的危險中下。授權機制還有一個重要規則即是授權是含有數量的。用戶“Approve” 合約一定數量的代幣,合約最多只能動用這些數量,即使是錢包裡該代幣數量再多,合約也已無法動用。

二級標題

二級標題

用戶如何防範?

沒有授權就沒有安全隱患。在執行鏈上操作之時,如需執行Approve 操作,用戶應遵循“用多少、授多少” 的原則。如果我只需賣出1000 TOKEN,那即應手動修改Approve 金額為1000。在計算合約轉移金額時是累積的,即若只授權1000、本次金額恰好交易了1000,合約授權額度恰好已耗盡。即使日後合約出現安全風險,也已無法再從用戶錢包中轉移走任何資產。

(用戶可手動修改授權金額)

而對已經授權的用戶來說,還可發起取消授權操作。 (一個有趣的細節是,以太坊並不支持“取消授權”,該操作本質是賦予合約“0” 金額的授權。)

二級標題

1. Dappstar:https://tac.dappstar.io/#/

2. Revoke:https://revoke.cash/

3. Approved.zone:https://approved.zone/

4. Rabby Wallet 

二級標題

https://cn.etherscan.com/tokenapprovalchecker

https://bscscan.com/tokenapprovalchecker

DeFi被盜,誰的責任?

“黑暗森林”是廣為流傳的對於鏈上秩序的敘述了,也提醒著用戶這個世界的危險性和高風險。但諸如此類的安全事件一再發生,真的可以全部歸責於用戶的安全意識嗎?

在此類事件中,DeFi 項目對於用戶授權毫無節制的索取是隱患的最初來源,幾乎所有的項目,在索取授權之時其默認選項都是無限授權。儘管用戶可以手動修改,但一個負責任的市場應承擔投資者保護和用戶教育的責任。

至今,仍有多少加密用戶尚不清楚授權的危險?而在這種環境背景之下,項目方仍在索取危險極大的無限授權。

DeFi 濫用授權的情況早已成為業界慣例,而這一高危情況幾乎危及所有用戶的天量資產,其影響之深遠、廣泛、隱患之巨,恐怕尚未有一個安全隱患可以望其項背。該風險從根本上違背了“沒有人可以拿走錢包裡的幣” 這一樸素的直覺。這也是行業需要一直面臨的風險和挑戰。

被盜事件發生後,神魚就已在推特做出呼籲,“呼籲一下項目方規範使用授權功能,用多少授權多少,不要無限授權,大家都放心。”

去中心化充滿著機會與風險。還記得加密技術最初的願景嗎? “保護你的資產,沒有人可以奪走你錢包裡的加密貨幣。”而一個良性秩序的建立,需要的不是複雜的代碼、晦澀的概念,確保每一個普通用戶都能安全的使用加密技術,仍然需要行業裡每一個參與者共同的努力。



DeFi
DEX
安全
歡迎加入Odaily官方社群