如何选择安全研究主题
James Kettle
研究总监
@albinowax
发布时间: 2023年6月14日 13:09 UTC
更新时间: 2025年4月10日 08:27 UTC
如何选择研究主题?这是我最常被问到的问题,很可能是因为选题本身令人望而生畏。在这篇文章中,我将以个人视角分享如何选择安全研究主题,并以《粉碎状态机:Web竞态条件的真正潜力》作为案例研究。
最困难的部分
在开始之前,我需要强调:选择主题并非Web安全研究中最困难的部分。我遇到过许多人拥有很棒的想法却从未尝试执行。极少数情况下,有人提出的研究想法我认为从一开始就注定失败,但尝试过程仍会带来宝贵的学习经验——这绝非糟糕的结果。
事实上,提出研究想法也不是最难的。一旦开始研究,你很可能会发现每个探索的主题都会衍生出三个新项目的思路。我认为研究最困难的部分在于知道何时放弃,何时坚持。
快速失败
评估主题时,我的主要标准是:在获得足够信息决定放弃或继续之前需要投入多少时间。懂得何时放弃、何时坚持是研究中极其宝贵的技能,值得在开始前深思熟虑。
今年,我想探索的攻击概念最初看起来需要大量前期时间投入。但我发现了一个捷径:如果能构建一个易受攻击且相对真实的测试网站,就能证明这个概念值得追求。我构建了网站,很快发现该攻击概念极不现实,于是迅速转向另一个概念。
第二个概念看起来很有希望,却让我浪费了六周时间后才失败。寻找第三个概念时,竞态条件成为一个吸引人的主题,因为之前的项目已经提供了强大工具。这意味着只需一天左右调整工具,再经过一两周的手动测试,就能判断是否能在实际中发现重要漏洞。结果我在不到一周内发现了一个新颖的高影响漏洞,这巩固了我对该主题的投入。
恐惧因素
我喜欢研究那些让我害怕的主题。恐惧是我不完全理解某事、不知如何应对挑战的绝佳指标。竞态条件在这方面表现突出,我在摘要中明确强调了这一点:
“长期以来,Web竞态条件攻击仅限于少数场景。其真正潜力被复杂的工作流程、缺失的工具和简单的网络抖动所掩盖,只剩下最琐碎明显的例子。本次分享将介绍多个新类别的竞态条件,远超你可能已经熟悉的限制溢出漏洞……”[阅读完整摘要]
直接影响与受众影响
作为安全专业人员,很容易根据直接影响来评估研究项目的价值。例如,多年来我在某个流行CDN中看到一系列严重缺陷,怀疑如果直接针对它,可以找到多种方法接管所有客户网站——这将是网络的重要一部分。就直接影响而言,这相当不错。
但当你向Black Hat提交时,他们要求你为观众指定“三个可操作的收获”。我假设的CDN突破演讲如何回答这一点?唯一需要采取行动的将是那家CDN供应商——实际上我只是在讲一个战争故事。这些可能有趣且鼓舞人心,但这不是我的目标。
我尝试选择能让观众带走新颖攻击技术、以及使这些技术实用化所需工具或方法的主题。
适用受众
过去五年,我的研究集中在HTTP请求走私和Web缓存投毒上。由于我精通这个主题,在此基础上进行进一步研究变得相对容易,并且我始终意识到多个有前景的想法。
然而,在为去年的“浏览器驱动的反序列化攻击”创建演示时,我敏锐地意识到它要求观众具备异常多的先验技术知识。基于少量近期研究通常效果很好,因为你可以自己总结。但基于大量近期研究意味着任何不熟悉的观众都会挣扎,总体受益的人会更少。
今年,通过专注于竞态条件——一个近期发展最少的主题——我能够基于大多数与会者熟悉的基础开始构建。相对于去年的演讲,你可以期待这次演讲既为专家提供更大潜力,又为大众提供更易访问性。
现有技能与个人发展
改变研究重点远离请求走私还有第二个更个人的原因。我预计请求走私在未来几年仍将产生良好的研究,但就像任何主题一样,最终它会枯竭。如果我保持对这个主题的独家关注,可能会过度专业化,当主题不再产生成果时陷入困境。我故意选择竞态条件来避免这种过度专业化风险,尽管我认为这比做更多请求走私探索风险更大。
个人发展是研究中巨大且容易被忽视的部分。我很少在几个月内重复演讲也是出于同样的原因——如果你花时间一遍又一遍地分享相同的演示,就是在牺牲新颖的研究时间。
话虽如此,这里需要平衡——如果你有专业知识,那将在某些主题上给你优势。竞态条件从一开始就吸引我,因为我观察到可能增强这些攻击的低级HTTP怪癖,并且在尝试利用响应队列投毒时也在实际中观察到它们。
结论
没有完美的主题;这次演示的案例研究比往常少,因为完全自动检测这些漏洞不切实际。另一方面,这留下了大量漏洞,观众只需应用方法就能发现。
最终,我认为过度思考主题选择是一个陷阱。节省精力用于研究本身——你会需要它!如果你觉得这有用,可能还会喜欢《所以你想成为Web安全研究员》和演示《寻找难以捉摸的漏洞》。如果有任何想法或疑问,请随时在Twitter或LinkedIn上联系我。希望也能在演示中亲眼见到你们中的一些人!