據著全球 66% 市場份額的 Chrome 瀏覽器居然存在一個巨大的安全漏洞!

文章:@Buidler DAO

作者: @菠菜菠菜

編排: @Coucou

封面: Photo by Joan Gamell on Unsplash

隨著美聯儲不斷加息縮表,加密市場流動性不斷減少,市場活躍度持續低迷進入熊市。作為市場上僅剩的這些 “流動性” 也就是我們這些韭菜的錢包也成為了騙子們虎視眈眈的對象。加密世界是個黑暗森林, Crypto 帶來財產所有權的同時也意味著一旦財產丟失或私鑰洩露是幾乎沒有任何法律途徑或方法可以挽回。

為什麼寫這篇文章呢?

因為菠菜的錢包被盜了,資產幾乎被洗劫一空,諷刺的是,作為一個寫過錢包安全相關的科普文章的老韭菜也翻車了。

雖然失去了陪伴許久的錢包和內部資產,但遭遇這件事情后菠菜真真切切感受到了社區的溫暖,並且得到了許多 “家人們” 的關心和幫助,甚至在社區一位小伙伴的幫助下在黑客手裡搶救回來了近 30 個僥倖存活下來的 NFT(不是已經被盜走的 NFT)。雖然損失的資產無法找回了,但在本次 “菠菜錢包被盜事件” 中,有許多經歷是可以科普的,希望這篇文章可以給行業提供一個受害活案例並給其他小伙伴敲響警鐘,防止 “慘案” 再次發生。

全文 4400 字,預計閱讀時間 11 分鐘

文章速覽👀

01/ 我的錢包是如何被盜的?

02/ 黑客是如何拿到我私鑰的?

03/ 我是如何在黑客手裡搶救 NFT 的?

04/ 如何實現同一區塊完成所有操作?

05/ 什麼是 MEV?MEV 給以太坊帶來什麼影響?

06/ 寫在最後

我的錢包是如何被盜的?

某天,推特上有一個人私信我,起初我並沒有提起警覺,因為騙子的 Twitter 賬號看起來像是一個正常用戶。開始只是進行了一些閒聊,之後他開始問我是否願意為 cheelee 這個項目輸出內容並支付我報酬,且索要了一些我的作品進行驗證,於是我把我的 telegram 給到了他,之後便在 telegram 上給我發了關於如何輸出內容的一些細節和兩個文件。下載並點擊文件後什麼都沒有發生便意識到不對勁,於是打開小狐狸查看,不出所料,錢包被盜,所有的資產都被盜走,NFT 也被直接賣給 offer 換成 ETH 轉移。(只能說菠菜想賺點外快大意了,其實陌生人在 tg 上發文件的時候就應該警惕起來的)。

黑客是如何拿到我私鑰的?

我的私鑰加密保存在 Chrome 的小狐狸中,黑客是如何獲取到我的私鑰的?這得從 Chrome 這個瀏覽器說起:你敢想像嗎?這個佔據著全球 66% 市場份額的 Chrome 瀏覽器居然存在一個巨大的安全漏洞!這個漏洞是什麼呢?如果你在下圖路徑打開你的 Chrome 瀏覽器的 Default 文件夾,你會發現一個叫 Login Data 的文件,這個文件存儲著你在 Chrome 上保存的每一個密碼,但如果你想直接打開去讀它的話你會發現它是不可讀的,顯示的是一堆亂碼,因為這個文件被 AES 算法加密過,暴力破解需要破到天荒地老,那麼其實你在 Chrome 上保存的密碼都是十分安全的,但問題出在哪?

如果你再往前翻一個目錄在 User Data 中你會發現這樣一個文件叫 Local State,如果你打開他之後在裡面搜索 “encrypted”,你會發現後面有一串密鑰,這個密鑰是什麼?就是需要暴力破解幾百年才能破解的 Login Data AES 算法解密的密鑰串!!!這真是離譜他媽給離譜開門,離譜到家了!這相當於什麼?

相當於你用世界上最堅固的材料做了一個牢不可破的保險櫃存放密碼但你卻把保險櫃鑰匙放在保險櫃旁邊,賊進來就直接拿著鑰匙打開保險櫃了!並且這串密鑰串還是通過 Windows 系統本身的密碼生成工俱生成的,與生成的電腦 ID 是唯一綁定關係,也就是說加密解密都只能在這台電腦上進行,Chrome 把解密的密鑰串就這麼明文保存在了本地,這樣黑客只需要拿著密鑰串進行解密就可以拿到我的所有密碼。

MetaMask 的密碼並不保存在 Chrome 的密碼文件中,為什麼我的私鑰會洩露呢?因為我的 MetaMask 用的密碼跟我的習慣密碼是一個密碼,黑客拿到了習慣密碼後進入 MetaMask 還不是分分鐘的事情,於是乎,我的私鑰洩露了。不僅如此,所有存在 Chrome 瀏覽器上的賬戶都洩露了,甚至 Twitter 和 Google 賬戶全部遭到了凍結。

