區塊鏈技術資源分享
追尋中本聰先生的腳步

防止nft被盜以太坊-Premint合約授權盜nft-合約交互方法@白皮襖日記@0xAA科學家@web3教學@慢霧科技

Premint 網站都能被黑,這其實是出乎我意料的,說明現在黑客的技術真是越來越強大了,所以在Web3黑暗森林里,最好還是學點基本的防身術。

首先,最最基本的,得先學會使用小狐貍,小狐貍每次操作都會顯示交互的合約、交互方法、花費的Gas以及花費的eth value,你可以不會看合約代碼,但是基本的交互細節,以及區塊瀏覽器的使用,這種真的是最基本的了,假如你連這些都不愿意去學,我只是說被騙是你命中一劫,逃不過的。

時至今天,我發現還有很多玩家都不會看區塊瀏覽器,這是很不應該的,這東西一開始不會看是很正常的,但是看久了用多了,都不需要教程,自然而然的就明白了,不能因為一開始看不懂就不去學。而且區塊瀏覽器看多了,你會開始掌握最基本的鏈上分析能力,一個NFT和一個代幣的籌碼分布是怎樣的,團隊有沒有作惡等等,再比如之前的Hashflow 奧德賽跨鏈交易量前100名獎勵HFT的比賽,你要是精通瀏覽器,你甚至可以知道多少跨鏈金額可以讓你穩穩進入前100,這些都是多學多用的好處。

再說回小狐貍交互這塊,每次操作前,首先先看花費的eth value是不是與你預期的一致,比如有些項目說是freemint,結果要你0.1eth,這不是妥妥的騙局嗎?再看交互的方法,set approve 和 set approve all 這種方法一般是授權某個NFT或者某個ERC20代幣,遇到授權就要格外小心了,一般什么項目才要你的授權,需要轉移你資產的項目才要授權,比如opensea你不給授權它怎么把你的NFT賣給對方,比如DEFI,你不給授權,沒法Swap和借貸,那么今天這個premint,它就是個抽獎網站,邏輯上來說是不可能要你的NFT授權的,就算賣Pass卡也是要ETH而不是授權。

學會看交互方法和eth value,Dis里的眾多騙局也騙不到你了,他們要么想要授權,要么想要你的eth,再不濟要你輸入私鑰和助記詞,如果這也能被騙,那只能說是買教訓了。

看完交互的eth value和交互方法后,如果遇到令人感到奇怪的操作,建議去看看交互的合約,看看這個合約的transcation,合約一般都在干嘛,所以說還得先學會看區塊瀏覽器。最后看看Gas value,Gas value因為跟項目方沒啥關系,所以基本不會作惡,只要花費的Gas你覺得能接受就行,一般沒啥問題。

最后說說簽名,簽名這塊是不需要Gas操作的,在瀏覽器上也看不出來,有時候有人說簽名會導致資產被盜,但是我不太相信,因為沒有走授權這部需要Gas的操作,所以基本上的簽名,我也會大概看一下簽名信息,還是小心駛得萬年船,如果真給我遇到了簽名導致資產被盜的案例,我再來復盤一下原理。

以前我剛玩鏈上,因為很多東西不懂,又怕黑客偷錢,特別剛進幣圈的時候還挺窮的,所以有時候主錢包都不敢連接網站,怕被盜,但是后來隨著掌握的知識增加,開始明白很多操作的原理,在鏈上操作也不擔心被盜了,至今也沒有一次被盜的案例,想要不被盜,上面我說的東西務必掌握,要是實在不放心,大額放頭部交易所是最安全的。

https://weibo.com/5901325826/LCJ7QymYv

回答下粉絲關于授權被盜的相關問題:
1. 只能轉走這條鏈授權了的erc20代幣,沒授權的幣和nft沒法轉走。
2. NFT(ERC721)的ApproveForAll授權(批量授權),黑客只能盜走該系列下你的NFT,沒授權的其他系列NFT和ERC20代幣都不會丟。
3. ETH不是erc20代幣,沒法騙授權。

一般要是錢包里的eth,代幣,還有NFT一起丟了的情況,屬于私鑰丟失,不是被騙授權。

@0xAA科學家

https://weibo.com/1794561274/LCL1Dz5Jo

Premint 惡意代碼注入攻擊細節分析

本文來自慢霧區伙伴 Scam Sniffer 的投稿,具體分析如下:

攻擊細節

