原文標題:《技術|從一個錢包被盜的案例,探討Web3的安全指南》
原文來源:阿法兔研究筆記
原文作者:Chris阿法兔
事件
2022年元旦假期的某個早上,小C準備寫代碼,繼續測試Web3js的鏈上合約交易。突然發現自己的測試賬號在MetaMask歸零了,明明前一晚賬戶內還有100usd,然后查完轉賬就發現:
錢都沒了,錢哪去了?
背景
技術出身的小C,最近在學習區塊鏈開發。本身是專業開發者,已經很謹慎小心了,通常都是在測試網絡上跑,跑完之后,再會去正式網絡上部署,但是沒有意識到整個產業目前還處在相對混亂的階段,麻痹大意,順手習慣導致造成了損失。
損失是如何造成的?
2021年的最后一天,小C偶然看到一個賬號很有趣,就追蹤了他的一些鏈上交易,然后看到了一個非常有意思的項目,然后就鬼使神差地連上了自己的MetaMask,然后鬼使神差的進行了approve,因為一般Web3的項目就是這個流程,approve然后轉賬就結束了。
但是令人驚呆的一幕出現了:點完之后,整個網站突然卡死了,沒有任何反應,小C當時沒當回事,把站點給關了,去做其他事情了。
數字藏品周指數上漲3.8至55.3:金色財經報道,據同伴客數據顯示,上周(2023年3月21日-3月27日)數字藏品國際周指數下跌4.4點至14.2點,國內周指數上漲16.3點至116.9點,數字藏品綜合價值周指數上漲3.8至55.3點。
備注:
· 數字藏品綜合價值指數由同伴客數據與鏈境Labs聯合研發,是對國際及國內當月市場熱度最高的數字藝術品項目市場總銷售規模的綜合反映,以2021年11月份銷售額的30分之7為基數,指數基值為100。
·國內周指數成分之一的幻核于8月16日發布平臺終止運營公告,但銷量已于7月10日后歸零。為遵循去掉某一成分后指數計算結果無變化的原則,該指數使用幻核7/4-7/10的銷售數據進行銷售基數調整,并將新的銷售基數作為8/14后的指數計算基數。[2023/3/27 13:29:06]
過了大概一天,小C重新回來開發的時候,發現賬上的錢全部沒有了,去查了歷史記錄,發現賬上的余額已經被全部轉走。
回顧過程
盜取者是怎么把小C賬戶上的錢都轉走的?
現象:只要你approve了,不需要私鑰理論上也可以把對應的錢全部轉走。
小C進行了下溯源,大概是在一個釣魚網站的approve出了問題,于是追溯該轉賬記錄。
Aave社區提議上半年為Aave Grants DAO提供325萬美元預算:金色財經報道,Aave 社區提議在接下來的兩個季度為 Aave Grants DAO 提供 325 萬美元(每季度 162.5 萬美元)的預算。這是 Aave Grants DAO 的第四個提案。該提案已在 Snapshot 上進行投票,投票結束日期為 1 月 13 日。
Aave Grants DAO是一個由社區主導的贈款計劃,專注于通過資助有利于 Aave 生態系統的想法、項目和活動,在 Aave 內部建立一個繁榮的貢獻者生態系統。[2023/1/8 11:01:00]
如圖,可以看到,先是approve了一個合約,授權了釣魚合約能夠對賬號里面BUSD進行操作,而且是沒有數量限制的。
為什么會是BUSD呢?小C回憶了一下,一進入這個釣魚站點是默認選了BUSD,估計在瀏覽站點鏈接錢包之后,盜取者就已經篩選了出了賬號里面錢最多的token了。
然后當小C以為這是一個新的swap合約,并且有很高的年化收益,準備先試試的時候,按照常規流程就進行approve。approve結束后,網站直接卡了。
網龍任命國內首位虛擬人CEO:金色財經報道,近日,網龍公司通過其官網發布公告稱,旗下子公司福建網龍計算機網絡信息技術有限公司任命首位虛擬數字人高管唐鈺出任輪值CEO。虛擬數字人擔任CEO,這在國內尚屬首次。從相關通告可以看到,這位虛擬數字人高管唐鈺已經不是第一次擔任要職了,此前也曾擔任過網龍副總裁。另外,此次任命消息下方還附帶了唐鈺致網龍員工的公開信,信中表示她在未來將承擔兩方面的職責——對外為元宇宙組織發聲,披露網龍公司戰略和成果;對內繼續推行“AI+管理”模式,提升組織效率。[2022/8/30 12:57:37]
后來經過追溯,大概在授權之后幾十秒,合約就直接觸發了一個轉賬操作,直接把BUSDtoken給轉走了。
后來去查了一下授權的信息
基本上MetaMask默認授權的時候是:
轉換成數字,我們認識的就是1.157920892373162乘以10的59次方。基本上就可以理解為無限量轉賬了,也就是這個授權的操作,可以讓這個合約無限量的操縱我賬號的token。看到這里感覺背后一涼,因為以前點過很多次approve都是不會去看的。
Future House Studios將其辦公室契約鑄造為 NFT:金色財經報道,總部位于美國猶他州的虛擬現實公司Future House Studios將其辦公室契約鑄造為 NFT,這標志著辦公樓首次被置于區塊鏈上。
Future House Studios 通過 TruMint 使用了一種新的法律模式,允許不動產在區塊鏈上無限期地保留和交易,同時降低交易成本。?(thetitlereport)[2022/7/5 1:53:03]
然后黑客操縱一個可以控制這個合約方法的錢包地址,就發起合約轉賬方法,把錢轉走了。所以小伙伴之后點metamask授權的時候一定要小心。
小C查了下,盜取者現在這個賬號里大概已經有了3w美金的token了,現在還有源源不斷的受害者在轉錢。但是面對區塊鏈沒有辦法,根本無法找不到這個黑客是誰。
出現問題的環節
問題到底出在哪里?
因為最近在學習區塊鏈。小C大概理了一下這個釣魚的邏輯方式,害人之心不可有,防人之心不可無。大家有興趣可以了解一下:
正常轉賬
案例一:直接用戶間轉賬A用戶向B用戶轉賬BUSD
合約正常會檢查以下邏輯
Ronin攻擊者相關地址7次陸續轉出超 2.3萬枚ETH:據歐科云鏈鏈上天眼監測顯示,Ronin Network 攻擊者相關地址(12 天前由攻擊者地址轉入23528 枚)于北京時間 5 月 18日 10:33:32 轉出地址下5505.7枚 ETH,當前地址余額基本清零。據OKLink ETH瀏覽器顯示,該相關地址從5月14日17:06:07開始,陸續轉出7次,累計轉出23,525.5枚ETH(約4900萬美元),轉出后再以100 枚 ETH/筆的數量轉入Tornado.Cash。[2022/5/18 3:24:00]
1)判斷A用戶賬戶余額是否有足夠的錢;2)是否是A用戶發起的轉賬
流程如下圖
正常合約兌換
就是我們平時使用pancakeswap、uniswap等兌換時候的流程
案例二:通過swap進行token兌換A用戶進行token兌換流程合約進行判斷:
1)A用戶賬戶余額是否有足夠的BUSD,
2)swap合約取A賬戶下的500BUSD放入swap的合約池中
3)成功后合約再向A賬戶轉入1BNB
注意第2、3點,是由合約控制token進行操作。那么也就是說合約可以繞過我們直接發起對我們賬號下的token的操作。
釣魚合約
先看這張溯源圖
正常的轉賬,轉賬方和合約執行的轉賬方應該是同一個人,即上圖與應該是由同一個人發起的。而我被轉賬的這筆交易,這兩個不是同一個地址。推測應該是由一個可以執行釣魚合約的錢包地址控制執行了合約,然后將我授權給釣魚合約里的BUSD轉走了。
去查看釣魚合約,不出意料釣魚合約是一個加密的合約。不過想一下也不難,稍微學過Solidity的人都知道,在合約定義的時候,多設置幾個Admin或者Owner就可以了。
所以以后一定要注意項目方的背書,不要隨便給不知道的項目授權!!!
安全建議
因為這件事,小C搜了一些有用的建議和方法,也看到了很多血淋淋的教訓。
這里列出來一些方法大家可以根據自己的需要選擇。
1)不要共用密鑰
之前看有帖子說一個助記詞生成多個賬號的,這種我不建議哈,因為很可能被一鍋端。
2)密鑰離線保存
因為現在有很多剪貼板工具輸入法會將你的剪貼板記錄上傳到云端,如果你直接復制了,如果云端泄漏,你的密鑰就直接無了。
我的建議就是生成之后,第一時間抄到本子上。當然抄到本子上,你也可以參考我對密鑰自己的字典加密,比如a用1代替,b用2代替,1用a代替,這樣就可以保證即使有人看到了你的紙質密鑰,也不能動你的數字資產。
3)開發和測試分開
安裝2個瀏覽器,一個可以是chrome,一個是brave。一個管理你的主錢包。另外一個可以參與領取空投,各種鏈上操作等
4)不要下載來歷不明的軟件
不要去用baidu這些下載來歷不明的軟件,我看到有案例是下載盜版metamask,直接破產的。一定要去正規的地址下載,有條件的可以參考googleplay。chromewebstore等
5)立即檢查你的授權
檢查的網址有下面幾個,debank沒有開源,但是UI交互比較好,后續的有開源的,大家自己抉擇吧。
https://debank.com/
https://approved.zone/
https://tac.dappstar.io/
https://ethallowance.com/
看到圖上所示,基本上就是無限的。
每次喚起MetaMask的時候一定要多看看授權,不要像我現在這樣無腦點授權下一步。
6)進行授權前,對合約安全進行確認
https://www.slowmist.com/service-smart-contract-security-audit.html
可以使用慢霧的合約審計功能。
也可以看看該合約是否開源,如果開源的話需要確認該合約是否是可升級合約等等。
7)擼空投和福利的時候注意安全
用小號去領取,別用大號,授權的時候可以設置額度!!!
8)警惕社工的入侵,小心Discord私聊你的陌生人
比如Discord或者Telegram,有人跟你認識幾天,說要帶你賺錢拿空投,讓你安裝他發給你的軟件并登錄,這種99.99%你會血本無歸。賬號被盜。
特別地,Discord里面,進NFT的官方Discord,會有人私聊你,告訴你獲得了白名單,附帶一個mint鏈接。騙子會把頭像和名稱改成官方的樣子,其實是把他和你拉了一個組來實現的。
其實只要不貪,這種騙局還蠻好識破的,一般會告訴你在幾個小時內mint,數量1-10。很多大熱項目一個白名單mint一兩個不錯了,這一上來頂格10個還帶時間限制。
還有,會有騙子模仿項目官網做個假網站,私信給項目Server里的人,讓他們來mint.
還有小伙伴在opensea買了假NFT后來發現不是官方的然后過了幾天那個NFT就從賬戶消失了然而已經扣了...(怎么發現的?看鏈條還有官方discord發了官方Opensea網址)
還有假的collab.land騙錢包密碼,給大v空投然后號稱大v買了那個NFT/token.
新的一年到來,大家一定要注意安全呀,希望看到本文的朋友都能平平安安順順利利!
本文感謝作者Chris
Tags:APPUSDTOKENTOKBitpie最新版appUSDC價格Alkemi Network DAO TokenRouletteToken
作者:黑米,白澤研究院 眾所周知,以太坊是一個正在發生重要變化的區塊鏈網絡。近幾年,去中心化應用程序以及其他區塊鏈技術形式獲得了前所未有的發展,而其中諸多技術均構建于以太坊之上.
1900/1/1 0:00:00鏈捕手消息,俄羅斯的銀行正準備進入數字盧布項目的試點階段,一些銀行已經在測試數字盧布交易。試點從C2C支付開始,俄羅斯央行計劃在未來擴大業務類型。塔斯社報道稱,俄羅斯央行完成了數字盧布的原型.
1900/1/1 0:00:00作者:萬向區塊鏈 Web3時代里,社交和創作者經濟將是全新的模式,同時一個全新的組織模式“DAO”也將隨之興起.
1900/1/1 0:00:00鏈捕手消息,據TechCrunch報道,Reddit正在測試一項功能,允許用戶將NFT設置為頭像并驗證所有權.
1900/1/1 0:00:00鏈捕手消息,烏克蘭官方推特發推表示,現已接受比特幣、以太坊和USDT在內的加密貨幣捐贈,并公布了相應捐贈地址。烏克蘭還呼吁稱,“在我們保衛自己免受俄羅斯侵略時,與烏克蘭人民站在一起.
1900/1/1 0:00:00撰文:Wangarian,DeFianceCapital合伙人編譯:深潮TechFlow目前,加密貨幣代表著技術創新的前沿,這已不是什么秘密.
1900/1/1 0:00:00