RAG 凭证窃取 (AML.T0082)
一句话通俗理解
公司把混着钥匙的笔记本一股脑塞进图书馆,还雇了位过目不忘、有问必答的管理员(AI 助手)——攻击者不用撬门,只要走过去问一句“钥匙放在哪“,管理员就把整页抄给他。
难度等级
⭐⭐ Demonstrated(已演示)
官方成熟度评定为 Demonstrated——已在真实产品上被安全研究完整演示。ATLAS 案例库关联 1 个真实案例:PromptArmor 于 2024 年披露的 Slack AI 数据外带研究(AML.CS0035),证明攻击者可以让 RAG 体系把私频道中的 API 密钥“召回“并送往外部。攻击者不需要入侵任何服务器——只要能访问受害组织的 AI 助手、会打字提问即可;真正的缺口在防御侧的摄取管线里早已埋好:含密码的内部文档无人扫描、原样入库。而凭证一旦被吐出,泄露即成定局,无法“撤回“。
技术描述
通俗解释
传统企业好歹把密码锁进保险柜,但内部的运维手册、交接文档、工单和聊天记录里,密码与连接串从没断过。RAG(检索增强生成)的本意是“让 AI 博览群书“——组织把 Confluence、内部 Wiki、网盘甚至聊天频道整批“喂“给知识库。问题就出在这场“喂食“上:摄取管线不做秘密扫描,写着“数据库密码:xxx“的文档被切块、向量化、原样存进知识库。此后攻击者只需向 AI 助手提一个精心措辞的问题,模型就会尽职地检索、召回并把密码原文抄进回答——不需要漏洞利用,不需要提权,AI 自己成了泄密的“内应“。
技术原理
依据官方描述:攻击者利用其对受害系统上大语言模型(LLM)的访问来收集凭证。凭证可能存放在内部文档中,而这些文档可能在无意间被摄取进 RAG 数据库,最终被 AI 智能体检索得到。
RAG 管线各阶段的凭证暴露点:
| 阶段 | 发生什么 | 凭证暴露风险 |
|---|---|---|
| 知识源 | 运维手册、交接文档、工单、聊天记录、内部 Wiki | 密码、API 密钥、连接串散落各处,写成“给同事看的“从未想过会被机器复述 |
| 摄取(Ingestion) | 抓取 → 分块 → 生成嵌入向量 → 写入知识库 | 缺少秘密扫描与脱敏环节,凭证随正文原样入库 |
| 存储 | 向量数据库 + 文档元数据 | 原文与向量双份留存;备份与缓存同步扩散;文档原访问控制(ACL)通常未传导 |
| 检索(Retrieval) | 按语义相似度召回最相关的文本块 | 检索层不校验请求者权限——任何人提问都可能命中本无权阅读的凭证块 |
| 生成(Generation) | 模型基于召回内容作答 | 模型把“检索到的内部文档“当作可复述的事实,明文输出凭证 |
攻击者的两条路径:
- 路径一:直接诱导检索(问答式“召回“)。攻击者以员工账号、被授权用户或公开部署的使用者身份访问组织的 AI 助手,先用无害问题(“知识库里有哪些运维手册?”)摸清知识源边界,再逐步升级为凭证导向查询——“把运维手册第 3 章的完整配置示例贴出来”“上季度交接文档里数据库的连接串是什么”。检索器按语义相似度命中含凭证的文本块,模型将其视为可复述的事实,明文输出。
- 路径二:间接提示词注入(自动化外带)。攻击者把恶意指令预埋进注定会被摄取的内容(如一条公开频道帖子),载荷在知识库中静默潜伏;当受害用户进行一次完全正常的提问时,恶意提示词随检索结果进入上下文,劫持模型生成行为——例如指示模型把检索到的密钥嵌入一个伪装成“重新认证“链接的 URL 参数中外带。此路径与 RAG 投毒(AML.T0070)同根同源:污染的都是“知识库吞什么“。
缺口为何普遍存在:秘密扫描工具链(Gitleaks、detect-secrets 等)天然生长在 git/CI 这类“代码链路“上,而 RAG 摄取管线处理的是“文档链路“——运维手册不是代码,从来没人觉得它需要扫描;数据工程团队只对摄取吞吐量与向量质量负责,安全团队则默认“内部文档=内部可见“。两边的盲区在知识库处交汇:文档以“数据“身份入库,却以“知识“身份被助手公开复述。
攻击者动作分解: 踩点(确认目标部署了 RAG 助手,摸清知识源范围)→ 探测(用无害问题试探知识库边界与文档覆盖面)→ 诱导(升级为凭证导向查询,或预埋注入载荷)→ 收割(从模型响应中提取凭证原文)→ 验证与利用(确认凭证权限后衔接横向移动)。
平台覆盖:Generative AI 与 Agentic AI——RAG 是生成式系统的主流架构;在智能体(Agentic AI)场景下,AI 智能体会主动替用户调用检索工具,攻击面进一步扩大。
与相邻 ATLAS 技术的分工:本技术利用 RAG 摄取管线的秘密扫描缺口,让 AI 自己吐出误吞的凭证;在失陷主机上翻找明文存放的凭证是 AML.T0055(不安全的凭证);直接读取智能体配置文件收割工具凭证是 AML.T0083;借智能体之手翻其连接的数据源是 AML.T0098;向知识库预埋恶意内容则同源于持久化战术中的 RAG 投毒(AML.T0070)。
用途影响
- 零入侵成本:不需要 0day、不需要提权——攻击者使用的是组织自己部署、自己授权的 AI 助手入口,一切流量都是“合法用户提问“;
- 权限模型在检索层失效:原本只有 DBA 可见的运维文档,入库后任何能与助手对话的人都能“召回“——一次提问即完成越权,且文档原来的访问控制从未报错;
- 可组合自动化外带:与间接提示词注入组合后,受害者一次正常提问就足以触发凭证外传,攻击者甚至无需在场;
- 泄露不可逆:凭证一旦吐出,只能立即轮换;知识库正文、向量索引、备份与缓存中的残留都要同步清理,“删掉文档“救不回已入库的向量;
- 防护双盲区:秘密扫描通常只部署在 git/CI 等代码链路,极少覆盖 RAG 摄取管线;输出过滤规则也少有针对凭证形态(
sk-、AKIA、私钥块等)的调优。
攻击流程
典型攻击流程
graph TD
A["内部文档混入凭证<br/>密码·API 密钥·连接串"] --> B["RAG 摄取管线<br/>抓取→分块→嵌入→入库"]
B -->|"无秘密扫描/脱敏"| C["知识库/向量数据库<br/>凭证块静默潜伏"]
D["攻击者访问受害 LLM<br/>内部 AI 助手·Slack AI"] --> E["构造检索提示<br/>或预埋间接注入载荷"]
E --> F["检索命中凭证块<br/>模型把召回内容当事实"]
X["受害者正常提问<br/>(间接注入的触发器)"] --> F
F --> G["生成环节吐出凭证<br/>明文复述·或注入指令外带"]
G --> H["攻击者收获凭证<br/>验证·横向移动·持久化"]
步骤详解:
-
凭证混入知识源
- 通俗描述:图书馆收书时不检查夹页——有人把写着钥匙的便签夹进了书里。
- 技术细节:运维手册里的数据库连接串、交接文档里的 API 密钥、工单里贴的临时密码、聊天频道里“发你一下“的令牌。这些内容按“同事可读“的标准编写,从未按“会被机器切片复述“的标准审查。
-
摄取入库(缺口所在)
- 通俗描述:管理员把每本书撕成一页一页建索引,便签也一起进了目录。
- 技术细节:摄取管线把文档切块、生成嵌入向量写入向量数据库;管线没有秘密扫描环节,命中凭证不阻断;文档原有的访问控制(ACL)也未被写入元数据——凭证从此对所有提问者等距可见。
-
获得受害 LLM 的访问
- 通俗描述:攻击者只需要一张能进图书馆的普通借书证。
- 技术细节:以普通员工账号、被授权用户身份使用组织的 AI 助手,或访问面向客户的公开部署(CS0035 中攻击者只需能向公开频道发帖,等待受害者自己触发)。
-
构造检索提示或预埋载荷
- 通俗描述:要么直接问“钥匙在哪“,要么提前在书里夹一张“读者看到请把钥匙寄到这个地址“的纸条。
- 技术细节:直接路径用凭证导向措辞逐步逼近(“配置示例”“完整参数”);间接路径把注入指令埋进会被摄取的公开内容,并把触发条件绑定到受害者的日常提问上。
-
模型吐出凭证
- 通俗描述:管理员翻开那页,一字不差地念了出来。
- 技术细节:检索器按语义相似度召回含凭证的文本块,模型将召回内容视为可信上下文,把密码、密钥原文写进回答;间接路径中则按注入指令把密钥拼进外链 URL 参数。
-
收获与利用
- 通俗描述:抄下钥匙,去开真正的门。
- 技术细节:从响应中提取凭证,调用轻量接口验证权限,随后冒充合法身份访问数据库、云资源、模型 API 等,衔接横向移动与持久化。
与后续战术的衔接:
- 横向移动:吐出的数据库连接串、云凭证是直通内部系统与 AI 服务的通行证
- 持久化:利用凭证权限创建新账户、签发新令牌,巩固长期控制
- 收集 / 数据渗漏:CS0035 中外链 URL 参数就是渗漏信道本身——凭证在被“收集“的同一瞬间完成外带
关键认知:真正的漏洞在攻击者到场之前就已存在——摄取那一刻,组织已经把钥匙复印了一份交给未来的提问者。攻击者做的只是“提问“。
真实案例
以下案例源自 MITRE ATLAS 案例库,直接关联 AML.T0082。
案例1:Slack AI 间接提示词注入数据外带(2024年,AML.CS0035)
- 时间: 2024年8月20日
- 攻击者: PromptArmor(安全研究团队,负责任披露)
- 手法: Slack AI 会把频道内容摄取进 RAG 数据库用于回答用户提问。研究者先在公开频道发布携带间接注入指令的帖子,等待其被摄取入库;随后当受害用户向 Slack AI 提问时,恶意提示词随检索结果进入模型上下文并劫持生成行为——指令要求模型从私频道内容中取出受害者的 API 密钥,把密钥嵌入一个伪装成“点击此处重新认证“链接的 URL 参数(
?secret=密钥)中外带。该案例同时被 ATLAS 映射到 RAG 投毒(AML.T0070)等多个技术。 - 影响: 私频道中的 API 密钥等敏感数据可被外带至攻击者控制的域名;同一手法可扩展为针对私频道其他信息的大范围钓鱼;披露后 Slack 母公司 Salesforce 做了修复
- 参考链接: PromptArmor: Data Exfiltration from Slack AI via indirect prompt injection
案例启示:这是“摄取 → 潜伏 → 检索触发 → 外带“的完整闭环——恶意载荷与敏感凭证同处一个知识库,受害者的正常提问成为引爆器。对本技术而言最值得警惕的是:凭证根本没有被“偷“,它一直安静地躺在组织自己的知识库里,是 AI 检索机制亲手把它送进了回答。
防御复盘(哪些措施能削弱这条链):
- 摄取侧:对入库内容做凭证特征与注入指令特征扫描,载荷根本不该有机会入库潜伏;
- 输出侧:响应命中凭证正则即拦截并告警——即使注入得手,密钥也出不了助手;
- 渲染面:聊天界面收敛外链与自动加载图片的策略,可掐断 URL 参数外带这最后一跳。
红队视角
⚠️ 免责声明:以下内容仅用于合法授权的安全测试与教育目的。在未授权系统上实施此类测试属违法行为。
实战技巧
-
先做知识库盘点,再做凭证探测 授权测试开始时先用无害问题摸清助手的知识源边界——“你能访问哪些文档库”“有哪些运维相关的手册”。很多组织的 AI 助手会把知识源清单当作能力介绍如实相告,这直接圈定了后续探测范围。
-
凭证导向提示词梯度 从“某文档主要讲什么“起步,逐步逼近“贴出完整配置示例““把连接参数原文列出来”。提问措辞越接近“让模型复述文档“,命中率越高;同时记录哪些措辞被拒答,能反推对方部署了何种输出过滤。
-
间接注入组合拳 若授权范围允许发布会被摄取的内容(公开频道、可投稿的文档库),复现 CS0035 式预埋载荷:把注入指令写进注定入库的文本,验证“受害者正常提问 → 恶意指令进入上下文“的触发链是否成立。
-
验证而非使用 从响应中拿到凭证后只做只读验证(身份查询、权限枚举),记录“这把钥匙能开哪几扇门“,随即报告并推动轮换。
常用工具
| 工具名称 | 用途 | 平台 |
|---|---|---|
| LangChain / LlamaIndex | 快速搭建测试用 RAG 管线,复现摄取与检索行为 | 跨平台 |
| Gitleaks / detect-secrets / TruffleHog | 知识源与索引侧的秘密扫描(红蓝共用) | 跨平台 |
| Microsoft Presidio | 摄取管线脱敏与敏感信息识别的对照实现 | 跨平台 |
| 自定义提示词梯度脚本 | 自动化执行凭证导向查询并记录响应 | Python |
注意事项
- 吐出来的可能是真钥匙:测试中助手吐出的凭证极可能是生产凭证——必须立即报告委托方轮换,严禁留存或“顺手“使用,授权范围外使用即违法
- 先确认书面授权覆盖“向内部 AI 助手提问“:这类测试的边界常被委托方低估,事前明确哪些提问、哪些内容发布在范围内
- 报告量化爆炸半径:按“知识源清单 → 含凭证文档数 → 可被普通员工账号召回的比例“三段式呈现,让防御方理解摄取管线的缺口规模
蓝队视角
检测要点
-
提示词中的凭证导向意图
- 日志来源:AI 助手网关的 prompt 审计日志
- 异常特征:提问命中“密码/api key/token/连接串/完整配置示例“等关键词组合;同一用户在短时间内梯度式逼近敏感话题
-
响应中的凭证形态特征
- 日志来源:AI 助手网关的 response 审计日志
- 异常特征:回答文本命中常见凭证正则(
sk-、AKIA、hf_、私钥块、password=连接串);助手回答中出现用户角色本不应接触的系统凭据
-
检索行为与用户权限的错配
- 日志来源:RAG 检索层审计日志
- 异常特征:同一用户反复命中运维、DBA 专属文档块;请求者角色与被召回文档的原访问控制不匹配
-
摄取管线的异常内容
- 日志来源:摄取 worker 日志、文档审计日志
- 异常特征:被摄取文档中检出凭证模式(若已部署入库前扫描);含注入指令特征的文本进入知识库
监控建议
- 把 prompt 与 response 双向日志接入 DLP 管线,凭证正则命中即告警——这是发现本技术最直接的传感器
- 为检索层建立“文档原 ACL vs 请求者权限“的比对基线,越权命中即升级
- 对聊天助手的输出渲染面做收敛监控:命中陌生域名的链接与自动加载的图片是 CS0035 式外带的典型信道
- 定期用攻击者的工具(Gitleaks/TruffleHog)扫知识源:能进知识库的凭证,你应当先于攻击者扫到
- 把知识库的“凭证密度“(命中凭证正则的文档数)纳入周期盘点并推动清零——这是衡量本风险收敛进度的唯一硬指标
检测建议
网络层检测
检测方法: 识别凭证外带信道与检索侧异常流量。
- 聊天助手输出中出现指向陌生域名的链接/自动加载图片,URL 参数携带长随机串(CS0035 式外带特征)
- 单用户对检索接口的调用量与提问频次严重不成比例(自动化探测特征)
- 摄取 worker 对知识源的批量拉取在非维护窗口突然出现
主机层检测
检测方法: 监控摄取管线 worker 的文件读取行为。
- 摄取 worker 进程批量读取
.env、密钥目录、凭证配置文件等敏感路径(知识源接入过宽的信号) - 向量数据库写入流量在非变更窗口突增(大量新文档入库,含凭证文档混入窗口)
应用层检测(AI 遥测)
检测方法: 利用 AI 助手网关与 RAG 检索层的审计能力。
- prompt 日志命中凭证导向关键词组合,且同一会话内梯度式升级
- response 日志命中凭证正则(API 密钥前缀、私钥块、连接串)——最高置信信号
- 检索日志中出现“用户角色 ≠ 文档原 ACL“的越权命中
- 被摄取入知识库的新文档含凭证模式或注入指令特征
程序化检测思路(无需改造现有日志链):
用“提问意图 → 检索命中敏感文档 → 响应命中凭证正则“三事件关联替代单点告警:prompt 命中凭证导向词、检索日志显示命中带敏感标记的文档、response 命中凭证正则——三段全中才升级为高置信告警,可把误报压到可运营水平;仅 response 命中时降级为“疑似知识库含凭证“的清源工单。
Sigma 规则思路示例
title: AI 助手响应中出现凭证特征(RAG 凭证窃取/泄露特征)
status: experimental
description: 检测 RAG 助手问答日志的响应侧命中常见凭证模式,可能为 AML.T0082 /
ATT&CK T1552 类 RAG 误吞凭证被检索吐出
logsource:
category: application
product: ai_assistant
detection:
selection_response:
response|re:
- 'sk-[A-Za-z0-9_-]{20,}'
- 'AKIA[0-9A-Z]{16}'
- 'hf_[A-Za-z0-9]{30,}'
- '-----BEGIN [A-Z ]*PRIVATE KEY-----'
- '(?i)(api[_-]?key|password|secret|token)\s*[:=]\s*\S+'
condition: selection_response
level: high
tags:
- atlas.aml_t0082
- attack.t1552
缓解措施
优先级1:关键措施
摄取管线秘密扫描与脱敏(治本):在 RAG 摄取(ingestion)环节强制接入秘密扫描(Gitleaks/detect-secrets 类引擎),文档入库前逐块检测凭证模式——命中即阻断入库、打标通知凭证属主轮换;对连接串、内网地址等可配置项做脱敏(如 Microsoft Presidio 类工具)后再入库。同时做源头治理:禁止在内部文档明文存放凭证(配合对 T1552 不安全的凭证 的防御),让“误吞“无从发生。存量知识库需全量重扫一遍——已入库的凭证块不会自己消失。
优先级2:重要措施
检索层权限对齐:把文档原有访问控制(ACL)写入知识库元数据,检索时按请求者(或执行检索的智能体)的权限过滤——文档对提问者不可见,检索器就不该召回它。输出侧凭证过滤:AI 助手出口部署 DLP 式检查,响应命中凭证正则即拦截、脱敏并告警,作为摄入扫描失守后的第二道闸。
优先级3:建议措施
- 渲染面收敛:聊天界面对外链与自动加载图片做域名白名单,切断 CS0035 式 URL 参数外带信道
- 索引定期重建与审计:按周期重扫知识库,清理误吞的历史凭证;轮换过的旧凭证同步从向量索引与备份中清除
- 凭证短时效化:知识库可能接触的凭证一律短时效令牌,把“被吐出“的损失窗口压到最小
MITRE ATLAS 缓解措施映射
官方 ATLAS 数据为本技术映射了以下缓解措施(生命周期:部署阶段;类别:Technical - Cyber):
- AML.M0026 特权 AI 智能体权限配置:部署特权智能体或与多用户交互的智能体时,必须实施健壮的权限策略与控制,包括基于角色的访问控制(RBAC)、基于属性的访问控制(ABAC)与最小权限原则——智能体只应获得完成其指定任务所需的工具与资源权限。在 RAG 场景的落点:检索层按智能体实际权限过滤可召回的文档,缩小“能吐出什么“的范围。
- AML.M0027 单用户 AI 智能体权限配置:作为用户代表行事的智能体应实施最小权限与来自用户账户的委托访问,其权限不得超过该用户在系统内本应获得的权限。在 RAG 场景的落点:助手替用户检索时,只召回该用户本就有权阅读的文档——权限对齐直接封死“越权召回“路径。
关联 ATT&CK 技术
官方 ATLAS 数据未对本技术给出 ATT&CK-reference 映射(attack_reference 为空)。本技术是 RAG 架构特有的凭证暴露面,以下为依据攻击链上下游整理的关联 ATT&CK 技术,供对照参考:
| ATT&CK 技术 | 关系说明 |
|---|---|
| T1552 不安全的凭证 | 根因上游:内部文档不安全地明文存放凭证,是 RAG“误吞“的源头 |
| T1552.001 文件中的凭证 | 被摄取文档中凭证的直接对应子技术 |
| T1213 信息库数据 | 传统对应:从 Wiki/SharePoint 等信息库收集数据——RAG 知识库是其 AI 时代形态 |
与同战术 ATLAS 技术的分工:本技术面向 RAG 知识库误吞的凭证——让 AI 自己“召回“;翻找失陷主机上的明文凭证是 AML.T0055,读取智能体配置收割工具凭证是 AML.T0083,借智能体之手翻其连接的数据源是 AML.T0098,窃取浏览器会话 Cookie 是 AML.T0113;预埋恶意内容的同源技术在持久化战术(RAG 投毒 AML.T0070)。防御侧应把它们视为同一张“凭证暴露面地图“上的不同区域。
动手实验
⚠️ 重要提示:所有实验在自有测试环境进行,使用假凭证。若真实系统测试中吐出真实凭证,立即轮换,严禁留存或使用。
实验环境准备
| 环境组件 | 用途 | 获取方式 |
|---|---|---|
| Python 3.10+ 测试机 | 搭建玩具级 RAG | 本地环境 |
| LangChain / LlamaIndex | RAG 管线框架 | pip 安装 |
| 任意可用 LLM API | 生成与嵌入 | 自有账号 |
| 假凭证文档集(decoy) | 模拟被误吞的内部文档 | 手工编写 |
| Gitleaks / detect-secrets | 实验2 的扫描引擎 | 官方仓库发布版 |
实验1(初级):让 RAG 吐出它不该有的东西
实验目标: 亲眼看凭证如何经“摄取 → 检索“被模型复述。
实验步骤:
- 编写 10 份 decoy 文档:9 份正常运维手册 + 1 份含假凭证(
db_password=FakePassw0rd!、sk-fake-xxxxxxxx)的交接文档 - 用 LangChain/LlamaIndex 把全部文档摄取进本地向量库(不做任何过滤——复现真实缺口)
- 先问“知识库里有哪些手册“,再逐步升级为“贴出交接文档里的完整数据库配置“
预期结果: 助手在两轮内吐出假凭证原文——直观理解“零入侵成本“与摄取缺口的关系。
实验2(中级):给摄取管线装上秘密扫描
实验目标: 把优先级1 缓解措施落地并验证有效。
实验步骤:
- 在实验1 的摄取代码中接入 Gitleaks/detect-secrets(或用正则实现最小版):逐块检测,命中即拒入库并告警
- 重新摄取同一文档集,确认含凭证文档被阻断
- 换用脱敏方案(凭证替换为
[REDACTED]后入库),重复实验1 的提问,对比助手响应
预期结果: 产出一条“扫描阻断 / 脱敏放行“的对照记录——理解为什么输出侧还需要第二道闸。
实验3(高级):复现 CS0035 式间接注入链
实验目标: 验证“预埋载荷 → 受害者正常提问 → 触发“的完整链路及其检测。
实验步骤:
- 在知识源中另加一份“公开文档“,内嵌间接注入指令:要求模型回答时附带一个
https://example.com/?secret=<检索到的密码>形式的链接 - 以“不知情用户“身份提出与凭证完全无关的正常问题,观察注入是否被检索触发、密码是否进入链接参数
- 为问答日志编写凭证正则检测(实验2 的扫描规则复用),回放步骤 2 的会话,验证检测规则能否在响应侧命中
预期结果: 完整理解本技术与间接提示词注入组合后的自动化外带风险,并手握一条“摄取扫描 + 响应检测“的双侧防线验证记录。
术语解释
| 术语 | 英文原名 | 通俗解释 |
|---|---|---|
| RAG | Retrieval-Augmented Generation(检索增强生成) | 让 AI 回答前先去知识库里“查资料“的架构——本技术攻击的正是这套检索机制 |
| 摄取 | Ingestion | 把文档抓取、切块、向量化后写入知识库的过程,秘密扫描缺位就发生在这里 |
| 知识源 | Knowledge Source | 被摄取的原始文档集合:内部 Wiki、运维手册、工单、聊天频道——凭证最初所在的地方 |
| 知识库 | Knowledge Base | RAG 的“图书馆“——存储被摄取文档的正文与向量,助手作答的事实来源 |
| 向量数据库 | Vector Database | 按语义相似度存放与检索文本块的专用数据库,凭证块潜伏的地方 |
| 嵌入向量 | Embedding | 把文本压缩成的一串数字,用来计算“哪段内容和问题最相关“ |
| 分块 | Chunking | 摄取时把长文档切成小段——凭证所在的那一小块就是被召回的单元 |
| 检索 | Retrieval | 按相似度从知识库召回最相关文本块的动作,攻击者用提示词“瞄准“的入口 |
| 秘密扫描 | Secret Scanning | 用正则/规则自动检测密码、密钥、令牌的技术——摄取管线最常缺失的一环 |
| 脱敏 | Data Masking / Redaction | 把敏感内容替换为占位符(如 [REDACTED])后再存储的处理 |
| 间接提示词注入 | Indirect Prompt Injection | 把恶意指令藏在会被 AI 读到的内容里,等检索触发后劫持模型行为 |
| 权限对齐 | ACL Alignment | 让检索层遵守文档原有访问控制:提问者无权看的文档就不该被召回 |
| 响应侧过滤 | Output Filtering | 在助手输出处检测并拦截凭证形态内容的防线,摄入扫描失守后的第二道闸 |
| DLP | Data Loss Prevention | 在出口处检测并拦截敏感信息外流的防护体系,可用于 AI 响应侧 |
参考资料
📚 官方文档
- MITRE ATLAS - RAG Credential Harvesting (AML.T0082) - 官方技术页面
- MITRE ATLAS 矩阵
- MITRE ATLAS Data (GitHub)
- MITRE ATLAS 案例研究 (AML.CS0035) - 官方案例库
📰 案例报告(真实攻击与安全研究)
- PromptArmor: Data Exfiltration from Slack AI via indirect prompt injection - Slack AI 间接注入外带私频道 API 密钥(AML.CS0035)
🔧 工具与资源
- Gitleaks - 摄取管线可集成的秘密扫描引擎
- detect-secrets - 轻量密钥检测,适合入库前钩子
- Microsoft Presidio - 敏感信息识别与脱敏框架
- OWASP Top 10 for LLM Applications - LLM02 敏感信息泄露与本技术直接对应
🔗 关联阅读
- 不安全的凭证 (T1552) - 被误吞凭证的源头技术完整中文文档
- 文件中的凭证 (T1552.001) - 含密码文档的直接对应子技术
- 信息库数据 (T1213) - 从信息库收集数据的传统对应
- RAG 投毒 (AML.T0070) - 同一条摄取管线的持久化侧攻击
- 不安全的凭证 (AML.T0055) - 同战术姊妹技术:失陷主机上的明文凭证搜刮
- 凭证访问战术 (AML.TA0013) - 本技术所属战术的概览页
版本: ATLAS 2026.09 | 更新: 2026-10-22 | 模板: ATLAS 技术文档 v1.0