mmukul/ollama-prompt-injection-lab
GitHub: mmukul/ollama-prompt-injection-lab
一个基于 Ollama 的提示注入实验平台,用于对比易受攻击与安全 LLM 行为,服务于 LLM 安全学习与攻防演示。
Stars: 0 | Forks: 0
# Ollama 的提示注入实验
一个本地的动手实验,用于对易受攻击的 LLM 应用程序执行 **提示注入** 攻击,并与加固版本进行比较。
## 本实验包含内容
- **易受攻击的应用程序**:故意薄弱的系统提示和不安全的处理方式
- **安全应用程序**:改进的系统提示和简单的输入过滤
- **攻击提示包**:可直接运行的注入示例
- **模型文件**:
- `vuln-llm` 用于演示
- `secure-llm` 用于比较
- **运行脚本**:用于快速脚本化演示
## 要求
- Python 3.10+
- 已安装并运行的 [Ollama](https://ollama.com/)
- 本地模型,例如 `llama3` 或 `mistral`
## 快速开始
### 1) 拉取基础模型
```
ollama pull llama3
```
如果该模型对您的机器来说过重,请使用:
```
ollama pull mistral
```
### 2) 创建演示模型
从本仓库根目录开始:
```
ollama create vuln-llm -f modelfiles/Modelfile.vuln
ollama create secure-llm -f modelfiles/Modelfile.secure
```
### 3) 安装 Python 依赖
```
pip install -r requirements.txt
```
### 4) 运行易受攻击的应用程序
```
python app/chat.py --model vuln-llm --mode vuln
```
### 5) 运行安全的应用程序
```
python app/chat.py --model secure-llm --mode secure
```
## 快速脚本化演示
运行所有攻击提示针对易受攻击的应用程序:
```
python app/demo_runner.py --model vuln-llm --mode vuln
```
运行所有攻击提示针对安全应用程序:
```
python app/demo_runner.py --model secure-llm --mode secure
```
## 手动攻击提示
打开以下文件并逐一粘贴进行聊天:
- `prompts/01_direct_injection.txt`
- `prompts/02_role_override.txt`
- `prompts/03_authority_hijack.txt`
- `prompts/04_multiturn_memory.txt`
- `prompts/05_indirect_injection.txt`
## 说明
- 本实验室仅用于 **防御性安全教育**。
- 较小的模型可能与较大的模型表现不同。
- 提示注入的结果因模型而异。脆弱的模型文件故意设计得较弱,以使演示更清晰。
## 建议的演示命令
```
python app/chat.py --model vuln-llm --mode vuln
python app/chat.py --model secure-llm --mode secure
python app/demo_runner.py --model vuln-llm --mode vuln
python app/demo_runner.py --model secure-llm --mode secure
```
标签:AI风险缓解, Linux系统监控, LLM攻防, LLM评估, Ollama, OWASP LLM, TGT, 大语言模型安全, 安全学习, 安全对比, 安全教育, 对抗攻击, 提示注入, 攻防演练, 敏感信息检测, 本地实验室, 机密管理, 模型安全, 漏洞演示, 自动化演示, 输入过滤, 逆向工具, 防御实践, 集群管理