本文將詳談傳統審計的不足之處和問題,以及「社群驅動的漏洞懸賞和審計比賽」又能有什麼優勢補足這些問題?
(前情提要:15個假白帽駭客「懶得Coding」用ChatGPT寫漏洞報告,遭Immunefi永久封殺)
(背景補充:跨鏈橋 Wormhole 支付史上最高「近3億台幣抓漏獎金」給1名白帽駭客)
前言
區塊鏈作為大型的電腦系統,當前的系統複雜程度已經遠遠超過 5 年以前的水平,基礎設施模組化程度更加精細,應用層的智慧合約邏輯越來越豐富並且合約之間的互動非常頻繁,更重要的是區塊鏈系統託管著資產數量已經非常龐大,因此最近區塊鏈安全社群關於安全週期的討論也多了起來(情況和是 2017 年一樣當人們提到安全想到的只是開發者寫完合約扔給以太坊基金會的朋友看一眼做一些基本的測試大有不同)。
在整個區塊鏈程式的安全生命週期中(從測試、邀請第三方審計再到事後監測、更新審計),漏洞賞金社群像是一個安全墊通過博弈論、叢集工作的方式吸引白帽們對專案方的程式碼進行最後一次審查,也有智慧合約安全工作者覺得漏洞賞金更像是防線上的最後一人,但是我覺得漏洞賞金和審計比賽未來有潛力發揮更大的價值,充當一個貫穿整個安全生命週期角色提升系統整體的安全性。
當然在傳統網路安全領域也有漏洞賞金專案(Bug Bounty or Vulnerabilty Rewards),首先各大科技公司像 Facebook、Google、Microsoft 等會針對他們自己的 inhouse 安全團隊和自己公司的產品線部署 bounty program,其次從 2015 年左右開始出現了以 HackerOne 和 Bugcrowd 為代表的漏洞賞金第三方平臺,目前這兩家領先的安全公司依靠發放 bounty 抽取提成作為主營收入年收入分別可以達到將近 5,000 萬美金和 2,000 萬美金。
而在區塊鏈世界裡賞金是一個安全圈經常討論的更有意思的話題,主要原因是區塊鏈程式碼開源其實讓駭客攻擊和提升攻擊策略的成本更加低廉,再加上 crypto 世界非常提倡叢集工作,創作者和所有權經濟開放性貢獻模式,這一切讓一個更開放的白帽經濟模式更加有價值。
什麼是漏洞懸賞和審計比賽?我們為什麼需要它們?
安全是一個攻擊方和防守方動態博弈的過程,就像電腦保安專家和密碼學家 Bruce Schneier 所說的「安全是一個過程,而非一個產品。它是一種思維方式,必須貫穿軟體開發過程的方方面面。」在區塊鏈世界這個一切程式碼都開源、透明的黑暗森林裡,一個想長期生存的區塊鏈專案方對自己產品 / 合約的安全性必然有著永恆的需求,大部分的區塊鏈產品都或多或少有金融屬性,金融中最重要的資產就是信任,而使用者的信任只有一次。
那傳統審計的不足之處和問題在哪呢?社群驅動的漏洞懸賞和審計比賽又能有什麼優勢補足這些問題?
使用審計服務的開發人員經常發現:
哪怕購買了第三方審計公司的服務,程式碼經過了審計還是出現了問題,雖然這些問題原因各不相同(技術的非技術的),但最終說明依賴於一家審計公司似乎也並不完全靠譜,程式碼審計質量還是取決於審計者的水平,而客戶往往對「誰更好」缺乏辨別能力。
而賞金平臺和審計競賽作為一個更開放的「沙盒」,專案程式碼可以讓白帽們隨意審查,背景不限(有可能有來自於專業審計公司的人員,有可能是自由職業的安全分析者),武器庫不限,客戶要做的只是設定合理的獎金,在白帽找到問題的時候支付他們的貢獻。
通常客戶會先提交他們需要被白帽審查程式碼,定義漏洞的安全等級(通常與可能造成的經濟損失相關,越容易直接導致經濟損失的漏洞嚴重等級越高)、賞金的預算、測試的程式碼範圍甚至測試步驟。
市場規模有多大?
賞金平臺和審計競賽的商業模式通常是從客戶支付的賞金中或者設定的總獎金池子中抽取一部分比例作為平臺的服務費。對程式碼安全審計有需求的客戶(專案方)會根據自身需求(哪些程式碼需要被審計覆蓋、如何定義漏洞嚴重等級以及願意支付多少賞金)在賞金平臺上公佈自己的計劃,而白帽們會根據專案方的需求尋找漏洞,一旦漏洞被白帽找出並且滿足專案方的需求,賞金就會被發放給白帽們,而賞金平臺則會從中抽成作為服務費。
在 Web2 傳統網路安全領域,漏洞賞金平臺也是一個比較年輕的方向(2012 之後出現),目前最大的漏洞賞金平臺是 HackerOne 和 Bugcrowd。2022 年,HackerOne 的年收入達到了 5800 萬美金,公司估值達到 5 億美金左右,歷史累計支付賞金 2.3 億美金(2021,2022 年兩年支付賞金 1.5 億美金),發現超過 65,000 個軟體漏洞,擁有註冊駭客數量超過 100 萬,每月使用 HackerOne 服務的客戶數量超過 1,000 家。而其競爭對手 Bugcrowd 則在 2022 年收入超過 2,000 萬美金。
在 Web3 安全領域,2022 年所有的 Web3 漏洞賞金和審計競賽平臺總共發放了 5,000 萬美金的賞金給白帽駭客,而這類平臺平均的收費水平在 10%~30% 左右,因此保守估計目前的市場規模在 $5m~$15m 左右,還是一個非常新興的市場。
另一個有意思的事情是有越來越多的客戶願意直接使用這種去中心化安全社群提供的程式碼審計服務,最有名的例子就是 Opensea 在推出他們的新平臺 Seaport 之前並沒有像往常直接找第三方審計公司,而是選擇了目前最大的去中心化審計競賽平臺 Code4Rena 並設定了 100 萬美金的獎金池,在傳統安全審計市場日益內卷的今天(卷人力資源、卷技術工具、卷市場 BD),去中心化的安全服務會不會是這個市場的重要增量呢?(目前市面有 56 家審計公司,頂級的公司過去年收入在 1,000 萬美金~4,000 萬美金,我覺得去中心化安全市場的想象空間非常大)。
延伸閱讀:白帽駭客心動!LayerZero和Immunefi掛出「1500萬美元」生態漏洞賞金
漏洞賞金平臺 vs 審計競賽平臺
雖然漏洞賞金平臺在 Web2 也有十年的發展史,但審計競賽平臺卻是個 Web3 native 的新鮮事物。審計競賽服務的物件是那些即將上線產品或者某些新增功能的專案方,以去中心化社群的力量在特定時間(2 個星期以上)幫他們完成審計服務,從這個角度來說審計競賽將會給傳統審計公司帶來不小的商業威脅。
以下我從參與方式、獎勵結構、測試覆蓋範圍三個方面展示這兩種平臺的區別:
參與方式
漏洞賞金平臺(如 Immunefi) 上通常是開放式的專案,任何人都可以參時隨與。參與者通常獨立探索並報告漏洞,以換取獎勵。如果有兩個人發現了同樣重複的漏洞,遵循先來後到原則,誰先提交了報告誰先拿走獎勵。
社群驅動的審計競賽平臺(例如 Code4rena、Sherlock)通常有時間限制,與參者在特定時間範圍內競爭找尋並報告漏洞。相比賞金平臺會有一部分團隊合作(比如每個專案會有明確分配 Lead Senior Auditor 和 Lead Judge 最後把所有的審計結果稽核、規整總結成審計報告提交給客戶,而這兩個領導者也遵循社群選舉、比賽競爭的去中心化原則 )。另外在規定的時間內如果兩個審計競爭者發現重複的漏洞兩人都可以獲得獎勵。
獎勵結構
兩者實際發放的獎勵都會主要考慮發現漏洞的嚴重程度。
唯一不同的是像 Code4Rena 這樣社群驅動的審計競賽平臺每個專案的獎金池會有一部分(5%~10%)固定分配給 Lead Senior Auditor 和 Lead Judge,因為他們其實承擔了傳統審計公司專案負責人的角色。
另一個有意思的點是漏洞賞金平臺上專案方有時候會放置專案代幣作為獎勵,但是我也看到社群中有些白帽駭客更喜歡拿到 USDC, USDT 這種穩定幣而不是價格波動的專案代幣。
範圍和重點
漏洞賞金平臺專案通常範圍廣泛,而審計競賽上的專案通常具更有專注的範圍,針對軟體的特定功能或方面,同時需要白帽們集中精力在較短的時間內完成工作
專注於審計競賽的專案
Code4Rena – 一家類似電子競技的社群驅動審計競賽平臺
Code4Rena 有三種角色型別:
1. 審計員(Wardens)查審程式碼。從專業的安全工程師到試圖獲得更多經驗的新手開發人員,任何人都可以註冊成為審計員參加公開審的計競賽。
2. 評委(Judges)通常是 C4 社群中最優秀的工程師。他們決定漏洞的嚴重程度、有效性和質量,並評估審計的員表現。
3. 贊助商(Sponsors)是專案方,如 Opensea、Blur、ENS、Chainlink 等,他們建立獎金池以吸引審計員審計他們專案的程式碼。贊助商還可以選擇舉辦限僅邀請的私人競賽以提高隱私性。
最有趣的一點是 Code4Rena 正在建立的文化:鼓勵合作和團隊合作。與傳統的漏洞懸賞計劃不同,Code4Rena 向報告有效漏洞的所有審計員支付報酬使即,該漏洞已經被報告。過這種鼓方法勵審計員之間的健康競爭,因為他們有動力尋找高嚴重性和常見的漏洞。在這個平臺上,一些審計員組會成臨時團隊共同尋找漏洞。
商業模式:
任何專案可以到 Code4rena 開啟一個審計競賽 program 並提供 USDC 或 ETH 設立基礎獎池(通常獎池規模在 $40,000 ~ $100,000), Code4rena 會從基礎獎池中收取 20% 作為平臺提供組織競賽、提供評審、整理稽核產出報告結果的服務收入。專案方還可以在基礎獎池之上提供專案代幣以設定額外獎池,Code4rena 會從這部分額外獎池中收取 40% 費用。
Sherlock – 有智慧合約保險保障的社群驅動審計
與 Code4rena 類似,Sherlock 也有審計員、贊助商和評委等角色,Sherlock 的獨特之處在於平臺提供的保險服務。任何人可以投資 Sherlock 平臺上的保險池,投資者將 USDC 存入保險池,協議客戶可以購買服務對衝智慧合約被 hack 的風險。保險投資者的收入來源包括:來自協議客戶支付的保費 + 將保險池資金存入其他 DeFi 池子(Aave、Compound 等)所獲得的利息 + Sherlock 代幣激勵。但是投資者在獲得收益的同時承擔償還保單的風險。
另一個和 Code4rena 不太一樣的點在於平臺提供的審計服務收益的分配機制。與 Code4rena 相比,Sherlock 有規則允許首席高階安全審計員和首評席委從獎金池中獲得固定的金額(5%~10%),以適當補償和激勵專職高階審計員。此外,還有選擇和競爭的制度來選拔領導角色。
如何構建駭客社群?Web3 白帽們最關心的是什麼?
在我們觀察了不同的去中心化安全社群(ImmuneFi, Hats Finance, Code4Rena, Sherlock 等)以及和一些安全創業者聊過,我們認為所有的去中心化平臺致力做的事情就是:構建一個更健康、高效的溝通和協作平臺,賞金平臺像是一個在 Hackers 和專案之間的 marketplace,他們既要從 hacker 角度出發考慮他們的需求(如下表),同時也要從專案角度考慮專案方最關心的(審計質量)。
除了一些常見的需求外,在 Immunefi 白帽社群(我看到最熱鬧的白帽 discord 社群)我還看到了一些有意思的話題。
比如:
有一位叫 Rappie 的白帽想公開一些他 / 她之前發現的專案漏洞,諮詢有什麼社群規則需要遵守。(1. 只公開已經修復的漏洞。2. 確保任何公開的資訊對協議或其使用者沒有負面影響。保守機密資訊例如:在他們修復了你的 SQL 注入漏洞後,不要釋出他們完整資料庫的資訊。3. 確保公開之前需要私信給專案團隊 )。
有一個叫 Noam Yakov 的白帽則對一個賞金專案的定義產生疑問(這是常常發生的,因為通常只有發現比較嚴重的安全漏洞才能拿到賞金,專案方如何定義好漏洞的安全等級是白帽們非常關心的事情,社群也經常聽到此類糾紛)。
他在 Uniwhales 的賞金專案中對他們把 MEV 影響定義為嚴重的安全漏洞產生疑惑,而最終大家的討論認為這類描述並不試用於所有的 MEV 情況,比如對於一些 toxic order flow 能夠把協議池子資產抽乾的情況肯定算是嚴重安全事故(因此定義一套安全等級 framework 往往不夠,通常還需要有平臺中的仲裁員類似的角色介入到實際不同的案例中)。
而對於一個非常有意思的話題「你們對類似 Immunefi 這種賞金平臺的訴求和期待是什麼?」一個叫 ckksec 的白帽給了他的回答:1)幫助他們這些匿名的加密白帽的勞動收入做一些法律上的澄清,比如開發票。2)平臺不僅應該對白帽們有評分系統,還應該對專案的質量進行評分因為白帽們往往需要花時間分辨專案質量的好壞。3)對於願意開放自己 proflie 的白帽們平臺可以展示他們的工作流,同時平臺也最好能更透明的展示專案方收到的安全分析報告資訊。
延伸閱讀:傳奇駭客開嗆Kucoin!懸賞「100萬美元」找出27萬筆個資外洩,獎金僅5千
哪些工具可以為白帽們提供幫助?
隨著 LLMs GPT 的大火,我最近頻繁聽到人們在討論安全審計是否也能被 AI 替代這類話題。我聊過的經驗豐富安全從業者普遍認為 GPT 很難直接取代人的智慧,一些低 hanging fruit(易於發現的問題)可能可以被語言模型檢測出來,但是那些中高風險的問題仍然需要專家參與。
比如據一位資深的安全專家回饋,對於類似資料分析,動態分析這些更復雜測試需要人為提前具體結合協議實際業務邏輯進行安全分析測試並提前定義測試預期目標屬性,最困難的部分是編寫良好的屬性和定義正確的測試領域。根據他們對 GPT 的實驗,他們認為 GPT 在目前階段做不到這一點完全替代人類。
當然目前也有比較樂觀的結果顯示 LLM 能夠極大提升安全分析工具的分析效率並降低錯報率
1/ 🧵 Do you still need a manual smart contract audit? #GPT #LLM pic.twitter.com/YGZfUDnXA0
— Arthur Gervais (@HatforceSec) June 22, 2023
https://www.researchgate.net/publication/371758506_Do_you_still_need_a_manual_smart_contract_audit。
關於這個話題我們從另一個有意思的非技術角度去思考,安全攻擊者和防禦者之間是動態的博弈,魔高一尺道高一丈,AI 會不會相對也能給安全攻擊者帶來幫助呢?
安全以人為本
人們會習慣性的認為軟體是冰冷、機械、邏輯的事物,提升系統安全只需要提升分析技術、系統防禦水平。但人們缺乏從經濟激勵、人性層面出發思考安全問題,在開原始碼的黑暗森林裡,我們需要一套更符合理性人假設的分配體系建設正向良性的經濟激勵吸引更多願意長期為區塊鏈系統安全貢獻智慧的人們加入。
目前的傳統安全審計市場格局穩定,品牌聲譽是這個領域的公司最重要的無形資產,隨著時間推移,頂級的安全品牌的影響力和客戶的信任度穩步增強,但是傳統安全審計也有它們自身的問題(商業模式較單一依賴於人力難以規模化增長,在增長和審計質量之間頂級企業需要做平衡,有一些企業已經碰到這樣的瓶頸甚至影響了品牌的價值)。
社群驅動的安全審計競賽是一個創新的商業模式,目前兩大平臺的客戶量已經超過 300 個逐步找到了 PMF,而賞金平臺對安全生命週期是一個良好的補充,儘管這些去中心化的平臺還沒有找到特別有效的代幣模式,但我們非常看好這個市場未來出現規模化的增長(因為群體智慧非常契合安全市場裡面攻防博弈的場景)。
社群驅動的的審計平臺會給中心化的審計公司帶來威脅麼?我們認為他們會是良性相互競爭和互補的關係,短期內看當 Code4rena 這樣的平臺形成一定的網路效應並且拿出了不錯的 track record ( 審計過專案被 hack 比例低),確實可能會給一些中尾部的中心化公司帶來一定的競爭壓力,但是長期可能這也會倒逼中心化審計平臺與社群驅動的平臺形成一些商業合作,因為這也能拓寬中心化安全審計平臺的客戶群體並提升審計質量(有點像原來 Web2 大公司內部獨立運營的安全賞金專案後來也和第三方平臺 HackerOne 等形成合作的邏輯)。
儘管社群驅動型別的安全平臺致力的方向就是更加 DAO 化(Forta 其實我們也能放入這個範疇),但是在目前專案實際執行中還是會遇到諸如:如何讓工作流和經濟分配流程更加透明公開、如何權衡專案方對於隱私和安全的考量、如何更清晰定義團隊合作和個人付出的關係、如何在出現利益糾紛的時候以更相對公平專業的角度解決問題等等,這些都是安全 DAO 需要面對的挑戰。
撰文:Ray,IOSG Ventures
Reference:
1.《HackerOne Year Book》
2.《Bounty Everything – Hackers and the Making of the Global Bug Marketplace》
3.《An empirical study of vulnerability rewards programs》
4.《The 2022 Hacker Report》
5.《Productivity and Patterns of Activity in Bug Bounty Programs》
6. https://immunefi.com
7. https://bugrap.io/
8. https://hackenproof.com/
9. https://hats.finance/
10. https://code4rena.com/
11. https://www.sherlock.xyz/