漏洞赏金与精英黑客
试图通过参与漏洞赏金计划谋生的程序员,就像相信自己德州扑克技术好到可以辞职一样。这一观点在《New Solutions for Cybersecurity》中的《Fixing a Hole: The Labor Market for Bugs》章节得到了数据支持,该研究由Ryan Ellis、Keman Huang、Michael Siegel、Katie Moussouris和James Houghton共同完成。
帕累托分布的现实
漏洞赏金遵循帕累托分布,呈现出与财富分配和其他社会现象相同的特征。少数精英(boffins)报告了最多数量和最高质量的漏洞,并获得了绝大部分赏金。其余人群则在争夺这些精英的残羹剩饭。
《Fixing a Hole》并没有为希望通过漏洞赏金计划提升安全性的软件公司提供太多鼓励。托管漏洞赏金计划的HackerOne公司吹嘘有超过30万人"注册"帮助组织提高安全性。虽然想象有30万双眼睛审查代码很美好,但这个数字包括僵尸账户和从未发现过任何漏洞的人。实际上,只有少数精英在完成工作并获得报酬。
为什么不直接雇佣精英?
那么,为什么不直接雇佣这些精英作为顾问,而是将公司安全游戏化呢?《Fixing a Hole》的作者认为,漏洞赏金计划应该设计成激励精英的方式。他们表示,采用邀请制可以降低管理海量琐碎、无意义和重复漏洞的操作成本。(Google、Facebook和GitHub面向公众的赏金计划中,只有4-5%的漏洞符合支付条件。)根据作者的说法,少数赏金猎人是不可或缺的,并拥有塑造漏洞赏金市场的重大权力。基于此,在可控制的条款和条件下雇佣安全顾问似乎更实际。
削弱漏洞赏金的数据
在《Fixing a Hole》中,Facebook资助的独立研究人员研究了61个HackerOne赏金计划23个月的数据和一个Facebook计划45个月的数据。HackerOne数据集包括Twitter、Square、Slack、Coinbase、Flash等公司的赏金计划。在HackerOne数据集中可以跨不同计划跟踪用户名,但无法与Facebook数据集关联。
![数据分布图] 顶部:Facebook(45个月)和HackerOne(23个月)的参与者、销售和支付情况。底部:按每人漏洞销售数量划分的人群分布。
顶部的多产群体并不局限于一个计划。他们横扫多个计划,在不同技术中销售漏洞。更重要的是,他们还报告了最关键、价值最高的漏洞。平均而言,前1%的人向近五个不同的计划提交了漏洞。
作者包含了每个卖家的平均销售额、每个卖家的平均收入和每笔交易的平均价格,但这些值扭曲了对不均匀分布的分析,因此在本评论中不予考虑。(例如,如果90人最终获得10美元/小时的工资,10人获得1000美元/小时的工资,平均工资为109美元/小时,这并不能代表任何一个人群的特征。)
令人惊讶的是,《Fixing a Hole》中没有报告数据的方差。当人群被分层时,正如作者发现的那样,各个组的方差揭示了一些令人惊讶的见解。因此,关于最有趣的人群——表现最好的5%——的大量信息被省略了。
我们在此复制并叠加了一些图表,以显示报告中的主题:漏洞赏金计划中有一小部分多产参与者。数据集越大,这种趋势就越明显。在整个HackerOne和Facebook数据集中,7%的报告10个或更多漏洞的参与者获得了1622个赏金,而其他93%的人群获得了2523个赏金。
最有趣的群体被任意归入10个或更多漏洞的类别。(看到图表末尾线条如何上升了吗?你不想这样做。绘制所有数据。)HackerOne数据中前1%(6名参与者)获得了161个赏金,Facebook数据中前1%(7名参与者)占据了274个漏洞。这分别是每人平均27个和39个漏洞!即使在顶级收入者中也可能存在分层,但由于不知道顶层的这种分布(即方差),这仍然是个谜。
令人沮丧的收入现实
尽管前1%的人多产,但他们的收入同样令人沮丧。Facebook数据集中的前七名参与者平均每月发现0.87个漏洞,年平均收入为34,255美元;略低于密西西比州害虫控制工人的收入。
来源:https://www.bls.gov/oes/current/oes_ms.htm
HackerOne数据集中的前六名收入者情况更糟。平均每月发现1.17个漏洞,他们年平均收入为16,544美元。(《Fixing a Hole》的注释中出现了两个异常数据点,提到Google的Chromium奖励计划为单个提交支付了60,000美元,一名Facebook参与者在21个月内赚取了183,000美元,平均每年104,000美元。)
如果你心碎并想知道这前1%是否在担心下一顿饭从哪里来,更可能的情况是这些是从事副业的安全专业人士。你可以真正擅长发现几类关键漏洞,然后在相关赏金计划上线时设置扫描器和警报。你找到漏洞,提交证明,拿钱走人。
比漏洞赏金更好的选择
这些顶级漏洞赏金表现者是谁,他们的背景是什么?是什么让他们与众不同?从数据中无法判断,但作者提出了三种可能性:随时间提高的技能、原始天赋的差异以及专业人士与业余爱好者的区别。(我相信一些顶级表现者可能是一个团队在一个账户下工作,或者是专门研究几种关键漏洞类型并在新计划启动时密切关注低 hanging fruit 的个人。)无论他们是谁,他们都是不可或缺的,需要激励他们加入漏洞赏金计划。为此,作者提供了三种解决方案:
- 通过仅限邀请的计划保持人才库的排他性,不对公众开放。这确保最有才华的人不会因为次等人才而失去任何赏金——即使是低 hanging fruit。
- 随着连续有效提交而提高价格,以防止人们流向其他计划。
- 向有才华的研究人员提供资助,即使没有发现漏洞也支付报酬。
这些建议与直接联系咨询公司进行代码审计没有太大区别。此外,独家漏洞赏金计划面临参与者的鸡生蛋悖论:当没有机会建立声誉时,如何获得邀请?此外,举办漏洞赏金计划的控制力要少得多,风险要大得多,这是大多数人所不知道的。
漏洞赏金经济学的挑战
漏洞赏金计划的经济学是动荡的,因为有一个竞争性的攻击市场在起作用。可利用的零日漏洞可以从合适的买家那里获得高达数百万美元的收入。任何发现关键漏洞的人都可以选择不向供应商披露,并尝试在其他地方以更高的价格出售。《Fixing a Hole》建议工作应该导向激励向供应商披露,但除此之外没有提供实际细节。没有证据表明研究人员会比较防御性和攻击性赏金计划以寻找最高售价。我们的观点是,是否向供应商披露的决定主要是一个道德问题。
谁被激励参与漏洞赏金?
那么,目前谁被激励参与漏洞赏金计划?两类人:经济弱势国家的公民,他们可以利用美元汇率优势;以及希望提高安全技能和学习行业工具的学生。在阅读《Fixing a Hole》后,我并不相信精英们被激励参与漏洞赏金计划。也许他们应该运用一些不可或缺的权力,向市场要求更多。
如果你喜欢这篇文章,请分享: Twitter LinkedIn GitHub Mastodon Hacker News