打開任意 Premint 項目頁面,可以看到有個 cdn.min.js 注入到了頁面中,看調用棧該 js 是由 [boomerang.min.js](https://s3-redwood-labs.premint.xyz/theme/js/boomerang.min.js) 注入,目前該 s3-redwood-labs-premint-xyz.com 域名已經停止解析,無法正常訪問了。

640

查詢 Whois,該域名在 2022-07-16 注冊于 Tucows Domains Inc:

640-9

打開 virustotal.com 可以看到該域名之前曾解析到 CloudFlare:

640-10

打開源代碼可以看到 boomerang.min.js 是 Premint 用到的一個 UI 庫:tucaod.com@區塊鏈神吐槽

640-11

該 js 是在 s3-redwood-labs.premint.xyz 域名下,猜測:

  • 上傳文件接口有漏洞可以上傳任意文件到任意 Path (比較常見的 Web 漏洞)
  • 黑客拿到了他們這個 Amazon S3 的權限,從而可以注入惡意代碼
  • 這個第三方庫被供應鏈攻擊污染了

把 boomerang.min.js 代碼下載下來,前面都是正常的代碼,但是末尾有一段經過加密的代碼:

640-12

這段代碼負責把代碼 s3-redwood-labs-premint-xyz.com/cdn.min.js 注入到頁面。

惡意代碼 cdn.min.js

640-13

圖片

圖片

根據代碼內容,可以大致看到有通過調用 dappradar.com 的接口來查詢用戶的 NFT 資產列表(此前我們也有看到惡意網站通過 Debank,Opensea 的 API 來查詢用戶資產等)。

如果用戶持有相關 NFT 資產:

640-14

圖片

惡意代碼會以 Two-step wallet 驗證的借口,發起 setApprovalForAll 讓用戶授權給他們后端接口返回的地址(攻擊者一般為了提高封禁成本,基本上會分流并且每個地址控制在 200 個交易內)。

如果用戶點了 Approve,攻擊者還會調用監測代碼通知自己有人點擊了:

640-15

如果當用戶地址沒有 NFT 資產時,它還會嘗試直接發起轉移錢包里的 ETH 的資產請求:

640-16

另外這種代碼變量名加密成 _0xd289 _0x 開頭的方式,我們曾經在 play-otherside.org,thesaudisnfts.xyz 這些釣魚網站也見到過。

根據用戶資產發起 setApprovalForAll 或者直接轉移 ETH,并且阻止用戶使用開發者工具 debug。

預防方式

640-17

那么作為普通用戶如何預防?現階段 MetaMask 對 ERC 721 的 setApprovalForAll 的風險提示,遠沒有 ERC20 的 Approve 做得好。

640-18

即使很多新用戶無法感知到這個行為的風險,但我們作為普通用戶看到帶 Approve 之類的交易一定要仔細打開授權給相關地址,看看這些地址最近的交易是否異常(比如清一色的 safeTransferFrom),避免誤授權!

這種攻擊和上次 Etherscan 上 Coinzilla 利用廣告注入惡意的攻擊方式挺相似的,那么在技術上有沒有可能預防?

640-19

理論上如果已知一些惡意 js 代碼的行為和特征:

  • 比如說代碼的加密方式
  • 惡意代碼關鍵特征
  • 代碼會反 debug
  • 會調用 opensea, debank, dappradar 等 API 查詢用戶資產

根據這些惡意代碼的行為特征庫,那么我們可以嘗試在客戶端網頁發起交易前,檢測頁面有沒有包含已知惡意特征的代碼來探測風險,或者直接更簡單一點,對常見的網站設立白名單機制,不是交易類網站發起授權,給到足夠的風險提醒等。

接下來 Scam Sniffer 和慢霧安全團隊也會嘗試探索一下如何在客戶端來預防此類的攻擊發生!

Ps. 感謝作者 Scam Sniffer 的精彩分析!

慢霧科技

微信號
SlowMist
功能介紹
慢霧科技是一家專注區塊鏈生態安全的公司,成立于2018年初,總部位于廈門,主要通過“威脅發現到威脅防御一體化因地制宜的安全解決方案”服務了全球許多頭部或知名的項目,已有商業客戶上千家,客戶分布在十幾個主要國家與地區。

https://mp.weixin.qq.com/s/MCfUYiTKuOlZpMKj9jzDrQ

分享到:更多 ()
靠譜免費最好的手機挖礦app推廣 手機挖礦微信群聯系方式

來評論吐槽 搶沙發

  • 昵稱 (必填)
  • 郵箱 (必填)
  • 網址

區塊鏈資源分享聯系我

聯系我更多手機免費挖礦APP
日本卡一卡二新区入口404_国产精品酒店在线精品酒店_天堂www在线资源天堂_小老弟视频在线观看