對話“加密蝙蝠俠” Samczsun:成為白帽黑客是一種怎樣的體驗?

導讀:Paradigm 的研究合夥人兼安全主管Sam 是一名白帽黑客,通過負責任地披露漏洞和發布教育資源,在加密生態系統中拯救了數億美元。在之前與合夥人Paradigm Dan Robinson 的播客中,Dan 把Samczsun 稱為“加密蝙蝠俠”。每當加密貨幣生態系統中有大量資金處於危險之中,就會發出蝙蝠信號,Samczsun 就會進來幫助挽救局面。

Samczsun 近日在WLD Show 播客中談了自己成為白帽黑客的體驗,以下內容是鏈捕手對本期播客內容的整理:

WLD Show:什麼是白帽黑客?

Sam:從宏觀角度看,它取決於你做事的初衷是好是壞,當然好與壞的定義其實並不客觀,但總的來說白帽黑客會去做好事,阻止一些事件的發生,如果他們進行了攻擊行為,會第一時間進行揭露,通知當事人。但是黑帽黑客就是會帶來消極影響,比如會盜取資金、資產等。灰帽黑客則介於兩者之間,他們可能以善意的名號去進行攻擊行為。所以這其實是一個很模糊的界限,他們確實攻擊了,但是是為了做好事,那這是白帽還是黑帽?但總的來說,是白帽還是黑帽就是取決於你是否做的是好事。

WLD Show:你為什麼選擇成為白帽黑客?

Sam:首先當黑客搶錢也是不容易的,當然這是開玩笑。我從小被教育就是要照顧別人,回饋社群,那現在如果我能給社會做一些貢獻,當然也許結果有好有壞,我就去做了。

WLD Show:幫我們介紹一下黑客的生態系統吧。

Sam:對我而言整個系統的風險很高,就像一個pvp遊戲,當然這是我自己的一個看法,當你發現一個問題或收到問題警報時,你只有幾分鐘,幸運的話有幾小時去處理,這其實很短的時間,然後很有可能黑客就會把錢盜走了。尤其我最近參與的幾個案件中,其實都只有“生死攸關”的幾秒鐘:要么挽救資金,要么資金永遠消失。所以風險是很高的。

如果你想參與這些活動的話:那首先你對區塊鏈安全要有不錯的了解,比如以太坊、智能合約等,然後你就可以開始找新協議、新目標,開始研究和行動。等你一旦找到找到一個漏洞,這個過程就變得非常緊張,“時間就一直在滴答作響”,這是一個心理過程:因為漏洞一直在那,你一旦確認它存在,那一切就都變成“真實可觸”了,整個過程就很很瘋狂,要去趕快找到正確的聯繫人,因為這些數十億的資產能否被拯救就取決於你的知識。

那最大的挑戰就是找到真的開發者,因為這些信息很可能會被攻擊,導致最後錢丟了。那我會覺得這是我的責任:雖然是出於好意,但是開發者沒收到信息,十分鐘後錢還是被盜,雖然法律上可能我不負責,但我自己會覺得是我的責任。所以整個過程是很緊張的。一旦我找到研發人發,我馬上把漏洞交給他們,我就感覺如釋重負。

最難的部分結束了,下一步就是合作解決,看看是否有共同行動的可行措施,能否中斷協議,用管理密鑰拯救資金,或者最壞結果就是直接去拯救資金。我自己是不發送交易的,一個是因為責任問題,一個也是因為我也不想做那個“按下最終按鈕”的人,所以我會告知研發人員,給他們指導,他們會自己發送交易,如果需要我的幫助,那我也會提供幫助。那最終要么我們就是能拯救成功,要么就是出於各種各樣的原因失敗了,這就是一個基本的過程。

WLD Show:很多人發推表示這些救援活動所獲獎金與實際拯救的資金相比其實挺令人失望的。你是怎麼看的呢?

Sam:我覺得這關乎一個問題就是,多少的獎金才算是足夠的?每一方都能有很多論點。但有一個現實問題是,很多項目,它們擁有的資金其實都不是為項目所有的,無論是抽取10%、20%,這些其實都是用戶的資金,所以其實不是程序員和項目可以決定的。當然有的項目有很多資金,也許可以拿出一大部分獎金,但是剩下的超過90%的項目都是沒有這樣大量的資金的。

WLD Show:Web3中白帽黑客與傳統Web2的區別?

