今天我们要去读一篇 USENIX Security 2023 的论文 Bug Hunters’ Perspectives on the Challenges and Benefits of the Bug Bounty Ecosystem,也是本届会议评选出的优秀论文之一。在这篇论文中,作者用了科学的方法调查了当前资本主义世界中常见的一种“赏金计划”——针对代码 bug 的赏金计划(Bug bounty program),收集并分析了对应的“赏金猎人”——也就是那些全职或者兼职挖掘代码问题并赚取赏金的专业安全人员对当前这个生态环境的看法。
这种对安全专家的调查其实是很八卦很有意思的,只不过用论文的形式来阐述,里面就有很多科学的调查方法,会显得略微有点枯燥。我们先看看总结好了,大家是不是注意到了最显眼的一句话——“Rewards and learning are big motivators, reputation isn’t”?嘿嘿,既然是赏金猎人,大家不谈钱当然不好意思(即使是《曼达洛人》里面的最原教旨主义的赏金猎人丁·贾林也要收钱是不是)。不过这篇优秀论文还有很多细节,我们从头来了解一下。
首先是一个小测试,欢迎评论区留言:
谁是世界上最早开始设立 bug-bounty program 的公司?
在论文一开始,作者首先讨论了数字赏金猎人遇到的一些困境,比如 bug 又不是在物理上独一无二的人类目标罪犯,可能会有好多赏金猎人同时发现了同一个 bug 然后分别报告,这时候怎么发钱?同时,赏金猎人也会担心自己发现的问题得不到承认(嘿嘿我们的读者是不是有类似遭遇,给 Apple 或者 M$ 或者 xxx 公司报告 bug 之后对方觉得这就不是个问题),而且还有很多软件可能没那么知名,赏金猎人可能都不会去关注它们中包含的 bug 和漏洞。为了解决此类问题,也有一些漏洞报告平台(嗯我们知道国内有一个叫做 SRC 的名词)诸如 Bugcrowd
和 HackerOne
应运而生。
本文的主要研究目标,是想要弄清楚到底哪些因素能够让一个 bug-bounty program 更具有吸引力(什么,你说内马尔在沙特两年总薪资可能达到4亿美元?对不起我没听到),然后为这个生态系统能够更健康地发展提供建议。用人类语言表达一下,就是怎么能用更少的钱,鼓励大家发现更多的 bug 和漏洞。 为了做到这一点,本文作者认为自己和以前研究的最大区别,在于本文特别关注了数字赏金猎人的内心世界,而不是只关注那些所发现的漏洞。不过前几年 IEEE S&P 上面的一些类似的研究工作还是很推荐大家去阅读的:
Hackers vs. testers: A comparison of software vulnerability discovery processes. In 39th IEEE Symposium on Security and Privacy (S&P), 2018.
Hacked: A pedagogical analysis of online vulnerability discovery exercises. In 2021 IEEE Symposium on Security and Privacy (S&P). IEEE, 2021.
我们经常说,搞技术的同学也需要多多了解一些人文学科的内容,特别是学习一下人文学科的研究方法。本文看起来就是用了一些特定的(社会学?)研究方法,试图去量化评估到底这些数字赏金猎人心中,哪些因素是最重要的。作者首先从四个方面来设计问题:
猎人们选择要分析的程序时考虑的因素
漏洞挖掘中遇到的挑战
漏洞赏金计划中的各种回报
(中心化)bug-bounty 平台的优势
基于上面四方面的考量,作者通过三轮调查,一步一步揭示出漏洞挖掘中的关键因素:首先通过对56名猎人的调查,初步统计出漏洞挖掘中大家会考虑的因素有哪些;然后通过更大规模(159名猎人参与)的调查,确定各类因素的重要性;最后是一个半结构化的访谈(?原文是 semi-structured interview study,有24名猎人参与)来分析为什么那些重要的因素是重要的。
我们直接跳过论文的方法论部分(整个第三章),感兴趣的读者可以自行阅读。来看看调查的结果,当然首先要看看受访的猎人的一些基本情况(又是一个男女占比不均衡的领域)。这里面很有意思的是读过大学但是没有学位(College,no degree)的人数比拿到硕士或博士学位的人数要多,不过最多的还是本科学位(暗示了什么)。至于到底大家每年能刷漏洞奖励拿到多少钱,请仔细看表格吧:
作者在第一轮调查后,总结出54个(影响猎人去挖掘某个特定程序的)相关因素,然后通过第二轮调查评估了不同的因素对于猎人的影响:
大家可以仔细去看看下面这个表格(或者去论文中看看附录中更加详细的表格),这就是一个教你如何做决策的 guideline 嘛!如果你抱着“挖洞赚大钱”的心态,又不想花钱去学什么(无良教学平台开设的)课程,不妨仔细钻研一下:
论文的 Section 5.4 还专门讨论了数字赏金猎人们是如何看待漏洞上报过程中的那些无脑回复的,看来全世界的厂商/客服都是一样的。但是,在受访者中也有一部分猎人对自己这个群体进行了反思:他们认为很多猎人的漏洞报告的写作质量非常糟糕(更不要说像我们公众号文章一样既有质量又有文采😂),而且有些猎人有时候脾气很差,不够职业……
论文还讨论了所谓的“gig-work”也就是“打零工”的模式在漏洞赏金计划这种生态中的好处与坏处。这个其实不用作者去写,大家也都清楚,跟其他行业一样,你选择自由职业,就很容易有上顿没下顿,除非你是这个行业的翘楚(诶,又想到内马尔了)。所以其实很多数字赏金猎人都有其他的(全职)工作,防止自己挖不到漏洞的时候饿死或者冻死在街头(maybe 考公上岸以后开启猎人生涯是不错的选择?)
作者在 Section 5.7 特别讨论了 bounty platform 给猎人提供的安全庇护(legal safe harbor),看来在世界其他地方的猎人也还是很注重对自己肉身的物理安全进行防护的。
在本文对应的slides中,作者给出了对 bug bounty program 的一些建议
和本文相关的研究还有一个2022年的文章,大家有兴趣也可以周末去读一下:
Bounty everything: Hackers and the making of the global bug marketplace
论文:https://www.usenix.org/conference/usenixsecurity23/presentation/akgul