漏洞赏金与精英黑客:现实与数据的深度剖析
Trent Brunson
2019年1月14日
paper-review, research-practice
试图通过参与漏洞赏金计划谋生的程序员,就像说服自己德州扑克技术好到可以辞职一样。Ryan Ellis、Keman Huang、Michael Siegel、Katie Moussouris和James Houghton合著的《New Solutions for Cybersecurity》中《Fixing a Hole: The Labor Market for Bugs》一章提供了数据支持。
漏洞赏金遵循帕累托分布,表现出与财富分配和其他社会现象相同的特征。少数精英(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 的个人。)无论他们是谁,他们都是不可或缺的,需要被激励加入漏洞赏金计划。为此,作者提供了三种解决方案:
- 通过仅限邀请、不对公众开放的计划保持人才库独家。这确保最有才华的人不会因次等人才而失去任何赏金——即使是低 hanging fruit。
- 随着连续有效提交提高价格,以阻止人们 straying 到其他计划。
- 向有才华的研究人员提供资助,即使没有发现漏洞也支付费用。
这条建议与直接联系咨询公司进行代码审计没有太大区别。此外,独家漏洞赏金计划面临参与者的鸡或蛋悖论:当没有机会建立声誉时,如何获得邀请?此外,举办漏洞赏金计划的控制和风险比大多数人意识到的要少得多。
漏洞赏金计划的经济学是动荡的,因为有一个竞争的攻击性市场在起作用。可利用的零日漏洞可以从合适的买家那里获得高达数百万美元。任何发现关键漏洞的人可以选择不向供应商披露,并尝试在其他地方以更高价格出售。《Fixing a Hole》建议工作应导向激励向供应商披露,但除此之外没有提供实际细节。没有证据表明研究人员比较防御性和攻击性赏金计划以寻找最高售价。我们的观点是,向供应商披露或不披露的决定主要是道德问题。
那么,目前谁被激励参与漏洞赏金计划?两类人:经济弱势国家的公民,他们可以利用美元汇率;以及想提升安全技能和学习行业工具的学生。读完《Fixing a Hole》后,我不相信精英们被激励参与漏洞赏金计划。也许他们应该运用一些不可或缺的权力,向市场要求更多。
如果你喜欢这篇文章,分享它:
Twitter
LinkedIn
GitHub
Mastodon
Hacker News