Sam:在加密貨幣的世界裡,一切都是瞬間發生的,比如你在DOMpurify中發現一個漏洞, DOMpurify據我所知是用Cure 53寫的項目,用來清理html, 公司用此來確保系統運行,不會受到腳本攻擊, 比如確保前端不會受到跨站腳本攻擊。那比如穀歌受到攻擊,但是用戶還能登入註冊,那這就很糟糕了。

比如說我們現在在DOMpurify中報告出一個漏洞,那麼這是需要很多時間去解決的。首先你能發現一個漏洞的概率就很低,其次發現之後,需要整個的處理過程。在Web2中,這個過程包括比如啟動私人安全郵件列表,打補丁,要求用戶升級依賴性等一系列措施。

但在Web3中,你沒有時間比如去申請相關資格證書等等,10分鐘以內資金可能就會進入新的錢包,20分鐘後,錢包就消失了。與Web2相比,你是沒有比如說6個月來解決問題的。

所以總的而言,Web3中這些事件的發生和處理時間相對更短,但影響則很大。

WLD Show:對,這可能也和代碼開源有關,因為一切都是透明的。

Sam:是的,比如至少在以太坊中,你要加入社群進行參與,你就要擁抱透明,這不同於比如Solana,代碼是不公開的,但至少也會有代碼驗證,一般你能在項目頁面看到指向比如GitHub或Etherscan的代碼驗證鏈接。所以我覺得協議也要做出改變,比如推出緊急補丁。總之以太坊上的安全問題是十分透明的,人人都可以查看發生了什麼。

WLD Show:Paradigm是一家獨特的風投公司,有自己的研究團隊和很多人才比如Dan Robinson,那麼你為什麼要加入這家公司呢?

Sam:其實就是被這裡有才華的人吸引。有一句諺語大意就是說“你要是屋子裡最聰明的人,那也許你該換間屋子。”所以每天能和在各個領域都比我優秀的人才一起工作是我嚮往的。

WLD Show:那麼能否介紹下你加入的過程?

Sam:我之前就和Georgios 和Dan合作過,在他們發布文章“以太坊是一片黑暗森林”後,我就覺得他們的工作做得太棒了。後來就有人聯繫我是否感興趣,當時我還不確定我是否加入,但是通過和團隊的人交談,我覺得這就是一個值得賭一賭的機會。

WLD Show:那你的工作一般是什麼?

Sam:日常工作就是支持投資組合公司的工作,確保他們的代碼正確,比如他們要寫一份智能合約,我就會幫助他們看看代碼,當然我可能沒有時間審閱全部內容,但是就和平時的救援活動一樣,我會過一遍,先挑出最重點的問題。我也會做一些我自己的項目,維護以太坊安全,比如我之前發布了一個用戶友好的四字節簽名數據庫。我也會寫一些博文。但總的來說我作為安全主管,職責就是維護公司安全。

WLD Show:你覺得加入Paradigm這樣的公司有什麼利弊嗎?比如之前你不和公司綁定,也許你有更多的自由,可以選擇項目和自己的工作方式。這樣的節奏會變化嗎?會有所限制嗎?

Sam:不會,我和公司在我加入時就已經有共識,那就是不會有這種限制,比如說不看競爭對手的代碼,那假如發現SushiSwap的漏洞,我們肯定也會進行報告。不過當時現實中它是沒問題的,所以這是個假設。

WLD Show:Dan Robinson的《黑暗森林》描述了恐怖的故事,其中寫道“頂級掠食者”,而你在《逃離黑暗森林》的文章描述瞭如何擺脫這些“怪物”,你可以解釋一些它們是什麼嗎?

Sam:在此之前,甚至是在我聽說“黑暗森林”之前,我就已經遇到過搶跑機器人。我深刻地意識到這件事是多麼複雜,它們不僅要監視三明治攻擊,還要監視任何一種創造利潤的普通交易,然後以某種方式轉換這個待處理的交易,使自己獲利。我們在之後討論瞭如何去欺騙這些bug。

我們想到,它們的運行方式可能是先模擬一筆交易,然後試著確定是否有可以創造的利潤。理論上,如果我們拆分機構行動的邏輯或者添加額外的交易,應該不會導致複雜性的線性增長,可能是指數性的。我無法完全確定。對於攻擊者來說,在這種情況下的模擬應該會復雜很多,理論上他們不知道哪三個交易是你的。他們會去不斷組合來判斷哪一組交易是正確的。

WLD Show:你可以描述一下有關當時1千萬美元危在旦夕的情況嗎?

