morweee/prompt-injection-analysis
GitHub: morweee/prompt-injection-analysis
一个研究 LLM Agent 中 Prompt Injection 攻击的实验框架,支持模拟和真实模型两种测试方式,并评估多种防御策略的有效性。
Stars: 0 | Forks: 0
# Prompt Injection 分析
这是一个研究 LLM Agent 中 prompt injection 攻击漏洞的研究项目。我们针对基于规则的模拟 Agent 和真实的本地 LLM(通过 Ollama 运行的 Llama 3.2)测试了直接和间接注入攻击,并评估了四种防御策略。
## 代码概述
- `experiments/` — 主要实验代码(攻击、防御、指标、Agent)
- `experiments/run_all.py` — 运行基于规则的模拟实验
- `experiments/llm_agent.py` — 运行相同的实验,但使用真实的 LLM
- `experiments/results.md` — 保存的实验结果,因此您无需重新运行所有内容
- `toy_tool_description.py` — 用于工具描述注入的独立玩具示例
## 设置
需要 Python 3.10+ 和一些 langchain 包。
```
pip install langchain-core requests
```
### 对于 LLM 实验(可选)
需要在本地安装 Ollama 才能运行基于 LLM 的实验。可从 https://ollama.com 下载。
然后拉取实验中使用的模型:
```
ollama pull llama3.2:3b
```
确保在开始之前 Ollama 服务器正在运行:
```
ollama serve
```
## 运行实验
### 基于规则的模拟
```
python -m experiments.run_all
```
默认运行 50 次试验。
### 基于 LLM 的实验
```
python -m experiments.llm_agent
```
由于正在进行实际的推理,速度较慢。默认为 5 次试验。
### 玩具示例
```
python toy_tool_description.py
```
快速简单的独立演示,无需依赖。
## 注意事项
- 实验结果位于 `experiments/results.md`
- 模拟使用了一个可配置的漏洞参数(默认为 0.7),用于控制 Agent 遵循注入指令的可能性。它并非旨在完美模拟真实的 LLM 行为,只是一种测试防御逻辑的快速方法。
- 由于即使在低温度下模型输出也不完全确定,LLM 的结果会因运行而异。
标签:AI安全研究, AI风险缓解, Kubernetes 安全, LangChain, Llama 3.2, LLM Agent, LLM评估, Ollama, Python, 基于规则的模拟, 大语言模型安全, 工具描述注入, 攻击与防御, 无后门, 机密管理, 模型鲁棒性, 深度学习安全, 漏洞分析, 网络安全, 路径探测, 轻量级, 逆向工具, 间接注入, 隐私保护