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报告查看器, 企业服务台, 大语言模型, 无后门, 逆向工具, 配置错误, 靶场