如何选择安全研究课题:从HTTP请求走私到竞态条件的实战思考

本文深入探讨了如何选择网络安全研究课题,包括快速失败策略、恐惧因素评估、受众影响与个人技能发展的平衡,并以竞态条件漏洞为例进行案例分析,为安全研究人员提供实用指导。

如何选择安全研究课题

James Kettle
研究总监
@albinowax

发布时间: 2023年6月14日 13:09 UTC
更新时间: 2025年4月10日 08:27 UTC

如何选择研究课题?这是我被问得最多的问题,可能是因为选择课题本身就是一个令人望而生畏的前景。在这篇文章中,我将从个人角度探讨如何选择安全研究课题,并以《粉碎状态机:Web竞态条件的真正潜力》作为案例研究。

最难的部分

在开始之前,我需要强调,我认为选择课题并不是Web安全研究中最难的部分。我遇到过很多人有很酷的想法,但从未尝试去执行。在极少数情况下,有人提到一个我认为从一开始就注定失败的研究想法,但很明显,尝试它仍然会为他们提供重要的学习经验——这绝不是糟糕的结果。

事实上,我认为提出研究想法也不是最难的部分。一旦你开始研究,你可能会发现每个探索的课题都会让你产生三个新项目的想法。我认为研究中最难的部分是知道何时放弃,何时继续推进。

快速失败

我在评估一个课题时的首要标准是,在获得足够信息以决定是放弃还是继续之前,我需要投入多少时间。知道何时放弃一个课题、何时继续推进是研究中极其宝贵的技能,值得在开始前深思熟虑。

今年,我最初想探索的攻击概念看起来需要大量的前期时间投入。然而,我找到了一个捷径——如果我能构建一个易受攻击且相当真实的测试网站,那就能证明这个概念值得追求。我构建了网站,很快发现这个攻击概念极不现实,于是迅速转向另一个概念。

第二个概念显示出足够的潜力,让我浪费了六周时间,最终也失败了。在寻找第三个概念时,竞态条件是一个有吸引力的课题,因为我已经从之前的项目中获得了强大的工具。这意味着只需要大约一天的时间来调整工具,再加上一两周的手动测试,就能看看我是否能在实际环境中发现一些重要的东西。我在不到一周的时间内发现了一个新颖的高影响力漏洞,这巩固了我对这个课题的承诺。

恐惧因素

我喜欢研究让我害怕的课题。恐惧是一个很好的指标,表明有些东西我没有完全理解,有些挑战我不知道如何应对。竞态条件在这方面提供了大量机会,我在摘要中将其放在最前面:

“长期以来,Web竞态条件攻击一直集中在少数几种场景中。它们的真正潜力被复杂的工作流程、缺失的工具以及简单的网络抖动所掩盖,除了最琐碎、最明显的例子之外,其他都被隐藏了。在本讲座中,我将介绍多种新的竞态条件类别,远远超出你可能已经熟悉的限制溢出漏洞……”[阅读完整摘要]

直接影响与受众影响

作为安全专业人士,很容易根据直接影响来评估一个研究项目的影响力。例如,多年来我在某个流行的CDN中看到了一系列严重缺陷,我怀疑如果我直接针对它,我可以找到多种方法来接管所有客户的网站——这相当于Web的相当一部分。从直接影响来看,这将会相当不错。

但当你向Black Hat提交演讲时,他们会要求你为观众指定“三个可操作的收获”。我假设的CDN攻击演讲如何回答这个问题?唯一需要的行动将来自那个唯一的CDN供应商——实际上我只是在讲一个战争故事。这些可能很有趣和鼓舞人心,但这不是我的目标。

我尝试选择一个课题,让观众能够带走新颖的攻击技术,以及任何使它们实际应用所需的工具或方法。

适用受众

在过去的五年中,我的研究一直集中在HTTP请求走私和Web缓存投毒上。由于我对这个课题非常熟悉,直接在此基础上进行进一步研究变得相对容易,并且我始终意识到多个有前途的想法。

然而,在为去年的“浏览器驱动的反序列化攻击”创建演示文稿时,我敏锐地意识到,它要求观众具备异常多的先验技术知识。在少量近期研究的基础上构建通常效果很好,因为你可以自己总结。然而,在大量近期研究的基础上构建意味着任何不熟悉的观众都会挣扎,总体上更少的人会受益。

今年,通过专注于竞态条件——一个近期发展最少的课题——我能够开始构建大多数与会者都会熟悉的基础。相对于去年的演讲,你可以期待这次演讲既为专家提供更大的潜力,又为大众提供更大的可访问性。

现有技能集与个人发展

我改变研究重点远离请求走私还有第二个更个人的原因。我预计请求走私在未来几年还会产生好的研究,但就像任何课题一样,在某个时候它会枯竭。如果我保持对这个课题的独家关注,我有可能变得过度专业化,当课题停止产生成果时,最终陷入困境。我故意选择竞态条件来避免这种过度专业化的风险,尽管我认为这比做更多的请求走私探索风险更大。个人发展是研究中一个巨大且容易被忽视的部分。我很少在几个月内重复我的演示文稿也是出于同样的原因——如果你花时间一遍又一遍地分享相同的演示文稿,你就是在牺牲新颖的研究时间。

话虽如此,这里需要取得平衡——如果你有专业知识,那会给你在某些课题上的优势。竞态条件从一开始就吸引了我,因为我观察到低层HTTP的怪癖可以增强这些攻击,并且我在尝试利用响应队列投毒时也在实际环境中观察到它们。

结论

没有完美的课题;这次演示的案例研究比平时少,因为完全自动化的漏洞检测是不现实的。另一方面,这留下了大量漏洞,观众只需应用方法就能找到。

最终,我认为过度思考课题选择是一个陷阱。节省你的精力用于研究本身——你会需要它的!如果你觉得这有用,你可能也会喜欢《所以你想成为一名Web安全研究员》和演示文稿《寻找难以捉摸的漏洞》。如果你有任何想法或疑问,随时在Twitter或LinkedIn上联系我。希望我也能在演示现场见到你们中的一些人!

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计