microbrewerGM/sw-supply-chain-cybersecurity-cm

GitHub: microbrewerGM/sw-supply-chain-cybersecurity-cm

一个结构化、基于证据的软件供应链安全能力评估模型,提供从分类法到自动化评分工具的端到端评估方案。

Stars: 0 | Forks: 0

# 软件供应链安全 — 能力模型 一个结构化、基于证据的**软件供应链安全**能力模型 —— 围绕软件从原始组件到运行中的产品所经历的旅程(消费 → 构建 → 证明 → 验证 → 运行)进行组织,外加大多数模型忽略的 AI 和第三方/供应商领域。自底向上基于能力清单构建,而非生搬硬套到预先存在的网格上。 **11 个类别 · 75 个主题 · 270 项原子活动**,每项都在共享的制度化轴上进行评级(未执行 → 已执行 → 已标准化并强制执行 → 持续验证),并包含证据提示、独立的覆盖范围轴、工作量 × 风险影响元数据、源自事件的风险权重以及稳定的引用。 ## 从这里开始 | 你想…… | 前往 | |---|---| | 了解该模型 | [`TAXONOMY.md`](TAXONOMY.md)(核心主干 — 11 个类别,75 个主题) | | 查看其衡量方式 | [`SCORING-DESIGN.md`](SCORING-DESIGN.md) | | 运行评估 | [`ASSESSOR-GUIDE.md`](ASSESSOR-GUIDE.md) · [`instrument/`](instrument) | | 阅读能力详情 | [`categories/`](categories)(C1–C11) | | 自动化评估 | [`AUTOMATION-ARCHITECTURE.md`](AUTOMATION-ARCHITECTURE.md) | | 展示它 | [`deck/`](deck)(14 页幻灯片系列 + `DECK-SERIES-PROPOSAL.md`) | | 示例 | [`examples/`](examples)(演示用;包含基于公开证据的 Kubernetes/Sigstore) | | 当前状态 / 恢复点 | [`STATUS.md`](STATUS.md) | ## 快速开始(工具) ``` cd instrument python3 extract_model.py # model.json / model.csv + fillable assessment-sheet.csv python3 build_xlsx.py # Capabilities-Model.xlsx (8-sheet reference) # 填写 assessment-sheet.csv(tier 0-3 + 每个活动的 coverage),然后: python3 score.py --scope "" --out REPORT.md # D4 roll-up python3 chart.py --label "" --out-prefix ../img/ # radar + L0 charts ``` 要求使用 Python 3,并安装 `numpy`、`matplotlib`、`openpyxl`、`python-pptx`(用于幻灯片)和 `mermaid-cli`(用于图表)。 ## 目录结构 | 路径 | 内容 | |---|---| | `TAXONOMY.md` | 核心主干 — 11 个类别,75 个主题,配置标签 | | `categories/C1…C11-*.md` | 每个类别的详细能力描述(主题 → 原子活动) | | `TEMPLATE.md` | 所有类别文件都遵循的标准主题块模板 | | `THREAT-LINKAGE.md` | 每个主题 → 其防御的事件类别 → 基础值/最大风险权重(为 SCORING-DESIGN D4 提供数据) | | `PROFILES.md` | 四个首发交付配置,体现为具体的主题子集视图 | | `CROSS-REFERENCES.md` | 交叉引用审计 — 指针完整性 + 边界拆分验证 | | `instrument/` | 评估工具 — `extract_model.py` → `model.{json,csv}` + 可填写的 `assessment-sheet.csv`;`build_xlsx.py` → **`Capabilities-Model.xlsx`**(包含 8 个工作表的综合参考工作簿);`score.py` → D4 `REPORT.md`;`chart.py` → 雷达图 + L0 图表 | | `ASSESSOR-GUIDE.md` | 端到端指南:如何运行评估 | | `PILOT-PROTOCOL.md` | 评分者间可靠性试点协议与套件(正式发布前的关口) | | `pilot/` | 模拟试运行 — 证据包,3 个盲评 AI 评分者,`RELIABILITY-REPORT.md`,`MONTE-CARLO.md` | | `examples/` | 演示性公开证据评估(Kubernetes、Sigstore)+ OpenSSF Scorecard 到模型的对照表 | | `deck/` | 14 页演示文稿系列 — 概述、方法论、技术深入探讨、角色指南(开发人员、身份集成人员)、领导层/GRC/供应商;共享的 `deckkit.py` | | `AUTOMATION-ARCHITECTURE.md` | 评估自动化解决方案架构(收集器 → 映射 → `score.py` → GRC/董事会) | | `REFERENCE-FRESHNESS-2026-07.md` | 参考资料的时效性复核 | | `MAINTENANCE.md` | 版本方案 + 刷新节奏 + 完整性不变量 | | `references/` | 本地存档的承重规范性 PDF + `MANIFEST.txt` | | `REBUILD-PRINCIPLES.md` | 指导性设计原则 (P1–P5) | | `REFERENCE-REGISTER.md` | 引用登记表(`N-##` 为当前,`L-##` 为旧版) | ## 类别 | # | 文件 | 主题 | |---|---|---| | C1 | `categories/C1-governance.md` | 9 — 治理、文化与合规 | | C2 | `categories/C2-asset-inventory.md` | 6 — 资产与依赖清单 | | C3 | `categories/C3-oss-component-governance.md` | 7 — 开源与组件治理 | | C4 | `categories/C4-supply-chain-integrity.md` | 8 — 供应链完整性:构建、来源与证明 | | C5 | `categories/C5-threat-modeling.md` | 4 — 威胁建模与安全设计 | | C6 | `categories/C6-identity-access-secrets.md` | 6 — 身份、访问与密钥 | | C7 | `categories/C7-data-protection.md` | 4 — 数据保护 | | C8 | `categories/C8-cicd-infra-security.md` | 10 — CI/CD 流水线与基础设施安全 | | C9 | `categories/C9-appsec-testing-vulnmgmt.md` | 8 — 应用安全测试与漏洞管理 | | C10 | `categories/C10-ai-systems.md` | 8 — AI 系统与组件安全 | | C11 | `categories/C11-vendor-risk.md` | 5 — 第三方与供应商风险 | **共 75 个主题。** 冗余集群已合并(密钥合并为一项实践,威胁建模合并为四项,测试去重);在 C3/C4/C10/C11 中有专门的覆盖范围,以及(v1.3)生产者端的事件响应 (C1.9) + 运行时工作负载检测 (C8.10)。 ## 每个主题的结构(衡量架构) 根据 `SCORING-DESIGN.md`: - **原子活动**(每个主题数量不定 — 仅包含内容确实支持的活动;无填充)。 - 每项活动的**制度化层级**:已执行 → 已标准化/强制执行 → 持续验证。真正的**缺失 (0)** 状态始终可表示。 - 每项活动的**证据提示**(没有产出物不得自我声明)。 - **覆盖范围轴**保持独立,绝不与层级相乘。 - **工作量 (S/M/L) × 风险影响 (Low/Med/High/Critical)** 元数据 — 驱动“快速赢取 (Quick-Wins)”机制。 - **与供应商无关的补救措施**(“良好实践的标准”)— 没有带有商业品牌的服务推荐。 - **引用**使用稳定的 `[N-##]/[L-##]` ID(登记表:`REFERENCE-REGISTER.md`)。 评分汇总:达成情况配置 + 风险加权差距列表 + 基础指标;**不对有序层级计算综合平均值**。高级的单指数评分推迟到客户驱动阶段进行。 ## 部分设计决策(按类别) - **C3.1/C3.2** — 依赖混淆:优先解析公共上游源(攻击的前提条件)是一种**失败**状态;采用单一受控源 + 命名空间预留 + lockfile 哈希。 - **C8.8** — 日志建模顺序正确:生成 → 收集 → 分析 → 调优。 - **C8.1** — 基于 OWASP CI/CD Top 10 / SLSA / 800-204D 构建流水线安全。(ASVS 被归置于其在 C9 中正确的应用层。) - **C6.1/C6.6** — 不安全缺失(“微服务之间无身份验证”)的得分绝不能高于缺失。 - **C6.2** — 不将 PAT 视为 OAuth token 计分;目标是短期/OIDC。 - **C9.1** — 左移顺序正确(流水线 SAST 优先于 IDE SAST)。 - **C9.8** — 没有任意的“>70% 覆盖率”基准。 - **C7.2/C7.3** — 没有过时的陈旧内容(SSHv2/telnet,外部 CA 用于内部)。 ## 配置(首发版本) `core`、`supply-chain-integrity`、`regulatory`、`AI` — 选择主题子集的交付层视图;该模型是超集(主题带有配置标签)。详见 `PROFILES.md`。 ## 出处 / 参考资料 所有内容都引用了稳定的登记表 ID — `REFERENCE-REGISTER.md`(`N-##` 为 2022–2026 年的来源,加上引用的旧版 `L-##` 行)。本地 PDF 存档:`references/MANIFEST.txt`。 ## 给读者的说明 - **演示示例是虚构的。** “Meridian Global”/“Aegis”是编造的。Kubernetes 和 Sigstore 的评估**仅供演示,仅基于公开证据,且为特定时间点的情况** — 它们不是审计结论或判决(两者都是供应链安全的范例)。 - **此处不重新分发受第三方版权保护的来源。** 被引用的来源在 [`REFERENCE-REGISTER.md`](REFERENCE-REGISTER.md) 中通过稳定的 ID 和规范 URL 进行索引。仅打包的 PDF([`references/`](references))属于公共领域的美国政府出版物以及获得 Ecma 许可的 ECMA-424 — 其依据记录在 [`references/README.md`](references/README.md) 中。 - **许可证:** [Apache License 2.0](LICENSE)(见 [`NOTICE`](NOTICE))。如果您重复使用或改编该模型,我们不胜感激您的署名/链接,但这并非必须。引用该模型:[`CITATION.cff`](CITATION.cff)。 ## 贡献 欢迎提出问题和改进建议 — 详见 [`CONTRIBUTING.md`](CONTRIBUTING.md)(包含报告内容与方式、变更流程以及设计不变量)、[`CODE_OF_CONDUCT.md`](CODE_OF_CONDUCT.md) 以及用于私下报告的 [`SECURITY.md`](SECURITY.md)。该模型基于源码生成/评分:请编辑 `categories/*.md`,然后重新运行 `instrument/extract_model.py` 并确认完整性(270 项活动,所有引用均可解析)。参见 [`MAINTENANCE.md`](MAINTENANCE.md)。
标签:DevSecOps, Python, 上游代理, 反取证, 合规与审计, 安全评估, 无后门, 能力成熟度模型, 软件供应链安全, 远程方法调用, 逆向工具