# AI应用安全

> 来源: AISS绿盟大模型安全智链社区
> 条目数: 34

---

## 应用阶段

### CoT注入攻击

> 风险编号: GAARM.0042
> 生命周期: 应用阶段

**攻击概述**

CoT（Chain of Thought）通过促使LLMs思考一系列的关键步骤来解决问题，有效提高了问题的推理解决能力。基于ReAct（Reason + Act）实现CoT推理的技术框架，并且利用Agent调度实现LLMs访问外部世界的交互能力，可以与各种外部系统无缝连接并执行复杂的任务。
在CoT应用中，用户通过提供自然语言的问题，AI模型会生成一系列推理步骤来回答该问题，其中涉及到思考（Thought）、行动（Act）、观察（Obs）三个核心步骤，AI模型会循环上述三个步骤完成各种复杂问题的推理与解决，由于整个过程比传统代码逻辑更加开放与灵活，缺乏严格的流程控制结构，攻击者可以通过CoT注入攻击绕过特定的推理步骤，诱导AI模型执行非预期的动作，比如：业务功能风险（任意用户转账等）、技术功能风险（SSRF、RCE等），目前CoT注入攻击主要有两种攻击思路：

思维链干扰注入：通过观察CoT的调度过程，构造恶意输入以欺骗模型认为其已经获取到一个Agent的结果，通过伪造Agent的结果，实现对CoT运行过程的干扰；
思维链操纵注入：通过观察CoT的调度过程，直接或利用对抗攻击手段构造恶意输入，实现对CoT过程的操纵，使模型跳过预置的CoT过程，直接调度敏感的Agent；

**攻击案例**

案例
描述




案例一
该案例主要提出基于ReAct框架的LLMs应用，如何利用其CoT思维链过程实现对Agent的恶意利用


案例二
该研究发现，通过将越狱提示与 CoT 提示相结合，利用 CoT 绕过 LLM 的道德限制，可以导致模型生成私人信息


案例三
ReAct框架下的查询注入攻击CTF开源题目

**攻击风险**

在使用信息检索系统的LLMs应用中，攻击者可以污染信息检索数据库，使得恶意文本片段被注入到发送给LLM的查询中，从而影响最终的输出结果，导致用户隐私、恶意代码执行等一系列风险。
在退款业务系统的LLMs应用中，攻击者可以干扰退款CoT流程，使得原先不具备退款条件的订单可以正常退款；或者直接恶意操纵退款操作的Agent，使得实际退款金额与预期退款金额不符，从而造成企业的经济损失。

**缓解措施**

缓解方式
描述




严格权限管控
强制执行严格的特权控制，确保LLMs只能访问必需的内容以及Agent，从而最大程度地减少潜在的漏洞点


LLMs Agent调度控制
针对敏感操作的Agent实施外部严格的自动或者人工权限校验机制判断，避免LLMs直接具备相应的使用权限


Prompt内容强化
采用 OpenAI 聊天标记语言 （ChatML） 等解决方案，试图将真正的用户提示与其他内容隔离开来

**参考**

http://youtube.com/watch?v=7ZA0Z1R-MjQ
http://youtube.com/watch?v=KksYizcLFH0

---
### MCP地毯式骗局

> 风险编号: GAARM.0046.001
> 生命周期: 应用阶段

**攻击概述**

MCP地毯式骗局攻击是指由于MCP架构允许服务器在客户端授权后动态修改工具描述，攻击者可利用这一机制在用户信任的基础上植入恶意指令（如篡改功能逻辑或劫持操作）。即使安装时经过安全审核，后续的隐蔽篡改仍可能在导致工具描述被植入恶意利用指令（如数据泄露或未授权操作）。

**攻击案例**

案例
描述




案例一
恶意 MCP 工具函数描述中嵌入“读取用户私钥”等隐蔽提示，用户批准工具后，模型调用时误执行这些提示，泄露本地文件

**攻击风险**

工具越权行为：模型调用工具时，因描述内容被投毒，导致执行非预期指令。
敏感数据泄露：攻击者诱导模型访问并输出如 ~/.ssh/id_rsa 等敏感文件。
模型功能劫持：攻击者可利用 Prompt 操纵模型行为，如传播虚假信息、生成非法内容。
绕过审核机制：工具注册时字段验证通过，但真实执行时模型被描述内容劫持。

**缓解措施**

缓解方式
描述




白盒评估机制
对MCP Server的代码进行白盒审计，及时发现恶意的工具描述以及代码行为


审计与监控
实时监控模型行为，记录工具调用日志，及时检测异常操作


模型安全训练
对模型进行对抗性训练，增强对投毒攻击的防御能力


API访问控制
限制工具对敏感数据的访问，降低泄露和滥用风险


执行上下文隔离
限制模型访问工具描述字段，或使用结构化调用协议（如 OpenAI ChatML 工具调用语法）避免描述污染

**参考**

https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
https://atlas.mitre.org/techniques/AML.T0051
https://github.com/invariantlabs-ai/mcp-injection-experiments

---
### MCP工具投毒攻击

> 风险编号: GAARM.0046
> 生命周期: 应用阶段

**攻击概述**

MCP是一个开放协议，用于标准化应用程序向大语言模型提供上下文的方式，MCP工具投毒攻击是一种针对该协议的攻击方式。攻击者通过恶意MCP Server的工具描述中注入攻击性提示词，实现对工具行为的恶意操纵。其核心特征是在工具描述中嵌入恶意指令，利用模型解析完整工具描述的过程，通过隐藏指令（如特殊标签或编码）诱导模型执行非授权操作，例如生成恶意内容、泄露敏感信息或绕过其他安全限制。

**攻击案例**

案例
描述




案例一
攻击者通过操纵工具描述实现恶意攻击，导致敏感模型信息泄露到恶意的MCP Server


案例二
利用MCP Tool的描述进行投毒，实现简介提示词注入，控制其他工具的参数实现信息外带等攻击目的

**攻击风险**

MCP工具投毒攻击可能导致严重的系统性风险，影响模型的安全性、可靠性和用户信任。以下是主要风险：

信任破坏：可能导致用户对模型及其开发工具的信任下降，影响其在敏感场景中的应用。
目标劫持：可通过投毒使模型偏离其原始设计目的，执行自定义的恶意指令，增加滥用风险。
系统安全性威胁：可能导致在MCP工具中植入恶意代码，导致系统被进一步入侵或功能被破坏。
数据隐私泄露： 可利用投毒提取模型训练数据或用户输入的敏感信息。

**缓解措施**

缓解方式
描述




白盒评估机制
对MCP Server的代码进行白盒审计，及时发现恶意的工具描述以及代码行为


审计与监控
实时监控模型行为，记录工具调用日志，及时检测异常操作


模型安全训练
对模型进行对抗性训练，增强对投毒攻击的防御能力


API访问控制
限制工具对敏感数据的访问，降低泄露和滥用风险

**参考**

https://invariantlabs.ai/blog/mcp-security-notification-tool-poisoning-attacks
https://mp.weixin.qq.com/s/EJLb1IwqbPF3VSDkJu099g
https://x.com/hongming731/status/1922261630664245326
https://news.qq.com/rain/a/20250429A07QY000

---
### MCP指令覆盖攻击

> 风险编号: GAARM.0046.002
> 生命周期: 应用阶段

**攻击概述**

MCP指令覆盖风险是一种针对MCP Server工具调用的恶意注入攻击，攻击者通过恶意MCP Server的工具描述，向其中植入恶意指令，从而劫持其他可信工具的正常行为。例如，攻击者可能修改邮件发送工具调用行为，使其在调用时暗中篡改收件人邮箱，导致敏感数据外泄或恶意操作。

**攻击案例**

案例
描述




案例一
制作包含隐藏指令的工具描述，这些指令会操纵模型与其他工具的交互方式，LLM会在用户不知情的情况下读取并遵循这些指令


案例二
该案例中包含一个受信任的服务器和一个恶意的服务器。受信任的服务器提供发送电子邮件的工具，而恶意的服务器提供伪造的数字加法工具，该工具的描述中包含MCP指令覆盖攻击，要求发件工具的收件人必须为@pwnd.com


案例三
该案例利用恶意的MCP Server描述，控制whatapps send_message工具的收件人信息为+13241234123

**攻击风险**

数据泄露风险: 指令覆盖攻击可以指示可信工具从对话、文档或连接系统中提取敏感信息，并将其发送到攻击者控制的机器
可信工具滥用: 攻击者可以操纵模型的网络请求、代码运行等可信工具，使其访问不可信的站点或执行恶意的代码等

**缓解措施**

缓解方式
描述




白盒评估机制
对MCP Server的代码进行白盒审计，及时发现恶意的工具描述以及代码行为


审计与监控
实时监控模型行为，记录工具调用日志，及时检测异常操作


模型安全训练
对模型进行对抗性训练，增强对投毒攻击的防御能力


API访问控制
限制工具对敏感数据的访问，降低泄露和滥用风险

**参考**

