• 【超完整懶人包】認識比特幣!原理與應用全面解析|動區新手村
  • Account
  • Account
  • BlockTempo Beginner – 動區新手村
  • Change Password
  • Forgot Password?
  • Home 3
  • Login
  • Login
  • Logout
  • Members
  • Password Reset
  • Register
  • Register
  • Reset Password
  • User
  • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
  • 動區動趨 BlockTempo – 最有影響力的區塊鏈新聞媒體 (比特幣, 加密貨幣)
  • 所有文章
  • 最完整的「區塊鏈入門懶人包」|動區新手村
  • 服務條款 (Terms of Use)
  • 關於 BlockTempo
  • 隱私政策政策頁面 / Privacy Policy
動區動趨-最具影響力的區塊鏈新聞媒體
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
  • 所有文章
  • 搶先看
  • 🔥動區專題
  • 🔥Tempo 30 Award
  • 加密貨幣市場
    • 市場分析
    • 交易所
    • 投資分析
    • 創投
    • RootData
  • 區塊鏈商業應用
    • 金融市場
    • 銀行
    • 錢包
    • 支付
    • defi
    • 區塊鏈平台
    • 挖礦
    • 供應鏈
    • 遊戲
    • dApps
  • 技術
    • 比特幣
    • 以太坊
    • 分散式帳本技術
    • 其他幣別
    • 數據報告
      • 私人機構報告
      • 評級報告
  • 法規
    • 央行
    • 管制
    • 犯罪
    • 稅務
  • 區塊鏈新手教學
  • 人物專訪
    • 獨立觀點
  • 懶人包
    • 比特幣概念入門
    • 從零開始認識區塊鏈
    • 區塊鏈應用
  • 登入
No Result
View All Result
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Home 區塊鏈商業應用 安全

安全示警|Solana 授權釣魚事件解析 : 是授權轉移還是「直接偷⾛」?

PANews by PANews
2022-03-09
in 安全, 專欄作者
A A
安全示警|Solana 授權釣魚事件解析 : 是授權轉移還是「直接偷⾛」?
155
SHARES
分享至Facebook分享至Twitter

Solana 區塊鏈在前兩天出現了安全預警,本文將解析此次在 Solana 上的釣魚事件,並解析是否為授權轉移還是遭到惡意合約直接盜取用戶資產。
(前情提要:Solana再停機48小時!DeFi用戶目睹資產慘遭清算;分析報告:與套利機器人有關)

本文目錄

  • 以太坊中的授權
  • Solana 中的授權
  • Approve 的涵義
  • 交易直接轉⾛原⽣貨幣
  • Solana 中的簽名擴散機制
  • 具體被盜交易
  • 結論
    • Solana風波 | Jump Crypto霸氣注入12萬顆ETH恢復Wormhole運作;Bonfida回應rug爭議
    • Rex解析 | Solana 跨鏈橋 Wormhole 的被盜過程紀錄:這個鍋誰該來扛?
    • Solana創辦人駁停機說法!認網路性能下降是「成長期必經痛苦」

 

前

兩天,Solana 區塊鏈上出現了安全預警,有⼀篇⽂章指出⼀個釣魚網站在⽤戶批准之後,可以將⽤戶的原⽣代幣轉⾛。在該⽂章中提到了⼀點:

惡意合約在⽤戶批准(Approve)後,可以轉⾛⽤戶的原⽣資產(這裡是 SOL),這點在以太坊上是不可能的,以太坊的授權釣魚釣不⾛以太坊的原⽣資產(ETH),但可以釣⾛其上的 Token。於是這裡就存在「常識違背」現象,導致⽤戶容易掉以輕⼼。

其實該⽂章這裡的說法是不甚準確的,混淆了批准交易和 Solidity 中 ERC-20 代幣授權這兩個不同的概念。

真實情況是通過 Solana 的簽名擴散機制,惡意合約直接盜取了⽤戶的 SOL 資產,和通常意義上的授權並沒有什麼關聯。

以太坊中的授權

在以太坊中,通常意義上授權是指⽤戶調⽤代幣合約,向其它地址(合約)授權⼀定處理額度,這樣我們在和其它合約交易時,可以⽅便的⽀付 ERC-20 代幣。

在這裡,授權是必須的,否則第三⽅合約無權處理⽤戶的代幣資產。同時,這種機制也伴隨了⼤量的授權攻擊,只要你授權了惡意合約,惡意合約就可以轉⾛你的 ERC-20 代幣。

Solana 中的授權

在 Solana 中,代幣⼀般為官⽅提供的 spl-token 合約,它模擬了 ERC-20 代幣的⾏為,因此也存在類似的 ERC-20 授權概念。同樣授權第三⽅合約後第三⽅合約可以處理⽤戶的代幣( 注意不是原⽣幣 SOL )。這點同以太坊是⼀致的,並沒有什麼反常識。

Approve 的涵義

不管在以太坊中還是在 Solana 中,我們習慣將 Approve 當作授權(ERC-20 協議裡有 approve 函數),因此⾃然⽽然的會認為是代幣授權。

