你必须要体谅Sean Melia(meals),他在十万白帽黑客聚集的HackerOne社区只是位列第二名。毕竟他把时间分割成了两部分,业余寻找漏洞,日常则在安全服务公司Gotham Digital Science干资深安全工程师的活儿。
Melia,26岁,北卡罗来纳州居民。从2014年9月注册HackerOne到现在,个人提交了超过700个有效漏洞,并且还在Bugcrowd、Synack和其它有独立漏洞披露计划的平台上提交过更多漏洞。
Melia在HackerOne上的id叫“Meals”,在SC Magazine最近一次专访中,Melia分享了过去挖到的一些印象深刻(赏金丰厚)的漏洞案例,以及个人对漏洞行业的看法。以下为采访对话。
SC:兼职漏洞赏金猎人以来,你赚了多少钱?
M:过去两年多里,大约40万美元。
SC:如果你想,其实可以全职做这个。只是现在你选择业余时间做。
M:是的,我喜欢两个一起,因为这样我能找到更多的漏洞。两个同时进行非常有挑战,我可以在工作中学习各种技术。我希望接触更多各式各样的应用,并试图尽所能的去掌握它们。就这个角度看,工作对这两方面都有益处。另外,专职漏洞赏金计划可不会有健康保险和休假。
SC:你印象最深刻的漏洞是什么?
M:最近一个是去年6月,星巴克网站上发现的一个低级漏洞。如果你在网站上下单,购买一杯送货上门的咖啡,你会收到一个订单号。这个订单号是一个逐渐增大的数字,现在下单是#1000,再下单可能是#1001。我发现,通过修改订单号,可以查看其他买家的订单详情。比如我尝试修改为#2002,我会看到“加利福尼亚州 约翰·史密斯”,他的信用卡最后四位是“xxxx”,地址、电话、订购的咖啡种类等细节都能看到。通过这个漏洞,我得到了6000美元奖金。
那个地方还有一些其它错误。在网站上咖啡送货上门的订阅服务里,可以在你的账号里编辑其他用户的订阅。比如约翰·史密斯订阅了每周送一次上门,我可以在我的账号更新他的订阅,把他的咖啡送到我家来,钱还是由他付。而这只需要修改一些数字,把你的地址更新进去即可。不过这很可能被发现,一千杯咖啡被送去了同一个地址。
SC:星巴克该给你个免费咖啡的奖励。
M:大概来说,在星巴克网站上发现的漏洞,让我收获了4万美元奖金。所以足够支付很长时间的咖啡了。
SC:你注意到许多非传统公司和组织开始对漏洞赏金计划感兴趣了吗?
M:当然。国防部,政府的漏洞赏金计划,这对我来说是一个惊喜。我觉得很有趣,有着诸多繁文缛节的政府居然可以通过这样一项计划。现在来看,连政府都可以做到,很难说有某家公司做不到吧。
还有物联网,当我被邀请测试某个程序,如果有硬件部分我会很高兴。有次圣诞购物,我收到邮件受邀参加某个这样的测试,当时我便立即离开了商场,去百思买购买了硬件开始测试。我很喜欢尝试硬件,那次发现了两个非常酷的bug,赚了大概5000美元。那天晚上没有人去买硬件,我花两百美元买了,最终一晚上赚了5000美元。
SC:你注意到许多非传统公司和组织开始对漏洞赏金计划感兴趣了吗?
M:银行,它进来会很有趣,不过银行们可能不太会为他们的应用程序设置赏金计划。
还有医疗健康,这个行业有太多的安全违规案例了。只是应该很难被批准,该死的官僚主义。或许最终有一天我们能看到。
SC:作为HackerOne排名第二的研究员,你觉得你的个人竞争力如何?
每隔一段时间,我都会检查一下我的排名,因为我想拿到第一名。只是时间太少了,如果我有无限的时间,我想我可以获得第一名的。但这样生活将会失调,漏洞挖掘和正常工作。
我知道其他一些顶级白帽子。大家处于竞争关系,但我们会彼此分享。如果发现一个特别酷的漏洞,我们会互相谈论,并分享不同的见解,以及更好的利用方法。
M:你过往挖漏洞的经历中,碰到的最好公司有哪些?它们有什么特点?
SC:我喜欢那些沟通透明的公司和研究人员。如果他们某些业务没有奖励,或者奖励较少,他们会把信息放在介绍里,并解释为什么。
我曾经为一些程序找漏洞,对方只是说:“这不适用”,没有其它解释并关闭了反馈。而对于沟通透明的程序,工作人员会说:“因为这些因素,我们将降低赏金”,或者“我们不会为此付费,因为它是一个第三方托管的系统。”如果某家公司会这样反馈,他们是伟大的,也许你可以主动多关注下。假设他们发现你报告的某类型错误较多,可能会直接说:“嘿,你可能不想花更多时间来报告这些。”
有次我工作时,有个独立软件找过来,邀请我进行测试。我当时和对方研发和安全人员可以直接沟通,我问他们:“你认为这是个有效的漏洞吗?或者这个?”当得到他们认可后,我把相关漏洞详情写好并提交过去。我很享受这样的过程。
至于规格方面,Twitter是个很好的例子。他们会具体定义某类漏洞的定价,比如跨站脚本,可以得到这个金额。所以挖Twitter的漏洞很踏实,你很清楚即将提交的漏洞会被奖励多少钱。
某些公司发布漏洞赏金计划,他们可能会说,我们单个漏洞的奖金区间为50-10000美元,但他们对于什么样漏洞可以拿到10000美元没有任何说明。当一家公司有一份清单,很清楚的说明他们的需求,你知道去找哪些漏洞会获得最高回报,那种感觉真棒!
M:有没有公司在漏洞赏金上犯过错?
SC:某年夏天我被邀请测试一个项目,单个漏洞支出是100-5000美元。通常,能拿5000美元的漏洞有远程代码执行或SQL注入,你可以访问客户数据或绕过授权控制。我向这家公司提交了大概超过100个漏洞,最终付款只是最高奖金的一小部分。
我记得应该报告了8、9个远程代码执行,赏金最高的一个是500美元。当时我在想,如果远程代码执行只够500美元,什么样的漏洞可以拿5000美元呢?这家公司不太爱沟通,到现在我还不知道他们的5000美元要奖励给怎样的漏洞?假设有人把办公室里所有电脑偷走,或许能得到吧。
SC:你对灰帽子怎么看?你会考虑把漏洞卖给外部公司、组织或政府吗?
M:我不知道。我喜欢漏洞赏金计划的设置,在修复后我可以去谈论,取得授权并公开。如果我SC:发现一个特别酷的漏洞,可以赚一百万美元,那么我肯定会卖。但就目前看,我很怀疑这会发生。
M:对于想进行安全测试的公司,你有什么建议?
SC:如果一家公司想尝试下,可以制定一个私密计划,和漏洞平台合作邀请5到10位研究者参与。
M:什么样的项目会吸引你?
SC:我主要参与一些私密项目,邀请的人很少,我会有更高机会挖到非重复漏洞。此外,如果某个项目如果开出最高5000-10000美元奖金,我也会去看看。
M:许多公司的漏洞赏金计划只包含一到两个网站,或者是一个功能繁杂的应用。而我更喜欢去关注赏金范围大的项目,比如外部基础架构在范围内,或者外部资产(IP主机、虚拟主机、第三方服务域等)在的。范围大,攻击面也会很大,我可以先查找他们的所有资产,然后逐个仔细研究。你可能在某个系统上发现一个问题,然后意识到他们在许多系统上做了同样的事情,这样下去很快就可以找到5、6个案例甚至更多的严重漏洞。