用途:在构建、发布或使用软件组件时加固软件供应链。威胁模型为不可信供应链:任何拉取的依赖、执行的构建步骤、交付的产物都可能被替换、篡改或冒名。防御目标是建立来源(provenance)、完整性(integrity)与卫生(hygiene)。
主要能力与内容:
- 供应链信任边界:在源解析、依赖下载、传递闭包、构建、产物发布、消费方安装各交接点建立来源并验证完整性。
- SBOM生成与验证:SPDX(Linux Foundation,ISO/IEC 5962)偏许可证,CycloneDX(OWASP)偏安全。至少包含NTIA最小元素(供应商、组件名、版本、唯一标识、依赖关系、SBOM作者、时间戳)。用syft在构建时生成,附为签名证明,跨版本diff。
- 依赖混淆防御:保留公开命名空间、按名称固定源、安装时哈希校验、注册表路由控制;锁文件哈希固定为跨生态通用控制。
- 恶意包排查:识别名称近似、维护者变更、安装脚本、异常网络/文件访问、版本节奏异常、仓库与产物不一致等信号;响应流程为隔离、验证来源、用SBOM盘点暴露、上报、记录。
- SLSA构建等级:Build L0无保证至L3强化构建(不可伪造来源、隔离临时构建环境、密钥隔离);要求最低等级,生产通常需L2+签名来源。
- Sigstore/cosign:无密钥签名(OIDC身份+短期证书+透明日志),消费方用cosign verify --certificate-identity <expected> --certificate-oidc-issuer <expected> <artifact-ref>验证,失败即拒绝。
- 注册表加固:发布/管理账号2FA、要求签名与来源证明、镜像按哈希固定、范围化发布令牌、版本不可变、发布审计日志。
- 仿冒包防御:依赖名允许列表、CI中相似度检测、命名空间注册、精确名称加哈希固定。
- 传递依赖审计:对完整闭包做漏洞、许可证、深度/数量、锁文件完整性检查;生态工具如pip-audit、npm audit、cargo audit、govulncheck、bundler-audit,跨生态可用SCA配合SBOM。
适用场景:构建、发布、消费软件组件的团队与流水线。限制:本技能为防御性参考,不涉及利用方法;AI/LLM供应链见moai-ref-llm-security,Web漏洞见moai-ref-owasp-checklist。具体命令与工具版本等未在资料中完整提供。