prabhakaran-jm/shadowlab-ai

GitHub: prabhakaran-jm/shadowlab-ai

ShadowLab 是一个面向 AI API 的混沌工程与对抗性测试平台,能够自动生成攻击提示、检测提示注入等安全漏洞并给出修复建议。

Stars: 0 | Forks: 0

# ShadowLab – AI API 的混沌工程 **在用户利用之前,自动发现 AI API 中的对抗性故障。** ## 问题 AI API 经常在对抗性或边缘情况输入下发生故障。常见的故障模式包括: - **Prompt injection(提示注入)** – 用户覆盖系统指令或注入恶意提示 - **System prompt leakage(系统提示泄露)** – 内部指令或系统提示在响应中暴露 - **Policy bypass(策略绕过)** – 通过假设、角色扮演或措辞绕过护栏 - **Edge-case inputs(边缘情况输入)** – 触发不安全行为的意外或畸形输入 开发者缺乏在这些漏洞被生产环境利用之前主动测试它们的工具。 ## 解决方案 ShadowLab 是一个对抗性测试平台,它能够: - 通过 **DigitalOcean Gradient™ AI** 或精选种子集**生成对抗性提示** - 对任何 HTTP AI API 端点**执行自动化红队扫描** - 使用启发式规则和 **Gradient AI** 驱动的响应分析**检测漏洞** - 通过开发者友好的修复建议(包括 Gradient 生成的建议)**建议修复** - **计算安全评分**,以便您可以随时间跟踪和比较 API 的鲁棒性 ## 架构 | 组件 | 描述 | |----------|-------------| | **Frontend** | Next.js 仪表板 – 扫描表单、实时控制台、安全报告、结果表 | | **Backend** | FastAPI 扫描引擎 – `/scan`、`/scan/demo`、健康检查 | | **DigitalOcean Gradient™ AI** | GPT-OSS-20B 用于提示生成;Llama 3.3 70B 用于漏洞分析(双模型设计优化了性能和成本)。| | **Attack generator** | 当设置了 `GRADIENT_MODEL_ACCESS_KEY` 时调用 Gradient AI;否则使用种子攻击(JSON)| | **Target runner** | 通过 HTTP 将提示发送到目标 API 并返回响应文本 | | **Response judge** | 启发式规则 + 可选的 Gradient AI 分析,用于提供原因和修复建议 | | **Safety scoring** | 0–100;仅失败的测试会降低分数(通过的测试不扣分)| | **Deployment** | DigitalOcean App Platform(可选)。存储:DigitalOcean Spaces(可选)| ## 功能 - **对抗性攻击生成** – Gradient AI 生成或基于种子(提示注入、系统提示提取、策略绕过) - **自动化漏洞检测** – 通过单次 API 调用或从仪表板运行完整扫描 - **开发者友好的修复建议** – 可行的建议(包括 Gradient AI 增强) - **安全评分报告** – 根据发现结果的严重程度得出的 0–100 分 - **安全报告仪表板** – 摘要、漏洞计数、结果表、建议修复 - **实时攻击控制台** – 扫描运行时的进度指示器(计划支持流式传输) ## 演示流程 1. **启动堆栈** – 运行后端(`uvicorn`)和前端(`npm run dev`)。 2. **打开仪表板** – 访问前端 URL(例如 `http://localhost:3000`)。 3. **输入目标** – 提供 API 端点 URL 和可选的目标描述。 4. **开始扫描** – 点击 “Start Scan”;控制台显示进度。配置 Gradient 后,攻击由 **DigitalOcean Gradient™ AI 生成**。 5. **查看报告** – 安全评分、漏洞摘要、结果表和建议修复(配置后,Gradient AI 可提供推理和修复文本)。 6. **可选** – 尝试 `GET /scan/demo` 对模拟端点进行快速扫描。 ## 快速开始(3 条命令) ``` cd backend && pip install -r requirements.txt && cp .env.example .env && uvicorn app.main:app --reload # 在另一个终端中: cd frontend && npm install && npm run dev ``` 然后打开 `http://localhost:3000`。可选:在 `backend/.env` 中设置 `GRADIENT_MODEL_ACCESS_KEY`(或 `GRADIENT_API_KEY`)以启用 Gradient AI;参见 [docs/GRADIENT_SETUP.md](docs/GRADIENT_SETUP.md)。要在本地扫描内置的模拟易受攻击 API,请在 `backend/.env` 中设置 `ALLOW_LOCALHOST_TARGET=1`。 ## 本地运行 ### Backend ``` cd backend pip install -r requirements.txt cp .env.example .env # then set GRADIENT_MODEL_ACCESS_KEY or GRADIENT_API_KEY for Gradient AI uvicorn app.main:app --reload ``` API: `http://localhost:8000` 文档: `http://localhost:8000/docs` **目标 URL 限制:** 除非设置 `ALLOW_LOCALHOST_TARGET=1`(用于 mock-vulnerable-api 演示),否则私有和 localhost URL 将被拒绝。 ### Frontend ``` cd frontend npm install npm run dev ``` 仪表板: `http://localhost:3000`。对于生产环境,请将 `NEXT_PUBLIC_API_URL` 设置为您的后端 URL。 要在本地运行生产构建:`npm run build` 然后 `npm start`(除非设置了 `PORT`,否则仍将在端口 3000 上提供服务)。 ### 测试 **Backend (pytest):** ``` cd backend pip install -r requirements.txt # includes pytest, pytest-asyncio pytest tests/ -v ``` **Frontend (Jest + React Testing Library):** ``` cd frontend npm install npm run test ``` ## 部署 (DigitalOcean App Platform) 要在 [DigitalOcean App Platform](https://docs.digitalocean.com/products/app-platform/) 上运行 ShadowLab: 1. 将此仓库推送到 GitHub 并在 [Apps](https://cloud.digitalocean.com/apps) 仪表板中连接它(或使用规范:在 `.do/app.yaml` 中设置您的仓库后执行 `doctl apps create --spec .do/app.yaml`)。 2. 添加两个服务:**backend**(源目录 `backend`,运行 `sh run.sh`,端口 8080)和 **frontend**(源目录 `frontend`,`npm run build` / `npm start`,端口 8080)。 3. 设置 **backend** 环境变量:`CORS_ORIGINS` = 您的前端 Live URL;可选 `GRADIENT_MODEL_ACCESS_KEY`。 4. 设置 **frontend** 环境变量:`NEXT_PUBLIC_API_URL` = 您的后端 Live URL,然后重新部署前端。 有关完整的分步指南和故障排除,请参阅 **[docs/DEPLOYMENT.md](/>)**。 ## 我们如何使用 DigitalOcean Gradient™ AI **设置:** 有关 **GRADIENT_MODEL_ACCESS_KEY**(或 **GRADIENT_API_KEY**)和 **GRADIENT_API_URL**,请参阅 [docs/GRADIENT_SETUP.md](docs/GRADIENT_SETUP.md)。 ShadowLab 使用 **DigitalOcean Gradient™ AI** 并采用双模型设置: 1. **对抗性提示生成** – 一个轻量级模型(默认:**GPT-OSS-20B**)根据目标描述生成攻击提示。快速且成本高效。 2. **漏洞分析** – 一个更强大的模型(默认:**Llama 3.3 70B**)分析失败的响应,并为报告生成 **reason**(原因)和 **suggested_fix**(建议修复)。 此设计优化了性能和成本。当未设置 Model Access Key 时,应用程序会回退到种子攻击和仅启发式判断。 这使得 pipeline 在没有 API key 的情况下也能工作,同时为黑客松展示了完整的 Gradient 集成。我们使用**快速、低成本的模型**进行批量提示生成,使用**高推理能力的模型**分析故障并建议修复——展示了生产级风格的 Gradient 模型选项用法。 **目标 API 契约:** 扫描发送带有 JSON body `{"message": ""}` 的 `POST` 请求。您的目标 API 应接受此格式(或使用位于 `http://localhost:8000/mock-vulnerable-api` 的内置模拟端点,并设置 `ALLOW_LOCALHOST_TARGET=1`)。 ## 黑客松 为 **DigitalOcean Gradient™ AI Hackathon** 构建。该应用程序集成了 Gradient AI 用于攻击生成和漏洞推理,如上所述。 ## 未来改进 - **实时攻击流** – 在攻击事件和判断结果完成时进行流式传输 - **更深层次的 LLM 分析** – 更多地利用 Gradient AI 进行细致的判决和解释 - **CI/CD 集成** – 当安全评分或关键发现超过阈值时,使构建失败或阻止部署 - **高级对抗性变异** – 使用 Gradient 变异和演化提示以获得更广泛的覆盖范围
标签:AI安全, API安全, AV绕过, Chat Copilot, DigitalOcean, DLL 劫持, FastAPI, JSON输出, 人工智能安全, 健壮性测试, 合规性, 大语言模型, 安全合规, 安全规则引擎, 安全评分, 对抗攻击, 敏感信息检测, 混沌工程, 私有化部署, 策略绕过, 系统提示泄露, 网络代理, 自动化攻击, 自动化渗透测试, 逆向工具, 防御规避, 零日漏洞检测