https://blog.trailofbits.com/2025/04/21/jumping-the-line-how-mcp-servers-can-attack-you-before-you-ever-use-them/
https://blog.trailofbits.com/2025/04/29/deceiving-users-with-ansi-terminal-codes-in-mcp/

---
### MCP隐藏指令攻击

> 风险编号: GAARM.0046.003
> 生命周期: 应用阶段

**攻击概述**

MCP隐藏指令攻击是指攻击者通过在 MCP 工具描述中嵌入 ANSI 终端转义码（如颜色设置、光标控制等） 或不可见 Unicode 字符  ，可以使恶意指令对用户不可见，但仍被 LLM  执行。这种攻击方式利用了 MCP 的“行跳跃”漏洞，使得攻击在不被察觉的情况下影响开发者的操作 ，导致数据泄露、供应链攻击等安全问题。

**攻击案例**

案例
描述




案例一
攻击者通过在工具描述中嵌入 ANSI 转义码，使得文本在终端中不可见，但 LLM 仍然读取并执行了其中的指令，导致模型建议从恶意服务器下载 Python 包，从而可能引发供应链攻击。


案例二
通过在用户输入中加入不可见的 Unicode 字符，攻击者可以在 LLM 中注入恶意指令。


案例三
通过在网页中注入隐藏代码，MCP工具返回网页信息给 LLM， 导致注入不可见的恶意指令，实现数据泄露或其他攻击。

**攻击风险**

供应链攻击：通过隐藏的指令，攻击者可以在开发过程中植入恶意代码，影响整个软件供应链。
数据泄露： 敏感信息（如 IP 地址、下载源等）可能被悄无声息地泄露。  
系统安全性：在某些情况下，隐藏指令可以被用来生成和执行恶意代码。

**缓解措施**

缓解方式
描述




输入输出过滤
对用户输入和工具输出进行严格的过滤和清洗特殊字符，移除潜在的恶意字符和指令。


避免将原始工具输出传递到终端
应通过在渲染之前禁用转义序列来对潜在危险的输出进行一致的清理。最简单的方法是将任何十六进制值的字节替换1b为占位符，因为现代终端识别的所有转义序列都以该字节开头。


工具描述审查
对 MCP 工具的描述进行审查，确保其中不包含恶意指令


限制 MCP 服务器权限
在敏感环境中，仅允许信任的 MCP 服务器进行交互，减少潜在的攻击面。


监控和审计 MCP 活动
定期审查日志和交互以检测异常或可疑行为

**参考**

https://blog.trailofbits.com/2025/04/29/deceiving-users-with-ansi-terminal-codes-in-mcp/
https://www.solo.io/blog/deep-dive-mcp-and-a2a-attack-vectors-for-ai-agents

---
### Prompt注入

> 风险编号: GAARM.0039
> 生命周期: 应用阶段

**攻击概述**

Prompt注入是攻击者利用特殊构造的输入来覆盖或操纵LLMs的原始指令过程。由于自然语言本身具有模糊性，指令和数据的界限往往没有清晰的界限，就导致攻击者可以利用外部的恶意输入来污染模型的输出。这种攻击通常发生在将不可信的输入作为提示的一部分。LLMs可以识别和处理自然语言，而自然语言本身具有模糊性，指令和数据往往没有清晰的界限，攻击者可以在控制的数据字段中包含指令，而系统在底层无法区分数据和指令。

**攻击案例**

案例
描述




案例一
利用恶意输入操纵GPT-3提示，命令模型忽略其先前的指令


案例二
使用多种方法进行Prompt注入攻击

**攻击风险**

Prompt注入成功可能导致元Prompt泄露、模型越狱、模型功能滥用等危害。

恶意内容生成：攻击者可以利用Prompt注入生成不当内容，包括威胁、诽谤或其他恶意信息。
数据泄露：如果LLMs被用于输出敏感信息，Prompt注入攻击可能导致数据泄露。
系统安全性：在某些情况下，Prompt注入可以被用来生成和执行恶意代码。
模型滥用：攻击者通过目标劫持等攻击手段，使得LLMs偏离预先的系统设定，执行其他的自定义指令，增加模型滥用的风险。

**缓解措施**

缓解方式
描述




Prompt内容强化
采用类似于 OpenAI 聊天标记语言 （ChatML） 等解决方案，对Prompt的结构和内容实现强化，试图将真正的用户提示与其他内容隔离开来


模型安全对齐
提供多样化的训练数据，涵盖各种攻击场景，通过在模型训练阶段增加安全围栏机制，以增强模型的泛化能力和鲁棒性


输入/输出验证
通过在模型输入与输出侧架设外部的安全守卫，基于规则、分类算法、安全大模型等方式，对输入与输出内容进行检测与过滤操作


监控与日志记录
监控并记录LLMs交互记录，以便后续检测和分析潜在的Prompt注入攻击

**参考**

https://aclanthology.org/2024.scalellm-1.2/
https://atlas.mitre.org/techniques/AML.T0051
https://josephthacker.com/ai/2023/05/19/prompt-injection-poc.html
https://simonwillison.net/2022/Sep/12/prompt-injection/

---
### SSRF环境模拟探测

> 风险编号: GAARM.0041.001
> 生命周期: 应用阶段

**攻击概述**

SSRF的形成大多是由于服务端提供了从其他服务器应用获取数据的功能且没有对目标地址做过滤与限制。如果LLMs应用程序中存在SSRF漏洞，攻击者可以利用这个漏洞发起内部网络请求，访问应用程序内部的受限资源。同时，一些LLMs可能内置有网络访问功能的Agent，用于执行一些外部信息查询等操作。攻击者可以利用LLMs应用API SSRF漏洞或者LLMs中具备网络访问功能的Agent，执行意外请求或访问受限资源（如内部服务、API 或数据存储），进而访问模型内部系统，增加模型信息、内部服务、敏感数据等数据信息泄露的风险。

**攻击案例**

案例
描述




案例一
ChatGPT-Next-Web应用程序存在SSRF漏洞(CVE-2023-49785),可以使用此漏洞探测内网网络资源

**攻击风险**

访问内部资源：攻击者可以利用 SSRF 漏洞来发送请求，获取内部网络中的敏感信息
攻击流量代理：通过利用 SSRF 漏洞，攻击者可以发送恶意请求来攻击内部系统、服务或资源
数据泄露：攻击者可能利用该风险获取敏感数据，如云平台访问密钥等。

**缓解措施**

缓解方式
描述




LLMs API 调度控制和沙箱隔离
实施适当的沙箱机制来隔离LLM，并限制其对网络资源、内部服务和API的访问。通过执行严格的访问控制，组织可以尽量减小未经授权的交互的可能性，并减轻SSRF漏洞的影响


LLMs定期安全评估与审查
对网络和应用程序安全设置进行定期审计和审查，以识别和处理任何错误配置，确保内部资源不会无意中暴露给LLM，加强整体安全体系


输入/输出验证
实施可靠的输入验证和处理技术，以确保提示经过彻底的检查和过滤，这有助于防止恶意或意外提示触发未经授权的请求，从而降低SSRF攻击的风险


监控与日志记录
实施全面的监控和记录机制以跟踪LLM交互。通过密切监控LLM的活动并记录相关信息，组织可以检测和分析潜在的SSRF漏洞，从而能够及时检测和修复

**参考**

https://owasp.org/www-project-top-10-for-large-language-model-applications/Archive/0_1_vulns/SSRF.html

---
### XSS会话内容劫持

> 风险编号: GAARM.0040.001
> 生命周期: 应用阶段

**攻击概述**

XSS会话内容劫持作为一种间接提示词注入的攻击手段，利用了大型语言模型（LLMs）获取外部信息的过程。当用户与LLM通过LLM提供的界面进行交互，例如web界面、api接口、应用程序等，攻击者通过间接注入恶意的提示词指令，利用LLMs应用前端解析Markdown标签和HTML img标签等特性，将当前聊天会话内容进行总结，并将敏感密钥、数据等信息嵌入到img标签的src属性中，从而实现会话内容的泄露。

**攻击案例**

案例
描述




案例一
攻击者利用Google Bard的更新功能，构造特殊的Markdown图像标签，使得Bard渲染出一个指向攻击者服务器的图像，实现对数据的窃取


案例二
利用Azure AI Playground模型允许通过图像Markdown注入的方式将提示词附加到src属性的URL中渲染，导致数据泄露等风险


案例三
攻击者利用ChatGPT插件直接访问Youtube字幕的功能，通过间接Prompt注入控制字幕内容来操纵AI的行为


案例四
攻击者可以利用ChatGPT的Markdown图像渲染功能窃取聊天记录，攻击者控制AI行为，请求总结聊天历史并附加到URL以窃取数据


案例五
攻击者通过Markdown图像注入的方式自动从聊天会话中窃取数据


案例六
攻击者可指示ChatGPT使用插件记录对话，生成指向记录的URL，并通过Markdown图像注入泄露链接，以获取整个对话历史


案例七
由于LLM代理（客户端应用程序，如Bing Chat或ChatGPT）容易受到Prompt注入攻击，攻击者可利用此漏洞通过在图像URL中附加敏感数据来进行自动数据外泄

