开源 AI 已发展成一个庞大的生态系统,单个产品可能从数十个仓库中提取代码,依赖来自多个来源的训练数据,并在极少有团队能对其进行完整文档记录的专用硬件配置上运行。追踪这些依赖关系非常困难。而要了解该技术栈中哪些部分暴露在互联网上则更加困难。Current AI 发布了 Open Source AI Gap Map v0.1,试图为这种混乱带来一定的秩序,安全团队应将其视为必读书目。
该索引编录了 421 个开源 AI 产品。它将其分为四个类别:AI 模型、数据集、软件工具和硬件。在底层,整个项目运行在 1,184 个 YAML 文件之上,这些文件追踪了超过 16,000 个 GitHub 仓库。421 个产品与 16,000 个仓库之间的差距本身就说明了问题。大多数 AI 应用并非自包含的单体架构。它们是由推理引擎、微调脚本、数据加载器、评估基准和驱动层组成的集合,每一部分都存在于各自的仓库中,拥有独立的维护者、提交历史和漏洞概况。
Current AI 在 MIT 许可下发布了该数据集,并将其完全公开。这种开放性正是其核心意义所在。任何人都可以下载它、解析 YAML,并在此基础上构建工具。对于防御者而言,这种可访问性是一个机遇;对于攻击者而言,它同样方便。
What the Map Actually Tracks
大多数使用 AI 的组织对其已部署的内容并没有清晰的清单。一个团队可能会从热门中心下载一个语言模型,安装几个 Python 包来运行它,然后认为任务已完成。但在这一简单的流程之下,隐藏着一套嵌套的依赖关系。模型权重来自一个仓库,分词器(tokenizer)配置来自另一个,推理框架可能是第三个项目的 fork,而 CUDA 驱动和容器镜像则来自更多来源。
Gap Map 通过围绕 421 个不同的 AI 产品组织其 1,184 个 YAML 文件来捕捉这一点。此处映射的 16,000 多个 GitHub 仓库代表了使这些产品运行的实际代码、配置和构件(artifacts)。通过将条目分为模型、数据集、软件工具和硬件,该索引提出了一个基本问题:你是否知道你的系统实际上触及了这四个层级中的哪些?
如果你在生产环境中运行开源大语言模型,你很可能触及了所有四个层级。你依赖于模型权重和架构。你依赖于用于预训练或微调的数据集,即使你从未直接下载过它们。你依赖于软件工具来转换、量化或提供模型服务。如果你在 GPU 或专用加速器上运行,你则依赖于属于硬件类别的固件和驱动栈。
The Security Double-Edged Sword
该数据集服务于两个方面,安全负责人需要了解这两面。
在防御方面,Gap Map 就像是你 AI 供应链的电话簿。你可以将组织所依赖的仓库和工具与此索引进行对比,从而发现可见性方面的漏洞。如果一个关键仓库出现在地图中,但未出现在你的软件物料清单(SBOM)中,那么你可能发现了一个影子 AI 基础设施。在对手为你发现它之前,了解这一点是非常值得的。
在进攻方面,该数据集是侦察工作的黄金。攻击者不断扫描暴露的 AI 基础设施、模型服务端点以及流行 ML 流水线中的脆弱依赖项。Gap Map 为他们提供了一个机器可读的、结构化的目标列表,且完全按照他们关心的类别进行组织。一个简单的 YAML 解析器就可以提取数千个仓库 URL,攻击者可以由此交叉引用已知漏洞、寻找配置错误的公共实例,或识别用于依赖混淆攻击的高价值目标。
由于数据采用 MIT 许可并完全公开,因此没有准入门槛。无需订阅,无需审批流程。这种设计选择最大限度地提高了研究人员和防御者的效用,但也最大限度地提高了威胁行为者的效用。帮助你加固技术栈的同一个文件,也在帮助别人构建目标清单。
What to Do With This Information
请像对待威胁情报源一样对待该数据集。不要只是将其加入书签然后束之高阁。请针对你的环境进行主动检查。
首先,列出您的团队目前使用的每一个开源 AI 组件。不要只看显而易见的部分。询问哪些仓库提供了您的分词器 (tokenizers)、评估脚本 (evaluation scripts)、量化库 (quantization libraries) 以及容器基础镜像 (container base images)。然后将这些仓库与 Gap Map 中追踪的 16,000 个仓库进行比对。如果发现匹配项,则说明您已确认您的依赖项存在于开源 AI 世界中索引最显著的角落之一。这种显著性是一把双刃剑。它通常意味着活跃的维护和社区审查,但也意味着攻击者知道这些仓库的存在。
接下来,查看 YAML 结构本身。这 1,184 个文件中的每一个都以标准化的格式将产品与其底层仓库连接起来。您可以编写一个简单的脚本,将您的依赖清单 (dependency manifests)、软件包列表 (package lists) 或 SBOM 导出文件与这些映射进行对比。如果您发现您的生产堆栈依赖于从未听说过的仓库,请深入挖掘。未知依赖项正是供应链攻击隐藏的地方。
特别注意硬件层。安全团队通常专注于软件和模型,而将驱动程序和固件视为背景噪音。Gap Map 明确索引了与硬件相关的仓库,这应该提醒您,GPU 驱动栈、编译器工具链和加速器固件也同样是代码。它们会有漏洞,也会进行更新。而当它们过时时,可能会成为您流水线中最脆弱的目标。
最后,使用
