raajsivaram/triad-sentinel

GitHub: raajsivaram/triad-sentinel

基于 Google ADK 构建的多 Agent AI 系统,自动审计 GCP 云架构、IaC 及 SOW 文档在安全、SRE 和 FinOps 三大维度的合规性。

Stars: 0 | Forks: 0

# 🛡️ Triad Sentinel **一个面向 Google Cloud Platform (GCP) 的企业级 AI 架构审查委员会** Triad Sentinel 是一个企业级的多 Agent AI 系统,旨在自动审计云架构蓝图、基础设施即代码 模板、Mermaid 图表和工作说明书 (SOW) 文档。它根据三大核心支柱对设计进行评估:**安全合规**、**站点可靠性工程 (SRE) 基线**以及 **FinOps (成本优化)**。 该系统使用 **Google Agent Development Kit (ADK)** 构建并以 **Vertex AI Agent Engine** 为目标平台,实施了严格的深度防御护栏、运行前密钥拦截、LLM 注入预防以及多 Agent 共识路由。 ## 🏢 系统架构与工作流 系统被结构化为一个有向图工作流,在主管编译网关的编排下进行并行专家审查,并封装在可视化的 Chainlit UI 中。 ``` graph TD UI[Chainlit UI / API Client] -->|Raw Text / .docx / .mmd| API[FastAPI Ingress] subgraph Defense-in-Depth Guardrails API --> G1[1. Secret Masker] G1 -->|Clean| G2[2. Scope & Intent Validator] G2 -->|Valid| G3[3. Injection & Bypass Detector] G3 -->|Safe| G4[4. Plan-Phase Security Gate] end G4 --> Sup[Architecture Supervisor] Sup -->|Tool Call| MP[Mermaid Parser] Sup -->|Tool Call| PP[Plan Parser] Sup -->|Tool Call| STRIDE[STRIDE Analyzer] Sup -->|Route| SEC[Security Compliance Specialist] Sup -->|Route| SRE[SRE & FinOps Specialist] subgraph MCP ["Model Context Protocol (MCP)"] SEC -->|Fetch| P1[(zero_trust_iam.md)] SEC -->|Fetch| P2[(finops_baselines.md)] SRE -->|Fetch| P3[(ha_compute_rules.md)] SRE -->|Fetch| P2 end SEC --> Report[Executive Sign-Off Report] SRE --> Report Sup --> Report Report --> UI ``` ## 🛡️ 深度防御安全护栏 在任何请求到达 LLM 之前,都必须经过四个严格的、程序化的 Python 护栏,以确保企业安全性和计算效率: 1. **接入阶段:密钥掩盖护栏 (`src/guardrails/secret_masker.py`)** * **逻辑:** 拦截传入请求并扫描高风险的暴露模式(AWS 密钥、GCP Service Account JSON、RSA 私钥)。 * **动作:** 立即终止执行并返回 HTTP 400 `SECRET_EXPOSURE` 错误,防止凭证进入 LLM 上下文或 Cloud Logging。 2. **领域锁定:范围与意图验证器 (`src/guardrails/scope_validator.py`)** * **逻辑:** 一种轻量级的、基于规则的启发式检查,确保输入包含架构上下文(IaC、Mermaid、GCP、SOW)。 * **动作:** 在 API 层以 HTTP 400 `SCOPE_VIOLATION` 阻断闲聊、天气查询或一般知识问题,从而节省 LLM 计算成本。 3. **LLM 安全:注入与绕过检测器 (`src/guardrails/injection_detector.py`)** * **逻辑:** 检测直接 prompt 注入、越狱尝试("ignore previous instructions")以及过程绕过("skip the security review")。 * **动作:** 以 HTTP 400 `SECURITY_BLOCK` 错误阻断恶意意图。 4. **规划阶段:本地安全网关 (`src/agents/supervisor.py`)** * **逻辑:** 在调用下游工具之前执行的回调钩子。它解析候选路径和文件格式。 * **动作:** 通过抛出 `ValueError` 来阻止未经授权的目录遍历并拒绝不允许的配置格式。 ## 🤖 多 Agent 编排与工具 该平台使用三个高度专业化的 Agent 协同工作,并配备了自定义的程序化技能: * **高级企业架构主管:** 编排工作流,并行路由任务,并综合生成最终的高管仪表板。 * **安全合规专家:** 利用 MCP 根据 Zero-Trust 基线验证身份控制、网络边界和数据加密。 * **SRE 与 FinOps 专家:** 识别单点故障 (SPOF)、自动扩缩容缺口、可观测性需求以及 GCP 成本低效问题。 ### 🛠️ 自定义 Agent 技能 * **Mermaid 解析器 (`parse_mermaid_architecture`):** 将来自可视化 Mermaid 图表的节点、连接和信任边界提取为结构化的 JSON。 * **计划解析器 (`parse_infrastructure_plan`):** 将原始 IaC (Terraform/HCL/YAML) 或 SOW 文档解析为结构化的组件块。 * **STRIDE 分析器 (`analyze_stride`):** 对 11 种组件类型(Compute、K8s、Serverless、CDN、Network 等)执行深度威胁建模,将风险映射到身份假冒、篡改、抵赖、信息泄露、拒绝服务 和权限提升。 ## 🔌 模型上下文协议 (MCP) 集成 * **资源 URI 方案:** 使用 `policy://[filename]` 动态呈现 markdown 文档。 * **GCP 原生策略:** * `zero_trust_iam.md`:GCP IAM、VPC Service Controls 和 Cloud KMS 基线。 * `ha_compute_rules.md`:Regional MIGs、Cloud Spanner 和 Cloud Monitoring 基线。 * `finops_baselines.md`:GCE right-sizing、GCS lifecycle rules 和 Spot VM 强制要求。 ## 🎨 “Vibe” UI Triad Sentinel 具有一个 **Chainlit** 前端,可实时可视化多 Agent 编排。UI 显示可折叠的 "Steps",准确展示密钥掩盖器何时触发、MCP 服务器何时获取策略,以及并行专家何时完成审计。它还原生支持通过聊天界面直接上传 `.docx`(SOW 文档)和 `.mmd`(Mermaid 图表)。 ## 🚀 SRE CI/CD 自动化 在 `.github/workflows/deploy.yml` 中配置了一个成熟的、可用于生产的 GitHub Actions 流水线: * **解耦的 CI/CD:** 每次推送都会运行自动化测试 (`pytest`)。部署到 Vertex AI Agent Engine 的操作严格受手动 `workflow_dispatch` 触发器控制,以防止产生不必要的云计算成本。 * **Zero-Trust 认证:** 使用现代 OpenID Connect (OIDC) / Workload Identity Federation 连接到 Google Cloud,消除了长期有效的静态 Service Account 密钥。 ## 🏃 如何运行 ### 前置条件 ``` pip install -r requirements.txt ``` ### 启动应用 打开两个终端窗口。 **终端 1 — 启动 FastAPI 后端:** ``` .\.venv\Scripts\python.exe -m uvicorn src.main:app --port 8000 ``` **终端 2 — 启动 Chainlit UI:** ``` .\.venv\Scripts\chainlit run src/ui/chainlit_app.py --port 8080 ``` 然后在浏览器中打开 `http://localhost:8080`。 ## 🧪 验证与测试套件 `tests/test_agents.py` 中的测试套件涵盖了所有核心安全规则并能顺利执行。 * **密钥掩盖护栏:** 断言在暴露密钥时提前终止并返回结构化的错误块。 * **范围与注入护栏:** 断言在闲聊和越狱尝试时返回 HTTP 400 阻断。 * **计划阶段网关拦截:** 断言在目录遍历和不允许的 XML 格式下抛出 `ValueError`。 * **API Endpoint 集成:** 使用 FastAPI `TestClient` 断言正确的状态码和 JSON 输出。 **执行命令:** ``` .\.venv\Scripts\pytest.exe tests/ ```
标签:DevSecOps, GCP, PyRIT, Python, 上游代理, 人工智能, 多智能体系统, 安全规则引擎, 无后门, 用户模式Hook绕过, 逆向工具