深入解析 Cursor 文本编辑器的安全文档,重点探讨基于向量嵌入(vector embeddings)的代码库索引(codebase indexing)机制及隐私保护模式(privacy mode)实施方案。
Cursor: 安全 ( 来自 ) Cursor 的安全文档页面包含了许多关于 Cursor 文本编辑器后端系统如何工作的详细信息。
我最近了解到,检查组织的文档化次要处理者列表是了解幕后工作的好方法——它就像是他们基础设施的“查看源代码”!那正是我在今年三月确认 Anthropic 的搜索功能 使用了 Brave 搜索 的方式。
Cursor 的列表包括 AWS、Azure 和 GCP(AWS 用于主要基础设施,Azure 和 GCP 用于“某些次要基础设施”)。他们将自己的自定义模型托管在 Fireworks 上,并根据用户偏好调用 OpenAI、Anthropic、Gemini 和 xAI 的 API。他们正在使用 turbopuffer 作为托管向量存储。
最有趣的部分是关于代码库索引 :
主要内容
1. Cursor 安全文档详实记录跨云平台的后端运维体系
技术文档完整披露了以 AWS 为核心、Azure/GCP 为补充的多云架构,以及集成 Fireworks、OpenAI、Anthropic 等 AI 服务的具体方案,这种透明度显著提升了系统可信度。
2. 创新的向量嵌入技术实现代码库索引
系统采用先进的文件分块技术,将代码转化为向量嵌入后存储于 Turbopuffer 数据库,同时对文件路径和行号范围进行模糊处理,在实现语义搜索功能的同时保障代码隐私。
3. 隐私保护模式避免原始代码驻留服务器
统计显示 50% 用户启用该安全特性,该模式下服务器仅在处理请求时临时访问原始代码,持久化层仅保存向量数据及脱敏元数据,极大降低了代码泄露风险。
4. 向量嵌入逆向还原存在理论安全风险
尽管现有攻击手段需获取模型权限且对短文本效果显著,但学术界已证实特定条件下可实现嵌入向量逆向工程,这种潜在威胁需要持续关注。
5. 多云多模型架构确保服务弹性
通过整合 AWS、Azure 和 GCP 三大云平台及多样化 AI 服务接口,Cursor 构建了具备高可用特性的分布式云架构,同时为用户提供灵活的模型选择空间。
Cursor 允许你语义化地索引代码库,这使得它能够根据整个代码库的上下文回答问题,同时通过参考现有实现编写更好的代码。[…]
在我们的服务器上,我们分块并嵌入文件,并将嵌入存储在 Turbopuffer 中。为了允许通过文件路径过滤向量搜索结果,我们为每个向量存储一个混淆后的相对文件路径,以及分块对应的行范围。我们还存储嵌入在 AWS 中的缓存中,通过分块的哈希值进行索引,以确保第二次索引相同的代码库会更快(这对团队来说特别有用)。
在推理时,我们计算一个嵌入,让 Turbopuffer 进行最近邻搜索,将混淆后的文件路径和行范围发送给客户端,然后在客户端本地读取这些文件分块。然后将这些分块发送回服务器以回答用户的问题。
当他们在隐私模式下操作时——他们声称有 50%的用户使用这种模式——他们不会将任何原始代码存储在服务器上超过单个请求的持续时间。这就是为什么他们会存储嵌入式数据和混淆后的文件路径,但不会存储代码本身。
读到这里,我立刻想到了一篇关于的论文,关于如何反转嵌入的内容。安全文档中的注释提到了这一点:
嵌入反转:学术研究已经表明,在某些情况下可以反转嵌入。当前的攻击依赖于对模型的访问,并将短字符串嵌入到大向量中,这使我们相信在这里进行攻击会相当困难。不过,对于能够攻破我们向量数据库的对手来说,他们确实有可能了解索引代码库中的信息。