andypnguyen11-gif/adversarial-ai-security-platform

GitHub: andypnguyen11-gif/adversarial-ai-security-platform

一个多智能体对抗性 AI 安全平台,持续对 LLM 驱动的临床 Co-Pilot 进行红队测试,覆盖 PHI 窃取、Prompt 注入、工具滥用和成本放大攻击四大威胁类别。

Stars: 0 | Forks: 0

# 对抗性 AI 安全平台 (AAISP) 一个**持续对由 LLM 驱动的临床 Co-Pilot 进行红队测试**的多 Agent 平台 — 生成新颖的对抗性探测,评估响应,升级已确认的漏洞利用,并起草可复现的漏洞报告。 测试目标是在一个单独的代码库中构建的智能体 **OpenEMR Clinical Co-Pilot**:**[OpenEMR-Copilot-Agent](https://github.com/andypnguyen11-gif/OpenEMR-Copilot-Agent)**。 AAISP 以真实对手的方式攻击该 Co-Pilot 的聊天接口(快/慢通道)及其文档上传接口,然后验证该智能体是否泄露 PHI、滥用工具、消耗无限制预算或执行注入的指令。 ## 🎥 演示 [![观看演示](https://cdn.loom.com/sessions/thumbnails/4ee7615444104051a9ee1650f84b3f15-with-play.gif)](https://www.loom.com/share/4ee7615444104051a9ee1650f84b3f15) ▶️ **[在 Loom 上观看完整演示](https://www.loom.com/share/4ee7615444104051a9ee1650f84b3f15)** — 平台对已部署的 Co-Pilot 运行实时攻击。 ## 功能说明 接触 PHI 的 LLM 智能体是一个全新的、高风险的攻击面。AAISP 将 Co-Pilot 视为一个需要*定期进行对抗性评估*的系统,而不是一个只需进行一次性冒烟测试的黑盒。它跨四个威胁类别搜寻、评估、升级和记录漏洞: - **PHI 窃取** — 诱使智能体披露不应公开的患者数据。 - **Prompt 注入** — 通过聊天轮次和上传文档暗中植入指令。 - **工具滥用** — 驱使智能体调用超出其预期权限的工具。 - **DoS / 成本放大** — 针对智能体预算的无限制消耗攻击。 ## 工作原理(高层概述) 四个具有**刻意隔离的信任上下文**的智能体 — 生成者绝不能同时担任裁判,因为自我评估攻击的智能体在设计上就是被攻陷的。 ``` Orchestrator ──CampaignSpec──▶ Red Team Agent ▲ │ │ controlled tool interface coverage / (no raw HTTP) budget state │ │ ▼ │ Chat Exercise Harness ──▶ Target Co-Pilot │ │ (chat + document upload) │ redact + forward │ ▼ │ Judge Agent ──(structural check + LLM rubric) │ │ │ verdict │ ▼ │ Vulnerability Tracker (Postgres, row-level authz, │ │ append-only audit log) │ confirmed exploit │ ▼ └────────────────── Documentation Agent ──▶ draft PR + regression case against the Co-Pilot fork (human-merged only) ``` 1. **Orchestrator** 读取覆盖率和预算状态,并将 `CampaignSpec` 分发给红队,将注意力引导至测试不足的威胁类别。 2. **Red Team Agent** 生成并变异多轮探测,通过受控的工具接口(`start_session`、`send_chat_turn`、`attach_document`、`persist_case_result`)驱动它们 — 绝不使用原始 HTTP。 3. **Chat Exercise Harness** 使用经过身份验证且范围受限的测试凭证向目标 Co-Pilot 发射探测,然后对记录进行脱敏并转发。 4. **Judge Agent** 对每次尝试做出裁决,**首先进行确定性的结构检查**(审计日志断言、工具调用形状、标量阈值),其次是使用严格的 LLM 评分标准。它永远不会看到红队自己的成功声明。 5. 裁决流向 **Vulnerability Tracker**(组织范围、仅追加的审计日志);确认的漏洞利用会通知 **Documentation Agent**,该智能体会针对 Co-Pilot 分支提交草案报告和回归测试用例 — **每一个补丁都需经过人工审查和合并。** 6. 每次活动都声明一个 **token + 实际运行时间预算**;Orchestrator 在只有成本消耗而无有效信号时停止,以便失控的活动永远不会对其所保护的系统造成 DoS。 整体设计遵循 OWASP Top 10 for LLM Applications(Prompt 注入、敏感信息泄露、过度代理、无限制消耗)以及 Web 应用 Top 10(行级访问控制、参数化查询、仅追加的安全日志记录)。 ## 技术栈 **后端** · Python 3.12 · [FastAPI](https://fastapi.tiangolo.com/) + Uvicorn · Pydantic v2 / pydantic-settings · SQLAlchemy 2.0 + Alembic · PostgreSQL (psycopg 3) · SSE 流式传输 (`sse-starlette`) · `httpx` · JWT 身份验证 (`pyjwt[crypto]`) **LLM 层** · 分层模型策略 — 通过 **OpenRouter** 使用低成本开源权重模型进行攻击生成/变异,使用 **Anthropic Claude** (Sonnet 级别) 作为 Judge 和 Documentation,为 Orchestrator 使用廉价的小型模型,并使用本地模型 (Ollama / vLLM) 作为高吞吐量模糊测试的隐私保障底线。在外部提供商边界处进行阶段感知的 PHI 脱敏。 **前端** · React 18 + TypeScript · Vite · React Router · TanStack React Query · Tailwind CSS **评估与工具** · pytest + pytest-asyncio · testcontainers(测试中的真实 Postgres) · ruff + mypy (严格模式) · 基于版本化攻击语料库的确定性回归测试工具 **基础设施** · Docker · Railway 上的托管 Postgres · 用于运行账本的观测性/追踪钩子 ## 仓库结构 | 路径 | 内容说明 | |---|---| | `aaisp/src/aaisp/` | 服务代码 — `agents/` (red_team, judge, orchestrator, documentation), `llm/` (provider abstraction), `chat_harness/`, `target/` (adapter, JWT issuer, allowlist), `tracker/`, `eval_runner/`, `safety/`, `observability/`, `scheduling/`, `dashboard/` | | `aaisp/dashboard-web/` | React + TypeScript 操作面板 | | `evals/aaisp/` | 版本化的对抗性案例语料库 + 记录的对话记录和基准测试结果 | | `vulnerabilities/` | 提交的漏洞报告 | | `AAISP_PRD.md`, `AAISP_Architecture.md`, `THREAT_MODEL.md`, `AAISP_Tasks.md` | 产品、架构、威胁模型和路线图文档 | ## 范围 可运行的 MVP 套件针对 Co-Pilot 的**聊天接口(快/慢通道)**和**通用文档上传**进行探测,涵盖上述四个结构上可验证的威胁类别。管理 UI、OAuth2 端点、FHIR 基础接口和登录接口已记录在案,但不属于当前的评估范围。另外两个威胁类别(状态损坏、身份/角色利用)被记录为扩展工作。
标签:AI风险缓解, CISA项目, LLM红队评估, 人工智能安全, 医疗信息化, 合规性, 多智能体, 安全规则引擎, 测试用例, 自动化渗透测试, 请求拦截, 运行时操纵, 配置错误