Sam:我有一個工具,它可以監視大型TVL合約並能及時發出警報。我當時收到了有關Lien協議的警告。當時我正要去睡覺,我想我也許需要看一下這個警報。然後我就發現了它的漏洞。當你意識到質押在協議裡的所有這些錢都處於危險之中時,你真的會感覺到世界離爆炸只剩幾秒鐘的時間。

WLD Show:所以這意味著你發現了一個bug,如果是別人的話,可能會把合約裡的錢都盜走了。

Sam:是的,所以有不同的方式來對待這個漏洞。有些漏洞會被合約擁有者所利用,這理論上來說是不好的,所以你需要進行盡職調查。也有一些漏洞只會在你投入很多資金的情況下才能夠發生,如果你能夠使用閃電貸去攻擊這個漏洞,那麼可能會造成很嚴重的後果。如果這個漏洞無法使用閃電貸攻擊,那麼其緊迫性可能會大大降低。一般情況下,攻擊者沒有足量的資金去攻擊這類漏洞。還有一些更糟糕的漏洞,它們不需要攻擊者擁有大量資金,也不需要特殊的權限。對於這種漏洞,任何人都可以成為攻擊者,只要你知道能夠調動合約的函數,那麼這合約裡的所有錢就都是你的了。

Lien Finance合約中當時的漏洞就是最後所提到的一種類型,你不需要任何資金,任何權限,只要知道有這個漏洞存在,並且知道調動合約的函數,就可以發動漏洞攻擊。所以在當時,情況十分緊急,你不知道下一秒會發生什麼,任何一秒鐘都可能出現問題,就算是發生漏洞攻擊,我也不會知道攻擊者是誰,到那時,就都結束了,這真的很可怕。

WLD Show:為了解決這個問題,你是如何組建團隊來逃離黑暗森林的?

Sam:我確實花了一些時間在考慮這個項目是誰負責的。但是負責這個項目的團隊是匿名的,所以我當時非常小心,不敢向任何人透露這件事情,因為如果它落在壞人手裡,那麼它很容易就被武器化。所以我嘗試聯繫一些中間人,就是那些曾經與這個項目有關聯的人。所以,我與Alex Wade取得了聯繫,因為他是我認識的唯一一個與Lein Finance審計有關的人。我當時也聯繫了一些其他人。我向Alex說明了這個問題,以便採取緊急措施。之後,Alex就開始嘗試通過他的渠道來連接這個合約的負責人,此時我在考慮,一旦取得了聯繫,我們將如何處理這個問題。

我們沒有取得進展的每一秒鐘,都有可能是其他人來毀掉這一切的另一秒种。所以很明顯的問題是,如何將這些資金取出來。是的,我們的目標是拯救合約裡的資金。因為就像我之前說的,這個漏洞可以被任何人所利用。對於我們來說最大的問題是,如果搶先交易者能夠有這些技能,我們應該如果避開他們?

WLD Show:所以說你們當時想要拯救這些資金,但是如果你們一旦進行操作,那麼掠食者,也就是搶先交易者,就有可能在你們操作之前就把錢盜走了,是這樣嗎?

Sam:是的。對於礦工來說,他們肯定會優先處理支付gas費更高價格的交易,在這種情況下,我們的操作肯定會在掠食者之後。

WLD Show:所以這意味著,你的目標是想弄清楚如何讓團隊來創建一個能夠混淆搶跑交易機器人的東西,來隱藏你的操作,從而取出這一千萬美元,是嗎?

Sam:是的,我們的目標是以某種方式提交交易,讓那些機器人無法搶先交易。我一直在引入更多的人加入到這個隊伍,團隊成員都是我信任的人,而且是我認識好長時間的人。所以我當時在想,要么相信這些人不會背後盜取這筆欠款,要么就嘗試沒有經過測試的去欺騙搶跑交易機器人,然後很大程度上會損失這一千萬美元。最終,我更願意相信這些人,這就是我們最終建立如此強大團隊的原因。

WLD Show:你能描述一下你是如何發現SushiSwap漏洞的嗎?

Sam:我當時正在Paradigm開會,有些無聊,就在另一台顯示器上刷起了Telegram中的LobsterDAO頻道。當時有些關於SushiSwap在MISO平台上DutchAuction的討論。我就很自然的開打並瀏覽了DutchAuction合約。乍一看,似乎沒有任何問題,一切都很完美。我還在想要不要就繼續將注意力轉會到會議上,但是我又在想,我可以破解它嗎?我在沒有完全檢查完之前就認為它是安全的,那麼它就一定安全嗎?然後我就繼續瀏覽這個合約。然後,我就發現了漏洞,而且它與我之前看到的某個漏洞很相似,沒想到Sushi團隊能夠犯如此明顯的錯誤。

