← 最新论文
💻 computer science

Needles at Scale: LLM-Assisted Target Selection for Windows Vulnerability Research

本文介绍了 Symbolicate-Enrich-Sample,这是一个低成本、由大语言模型(LLM)辅助的流水线,旨在将去符号化的 Windows 二进制文件中的数百万个函数过滤并精简为优先级的候选高风险名单,从而克服大规模漏洞研究中的目标选择瓶颈。

原作者: Michael J. Bommarito II

发布于 2026-06-02
📖 1 分钟阅读☕ 轻松阅读

原作者: Michael J. Bommarito II

原始论文采用 CC BY 4.0 许可(http://creativecommons.org/licenses/by/4.0/)。 这是对下方论文的AI生成解释。它不是由作者撰写或认可的。如需技术准确性,请参阅原始论文。 阅读完整免责声明

想象一下,像 Windows 这样的现代操作系统就像一座拥有 720 万本书 的庞大古老图书馆。其中大多数书只是空白页、食谱卡或无人问津的枯燥说明书。但在这些书中,某些地方隐藏着危险的陷阱(漏洞),黑客可以利用这些陷阱入侵系统。

问题的关键在于,安全研究人员不知道该去翻哪本书。他们无法读完所有 720 万本书;那将耗费一辈子。通常,他们只能根据传闻进行猜测,或者搜索特定的关键词,这既缓慢又低效。

这篇论文介绍了一个名为 “大规模寻针”(Needles at Scale,或 “符号化-富集-采样” 流水线)的新系统,旨在解决这个猜谜游戏。你可以把它想象成一个超级聪明且成本极低的图书管理员助手,帮助研究人员在“草堆”(数百万个安全的函数)中找到那些“针头”(危险的陷阱)。

以下是该系统的工作原理,分为三个简单的步骤:

1. “贴标签”步骤 (Symbolicate/符号化)

图书馆里的大多数书都被撕掉了标题和章节名称(这些被称为“剥离”后的文件)。第一步是前往出版商(微软)那里,获取每本书中每个章节的官方名称列表。

  • 它在做什么: 它获取这些公开的名称列表,并将它们贴在书上。现在,系统看到的不再是“第 45 章,第 12 页”,而是知道它实际上是 RtlDecompressBuffer 函数。
  • 结果: 图书馆现在有了清晰的标签,但规模依然庞大。

2. “快速扫描”步骤 (Enrich/富集)

既然书有了名字,系统就会使用一种廉价、快速的 AI(大语言模型)对每本书进行快速扫描。它不会逐字逐句地阅读整本书,而是查看每个函数的“摘要卡”。

  • 摘要卡: 这张卡片包含简单的、硬性的事实,例如:“该函数是否复制数据?”“它是否被系统的许多其他部分调用?”“它是否可以从互联网访问?”
  • AI 的任务: 仅基于这些事实,AI 会为每个函数给出评分:
    • 风险等级: 它是危险的(严重/Critical)还是枯燥的(信息/Info)?
    • 可达性: 黑客能否从外部接触到它,还是它被锁定在内部?
    • “为什么”: 一个简短的原因,例如“该函数在没有检查大小的情况下复制了用户数据。”
  • 诀窍: AI 被要求忽略函数的名称,只关注事实。例如,即使一个函数的名称叫 memcpy(听起来很危险),但如果它仅在系统内部使用且从不接触用户数据,AI 就会将其降级为“低风险”。反之,一个听起来很枯燥但实际上会从互联网复制数据的函数,会被标记为“高风险”。

3. “筛选”步骤 (Sample/采样)

在扫描完所有 720 万个函数后,系统会得到一份庞大的评分列表。它不会把整个列表交给研究人员。相反,它使用一种特殊的排序方法,从中提取出一份包含 约 22,000 个候选对象 的短名单。

  • 工作原理: 它优先考虑那些既具有“高风险”又“可从外部访问”的函数。同时,它也会确保名单具有多样性,这样研究人员拿到的就不会是 2 万个同类 Bug 的重复集合。
  • 目标: 它将搜索空间从 720 万个项目减少到了 22,000 个。这个规模已经足够小,可以让一个人类(或机器人助手)逐一进行阅读和检查。

这篇论文实际发现了什么

  • 它是一个过滤器,而非检测器: 作者非常明确:该系统 并不寻找 Bug。它只是寻找 可能隐藏 Bug 的地方。它是一个帮助你决定“在哪里看”的工具,而不是一个直接告诉你“这里有一个 Bug”的工具。
  • 它非常严谨: 该系统非常保守。它仅将极小比例(0.18%)的函数标记为“严重(Critical)”。它成功地将所有枯燥、安全的代码(如启动程序)推到了列表底端。
  • 它存在缺陷: 有时 AI 会表现得过于兴奋。它可能会仅仅因为某个函数看起来像一个解析器(parser)就将其标记为“严重”,即使实际上并没有办法通过它向其发送数据。作者发现了这些错误,并提出了简单的规则来修复它们(例如:“如果它实际上并不复制数据,就不要称之为复制汇聚点 [copy-sink] 类 Bug”)。
  • 成本: 它的运行成本非常低,因为 AI 只查看简短的摘要,而不是每个函数的完整代码。

为什么他们没有分享数据

作者决定 不发布 最终的 22,000 个可疑函数名单。

  • 法律原因: 这些数据源自微软受版权保护的软件。
  • 安全原因: 如果他们公布了“最可能攻击 Windows 的地方”的名单,就等于把地图交给了攻击者。他们希望帮助防御者发现 Bug,但不希望帮助攻击者抢先一步。

核心结论

这篇论文展示了一个 优先级排序引擎。它将一个庞大且令人不知所措的问题(700 万个函数)转化为一个可管理的待办事项清单(22,000 个函数),其手段是结合公开数据和智能、低成本的 AI。它不是一个神奇的 Bug 发现器,但它是决定在投入深度分析之前 从哪里开始寻找 的最佳方式。

您所在领域的论文太多了?

获取与您研究关键词匹配的最新论文每日摘要——附技术摘要,使用您的语言。

试用 Digest →