ThirdKey 的 Jascha Wanger 本周发布了 VectorSmuggle——一个 Apache 2.0 授权的研究框架,演示了六种把任意资料藏进 vector embedding 的隐写技术,并配了一个名为 VectorPin 的密码学防御方案。框架编目了拥有 ingestion pipeline 访问权的攻击者扰动 embedding 的几种方式(注入噪声、旋转、rescaling、offset、把内容拆到多个 embedding 模型),让生成的向量在合法检索时仍返回正确文档,同时把隐藏 payload 带过整条 RAG 栈、流向攻击者控制的位置。配套预印本在 OpenAI 的 text-embedding-3-large 以及四个 open 模型(Nomic、EmbeddingGemma、Snowflake Arctic、MXBai)上做了测试,语料覆盖合成 PII 集、BEIR 的医学研究 NFCorpus、以及 Quora 问题子集,共 26,000+ 条 chunk。Payload 在 FAISS、Chroma、Qdrant 的标准与 scalar-quantized 两种配置上都能存活。

最关键的发现沿一条干净的线分开。噪声、scaling、offset 三类技术对 embedding 的统计分布有足够扰动,off-the-shelf 异常检测器能稳定抓出来——这部分威胁用现有工具可控。旋转不行。由于把向量旋转保持了它与空间中所有其它向量的数学关系,异常检测器在测试过的每一种模型/语料组合里都没看出旋转。在理论上限,一个基于旋转的编码器能以零错误率、每条向量携带约 1,920 字节隐藏 payload。研究者把防御端检测器的全部信息透给攻击者后,攻击者完全规避了检测。论文得出的结论很直接:统计性异常检测作为首道过滤器有用,作为主要控制不顶用。现有 DLP 工具在这件事上帮不上忙,结构性原因是:它们被造出来扫描文档内容和网络流量——它们读文档、读 packet,但都不读两者之间那一层高维数值向量。

生态读法把这项工作接到更广的"基础设施攻击面"线索里。Wanger 在 Help Net Security 那篇里的措辞值得照搬:"目前几乎所有 AI 安全工作都在模型层。prompt injection、jailbreak、输出过滤、对齐——那是可见的表面,会议演讲和投资都流向那里。底下的基础设施层——embedding、向量库、工具契约、agent 身份——基本被当作'管道'对待。可前门重兵把守的时候,攻击者就是从管道里钻进去。"这与同一天发布的 Palo Alto NHI 109:1 比例、上周 Hugging Face open-OSS 恶意代码故事、AWS WorkSpaces 的 MCP-agent 身份模型——都连成一片:都是同一件事的不同侧面——AI 基础设施层就是接下来两到三年攻击者会去的地方,也是防御工具最落后的地方。VectorSmuggle"新攻击类"的属性,把这一类的优先级提了一档:这不是配置失误或者漏补的 patch,而是 vector-embedding 格式本身的属性。

对在生产中跑 RAG 的 builder:Wanger 给的那个具体问题,就是明早可以问安全 leadership 的——"我们对离开自家网络的 vector embedding 内容有什么可见度?谁负责监控这条通道?"他对大多数公司现状的判断是"没有可见度、没有人";如果你那边的答案也是这个,那就是 audit finding。可以评估的具体防御:VectorPin 的密码学签名做法(同一 repo 里有 Python 和 Rust 参考实现);在 embedding API 端点做 egress 监控(把它们当 S3 桶看,会漏数据的);把 ingestion pipeline 控制收紧——任何能在向量入库之前修改向量的人都是潜在 exfiltration 点。对在做 vector-DB 产品的 builder:FAISS、Chroma、Qdrant 上的 payload 存活这一条,是必须正视的——目前 DB 层下游的防御还不足够。仓库和预印本可以从 Help Net Security 那篇里跳过去。