# AI应用安全 - 应用阶段 - Agent 与 CoT 攻击

> 来源: AISS绿盟大模型安全智链社区 | 拆自 ai-app-app.md
> 风险类别: Agent/CoT（GAARM.0041.x Agent 利用与 SSRF/RCE / 0042.x CoT 注入与思维链干扰 / 0047 环境注入 / 0056.001 查询注入 / 0060 预期外代码执行）

---

### 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

---
### 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

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

> 风险编号: 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

---
### 应用智能体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

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

> 风险编号: 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

---
