網際網路漏洞賞金“騙局”曝光,這點錢還不如打德撲
【獵雲網(微訊號:)】1月19日報道 (編譯:一晌貪歡)
程式設計師要是通過“漏洞賞金計劃”(網路公司給予報告其安全漏洞的程式設計師以現金獎勵)來謀生,就好比普通人把玩德州撲克當生活來源,這難度可不低。麻省理工出版的《網路安全新解決方案》,其中一個章節《修復漏洞:漏洞的勞動力市場》擺出資料說明,通過“漏洞賞金計劃”賺錢很難。賞金計劃和財富分配以及其它社會學現象一樣,都遵循帕累託分佈(指極少的人口擁有大部分財產)的規則。數量最多、質量最高的安全漏洞報告來自於很少一部分程式設計師,當然賞金計劃的絕大部分獎金也由他們獲得。而剩下的大部分參與者只能瓜分很少比例的獎金。
《修復漏洞》並沒有鼓勵軟體公司通過賞金計劃來改進它們的安全系統。HackerOne是一個進行該計劃的公司,它宣稱已經有超過30萬人簽署了幫助其提高安全性的協議。有30萬雙眼睛仔細檢視你的程式碼,這聽起來是不錯,可是這個數字也包括殭屍帳戶和那些從來沒有發現過漏洞的人。實際上,只有少數頂級程式設計師才能發現漏洞並因此獲得現金回報。
對此,有外媒表示,對於公司來說,不會把自己的網路安全只寄希望於一個高效的程式設計師,而且還不知道他是否能有足夠的業餘時間為公司工作。
那為什麼不乾脆聘請這些網路安全高手來公司做安全顧問呢?《修復漏洞》的作者認為,應該用賞金計劃來激勵程式設計師中的精英。如果該計劃只針對受邀程式設計師,對於管理瑣碎的、不重要的、重複的漏洞,可以降低其運營成本。(只有4-5%來自谷歌、Facebook和GitHub對公的賞金計劃才有獎金。)據作者說,為數不多的優秀漏洞獵人是不可或缺的人才,也是他們才有能力推動賞金計劃這個市場的發展。基於此,在可控制的條款和條件下僱用他們來做安全顧問似乎更實際。
資料正在動搖漏洞賞金計劃
在書中,Facebook資助的獨立研究人員仔細研究了以下兩個漏洞賞金計劃的資料:1)61個HackerOne專案,覆蓋週期超過23個月;2)Facebook專案逾45個月的資料。 HackerOne資料組包括來自Twitter、Square、Slack、Coinbase、Flash等的獎勵程式。HackerOne資料組的能夠跨專案跟蹤使用者名稱,但Facebook資料組不能。
上表:參與者、出售額、Facebook(45個月)/ HackerOne(23個月)獎金
下表:平均出售額及相應人員數量
尋找漏洞的高手不僅僅只參與一個賞金計劃。這批頂級選手橫掃多個專案,通過不同的技術售賣他們發現的漏洞。此外,價值最高的關鍵性漏洞也是由這批程式設計師發現報告的。平均而言,1%的頂級程式設計師向約5個不同的賞金計劃報告漏洞。
書中涵蓋了一些平均數值:程式設計師的平均出售額、平均收入、平均交易額。在分析賞金分佈的過程中,這些平均值不可取。例如:如果一組有90個人時薪10美元,另一組有10個人時薪1000美元,平均值就是時薪109美元,但這樣的平均值不能反映出兩組的差異化收入水平。
令人驚訝的是,書中竟沒有體現這種差異。作者發現,當人群分層時,不同群體的差異很說明問題。而對於表現最好的那5%的程式設計師,他們的許多資訊卻被省略了。
我們試圖重組圖表以說明問題:在賞金計劃中有一小群多產的參與者。資料集越大,這種趨勢越明顯。在HackerOne和Facebook的全部資料集中,報告10個以上漏洞的人佔7%,共計報1622個漏洞,而其餘93%的人一共報告了2523個漏洞。
最出色的程式設計師被混為一談,一起歸入“發現10個以上漏洞”的組別。其實這個群體還應該繼續細分。HackerOne資料中,排名前1%的人(6名參與者)報告161個漏洞,Facebook資料中排名前1%的人(7名參與者)報告274個漏洞,這1%的程式設計師平均每人報告27個和39個漏洞!即使在收入最高的頂級程式設計師中也可能存在分層現象,但目前沒有更詳細的資料,所以高手群體如何分層還是個謎。
前1%的人雖多產,但總體收入並不高。Facebook資料中排名前七的參與者平均每月報告0.87個錯誤,平均年薪為34255美元,比密西西比害蟲防治工人賺的還要少一點。
對於HackerOne資料組中排名前六的人來說,情況更糟。平均每月報告1.17個漏洞,而平均年收入只有16544美元。可是,《修復漏洞》的註釋部分出現了兩個異常資料,一個提到谷歌的賞金計劃(Chromium Rewards Program)為單次漏洞報告竟然支付了6萬美元,另一個是Facebook專案的一名參與者在21個月內掙了183000美元,即平均年收入104000美元。
看到這裡心都涼了吧,即便已經算是1%的高手,賞金計劃的收入也實在不可觀,不過很有可能參與賞金計劃只是這些程式設計師的副業而已。程式設計師如果很擅長找到一些關鍵漏洞,然後設定掃描程式和警報,靜待相關的賞金計劃上線,這也是不錯的買賣。找漏洞,提交證據,然後賺錢,再找下一個漏洞。
賞金計劃外是否有更優選擇?
誰是最優秀的漏洞賞金獵人,他們的背景是什麼?他們因何脫穎而出?資料沒法給出這些問題答案,但作者提出了三種可能性:不斷提高的職業技能、天賦、專業人士和業餘愛好者的差異。(一些表現最好的獵人可能來自於同一個賬戶下的團隊協作,也可能是擅長几種關鍵漏洞型別的個人,在新專案啟動時,他們會密切關注較容易的目標。)無論他們是誰,這些都是不可或缺的人才,應當鼓勵他們加入漏洞賞金計劃。為此,作者提出了三個方案:
1. 通過不向公眾開放的僅限邀請的專案,保持人才池的排他性。這確保了最有才幹的程式設計師不必與其他相對較弱的選手競爭,可以獨攬獎金。
2. 漏洞報告若連續有效,則應該提高賞金價格,以防止程式設計師轉向其它專案。
3. 向有才華的研究人員提供資助,即使沒有發現漏洞也要支付酬勞。
這些建議和請諮詢公司進行程式碼審計沒有太大區別。此外,對參與者而言,一個僅限邀請的賞金計劃專案面臨著“先有雞還是先有蛋“的悖論:當程式設計師還沒有機會建立專業聲譽時,如何得到網路公司的邀請?而且,人們沒有意識到,進行賞金計劃其實風險不小,不可控因素也不少。
鑑於目前市場競爭激烈,賞金計劃的經濟情況一片混亂。可利用的零日漏洞(指被發現後可以立即被惡意利用的安全漏洞)可以從合適的買家那裡獲得高達數百萬美元的收益。任何人發現一個關鍵漏洞,他都可以選擇不報給供應商,而是嘗試以更高的價格出售給其他人。書中建議,重點應該放在如何激勵黑客把漏洞直接報給供應商,但到底該如何實施書中沒有提到。目前沒有證據表明,漏洞攻防雙方誰出價更高,程式設計師就把發現的漏洞資訊賣給誰。我們認為,是否把漏洞報給供應商更多的是一個道德問題。
那麼,現在誰會被激勵去參與賞金計劃呢?有兩個群體:一個是經濟上相對弱勢的國家的國民,他們可以利用美元匯率牟利;另一個是學生群體,可以藉此提升網路安全技能和學習行業工具。讀了《修復漏洞》之後,我不認為行業精英有足夠的動力參加漏洞賞金計劃。或許這些人應該運用自己的力量向市場提出更多的要求。