比特幣價格 比特幣價格
Ctrl+D 比特幣價格
ads
首頁 > KuCoin > Info

MIT:簽名就被盜?用過Uniswap的請警惕 揭秘Permit2簽名釣魚_imToken錢包app下載

Author:

Time:1900/1/1 0:00:00

本文由Beosin特邀獨立研究員菠菜菠菜!(twitter@wzxznl)與Beosin安全研究員Sivan共同創作發布。

黑客,這是一個讓Web3生態中每個人都聞風喪膽的存在,對于項目方來說,在全世界黑客都可能盯著你的情況下,代碼開源的特性使得項目方開發的時候生怕寫錯一行代碼留下漏洞,一旦出現安全事故后果難以承擔。

對于個人來說,如果你不懂得你正在做的操作意味著什么,那么你進行的每一個鏈上交互或簽名都有可能使你的資產被盜。因此安全問題一直是加密世界中最頭疼的問題之一,并且由于區塊鏈的特性,一旦資產被盜幾乎是沒有辦法可以追回的,所以在加密世界中具備安全知識尤其重要。

就在最近,發現了一個近兩個月開始活躍的新釣魚手法,只要簽名就會被盜,手法極其隱蔽且難以防范,并且用過Uniswap交互的地址都有可能暴露在風險之下,本文Beosin聯合獨立研究員菠菜對這種簽名釣魚手法進行科普,盡量避免大家更多的資產損失。

以下為菠菜的親身經歷復述:

事件經過

最近,一位朋友(暫稱小A)錢包里的資產被盜后找到菠菜,與常見被盜方式不同的是,小A并沒有泄漏私鑰也沒有和釣魚網站的合約進行交互,于是菠菜開始調查起了這個資產被盜事件。

在區塊鏈瀏覽器中可以看到小A錢包被盜的這筆USDT是通過Transfer From函數進行轉移的,在這進行科普一下,當我們在以太坊上進行Token轉賬的時候,其實是調用了該Token智能合約的Transfer函數,這兩者的區別簡單來說Transfer是資產擁有者本人進行操作把Token轉移給其他地址,而Transfer From是第三方將地址內的Token轉移給其他地址。這也就意味著這筆被盜的資產是另外一個地址進行操作把Token轉移走的,而非錢包私鑰泄漏。

美國貨幣監理署批準旗星銀行購買簽名銀行過渡銀行的資產并承擔一定的債務:金色財經報道,美國貨幣監理署批準旗星銀行購買簽名銀行過渡銀行的資產并承擔一定的債務。交易包括旗星銀行從簽名銀行過渡銀行購買總價值為129億美元的貸款組合,并承擔340億美元的存款。(金十)[2023/3/21 13:15:41]

通過查詢交易細節,我們可以發現一些關鍵線索:

尾號fd51的地址將小A的資產轉移到了尾號a0c8的地址中

這個操作是與Uniswap的Permit2合約進行交互的

那么疑點來了,尾號fd51的地址是如何拿到這筆資產的權限的?為什么會和Uniswap有關系?

首先我們需要知道,要想成功調用Transfer From這個函數的前提是調用方需要擁有這個Token的額度權限,也就是approve,相信大家有過鏈上操作的一定熟悉不過了,當我們去使用一些Dapp的時候,一旦涉及到資產的轉移就需要我們先進行一個授權(approve)操作,這樣Dapp的合約才有權限對我們的資產進行轉移。

要解開這個謎題,我們需要繼續挖掘,而答案就在尾號fd51的地址的交互記錄中,在該地址進行Transfer From轉走小A的資產之前,可以看到該地址還進行了一個Permit的操作,并且這兩個操作的交互對象都是Uniswap的Permit2合約,那么這個Permit函數和Uniswap Permit2又是什么情況?

Uniswap Permit2合約是Uniswap在2022年年底推出的新的智能合約,根據官方的說法,這是一個代幣審批合約,允許代幣授權在不同的應用程序中共享和管理,創造一個更統一、更具成本效益、更安全的用戶體驗。

并且未來隨著越來越多的項目與 Permit2 集成,Permit2可以在所有應用程序中實現標準化Token批準。Permit2 將通過降低交易成本來改善用戶體驗,同時提高智能合約的安全性。

