Gravitas-Security/AI-Security-Matrix

GitHub: Gravitas-Security/AI-Security-Matrix

一款交互式 AI 系统安全成熟度评估工具,帮助团队基于主流安全框架对 LLM 和 AI 应用的安全态势进行评分、生成 AI 驱动的修复建议并输出 PDF 报告。

Stars: 0 | Forks: 0

# AI 安全成熟度评估 一个结构化、交互式的安全评估工具,专为构建或运营 **AI 系统**(包括 LLM、ML 模型、RAG 应用和 AI Agent)的团队设计。在架构评审、安全审计或 sprint 规划期间运行它,为您的系统安全态势进行评分,生成 AI 驱动的建议,并生成包含优先排序工程路线图的 PDF 就绪报告。 对标 **OWASP LLM Top 10 (2025)**、**NIST CSF 2.0 / AI RMF**、**ISO/IEC 42001:2023** 和 **MITRE ATLAS**。 ## 为什么会有这个工具 AI 系统引入了传统应用安全工具无法覆盖的独特安全风险:模型投毒、prompt 注入、训练数据泄露、针对预训练模型的供应链攻击以及对抗性规避。配置错误或安全防护不足的 AI 系统可能会成为数据泄露、安全护栏失效或针对您的 AI 技术栈发起拒绝服务攻击的入口。 该工具为工程和安全团队提供了一种通用语言——建立在真实的框架之上——以评估他们的现状以及需要优先修复的问题。 ## 使用场景 | 角色 | 何时使用 | |---|---| | **安全工程师** | 在正式投入生产前审计新的或现有的 AI 系统 | | **ML 工程师** | 识别训练数据和模型供应链的安全漏洞 | | **AI 产品经理** | 了解风险优先级并将其纳入路线图 | | **AI 治理团队** | 建立对标 NIST AI RMF 和 ISO 42001 的合规基线 | | **架构评审** | 在修复前后评估系统以跟踪进展 | ## 快速开始 **前置条件:** 已安装并运行 Docker Desktop。AI 提供商的 API 密钥是可选的,但配置后可启用 AI 分析功能。 ``` git clone https://github.com/Gravitas-Security/AI-Security-Matrix.git cd AI-Security-Matrix # 使用您的 API key 创建 .env 文件(参见下方的 AI Provider 部分) echo "ANTHROPIC_API_KEY=sk-ant-..." > .env docker compose up --build ``` 在浏览器中打开 **http://localhost:3001**。 状态会自动保存到宿主机的 `./data/state.json` 文件中,因此在容器重启后依然会保留。 ## 如何进行评估 ### 1. 配置品牌标识 点击导航栏右上角的 **⚙ Settings**。在 **Branding** 标签页下,输入您的组织名称,并选择性地上传徽标(PNG、SVG 或 JPG 格式)。这些信息将显示在屏幕上以及 PDF 封面上。 ### 2. 填写评估元数据 在导航栏下方的元数据栏中,输入: - **团队 / 产品** — 负责该 AI 系统的团队 - **AI 系统 / 产品** — 系统名称或标识符(例如:“面向客户的 LLM API”) - **负责人 / 仓库** — 代码仓库或部署 URL - **评估者** — 您的姓名 - **日期** — 评估日期 - **目标成熟度等级** — 您的组织希望达到的 CMMC 等级(可选;用于驱动 AI 报告中的差距分析) ### 3. 为每个领域评分 点击任意**领域行**将其展开。对于每个检查项,选择 **Yes** 或 **No**。分数会根据您的回答自动计算,或者点击等级徽章手动覆盖评分。 评分遵循 CMMC 1–5 等级标准: | 等级 | 名称 | 描述 | |---|---|---| | L1 | 基础网络卫生 | 实施了最少的控制措施 | | L2 | 中级 | 已记录的实践,部分覆盖 | | L3 | 良好的网络卫生 | 持续应用的控制措施 | | L4 | 主动型 | 积极审查和改进 | | L5 | 高级 / 进阶 | 持续优化,具备威胁情报 | ### 4. 查看实时图表 在领域表格上方,**雷达图**和**柱状图**会随着您对各个领域的评分实时更新。如果您设置了目标成熟度等级,两张图表上都会以绿色虚线参考线显示差距。 ### 5. 为 AI 分析添加上下文 在 **AI Analysis** 标签页中,点击 **📋 Additional Context** 展开上下文面板。这是可选的,但能显著提升 AI 建议的质量。 **上下文字段:** | 字段 | 填写内容 | |---|---| | 架构与技术栈 | 模型托管、框架、推理基础设施、向量数据库 | | 现有的缓解措施 | 检查清单中未涵盖但已实施的控制措施 | | 合规要求 | EU AI Act 分类、SOC 2、GDPR、NIST AI RMF 等级等 | | 已知风险与例外情况 | 接受的风险、延期的工作、补偿性控制措施 | | 附加说明 | 其他任何需要 AI 考虑的因素 | **参考文档上传:** 上传最大 10 MB 的 **PDF、Word (.docx)、TXT 或 Markdown** 文件——例如,您组织的 AI 安全策略、内部 AI 标准或合规框架。文本会在服务器端进行提取,并注入到 AI prompt 中,同时附带明确指令,要求将所有建议与该文档的要求保持一致,并通过引用标出具体章节。 ### 6. 配置您的 AI 提供商 点击 **⚙ Settings → AI Provider** 标签页。从四个提供商中进行选择——卡片上会显示各提供商的 API 密钥是否已配置。从下拉菜单中选择一个模型。 支持的提供商和模型: | 提供商 | 模型 | |---|---| | **Anthropic Claude** | Sonnet 4.6(默认)、Opus 4.8、Haiku 4.5 | | **OpenAI** | GPT-4o(默认)、GPT-4o Mini、GPT-4 Turbo | | **Google Gemini** | Gemini 1.5 Pro(默认)、Gemini 1.5 Flash、Gemini 2.0 Flash | | **Azure OpenAI / Copilot** | 您的部署(通过环境变量配置) | ### 7. 运行 AI 分析 点击 **✦ Run Analysis**。两个并行的 AI 调用将生成: - 包含总体风险评级的**执行摘要** - 按严重程度排序的**关键发现** - 带有 OWASP / NIST / ISO 框架参考的**领域建议** - **修复路线图**(立即 / 30–90 天 / 90+ 天) - **面向产品经理的工作流**,包含史诗级任务标题、业务影响声明、工作量评估、负责人和验收标准 ### 8. 查看 Roadmap 标签页 **Roadmap** 标签页展示了按优先级组织的工作流,并包含周期规划。每个工作流都映射到一个或多个安全领域,并且使用通俗易懂的语言编写,可直接用于产品 backlog——随时准备导入到 Jira、Linear 或 Azure DevOps 中。 ### 9. 导出 PDF 报告 点击导航栏中的 **⬇ Export PDF**。报告内容包括: - 包含组织品牌标识和安全态势摘要的封面 - 包含总体风险评级的执行摘要 - 按严重程度排序的发现表 - 针对各个领域的检查项详情 - 带有框架参考的 AI 建议 - 包含工作流表格的路线图建议页 - 进度对比页(导入了基线时显示) - 备注页 ## 基线跟踪和进度报告 对比不同时间的两次评估,以衡量修复进度: 1. 将已完成的评估导出为 JSON (**⬇ Export JSON**) 2. 在稍后的时间点,点击 **⬆ Import JSON** 并加载之前的评估 3. 该工具会将其设置为基线——图表会显示代表以往分数的琥珀色叠加层;AI 分析会明确指出改进之处和退步之处 4. PDF 将包含一个 **Progress Since Last Assessment** 页面,其中包含差异图表和完整的领域对比表 ## 涵盖的安全领域 | # | 领域 | OWASP LLM | NIST AI RMF | ISO 42001 | |---|---|---|---|---| | 1 | AI 治理与风险管理 | LLM09 | GOVERN 1.1 | 6.1 | | 2 | 训练数据安全与来源 | LLM03 | MAP 2.1 | A.7 | | 3 | 数据隐私与 PII 保护 | LLM02 | GOVERN 6.2 | A.5.2 | | 4 | 模型供应链安全 | LLM05 | MAP 3.5 | 8.3 | | 5 | 推理与运行时安全 | LLM01 | MANAGE 1.3 | A.6.2 | | 6 | 模型访问控制与身份 | LLM06 | GOVERN 6.1 | A.6.1.3 | | 7 | 监控、日志记录与异常检测 | A09 | MEASURE 2.8 | 9.1 | | 8 | 对抗鲁棒性与红蓝对抗 | LLM07 | MEASURE 2.6 | 9.2 | | 9 | 事件响应与恢复 | — | MANAGE 3.1 | 10.1 | ## 配置 ### AI 提供商与 API 密钥 将您拥有的任意密钥设置在项目根目录下的 `.env` 文件中(会自动被 git 忽略): ``` # Anthropic Claude(默认) ANTHROPIC_API_KEY=sk-ant-... # OpenAI OPENAI_API_KEY=sk-... # Google Gemini GOOGLE_API_KEY=AIza... # Azure OpenAI / Microsoft Copilot AZURE_OPENAI_API_KEY=... AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com AZURE_OPENAI_DEPLOYMENT=gpt-4o ``` 您可以同时为多个提供商配置密钥,并在 UI 中进行切换,而无需重启。添加新密钥后,请重新构建容器(`docker compose up --build`)。 ### 端口 默认端口为 `3001`。要使用不同的端口,请同时更新 `PORT` 环境变量和 `docker-compose.yml` 中的端口映射: ``` ports: - "8080:8080" environment: - PORT=8080 ``` ### 状态持久化 评估状态(分数、分析、品牌标识、上下文、文档文本)存储在 `./data/state.json` 中,并以宿主机卷的形式挂载到容器内。重启后会自动保留。要重置状态: - 点击 UI 中的 **↺ Reset**,或者 - 删除 `./data/state.json` 并重启容器 ## 架构 ``` AI-Security-Matrix/ ├── server.js # Express server — state, AI proxy, document extraction ├── public/ │ └── index.html # Single-page app (vanilla JS, no build step) ├── data/ │ └── state.json # Auto-created on first save (gitignored) ├── Dockerfile ├── docker-compose.yml └── .env # API keys (gitignored — create this yourself) ``` 该应用有意保持轻依赖:前端是一个不使用任何框架或构建流水线的单 HTML 文件。后端是一个轻量级的 Express 服务器,负责处理 AI 提供商路由、文档文本提取和状态持久化。 **服务器依赖项:** `express`、`multer`、`pdf-parse`、`mammoth`、`@anthropic-ai/sdk`、`openai`、`@google/generative-ai` ## 贡献 欢迎提交 Issue 和 PR。请访问 [GitHub 仓库](https://github.com/Gravitas-Security/AI-Security-Matrix) 查看问题追踪器。 ## 许可证 MIT
标签:Docker, LLM, Unmanaged PE, 人工智能安全, 合规性, 后端开发, 安全合规审计, 安全防御评估, 数据可视化, 请求拦截