NEW EVENT
最新活動
OKX
幣安
HOT ARTICLES
熱門文章
Featured Articles
專題精選
總計損失超過 7 億 7 千萬美金,其中網路釣魚造成了 8600 美金損失,相較 2023 同期增加將近六成。
來源:區塊鏈安全審計公司 Beosin 近期發布的 2024 Q1 Global Web3 Security Report, AML Analysis & Crypto Regulatory Landscape
駭客部分造成的損失依然是最大宗,損失也增加最多,駭客攻擊比較多是針對項目方針針對合約,對一般使用者而言,更常遭遇到的是網路釣魚攻擊。
近期開始頻繁出現的一種釣魚攻擊方式:錢包簽名釣魚,簽個名錢包的錢就不見了!這是為什麼?要如何防範?
簽名不是授權,簽名並不上鏈,沒有鏈上操作,不需要支付 gas;授權是鏈上操作,需要支付 gas。
例如錢包連線 OpenSea 時需要簽名,簽名表示接受 OpenSea 的使用條款與隱私政策,還有一段說明告知這個簽名請求不會上鏈,不需要花費 gas,使用上跟進入某些 web 2 網站時按下我同意使用條款很類似。
也因為簽名是鏈下操作,使用時通常會比較降低戒心,不像授權時會檢查再檢查,被駭客抓到這個心理上的小漏洞,近期開始愈來愈常出現錢包簽名釣魚攻擊。儘管只是簽名,並沒有授權,但錢包中的幣依然被轉走了。
先看一下正常情況:
簽名基本上只在使用者跟項目之間,沒上鏈,就像我簽個便條紙給你,或在你的合約上打個勾,是鏈下操作,第三方看不到,最常用來登入。
授權則是鏈上操作,我跟你簽約後把這合約公開上網,所有人都看的到,是鏈上操作要支付 gas,大家都看的到,常用在 DeFi 交易,交易前必須先授權對方動用錢包中的幣。
這很好理解,我以為它是官方網站,但其實是釣魚網站,授權後對方有權動用我的幣,就被轉走了。
簡單說就像這樣,對方拿跟我們簽好的便條紙,跑去銀行說東東授權我來領走他的錢,銀行驗證簽名沒錯就把錢讓他領走。
差別在於平常是我跑去銀行辦理授權,我支付 gas 把授權上鏈;現在是對方跑去銀行辦理授權,對方支付 gas 把授權上鏈。
為什麼簽名能授權對方動用我的幣?這是一種特殊簽名格式稱為 Permit。
因為每次交易都要授權、要支付 gas、要等鏈上確認交易很麻煩,所以在某次升級後添加了這個函數功能,初衷是為了改善使用者體驗,在簽名中添加某些 permit 函數,讓智能合約讀這些函數,就能使用鏈下簽名達成同等於鏈上授權的效果。
Permit 函數通常包含以下幾個部分:
Owner 授權方,我們的地址
Sender 被授權方,對方的地址
Value 授權的代幣與數量
Deadline 授權期限
但畢竟是新的函數,有些舊的幣無法使用,為了更推廣這個能改善使用體驗的函數,Uniswap 推出了 Permit 2 合約,讓 Permit 的函數功能能適用到更多的幣種上,基本原理相同。
簡單總結:
因為目前的簽名也能有同等於授權的效果,過往授權釣魚的攻擊事件已經擴展到簽名釣魚,就算只是簽名也可能讓幣被轉走。
關鍵三招:
多方比對正確網站才使用,降低點到釣魚網站的機率
提高警戒,簽名前看清楚內容,並搭配合約可讀性工具
定期檢視,使用工具取消有疑慮的簽名
簽名釣魚手法跟授權釣魚手法很像,只是把授權改成簽名,預防方式也差不多。
避免釣魚網站的最根本,就是不要點到釣魚網站。
初次跟某網站 / DApp 互動時,一定要多方比對,主要的加密貨幣資訊網站如 Coinmarketcap、CoinGecko、DeFiLlama 等都會提供項目方網站連結,第一次的話都要比對過,確認是正確網站後務必加入我的最愛,未來都從我的最愛直接前往,不要再透過 google 搜尋。
看到某些推文或新聞提到有活動,也從我的最愛連過去參與,不要直接點留言的連結,可能是釣魚帳號發布的釣魚連結。
找尋官方網站可以透過 twitter 確認
確認 twitter 是否正確,可以透過查看「共同追蹤人」
Renzo 的官方帳號
假的 Renzo 官方帳號
這一類型高熱度的帳戶都會有不少仿冒者充斥在相關的帳戶推文(如 eigenlayer、altlayer)底下留言,通常伴隨著惡意釣魚連結等待迷途羔羊上鉤,如果你不注意,一分神就會成為受害者。
如果真的都不確定,可以詢問 幣研社群
參考閱讀:
CoinMarketCap 介紹| 幣價、漲跌趨勢、熱點板塊,15 大關鍵功能教學
CoinGecko 幣虎教學|查加密幣、管理投資組合、防詐騙
幣圈必備網站|DeFi 鏈上數據平台 DeFiLlama 入門教學與介紹
如文章前段所說,Permit 簽名包含以下幾個函數:
Owner 授權方,我們的地址
Sender 被授權方,對方的地址
Value 授權的代幣與數量
Deadline 授權期限
簽名時看到這幾個出現就要提高警戒,知道自己正在進行等同於授權的操作。
也能搭配合約可讀性工具,會在簽名、與合約互動時跳出視窗,顯示更完整的說明和資訊,例如下圖:
簽名登入 OpenSea,如果有安裝合約可讀性工具,此時會跳出視窗並顯示這次互動的說明:
通常用在驗證地址並登入 DApp
這種簽名無法授權或轉移錢包中資產
關於合約可讀性工具可參考這一篇文章:
讓你的 Metamask 小狐狸錢包更安全|合約可讀性工具 Wallet Guard & Fire 介紹
重要:
合約可讀性工具支援的區塊鏈還很有限,以目前區塊鏈數量的增長速度,我們會在愈來愈多不同鏈上操作,最佳的方式是訓練自己每次簽名都看清楚,看懂簽名內容,合約可讀性工具只是輔助,不要過分依賴。
就算我們能確保每次都在正確網站操作,完全避開釣魚網站,但項目方依然有可能被駭客入侵,原本安全變成危險,曾經做過的授權變成漏洞。
針對這種風險有兩種預防方式:
盡量避免無限授權,雖然比較麻煩但每次只授權當下要操作的額度
定期檢視授權與簽名狀況,將已不使用或有疑慮的移除取消
知名的授權檢視工具 Revoke 也推出取消簽名的功能:
連接錢包後,可在授權 / 簽名之間切換顯示。
但因為簽名沒有上鏈,實際上 Revoke 無法確認我們是否真的有做簽名,也不知道簽名內容,這邊只能根據過去互動列出可能有簽名的清單。
取消簽名要花費 gas 上鏈,概念上就是上網公告我跟某某人簽的小便條紙無效了。
Revoke 也推出瀏覽器擴充功能,類似前面提到的合約可讀性工具,會在進行如簽名或授權操作時跳出說明和警告,建議新手安裝使用。
參考閱讀:
撤銷智能合約授權|如何在 Metamask 取消授權?|工具介紹
簽名釣魚雖然看似很可怕,但依然有範圍,了解它,不需過度恐慌。
簽名釣魚無法盜走私鑰助記詞
一次簽名釣魚只能使用一次
只針對該帳戶該鏈該幣種
概念上跟授權非常接近,它騙走的是授權,授權它動用錢包中的某種幣多少額度,並不會因此外流私鑰助記詞,不會因此整個錢包上下所有帳戶都被盜光。
跟授權一樣,只針對該帳號、那條鏈、那個幣種,其他帳號不影響,其他鏈不影響,其他幣也不影響。
被釣魚一次簽名,對方只能用一次,除非你誤簽很多次,不然對方沒辦法連續轉走資產。
也就是說只要有做好資產分散,或大多數幣都在質押、借貸、流動性挖礦等合約裡,帳上活動餘額不多的話,簽名釣魚能造成的損失相對有限。
市場裡大家都在找下一個 alpha,找百倍幣,但螳螂捕蟬黃雀在後,隨著市場愈來愈活絡,市場資金越多,駭客也會更活躍,各種攻擊事件只會更多。
如果無法保護好自己的加密資產,辛苦找 alpha 到頭來其實都只是在幫駭客打工,資產安全是加密貨幣投資第一優先,以損失程度來排重要性:
不要外流 (或遺失) 私鑰助記詞,不要外流交易所帳號密碼,以紙本妥善、硬體錢包妥善儲存
避開不安全的項目,交互新項目時常開新錢包以隔離風險
避開釣魚網站,避免授權釣魚、簽名釣魚。
東東
加密貨幣愛好者 | 2017 入圈,認為區塊鏈是下個世代的網路,期待區塊鏈與加密貨幣普及到日常生活的那一天。