安全研究人員披露Ledger簽名安全漏洞 漏洞或導致用戶資金被盜:安全研究人員Monokh撰文披露加密貨幣錢包Ledger硬件錢包存在的安全漏洞。Monokh指出,該漏洞可能導致用戶資金被盜。Ledger會在除比特幣之外的應用程序上公開比特幣(主網)密鑰和簽名信息,會提供誤導性的交易確認請求。以比特幣和萊特幣應用程序為例,漏洞攻擊路徑為:1.打開萊特幣應用程序;2.獲取比特幣隔離見證地址;3.根據地址查看UTXOs;4.發起比特幣交易并發送給Ledger設備要求簽名;5.得到有效的已簽名比特幣交易信息。Ledger本應在上述第二、第四步驟中識別錯誤并對其進行阻止,但仍然提示用戶進行交易。所有固件版本和App版本均受到此漏洞影響。Monokh建議Ledger在實時應用程序目錄上禁用山寨幣(Altcoin)應用程序,直至發布修補程序。根據漏洞披露進程表,2019年1月份,Monokh最初于2019年1月份向Ledger披露與隱私相關的安全漏洞,隨后,Ledger更新了固件但未對應用程序進行更新,并表示在更新應用程序后將立即公開漏洞。2019年4月份,Monokh再次聯系Ledger要求更新應用程序,但未得到反饋。今年5月份,Monokh將該漏洞的根本原因在簽名功能方面,這可能會導致用戶資金被盜。此后,Ledger稱正在調查該漏洞。之后Monokh多次聯系Ledger并要求披露漏洞并對其進行修復,但未得到回應,Ledger也沒有修復或披露相關漏洞。[2020/8/5]

我們先要了解一下為什么Uniswap要推出Permit2,我們來假設一個場景,當我們要在某Dex上進行Swap時,傳統的交互方式是我們需要先授權(approve)給這個Dex,然后再進行Swap,這通常需要花費我們兩筆Gas費,對于用戶來說摩擦成本太大了,相信大家都有過這樣的體驗。

圖片來源:https://github.com/dragonfly-xyz/useful-solidity-patterns/tree/main/patterns/permit2

聲音 | 律師:區塊鏈技術可以改變律師核實電子簽名的方式:曾任米爾班克、特威德、哈德利和麥克洛伊律師事務所律師的Dat Nguyen說,區塊鏈技術可以改變律師核實電子簽名的方式。Dat Nguyen目前是區塊鏈初創公司Sagewise的特別項目副總裁。[2018/10/5]

而Permit2的推出將有可能改變整個Dapp生態的游戲規則,簡單來說就是傳統的方法是你每跟一個Dapp進行資產轉移的交互你都需要進行一次授權,而Permit2可以把這個步驟給省去,這樣可以非常有效的降低用戶的交互成本,帶來更好的用戶體驗。

解決方案是Permit2作為用戶和Dapp之間的中間人,用戶只需要把Token的權限授權給Permit2合約,所有集成Permit2合約的Dapp都可以共享這個授權額度,對于用戶來說,減少了交互成本和提高了用戶體驗,對于Dapp來說,用戶體驗的提升帶來更多的用戶和資金,這本是一個雙贏的局面,但同時這也可以是一個雙刃劍,而問題就出在和Permit2交互方式上。

在傳統的交互方式中,不管是授權還是進行資金的轉移對于操作的用戶來說都是鏈上的交互。而Permit2則將用戶的操作變為了鏈下簽名,而所有鏈上的操作都由中間角色(如Permit2合約和集成了Permit2的項目方等)來完成,這種方案帶來的好處是由于鏈上交互的角色從用戶轉移為了中間角色,用戶即使錢包里沒有ETH也可以使用其他Token來支付Gas費或完全由中間角色報銷,這取決于中間角色的選擇。

圖片來源:https://github.com/dragonfly-xyz/useful-solidity-patterns/tree/main/patterns/permit2

雖然Permit2的出現有可能改變未來Dapp的游戲規則,但是可以看出的是這是一把很強的雙刃劍,對于用戶來說,鏈下簽名是最容易放下防備的環節,比如當我們用錢包登入某些Dapp的時候會需要簽名進行連接,而絕大多數人并不會仔細檢查簽名的內容也并不理解簽名的內容,而這就是最可怕的地方。

動態 | BCH開發人員推出Chopsticks API允許向BCH鏈提交原始簽名交易:據Bitcoin消息,針對BCH 11月15日的硬分叉,Eminent.ly開發人員宣布推出名為Chopsticks.cash的應用程序編程接口(API),允許應用程序開發人員和高級用戶避免任何分支中斷,允許人們將他們的原始簽名交易提交給所有11月15日之后的比特幣現金鏈。此前消息,針對BCH 11月15日的硬分叉,比特幣ABC開發團隊和以nChain、Coingeek為首的團隊分別提出了不同的分叉方案。[2018/9/29]

