漏洞悬赏是指对发现网络安全隐患而进行的奖励机制,近年来以众测的模式越来越流行。Oversecure的创始人Sergey Toshin就是当他在一家网络安全公司做兼职的时候,被自己当时的同事建议去进入这个领域的。Toshi表示,那时的同事们声称漏洞悬赏能每个月给他们的收入增加5,000美元——所以,他也去试了试。
刚开始的时候,他几乎一无所获。“我95%的漏洞悬赏报告都被退回了。”他回忆道。从个人角度而言,Toshin也因为自己在知名漏洞悬赏平台HackerOne上的名气不佳而信心遭到打击。Toshin说:“我觉得我的性格是那种,当我失败的时候,我会觉得自己一事无成。但是或许一周或者两周以后,我又会想‘不行,我可以停止用那种想法’!”在他看来,他之后的公路旅行为他漏洞悬赏的成功带来帮助,因为他转运了:他的报告一个接一个地被认可了。“最高的漏洞悬赏奖励有3,000美元。”他回忆道,“我拿了好几个那样的悬赏。当然,我旅行也不错。”
直到谷歌在2019年进一步扩展了自己漏洞悬赏的清单,Toshin才最终成为了一名全职漏洞猎人。“那天是夏天,我在酒吧。”他如是回忆。在他去室外抽烟的时候,Toshin扫了一眼谷歌的新闻:“我那时就想‘我要发了’。”他是对的。仅仅在谷歌的漏洞悬赏计划中,Toshin就赚了有90万美元——让他足够在不需要种子资金的情况下创立自己的公司。
像Toshin这样的故事在越来越多。之前只是网络安全的一个小领域,但现在漏洞悬赏却在爆炸式增长。大大小小的组织都试图将他们代码中的漏洞给找出来。“现在,即使那些小公司都在运作自己的漏洞悬赏项目。”Toshi说到,“现在有更多的地方能找到漏洞。”在HackerOne最近的一份研究中发现,自从2018年以来,通过漏洞悬赏赚钱的漏洞猎人数量增加了143%。
许多的黑客最终确实赚到了很多钱。但是,现实来看,这非常困难且风险很大——不仅仅是对漏洞猎人,同样也是对进行悬赏的公司。像HackerOne和Bugcrowd这类进行漏洞悬赏的中间人平台,多少游离在道德与法律的灰色地带;而对那些进行悬赏的软件供应商的而言,迟迟不支付赏金以及赏金太低就有激怒漏洞猎人的风险。
漏洞悬赏的起源
自从有了软件,漏洞就存在了——在1947年,哈佛大学的研究人员发现了导致他们新的超级电脑的短路元凶——一只死掉的蛾子。从那时起,遍历代码以发现脆弱性,就成了程序员工作的一部分。不过,把这个工作以悬赏的形式交给外部人员的想法,直到1983年才出现。那个时候,软件公司Hunter & Ready以一辆大众甲壳虫为奖品,奖给任何能找到他们操作系统中漏洞的人。
但是,直到十年后,这个理念才随着Mozilla的Security Bug Bounty Program进入主流视野。在Mozilla的安全工程主任Lucas Adamski看来,外包渗透测试的逻辑很简单。“任何一个安全系统的强度,在我看来,只是取决于有多少聪明、主动的人在这上面花了多少时间的一个函数结果而已。”他表示,“仅此而已,和究竟是谁写了这个程序并没有关系。”
漏洞猎人Justin Gardner认为,漏洞悬赏也是一个成本效益问题:“我认为,对企业来说,ROI非常高。”有时候,一个策划完整的漏洞悬赏项目可能会发现一个灾难级的漏洞。他提到在一次案例中,他和另一名黑客Sam Curry一起,成功攻陷了一个有1亿条记录的星巴克客户数据库。他表示,如果那个脆弱点被恶意攻击者发现,就可能对星巴克造成数百万美元的损失。
Gardner自己的漏洞悬赏之路比较曲折,从他遇到知名黑客Tommy,或者又称“dawgyg”,开始。像Toshin一样,Gardner在转成全职漏洞猎人前,花了数年在稳定的编程工作中。他很快发现从一个赚零花钱的副业转成全职需要极大的专注力。
“有两个主要阶段。”Gardner解释道,“第一个阶段需要获取渗透测试的相关专业技术,可以通过教程或者文章学习。然后,需要一些必要的程序进行漏洞狩猎,第二个阶段就是接受现实:要找到漏洞往往需要花费很长的时间。而作为一名黑客,你可能一直在失败,因为其他人的工作就是阻止你做你想要做的事。”
漏洞猎人的职业风险
这种高失败的比例,以及悬赏项目质量层次不齐的情况,意味着大部分漏洞猎人还是兼职的,但是就算是这些黑客,在Clément Domingo看来,也要当心一些问题。在他在法国和进行漏洞狩猎的时候,Domingo就知道一些漏洞猎人太投入了以至于“他们都忘记去见自己的朋友和家庭”。
有些人在这种熬夜工作的生活方式夹缝求生。对Gardner自己而言,他认为由于工作的自由性以及收入的可观性,这些都是值得的。尤其对他而言,他通过漏洞悬赏付清了自己的学生贷款,并且和自己的妻子移居到了日本。但是,他也承认,要做到这些并不简单。他也看到了许多漏洞猎人最终选择了放弃,并且回到了正常的朝九晚五的生活中。还有一些人,他们的自我认可度严重降低,感觉自己一无是处。
对于漏洞猎人而言,工作和生活的平衡只是一部分。那些想要成为漏洞猎人的人还需要一些基础的行为准则:最直接的一点,按时间要求向正式的悬赏项目汇报漏洞。任何其他的问题都可能会跨过道德红线——比如,有些个人会直接联系公司,宣称他们发现了一个严重漏洞,并要求付钱。
Gardener表示,大部分这种被称为“求讨赏金(beg bounties)”的例子可以被安全地无视。不仅因为未经授权的渗透测试是违法的,更因为很多时候这些人只是“试图通过报告低危甚至没有影响的漏洞来敛财”。
相对的,那些不期望赏金却报告了真正严重漏洞的人应该得到公平的对待,而非当做犯罪份子。Gardner和Domingo都提到了密苏里州的一个案例。该案例中,一个人因展示网站如何会显示教师凭证过程中,无意间泄露了他们的社保号码,而被威胁起诉。Gardner评价:“这种情况,让人感到难过。”
运营漏洞悬赏项目的风险
如果运营漏洞悬赏的公司执行能力不足,同样也会面临风险。严重漏洞的奖励能够高达上万美元,但是对于大部分全职漏洞猎人的衣食所系却是中低危漏洞,一般金额在几百到过千不等。这种价位结构能够成立的前提,是对漏洞的快速鉴别,以及内部IT部门的快速支付。Domingo表示,这种关系是基于双向尊重的。“这些都是一个好的项目的关键。”他说,“这样就会刺激你去挖掘更多的漏洞,因为你知道那些人关注你在做的事情。”
那些运营得很差的项目——在Gardner和Domingo看来,是绝大部分项目,会给主办的公司带来额外的风险。延迟付款、低赏金、以及糟糕的沟通,都会让黑客们将发现的漏洞卖给更高的出价者。“人们感觉被侮辱,然后就泄露内容?这是你总是得面对的事情。”Gardner表示,“黑客这个群体,有些时候会有点情绪化。”
Gardner对概率运营一个新漏洞悬赏项目公司有一个很简单的建议:“对那些试图修复你系统的人,试着别当一个混蛋。”不过,他也承认,这些事情说起来简单做起来难:“IT部门往往会应接不暇。”虽然说他也看到过许多黑客通过第三方传递漏洞的案例,但是总是“会有一些方式进行越级,向企业直接报告”。
自动化能力的矛盾
并不是每个人都相信漏洞悬赏能够有效保障代码的安全性。“对软件供应商而言,将消除他们软件中漏洞的责任转移给漏洞猎人相当便利。这些漏洞猎人相比专门维持安全的人员而言,人员成本更低。”本•古里安大学网络安全研究部门的首席创新官Oleg Brodt提到——某种程度来看,对那些购买这类软件的公司是个相当危险的观点。
Gardener对此观点表示怀疑,因为大部分公司不会买那些只花几千美元在漏洞悬赏上的软件。同样,他也不认为,某些黑客用自动化漏洞检测工具这一趋势会让专业的漏洞狩猎职业走到尽头。“有不少高超的程序员和黑客在这项叹为观止的工作。”他表示,他引用了Eric Head(更多以“todayisnew”为人所知)为例,“他每个月都在HackerOne的排名榜前列,已经持续了数年……他所做的一切都是基于外部攻击面监测和自动化。”但是,Gardner认为,相比使用的工具,漏洞狩猎的成功还是基于人类的创造力。
即使对于那些缺乏这些能力的漏洞猎人,Gardner认为新的机会处处可见,从社交巨头的AI问题到加密货币的智能合约:“几乎以太坊上所有的东西都是开源的。所以攻击者很容易就能进去阅览代码,然后发现漏洞。”
但是,对于Toshi而言,最有吸引力的领域还是在移动应用。在他看来,这一领域相比网站,更容易进行反编译。在2020年,Toshin用他在漏洞悬赏中获得的资金成立了Oversecured,一个提供在iOS和安卓应用中进行自动化漏洞扫描服务的创业公司。“现在,我们有一些欧洲银行和多个网络安全咨询公司作为客户。”他说道。
运营Oversecured的需要意味着Toshin现在已经很大程度上放弃漏洞悬赏,但这不代表他对这个职业有了新的奇怪思考。当Oversecured成立的时候,Toshin将每次扫描定价在10美元,因为他认为这样能抓住批量化搜索漏洞的市场。“但没有人用。”他说道。Toshin之后将价格提升到了250美元,然后销售量猛增。对此,他表示,很有可能人们并不相信扫描器的市场推广材料;在漏洞悬赏的荒野,“他们更相信价格”。
给漏洞猎人的三个建议
而针对漏洞悬赏存在的风险,White Oak Security的安全人员Brett DeWall则对漏洞悬赏总结了三个问题与建议:
(1) 交流
当公司的渗透测试人员试着去发现漏洞的时候,缺乏沟通机制就会成为“浪费时间的流程”。如果组织没有一个完善建立的漏洞悬赏项目,研究人员就会发现自己需要从LinkedIn到其他社交网络去跨频道发现电子邮件信箱和销售频道。
如果一个厂商在他们的网站上没有正规的漏洞发布指南,开启相关沟通就会变得更加困难。
“现在,公司依然不怎么愿意看到他们自己产品或者解决方案的安全新闻。”DeWalls说到,“大部分的沟通最终都没有了下文。这对一个试图用最合适方式传递敏感信息的研究人员来说非常受挫。最大的感想可能就是一直尝试。”
(2) 影响范围
“范围之内”与“不在范围之内”的漏洞也是披露流程的常见问题。举个例子,组织可能会考虑远程代码执行漏洞,但是不考虑任何其他严重性在其之下的漏洞——除非这些漏洞的利用率或者现实影响很大——比如导致服务器不安全、SSRF攻击、不安全的直接对象引用(IDOR)漏洞等。
DeWall说White Oak已经碰到了多个例子,当SSRF/IDOR漏洞不在范围之内,因此漏洞的提交并未被采纳。这可能是有许多原因,比如审查人员数量太少,无法验证报告以及需要花大量时间处理漏洞。
DeWall评论道:“组织可能没有足够的预算支付赏金,或者雇佣足够多的员工进行验证工作。如果一个高风险的漏洞被发现了,但是又‘不在范围之内’,那它是否还能被利用呢?我会强烈敦促那些有漏洞悬赏项目的组,接受对任何‘不在范围之内’的漏洞提交(或者至少提供一个联系表格)。”
(3) 认可
根据DeWall的观点,漏洞披露“最大”的挫折之一在于无法从漏洞上报中获得任何荣誉。
研究人员希望他们的工作被认可,也可能会想要将他们的发现列表作为自己的资历之中;但是另一面来看,组织却不想让公众知道他们自己产品的安全问题。
如果组织想要鼓励研究人员继续花时间改善他们的产品,最好能有一个“名人墙”——不需要将具体的技术或者漏洞问题呈现。这对研究人员而言也是一种比较公平的慰藉。
“漏洞悬赏或者安全研究现在已经存在了,而且短时间内都不会停下——也可能永远都不会结束。”DeWall表示,“然而,我们处理漏洞悬赏的方式是可以改变的,研究人员和组织必须一起合作。”
点评
系统的安全性仅靠企业自身的安全人员去挖掘维护显然是不现实的:对大部分企业而言,是无法承担安全研究人员高昂的人员成本的。漏洞悬赏作为一种类似“安全外包”的方式,能给企业节省大量的成本,同时取得不错的安全效益。但是,漏洞悬赏同样处在法律的边缘,稍不注意就可能引发违法的风险。无论对于白帽子,还是漏洞悬赏平台,都需要尽力规避这些潜在的风险,同时提供优质的漏洞挖掘服务;同时,对于企业以及监管机构,如何平和地看待漏洞的挖掘与披露,也是这个领域能否健康成长的重要因素。