當我們使⽤ MetaMask 錢包時,如果是代幣授權交易會明確提示授權,並且所有交易彈出的是⼀個確認按鈕。然⽽在 Solana 的 Phantom 錢包裡,彈出的是⼀個 Approve(批准)按鈕,讓⼈很容易以為是授權交易。

但真實情況是批准⼀次交易⽽並不是進⾏代幣授權。所以安全預警中出現的被盜⾏為,是⽤戶批准了⼀個未知交易,⽽不是⽤戶進⾏了 SOL 的授權操作,當然也就不能說是授權偷⾛了原⽣幣。

交易直接轉⾛原⽣貨幣

交易轉⾛批准者的原⽣貨幣,例如 SOL 和 ETH,是⾮常簡單的。在以太坊上的 Solidity 中,只要調⽤⼀個 payabletransfe 的函數就可以轉⾛交易⽤戶的 ETH;在 Solana 中,相應的,只要調⽤系統合約的戶的 SOL 資產,這和我們平常講的代幣授權概念是沒有任何關係的。

函數也能轉移⾛交易⽤不同的是,在 Solidity 中,ETH 轉移發⽣在合約調⽤的時候,因此錢包可以提前知道要轉移的 ETH 數量並顯示出來,⽽在 Solana 中,轉移是發⽣在合約內部的,因此錢包無法提前知曉你會被轉⾛多少 SOL,當然也會無法顯示。

只要你簽名認同了這筆惡意交易,你就相當於簽名認同了這次 SOL 轉移,這正是這次 Solana 上釣魚盜取的問題所在。

⼀段類似如下的原始碼就可以在合約內部轉移 user 的 SOL。

Solana 中的簽名擴散機制

在 Solana 中,有⼀個簽名擴散機制。 ⽤戶調⽤合約 A,此時合約 A 中⽤戶是簽名批准的。當合約 A 內部調⽤合約 B 時,⽤戶的簽名會隨著跨合約調⽤⼀起擴散到合約 B。

因此,在合約 B 中,⽤戶也是簽名批准的。所以這裡存在⼀個安全風險,當簽名⼀個惡意合約時,惡意合約就獲取了我們這個簽名,然⽽它可以拿我們這個簽名做任何事情! ! ! ! ! ! !

在上述的偷盜事件中,⽤戶同惡意合約 3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v 進⾏交易,該合約直接調⽤系統合約轉移⽤戶的 SOL,因為簽名隨著調⽤⼀起擴散到了系統合約,因此系統合約認為該筆交易也是批准過的,是正常的,所以就轉⾛了⽤戶的資產。

具體被盜交易

其中⼀筆被盜交易我們可以看到該交易涉及的輸⼊帳號:

我們可以看到該交易涉及的輸⼊帳號:

這其中:

⽤戶帳號:4XF4wyjein7ZN4RPM6YK2mC2mC6T41cZAoKjJqpP19fR

SOL 轉移帳號:BepccLHDcXqqHi6MfpTDo9Sfc5tmRjmSC1XY48Tb8HuY

惡意合約地址:3VtjHnDuDD1QreJiYNziDsdkeALMT6b2F9j3AXdL4q8v

從上可以看出,⽤戶帳號調⽤合約後轉移了 1.2545 SOL 到轉移帳號。同時我們可以看到並沒有涉及到 spl-token 代幣合約,出產沒有通常意義上的授權這麼回事。

其交易顯示出的日誌為:

從⽇誌中也可以判斷,惡意合約僅是簡單的調⽤了系統合約轉⾛了⽤戶的 SOL,因此⽤戶簽名批准了對惡意合約的交易,這個簽名也擴散到了系統合約,因此判定有效。

結論

在 Solana 中,不要輕易確認或者批准任何來歷不明的交易,因為它可以拿你的簽名代表你做任何事情。

📍相關報導📍

Solana風波 | Jump Crypto霸氣注入12萬顆ETH恢復Wormhole運作;Bonfida回應rug爭議

Rex解析 | Solana 跨鏈橋 Wormhole 的被盜過程紀錄:這個鍋誰該來扛?

Solana創辦人駁停機說法!認網路性能下降是「成長期必經痛苦」


讓動區 Telegram 新聞頻道再次強大!!立即加入獲得第一手區塊鏈、加密貨幣新聞報導。

LINE 與 Messenger 不定期為大家服務

加入好友

加入好友

Tags: Solana授權還是惡意釣魚釣魚網站


關於我們

動區動趨

為您帶來最即時最全面
區塊鏈世界脈動剖析
之動感新聞站

訂閱我們的最新消息

動區精選-為您整理一週間的國際動態

戰略夥伴

Foresight Ventures Foresight News

主題分類

  • 關於 BlockTempo

動區動趨 BlockTempo © All Rights Reserved.

No Result
View All Result
  • 所有文章
  • 搶先看
  • 市場脈動
  • 商業應用
  • 區塊鏈新手教學
  • 區塊鏈技術
  • 數據洞察
  • 政府法規
  • RootData
  • 登入

動區動趨 BlockTempo © All Rights Reserved.