AbdulrahmanAlqabandi翻译
核子可乐策划
褚杏娟没错,我是做“Bug赏金”这行的,也有人说应该叫“漏洞奖励”计划,但我觉得还是Bug赏金听着比较带劲。在今天的文章中,我想跟大家聊聊在找bug这件事上,业余和专业的到底有什么区别。这些都是我的真实经历,包括种种遗憾、惊喜和建议,希望能给各位带来一点启示。最后要强调一点,本文完全是我的主观经验,可能跟您的真实经历有所出入。
我跟bug赏金工作的缘分始于年初,当时我刚收到人生中第一笔官方赏金,没想到在这行一干就干到了今天。我发现的第一个bug是OfficeOutlook中的XSS漏洞;年底,我又在火狐浏览器里发现了自己的第一个浏览器有效bug。这段经历为我打开了新世界的大门,之后我开始收敛心神,专注于给浏览器“挑毛病”。
过去五年来,我完成了从大学辍学生到助理系统开发者、再到网络安全工程师的职场蜕变,最后拿到了如今这份微软浏览器漏洞研究员的职位。这样的发展简直如梦似幻,连我自己都很难相信。
1走过的弯路在参与bug赏金活动过程中,我个人走过的最大弯路其实来自思想意识。
我之前一直觉得给浏览器找bug的本事不足以让自己在网络安全领域找到一份像样的工作。必须承认,浏览器bug研究属于网安领域内的小众方向,这种小众性也加剧了我的错误判断。我早期接触过的其他bug赏金同行大多是从Web应用程序安全起步,并一路坚持下去的,所以对自己这种痴迷于浏览器安全研究的路线,我实在是没什么信心。
但事实上,浏览器安全属于一块小而美的利基市场,我完全有资格在主要浏览器开发商那里拿下相应的职位。如今,我已经在微软浏览器团队工作一年有余,日常工作经历早就让我放下了对自己的怀疑情绪。所以在这里,我想回顾一下当初的错误,聊聊怎么为如今这份工作提前做好准备。
当初的我从来没想到自己能进入浏览器安全团队,所以一直没考虑过怎样才能保护浏览器安全。当初我找寻bug的主要方法就是多阅读关于浏览器和安全设计的资料,然后手动测试自己的猜测。这种方法虽然极为耗时、效率低下,但挺适合我——整个过程有点像冥想,可以说非常沉浸。如果运气不好,我也能学到关于最新WebAPI的知识;如果运气好一点,那我没准就找到了一个有趣的安全漏洞。这简直就是双赢,唯一的问题就是花费的时间有点多。
像我这种野路子出身的选手,一直都没接触过fuzzing;更丢人的是,当时我对fuzzing方法的认识都有错误——我一直觉得fuzzing就像是加密货币圈搞的挖币,fuzzer这东西只要跑起来就会疯狂吃掉我的CPU资源,直到遇上问题并引发崩溃。虽然我也知道要吃浏览器安全这碗饭,fuzzing这关早晚得过,但原先的舒适区实在太舒适了,容我再躺会儿……
总结:寻找适合自己的利基定位,把这种定位跟个人爱好结合起来。只要迈出兴趣与工作契合的第一步,你已经赢了。 2只管找,不管修作为bug赏金猎人,那时候我满脑子都是找bug。发现漏洞之后,我只需要在提交时稍做说明就直接踏上了又一段的找寻之旅。这种只管找、不管修的风格让我的技能储备出了问题,我根本不理解很多bug到底是怎么引发的。
这里要给新入行的朋友一点建议:如果你和当时的我一样,总想抢在别人前面早点提交新bug,那至少记得去看看修复补丁公布。
那时候的我自以为聪明,“我为什么要自找麻烦?又没人给钱。”这话对,但也不对。过度急功近利反而适得其反。