**攻击风险**

数据泄露：攻击者可以获取到当前会话中，用户的敏感数据信息，包括会话令牌、个人信息、聊天记录等。
会话劫持：攻击者可能通过获取的会话令牌接管用户的会话。

**缓解措施**

缓解方式
描述




输入/输出验证
对所有输入以及输出数据进行严格的验证和清洗，以移除或修正任何可疑的注入以及生成内容


内容安全策略(CSP)
实施严格的CSP内容安全策略，阻止恶意脚本的执行以及数据外带行为


最小权限原则
确保正确的沙盒化并限制LLMs的能力，限制插件、Agent等机制从不可信来源获取数据信息


人工干预审批
提供给用户更多的控制权，让他们能够管理插件的使用和数据的流向

**参考**

https://systemweakness.com/new-prompt-injection-attack-on-chatgpt-web-version-ef717492c5c2

---
### 代码执行注入

> 风险编号: GAARM.0041.002
> 生命周期: 应用阶段

**攻击概述**

在ReAct框架下，LLMs可以与外部系统交互，外部的代码解释器Agent可用于为LLMs提供代码执行能力，实现在业务应用过程中完成自动化图标绘制、复杂代码运算等需求。攻击者通过构建恶意输入提示词操纵LLMs执行预定的推理过程，使得LLMs调度代码执行Agent在底层系统上执行恶意代码、命令等操作，从而实现对LLMs基座运行环境的攻击与利用，出现此攻击的主要原因为:

未能对用户输入进行有效检测验证或限制，允许攻击者未经授权的开展恶意代码执行操作。
沙盒环境不足或LLMs的能力限制不足，导致它以意外的方式与底层系统进行交互。
无意中将系统级功能或接口暴露给LLMs。

**攻击案例**

案例
描述




案例一
GPT-4新功能上线后，其中发现Python代码解释器疑似存在沙盒逃逸漏洞

**攻击风险**

代码执行风险：攻击者可以执行任意Python代码，这可能导致服务器受损、数据泄露或其他恶意行为。
系统权限控制：如果CodeExecutor没有适当的安全措施，执行的代码结合容器逃逸等攻击手段，可能会获取系统的高级权限。
持续性访问控制：攻击者可能利用这次机会建立一个长期的访问通道，用于持续攻击。

**缓解措施**

缓解方式
描述




输入验证
实施严格的输入检测与限制流程，防止恶意或意外的提示被LLMs处理


最小权限原则
确保正确的沙盒化并限制LLMs的能力，以限制其与底层系统的交互能力，避免执行可能导致系统级影响的操作


监控与日志记录
记录所有通过LLM执行的操作，并进行实时监控，以便快速检测和响应可疑活动

**参考**

https://owasp.org/www-project-top-10-for-large-language-model-applications/Archive/0_1_vulns/Unauthorized_Code_Execution.html
https://www.calvin-risk.com/blog/decoding-llm-risks-a-comprehensive-look-at-unauthorized-code-execution

---
### 关键字混淆

> 风险编号: GAARM.0043
> 生命周期: 应用阶段

**攻击概述**

该风险是指针对Prompt中的关键词汇进行特殊的处理操作（同音词、同义词、单词拆分或者其他形式的文本操作），使其在保持相似意义的同时，经过token化不再带有风险含义，从而规避模型安全机制对敏感词汇的限制。

**攻击案例**

在英语LLM中，常用的关键字混淆方法包括：字母混淆（bomb -> b0mb），近义词替换（bomb -> explosive），单词拆分（bomb -> b-o-m-b）。
对于中文LLM，因为分词方法的差异，关键字混淆方法也有显著的区别，常见的中文关键字混淆方法包括拼音替换（炸弹 -> zha弹），近义词替换（炸弹 -> 爆炸物），近形字替换（炸弹 -> 炸掸）等。

**攻击风险**

生成不当内容：攻击者可能利用关键字混淆技术来绕过自动内容审查系统，发布或传播恶意内容，如暴力、恐怖主义或色情信息。
规避安全机制：攻击者恶意引导模型产生不正确的输出，以误导系统做出不良决策或执行危险操作。

**缓解措施**

缓解方式
描述




模型安全对齐
通过训练和强化学习，提升LLM识别和抵御这类攻击的能力


输入/输出验证
输入侧不断更新和改进词汇过滤系统，以识别和阻止混淆后的敏感词汇；输出侧监控LLMs生成内容，通过内容安全分析技术识别潜在的

**参考**

https://mp.weixin.qq.com/s/eFDQWYYCOe_SSiourhTxig

---
### 反向诱导&抑制攻击

> 风险编号: GAARM.0045
> 生命周期: 应用阶段

**攻击概述**

该风险通过在提示词中加入特定的指令，使得LLMs在生成回答时避免使用某些特定的拒绝性响应，从而增加攻击者期望的不安全或不当内容的可能性。这种攻击利用自回归特性实现对模型的诱导，由于模型内容的生成是基于之前的输出来预测下一个单词，通过特别要求使LLMs在生成回答时不使用某些特定的词汇或短语，如“抱歉”、“不能”、“无法”等，导致模型生成不当或违反安全策略的内容。

**攻击案例**

案例
描述




案例一
利用前缀注入 + 反向抑制攻击实现对ChatGPT3.5的安全限制绕过，实现违法犯罪风险内容的输出

**攻击风险**

生成不当内容：LLMs可能生成包含违法指导、暴力、色情、政治敏感等风险内容。
规避安全机制：攻击者能够绕过LLMs的安全机制，导致模型输出攻击者期望的风险内容。

**缓解措施**

缓解方式
描述




模型鲁棒性增强
通过训练和强化学习，提升LLM识别和抵御这类攻击的能力


输入监控和过滤
对LLMs的输出进行实时监控，及时过滤掉不安全或不当内容

---
### 同义词替换攻击

> 风险编号: GAARM.0043.001
> 生命周期: 应用阶段

**攻击概述**

同义词替换攻击，通过使用与敏感词汇或短语有相同或相似含义的同义词来绕过模型的安全防护措施，从而获取或泄露模型的内部指令或敏感信息的攻击手段。随着LLMs体积越发庞大，对于每个存在攻击示例的微调变得越发困难，模型容易遭受同义词替换的攻击。例如，在一个编程助手中，攻击者可以用"remove"替换"delete"，用"harm"替换"destroy"等，试图绕过关键词检查。

**攻击案例**

案例
描述




案例一
攻击者通过同义词替换成功绕过模型的过滤，实现系统Prompt设定的泄露

**攻击风险**

敏感信息泄露：攻击者可能获取模型的内部指令，包括但不限于系统提示，密码等敏感信息。
安全机制绕过：攻击者可以利用同义词替换攻击绕过模型的安全防护，导致模型生成不期望的输出或执行未授权的操作。

**缓解措施**

缓解方式
描述




模型安全对齐
提供多样化的训练数据，涵盖各种攻击场景，以增强模型的泛化能力和鲁棒性


输入/输出验证
输入侧不断更新和改进词汇过滤系统，以识别和阻止混淆后的敏感词汇；输出侧监控LLMs生成内容，通过内容安全分析技术识别潜在的

**参考**

https://arxiv.org/html/2402.16914v1

---
### 多模态协同注入攻击

> 风险编号: GAARM.0061
> 生命周期: 应用阶段

**攻击概述**

多模态协同注入攻击是一种利用多种模态（文本、图像、音频、视频等）之间协同关系进行恶意指令嵌入的高级攻击技术。攻击者通过精心构造跨模态的恶意内容，利用多模态模型在处理和理解不同模态信息时的语义关联机制，将恶意指令嵌入到看似无害的多模态内容中。这种攻击的核心在于绕过单一模态的安全检测机制，通过模态间的协同效应实现攻击目的，可能导致数据泄露、模型行为操纵或非预期操作执行。

**攻击案例**

案例
描述




案例一
攻击者利用跨模态冲突注入（CMCI），通过系统正常更新机制向知识库插入特殊的对抗性图像-文本对。这些对在检索时看似语义对齐（如图像显示肺炎，文本却描述“肺部清晰”），但实际内容矛盾，从而诱导AI在诊断时输出完全错误的结论（如将肺炎误判为正常），造成严重的医疗安全风险。

**攻击风险**

数据泄露：诱导模型泄露训练数据或敏感信息
行为操纵：通过跨模态指令操纵模型的输出和行为
安全绕过：绕过单一模态的安全检测和控制机制
权限提升：利用模态协同获得更高的系统权限
隐私侵犯：通过多模态分析获取用户隐私信息

**缓解措施**

缓解方式
描述




跨模态协同检测
建立多模态协同安全检测机制，实施跨模态语义关联分析，检测异常的模态组合模式


多维度安全验证
同时验证多个模态的安全性，建立模态间一致性检查，实施跨模态威胁情报共享


融合过程加固
在多模态融合过程中加入安全检查，实施模态权重动态调整，建立异常融合模式检测


