背景
在上一期Web3 安全入門避坑指南中,我們主要講解下載/購買錢包時的風險,找到真官網和驗證錢包真偽的方法,以及私鑰/助記詞的洩漏風險。我們常說“Not your keys, not your coins”,但也存在即使你有私鑰/助記詞,也無法控制自己資產的情況,即錢包被惡意多簽了。結合我們收集到的MistTrack 被盜表單,一些用戶的錢包被惡意多簽後,不明白為什麼自己錢包帳戶裡還有餘額,卻無法把資金轉出。因此,本期我們將以TRON 錢包為例,講解多簽釣魚的相關知識,包括多簽機制、駭客的常規操作及如何避免錢包被惡意多簽等內容。
多簽機制
我們先簡單解釋下什麼是多簽,多簽機制的本意是為了讓錢包更安全,允許多個用戶共同管理和控制同一個數位資產錢包的存取和使用權限。儘管部分管理者遺失或洩漏了私鑰/助記詞,錢包裡的資產也不一定會受損。
TRON 的多重簽章權限系統設計了三種不同的權限:Owner、Witness 和Active,每種權限都有特定的功能和用途。
Owner 權限:
- 擁有執行所有合約和操作的最高權限;
- 只有擁有該權限才能修改其他權限,包括新增或移除其他簽署者;
- 建立新帳戶後,預設為帳戶本體擁有該權限。
Witness 權限:
這個權限主要與超級代表(Super Representatives) 有關,擁有該權限的帳戶能夠參與超級代表的選舉和投票,管理與超級代表相關的操作。
Active 權限:
用於日常操作,例如轉帳和調用智能合約。這個權限可以由Owner 權限設定和修改,常用於指派給需要執行特定任務的帳戶,它是若干授權作業(例如TRX 轉帳、質押資產)的一個集合。
上文中提到,新建帳戶時,該帳戶的地址會預設擁有Owner 權限(最高權限),可以調整帳戶的權限結構,選擇將該帳戶的權限授權給哪些地址,規定這些地址所佔權重的大小,以及設定閾值。閾值是指需要簽名方權重到達多少才能執行特定操作。在下圖中,閾值設定為2,3 個被授權地址的權重都為1,那麼在執行特定操作時,只要有2 個簽署方的確認,這個操作就可以生效。
(https://support.tronscan.org/hc/article_attachments/29939335264665)
惡意多簽的過程
駭客取得用戶私鑰/助記詞後,如果用戶沒有使用多簽機機制(即該錢包帳戶僅由用戶一人控制),駭客便可以將Owner/Active 權限也授權給自己的地址或將用戶的Owner/ Active 權限轉移給自己,駭客的這兩種操作通常都被大家稱為惡意多簽,但其實這是一個廣義的說法,實際上,可以根據使用者是否還擁有Owner/Active 權限來區分:
利用多簽機制
下圖中,使用者的Owner/Active 權限未被移除,駭客給自己的地址授權了Owner/Active 權限,此時帳戶由使用者和駭客共同控制(閾值為2),使用者地址和駭客地址的權重都為1。使用者雖然持有私鑰/助記詞,也有Owner/Active 權限,但無法轉移自己的資產,因為使用者發起轉出資產請求時,需要使用者和駭客的地址都簽名,這個操作才能正常執行。
雖然被多簽的帳戶執行轉出資產的操作需要多方簽名的確認才可以實現,但是向錢包帳戶入帳是不需要多方簽署的。如果用戶沒有定期檢查帳戶權限狀況的習慣或近期沒有轉出操作的話,一般不會發現自己錢包帳戶的授權被更改,那麼便持續受損。如果錢包內的資產不多,駭客可能會放長線釣大魚,等待該帳戶累積了一定數位資產後,再一次盜取所有數位資產。
利用TRON的權限管理設計機制
還有一種情況是駭客利用TRON 的權限管理設計機制,直接將使用者的Owner/Active 權限轉移給駭客地址(閾值仍為1),使得使用者失去Owner/Active 權限,連「投票權」都沒有了。需注意,此處駭客並不是利用多簽機制使得用戶無法轉移資產,但大家習慣上稱這種情況也為錢包被惡意多簽。
以上兩種情況造成的結果是一樣的,無論使用者是否還擁有Owner/Active 權限,都失去了對該帳戶的實際控制權,駭客地址獲得了帳戶的最高權限,可實現更改帳戶權限、轉移資產等操作。
惡意多簽的途徑
結合MistTrack 收集到的被盜表單,我們總結出了幾種錢包被惡意多籤的常見原因,希望用戶遇到以下幾種情況時,提高警惕:
1. 在下載錢包時,未能找到正確的途徑,點擊了電報、推特、網友發送的假官網鏈接,下載到假錢包,結果私鑰/助記詞洩露,錢包被惡意多簽。
2. 用戶在一些出售加油卡、禮品卡、VPN 服務的釣魚儲值網站輸入了私鑰/助記詞,結果失去自己錢包帳戶的控制權。
3. OTC 交易時,被有心之人拍到私鑰/助記詞或以某手段取得帳戶的授權,隨後錢包被惡意多簽,資產受損。
4. 有些騙子把私鑰/助記詞提供給你,說他無法提取錢包帳戶裡的資產,如果你能幫忙的話可以給你酬勞。雖然這個私鑰/助記詞對應的錢包地址確實存在資金,但無論你給多少手續費、手速多快都提不走,因為提幣權限被騙子配置給了另一個地址。
5. 還有一種較為少見的情況是用戶在TRON 上點擊了釣魚鏈接,簽名了惡意的數據,隨後錢包被惡意多簽。
總結
在本期指南中,我們主要以TRON 錢包為例,講解了多簽機制、駭客實施惡意多簽的過程和套路,希望幫助大家加深對多簽機制的理解和提高防範錢包被惡意多簽的能力。當然,除了被惡意多簽的情形之外,還存在一些比較特別的案例,有的新手用戶可能因操作不慎或缺乏了解,誤將錢包設置成了多簽,導致需要多個簽名才能進行轉賬。此時,使用者僅需滿足多簽要求或在權限管理處將Owner/Active 權限只授權給一個位址,恢復單簽即可。
最後,慢霧安全團隊建議廣大用戶定期檢查帳戶權限,查看是否有異常;從官方途徑下載錢包,我們在Web3 安全入門避坑指南|假錢包與私鑰助記詞洩露風險裡講過如何找到正確的官網和驗證錢包的真偽;不點擊不明鏈接,更不輕易輸入私鑰/助記詞;安裝殺毒軟體(如卡巴斯基、AVG 等)和釣魚風險阻斷插件(如Scam Sniffer),提高設備安全性。