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, 基于规则的模拟, 大语言模型安全, 工具描述注入, 攻击与防御, 无后门, 机密管理, 模型鲁棒性, 深度学习安全, 漏洞分析, 网络安全, 路径探测, 轻量级, 逆向工具, 间接注入, 隐私保护