動區動趨-最具影響力的區塊鏈新聞媒體
  • Home
    • Home Layout 1
    • Home Layout 2
    • Home Layout 3
  • Browse
    • News
    • Movie
    • Music
    • Technology
    • Howto & Style
    • Entertainment
    • Gaming
  • Features
    • Youtube Video
    • Vimeo Video
    • Dailymotion Video
    • Self-hosted Video
    • User Profile
    • Playlists
    • User-created Playlist
    • Favorite Playlist (Private)
    • Watch Later Playlist (Private)
    • All JNews Features
No Result
View All Result
  • Login
  • Register
UPLOAD
動區動趨-最具影響力的區塊鏈新聞媒體
No Result
View All Result
Currently Playing

ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點

ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點

ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點

搶先看
ABS獨家專訪》Gate.io CEO韓林:無懼銀行進軍加密服務,台北特別有人情味

ABS獨家專訪》Gate.io CEO韓林:無懼銀行進軍加密服務,台北特別有人情味

搶先看

6 Sci-fi Gadgets in Movie We Wish Actually Existed

Movie

The 10 best games to play on your new PlayStation 4

Gaming

Tesla’s Chinese factory just delivered its first cars

News

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

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

 

前

兩天,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 不定期為大家服務

加入好友

加入好友

No Result
View All Result

近期文章

  • 精選文章搶先看!動區登入Access質押訂閱服務,解鎖寶貴資訊快人一步
  • ABS獨家專訪》Gitcoin共同創辦人Scott:台灣是現實與Web3治理的重要交匯點
  • ABS獨家專訪》Gate.io CEO韓林:無懼銀行進軍加密服務,台北特別有人情味
  • 快訊!BTC 現在已來到 58996.2
  • 快訊!BTC 現在已來到 58815.03
Next Post
故事|專訪 Matrixport 葛越晟》黯然離開世界最大的挖礦公司,2年內再造一間獨角獸

故事|專訪 Matrixport 葛越晟》黯然離開世界最大的挖礦公司,2年內再造一間獨角獸

Copyright (c) 2019 by Jegtheme.
  • About
  • Buy JNews
  • Request A Demo
  • Contact

Welcome Back!

Login to your account below

Forgotten Password? Sign Up

Create New Account!

Fill the forms below to register

All fields are required. Log In

Retrieve your password

Please enter your username or email address to reset your password.

Log In

Add New Playlist

No Result
View All Result
  • Account
  • BlockTempo Beginner – 動區新手村
  • Change Password
  • Forgot Password?
  • Home 1
  • Home 2
  • Home 3
  • Jin-homepage
  • Latest
  • Login
  • Profile
  • Register
  • Reset Password
  • Trending
  • Users
  • Users List Item
  • 不只加密貨幣,談談那些你不知道的區塊鏈應用|動區新手村
  • 所有文章
  • 關於 BlockTempo

© 2025 JNews - Premium WordPress news & magazine theme by Jegtheme.