適合程序員的副業有什麼?寫文章、當技術輔導、開發小程序、接植髮代言(bushi)…許多人通過這些副業,長年累月下來,逐漸實現了理想中的「經濟自由」。
在這之中,還有一種非常受歡迎的業餘賺錢方式:「專找別人茬,獎金自己掙」的漏洞賞金獵人。不論是國外巨頭如蘋果、微軟、谷歌等,還是國內大廠如華為、阿里、騰訊等,均推出了各自的漏洞懸賞計劃,即開發者搜尋軟件中的漏洞並將之上報廠商,便可獲得豐厚獎勵。
而這個獎金有多豐厚呢?近來,iOS 越獄軟件 Cydia 之父 Jay Freeman 發現一個以太坊關鍵漏洞,獲得了 200 萬美元(約人民幣 1272 萬元)的巨額獎金!
(註:Jay Freeman,著名軟件開發人員,被譽為 iOS 越獄之父,開發出了 Cydia 應用商店,可使擁有越獄 iPhone 的用戶在 iOS 中下載未經授權的軟件。)

創建無數 ETH 代幣的漏洞
以太坊 Layer2 解決方案 Optimism 能夠大規模處理交易,同時還保有以太坊的安全性,原先僅適用於 Uniswap 和 Synthetix 等特定項目,後於去年年底宣布取消白名單機制:任何用戶都可以在 Optimism 上自由部署合約、構建應用程序。但近日,Jay Freeman 發布博客稱,他在 Optimism 的 Geth 分叉中發現了一個關鍵 Bug:攻擊者可藉此非法創建無數 ETH 代幣。
在這篇博文中,Jay Freeman 詳細描述了發現該 Bug 的歷程及 Bug 的利用方式:「這一 Bug 我願稱之為『Unbridled Optimism』,它可能會被粗略認為是『橋』遠端的一個漏洞,但實際上這是在 Optimism 上執行智能合約的虛擬機中的一個錯誤。利用這一 Bug,攻擊者可以訪問『橋』遠端有效且無限數量的 tokens。」
Jay Freeman 明確指出,Bug 出現在以太坊 VM 中的 SELFDESTRUCT 指令。該指令用於合約自行銷毀,移除其賬戶對象,允許從區塊鏈的活動集中快速清除潛在的大量「過時」狀態。當合約進行到 SELFDESTRUCT 指令時,它會指定一個「受益人」來接收它當前擁有的資金。該操作碼在 go-ethereum 的 EVM 中實現將餘額添加給受益人,然後調用 StateDB.Suicide 將帳戶餘額清零。
但 Jay Freeman 發現,這一步既不使用 stateObject 的 setBalance 設置器,也不使用共享的 common.Big0 常量,也就是說它除了將對象上的布爾值設置為 true 之外毫無作用,而這意味着「此時的合約仍然存在並繼續擁有它之前擁有的代碼!」
Optimism 團隊在之後的報告中也指出:「該漏洞使得可以通過在持有 ETH 餘額的合約上,反覆觸發 SELFDESTRUCT 操作碼以在 Optimism 上創建無數 ETH 代幣。」

Bug 尚未被利用,需儘快修復
所幸,Jay Freeman 之後迅速於 2 月 2 日向 Optimism 團隊報告該 Bug,而 Optimism 團隊通過對 Optimism 鏈歷史的分析,發現除了最初由 Etherscan 員工的一次意外觸發(那次沒有生成可用的多餘 ETH),該漏洞至今還未被利用過。
對於此 Bug 的出現,Optimism 團隊解釋道:「這個錯誤源於對 go-ethereum 代碼庫的修改(旨在保持與舊 OVM 1.0 系統的向後兼容性)。」由於過去一年中 Optimism 用戶增長了很多,相比早期發布過程只涉及少數關鍵基礎設施提供商之間的協調,Optimism 團隊表示如今發布的複雜性在急劇增加:代碼庫的橋接器、更多提供商、多個主網分支之間均有涉及。甚至即便發現了 Bug,Optimism 團隊也不能立即發布明顯的補丁——他們不能冒着有人在升級之前對漏洞進行逆向工程的風險。
在收到漏洞報告並確認漏洞的幾小時內,Optimism 團隊就對該 Bug 的修復進行了測試,並部署到了 Optimism 的 Kovan 和 Mainnet 網絡(包括所有基礎設施提供商)。
Optimism 官方提醒,雖目前該 Bug 尚未被利用,但鑑於該 Bug 的重要性,許多易受攻擊的 Optimism 分叉和橋接提供商需引起重視,確保儘快升級至 0.5.11 版本的 l2geth。

漏洞賞金計劃,或許必不可少
從本次事件可以看出,漏洞賞金計劃對於許多大型項目來說或許必不可少。正如 Optimism,逐年增加的用戶伴隨着愈發複雜的技術,與此同時產生 Bug 的可能性也在日益提升,此時若僅憑數量有限的項目內部人員來搜尋 Bug 無疑十分艱難。
無私發現 Bug 的人固然有,但適當的賞金計劃顯然更能刺激許多開發者尋找 Bug 的熱情與動力,這或許也就是眾多大型科技企業或項目均發布了漏洞賞金計劃的原因:就在 Jay Freeman 公開本次漏洞的同一天,MakerDAO 還推出有史以來最大的漏洞賞金,最高可獎勵高達 1000 萬美元。
不過不能否認的是,漏洞賞金計劃也曾引發了一些爭議:
去年 9 月,向蘋果報告了 4 個零日漏洞的 Denis Tokarev 表示,依照蘋果安全賞金頁面,他所報告的漏洞的價值為 10 萬美元,但蘋果拒絕支付。
無獨有偶,開發者 Jose Rodriguez 此前也曾發推譴責蘋果:他所報告的漏洞估值超 2.5 萬美元,最終卻只被獎勵了 5000 美元。
那麼,你對漏洞賞金計劃有何看法呢?
參考鏈接:
https://cointelegraph.com/news/makerdao-launches-biggest-ever-bug-bounty-with-10m-reward
https://www.saurik.com/optimism.html
https://optimismpbc.medium.com/disclosure-fixing-a-critical-bug-in-optimisms-geth-fork-a836ebdf7c94

《新程序員003》正式上市,50餘位技術專家共同創作,雲原生和數字化的開發者們的一本技術精選圖書。內容既有發展趨勢及方法論結構,華為、阿里、字節跳動、網易、快手、微軟、亞馬遜、英特爾、西門子、施耐德等30多家知名公司雲原生和數字化一手實戰經驗!