模态隔离处理
对不同模态进行预处理隔离，实施模态级安全过滤，建立模态间的安全通信机制

**参考**

通过跨模态提示注入操纵多模态智能体
如何使医疗人工智能系统更安全？多模态医疗RAG系统中的漏洞和威胁

---
### 对抗编码攻击

> 风险编号: GAARM.0044
> 生命周期: 应用阶段

**攻击概述**

对抗编码攻击是针对LLMs输入与输出侧防御检测机制的一种对抗技术手段，攻击者通过编码或转换数据（如使用base64编码），尝试绕过安全检查或注入恶意内容。这种攻击针对的是NLP模型的编码层，试图绕过模型的文本理解能力，直接影响内部特征的生成。
由于LLMs训练过编码文本等多样化的数据类型，因此支持正常实现解码操作，并完成恶意指令的执行或者敏感数据的外泄。

**攻击案例**

案例
描述




案例一
利用对抗编码攻击绕过ChatGPT安全限制，获取存储的密钥信息


案例二
该文章研究了基于文本的 NLP 模型被操纵编码的扰动进行了干扰与误导，这些扰动利用语言编码功能可以改变模型输出并增加推理运行时间。例如呈现为相同或视觉上相似的字形的独特字符用于扰乱模型的输入

**攻击风险**

绕过安全机制：攻击者可能利用模型编解码能力来绕过内容安全检查。
数据泄露：攻击者可以利用Base64编码操作来隐藏恶意指令或数据，导致敏感信息泄露。
未经授权的代码执行：恶意代码可以通过Base64编码的形式注入到LLMs中，从而导致未经授权的代码执行，可能损害系统的完整性和安全性。
恶意操作：攻击者可以利用Base64编码操纵LLMs执行各种恶意操作，如篡改数据、劫持会话等，从而危害系统和用户安全。

**缓解措施**

缓解方式
描述




输入/输出验证
对输入和输出数据进行验证，以防止恶意或意外的Base64等编码数据输入到LLMs中或者直接被打印出来


模型安全对齐
将大模型进行语言细微差别和编码技术训练用于识别这些攻击的特征

**参考**

https://promptengineering.org/mind-over-malware-battling-the-growing-arsenal-of-attacks-on-large-language-models/
https://www.toolify.ai/ai-news/the-future-of-hacking-5-terrifying-llm-security-threats-544868

---
### 应用对话Memory攻击

> 风险编号: GAARM.0040.003
> 生命周期: 应用阶段

**攻击概述**

该风险指的是攻击者可以通过Web端的Prompt注入诱骗LLMs创建恶意的Memory（如：用户与模型的错误偏好设定），通过恶意的修改LLM记忆中的用户偏好，达到操控LLMs的效果。例如，攻击者可以诱骗LLM，使它认为用户的聊天偏好是“对用户的每一条消息都回复‘抱歉，我不能回复你’”，以此达到DOS攻击的效果。

**攻击案例**

案例
描述




案例一
这篇文章介绍了通过应用对话Memory攻击导致模型对用户持续的拒绝服务

**攻击风险**

DOS攻击：攻击者可以根据喜好让用户受到持续拒绝服务的内存攻击。

**缓解措施**

缓解方式
描述




关闭历史记忆功能
关闭LLMs模型的Memory功能可以缓解这一问题

**参考**

https://embracethered.com/blog/posts/2024/chatgpt-persistent-denial-of-service/
https://openai.com/index/memory-and-new-controls-for-chatgpt/

---
### 应用智能体Agent利用

> 风险编号: GAARM.0041
> 生命周期: 应用阶段

**攻击概述**

LLMs应用API主要分为两类应用场景，因此应用API利用风险主要围绕下列两类应用场景展开：


LLMs应用平台基于API对外提供服务能力；

攻击者利用大模型（如OpenAI的GPT系列）的API接口中存在的API安全风险实施攻击过程，收集API接口的信息进行漏洞寻找，基于所发现的漏洞构造恶意API请求，企图绕过认证或者注入恶意代码。例如：以未授权的方式访问或执行更高权限的操作、利用对外提供服务的API接口漏洞执行恶意代码命令等。



LLMs Agent调度以及第三方应用集成基于API实现相关能力到模型的接入；

攻击者利用模型具有访问敏感信息或操作的API访问能力，基于API访问权限间接的通过构造恶意提示词，让模型执行危险的操作，例如访问敏感信息，篡改系统配置等。由于模型自身具备对API的操作与调用能力，有相应的访问权限，导致恶意操作可能会绕过正常的安全控制，发起实际的恶意攻击行为，该攻击可能导致越权、未授权访问他人信息等风险。

**攻击案例**

案例
描述




案例一
普通用户账号原本只能使用GPT-3.5模型，但通过特定的API地址，攻击者能够越权访问GPT-4模型


案例二
攻击者使用API直接在系统上执行命令，删除文件


案例三
构建多种LLMs API应用场景，基于LLMs利用恶意利用API功能实现命令执行、账户删除等攻击行为


案例四
Stable Diffusion提供了API接口，允许开发者通过编程方式调用模型进行图像生成。攻击者利用这一点，构造了一些恶意的文本提示词，然后通过Stable Diffusion的API接口,让模型生成这些非法或极端主义的图像内容

**攻击风险**

数据泄露：攻击者可能获取敏感数据，如用户信息和密码。
服务中断：恶意操作可能导致服务中断，如删除用户记录或数据库条目。
信任下降：LLM生成的不准确或敏感信息可能破坏用户和组织的信任。
法律责任：由于LLM生成的不当内容，组织可能面临法律责任。

**缓解措施**

缓解方式
描述




LLMs API 调度控制
限制 LLMs 可以访问的 API 和数据，以最大程度地减少被利用时的潜在危害


输入/输出验证
仔细清理用户输入，以防止恶意提示被注入到 LLM 中


监控与日志记录
记录所有通过LLM执行的操作，并进行实时监控，以便快速检测和响应可疑活动


人工干预审批
提供给用户更多的控制权，让他们能够管理插件的使用和数据的流向

**参考**

https://portswigger.net/web-security/llm-attacks

---
### 思维链干扰注入

> 风险编号: GAARM.0042.001
> 生命周期: 应用阶段

**攻击概述**

该风险是CoT注入攻击的子风险，攻击者通过观察CoT的调度过程，构造恶意输入，以此欺骗模型认为其已经获取到了正确的agent结果，通过伪造agent结果进行对CoT的干扰。

**攻击案例**

案例
描述




案例一
该案例展示了对CoT的干扰，通过构造输入的手段欺骗模型，以达到非法的目的

**攻击风险**

干扰注入：通过构造恶意的输入，达到干扰LLM的目的，进而实现违规的操作。

**缓解措施**

缓解方式
描述




严格权限管控
确保 LLM 只能访问基本内容，最大限度地减少潜在的违规点


加入人工监督
增加一层验证，作为防止意外 LLM 行为的保障


设定明确的信任边界
将 LLM 视为不受信任的，始终在决策中保持外部控制，并对可能不可信的 LLM 响应保持警惕。

**参考**

https://labs.withsecure.com/publications/llm-agent-prompt-injection

---
### 思维链操纵注入

> 风险编号: GAARM.0042.002
> 生命周期: 应用阶段

**攻击概述**

该风险是CoT注入攻击的子风险，攻击者通过观察CoT的调度过程，构造恶意输入，使模型跳过预置的CoT过程，直接调度敏感的Agent。例如，跳过预置的验证步骤，允许用户直接执行理应经过验证后才可执行的操作。

**攻击案例**

案例
描述




案例一
该案例展示了对CoT的直接操纵，通过构造输入的手段欺骗模型，让模型跳过了理应进行的验证步骤，不经审核地给用户退款了大额数目


案例二
攻击者利用结合多种攻击对抗手段，通过角色逃逸攻击绕过之前提示词规则后，使用CoT操纵注入成功调用approveTransfer函数完成转账操作

**攻击风险**

操纵注入：通过构造恶意的输入，达到操控LLM的目的，进而实现违规的操作。

**缓解措施**

缓解方式
描述




严格权限管控
确保 LLM 只能访问基本内容，最大限度地减少潜在的违规点


加入人工监督
增加一层验证，作为防止意外 LLM 行为的保障


设定明确的信任边界
将 LLM 视为不受信任的，始终在决策中保持外部控制，并对可能不可信的 LLM 响应保持警惕。

**参考**

https://labs.withsecure.com/publications/llm-agent-prompt-injection

---
### 查询注入攻击

> 风险编号: GAARM.0056.001
> 生命周期: 应用阶段

**攻击概述**

该风险是CoT注入攻击中的一种子技术，查询注入攻击主要用于利用CoT应用下的数据查询Agent实现任意数据的泄露。在CoT应用中，用户通过提供自然语言的问题，AI模型会生成一系列推理步骤来回答该问题。攻击者可以在问题中注入恶意的SQL代码，试图绕过模型的安全检查，直接访问后端数据库。当CoT思维链应用外部接入传统数据库、向量数据库、知识图谱等外挂数据库的时候，需要通过Agent实现外部数据查询与获取，攻击者可以通过干扰或者操纵CoT过程，例如在查询外部数据时，错误的把用户提供的语句当作了外部的数据，导致任意数据被查询和获取。

