漏洞赏金的真相:精英黑客与市场博弈

本文基于《Fixing a Hole》研究数据,深入分析漏洞赏金市场的帕累托分布特性,揭示顶尖安全研究者与普通参与者的收入差距,探讨企业安全建设的更优方案。

关于赏金与精英黑客——Trail of Bits博客

特伦特·布鲁森
2019年1月14日
paper-review, research-practice

试图通过参与漏洞赏金计划谋生的程序员,就像说服自己德州扑克技术好到可以辞职一样。这一观点在《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万双眼睛审查你的代码固然美好,但这个数字包括僵尸账户和从未发现任何漏洞的人。实际上,只有少数精英在完成工作并兑现赏金。

如果你是一家公司,你不会希望自己的安全依赖于单个高效研究人员是否投入足够的业余时间查看你的产品。
— Trail of Bits (@trailofbits) 2019年1月14日

那么,为什么不直接雇佣这些精英作为顾问,而是将公司安全游戏化?《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的个人。)无论他们是谁,他们都是不可或缺的,需要激励他们加入漏洞赏金计划。为此,作者提供了三种解决方案:

  1. 通过仅限邀请、不对公众开放的计划保持人才库独家。这确保最有才华的人不会因次等人才而失去任何赏金——即使是低 hanging fruit。
  2. 随着连续有效提交提高价格,以阻止人们 straying 到其他计划。
  3. 向有才华的研究人员提供资助,即使没有发现漏洞也支付费用。

这条建议与直接联系咨询公司进行代码审计没有太大区别。此外,独家漏洞赏金计划面临参与者的鸡或蛋悖论:当没有机会建立声誉时,如何获得邀请?此外,举办漏洞赏金计划的控制和风险比大多数人意识到的要少得多。

漏洞赏金计划的经济学是动荡的,因为有一个竞争性的进攻市场在起作用。可利用的零日漏洞可以从合适的买家那里获得高达数百万美元。任何发现关键漏洞的人都可以选择不向供应商披露,并尝试在其他地方以更高价格出售。《Fixing a Hole》建议工作应导向激励向供应商披露,但除此之外没有提供实际细节。没有证据表明研究人员比较防御性和进攻性赏金计划以寻找最高售价。我们的观点是,向供应商披露或不披露的决定主要是道德问题。

那么,目前谁有动力参与漏洞赏金计划?两类人:经济 disadvantaged 国家的公民,他们可以利用美元汇率;以及想提高安全技能和学习行业工具的学生。读完《Fixing a Hole》后,我不相信精英们有动力参与漏洞赏金计划。也许他们应该运用一些不可或缺的权力,向市场要求更多。

如果你喜欢这篇文章,请分享:
Twitter LinkedIn GitHub Mastodon Hacker News

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计