WLD Show:Paradigm是UniSwap的投資者,而Sushiswap是Uniswap的一個分叉。所以本質上,Suhiswap與Uniswap是競爭對手,但是Paradigm和團隊中的每個人基本上都支持你來解決這一問題,所以感覺團隊中的每個人都在為整個加密生態著想。

Sam:是的,加密行業是一個團隊遊戲,我們都在這個領域中,都在努力為加密生態做出最好的努力。一千萬美元與三百五十萬美元都是一樣的,當我對大家說出SushiSwap中有個漏洞,將會損失3.5億美元時,每個人都沒有遲疑,都在全力以赴嘗試聯繫SushiSwap的負責人。因為這不是零和遊戲,不是我必須要贏,別人必須輸。

WLD Show:對於當時的一千萬美元,你想的是要把它轉移出來。那麼對於這3.5億美元,你又是怎麼想的?

Sam:我想在某種程度上,這筆數字實在是太大了。其實你很難正確看待這3.5億美元,這真的很困難。這對普通人來說這意味著什麼?對加密行業的人來說意味著什麼?持有3.5億美元的想法簡直令人難以置信。我覺得我應該做點什麼。

WLD Show:所以在Paradigm,相比與你逃離黑暗森林時要建立的團隊,實際上有更多支持你的網絡,而且能夠使你更快地解決SushiSwap的問題。

Sam:確實,這也是我加入Paradigm的另一個原因,很明顯它有一個更大的網絡,並且在加密生態系統中的影響範圍更加廣泛。所以當我發現某些問題時,通過Paradigm聯繫任何團隊的負責人都非常有效。

WLD Show:你平時不僅會發現一些漏洞,還會寫一些教育資源供大家閱讀。其中一篇推文是關於Wormhole 3.25億美元漏洞。當時你通過逆向工程解釋了Wormhole漏洞事件。你當時為什麼要寫這麼一篇推文,可以詳細描述一下嗎?

Sam:實際上,我並不怎麼發布有關教育資源類的推文,我寫博客的頻率比較高,主要是因為我認為如果我想發布任何內容,我希望它是長文,因此我能夠更多的參與其中。 Wormhole漏洞被攻擊時,是當時被盜資金規模最大的黑客攻擊,而且沒人知道前因後果。

當時在推特上也有些推測,但是如果你去查證,那些都是假的。所以即使當時過去了幾個小時,也沒有人真正知道發生了什麼。我當時想,我認為現在是時候發布一些正確的言論,並且能夠讓我好好了解一下Solana。坦率的說,我當時對Solana了解不多,而且沒有真的去了解它的動力,但這一次給了我機會。

WLD Show:那麼漏洞是怎麼產生的? 3.25億美元又是如何從系統中盜走的?

Sam:要知道的是,這個合約需要多重簽名才能有效,但是在這一步時有一個bug,它實際上沒有檢查這些簽名是否有效。攻擊者提供給Wormhole一個假地址,假裝這是cisfa,然後沒有被阻止。他們使用這個簽名來橋接資產。下一步,黑客使用它來生成訂單,因為第一步中的簽名被認為是有效的,所以監護者認定了這個簽名。第三步訂單被提交,並受到了處理。

WLD Show:也就是說,這個過程是從以太坊到Solana。通常情況下,如果有人將ETH存入Wormhole,然後因為Wormhole中有ETH,它就會將其轉移到Solana。但是由於這個特定的漏洞,黑客讓系統假裝認為其中有ETH,然後會轉移到 solana,因此會損失系統內的3.25 億美元。

Sam:需要明確的是,當你橋接資產時,你會在另一方得到相同的資產,如果它是1:1資產的支持,那麼它是沒有問題的。但Wormhole不是。這個過程需要在Wormhole中鎖定真的ETH才會有Wormhole ETH,而Wormhole需要信任簽名者,如果5個簽名者中的4個都同意某人已經鎖定了10個ETH,那麼這個人就會得到10個Wormhole ETH。但實際上這個人甚麼都沒有鎖定,因此系統就會被欺騙。

WLD Show:如果我們需要幫助,將如何联係你?

Sam:我通常會在自己的網站上發表一些博客,你可以瀏覽一些我的最新動態。當然,如果你有合約安全方面的問題也可以直接通過twitter,郵件或DM我的電報與我取得聯繫。

WLD Show:非常感謝你的慷慨分享。這是一次很棒的對話,我從中學到了很多。

Sam:我也很感謝你們!

Total
0
Shares
Related Posts