**攻击案例**

案例
描述




案例一
ReAct框架下的查询注入攻击CTF开源题目

**攻击风险**

在使用信息检索系统的LLMs应用中，攻击者可以污染信息检索数据库，使得恶意文本片段被注入到发送给LLM的查询中，从而影响最终的输出结果，导致用户隐私、恶意代码执行等一系列风险。

**缓解措施**

缓解方式
描述




严格权限管控
强制执行严格的特权控制，确保LLMs只能访问必需的内容以及Agent，从而最大程度地减少潜在的漏洞点


LLMs Agent调度控制
针对敏感操作的Agent实施外部严格的自动或者人工权限校验机制判断，避免LLMs直接具备相应的使用权限


Prompt内容强化
采用 OpenAI 聊天标记语言 （ChatML） 等解决方案，试图将真正的用户提示与其他内容隔离开来

**参考**

http://youtube.com/watch?v=7ZA0Z1R-MjQ
http://youtube.com/watch?v=KksYizcLFH0

---
### 环境注入攻击

> 风险编号: GAARM.0047
> 生命周期: 应用阶段

**攻击概述**

环境注入攻击是指攻击者通过间接提示词注入攻击的思路，将恶意指令嵌入到外部网页、接口、邮件等环境中，当AI Agent处理外部内容时，将嵌入的指令当做用户指令执行，导致数据泄露或达到控制模型或窃取数据的目的。攻击者可能通过篡改环境变量、修改依赖库或污染配置文件，诱导模型生成错误输出、泄露敏感信息或执行未经授权的操作。

**攻击案例**

案例
描述




案例一
攻击者在公共仓库创建含提示注入的恶意议题，用户向Claude发送常规请求时，AI获取公共仓库议题触发恶意指令，进而将私有仓库数据拉取至上下文环境，并在公共仓库创建含私有数据的PR，导致数据泄露。

**攻击风险**

环境注入攻击可能对模型开发和部署生态造成严重威胁，以下是主要风险：

恶意输出生成：攻击者可通过环境注入诱导模型生成虚假信息或有害内容，误导用户或引发信任危机。
数据泄露：通过篡改环境配置，攻击者可能获取敏感信息，如训练数据集、用户提示或API密钥。
系统完整性破坏：攻恶意注入可能导致开发环境被破坏，影响模型训练或部署的稳定性，甚至植入后门程序。
供应链攻击：攻击者通过污染第三方依赖库或工具链，影响多个模型开发项目，造成广泛的安全隐患。
信任危机：成功攻击可能削弱用户对模型及其开发环境的信任，限制其在高安全性场景中的应用。

**缓解措施**

缓解方式
描述




环境配置验证
对所有环境变量、配置文件和依赖库进行严格验证，使用哈希校验确保其完整性，防止未授权修改。


依赖管理
使用可信的依赖源（如官方PyPI镜像），并定期检查依赖包的版本和签名，防止供应链攻击。


环境隔离
将开发、测试和生产环境完全隔离，限制外部输入对核心环境的访问，降低攻击面。


安全监控与审计
实施实时监控，记录环境配置和依赖变更日志，定期进行安全审计，检测潜在的注入行为。


最小权限原则
对环境中的API访问和文件操作实施最小权限控制，使用加密签名验证配置来源，防止恶意篡改。

**参考**

https://mp.weixin.qq.com/s/9JwADiu9t3kqcfqnRMC2zQ
https://finance.sina.com.cn/tech/digi/2025-06-01/doc-ineypqvh0855918.shtml
https://zhuanlan.zhihu.com/p/1900540531131523166

---
### 环路Agent蠕虫

> 风险编号: GAARM.0040.002
> 生命周期: 应用阶段

**攻击概述**

代理（Agent）具有从互联网等外部实时获取信息的能力，并且能够将这些信息交由大模型进行处理，最终返回给用户。然而，攻击者可以利用这一点，通过外部数据源注入恶意信息，干扰Agent的执行，进而影响大模型的输出。这些恶意的提示词会间接影响多个大型模型（LLMs）的应用，形成一个恶性循环，使得恶意信息迅速扩散。通过Agent的输入输出循环，这种环路Agent蠕虫可以造成一种自我复制和传播的恶意行为，最终可能导致隐私泄露，还可能引起数据滥用等安全风险。

**攻击案例**

案例
描述




案例一
研究人员创建了一个名为Morris II的AI蠕虫，它能够攻击一个生成性AI电子邮件助手，从电子邮件中窃取数据并发送垃圾邮件，同时破坏了ChatGPT和Gemini的一些安全保护

**攻击风险**

数据泄露：AI蠕虫可能会窃取敏感的个人信息，如姓名、电话号码、信用卡号、身份证号码等。
恶意软件部署：蠕虫可以在受感染的系统中部署恶意软件，导致进一步的安全问题。
安全防护绕过：AI蠕虫能够绕过现有的一些安全防护措施，如ChatGPT和Gemini的安全机制。
新型网络攻击：AI蠕虫代表了一种之前未被广泛认知的网络攻击方式，对现有的安全防护措施构成挑战。

**缓解措施**

缓解方式
描述




输入/输出验证
针对进入到Agent中调度处理的数据进行严格的验证校验措施


设计安全的LLMs Agent
采取传统的安全措施，如确保Agnet应用程序设计安全，监控可能的安全漏洞


人工干预审批
保持人类在循环中，确保LLMs Agent在执行操作前需要人工批准，避免AI系统自主地发送电子邮件或其他可能的风险行为

**参考**

https://mp.weixin.qq.com/s/2bm7nuXkORLZ20mfpOmwrA

---
### 间接Prompt注入

> 风险编号: GAARM.0040
> 生命周期: 应用阶段

**攻击概述**

LLMs处理自然语言的过程中，存在被恶意注入提示（Prompt）的漏洞。攻击者会把Prompt藏在LLM系统将会处理的各种数据中，如文本、多媒体内容、数据库或网站提取的信息等，进而通过Prompt操纵LLM产生有害的回应，如恶意代码执行、敏感信息泄露等。例如将恶意代码写入上传给LLM的文件中，当LLM处理文件中的数据时会运行恶意代码，从而产生危害。

**攻击案例**

案例
描述




案例一
攻击者通过在用户访问的网站上植入注入代码，使得Bing Chat在用户不知情的情况下，寻找并外泄个人信息


案例二
攻击者控制LLMs插件检索的数据，利用Markdown图像渲染机制，将聊天历史作为查询参数发送到攻击者的服务器


案例三
这个案例展示了一个对M365 Copilot的攻击手段，通过发送一封包含恶意的邮件，甚至无需用户打开邮件，即可远程操控Copilot，造成来自第三方的攻击

**攻击风险**

恶意代码执行: 通过注入恶意代码或数据，攻击者可能试图在系统中获得一个立足点，从而进一步控制或破坏系统
数据泄露: 攻击者可能使用间接注入来误导用户，使其执行非预期的操作或泄露敏感信息。

**缓解措施**

缓解方式
描述




输入验证
对所有输入数据进行严格的验证和清洗，以移除或修正任何可疑的注入内容


最小权限原则
确保正确的沙盒化并限制LLMs的能力，限制插件、Agent等机制从不可信来源获取数据信息


人工干预审批
提供给用户更多的控制权，让他们能够管理插件的使用和数据的流向

**参考**

https://atlas.mitre.org/techniques/AML.T0051.001
https://twitter.com/random_walker/status/1636923058370891778
https://medium.com/@harry.hphu/introduction-to-web-llm-attacks-indirect-prompt-injection-7bb9f154bc07
https://medium.com/@dinob5551/indirect-prompt-injection-the-hidden-threat-lurking-in-ai-730b009dd5fb

---
### 预期外代码执行

> 风险编号: GAARM.0060
> 生命周期: 应用阶段

**攻击概述**

预期外代码执行是指智能体在执行任务过程中，由于Prompt注入、工具误用或逻辑缺陷等原因，执行了超出预期范围或未被授权的代码操作。这种风险的核心在于智能体缺乏对代码执行边界的有效控制，可能通过动态代码生成、工具链调用或脚本执行等方式，执行恶意的、危险的或非预期的代码，导致系统被入侵、数据被篡改、敏感信息泄露或服务被中断等严重后果。

**攻击案例**

案例
描述




案例一
漏洞源于表单节点在处理Content-Type时未作校验，致使攻击者可指定任意本地敏感文件路径，最终通过信息泄露伪造管理员身份并执行恶意工作流命令。


案例二
该案例展示了 AI 红队通过提示注入，诱导具备桌面操作能力的多模态模型下载并执行恶意程序，最终建立 C2 通信通道，实现非预期的代码执行与远程控制，使宿主系统沦为“僵尸主机”。