明白了Permit2合約,回到小A的事件中我們就明白了為什么資產被盜都是與Permit2合約進行交互了,那么就讓菠菜來重現這個Permit2簽名釣魚手法,首先一個至關重要的前提條件是被釣魚的錢包需要有Token授權給Uniswap的Permit2合約,菠菜發現目前只要在與Permit2集成的Dapp或Uniswap上進行Swap的話,都是需要授權給Permit2合約的(下圖菠菜使用了安全插件)。

另外一個很可怕的點是,不管你要Swap的金額是多少,Uniswap的Permit2合約都會默認讓你授權該Token全部余額的額度,雖然MetaMask會讓你自定義輸入金額,但我相信大部分人都會直接點擊最大或默認值,而Permit2的默認值是無限的額度…….

這也就意味著,只要你在2023年之后與Uniswap有過交互并授權額度給Permit2合約,你就會暴露在這個釣魚騙局的風險之下。

因為重點就在于之前在尾號fd51的地址中與Permit2合約交互的Permit函數上,這個函數簡單來說就是利用你的錢包將你授權給Permit2合約的Token額度轉移給別的地址,也就是說只要拿到了你的簽名,黑客就可以拿到你錢包中Token的權限并把你的資產轉移走。

動態 | 美國銀行提交在分布式網絡中采取多重數字簽名專利申請:據Cointelegraph消息,美國專利商標局(USPTO)上周公布的專利申請文件顯示,美國銀行提交了一項在分布式網絡中采取多重數字簽名的新專利申請。這項專利關乎一個新系統,該系統用來管理聯網設備中的各項傳輸數據。專利文件表明,美國銀行旨在闡述物聯網生態環境中的各個聯網設備如何與其它各方傳輸數據,而新系統將允許用戶自行選擇將哪些數據傳輸給第三方。[2018/9/25]

permit函數:

你可以把Permit函數看作是一種在線簽署合同的方式。這個函數讓你(PermitSingle)可以提前簽署一個"合同",允許其他人(spender)在未來的某個時間花費你的一些代幣。

同時,你還需要提供一個簽名(signature),就像在紙質合同上簽名一樣,用來證明這個"合同"真的是你簽署的。

那么這個函數是怎么工作的呢?

首先,它會檢查現在的時間是否超過了你的簽名的有效期(sigDeadline)。就像你簽署的合同有個有效期一樣,如果現在的時間超過了有效期,那么這個"合同"就不能再用了,程序會直接停止。

接著,它會檢查你的簽名是否真的是你簽的。程序會用一個特殊的方法(signature.verify)來檢查這個簽名,確保這個簽名真的是你簽的,沒有被別人偽造。

最后,如果檢查都通過了,那么程序就會更新一下記錄,記下你已經允許其他人使用你的一些代幣。

重點則主要在于verify函數和_updateApproval函數。

verify函數:

可以看到,verify函數會從簽名信息參數中獲取出v、r、s三個數據,v、r、s是交易簽名的值,它們可以用來恢復交易簽名的地址,上圖代碼中可以看到,合約恢復了交易簽名的地址后,與傳入的代幣擁有者地址進行比較,如果相同,則驗證通過,繼續_updateApproval函數的調用,如果不同,則回滾交易。

_updateApproval函數:

當通過了簽名校驗后,會調用_updateApproval函數更新授權值,這也就意味著你的權限發生了轉移。此時,被授權方便可以調用transferfrom函數將代幣轉移到制定地址,如下圖代碼。

好了,解釋完permit函數,我們來看看鏈上真實交易,我們查看這個交互的細節可以發現:

owner就是小A的錢包地址(尾號308a);

Details中可以看到授權的Token合約地址(USDT)和金額等信息;

Spender就是尾號fd51的黑客地址;

sigDeadline是簽名的有效時間,而signature就是小A的簽名信息。

而往回翻小A的交互記錄我們會發現,小A之前使用Uniswap的時候點擊了默認的授權額度,也就是幾乎無限的額度。

簡單復盤一下就是,小A在之前使用Uniswap的過程中授權給了Uniswap Permit2無限的USDT額度,而小A在進行錢包操作的時候不小心掉入了黑客設計的Permit2簽名釣魚陷阱,黑客拿到了小A的簽名后利用小A的簽名在Permit2合約中進行了Permit和Transfer From兩個操作把小A的資產轉移走了,而目前菠菜觀察到的是Uniswap的Permit2合約已經淪為了釣魚天堂,這個Permit2簽名釣魚似乎在兩個月前才開始活躍。

來源:https://etherscan.io/address/0x000000000022d473030f116ddee9f6b43ac78ba3

并且在交互記錄中可以發現幾乎大部分都是被標記的釣魚地址(Fake_Phishing),不斷有人上當。

