本期采访对象@edoverflow,他是Razer、GitLab和HackerOne等知名网站的多个高危漏洞发现者,他是多篇角度独特的网络安全技术文章发表者,他是Web安全策略标准化网站Securitytxt.org维护者,同时,他也是一名全职的计算机系本科生。
Q:很高兴你以接受我们的采访,请向大家简单介绍一下你自己?
大家好,我的名字叫ED。我是一名Web开发设计者,也是一名安全研究者。目前我在苏黎世联邦理工学院 (ETH Zurich)计算机系本科就读,兼职作为HackerOne的安全分析师。我对网络安全的兴趣应该说始于摄影,一开始我去学摄影,然后就对设计开发感兴趣,最终却对网络安全着迷了。
Q:你如何协调你的日常生活、工作和漏洞众测项目?你把漏洞众测当成是一种工作还是爱好?
我会在一些业余时间来挖挖漏洞,我目前也不靠这个来维持生活,所以,我会把我的学生生活过得很轻松。也就是说,当我想挣点零花钱的时候,我会花时间来挖漏洞。
Q:一般挖漏洞你会花上多长时间?平均来说,你每个月会发现上报多少个漏洞?
从时间上来说,我最多会花四个小时的时间来测试一个漏洞。我曾经在挖漏洞上投入了太多时间,但后来我发现为了保持兴趣和健康,不能在其中过分投入精力。在做漏洞众测项目时,我可以做到每月三个漏洞的发现上报量。
Q:你发现的最重要或最具威胁,或赏金支付最高的漏洞,花了你多长时间?
我记得,我的第一个高危漏洞是在学习了漏洞挖掘技术之后数月,在某非众测平台上发现的。不可否认的是,老早以前我就对网络安全感兴趣,但之后接触到漏洞众测项目后,这种模式对我来说完全是一种全新的概念。
Q:在你发现上报的漏洞中,哪一个是你个人比较喜欢的?
老实说,这很难选出一个具体漏洞来。回想起来,我认为有很多漏洞都非常有趣。我个人比较喜欢的要属那些背后有故事的漏洞。比如说,我最近在研究名字空间域(namespace)在某些测试目标中的保留存储机制。一开始,我只是理论上构思了这个漏洞,但最后发现,在一些应用环境中,这种漏洞竟然真实存在,让我非常意外,我也会继续深入研究下去。
Q:对你来说,你是在什么时候以什么方式实现了真正的突破和转变?哪个阶段你意识到安全攻防和漏洞众测是你值得投入精力来做的事业?在成为一个优秀的赏金猎人过程中,你有什么值得分享的见解和其中遇到的问题?
在我的职业白帽生涯中,DEFCON和H1-702对我来说算是一个转折点。目前,在漏洞赏金历程中,我仍然在不停的学习,也会多多分享各种东西,我希望自己能进一步探索挖掘出更多更好的漏洞,到时再给大家更精华的东西。
Q:你用什么方式来保持知识更新?
对于一些通常的更新,我一般会关注Twitter、blogs、Slack频道、黑客新闻和HackerOne上的黑客动态。另外,最主要的是,我比较喜欢和其它白帽交流,也经常去参加一些本地的安全会议。
Q:你会和其他白帽黑客一起合作吗?你能透露他们的名字吗?
我经常和大家一起合作。比如说在H1-702黑客马拉松期间,Ben Sadeghipour给我最好的建议就是要和业内其它成员一起合作。我觉得我都一直在与世界各地的白帽合作搞一些安全测试工作,一般来说,我们通过互发短信进行协作,但有时在遇到某些测试项目时,我们也会通过视频通话或共同亲自动手去完成。我合作比较多的要数 Gerben Javado 和 Tom Hudson,连@mongobug也会偶尔给我一些建议。安全行业的人大多都比较热心和团结,如果你有问题可以大胆的提问寻求帮助。
技术问答时间
Q:面对一个测试目标时,你会如何处理?你常用的思路是什么?你的前期踩点和信息收集步骤有哪些?收集的信息在后期测试时发挥了什么作用?
我喜欢做试验,也就是说我会花很多时间在一个可控的环境中进行测试以寻找异常,这是一种测试目标的好办法。在前期侦察踩点阶段,如果一些常用工具无法完成的工作,我会想办法自己编脚本去实现。说到脚本时,我觉得在侦察阶段要尽可能多地去执行一些自动化脚本,非常关键,尤其是针对一些难度较大或范围较广的目标网站时,这种方式会让你极具优势。我的工具库里就包含有子域名枚举、开放端口探测、目录枚举、目标DNS记录检测、服务端应用截屏等侦察踩点脚本。一旦我的脚本工具任务执行完毕,其结果会自动存储到一个git库中,另外,我还会用一个集成的侦察工具库 megplus,其中整合了多种踩点脚本,你可以一试。
说到自动化,我很长时间没在侦察阶段中使用脚本输出的差异化监控机制了,现在我主要使用git库提交结果时产生的通知来观察不同,不同的git差异化可以方便地对比脚本运行结果。
Q:当你在测试目标网站时,会不会把所有的漏洞类型都测试一遍?
不,肯定不会。我使用的方法主要根据目标来定,从经验上来看,某些类型的网站会产生相应的漏洞模式,比如,金融机构网站在功能要求较高的支付行为过程中,如果执行不当就会产生某些漏洞。除了这类漏洞之外,我还会根据目标网站,去测试一些可能导致各种漏洞的功能应用。就像如果我偶然发现webhook,由于其认证完整性涉及的外部实例应用,我会立即想到这可能会触发SSRF漏洞。
Q:你用工具吗?你会自己开发一些自动化或便利的漏洞挖掘工具吗?你一般用的 BurpSuite插件有哪些?有没有什么独特的工具你觉得很好用?
当遇到某些任务不能用现成工具来完成时,我会自行开发实现工具。我认为,熟悉Linux系统(Kali)自带的工具会对你的漏洞挖掘有很大帮助,另外我还用到一些常用的第三方Web应用测试工具,如Sublis3r、knockpy、dirsearch、meg、LinkFinder、virtual-host-discovery、wpscan、webscreenshot、twitterBFTD、broken-link-checker,以及收集的一些脚本工具。
除了漏洞挖掘工具之外,我觉得一些对漏洞报告有帮助的工具也非常值得使用,例如Frans Rosén的漏洞报告模板生成工具就很不错,它能通过填空方式快速整合漏洞报告,这种模板化的漏洞报告工具,对一些要求较高的众测项目非常有用,同时也能节省时间。
Q:问个大家都比较关心的问题:你如何来测试 RCE 或 SQL注入等服务端漏洞?
这个首先要了解你选择的运行代理机制,然后反复在一些CTF比赛或调试环境中留心来发现这种漏洞。经常来说,我会用我自己开发的一些专门挖掘SSRF漏洞的小工具。
Q:你会发现一些众测项目中大家都不容易发现的漏洞吗?
是的,我经常这样。大家都对一些流行的或难度较大的众测项目心存障碍,但我还是佩服自己能在这些项目中有所发现。如果你正挣扎在某个高难度的众测项目中时,我强烈建议你对该项目目标推出的新代码和新功能进行一些跟踪,这样,既可以实时了解目标项目的开发状态,也能对照项目进行功能检查,当然,最重要的是,有时候对一些长期部署项目的核心应用功能进行测试时,往往会发现一些意想不到的结果。
就比如我最近发现的Keybase漏洞一样,keybase是一款第三方身份验证安全应用,它在HackerOne上的众测项目也有好几年了,而我做的仅只是在测试其应用核心组件时,多问问自己,多思考一下,如果用户创建一个keybase账户时,会存在什么设计缺陷和问题。这些问题的存在,之所以被忽略,主要在于它们不是普通的漏洞,而且我认为对于一个应用程序来说,核心功能必须是其最严格的组成部分。
Q:你认为成为一名渗透测试员、Web开发者或这方面相关领域工作者,对你在漏洞众测项目中有帮助吗?那这些身份相关人员可如何来开展漏洞众测呢?
是的,当然有帮助!尽管这不是必备条件,但就我的感受来说,我身边好多优秀的赏金猎人都具备技术相关的研究学习背景,这样你会很快上手。当别人问到我怎样成为一名挖掘漏洞的赏金猎人时,我都会告诉他:好好学习安全知识,然后再尝试去打破安全规则(Learn to make it; then break it)。也就是说,在学习一些安全知识的同时,你会了解到一些突破性思维,然后在面对测试目标时,更容易理解其运行机制,也更容易知道从哪里下手找漏洞。另外,学会编程对写PoC或自动化工具时,能对挖漏洞有如虎添翼的帮助。以我的经验来看,我的开发和设计背景能让我写出独特且更具说服力的漏洞PoC。
闲聊的结束时间
Q:你平时喜欢听什么类型的音乐?
我听的歌路比较广。生活中,我喜欢弹吉他,所以我听Jimi Hendrix、Guns & Roses和 Van Halen要多点,但我也喜欢Dubstep 和 EDM trap类型的电子音乐。
Q:你不挖漏洞时会干点啥?
游泳、弹吉他、学习、参加安全会议、摄影。
Q:参加漏洞众测项目成为赏金猎人对你的生活有什么影响?
我想是我终于可以飞美国了,可以去参加Hack the US Airforce,而不会在边境上就被FBI逮了,...有点搞笑吧。
Q:Web、移动、硬件等其他黑客技能,哪一方面是你在未来最想深入学习的?
想学的也不完全和黑客技能相关了,但目前来说,我还是想努力打好基础。计算机专业确实对我有一些帮助,比特和字节就能让我们的世界如此美好,我学习的还有好多。
Q:如果一些白帽新手问你:“我要如何起步参加项目成为一名挖洞老司机?”,在他们加入众测项目前,你最想建议他们做的三件事是什么?
那就去看看这三个网站,学会应用其中的东西:
Q:有些人比较关心,你会放什么和吐司搭配一起吃?
¯\_(ツ)_/¯
Q:你最糟糕的漏洞测试经历是?
我曾遇到过测试目标公司威胁说要起诉我的情况,也曾经遇到过把漏洞通报给对方公司后,该公司非常感谢,紧接着就问我住在哪,我很快就有了警觉,难道他们要对我采取法律措施,或让警察来抓我?但在10多封邮件的交流过后,我明白对方公司是要聘请我去工作,后来来回发了五六封邮件之后,他们就好像没这个意思了,最后也就不了了之了。
Q:如果让你选择一名白帽黑客作搭档,你会选谁?
我估计会选一名俄罗斯白帽吧。但正经说来,我的长期搭档算是@filedescriptor吧,我们之间的合作很成功。
Q:你希望漏洞众测平台在未来具备的新功能是什么?
对于这方面来说,我希望漏洞众测平台具备的功能特性非常之多,一时难以描述。
Q:你最喜欢的代码编辑器是什么?
Sublime Text 和 Vim,之前我是Atom的忠实使用者,后来转投Sublime Text了。
*参考来源:Bugbountyforum,FreeBuf小编clouds编译,转载请注明来自FreeBuf.COM