DaveMcBeer/Simply-AI
GitHub: DaveMcBeer/Simply-AI
一个内置漏洞的 AI 企业帮助台靶场,用于研究 LLM 集成系统中的安全边界弱点和防护缓解措施。
Stars: 0 | Forks: 0
## 前置条件
- Python 3.12+
- 启用了计费功能的 OpenAI API 密钥
## 设置
```
# Clone 仓库
git clone https://github.com/DaveMcBeer/Simply-AI.git
cd Simply-AI/simplyai
# Install 依赖
pip install -r requirements.txt
# 配置环境
cp backend/.env.example backend/.env
# Edit backend/.env 并添加你的 API key 和 secret key
# 在 VULNERABLE mode 下运行(默认)
cd backend
uvicorn main:app --reload --port 8000
# 在 HARDENED mode 下运行
# 在 .env 中设置 HARDENED_MODE=true,然后重启服务器
```
在浏览器中打开 **http://localhost:8000**。
API 文档可在 **http://localhost:8000/docs** 查看。
## 环境变量
| 变量 | 描述 | 是否必需 |
|-----------------|--------------------------------------|----------|
| `LLM_API_KEY` | OpenAI API 密钥 | 是 |
| `SECRET_KEY` | JWT 签名密钥(随机字符串) | 是 |
| `HARDENED_MODE` | `true` 或 `false` | 否 |
| `LLM_MODEL` | 模型名称(默认:`gpt-4o-mini`) | 否 |
## 演示账户
首次运行时自动填充:
| 用户名 | 密码 | 角色 |
|----------|--------------|-------|
| alice | password123 | user |
| bob | password123 | user |
| admin | admin123 | admin |
## 安全架构
`gateway.py` 中的 `ToolExecutionGateway` 会对每次 LLM 工具调用执行 4 项检查:
| 检查 | 描述 | 易受攻击 | 已加固 |
|-------|---------------------------------------------------|-----------|---------|
| 1 | 白名单:函数名必须在已批准的列表中 | ✅ | ✅ |
| 2 | 参数 schema + 所有权验证 | ❌ | ✅ |
| 3 | RBAC:用户角色与所需权限对比 | ❌ | ✅ |
| 4 | 执行前写入审计日志 | ✅ | ✅ |
## 攻击场景
| ID | 攻击 | 目标工具 |
|----|---------------------------------|------------------|
| A1 | Prompt Injection → 未授权执行 | `reset_password` |
| A2 | 通过参数进行权限提升 | `get_user_data` |
| A3 | 通过模型输出泄露数据 | `list_users` |
使用 UI 中的 **ATTACK DEMO INPUTS** 面板预填充精心构造的 payload。
## 研究问题
- **RQ1**:哪个集成层最脆弱?
- **RQ2**:Prompt injection 能否触发未经授权的工具执行?
- **RQ3**:哪些控制措施能降低攻击成功率,以及降低了多少?
## 添加前端页面
将任何 `.html` 文件放入 `frontend/` 文件夹,它就会被自动提供服务:
| 文件 | URL |
|-------------------------|----------------------------------|
| `frontend/index.html` | `http://localhost:8000/` |
| `frontend/about.html` | `http://localhost:8000/about` |
| `frontend/dashboard.html` | `http://localhost:8000/dashboard` |
静态资源(CSS、JS、图像)放入子文件夹中,可通过 `/static/` 访问:
标签:AI安全, AV绕过, Chat Copilot, DLL 劫持, FastAPI, OPA, Petitpotam, Python, Web报告查看器, 企业服务台, 大语言模型, 无后门, 逆向工具, 配置错误, 靶场