來源:https://etherscan.io/address/0x000000000022d473030f116ddee9f6b43ac78ba3

1 理解并識別簽名內容:

Permit的簽名格式通常包含Owner、Spender、value、nonce和deadline這幾個關鍵格式,如果你想享受Permit2帶來的便利和低成本的話一定要學會識別這種簽名格式。(下載安全插件是一個很好的選擇)

2 放資產的錢包和交互的錢包分離使用:

如果你有大量資產的話,建議資產都放在一個冷錢包中,鏈上交互的錢包放少量資金,可以大幅減少遇到釣魚騙局時的損失。

3 不要授權過多額度給Permit2合約或取消授權:

當你在Uniswap上進行Swap的時候,只授權你要交互的金額數量,這樣雖然每次交互都需要重新授權會多出一些交互成本,但是可以免于遭受Permit2的簽名釣魚。如果你已經授權了額度,可以找相應的安全插件進行取消授權。

4 識別代幣性質,是否支持permit功能:

后續可能越來越多的ERC20代幣使用該擴展協議實現permit功能,對于你來說需要關注自己所持有的代幣是否支持該功能,如果支持,那么對于該代幣的交易或操縱一定要格外小心,對于每條未知簽名也要嚴格檢查是否是對permit函數的簽名。

5 若被騙后還有代幣存在其他平臺,需制定完善的拯救計劃:

當你發現自己被詐騙,代幣被黑客轉移出去后,但自己還有代幣通過例如質押等方式存在其他平臺上,需要提取出來轉移到安全地址上,這時需要知道黑客可能時刻監控著你的地址代幣余額,因為他擁有你的簽名,只要你的被盜地址上出現了代幣,那么黑客可以直接轉移出去。這時需要制定完善的代幣拯救過程,在提取代幣和轉移代幣兩個過程需要一起執行,不能讓黑客交易插入其中,可以使用MEV轉移,這需要一些區塊鏈知識以及代碼功底,也可以尋找專業的安全公司利用交易搶跑腳本來實現。

相信在未來基于Permit2的釣魚可能會越來越多,這種簽名釣魚方式極其隱蔽且難防,并且隨著Permit2的應用范圍越來越廣,暴露在風險下的地址也會越來越多,希望屏幕前的你看到本文后可以傳播給更多人,避免更多人被盜。

Beosin

企業專欄

閱讀更多

金色早8點

Odaily星球日報

金色財經

Block unicorn

DAOrayaki

曼昆區塊鏈法律

Tags:MITSWAPUNIAPPMITA價格幣圈swapuni幣價格今日行情美元imToken錢包app下載

KuCoin
SEC:為什么所有人都想監管Crypto?_加密貨幣騙局騙女人

不到一周時間,兩家世界最大的加密交易平臺被接連 SEC 起訴,十多種主流加密貨幣被劃定為證券并納入 SEC 監管范圍.

1900/1/1 0:00:00
MAN:Manta太平洋版:一個值得關注的L2項目_SAVANTAI價格

作者:0xTodd,無為資本合伙人 來源:推特,@0x_Todd大家都預測今年下半年是ZK的舞臺,對于ZK Sync、Scroll以及StarkNet,大家都比較熟悉了.

1900/1/1 0:00:00
元宇宙:元宇宙投資:萬億美元VR市場的機遇與風險_元宇宙概念是什么意思Facebook

編譯:深鏈DeepChain元宇宙繼續擴張,行業巨頭和即將到來的參與者競相從潛在的萬億美元餡餅中分一杯羹.

1900/1/1 0:00:00
比特幣:資本持續入場 比特幣即將迎來震蕩?_BTC

盡管比特幣暫時創下了31,700美元的年度高點,但比特幣市場仍受制于一個狹窄的價格區間內。多項指標顯示資本正在緩慢地流入比特幣市場,其中部分指標與極度動蕩的 2016 年和 2019-2020年.

1900/1/1 0:00:00
比特幣:涉案流水4000億 全國“虛擬貨幣第一案”告破_區塊鏈

來源:平安湖北 7月18日,記者從湖北省荊門市沙洋縣局獲悉,涉案流水達4000億的跨境網絡賭博案主犯邱某某等人已被依法送審。為了這一刻,專案組的民警們足足奮戰了兩年.

1900/1/1 0:00:00
SEC:SEC對Binance、Coinbase訴訟之間的“根本區別”_BASE

作者:Katherine Ross,來源:blockworks 編譯:金色財經,善歐巴美國證券交易委員會(SEC)在24小時內對幣安(Binance)和Coinbase提起了嚴厲的訴訟.

1900/1/1 0:00:00
ads