案例三
该案例展示了通过提示注入操控 ChatGPT 的长期记忆（Memory）机制，植入攻击者定义的隐蔽指令逻辑，使模型在后续对话中持续与远程 C2 通信并执行指令，形成模型层面的“僵尸化控制”与非预期行为执行。

**攻击风险**

系统入侵：恶意代码执行导致系统被完全控制
数据破坏：执行破坏性操作导致数据丢失或篡改
权限提升：通过代码执行获得更高的系统权限
后门植入：在系统中植入持久化后门
服务中断：执行恶意代码导致服务不可用
横向渗透：利用代码执行攻击其他系统

**缓解措施**

缓解方式
描述




代码执行沙箱
将代码执行限制在安全隔离环境中，使用容器或虚拟机隔离，限制文件系统、网络和系统调用访问


代码审查验证
实施静态代码安全分析，建立代码安全规则库，动态检测恶意代码模式


权限控制
实施最小权限原则，限制代码执行工具的权限范围，建立代码执行审批机制


输入验证过滤
严格验证代码生成输入，过滤危险函数和操作，检测潜在的恶意意图

**参考**

n8n远程代码执行漏洞
ZombAIs: From Prompt Injection to C2 with Claude Computer Use
AI Domination: Remote Controlling ChatGPT ZombAI Instances

---
## 部署阶段

### LLMs应用API管理不当

> 风险编号: GAARM.0049
> 生命周期: 部署阶段

**攻击概述**

LLMs应用API管理不当是指LLMs集成框架环境中存在敏感操作的Tools、Agents、Chains等内外部的API组件，未与LLMs环境做好正确的环境管理与配置。由于大语言模型通常需要与多种API进行交互以执行任务，如果这些API未得到适当的管理，比如未设置正确的访问权限或未实施足够的安全控制，则攻击者可以利用这些漏洞来获取敏感信息或执行恶意行为，实现未授权访问、代码执行利用等攻击。

**攻击案例**

案例
描述




案例一
针对LLMs api的利用主要给出以下两个

**攻击风险**

数据泄露：攻击者可能获取敏感数据，包括个人身份信息、商业秘密等。
服务中断：恶意代码执行或未授权访问可能导致服务中断或性能下降。
法律和合规风险：安全漏洞可能引起法律诉讼和合规问题。

**缓解措施**

缓解方式
描述




最小权限原则
遵循最小权限原则，只为LLMs提供完成其任务所必需的最小访问权限，避免过度代理授权


输入/输出验证
对所有通过API发送的输入进行彻底验证，以防止注入攻击


监控和日志记录
监控AI时代下的新型API活动并记录日志，以便能够快速检测和响应可疑行为

---
### LLMs应用源代码投毒

> 风险编号: GAARM.0038
> 生命周期: 训练阶段

**攻击概述**

源代码在审查过程中可能存在一些漏洞，攻击者通过向大型语言模型（LLMs）应用程序的源代码注入恶意代码，通过漏洞隐藏代码逃过检查，对第三方开源或商业组件进行源代码投毒，导致应用程序在训练或者运行时出现安全问题，进而影响使用这些组件的下游模型应用业务开发厂商。

**攻击案例**

案例
描述




案例一
攻击者可以通过上传恶意代码到开源网站来操纵模型，进而影响投资、交易、新闻等各个领域

**攻击风险**

后门插入：通过向训练数据中注入后门代码，允许攻击者在推理过程中控制或操纵模型的输出，导致未经授权的访问或数据操纵。
供应链攻击：通过在开源代码中注入恶意代码，攻击者可以影响使用这些代码的整个供应链。
虚假新闻宣传：攻击者可以利用这种技术修改内容，如电影评论或新闻报道，以传播虚假信息或宣传。

**缓解措施**

缓解方式
描述




检测偏离原始代码的变化
识别和拦截因恶意代码修改引起的异常行为


输入验证和过滤
代码输入到模型之前，进行严格的输入验证和清洗

**参考**

https://drive.google.com/file/d/1CTVcliUblX35cWfB49Xjhf8xk-fM3QH1/edit?pli=1

---
### LLMs应用源代码窃取

> 风险编号: GAARM.0037
> 生命周期: 训练阶段

**攻击概述**

该风险是指模型或大型语言模型（LLMs）的源代码保存不当，或者部署环境存在安全风险，可能会被未经授权的人员攻击到相关部署环境，实现LLMs应用源代码的窃取，从而导致企业技术竞争优势受损的风险。

**攻击案例**

案例
描述




案例一
Meta 的 650 亿参数语言模型被泄露


案例二
OpenAI 旗下的 GPT-4 大量模型架构、训练成本、数据集等大量信息被泄露

**攻击风险**

技术优势丧失：竞争对手可能复制或修改泄露的源码，从而削弱企业的技术竞争优势。
网络安全威胁：攻击者可以利用泄露的源码来设计针对性的网络攻击，例如通过揭露的漏洞进行系统渗透。
钓鱼邮件风险：泄露的源码可能被用来创建更具欺骗性的钓鱼邮件，这些邮件模仿企业的内部应用，增加用户上当受骗的风险。

**缓解措施**

缓解方式
描述




代码加密保护
使用强加密算法对LLMs应用程序的源代码进行加密，防止未授权访问和泄露


访问权限控制
限制对LLMs应用程序源代码的访问权限，确保只有经过授权的人员才能够查看或修改代码


模型监控
监控模型的使用情况，确保其不被用于恶意目的

**参考**

https://analyticsindiamag.com/metas-llama-leaked-to-the-public-thanks-to-4chan/
https://knightcolumbia.org/blog/the-llama-is-out-of-the-bag-should-we-expect-a-tidal-wave-of-disinformation

---
## 训练阶段

### LLMs应用不安全输出处理

> 风险编号: GAARM.0035.003
> 生命周期: 训练阶段

**攻击概述**

该风险是指当下游组件在接受大型语言模型 (LLM) 输出却未进行适当审查时，导致出现出现的一种安全风险。模型下游组件中包括各种功能的Agent，当缺乏相关的输出处理，会导致攻击者通过模型滥用Agent实现攻击行为，例如，攻击者可以通过输入特定的文本，诱导LLM输出包含敏感信息的响应，从而窃取用户数据，或者直接输出非预期的攻击Payload，导致下游出现RCE、SSRF等漏洞。

**攻击案例**

案例
描述




案例一
CVE-2023-29374 是 Langchain 的一个任意代码执行漏洞，使用 0.0.131 及之前版本的 Langchain，并调用 Langchain LLMMathChain 链的程序，存在包含任意命令执行的安全风险，可能导致 OpenAI key 等敏感信息泄漏、Langchain 服务端被控等问题。


案例二
Auto-GPT在v0.4.3之前版本中存在路径遍历漏洞，这个漏洞会导致运行Auto-GPT的主机上任意代码在docker环境之外执行。攻击者可利用该漏洞对目标有针对性的发起攻击，危害站点系统安全

**攻击风险**

敏感信息泄露：LLM 有时不会在其响应中清理 JavaScript。在这种情况下，攻击者可能会使用精心设计的Prompt导致 LLM 返回 JavaScript 有效负载，当受害者的浏览器解析该有效负载时，会受到攻击导致敏感信息泄露，如对话历史泄露等。
任意代码执行：攻击者可以通过漏洞执行任意代码。这可能导致攻击者在服务器上执行恶意操作，例如植入后门、提取敏感数据或中断服务。
定向

**缓解措施**

缓解方式
描述




零信任框架
在此框架中，每个访问资源的请求都被视为来自不受信任的网络，系统会对其进行检查、身份验证和核实，以此带来系统安全


沙盒环境
尝试利用沙盒环境来执行代码，以确保更大的系统安全。例如，仅在专用的临时 Docker 容器内执行代码可以显著限制恶意代码的潜在影响

**参考**

https://genai.owasp.org/wp-content/uploads/2024/05/OWASP-Top-10-for-LLM-Applications-v1_1_Chinese.pdf
https://cloud.baidu.com/article/3253170
https://www.akto.io/blog/insecure-output-handling-in-llms-insights
https://journal.hexmos.com/insecure-output-handling/
https://systemweakness.com/new-prompt-injection-attack-on-chatgpt-web-version-ef717492c5c2

---
### LLMs应用传统漏洞风险

> 风险编号: GAARM.0035.002
> 生命周期: 训练阶段

**攻击概述**

传统的应用安全漏洞不仅存在于传统软件系统中，也可能存在于LLM应用程序当中。例如，常见API接口攻击，账户接管，代码执行等，传统的风险漏洞仍然在LLM中存在，因此在训练阶段必须严格遵循安全最佳实践，以确保系统在应对传统风险的时候有足够的防护能力，否则可能会导致服务中断、账户接管、数据篡改等一系列危险。

**攻击案例**

案例
描述




案例一
案例报导了ChatGPT受到DDoS（分布式拒绝服务）攻击的迹象，外部攻击者试图通过反复发送Ping请求，从而使网络或服务器超载而崩溃


案例二
ChatGPT-Next-Web应用程序存在SSRF漏洞(CVE-2023-49785),可以使用此漏洞探测内网网络资源