我是如何在黑客手裡搶救 NFT 的?

在錢包被盜後,黑客在 OpenSea 上賣出了所有帶有 offer 的 NFT 並轉移走了所有的資金,萬幸的是有一些 NFT 倖存了下來,其中除了 ENS 和一些沒 offer 的 NFT 外,有一個剛 mint 不久的 DeBox 小蛇沒有被賣掉,可能因為 Opensea 上存在一些 BUG,這個 NFT 是我另外一個白單地址 mint 完後轉過去的,不知道什麼原因沒有被顯示出來,這使得它逃過了一劫,於是乎當我嘗試往錢包中轉 gas 的時候,我發現我的錢包遭遇了 “清道夫攻擊”,也可以稱為搶 gas 機器人,我轉進去的 Gas 費被瞬間轉走了!

什麼是搶 Gas 機器人?就是一旦你往錢包中轉 Gas 費,機器人就會立馬檢測到並將 gas 立馬轉移走,這類機器人通常活躍在被洩露私鑰的錢包中。這個機器人也活躍在一種故意洩露私鑰的騙局,就是騙子會故意洩露一個錢包裡面有 U 的錢包私鑰,但這個 U 是被合約拉黑了的無法轉走,騙子盯上的就是你企圖轉走而往裡面轉的 Gas,下圖就是一個案例(在 Tron 鏈上),感興趣的小伙伴可以進去看看,但別往裡面打 Gas 噢。

我的錢包在被搶 gas 機器人盯上之後就意味著我無法轉移走我倖存的那些 NFT,因為我沒辦法在錢包中轉入 gas 去支付我轉移走 NFT 的操作,難道說我的 NFT 要永遠被困在錢包裡了嗎?就在這一籌莫展之時,社區的力量體現出來了,Buidler DAO 社區中有一位小伙伴站了出來幫助我在搶 gas 機器人手中把倖存的 NFT 給搶回來了

人間有真情人間有真愛!!!

那麼這位小伙伴到底是怎麼做到的呢?

首先讓我們看看手動情況下需要多快時間可以在搶 Gas 機器人前面轉走我的 NFT,在區塊鏈瀏覽器中可以看到當我轉進去 gas 費(區塊高度 16387987),搶 gas 機器人在三個區塊之後(區塊高度 16387990)將所有 gas 轉移走了,在以太坊合併後 POS 權益證明機制中一個區塊的出塊時間固定為 12 秒一個區塊,那這是不是意味著我只要在前兩個區塊(24 秒內)操作就可以快過機器人了呢??這樣想就太天真了,如果是這麼慢的速度那就都不好意思叫機器人了。

在以太坊中,一筆交易的處理速度取決於你支付了多少 Gas 費,如果你想交易被更快的處理就需要支付更多的 Gas 費,Gas 費的均價會隨著以太坊的交易需求量而變化,如果按照正常情況下的 Gas 費用來算的話,處理一筆交易所需要的時間大概為 30 秒,這就意味著我如果想在搶 Gas 機器人搶走 Gas 之前把 NFT 搶救走就需要在 36-30=6 秒之內完成我的操作,這幾乎是一個不可能完成的事情,因為我即便是在看到 Gas 到賬後的第一時間就去轉 NFT,Metamask 彈出界面的時間差不多就已經 6 秒了,那麼要如何做到在 Gas 機器人轉走 Gas 之前就把 NFT 轉移走呢?

答案就是在同一個區塊內完成往錢包裡轉 Gas 和轉走 NFT 的操作,這樣機器人就無法把 Gas 搶走了,因為機器人需要不停監控區塊鏈瀏覽器來確認是否有 Gas 費轉進錢包,如果在一個區塊內完成了所有操作機器人即便檢測到了區塊,我也已經把 NFT 轉走並且沒有留下多餘的 Gas 給機器人轉了。

如何實現同一區塊完成所有操作?

這就需要使用到 Flashbots 的 searcher-sponsored-tx 功能,這個功能大部分都被用在私鑰洩露被機器人監控的錢包上。

懂技術的小伙伴可以直接在 Github  上查看:

https://github.com/flashbots/searcher-sponsored-tx

Flashbots 的這個功能支持一個錢包轉 Gas 給另外一個錢包的同時附帶交易事務,也就是同一區塊完成所有操作,在區塊鏈瀏覽器中可以看到轉入 Gas 和調用合約都在 16388251 這個區塊中完成。

順便提一下什麼是 Flashbots,Flashbots 是一群關注區塊鏈的研究人員、Buidler 和白帽人士組成的研究組織,致力於減輕最大可提取價值 (MEV,Maximal Extractable Value) 對有狀態區塊鏈(比如以太坊)帶來的負面外部性。

