OpenSea NFT平臺漏洞竊取用戶加密貨幣
OpenSea NFT平臺漏洞竊取用戶錢包中的加密貨幣。
OpenSea是全球最大的綜合NFT交易平臺,用戶可以在平臺上鑄造、展示、交易、拍賣NFT和其他數字資產,交易量達到34億。近日,Check Point研究人員發現OpenSea平臺中的一個安全漏洞,攻擊者利用該漏洞可以誘使用戶點擊惡意NFT,用戶點擊后就會從用戶加密貨幣錢包中竊取所有加密貨幣。

OpenSea
要在OpenSea上創建賬戶,需要連接到第三方的加密貨幣錢包,就像利用Google或Facebook賬戶登錄其他網站一樣。

默認錢包和最流行的MetaMask,Check Point研究人員在研究中選擇了一個并下載對應的瀏覽器擴展來打開錢包。

然后就有很多的方法來進行通信:

然后錢包就會彈出,錢包可以通過json-rpc來與以太坊網絡進行通信:

OpenSea允許任意用戶創建和交易NFT藝術品,最終生成的藝術品擴展可以是:JPG、PNG、GIF、SVG、MP4、WEBM、MP3、WAV、OGG、GLB、GLTF,文件大小限制為40 MB。

漏洞分析
研究人員在OpenSea平臺上發現一個安全漏洞,攻擊者利用該漏洞可以劫持用戶賬戶,并竊取關聯的加密貨幣錢包中的加密貨幣。
攻擊方法也非常簡單,只要創建一個含有惡意payload的NFT,等待受害者點擊和查看即可。還會在SVG圖像中加入一個iframe來加載HTML代碼,該代碼會注入打開與受害者以太坊錢包通信所需的window.ethereum。

研究人員上傳含有惡意JS代碼的SVG圖像,然后用戶在新tab頁點擊后,就會注意到該文件在storage.opensea.io 子域名執行。


在該攻擊場景中,受害者用戶在點擊來自第三方的NFT圖像文件后被要求登入錢包,這對OpenSea來說屬于異常行為,因為這與OpenSea平臺提供的服務是不相關的。
濫用錢包功能是通過以太坊RPC-API來完成的,API會開啟與MetaMask的通信,并打開連接到錢包的彈窗。

然后攻擊者需要受害者與合法的彈窗窗口進行交互,所以可以以受害者身份來執行動作。

OpenSea NFT觸發連接到MetaMask的彈窗
Check Point研究人員將攻擊流程總結如下:
?黑客創建一個惡意NFT,并以禮物的形式發送給目標受害者;
?受害者查看惡意NFT,這會觸發來自OpenSea存儲子域名的彈窗,請求連接受害者的加密貨幣錢包;
?受害者點擊連接到錢包并對NFT進行操作,使得攻擊者可以訪問受害者的錢包;
?受害者可以觸發其他來自OpenSea存儲域名的彈窗來獲取受害者錢包中的加密貨幣。
Check Point已于9月26日將這一安全問題報告給了OpenSea,OpenSea已經提出了解決方案,并稱沒有發現利用該漏洞的情況。但建議社區應用最佳安全實踐,尤其注意垃圾郵件和釣魚郵件。
更多技術細節參見:https://research.checkpoint.com/2021/check-point-research-prevents-theft-of-crypto-wallets-on-opensea-the-worlds-largest-nft-marketplace/