**攻击风险**

服务中断：拒绝服务攻击（DoS）或资源耗尽会导致LLM应用无法响应用户请求，影响业务连续性。
系统控制：远程代码执行或脚本执行漏洞可能使攻击者接管服务器，植入恶意软件或执行破坏性操作。

**缓解措施**

缓解方式
描述




强化API安全
确保所有API接口都经过严格的身份验证和授权控制，限制访问权限。


最小权限原则
限制或禁用LLM应用中不必要的命令执行功能，减少潜在攻击面。


定期安全评估
定期对LLM应用进行安全漏洞扫描，及时修补发现的安全问题。

**参考**

https://sec.cafe/handbook/security_research/ai_security/llm_security/attack/

---
### LLMs插件：不安全输入处理

> 风险编号: GAARM.0035.001
> 生命周期: 训练阶段

**攻击概述**

该风险是指由于LLMs的插件存在不安全输入处理，将风险引入到大模型中。例如，插件很可能会从模型中实现来自模型的自由文本输入，而不进行验证或类型检查以处理上下文大小限制，使得潜在攻击者可以构造一个恶意请求发送给插件，可能导致各种不希望发生的行为，甚至包括远程代码执行。

**攻击案例**

案例
描述




案例一
LangChains中的PALChain被发现存在代码执行风险

**攻击风险**

未经授权的请求执行：攻击者可以直接利用LLMs应用漏洞或者通过操纵输入提示，使LLMs应用执行意外的请求，访问或操作受限制的资源。
敏感信息泄露：通过LLMs访问受限资源可能导致敏感信息的未经授权的获取和泄露。

**缓解措施**

缓解方式
描述




输入验证和过滤
实施严格的输入验证和净化策略，以确保所有输入数据在被LLMs处理前都经过检查和清理


最小权限原则
遵循最小权限原则，只为LLMs提供完成其任务所必需的最小访问权限，避免过度授权

**参考**

https://owasp.org/www-project-top-10-for-large-language-model-applications/Archive/0_1_vulns/SSRF.html
https://www.horizon3.ai/attack-research/attack-blogs/nextchat-an-ai-chatbot-that-lets-you-talk-to-anyone-you-want-to/
https://genai.owasp.org/wp-content/uploads/2024/05/OWASP-Top-10-for-LLM-Applications-v1_1_Chinese.pdf

---
### LLMs插件：业务过度代理

> 风险编号: GAARM.0036
> 生命周期: 训练阶段

**攻击概述**

基于LLM的系统通常由开发人员授予一定程度的业务代理能力，即与其他系统进行交互并在响应提示时执行操作的能力。而过度代理是设计开发阶段安全风险，该风险导致在LLM出现意外/模糊输出时执行破坏性操作，根本原因通常是：功能过多或自主权过多。过度代理可以导致涉及机密性、完整性和可用性等方面的一系列影响，这取决于LLM应用程序能够与哪些系统进行交互。例如，赋予了LLM系统过度自主权，导致LLM基于应用程序或插件未能独立验证和批准高影响操作时，允许删除用户文档的插件执行删除操作时，无需用户的任何确认。

**攻击案例**

案例
描述




案例一
该视频展示了如何通过利用过度代理的漏洞进行对用户密码的非法重置

**攻击风险**

敏感信息泄露：业务过度代理导致LLM被恶意操控时可能泄露敏感信息以及隐私。

**缓解措施**

缓解方式
描述




最小权限原则
限制LLM代理被允许调用的插件/工具，仅限于所需的最小功能。例如，如果LLM基础系统不需要获取URL内容的能力，那么不应该向LLM代理提供这样的插件


避免开放式功能
在可能的情况下避免开放式功能（例如运行shell命令、获取URL等），并使用更细粒度功能的插件/工具。例如，LLM基础应用程序可能需要将某些输出写入文件。如果使用插件运行shell功能来实现这一点，那么不希望的操作的范围就会非常大（可以执行任何其他shell命令）。更安全的替代方案是构建一个只支持特定功能的文件写入插件。

**参考**

https://genai.owasp.org/wp-content/uploads/2024/05/OWASP-Top-10-for-LLM-Applications-v1_1_Chinese.pdf

---
### RAG开发框架漏洞

> 风险编号: GAARM.0034.002
> 生命周期: 训练阶段

**攻击概述**

RAG（Retrieval-Augmented Generation）是结合信息检索和生成的框架，在大型语言模型（LLM）的开发中用于增强模型的生成能力。由于RAG框架依赖于检索模块从外部数据源获取信息，如果检索模块的源数据不准确或不可靠，可能导致生成的回答包含错误或误导性信息；并且框架本身引入的各种Agent，也可能存在相关的安全风险。RAG框架相关的安全风险主要集中于RAG的生成模块、信息检索模块、集成插件和外部接口等方面，由于对RAG设计的不安全，导致可能引入其中的安全漏洞到LLM应用。例如，如果RAG检索模块的设计允许服务器发起不受限制的请求，可能会导致SSRF漏洞的利用。

**攻击案例**

案例
描述




案例一
由于LangChain框架中存在的SSRF以及PALChain的RCE漏洞，给使用框架的LLM应用带来了安全风险

**攻击风险**

信息泄露：攻击者可能通过路径遍历漏洞访问敏感文件或系统配置文件，泄露系统内部信息。
系统控制：如果系统文件包含敏感的配置信息或脚本，攻击者可能进一步利用这些信息来控制系统。
命令执行：框架中的数据表达式运算、Python解释器等Agent，可能被利用造成RCE攻击。

**缓解措施**

缓解方式
描述




输入验证
严格验证和清理所有用户输入，防止路径遍历攻击。


权限管理
在设置适当的文件权限，防止未授权的文件访问。


更新和修复
确保应用程序和相关依赖的最新版本，及时应用安全补丁以修复已知漏洞。

**参考**

https://www.wehelpwin.com/article/5063
https://medium.com/nfactor-technologies/rag-poisoning-an-emerging-threat-in-ai-systems-660f9ff279f9
https://ironcorelabs.com/security-risks-rag/

---
### 不安全的代码实践

> 风险编号: GAARM.0035
> 生命周期: 训练阶段

**攻击概述**

不安全的代码实践是指基于大模型集成框架，开发LLMs应用过程中由于设计缺陷导致的安全问题。在LLMs应用程序开发过程中采用的代码逻辑，可能会带来安全风险，给LLMs应用程序引入可被利用的安全漏洞。其中的安全漏洞可能包含两大类：

LLMs应用程序服务存在传统的漏洞，例如对外服务的Chat系统服务存在越权查看他人对话记录等风险；
LLMs集成框架中的新型Tools、Agents、Chains中包含安全风险，导致攻击者可以基于LLMs间接利用相关漏洞；

**攻击案例**

案例
描述




案例一
LangChains中的PALChain被发现存在代码执行风险


案例二
LangChains中被挖掘出多个RCE高危漏洞

**攻击风险**

不安全的编码实践：LLMs 在生成代码时可能会遵循不安全的编码实践，导致生成的代码含有安全漏洞。
未经授权的请求执行：攻击者可以直接利用LLMs应用漏洞或者通过操纵输入提示，使LLMs应用执行意外的请求，访问或操作受限制的资源。

**缓解措施**

缓解方式
描述




自动化检测评估
利用静态分析工具检测代码中的不安全模式，以提高代码安全性


最小权限原则
遵循最小权限原则，只为LLMs提供完成其任务所必需的最小访问权限，避免过度代理授权


输入验证和过滤
实施严格的输入验证和净化策略，以确保所有输入数据在被LLMs处理前都经过检查和清理

**参考**

https://arxiv.org/html/2312.04724v1

---
### 数据处理组件漏洞

> 风险编号: GAARM.0034.001
> 生命周期: 训练阶段

**攻击概述**

在人工智能（AI）模型的开发过程中，数据集的安全性是一个不容忽视的重要方面。在Hugging Face、GitHub等平台可能存在一些带有恶意后门的数据集，而这些数据集可以通过LLMs数据处理组件的特性或者漏洞，对AI模型的安全性构成威胁。当开发者使用这些受污染的数据集进行模型训练时，数据集中隐藏的恶意代码可能会被执行，从而导致一系列安全问题，如AI模型、数据集和代码的泄露或篡改。

**攻击案例**

案例
描述




案例一
Hugging Face的datasets组件被发现存在不安全特性，使用该组件加载恶意数据集时，可能导致命令执行等风险

**攻击风险**

系统入侵：攻击者构造的恶意脚本可以连接到攻击者服务器，执行系统命令，从而控制受害者的服务器。
数据泄露：恶意脚本可以窃取服务器上的训练数据、模型代码等敏感数据，导致知识产权和用户隐私的泄露。
模型参数篡改：大模型的参数可能被恶意篡改，影响模型的准确性和可靠性。

**缓解措施**

缓解方式
描述




训练/微调数据集的可信来源
确保来源数据集可信，检查数据集脚本中是否存在恶意Python代码，谨慎使用在Hugging Face上被提示存在安全风险的数据集