什麼是 MEV?MEV 給以太坊帶來了什麼影響?

最大可提取價值 (MEV) 是指通過在區塊中添加和排除交易並更改區塊中的交易順序,可以從區塊生產中提取的超過標準區塊獎勵和燃料費用的最大值。怎麼理解呢?舉個例子,首先我們要知道在以太坊中一個交易發起後,這筆交易會被放在 mempool(一個保存待執行交易的池子)中等待被礦工打包,那麼礦工就可以看到 mempool 中的所有交易,而礦工的權利是很大的,礦工掌握了交易的包含、排除和順序。如果有人通過支付更多的 Gas 費賄賂礦工調整了交易池中的交易順序而獲利,這就屬於一種最大可提取價值 MEV。

你可能在想礦工換一個交易順序怎麼就可以獲利了呢?

有一種 MEV 手段叫 “三明治攻擊” 或 “夾子攻擊”,這種提取 MEV 的手段是通過在鏈上監控大額的 DEX 交易,比如有人想在 Uniswap 上購買價值 100 萬美金的山寨幣,而這一筆交易會將這個山寨幣的價格拉高很多,在這筆交易被放入 mempool 的時候,監控機器人就可以檢測到這一筆交易,這時機器人就賄賂打包這個區塊的礦工將一筆買入這個山寨幣的操作插隊在這個人前面,隨後在這個人的購買操作之後進行一個賣出的操作,就像一個三明治一樣把這個進行大額 DEX 交易的人夾在中間,這樣發動 “三明治攻擊” 的人就從中獲取了山寨幣因為這個人大額交易拉盤的利潤,而大額交易的這個人則造成了損失。

除此之外,獲取 MEV 的手段還包括 DEX 的套利,清算機器人等等,MEV 的存在也一直給以太坊帶來一些負面的影響,比如 “三明治攻擊” 給用戶帶來的損失和更差的用戶體驗、搶跑者競爭導致的網絡擁堵和高 Gas 費等,甚至的一定程度上威脅到了區塊鏈的完整性,截至 2023 年 1 月,MEV 帶來的利潤已經達到了 6.8 億美元。

數據來源:https://explore.flashbots.net/

Flashbots 的出現照亮了 MEV 這個黑暗森林, Flashbots 在 MEV 上做了許多的研究並開發了一些產品在一定程度上減少了 MEV 給以太坊帶來的負面影響,雖然 Flashbots 無法解決 MEV 帶來的問題,但在以太坊的新分片方案 Danksharding 中以太坊提出了一種新的機制來解決 MEV 問題(預告一下這也是我下一篇文章會寫的內容),如果對 Flashbots 和 MEV 感興趣的小伙伴可以查看以下鏈接。

以太坊官方對於 MEV 的介紹

https://ethereum.org/zh/developers/docs/mev/#mev-extraction-flashbots

Flashbots 的官方網址

https://www.flashbots.net/

最後有什麼想說的嗎?

錢包被盜後看到所有的加密資產和喜歡的 NFT 都沒了之後心裡十分難受的,身子最喜歡的 DeBox 一家子都沒了。感謝社區的小伙伴在知道後一直陪著我幫我出謀劃策,甚至搶救完 NFT 後 DeBox 項目方空投給菠菜一個 NFT 作為安慰,DeBox 真的是一個有溫度的團隊,瘋狂打 Call,。

關於錢包安全問題真的不可以大意,在此之前我也從未想過自己會成為被盜者之一。文章臨近截稿時看到一個 KOL NFT GOD 的錢包也遭遇到了黑客攻擊失去了所有的資產,並且所有的社交帳戶都洩露被利用發了詐騙信息,原因是下載了谷歌廣告鏈接中的虛假軟件,類似於曾經的假 TP 錢包騙局,所以,千萬不要下載任何來自陌生人的文件,下載所有軟件的時候也一定要確認一遍是否是官方網址。

除此之外,加密資產一定不要都放在熱錢包中,資產放在冷錢包中一定是最安全的,Metamask 的密碼也最好不要使用習慣密碼,因為 Chrome 上的 Metamask 插件不是絕對安全的,一定一定要去學習錢包安全的相關知識。

如果屏幕前的你也遇到了跟菠菜一樣的狀況,錢包被盜後裡面還倖存一些可能對你來說有意義的 NFT,但是錢包被搶 Gas 機器人盯上了,可以關注並私信這位幫我搶救成功的小伙伴推尋求幫助 @Tom16013Tom1601 ,別忘了一些辛苦費喲!

免責聲明:作為區塊鏈信息平台,本站所發布文章僅代表作者及嘉賓個人觀點,與 Web3Caff 立場無關。文章內的信息僅供參考,均不構成任何投資建議及要約,並請您遵守所在國家或地區的相關法律法規。