大模型组件供应链安全防护
持续跟进关注大模型原生安全、基础安全及大模型赋能研发安全等领域的最新供应链安全动态和建议

**参考**

https://security.tencent.com/index.php/blog/msg/209

---
### 第三方组件漏洞

> 风险编号: GAARM.0034
> 生命周期: 训练阶段

**攻击概述**

该攻击是指LLMs应用开发者在模型训练阶段可能会使用第三方商业或者开源库组件，在这些第三方组件中有可能包含恶意代码、组件漏洞等，可能导致开发机、服务器受到入侵，属于AI环境下的供应链安全风险。

**攻击案例**

案例
描述




案例一
Redis数据库Python客户端redis-py使用异步接口，取消命令时可能导致用户业务数据读取出现错乱(CVE-2023-28858)


案例二
TorchServe可导致越权服务器访问，并在易受攻击的实例上实现远程代码执行


案例三
Hugging Face的datasets组件存在漏洞，允许通过恶意数据集实施攻击，可能导致用户设备被侵入和大模型参数被窃取或篡改


案例四
本文研究了后门攻击对预训练好的模型的影响。攻击者可以通过植入后门，操纵模型的推荐结果，从而达到恶意营销或其他目的


案例五
ChatGPT-Next-Web存在SSRF和反射性XSS漏洞

**攻击风险**

供应链后门投毒攻击：AI开发者在使用第三方开源库加载数据集时，若数据集被植入恶意代码，可能会使PC或服务器遭受攻击。
模型参数泄露或篡改：导致模型参数被窃取或篡改，影响模型的安全性和可靠性。

**缓解措施**

缓解方式
描述




大模型组件供应链安全防护
对于已知的安全漏洞，如TorchServe的CVE-2023-43654，应及时更新到安全的版本


训练/微调数据集的可信来源
确保数据集来源可信，检查数据集脚本中是否存在恶意Python代码，避免使用在Hugging Face上被提示存在安全风险的数据集


严格控制开源组件引入
建立企业内部的开源治理体系，严格控制开源组件的引入，并通过工具实现自动化监测和跟踪

**参考**

https://hiddenlayer.com/research/insane-in-the-supply-chain/

---

---

## 三十五、AI Agent/MCP/Skills 前沿安全风险 (2025-2026)

> 以下内容基于2025-2026年最新安全研究补充，覆盖OWASP Agentic AI Top 10 (ASI01-ASI10)。

### MCP (Model Context Protocol) 协议安全

#### 11类MCP新兴风险 (Checkmarx/Invariant Labs/Trail of Bits 2025研究)

| 风险类型 | 描述 | 攻击场景 |
|----------|------|----------|
| 工具描述投毒 | 在tool description中嵌入隐藏恶意指令 | 模型执行工具时读取并遵循description中的隐藏Prompt |
| 地毯式骗局(Rug Pull) | 用户授权后Server动态修改工具描述 | 初始审核通过，后续篡改功能逻辑 |
| 指令覆盖(Shadow Tool) | 恶意Server的tool描述劫持可信工具行为 | 修改邮件发送工具的收件人为攻击者 |
| ANSI/Unicode隐藏指令 | 利用终端转义码或不可见Unicode字符隐藏指令 | 供应链攻击: 模型建议下载恶意包 |
| 跨Server攻击 | 多个MCP Server间的工具定义冲突和劫持 | Server A重定义Server B的工具名称 |
| Token/凭据窃取 | 提取MCP Server存储的OAuth Token和API密钥 | 单点突破获取所有连接服务的凭据 |
| Server伪装 | 恶意MCP Server伪装合法服务记录所有查询 | 数据窃取和行为监控 |
| Schema操纵 | 动态修改工具输入/输出Schema绕过验证 | 注入额外参数或修改返回值 |
| 命令注入 | 通过工具参数注入OS命令 | MCP Server执行未过滤的shell命令 |
| 上下文溢出 | 构造超大工具响应耗尽模型上下文窗口 | 挤出安全指令，降低模型判断力 |
| 持久化投毒 | 通过工具返回值污染对话历史 | 长期影响后续所有交互的安全性 |

#### MCP安全测试方法

1. **工具描述审计**: 检查所有注册tool的description字段是否含隐藏指令(ANSI码/Unicode/HTML注释)
2. **动态行为监控**: 对比初始注册和运行时的tool description是否一致
3. **跨Server隔离**: 验证多Server环境中tool名称是否冲突
4. **凭据存储审计**: 检查OAuth Token/API Key的存储方式(明文vs加密)
5. **输入验证测试**: 对tool参数进行命令注入/SQL注入测试
6. **权限边界测试**: 验证tool是否能访问声明范围外的资源

### AI Agent 安全 (OWASP ASI01-ASI10 补充)

#### Clawdbot/Moltbot 实战案例 (2026年1月)

全球发现4500+暴露实例的AI Agent安全事件:
- **根因**: 反向代理配置错误导致localhost自动认证通过
- **影响**: API密钥、服务Token、WhatsApp会话凭据被提取
- **教训**: AI Agent集中了shell执行、持久状态、自主任务发起等高权限，单点暴露=完全接管

#### Agent工具选择攻击 (CATS研究)

- 工具池作为非管控仓库，攻击者可发布带误导性元数据的工具
- 对抗性攻击下，Agent的工具选择认证准确率下降60%+
- 自适应对抗攻击后准确率低于20%

#### ASI07: 多Agent通信安全

| 攻击向量 | 描述 |
|----------|------|
| 消息伪造 | Agent A伪装Agent B发送指令 |
| 信任传递滥用 | 低权限Agent利用高权限Agent的信任关系 |
| 协调劫持 | 操纵Agent间的任务分配和结果聚合 |
| 中间人攻击 | 拦截和篡改Agent间通信 |

#### ASI09: 人机信任利用

- 过度依赖: 用户对AI输出不做验证直接执行
- 社工增强: AI生成的钓鱼内容更可信
- 确认偏见: 用户倾向于信任与预期一致的AI输出
- 自动化偏见: "AI说的应该是对的"心理

#### ASI10: 恶意/失控Agent

- Agent被入侵后在授权参数外运行
- 自主决策链中的目标漂移
- 横向移动: 通过Agent间通信感染其他Agent

### Skills/Rules 供应链安全

#### 攻击面

AI编程助手(Claude Code/Cursor等)的Skills和Rules系统引入新的供应链攻击面:

| 攻击向量 | 描述 | 影响 |
|----------|------|------|
| 恶意Skill注入 | 社区分享的skill中嵌入恶意Prompt指令 | AI执行隐藏的命令(如数据外传) |
| Rules文件篡改 | 通过PR修改.cursorrules/.claude/RULES.md | 长期控制开发者的AI行为 |
| SKILL.md投毒 | skill引用的reference文件中嵌入间接注入 | AI读取reference时执行恶意指令 |
| 依赖链攻击 | skill依赖的外部MCP Server被替换 | 所有使用该skill的用户受影响 |
| 构建钩子利用 | 通过skill的scripts/触发恶意构建操作 | 代码执行、密钥窃取 |

#### Claude Code 已披露CVE (2025-2026)

| CVE | 严重性 | 描述 |
|-----|--------|------|
| CVE-2025-54795 | High | echo命令绕过用户审批直接执行 |
| GHSA-qxfv-fcpc-w36x | High | rg命令注入绕过审批Prompt |
| - | High | sed命令验证绕过实现任意文件写入 |
| - | High | 启动信任对话框前即可执行命令 |
| - | Moderate | 恶意仓库配置导致数据泄露 |

#### 防御建议

- **Skill审计**: 安装前审查SKILL.md和所有reference文件内容
- **签名验证**: 验证skill来源和完整性(目前无官方机制,需手动)
- **权限隔离**: 限制skill可访问的工具和文件范围
- **Rules保护**: .cursorrules和AGENTS.md纳入代码审查流程
- **MCP Server白名单**: 仅允许信任的MCP Server连接
- **行为监控**: 记录AI助手的所有工具调用和文件操作日志

### Agentic AI 综合安全测试框架

基于OWASP ASI01-ASI10，针对AI Agent应用的系统化测试流程:

1. **目标枚举**: 识别所有Agent、工具、MCP Server、通信通道
2. **认证测试**: Agent身份验证、Token管理、权限边界(ASI03)
3. **工具安全**: description审计、参数注入、权限越界(ASI02)
4. **注入测试**: 直接/间接Prompt注入、工具返回值注入(ASI01)
5. **供应链审计**: MCP Server来源、skill完整性、依赖安全(ASI04)
6. **代码执行**: 沙箱逃逸、命令注入、文件操作(ASI05)
7. **记忆安全**: 上下文投毒、持久化攻击、状态腐败(ASI06)
8. **通信安全**: Agent间认证、消息完整性、信任传递(ASI07)
9. **级联测试**: 单点失败传播范围、故障隔离(ASI08)
10. **信任测试**: 输出验证机制、人工审批流程(ASI09)
11. **逃逸测试**: Agent行为监控、异常检测、Kill Switch(ASI10)
